added timer saving to savestates
[picodrive.git] / Pico / Pico.c
index 93d04e7..9fe97bf 100644 (file)
@@ -156,8 +156,11 @@ int PicoReset(void)
 \r
   Pico.m.dirtyPal = 1;\r
 \r
+  Pico.m.z80_bank68k = 0;\r
+  memset(Pico.zram, 0, sizeof(Pico.zram)); // ??\r
+\r
   PicoDetectRegion();\r
-  Pico.video.status = 0x3408 | Pico.m.pal; // 'always set' bits | vblank | pal\r
+  Pico.video.status = 0x3428 | Pico.m.pal; // 'always set' bits | vblank | collision | pal\r
 \r
   PsndReset(); // pal must be known here\r
 \r
@@ -320,7 +323,7 @@ PICO_INTERNAL void PicoSyncZ80(int m68k_cycles_done)
   z80_cycle_aim = cycles_68k_to_z80(m68k_cycles_done);\r
   cnt = z80_cycle_aim - z80_cycle_cnt;\r
 \r
-  elprintf(EL_ANOMALY, "z80 sync %i (%i|%i -> %i|%i)", cnt, z80_cycle_cnt, z80_cycle_cnt / 228,\r
+  elprintf(EL_BUSREQ, "z80 sync %i (%i|%i -> %i|%i)", cnt, z80_cycle_cnt, z80_cycle_cnt / 228,\r
     z80_cycle_aim, z80_cycle_aim / 228);\r
 \r
   if (cnt > 0)\r
@@ -375,7 +378,6 @@ static int PicoFrameSimple(void)
 \r
   SekCyclesReset();\r
   z80_resetCycles();\r
-  timers_cycle();\r
 \r
   // 6 button pad: let's just say it timed out now\r
   Pico.m.padTHPhase[0]=Pico.m.padTHPhase[1]=0;\r
@@ -491,6 +493,8 @@ static int PicoFrameSimple(void)
   if (PsndOut && ym2612.dacen && PsndDacLine <= line_last)\r
     PsndDoDAC(line_last);\r
 \r
+  timers_cycle();\r
+\r
   return 0;\r
 }\r
 \r