X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2FMemory.c;h=509fead95aa9c05b81594f65428d1e39a3776dc4;hb=85f8e92973ca60968cfb844d2119b669ce610c2d;hp=3104eb414aa92123ddcee6fadd317833fa8c10ed;hpb=312e9ce192d49b4bea2f8a7e3cd2eb91a860564f;p=picodrive.git diff --git a/Pico/Memory.c b/Pico/Memory.c index 3104eb4..509fead 100644 --- a/Pico/Memory.c +++ b/Pico/Memory.c @@ -319,14 +319,16 @@ static void OtherWrite8(u32 a,u32 d,int realsize) //int lineCycles=(488-SekCyclesLeft)&0x1ff; d&=1; d^=1; if(!d) { - // hack: detect a nasty situation where Z80 was enabled and disabled in the same 68k timeslice (Golden Axe III) - // if((PicoOpt&4) && Pico.m.z80Run==1) z80_run(20); // FIXME: movies - z80stopCycle = SekCyclesDone(); - //z80ExtraCycles += (lineCycles>>1)-(lineCycles>>5); // only meaningful in PicoFrameHints() + // this is for a nasty situation where Z80 was enabled and disabled in the same 68k timeslice (Golden Axe III) + if (Pico.m.z80Run) { + int lineCycles=(488-SekCyclesLeft)&0x1ff; + z80stopCycle = SekCyclesDone(); + lineCycles=(lineCycles>>1)-(lineCycles>>5); + z80_run(lineCycles); + } } else { z80startCycle = SekCyclesDone(); //if(Pico.m.scanline != -1) - //z80ExtraCycles -= (lineCycles>>1)-(lineCycles>>5)+16; } dprintf("set_zrun: %02x [%i|%i] @%06x", d, Pico.m.scanline, SekCyclesDone(), /*mz80GetRegisterValue(NULL, 0),*/ SekPc); Pico.m.z80Run=(u8)d; return; @@ -621,7 +623,7 @@ static void CPU_CALL PicoWrite32(u32 a,u32 d) // ----------------------------------------------------------------- -int PicoMemInit() +void PicoMemSetup() { #ifdef EMU_C68K // Setup memory callbacks: @@ -633,7 +635,6 @@ int PicoMemInit() PicoCpu.write16=PicoWrite16; PicoCpu.write32=PicoWrite32; #endif - return 0; } #ifdef EMU_A68K