From 603272869992fe73cdcc0970b82de2306ff54fd3 Mon Sep 17 00:00:00 2001 From: Sour Date: Sat, 6 Jul 2019 09:16:19 -0400 Subject: [PATCH] CPU: Reads should happen slightly earlier within a CPU cycle compared to writes Fixes Rendering Ranger R2 freeze on stage start --- Core/MemoryManager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Core/MemoryManager.cpp b/Core/MemoryManager.cpp index 2ce128c..03b06cb 100644 --- a/Core/MemoryManager.cpp +++ b/Core/MemoryManager.cpp @@ -216,7 +216,7 @@ void MemoryManager::Exec() uint8_t MemoryManager::Read(uint32_t addr, MemoryOperationType type) { - IncrementMasterClock(); + IncrementMasterClockValue(_cpuSpeed - 4); uint8_t value; if(_handlers[addr >> 12]) { @@ -228,6 +228,8 @@ uint8_t MemoryManager::Read(uint32_t addr, MemoryOperationType type) MessageManager::Log("[Debug] Read - missing handler: $" + HexUtilities::ToHex(addr)); } _console->ProcessCpuRead(addr, value, type); + + IncrementMasterClockValue<4>(); return value; }