pub struct Bus {
pub apu: Apu,
pub genie_codes: HashMap<u16, GenieCode>,
pub input: Input,
pub open_bus: u8,
pub ppu: Ppu,
pub prg_ram_protect: bool,
pub prg_ram: Memory<Vec<u8>>,
pub prg_rom: Memory<Vec<u8>>,
pub ram_state: RamState,
pub region: NesRegion,
pub wram: Memory<ConstSlice<u8, 0x0800>>,
}Expand description
NES Bus
https://wiki.nesdev.org/w/index.php/CPU_memory_map
|—————–| $FFFF |—————–| | PRG-ROM | | | |—————–| $8000 |—————–| | PRG-RAM or SRAM | | PRG-RAM or SRAM | |—————–| $6000 |—————–| | Expansion | | Expansion | | Modules | | Modules | |—————–| $4020 |—————–| | APU/Input | | | | Registers | | | |- - - - - - - - -| $4000 | | | PPU Mirrors | | I/O Registers | | $2000-$2007 | | | |- - - - - - - - -| $2008 | | | PPU Registers | | | |—————–| $2000 |—————–| | WRAM Mirrors | | | | $0000-$07FF | | | |- - - - - - - - -| $0800 | | | WRAM | | 2K Internal | |- - - - - - - - -| $0200 | Work RAM | | Stack | | | |- - - - - - - - -| $0100 | | | Zero Page | | | |—————–| $0000 |—————–|
Fields§
§apu: Apu§genie_codes: HashMap<u16, GenieCode>§input: Input§open_bus: u8§ppu: Ppu§prg_ram_protect: bool§prg_ram: Memory<Vec<u8>>§prg_rom: Memory<Vec<u8>>§ram_state: RamState§region: NesRegion§wram: Memory<ConstSlice<u8, 0x0800>>Implementations§
Source§impl Bus
impl Bus
pub fn new(region: NesRegion, ram_state: RamState) -> Self
pub fn load_cart(&mut self, cart: Cart)
pub fn unload_cart(&mut self)
pub fn sram(&self) -> &[u8] ⓘ
pub fn load_sram(&mut self, sram: Memory<Vec<u8>>)
pub fn wram(&self) -> &[u8] ⓘ
Sourcepub fn add_genie_code(&mut self, genie_code: GenieCode)
pub fn add_genie_code(&mut self, genie_code: GenieCode)
Sourcepub fn remove_genie_code(&mut self, code: &str)
pub fn remove_genie_code(&mut self, code: &str)
Remove a Game Genie code.
Sourcepub fn clear_genie_codes(&mut self)
pub fn clear_genie_codes(&mut self)
Remove all Game Genie codes.