SUPER ZSNES - RetroBIOS¶
Technical notes
Super Famicom emulator by zsKnight and Demo, written from scratch with a GPU-rendered PPU and unrelated to the ZSNES codebase. Shipped as binaries only, for Windows, macOS, Linux and Android; the desktop builds are Unity Mono, so the emulator is Assembly-CSharp.dll and the per-game tables are serialized into the level0 scene. The Windows and Linux 0.230b builds carry the same tables and the same emulation sources.
One NEC uPD7725 interpreter serves every cartridge whose header declares a DSP. RomLoader.GetROMType reads the cartridge type byte at $FFD6 and returns COProcessorType.DSP when the low nibble is 3 to 6 and the high nibble is 0, or when the high nibble is F and the subtype byte at $FFBF is 1 or 2. MainMemoryMap.InitSpecialChips builds the DSP1 object for that type alone. The DSP1 constructor picks the filename from a table keyed on the CRC32 of the 21 raw header title bytes, taken as Latin-1 and re-encoded UTF-8, falling back to dsp1b.rom when no entry matches. Words are assembled little endian, 2048 24-bit program words from offset 0 then 1024 16-bit data words from offset 6144.
Three locations are tried in order: the folder holding the loaded ROM, the Unity persistent data folder (ZEMU Software Inc./SUPERZSNES), then the folder holding the executable. None of them goes through the srm and bps path overrides. When all three miss, a "Need DSP ROM" dialog names the file and the chip runs on a zero-filled 8192-byte buffer.
No other file is read. SA-1, SPC7110, S-RTC, Cx4, OBC-1, Super Game Boy and the ST01x and ST018 enum entries build no chip, the SPC700 IPL is a 64-byte array in CPUSPC700, and the enhancement data, the audio replacement data and testgame.smc are Unity resources inside the build. Save RAM, save states, cheats, bps patches and MSU-1 packs are all named after the loaded ROM.
7 files | 7 required, 0 optional | 0 in repo, 7 missing
dsp1b.rom required missing
NEC uPD7725 DSP-1B microcode
- System: nintendo-snes
- Size: 8.0 KB
- CRC32:
465c4e1c - Aliases:
SNES_dsp1b.rom - Validation: crc32
- Source:
Assets/Scripts/SpecialChips/DSP1.cs:88-89,DSP1.cs:151-155,Assets/Scripts/SpecialChips/DSP1Core.cs:756-769 - Default for every DSP cartridge with no table entry, so it covers DSP-1 and DSP-1A titles as well. A mismatched CRC32 warns and the data is used anyway.
dsp2.rom required missing
NEC uPD7725 DSP-2 microcode
- System: nintendo-snes
- Size: 8.0 KB
- Aliases:
SNES_dsp2.rom - Source:
Assets/Scripts/SpecialChips/DSP1.cs:98-114,SUPERZSNES_Data/level0 - Selected for header title 'DUNGEON MASTER' (Dungeon Master).
dsp3.rom required missing
NEC uPD7725 DSP-3 microcode
- System: nintendo-snes
- Size: 8.0 KB
- Aliases:
SNES_dsp3.rom - Source:
Assets/Scripts/SpecialChips/DSP1.cs:98-114,SUPERZSNES_Data/level0 - Selected for the half-width katakana header title of SD Gundam GX, 'SD' then $B6 $DE $DD $C0 $DE $D1 then 'GX'.
dsp4.rom required missing
NEC uPD7725 DSP-4 microcode
- System: nintendo-snes
- Size: 8.0 KB
- Aliases:
SNES_dsp4.rom - Source:
Assets/Scripts/SpecialChips/DSP1.cs:98-114,SUPERZSNES_Data/level0 - Selected for header title 'TOP GEAR 3000' (Top Gear 3000).
st010.rom required missing
Seta ST010 microcode
- System: nintendo-snes
- Aliases:
SNES_st010.rom - Source:
Assets/Scripts/SpecialChips/DSP1.cs:98-114,SUPERZSNES_Data/level0 - Selected for header title 'F1 ROC II' with $00 as the 21st byte (F1 ROC II: Race of Champions).
st011.rom required missing
Seta ST011 microcode
- System: nintendo-snes
- Aliases:
SNES_st011.rom - Source:
Assets/Scripts/SpecialChips/DSP1.cs:98-114,SUPERZSNES_Data/level0 - Selected for header title '2DAN MORITA SHOUGI' with $00 as the 21st byte (Hayazashi Nidan Morita Shougi).
st018.rom required missing
Seta ST018 firmware
- System: nintendo-snes
- Aliases:
SNES_st018.rom - Source:
Assets/Scripts/SpecialChips/DSP1.cs:98-114,SUPERZSNES_Data/level0 - Selected for header title 'NIDAN MORITASHOGI2' (Hayazashi Nidan Morita Shougi 2).
Generated on 2026-08-23T16:12:06Z