summaryrefslogtreecommitdiff
path: root/src/nes/mapper.cc
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2025-01-18 00:05:53 +0100
committerHannes Schulze <haschu0103@outlook.de>2025-01-18 00:05:53 +0100
commitd5a52cc491a222f1b7d33fa6789bed617ec6638b (patch)
treea1c849e94620eb2c132fbd1a61898ef51ce167ba /src/nes/mapper.cc
parent9d80b5b8a61bd8c2336f5032de8b84fea15d685f (diff)
cpu: bugfixes
Diffstat (limited to 'src/nes/mapper.cc')
-rw-r--r--src/nes/mapper.cc12
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;
}
}