From: notaz Date: Sat, 30 Sep 2017 22:29:08 +0000 (+0300) Subject: some poor timing improvement attempts X-Git-Tag: v1.92~16 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1b8bcc63466f6982685df518db8fef399f9cf91;p=picodrive.git some poor timing improvement attempts --- diff --git a/pico/memory.c b/pico/memory.c index 34ef99d6..3900208b 100644 --- a/pico/memory.c +++ b/pico/memory.c @@ -1195,6 +1195,8 @@ void PicoWrite16_32x(u32 a, u32 d) {} static unsigned char z80_md_vdp_read(unsigned short a) { + z80_subCLeft(2); + if ((a & 0x00f0) == 0x0000) { switch (a & 0x0d) { @@ -1218,8 +1220,10 @@ static unsigned char z80_md_bank_read(unsigned short a) unsigned int addr68k; unsigned char ret; - addr68k = Pico.m.z80_bank68k<<15; - addr68k += a & 0x7fff; + z80_subCLeft(3); + + addr68k = Pico.m.z80_bank68k << 15; + addr68k |= a & 0x7fff; ret = m68k_read8(addr68k); diff --git a/pico/pico_int.h b/pico/pico_int.h index 97b7b0e4..f439d6af 100644 --- a/pico/pico_int.h +++ b/pico/pico_int.h @@ -185,6 +185,7 @@ extern struct DrZ80 drZ80; #define z80_nmi() drZ80.Z80IF |= 8 #define z80_cyclesLeft drZ80.cycles +#define z80_subCLeft(c) drZ80.cycles -= c #define z80_pc() (drZ80.Z80PC - drZ80.Z80PC_BASE) #elif defined(_USE_CZ80) @@ -196,6 +197,7 @@ extern struct DrZ80 drZ80; #define z80_nmi() Cz80_Set_IRQ(&CZ80, IRQ_LINE_NMI, 0) #define z80_cyclesLeft (CZ80.ICount - CZ80.ExtraCycles) +#define z80_subCLeft(c) CZ80.ICount -= c #define z80_pc() Cz80_Get_Reg(&CZ80, CZ80_PC) #else