\r
if (PicoMCD & 1) {\r
PicoResetMCD(hard);\r
- SRam.data = 0;\r
return 0;\r
}\r
\r
// Dino Dini's Soccer malfunctions if SRAM is not filled with 0xff\r
if (strncmp((char *)Pico.rom+0x150, "IDOND NI'I", 10) == 0)\r
memset(SRam.data, 0xff, sram_size);\r
+ dprintf("sram: det: %i; eeprom: %i; start: %06x; end: %06x\n",\r
+ (Pico.m.sram_reg>>4)&1, (Pico.m.sram_reg>>2)&1, SRam.start, SRam.end);\r
}\r
\r
Pico.m.sram_reg = SRam.reg_back; // restore sram_reg\r
getSamples(y);\r
\r
// Run scanline:\r
- if(Pico.m.dma_bytes) SekCycleCnt+=CheckDMA();\r
+ if (Pico.m.dma_bytes) SekCycleCnt+=CheckDMA();\r
SekRun(cycles_68k);\r
- if((PicoOpt&4) && Pico.m.z80Run) {\r
- Pico.m.z80Run|=2;\r
- z80CycleAim+=cycles_z80;\r
+ if ((PicoOpt&4) && Pico.m.z80Run) {\r
+ if (Pico.m.z80Run & 2) z80CycleAim+=cycles_z80;\r
+ else {\r
+ int cnt = SekCyclesDone() - z80startCycle;\r
+ cnt = (cnt>>1)-(cnt>>5);\r
+ //if (cnt > cycles_z80) printf("FIXME: z80 cycles: %i\n", cnt);\r
+ if (cnt > cycles_z80) cnt = cycles_z80;\r
+ Pico.m.z80Run |= 2;\r
+ z80CycleAim+=cnt;\r
+ }\r
total_z80+=z80_run(z80CycleAim-total_z80);\r
}\r
}\r