From 454b90be240ae5d06eb55665b6e23674e356552f Mon Sep 17 00:00:00 2001 From: byuu <2107894+byuu@users.noreply.github.com> Date: Thu, 31 Oct 2019 10:56:16 +0900 Subject: [PATCH] v112.6 Fix for Kishin Douji Zenki - Tenchi Meidou --- bsnes/emulator/emulator.hpp | 2 +- bsnes/sfc/smp/memory.cpp | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/bsnes/emulator/emulator.hpp b/bsnes/emulator/emulator.hpp index 3379e0fa..68cf282b 100644 --- a/bsnes/emulator/emulator.hpp +++ b/bsnes/emulator/emulator.hpp @@ -29,7 +29,7 @@ using namespace nall; namespace Emulator { static const string Name = "bsnes"; - static const string Version = "112.5"; + static const string Version = "112.6"; static const string Author = "byuu"; static const string License = "GPLv3"; static const string Website = "https://byuu.org"; diff --git a/bsnes/sfc/smp/memory.cpp b/bsnes/sfc/smp/memory.cpp index 8a39c74b..32af649e 100644 --- a/bsnes/sfc/smp/memory.cpp +++ b/bsnes/sfc/smp/memory.cpp @@ -14,11 +14,20 @@ auto SMP::idle() -> void { } auto SMP::read(uint16 address) -> uint8 { - wait(address, 0); - uint8 data = readRAM(address); - if((address & 0xfff0) == 0x00f0) data = readIO(address); -//wait(address, 0); - return data; + //Kishin Douji Zenki - Tenchi Meidou requires bus hold delays on CPU I/O reads. + //smp_mem_access_times requires no bus hold delays on APU RAM reads. + if((address & 0xfffc) == 0x00f4) { + wait(address, 1); + uint8 data = readRAM(address); + if((address & 0xfff0) == 0x00f0) data = readIO(address); + wait(address, 1); + return data; + } else { + wait(address, 0); + uint8 data = readRAM(address); + if((address & 0xfff0) == 0x00f0) data = readIO(address); + return data; + } } auto SMP::write(uint16 address, uint8 data) -> void {