diff options
| author | Hannes Schulze <haschu0103@outlook.de> | 2025-01-18 00:05:53 +0100 |
|---|---|---|
| committer | Hannes Schulze <haschu0103@outlook.de> | 2025-01-18 00:05:53 +0100 |
| commit | d5a52cc491a222f1b7d33fa6789bed617ec6638b (patch) | |
| tree | a1c849e94620eb2c132fbd1a61898ef51ce167ba /src/nes/mapper.cc | |
| parent | 9d80b5b8a61bd8c2336f5032de8b84fea15d685f (diff) | |
cpu: bugfixes
Diffstat (limited to 'src/nes/mapper.cc')
| -rw-r--r-- | src/nes/mapper.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/nes/mapper.cc b/src/nes/mapper.cc index a540dbf..a451e3a 100644 --- a/src/nes/mapper.cc +++ b/src/nes/mapper.cc @@ -27,9 +27,13 @@ namespace nes auto mapper::nrom_read(address const addr) -> std::uint8_t { + if (addr <= address{ 0x5FFF }) + { + return 0x0; + } if (addr <= address{ 0x7FFF }) { - return cartridge_.get_ram()[addr.get_absolute() % 0x2000]; + return cartridge_.get_ram()[addr.get_absolute() - 0x6000]; } if (addr <= address{ 0xBFFF }) { @@ -52,9 +56,13 @@ namespace nes auto mapper::nrom_write(address const addr, std::uint8_t const value) -> void { + if (addr <= address{ 0x5FFF }) + { + return; + } if (addr <= address{ 0x7FFF }) { - cartridge_.get_ram_mut()[addr.get_absolute() % 0x2000] = value; + cartridge_.get_ram_mut()[addr.get_absolute() - 0x6000] = value; } } |
