From 7b52165dd5d84f134fe2a2d22b6cc95be5361d9a Mon Sep 17 00:00:00 2001 From: ekeeke Date: Sat, 4 Apr 2020 15:27:30 +0200 Subject: [PATCH] [Core/CPU] added Z80 wait-states on 68k bus access (fixes Remute Red Eyes demo) --- core/memz80.c | 12 +++++++++++- core/memz80.h | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/memz80.c b/core/memz80.c index fcc1b5b..d8630d5 100644 --- a/core/memz80.c +++ b/core/memz80.c @@ -5,7 +5,7 @@ * Support for SG-1000, Mark-III, Master System, Game Gear & Mega Drive ports access * * Copyright (C) 1998-2003 Charles Mac Donald (original code) - * Copyright (C) 2007-2016 Eke-Eke (Genesis Plus GX) + * Copyright (C) 2007-2020 Eke-Eke (Genesis Plus GX) * * Redistribution and use of this code or any derivative works are permitted * provided that the following conditions are met: @@ -111,6 +111,8 @@ unsigned char z80_memory_r(unsigned int address) { if ((address >> 8) == 0x7F) { + /* average Z80 wait-states when accessing 68k area */ + Z80.cycles += 3 * 15; return (*zbank_memory_map[0xc0].read)(address); } return z80_unused_r(address); @@ -118,6 +120,9 @@ unsigned char z80_memory_r(unsigned int address) default: /* $8000-$FFFF: 68k bank (32K) */ { + /* average Z80 wait-states when accessing 68k area */ + Z80.cycles += 3 * 15; + address = zbank | (address & 0x7FFF); if (zbank_memory_map[address >> 16].read) { @@ -158,6 +163,8 @@ void z80_memory_w(unsigned int address, unsigned char data) case 0x7F: /* $7F00-$7FFF: VDP */ { + /* average Z80 wait-states when accessing 68k area */ + Z80.cycles += 3 * 15; (*zbank_memory_map[0xc0].write)(address, data); return; } @@ -172,6 +179,9 @@ void z80_memory_w(unsigned int address, unsigned char data) default: /* $8000-$FFFF: 68k bank (32K) */ { + /* average Z80 wait-states when accessing 68k area */ + Z80.cycles += 3 * 15; + address = zbank | (address & 0x7FFF); if (zbank_memory_map[address >> 16].write) { diff --git a/core/memz80.h b/core/memz80.h index fab3f93..8dcb2f8 100644 --- a/core/memz80.h +++ b/core/memz80.h @@ -5,7 +5,7 @@ * Support for SG-1000, Mark-III, Master System, Game Gear & Mega Drive ports access * * Copyright (C) 1998-2003 Charles Mac Donald (original code) - * Copyright (C) 2007-2016 Eke-Eke (Genesis Plus GX) + * Copyright (C) 2007-2020 Eke-Eke (Genesis Plus GX) * * Redistribution and use of this code or any derivative works are permitted * provided that the following conditions are met: