Skip to main content

Module necdsp_variant

Module necdsp_variant 

Source
Expand description

Single-game NEC DSP variant boards — DSP-2, DSP-4, ST010.

Riding the shared crate::coproc::upd77c25::Upd77c25 engine (Dsp1Board covers DSP-1 itself, which uses a different, board-specific window split). DR/SR splits differ per chip — ares’ generic NECDSP::read/write (sfc/coprocessor/necdsp/memory.cpp) suggests a uniform low-address-bit split (even=DR, odd=SR) for the whole non-DSP-1 family, and that’s what DSP-2/ST010 use — but DSP-4 (Top Gear 3000) does NOT: it uses the SAME half-window boundary split DSP-1 does (docs/cart.md §DSP-1), confirmed empirically against its own boot-time hardware-presence check (a 16-bit compare of the masked window’s first two bytes against $FFFF, which only passes if both bytes read the same port). Board attributions from ares System/Super Famicom/boards.bml:

Chip (game)BoardRegister window (bank:addr)DR/SR splitRevision
DSP-2 (Dungeon Master)SHVC-1B5B-02$20–3F,$A0–BF:$8000–FFFF mask $3FFFlow bit (even=DR)Upd7725
DSP-4 (Top Gear 3000)SHVC-1B0N-03$30–3F,$B0–BF:$8000–FFFF mask $3FFFhalf-window boundary at $2000 (below=DR)Upd7725
ST010 (F1 ROC II)SHVC-1DS0B-20$60–67,$E0–E7:$0000–3FFF (registers) + $68–6F,$E8–EF:$0000–7FFF (battery data RAM, direct Upd77c25::read_dp/write_dp port)low bit (even=DR)Upd96050

DSP-3 and ST011 are NOT wired here: neither has a verified board/window entry (no game ROM in this project’s local corpus to validate against), so guessing a window would be an unverified, untestable claim — docs/adr/0003’s honesty gate means the cart simply runs as its base board (unmapped coprocessor window) until one can be pinned against a real cart, exactly like every other not-yet-implemented coprocessor.

There is no header-byte signal that distinguishes DSP-1 from DSP-2/4/ST010 (the chipset byte only flags “has an NEC DSP” generically) — real emulators resolve this via a cartridge database; lacking one, detect matches the 21-byte internal title against each chip’s one known game, the same single-game-chip approach ares’ own database reduces to for these titles.

Structs§

NecDspVariantBoard
A LoROM cartridge carrying a single-game NEC DSP variant (see the module doc’s table).

Enums§

Variant
Which single-game NEC DSP variant a cart carries.