Skip to main content

Module board

Module board 

Source
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 $xFD5 mode 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–$FFFF of each bank.

Enums§

MappedAddr
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.