From 53461e712fcfc2f965cf882c360fad49af69eca7 Mon Sep 17 00:00:00 2001 From: Adrian Conlon Date: Sun, 17 Jun 2018 21:08:01 +0100 Subject: [PATCH] Corrected for use with the latest EightBit library. Signed-off-by: Adrian Conlon --- LR35902/inc/GameBoyBus.h | 4 ++-- LR35902/src/GameBoyBus.cpp | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/LR35902/inc/GameBoyBus.h b/LR35902/inc/GameBoyBus.h index 958c6fa..22f0902 100644 --- a/LR35902/inc/GameBoyBus.h +++ b/LR35902/inc/GameBoyBus.h @@ -59,8 +59,8 @@ namespace EightBit { int runVerticalBlankLines(); protected: - virtual uint8_t& reference(uint16_t address, bool& rom); - virtual uint8_t reference(uint16_t address, bool& rom) const; + virtual uint8_t& reference(uint16_t address); + virtual uint8_t reference(uint16_t address) const; private: LR35902 m_cpu; diff --git a/LR35902/src/GameBoyBus.cpp b/LR35902/src/GameBoyBus.cpp index 0ba3a05..b125ac6 100644 --- a/LR35902/src/GameBoyBus.cpp +++ b/LR35902/src/GameBoyBus.cpp @@ -149,9 +149,8 @@ void EightBit::GameBoy::Bus::validateCartridgeType() { } } -uint8_t EightBit::GameBoy::Bus::reference(uint16_t address, bool& rom) const { +uint8_t EightBit::GameBoy::Bus::reference(uint16_t address) const { - rom = true; if ((address < 0x100) && IO().bootRomEnabled()) return m_bootRom.reference(address); if ((address < 0x4000) && gameRomEnabled()) @@ -159,11 +158,10 @@ uint8_t EightBit::GameBoy::Bus::reference(uint16_t address, bool& rom) const { if ((address < 0x8000) && gameRomEnabled()) return m_gameRomBanks[m_romBank].reference(address - 0x4000); - rom = false; if (address < 0xa000) return VRAM().reference(address - 0x8000); if (address < 0xc000) - return m_ramBanks.size() == 0 ? rom = true, 0xff : m_ramBanks[m_ramBank].reference(address - 0xa000); + return m_ramBanks.size() == 0 ? 0xff : m_ramBanks[m_ramBank].reference(address - 0xa000); if (address < 0xe000) return m_lowInternalRam.reference(address - 0xc000); if (address < 0xfe00) @@ -171,15 +169,14 @@ uint8_t EightBit::GameBoy::Bus::reference(uint16_t address, bool& rom) const { if (address < 0xfea0) return OAMRAM().reference(address - 0xfe00); if (address < IoRegisters::BASE) - return rom = true, 0xff; + return 0xff; if (address < 0xff80) return IO().reference(address - IoRegisters::BASE); return m_highInternalRam.reference(address - 0xff80); } -uint8_t& EightBit::GameBoy::Bus::reference(uint16_t address, bool& rom) { +uint8_t& EightBit::GameBoy::Bus::reference(uint16_t address) { - rom = true; if ((address < 0x100) && IO().bootRomEnabled()) return DATA() = m_bootRom.reference(address); if ((address < 0x4000) && gameRomEnabled()) @@ -187,11 +184,10 @@ uint8_t& EightBit::GameBoy::Bus::reference(uint16_t address, bool& rom) { if ((address < 0x8000) && gameRomEnabled()) return DATA() = m_gameRomBanks[m_romBank].reference(address - 0x4000); - rom = false; if (address < 0xa000) return VRAM().reference(address - 0x8000); if (address < 0xc000) - return m_ramBanks.size() == 0 ? rom = true, DATA() = 0xff : m_ramBanks[m_ramBank].reference(address - 0xa000); + return m_ramBanks.size() == 0 ? DATA() = 0xff : m_ramBanks[m_ramBank].reference(address - 0xa000); if (address < 0xe000) return m_lowInternalRam.reference(address - 0xc000); if (address < 0xfe00) @@ -199,7 +195,7 @@ uint8_t& EightBit::GameBoy::Bus::reference(uint16_t address, bool& rom) { if (address < 0xfea0) return OAMRAM().reference(address - 0xfe00); if (address < IoRegisters::BASE) - return rom = true, DATA() = 0xff; + return DATA() = 0xff; if (address < 0xff80) return IO().reference(address - IoRegisters::BASE); return m_highInternalRam.reference(address - 0xff80);