sms: some bugfixes
authornotaz <notasas@gmail.com>
Thu, 11 Feb 2010 14:04:14 +0000 (14:04 +0000)
committernotaz <notasas@gmail.com>
Thu, 11 Feb 2010 14:04:14 +0000 (14:04 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@870 be3aeb3a-fb24-0410-a615-afba39da0efa

pico/mode4.c
pico/sms.c
pico/state.c

index 4588a9a..1b337a3 100644 (file)
@@ -260,6 +260,7 @@ void PicoDoHighPal555M4(void)
     t |= (t >> 4) & 0x08610861;
     *dpal = t;
   }
+  HighPal[0xe0] = 0;
 }
 
 static void FinalizeLineRGB555M4(int line)
index cc75bff..1e1e748 100644 (file)
@@ -257,6 +257,8 @@ void PicoFrameMS(void)
   for (y = 0; y < lines; y++)
   {
     pv->v_counter = Pico.m.scanline = y;
+    if (y > 218)
+      pv->v_counter = y - 6;
 
     if (y < lines_vis && !skip)
       PicoLineMode4(y);
index 60a6f72..27c58a7 100644 (file)
@@ -384,6 +384,10 @@ static int state_load(void *file)
   char header[8];\r
   int ver, len;\r
 \r
+  memset(buff_m68k, 0, sizeof(buff_m68k));\r
+  memset(buff_s68k, 0, sizeof(buff_s68k));\r
+  memset(buff_z80, 0, sizeof(buff_z80));\r
+\r
   g_read_offs = 0;\r
   CHECKED_READ(8, header);\r
   if (strncmp(header, "PicoSMCD", 8) && strncmp(header, "PicoSEXT", 8))\r
@@ -408,7 +412,6 @@ static int state_load(void *file)
 \r
       case CHUNK_Z80:\r
         CHECKED_READ_BUFF(buff_z80);\r
-        z80_unpack(buff_z80);\r
         break;\r
 \r
       case CHUNK_RAM:     CHECKED_READ_BUFF(Pico.ram); break;\r
@@ -499,13 +502,15 @@ readend:
     if (!(Pico_mcd->s68k_regs[0x36] & 1) && (Pico_mcd->scd.Status_CDC & 1))\r
       cdda_start_play();\r
 \r
-    // must unpack after mem is set up\r
     SekUnpackCpu(buff_s68k, 1);\r
   }\r
 \r
+  // must unpack 68k and z80 after banks are set up\r
   if (!(PicoAHW & PAHW_SMS))\r
     SekUnpackCpu(buff_m68k, 0);\r
 \r
+  z80_unpack(buff_z80);\r
+\r
   if (PicoAHW & PAHW_32X)\r
     Pico32xStateLoaded();\r
 \r