mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
Obviously I don't understand why there was a /2 in the drawpixel functions, fixed gfx regressions
This commit is contained in:
parent
10353d4b7d
commit
162e3f3a81
@ -16,7 +16,7 @@ Framebuffer todo:
|
||||
#include "emu.h"
|
||||
#include "includes/stv.h"
|
||||
|
||||
#define VDP1_LOG 0
|
||||
#define VDP1_LOG 1
|
||||
|
||||
|
||||
enum { FRAC_SHIFT = 16 };
|
||||
@ -827,7 +827,7 @@ void saturn_state::drawpixel_8bpp_trans(int x, int y, int patterndata, int offse
|
||||
UINT8 *vdp1_vram = (UINT8 *)m_vdp1_vram;
|
||||
UINT16 pix;
|
||||
|
||||
pix = vdp1_vram[(patterndata+offsetcnt/2)^3];
|
||||
pix = vdp1_vram[((patterndata+offsetcnt)^3) & 0x7ffff];
|
||||
if ( pix & 0xff )
|
||||
{
|
||||
m_vdp1.framebuffer_draw_lines[y][x] = pix | m_sprite_colorbank;
|
||||
@ -839,7 +839,7 @@ void saturn_state::drawpixel_4bpp_notrans(int x, int y, int patterndata, int off
|
||||
UINT8 *vdp1_vram = (UINT8 *)m_vdp1_vram;
|
||||
UINT16 pix;
|
||||
|
||||
pix = vdp1_vram[(patterndata+offsetcnt/2)^3];
|
||||
pix = vdp1_vram[((patterndata+offsetcnt)^3) & 0x7ffff];
|
||||
pix = offsetcnt&1 ? (pix & 0x0f):((pix & 0xf0)>>4) ;
|
||||
m_vdp1.framebuffer_draw_lines[y][x] = pix | m_sprite_colorbank;
|
||||
}
|
||||
@ -849,7 +849,7 @@ void saturn_state::drawpixel_4bpp_trans(int x, int y, int patterndata, int offse
|
||||
UINT8 *vdp1_vram = (UINT8 *)m_vdp1_vram;
|
||||
UINT16 pix;
|
||||
|
||||
pix = vdp1_vram[(patterndata+offsetcnt/2)^3];
|
||||
pix = vdp1_vram[((patterndata+offsetcnt)^3) & 0x7ffff];
|
||||
pix = offsetcnt&1 ? (pix & 0x0f):((pix & 0xf0)>>4) ;
|
||||
if ( pix )
|
||||
m_vdp1.framebuffer_draw_lines[y][x] = pix | m_sprite_colorbank;
|
||||
@ -887,7 +887,7 @@ void saturn_state::drawpixel_generic(int x, int y, int patterndata, int offsetcn
|
||||
{
|
||||
case 0x0000: // mode 0 16 colour bank mode (4bits) (hanagumi blocks)
|
||||
// most of the shienryu sprites use this mode
|
||||
pix = vdp1_vram[((patterndata+offsetcnt/2)^3) & 0xfffff];
|
||||
pix = vdp1_vram[((patterndata+offsetcnt)^3) & 0x7ffff];
|
||||
pix = offsetcnt&1 ? (pix & 0x0f):((pix & 0xf0)>>4) ;
|
||||
pix = pix+((stv2_current_sprite.CMDCOLR&0xfff0));
|
||||
mode = 0;
|
||||
@ -895,7 +895,7 @@ void saturn_state::drawpixel_generic(int x, int y, int patterndata, int offsetcn
|
||||
break;
|
||||
case 0x0008: // mode 1 16 colour lookup table mode (4bits)
|
||||
// shienryu explosisons (and some enemies) use this mode
|
||||
pix2 = vdp1_vram[((patterndata+offsetcnt/2)^3) & 0xfffff];
|
||||
pix2 = vdp1_vram[((patterndata+offsetcnt)^3) & 0x7ffff];
|
||||
pix2 = offsetcnt&1 ? (pix2 & 0x0f):((pix2 & 0xf0)>>4);
|
||||
pix = pix2&1 ?
|
||||
((((m_vdp1_vram[(((stv2_current_sprite.CMDCOLR&0xffff)*8)>>2)+((pix2&0xfffe)/2)])) & 0x0000ffff) >> 0):
|
||||
@ -917,25 +917,25 @@ void saturn_state::drawpixel_generic(int x, int y, int patterndata, int offsetcn
|
||||
}
|
||||
break;
|
||||
case 0x0010: // mode 2 64 colour bank mode (8bits) (character select portraits on hanagumi)
|
||||
pix = vdp1_vram[((patterndata+offsetcnt)^3) & 0xfffff];
|
||||
pix = vdp1_vram[((patterndata+offsetcnt)^3) & 0x7ffff];
|
||||
mode = 2;
|
||||
pix = pix+(stv2_current_sprite.CMDCOLR&0xffc0);
|
||||
transmask = 0x3f;
|
||||
break;
|
||||
case 0x0018: // mode 3 128 colour bank mode (8bits) (little characters on hanagumi use this mode)
|
||||
pix = vdp1_vram[((patterndata+offsetcnt)^3) & 0xfffff];
|
||||
pix = vdp1_vram[((patterndata+offsetcnt)^3) & 0x7ffff];
|
||||
pix = pix+(stv2_current_sprite.CMDCOLR&0xff80);
|
||||
transmask = 0x7f;
|
||||
mode = 3;
|
||||
break;
|
||||
case 0x0020: // mode 4 256 colour bank mode (8bits) (hanagumi title)
|
||||
pix = vdp1_vram[((patterndata+offsetcnt)^3) & 0xfffff];
|
||||
pix = vdp1_vram[((patterndata+offsetcnt)^3) & 0x7ffff];
|
||||
pix = pix+(stv2_current_sprite.CMDCOLR&0xff00);
|
||||
transmask = 0xff;
|
||||
mode = 4;
|
||||
break;
|
||||
case 0x0028: // mode 5 32,768 colour RGB mode (16bits)
|
||||
pix = vdp1_vram[((patterndata+offsetcnt*2+1)^3) & 0xfffff] | (vdp1_vram[((patterndata+offsetcnt*2)^3) & 0xfffff]<<8) ;
|
||||
pix = vdp1_vram[((patterndata+offsetcnt*2+1)^3) & 0x7ffff] | (vdp1_vram[((patterndata+offsetcnt*2)^3) & 0x7ffff]<<8) ;
|
||||
mode = 5;
|
||||
transmask = -1; /* TODO: check me */
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user