Expand description
The Board trait — the SNES analogue of RustyNES’s Mapper.
A “board” is one cartridge PCB family: a base address-mapping mode (LoROM / HiROM /
ExHiROM) plus any on-cart coprocessor. The 65C816 bus calls Board::read24 /
Board::write24 with a full 24-bit (bank << 16) | addr; the board decodes its own
mapping. Coprocessor boards additionally implement the default-no-op hooks
(Board::coprocessor_tick, the notify_* family) — exactly the RustyNES pattern where
per-board IRQ/cycle quirks live INSIDE the board, called via default-no-op trait hooks.
See docs/cart.md for the per-board / per-coprocessor table and the decode formulas.
Structs§
- ExHiRom
- ExHiROM (mode
$25): the extended HiROM layout for >4 MiB titles. - ExLoRom
- ExLoROM (unofficial — no dedicated
$xFD5mode value): the extended LoROM layout for titles over 4 MiB that keep LoROM’s 32 KiB bank windowing instead of switching to HiROM’s linear banks. - HiRom
- HiROM (mode
$21): 64 KiB linear ROM banks; full ROM at$C0–$FF. - LoRom
- LoROM (mode
$20): 32 KiB ROM windows in$8000–$FFFFof each bank.
Enums§
- Mapped
Addr - The result of a board’s address decode: where a 24-bit CPU address lands.
Traits§
- Board
- A cartridge board: its address mapping + any coprocessor behavior.
Functions§
- select
- Select the concrete board for a parsed header, allocating ROM + zeroed SRAM.
Type Aliases§
- Coprocessor
- Identifies which coprocessor (if any) a board carries.