From 28d11135232399ff3f889c44dc5eda1c797e7624 Mon Sep 17 00:00:00 2001 From: thrust26 Date: Sun, 24 Feb 2019 14:39:52 +0100 Subject: [PATCH] Thumbulator::fetch16 can fetch only ROM when optimized --- src/emucore/Thumbulator.cxx | 13 ++++++------- src/windows/Stella.vcxproj | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/emucore/Thumbulator.cxx b/src/emucore/Thumbulator.cxx index 0a5b170f7..92faae0a2 100644 --- a/src/emucore/Thumbulator.cxx +++ b/src/emucore/Thumbulator.cxx @@ -184,32 +184,31 @@ uInt32 Thumbulator::fetch16(uInt32 addr) ++fetches; #endif +#ifndef UNSAFE_OPTIMIZATIONS uInt32 data; switch(addr & 0xF0000000) { case 0x00000000: //ROM addr &= ROMADDMASK; -#ifndef UNSAFE_OPTIMIZATIONS if(addr < 0x50) fatalError("fetch16", addr, "abort"); -#endif addr >>= 1; data = CONV_RAMROM(rom[addr]); DO_DBUG(statusMsg << "fetch16(" << Base::HEX8 << addr << ")=" << Base::HEX4 << data << endl); return data; -#ifndef UNSAFE_OPTIMIZATIONS + case 0x40000000: //RAM -#else - default: -#endif addr &= RAMADDMASK; addr >>= 1; data=CONV_RAMROM(ram[addr]); DO_DBUG(statusMsg << "fetch16(" << Base::HEX8 << addr << ")=" << Base::HEX4 << data << endl); return data; } -#ifndef UNSAFE_OPTIMIZATIONS return fatalError("fetch16", addr, "abort"); +#else + addr &= ROMADDMASK; + addr >>= 1; + return CONV_RAMROM(rom[addr]); #endif } diff --git a/src/windows/Stella.vcxproj b/src/windows/Stella.vcxproj index e01e34941..bbfeedad3 100644 --- a/src/windows/Stella.vcxproj +++ b/src/windows/Stella.vcxproj @@ -344,7 +344,7 @@ true 4100;4127;4146;4244;%(DisableSpecificWarnings) CompileAsCpp - NoListing + All SDL2.lib;SDL2main.lib;%(AdditionalDependencies)