Skip to content

Fuse - RetroBIOS

Type libretro
Classification Community forks
Source https://github.com/libretro/fuse-libretro
Upstream https://sourceforge.net/projects/fuse-emulator/
Version 1.6.0
Profiled 2026-03-23
Cores fuse
Systems sinclair-zxspectrum
Platform details

bios_mapping: - source_ref: src/compat/file.c:55-89, 129-223 - note: ROM resolution order in compat_file_open():

  1. Check mem_entries[] (18 embedded ROMs compiled as .h arrays)
  2. 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/spec48.c, fuse/machines/spec128.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 the fuse/machines directory. 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

fuse/128-0.rom optional in repo HLE fallback

fuse/128-1.rom optional in repo HLE fallback

fuse/plus2-0.rom optional in repo HLE fallback

fuse/plus2-1.rom optional in repo HLE fallback

fuse/plus3-0.rom optional in repo HLE fallback

fuse/plus3-1.rom optional in repo HLE fallback

fuse/plus3-2.rom optional in repo HLE fallback

fuse/plus3-3.rom optional in repo HLE fallback

fuse/plus3e-0.rom optional in repo HLE fallback

fuse/plus3e-1.rom optional in repo HLE fallback

fuse/plus3e-2.rom optional in repo HLE fallback

fuse/plus3e-3.rom optional in repo HLE fallback

fuse/se-0.rom optional in repo HLE fallback

fuse/se-1.rom optional in repo HLE fallback

fuse/tc2048.rom optional in repo HLE fallback

fuse/tc2068-0.rom optional in repo HLE fallback

fuse/tc2068-1.rom optional in repo HLE fallback

fuse/128p-0.rom required in repo

fuse/128p-1.rom required in repo

fuse/trdos.rom required in repo

fuse/gluck.rom required in repo

fuse/256s-0.rom required in repo

fuse/256s-1.rom required in repo

fuse/256s-2.rom required in repo

fuse/256s-3.rom required in repo

fuse/if1-2.rom optional in repo

fuse/disciple.rom optional in repo

fuse/plusd.rom optional in repo

fuse/didaktik80.rom optional in repo

fuse/opus.rom optional in repo

fuse/mf1.rom optional in repo

fuse/mf128.rom optional in repo

fuse/mf3.rom optional in repo

fuse/speccyboot-1.4.rom optional in repo

fuse/ttx2000s.rom optional in repo

fuse/usource.rom optional in repo

Generated on 2026-09-14T09:03:09Z