higan (SFC Accuracy)¶
Technical notes
The libretro target lives on the libretro branch of higan's own repository, merged with the v106 release: Emulator::Version is "106" (higan/emulator/emulator.hpp:15) and retro_get_system_info announces it as library_version under the name "higan (Super Famicom Accuracy)" (higan/target-libretro/libretro.cpp:405-412, higan/target-libretro/libretro-sfc.cpp:513). The buildbot recipe builds higan_sfc from that branch (libretro-super recipes/linux/cores-linux-x64-generic:71), whose last commit dates from 2017-11-19. The library is named higan_$(corename)_libretro with corename sfc (higan/target-libretro/GNUmakefile:1-11, higan/target-libretro/GNUmakefile:13-19). nSide, from which nside_sfc_balanced is built, refuses core=sfc at build time (nSide nSide/target-libretro/GNUmakefile:1-2).
The system manifest and the 64-byte SPC700 IPL ROM are compiled into the binary and served from memory (higan/target-libretro/libretro-sfc.cpp:364-396, higan/sfc/smp/smp.cpp:25-33).
Coprocessor firmware. A ROM is imported through icarus, whose heuristics detect the coprocessor from the cartridge header (icarus/heuristics/super-famicom.cpp:707-759) and write a manifest naming each firmware file with its size (icarus/heuristics/super-famicom.cpp:482-545). DSP1 games are given the DSP1B names, while dsp1.program.rom and dsp1.data.rom are named for the Campus Challenge '92 and Powerfest '94 cartridges (icarus/heuristics/super-famicom.cpp:623-640, icarus/heuristics/super-famicom.cpp:416-417, icarus/heuristics/super-famicom.cpp:437-438). When the image does not carry the firmware appended (icarus/heuristics/super-famicom.cpp:106-190), the importer reports the file as missing (icarus/core/super-famicom.cpp:64-71) and the target reads it through locate_libretro, appends it to the image and imports again (higan/target-libretro/libretro.cpp:105-141). locate_libretro tries the system directory, then higan/ under the user's config and data directories (higan/target-libretro/libretro.cpp:15-35). No hash is checked. The sizes below are those the manifest declares, and a shorter file leaves the second import short and the load fails.
The icarus database is read from Database/ next to the frontend executable or under the icarus config and data directories, and takes precedence over the heuristics when the image's SHA-256 is listed (icarus/core/core.cpp:1-16, icarus/icarus.cpp:7-15, icarus/core/super-famicom.cpp:17-24). It names dsp1.program.rom and dsp1.data.rom for several DSP1 titles and sgb.boot.rom for the Super Game Boy cartridge.
Super Game Boy. Loading a .gb or .gbc file selects the folder named by the higan_sfc_sgb_bios option, SGB1.sfc/ by default or SGB2.sfc/ (higan/target-libretro/libretro-sfc.cpp:154-156, higan/target-libretro/libretro-sfc.cpp:354). program.rom is looked up in that folder, then in SGB.sfc/ and Super GameBoy.sfc/, and the folder's manifest is generated from its program.rom and *.boot.rom files (higan/target-libretro/libretro-sfc.cpp:202-243, icarus/core/super-famicom.cpp:1-11). The heuristics recognise the cartridge by its header and name the boot ROM sgb1.boot.rom or sgb2.boot.rom (icarus/heuristics/super-famicom.cpp:612-621, icarus/heuristics/super-famicom.cpp:225-245). The Game Boy system opens that name from the folder first and from the system directory root as a fallback (higan/gb/system/system.cpp:54-65, higan/sfc/coprocessor/icd2/icd2.cpp:34-38, higan/target-libretro/libretro.cpp:200-278). Once a Game Boy image is loaded both files are mandatory: a missing program.rom fails load_special_bios, a missing boot ROM sets the failure flag, and retro_load_game returns false (higan/target-libretro/libretro-sfc.cpp:223-227, higan/target-libretro/libretro.cpp:635-642). The source tree ships no copy of the boot ROMs or of the coprocessor firmware.
21 files | 0 required, 21 optional | 21 in repo, 0 missing
dsp1.program.rom optional in repo #
- System: nintendo-snes
- Size: 6.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:416,icarus/heuristics/super-famicom.cpp:437 - Collection copy:
bios/Nintendo/SNES/dsp1.program.rom - Platforms: lakka
dsp1.program.rom, retroarchdsp1.program.rom, retropiedsp1.program.rom, rommsnes/dsp1.program.rom - Named for the Campus Challenge '92 and Powerfest '94 cartridges and by the icarus database. Other DSP1 games use dsp1b.program.rom.
dsp1.data.rom optional in repo #
- System: nintendo-snes
- Size: 2.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:417,icarus/heuristics/super-famicom.cpp:438 - Collection copy:
bios/Nintendo/SNES/dsp1.data.rom - Platforms: lakka
dsp1.data.rom, retroarchdsp1.data.rom, retrodeckbios/dsp1.data.rom, retropiedsp1.data.rom, rommsnes/dsp1.data.rom - Named for the Campus Challenge '92 and Powerfest '94 cartridges and by the icarus database. Other DSP1 games use dsp1b.data.rom.
dsp1b.program.rom optional in repo #
- System: nintendo-snes
- Size: 6.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:482,icarus/heuristics/super-famicom.cpp:712-720 - Collection copy:
bios/Nintendo/SNES/dsp1b.program.rom - Platforms: lakka
dsp1b.program.rom, retroarchdsp1b.program.rom, retrodeckbios/dsp1b.program.rom, retropiedsp1b.program.rom, rommsnes/dsp1b.program.rom
dsp1b.data.rom optional in repo #
- System: nintendo-snes
- Size: 2.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:483,icarus/heuristics/super-famicom.cpp:712-720 - Collection copy:
bios/Nintendo/SNES/dsp1b.data.rom - Platforms: lakka
dsp1b.data.rom, retroarchdsp1b.data.rom, retrodeckbios/dsp1b.data.rom, retropiedsp1b.data.rom, rommsnes/dsp1b.data.rom
dsp2.program.rom optional in repo #
- System: nintendo-snes
- Size: 6.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:492,icarus/heuristics/super-famicom.cpp:734 - Collection copy:
bios/Nintendo/SNES/dsp2.program.rom - Platforms: lakka
dsp2.program.rom, retroarchdsp2.program.rom, retrodeckbios/dsp2.program.rom, retropiedsp2.program.rom, rommsnes/dsp2.program.rom
dsp2.data.rom optional in repo #
- System: nintendo-snes
- Size: 2.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:493,icarus/heuristics/super-famicom.cpp:734 - Collection copy:
bios/Nintendo/SNES/dsp2.data.rom - Platforms: lakka
dsp2.data.rom, retroarchdsp2.data.rom, retrodeckbios/dsp2.data.rom, retropiedsp2.data.rom, rommsnes/dsp2.data.rom
dsp3.program.rom optional in repo #
- System: nintendo-snes
- Size: 6.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:502,icarus/heuristics/super-famicom.cpp:738 - Collection copy:
bios/Nintendo/SNES/dsp3.program.rom - Platforms: lakka
dsp3.program.rom, retroarchdsp3.program.rom, retrodeckbios/dsp3.program.rom, retropiedsp3.program.rom, rommsnes/dsp3.program.rom
dsp3.data.rom optional in repo #
- System: nintendo-snes
- Size: 2.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:503,icarus/heuristics/super-famicom.cpp:738 - Collection copy:
bios/Nintendo/SNES/dsp3.data.rom - Platforms: lakka
dsp3.data.rom, retroarchdsp3.data.rom, retrodeckbios/dsp3.data.rom, retropiedsp3.data.rom, rommsnes/dsp3.data.rom
dsp4.program.rom optional in repo #
- System: nintendo-snes
- Size: 6.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:512,icarus/heuristics/super-famicom.cpp:742 - Collection copy:
bios/Nintendo/SNES/dsp4.program.rom - Platforms: lakka
dsp4.program.rom, retroarchdsp4.program.rom, retrodeckbios/dsp4.program.rom, retropiedsp4.program.rom, rommsnes/dsp4.program.rom
dsp4.data.rom optional in repo #
- System: nintendo-snes
- Size: 2.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:513,icarus/heuristics/super-famicom.cpp:742 - Collection copy:
bios/Nintendo/SNES/dsp4.data.rom - Platforms: lakka
dsp4.data.rom, retroarchdsp4.data.rom, retrodeckbios/dsp4.data.rom, retropiedsp4.data.rom, rommsnes/dsp4.data.rom
cx4.data.rom optional in repo #
- System: nintendo-snes
- Size: 3.0 KB
- Source:
higan/sfc/cartridge/load.cpp:201-225,icarus/heuristics/super-famicom.cpp:255,icarus/heuristics/super-famicom.cpp:708 - Collection copy:
bios/Nintendo/SNES/SNES_cx4.rom - Platforms: bizhawk
SNES_cx4.rom, lakkacx4.data.rom, retroarchcx4.data.rom, retrodeckbios/cx4.data.rom, retropiecx4.data.rom, rommsnes/cx4.data.rom
st010.program.rom optional in repo #
- System: nintendo-snes
- Size: 48.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:522,icarus/heuristics/super-famicom.cpp:750 - Collection copy:
bios/Nintendo/SNES/st010.program.rom - Platforms: lakka
st010.program.rom, retroarchst010.program.rom, retrodeckbios/st010.program.rom, retropiest010.program.rom, rommsnes/st010.program.rom
st010.data.rom optional in repo #
- System: nintendo-snes
- Size: 4.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:523,icarus/heuristics/super-famicom.cpp:750 - Collection copy:
bios/Nintendo/SNES/st010.data.rom - Platforms: lakka
st010.data.rom, retroarchst010.data.rom, retrodeckbios/st010.data.rom, retropiest010.data.rom, rommsnes/st010.data.rom
st011.program.rom optional in repo #
- System: nintendo-snes
- Size: 48.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:533,icarus/heuristics/super-famicom.cpp:754 - Collection copy:
bios/Nintendo/SNES/st011.program.rom - Platforms: lakka
st011.program.rom, retroarchst011.program.rom, retrodeckbios/st011.program.rom, retropiest011.program.rom, rommsnes/st011.program.rom
st011.data.rom optional in repo #
- System: nintendo-snes
- Size: 4.0 KB
- Source:
higan/sfc/cartridge/load.cpp:227-257,icarus/heuristics/super-famicom.cpp:534,icarus/heuristics/super-famicom.cpp:754 - Collection copy:
bios/Nintendo/SNES/st011.data.rom - Platforms: lakka
st011.data.rom, retroarchst011.data.rom, retrodeckbios/st011.data.rom, retropiest011.data.rom, rommsnes/st011.data.rom
st018.program.rom optional in repo #
- System: nintendo-snes
- Size: 128.0 KB
- Source:
higan/sfc/cartridge/load.cpp:185-199,icarus/heuristics/super-famicom.cpp:544,icarus/heuristics/super-famicom.cpp:758 - Collection copy:
bios/Nintendo/SNES/st018.program.rom - Platforms: lakka
st018.program.rom, retroarchst018.program.rom, retrodeckbios/st018.program.rom, retropiest018.program.rom, rommsnes/st018.program.rom
st018.data.rom optional in repo #
- System: nintendo-snes
- Size: 32.0 KB
- Source:
higan/sfc/cartridge/load.cpp:185-199,icarus/heuristics/super-famicom.cpp:545,icarus/heuristics/super-famicom.cpp:758 - Collection copy:
bios/Nintendo/SNES/st018.data.rom - Platforms: lakka
st018.data.rom, retroarchst018.data.rom, retrodeck, retropiest018.data.rom, rommsnes/st018.data.rom
program.rom optional in repo #
- Path:
SGB1.sfc/program.rom - System: nintendo-sgb
- Source:
higan/target-libretro/libretro-sfc.cpp:202-243,higan/sfc/cartridge/load.cpp:77-80 - Collection copy:
bios/Nintendo/Super Game Boy/SGB1.sfc/program.rom - Platforms: batocera
SGB1.sfc, lakkaSGB1.sfc,SGB1.sfc/program.rom,sgb1.program.rom, misterfpgaSGB/Super Game Boy.sfc, recalboxsgb/SGB1.sfc, retroarchSGB1.sfc,SGB1.sfc/program.rom,sgb1.program.rom, retrobatSGB1.sfc, retrodeckbios/SGB1.sfc,bios/sgb1.program.rom, retropieSGB1.sfc,SGB1.sfc/program.rom,sgb1.program.rom, rommsuper-gb/SGB1.sfc,super-gb/sgb1.program.rom - Also looked up as SGB.sfc/program.rom and Super GameBoy.sfc/program.rom.
sgb1.boot.rom optional in repo #
- Path:
SGB1.sfc/sgb1.boot.rom - System: nintendo-sgb
- Size: 256 B
- Aliases:
sgb.boot.rom - Source:
higan/gb/system/system.cpp:54-65,icarus/heuristics/super-famicom.cpp:232,icarus/heuristics/super-famicom.cpp:619,icarus/core/super-famicom.cpp:17-24 - Collection copy:
bios/Nintendo/Game Boy/GB_sgb.bin - Platforms: batocera
sgb_bios.bin,sgb_boot.bin, bizhawkGB_sgb.bin, lakkaSGB1.sfc/sgb1.boot.rom,sgb.boot.rom,sgb_bios.bin,sgb_boot.bin, recalboxsgb/sgb_bios.bin, retroarchSGB1.sfc/sgb1.boot.rom,sgb.boot.rom,sgb_bios.bin,sgb_boot.bin, retrobatsgb_boot.bin, retrodeckbios/sgb1.boot.rom,bios/sgb_bios.bin, retropieSGB1.sfc/sgb1.boot.rom,sgb.boot.rom,sgb_bios.bin,sgb_boot.bin, rommsuper-gb/sgb1.boot.rom,super-gb/sgb_bios.bin - Falls back to sgb1.boot.rom at the system directory root. Named sgb.boot.rom by the icarus database entry for the cartridge.
program.rom optional in repo #
- Path:
SGB2.sfc/program.rom - System: nintendo-sgb
- Source:
higan/target-libretro/libretro-sfc.cpp:202-243,higan/sfc/cartridge/load.cpp:77-80 - Collection copy:
bios/Nintendo/Super Game Boy/SGB2.sfc/program.rom - Platforms: batocera
SGB2.sfc, bizhawkSNES_SGB2_(J).sfc, lakkaSGB2.sfc,SGB2.sfc/program.rom,sgb2.program.rom, misterfpgaSGB/Super Game Boy 2.sfc, recalboxsgb/SGB2.sfc, retroarchSGB2.sfc,SGB2.sfc/program.rom,sgb2.program.rom, retrobatSGB2.sfc, retrodeckbios/SGB2.sfc,bios/sgb2.boot.rom, retropieSGB2.sfc,SGB2.sfc/program.rom,sgb2.program.rom, rommsuper-gb/SGB2.sfc,super-gb/sgb2.program.rom - Selected by the higan_sfc_sgb_bios option.
sgb2.boot.rom optional in repo #
- Path:
SGB2.sfc/sgb2.boot.rom - System: nintendo-sgb
- Size: 256 B
- Source:
higan/gb/system/system.cpp:54-65,icarus/heuristics/super-famicom.cpp:243,icarus/heuristics/super-famicom.cpp:614 - Collection copy:
bios/Nintendo/Game Boy/GB_sgb2.bin - Platforms: batocera
sgb2_boot.bin, bizhawkGB_sgb2.bin, lakkaSGB2.sfc/sgb2.boot.rom,sgb2_bios.bin,sgb2_boot.bin, retroarchSGB2.sfc/sgb2.boot.rom,sgb2_bios.bin,sgb2_boot.bin, retrobatsgb2_boot.bin, retrodeckbios/sgb2_boot.bin, retropieSGB2.sfc/sgb2.boot.rom,sgb2_bios.bin,sgb2_boot.bin, rommsuper-gb/sgb2.boot.rom,super-gb/sgb2_bios.bin - Falls back to sgb2.boot.rom at the system directory root.
Generated on 2026-10-20T03:49:41Z