Skip to content

Commit

Permalink
Whitelist more memory regions
Browse files Browse the repository at this point in the history
  • Loading branch information
joajfreitas committed Jul 25, 2024
1 parent 3d7f579 commit 211a9b9
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
41 changes: 39 additions & 2 deletions fpt/src/memory/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,26 @@ impl Bus {
self.memory().cartridge.borrow().read(address)
} else if address == map::JOYP {
self.joyp()
} else {
} else if map::IO_REGISTERS.contains(&address) {
self.memory().mem[address as Address]
} else if map::VRAM.contains(&address) {
self.memory().mem[address as Address]
} else if map::HRAM.contains(&address) {
self.memory().mem[address as Address]
} else if map::WRAM.contains(&address) {
self.memory().mem[address as Address]
} else if address == map::IE {
self.memory().mem[address as Address]
} else if map::NOT_USABLE2.contains(&address) {
self.memory().mem[address as Address]
} else if map::OAM.contains(&address) {
self.memory().mem[address as Address]
} else if map::NOT_USABLE1.contains(&address) {
self.memory().mem[(address - 0x2000) as Address]
} else {
//self.memory().mem[address as Address]
dbg!(address);
panic!();
}
}

Expand All @@ -137,8 +155,27 @@ impl Bus {
.cartridge
.borrow_mut()
.write(address, value);
} else {
} else if map::IO_REGISTERS.contains(&address) {
self.memory_mut().mem[address as Address] = value;
} else if map::VRAM.contains(&address) {
self.memory_mut().mem[address as Address] = value;
} else if map::HRAM.contains(&address) {
self.memory_mut().mem[address as Address] = value;
} else if map::WRAM.contains(&address) {
self.memory_mut().mem[address as Address] = value;
} else if address == map::IE {
self.memory_mut().mem[address as Address] = value;
} else if map::NOT_USABLE2.contains(&address) {
self.memory_mut().mem[address as Address] = value;
} else if map::OAM.contains(&address) {
self.memory_mut().mem[address as Address] = value;
} else if map::NOT_USABLE1.contains(&address) {
self.memory_mut().mem[address - 0x2000 as Address] = value;
} else {
//self.memory_mut().mem[address as Address] = value;
dbg!(address);
dbg!(value);
panic!();
}
}

Expand Down
2 changes: 2 additions & 0 deletions fpt/src/memory/map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ pub const OAM: MemoryRange = 0xFE00..0xFEA0;
/// Not usable https://gbdev.io/pandocs/Memory_Map.html#fea0-feff-range
pub const NOT_USABLE2: MemoryRange = 0xFEA0..0xFF00;

pub const IO_REGISTERS: MemoryRange = 0xFF00..0xFF80;

//-------------------------------------------------------------------------
// I/O Registers
//-------------------------------------------------------------------------
Expand Down

0 comments on commit 211a9b9

Please sign in to comment.