Fuse - RetroBIOS¶
Platform details
bios_mapping: - source_ref: src/compat/file.c:55-89, 129-223 - note: ROM resolution order in compat_file_open():
- Check mem_entries[] (18 embedded ROMs compiled as .h arrays)
-
If not found, try {system_dir}/fuse/{filename} on filesystem The path is constructed by concatenating system_dir + "/fuse" + path where path includes the leading slash from fuse's internal path.
embedded_roms: - source_ref: src/compat/file.c:55-73 - note: 18 ROMs embedded in the binary via .h headers generated from .rom files: 48.rom, 128-0.rom, 128-1.rom, plus2-0.rom, plus2-1.rom, plus3-0/1/2/3.rom, plus3e-0/1/2/3.rom, se-0.rom, se-1.rom, tc2048.rom, tc2068-0.rom, tc2068-1.rom. disciple.rom, plusd.rom, speccyboot-1.4.rom are present in the repo fuse/roms/ directory but NOT in mem_entries[], so they are loaded from the filesystem only.
machine_rom_map: - source_ref: fuse/settings.c:209-260, fuse/machines/*.c - note: Spectrum 16K: 48.rom (1 ROM) Spectrum 48K: 48.rom (1 ROM) Spectrum 48K NTSC: 48.rom (1 ROM) Spectrum 128K: 128-0.rom, 128-1.rom (2 ROMs) Spectrum +2: plus2-0.rom, plus2-1.rom (2 ROMs) Spectrum +2A: plus3-0.rom, plus3-1.rom, plus3-2.rom, plus3-3.rom (4 ROMs) Spectrum +3: plus3-0.rom, plus3-1.rom, plus3-2.rom, plus3-3.rom (4 ROMs) Spectrum +3e: plus3e-0/1/2/3.rom (4 ROMs) Spectrum SE: se-0.rom, se-1.rom (2 ROMs) Timex TC2048: tc2048.rom (1 ROM) Timex TC2068: tc2068-0.rom, tc2068-1.rom (2 ROMs) Timex TS2068: tc2068-0.rom, tc2068-1.rom (2 ROMs, same files) Pentagon 128K: 128p-0.rom, 128p-1.rom, trdos.rom (3 ROMs) Pentagon 512K: 128p-0.rom, 128p-1.rom, trdos.rom, gluck.rom (4 ROMs) Pentagon 1024: 128p-0.rom, 128p-1.rom, trdos.rom, gluck.rom (4 ROMs) Scorpion 256K: 256s-0.rom, 256s-1.rom, 256s-2.rom, 256s-3.rom (4 ROMs)
rom_copyright: - source_ref: fuse/roms/README.copyright - note: Most ROMs are copyright Amstrad. Amstrad allows free distribution but retains copyright. Selling ROMs standalone is not permitted. SE ROMs are GPLv2+. DISCiPLE/+D ROMs are copyright Datel, distribution allowed. SpeccyBoot ROM is MIT licensed.
Technical notes
Fuse (Free Unix Spectrum Emulator) ported to libretro. Emulates the ZX Spectrum family: 16K, 48K, 48K NTSC, 128K, +2, +2A, +3, +3e, SE, Timex TC2048, TC2068, TS2068, Pentagon 128K/512K/1024, and Scorpion 256K.
ROM loading is in src/compat/file.c:91-118. The core first checks an internal table of embedded ROMs (mem_entries[]). If the ROM filename is not found there, it falls back to the filesystem at {system_dir}/fuse/{rom_filename} (file.c:160-175).
Embedded ROMs cover 48K-family, 128K, +2, +3, +3e, SE, TC2048, TC2068. Pentagon, Scorpion, and peripheral ROMs are NOT embedded and must be placed in {system_dir}/fuse/ by the user.
Default ROM filenames are set in fuse/settings.c:209-260. Each machine type loads its ROMs during reset via machine_load_rom() calls in fuse/machines/*.c files. All ROMs are size-validated at load time (fuse/machine.c:289).
The +2A reuses the +3 ROMs (plus3-0/1/2/3.rom) per settings.c:234-237. The TS2068 reuses TC2068 ROMs (tc2068-0/1.rom) per settings.c:257-258. Spectrum 16K uses 48.rom per settings.c:211.
Upstream FUSE 1.7.0 has SP0256 speech chip (sp0256-al2.rom) and Currah uSpeech (uspeech.rom) peripherals not ported to libretro.
37 files | 8 required, 29 optional | 37 in repo, 0 missing | 18 with HLE fallback
fuse/48.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
5ea7c2b82467... - MD5:
4c42a2f07521... - Validation: size
- Source:
fuse/settings.c:211-212, fuse/machines/spec48.c:76 - Spectrum 48K ROM. Also used for 16K and 48K NTSC. Embedded in core.
fuse/128-0.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
4f4b11ec2232... - MD5:
b4d2692115a9... - Validation: size
- Source:
fuse/settings.c:209, fuse/machines/spec128.c:70 - Spectrum 128K ROM 0 (editor). Embedded in core.
fuse/128-1.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
80080644289e... - MD5:
6e09e5d3c4ae... - Validation: size
- Source:
fuse/settings.c:210, fuse/machines/spec128.c:73 - Spectrum 128K ROM 1 (48 BASIC). Embedded in core.
fuse/plus2-0.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
72703f9a3e73... - MD5:
4ed7af463630... - Validation: size
- Source:
fuse/settings.c:232, fuse/machines/specplus2.c:70 - Spectrum +2 ROM 0. Embedded in core.
fuse/plus2-1.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
de8b0d2d0379... - MD5:
b3db95931cc8... - Validation: size
- Source:
fuse/settings.c:233, fuse/machines/specplus2.c:73 - Spectrum +2 ROM 1. Embedded in core.
fuse/plus3-0.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
e319ed08b4d5... - MD5:
9833b8b73384... - Validation: size
- Source:
fuse/settings.c:234,238, fuse/machines/specplus3.c:197 - Spectrum +3 ROM 0. Also used for +2A. Embedded in core.
fuse/plus3-1.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
c9969fc36095... - MD5:
0f711ceb5ab8... - Validation: size
- Source:
fuse/settings.c:235,239, fuse/machines/specplus3.c:200 - Spectrum +3 ROM 1. Also used for +2A. Embedded in core.
fuse/plus3-2.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
22e50c6ba415... - MD5:
3b6dd659d5e4... - Validation: size
- Source:
fuse/settings.c:236,240, fuse/machines/specplus3.c:203 - Spectrum +3 ROM 2. Also used for +2A. Embedded in core.
fuse/plus3-3.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
65f031caa814... - MD5:
a148bcc575e5... - Validation: size
- Source:
fuse/settings.c:237,241, fuse/machines/specplus3.c:206 - Spectrum +3 ROM 3. Also used for +2A. Embedded in core.
fuse/plus3e-0.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
649fbd233490... - MD5:
bc123f625e24... - Validation: size
- Source:
fuse/settings.c:242, fuse/machines/specplus3e.c:70 - Spectrum +3e ROM 0. Embedded in core.
fuse/plus3e-1.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
f12198108cbb... - MD5:
617364264c58... - Validation: size
- Source:
fuse/settings.c:243, fuse/machines/specplus3e.c:73 - Spectrum +3e ROM 1. Embedded in core.
fuse/plus3e-2.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
773633dce5ba... - MD5:
c363e95dcd0a... - Validation: size
- Source:
fuse/settings.c:244, fuse/machines/specplus3e.c:76 - Spectrum +3e ROM 2. Embedded in core.
fuse/plus3e-3.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
65f031caa814... - MD5:
a148bcc575e5... - Validation: size
- Source:
fuse/settings.c:245, fuse/machines/specplus3e.c:79 - Spectrum +3e ROM 3. Same as plus3-3.rom. Embedded in core.
fuse/se-0.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
8608328d7dd6... - MD5:
fb3f86eb1e5a... - Validation: size
- Source:
fuse/settings.c:251, fuse/machines/spec_se.c:89 - Spectrum SE ROM 0. Embedded in core.
fuse/se-1.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
3be5de57dd3b... - MD5:
88de4a312908... - Validation: size
- Source:
fuse/settings.c:252, fuse/machines/spec_se.c:92 - Spectrum SE ROM 1. Embedded in core.
fuse/tc2048.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
febb2d495b6e... - MD5:
9dd7ecf784a6... - Validation: size
- Source:
fuse/settings.c:254, fuse/machines/tc2048.c:80 - Timex TC2048 ROM. Embedded in core.
fuse/tc2068-0.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 16.0 KB
- SHA1:
1446cb2780a9... - MD5:
55d462fccc6c... - Validation: size
- Source:
fuse/settings.c:255,257, fuse/machines/tc2068.c:138 - Timex TC2068 ROM 0. Also used for TS2068. Embedded in core.
fuse/tc2068-1.rom optional in repo HLE fallback
- System: sinclair-zxspectrum
- Size: 8.0 KB
- SHA1:
7e265a2c1f62... - MD5:
575d203c6e15... - Validation: size
- Source:
fuse/settings.c:256,258, fuse/machines/tc2068.c:141 - Timex TC2068 ROM 1 (EXROM). Also used for TS2068. Embedded in core.
fuse/128p-0.rom required in repo
- System: sinclair-zxspectrum
- Size: 16.0 KB
- Validation: size
- Source:
fuse/settings.c:221,225,229, fuse/machines/pentagon.c:135 - Pentagon 128K/512K/1024 ROM 0. Required for Pentagon machines.
fuse/128p-1.rom required in repo
- System: sinclair-zxspectrum
- Size: 16.0 KB
- Validation: size
- Source:
fuse/settings.c:222,226,230, fuse/machines/pentagon.c:138 - Pentagon 128K/512K/1024 ROM 1. Required for Pentagon machines.
fuse/trdos.rom required in repo
- System: sinclair-zxspectrum
- Size: 16.0 KB
- Validation: size
- Source:
fuse/settings.c:223,227,231, fuse/machines/pentagon.c:141 - TR-DOS ROM (Beta 128 disk interface). Used by Pentagon and Scorpion.
fuse/gluck.rom required in repo
- System: sinclair-zxspectrum
- Size: 16.0 KB
- Validation: size
- Source:
fuse/settings.c:224,228, fuse/machines/pentagon512.c:82 - Gluck ROM. Required for Pentagon 512K and 1024.
fuse/256s-0.rom required in repo
- System: sinclair-zxspectrum
- Size: 16.0 KB
- Validation: size
- Source:
fuse/settings.c:247, fuse/machines/scorpion.c:76 - Scorpion 256K ROM 0. Required for Scorpion machine.
fuse/256s-1.rom required in repo
- System: sinclair-zxspectrum
- Size: 16.0 KB
- Validation: size
- Source:
fuse/settings.c:248, fuse/machines/scorpion.c:79 - Scorpion 256K ROM 1. Required for Scorpion machine.
fuse/256s-2.rom required in repo
- System: sinclair-zxspectrum
- Size: 16.0 KB
- Validation: size
- Source:
fuse/settings.c:249, fuse/machines/scorpion.c:82 - Scorpion 256K ROM 2. Required for Scorpion machine.
fuse/256s-3.rom required in repo
- System: sinclair-zxspectrum
- Size: 16.0 KB
- Validation: size
- Source:
fuse/settings.c:250, fuse/machines/scorpion.c:85 - Scorpion 256K ROM 3 (TR-DOS). Required for Scorpion machine.
fuse/if1-2.rom optional in repo
- System: sinclair-zxspectrum
- Size: 8.0 KB
- Validation: size
- Source:
fuse/settings.c:216, fuse/peripherals/if1.c:403 - Interface 1 ROM (edition 2). Loaded by peripherals/if1.c:403.
fuse/disciple.rom optional in repo
- System: sinclair-zxspectrum
- Size: 8.0 KB
- SHA1:
9a75ed4b293f... - MD5:
78e61a2a0212... - Validation: size
- Source:
fuse/settings.c:215, fuse/peripherals/disk/disciple.c:279 - DISCiPLE disk interface ROM. Bundled in repo but not in mem_entries[].
fuse/plusd.rom optional in repo
- System: sinclair-zxspectrum
- Size: 8.0 KB
- SHA1:
6b841dc5797e... - MD5:
42e5de16fb5e... - Validation: size
- Source:
fuse/settings.c:246, fuse/peripherals/disk/plusd.c:239 - +D disk interface ROM. Bundled in repo but not in mem_entries[].
fuse/didaktik80.rom optional in repo
- System: sinclair-zxspectrum
- Size: 14.0 KB
- Validation: size
- Source:
fuse/settings.c:214, fuse/peripherals/disk/didaktik.c:236 - Didaktik 80 disk interface ROM. Not embedded.
fuse/opus.rom optional in repo
- System: sinclair-zxspectrum
- Size: 8.0 KB
- Validation: size
- Source:
fuse/settings.c:220, fuse/peripherals/disk/opus.c:210 - Opus Discovery disk interface ROM. Not embedded.
fuse/mf1.rom optional in repo
- System: sinclair-zxspectrum
- Size: 8.0 KB
- Validation: size
- Source:
fuse/settings.c:217, fuse/peripherals/multiface.c:224 - Multiface 1 ROM. Not embedded.
fuse/mf128.rom optional in repo
- System: sinclair-zxspectrum
- Size: 8.0 KB
- Validation: size
- Source:
fuse/settings.c:218, fuse/peripherals/multiface.c:225 - Multiface 128 ROM. Not embedded.
fuse/mf3.rom optional in repo
- System: sinclair-zxspectrum
- Size: 8.0 KB
- Validation: size
- Source:
fuse/settings.c:219, fuse/peripherals/multiface.c:226 - Multiface 3 ROM. Not embedded.
fuse/speccyboot-1.4.rom optional in repo
- System: sinclair-zxspectrum
- Size: 8.0 KB
- SHA1:
16af6f052b38... - MD5:
c54aa8f374b0... - Validation: size
- Source:
fuse/settings.c:253, fuse/peripherals/speccyboot.c:148 - SpeccyBoot ethernet ROM. Bundled in repo but not in mem_entries[].
fuse/ttx2000s.rom optional in repo
- System: sinclair-zxspectrum
- Size: 8.0 KB
- Validation: size
- Source:
fuse/settings.c:259, fuse/peripherals/ttx2000s.c:198 - TTX2000S teletext adapter ROM. Not embedded.
fuse/usource.rom optional in repo
- System: sinclair-zxspectrum
- Size: 8.0 KB
- Validation: size
- Source:
fuse/settings.c:260, fuse/peripherals/usource.c:129 - Currah uSource ROM. Not embedded.
Generated on 2026-04-18T08:05:07Z