You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: MapperInfo bank maps for every board via a generic probe
Replace the per-board BankMapper (six mappers) with a generic
mapper.ProbeBankMap that covers essentially all of them. The shared bank
helper `window` becomes the base method `win`, which records the ROM offset
and window size it resolves while a per-board probe flag is set; ProbeBankMap
snapshots the board, reads one byte per CPU/PPU window to capture the banks,
then restores it, so a read side effect (an MMC2/MMC4 CHR latch) leaves no
net change. The probe state lives on the board, so probing one console never
races another.
NROM and CNROM route their fixed PRG through `win` so the probe sees it too.
A window a board maps without the helper reports -1 (honest "unknown").
Across the 303 supported mapper configurations the probe reports PRG banks
for 302 and CHR banks for 291, with none panicking. The `win` rename touches
every board's hot read path; benchmarked at ~1.49 ms/frame, unchanged from
the baseline, and the accuracy floors (AccuracyCoin 141/141, nestest,
blargg) plus the 200+ board smoke suite still pass. Race-checked.