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