sms: some bugfixes

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@870 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2010-02-11 14:04:14 +00:00
parent fcdefcf62c
commit 03065bb617
3 changed files with 10 additions and 2 deletions

View file

@ -260,6 +260,7 @@ void PicoDoHighPal555M4(void)
t |= (t >> 4) & 0x08610861; t |= (t >> 4) & 0x08610861;
*dpal = t; *dpal = t;
} }
HighPal[0xe0] = 0;
} }
static void FinalizeLineRGB555M4(int line) static void FinalizeLineRGB555M4(int line)

View file

@ -257,6 +257,8 @@ void PicoFrameMS(void)
for (y = 0; y < lines; y++) for (y = 0; y < lines; y++)
{ {
pv->v_counter = Pico.m.scanline = y; pv->v_counter = Pico.m.scanline = y;
if (y > 218)
pv->v_counter = y - 6;
if (y < lines_vis && !skip) if (y < lines_vis && !skip)
PicoLineMode4(y); PicoLineMode4(y);

View file

@ -384,6 +384,10 @@ static int state_load(void *file)
char header[8]; char header[8];
int ver, len; int ver, len;
memset(buff_m68k, 0, sizeof(buff_m68k));
memset(buff_s68k, 0, sizeof(buff_s68k));
memset(buff_z80, 0, sizeof(buff_z80));
g_read_offs = 0; g_read_offs = 0;
CHECKED_READ(8, header); CHECKED_READ(8, header);
if (strncmp(header, "PicoSMCD", 8) && strncmp(header, "PicoSEXT", 8)) if (strncmp(header, "PicoSMCD", 8) && strncmp(header, "PicoSEXT", 8))
@ -408,7 +412,6 @@ static int state_load(void *file)
case CHUNK_Z80: case CHUNK_Z80:
CHECKED_READ_BUFF(buff_z80); CHECKED_READ_BUFF(buff_z80);
z80_unpack(buff_z80);
break; break;
case CHUNK_RAM: CHECKED_READ_BUFF(Pico.ram); break; case CHUNK_RAM: CHECKED_READ_BUFF(Pico.ram); break;
@ -499,13 +502,15 @@ readend:
if (!(Pico_mcd->s68k_regs[0x36] & 1) && (Pico_mcd->scd.Status_CDC & 1)) if (!(Pico_mcd->s68k_regs[0x36] & 1) && (Pico_mcd->scd.Status_CDC & 1))
cdda_start_play(); cdda_start_play();
// must unpack after mem is set up
SekUnpackCpu(buff_s68k, 1); SekUnpackCpu(buff_s68k, 1);
} }
// must unpack 68k and z80 after banks are set up
if (!(PicoAHW & PAHW_SMS)) if (!(PicoAHW & PAHW_SMS))
SekUnpackCpu(buff_m68k, 0); SekUnpackCpu(buff_m68k, 0);
z80_unpack(buff_z80);
if (PicoAHW & PAHW_32X) if (PicoAHW & PAHW_32X)
Pico32xStateLoaded(); Pico32xStateLoaded();