From d1b8bcc63466f6982685df518db8fef399f9cf91 Mon Sep 17 00:00:00 2001 From: notaz Date: Sun, 1 Oct 2017 01:29:08 +0300 Subject: [PATCH] some poor timing improvement attempts --- pico/memory.c | 8 ++++++-- pico/pico_int.h | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) 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 -- 2.39.5