{
  "count": 1,
  "generated_at": "2026-10-20T02:57:31Z",
  "items": [
    {
      "id": "higan_sfc",
      "profile": {
        "core_classification": "frozen_snapshot",
        "core_version": "106",
        "cores": [
          "higan_sfc"
        ],
        "display_name": "Nintendo - SNES / Famicom (higan Accuracy)",
        "emulator": "higan (SFC Accuracy)",
        "files": [
          {
            "name": "dsp1.program.rom",
            "note": "Named for the Campus Challenge '92 and Powerfest '94 cartridges and by the icarus database. Other DSP1 games use dsp1b.program.rom.",
            "required": false,
            "size": 6144,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:416, icarus/heuristics/super-famicom.cpp:437",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp1.data.rom",
            "note": "Named for the Campus Challenge '92 and Powerfest '94 cartridges and by the icarus database. Other DSP1 games use dsp1b.data.rom.",
            "required": false,
            "size": 2048,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:417, icarus/heuristics/super-famicom.cpp:438",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp1b.program.rom",
            "required": false,
            "size": 6144,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:482, icarus/heuristics/super-famicom.cpp:712-720",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp1b.data.rom",
            "required": false,
            "size": 2048,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:483, icarus/heuristics/super-famicom.cpp:712-720",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp2.program.rom",
            "required": false,
            "size": 6144,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:492, icarus/heuristics/super-famicom.cpp:734",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp2.data.rom",
            "required": false,
            "size": 2048,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:493, icarus/heuristics/super-famicom.cpp:734",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp3.program.rom",
            "required": false,
            "size": 6144,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:502, icarus/heuristics/super-famicom.cpp:738",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp3.data.rom",
            "required": false,
            "size": 2048,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:503, icarus/heuristics/super-famicom.cpp:738",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp4.program.rom",
            "required": false,
            "size": 6144,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:512, icarus/heuristics/super-famicom.cpp:742",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp4.data.rom",
            "required": false,
            "size": 2048,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:513, icarus/heuristics/super-famicom.cpp:742",
            "system": "nintendo-snes"
          },
          {
            "name": "cx4.data.rom",
            "required": false,
            "size": 3072,
            "source_ref": "higan/sfc/cartridge/load.cpp:201-225, icarus/heuristics/super-famicom.cpp:255, icarus/heuristics/super-famicom.cpp:708",
            "system": "nintendo-snes"
          },
          {
            "name": "st010.program.rom",
            "required": false,
            "size": 49152,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:522, icarus/heuristics/super-famicom.cpp:750",
            "system": "nintendo-snes"
          },
          {
            "name": "st010.data.rom",
            "required": false,
            "size": 4096,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:523, icarus/heuristics/super-famicom.cpp:750",
            "system": "nintendo-snes"
          },
          {
            "name": "st011.program.rom",
            "required": false,
            "size": 49152,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:533, icarus/heuristics/super-famicom.cpp:754",
            "system": "nintendo-snes"
          },
          {
            "name": "st011.data.rom",
            "required": false,
            "size": 4096,
            "source_ref": "higan/sfc/cartridge/load.cpp:227-257, icarus/heuristics/super-famicom.cpp:534, icarus/heuristics/super-famicom.cpp:754",
            "system": "nintendo-snes"
          },
          {
            "name": "st018.program.rom",
            "required": false,
            "size": 131072,
            "source_ref": "higan/sfc/cartridge/load.cpp:185-199, icarus/heuristics/super-famicom.cpp:544, icarus/heuristics/super-famicom.cpp:758",
            "system": "nintendo-snes"
          },
          {
            "name": "st018.data.rom",
            "required": false,
            "size": 32768,
            "source_ref": "higan/sfc/cartridge/load.cpp:185-199, icarus/heuristics/super-famicom.cpp:545, icarus/heuristics/super-famicom.cpp:758",
            "system": "nintendo-snes"
          },
          {
            "name": "program.rom",
            "note": "Also looked up as SGB.sfc/program.rom and Super GameBoy.sfc/program.rom.",
            "path": "SGB1.sfc/program.rom",
            "required": false,
            "source_ref": "higan/target-libretro/libretro-sfc.cpp:202-243, higan/sfc/cartridge/load.cpp:77-80",
            "system": "nintendo-sgb"
          },
          {
            "aliases": [
              "sgb.boot.rom"
            ],
            "name": "sgb1.boot.rom",
            "note": "Falls back to sgb1.boot.rom at the system directory root. Named sgb.boot.rom by the icarus database entry for the cartridge.",
            "path": "SGB1.sfc/sgb1.boot.rom",
            "required": false,
            "size": 256,
            "source_ref": "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",
            "system": "nintendo-sgb"
          },
          {
            "name": "program.rom",
            "note": "Selected by the higan_sfc_sgb_bios option.",
            "path": "SGB2.sfc/program.rom",
            "required": false,
            "source_ref": "higan/target-libretro/libretro-sfc.cpp:202-243, higan/sfc/cartridge/load.cpp:77-80",
            "system": "nintendo-sgb"
          },
          {
            "name": "sgb2.boot.rom",
            "note": "Falls back to sgb2.boot.rom at the system directory root.",
            "path": "SGB2.sfc/sgb2.boot.rom",
            "required": false,
            "size": 256,
            "source_ref": "higan/gb/system/system.cpp:54-65, icarus/heuristics/super-famicom.cpp:243, icarus/heuristics/super-famicom.cpp:614",
            "system": "nintendo-sgb"
          }
        ],
        "notes": "The libretro target lives on the libretro branch of higan's own repository,\nmerged with the v106 release: Emulator::Version is \"106\"\n(higan/emulator/emulator.hpp:15) and retro_get_system_info announces it as\nlibrary_version under the name \"higan (Super Famicom Accuracy)\"\n(higan/target-libretro/libretro.cpp:405-412,\nhigan/target-libretro/libretro-sfc.cpp:513). The buildbot recipe builds\nhigan_sfc from that branch (libretro-super\nrecipes/linux/cores-linux-x64-generic:71), whose last commit dates from\n2017-11-19. The library is named higan_$(corename)_libretro with corename\nsfc (higan/target-libretro/GNUmakefile:1-11,\nhigan/target-libretro/GNUmakefile:13-19). nSide, from which\nnside_sfc_balanced is built, refuses core=sfc at build time\n(nSide nSide/target-libretro/GNUmakefile:1-2).\n\nThe system manifest and the 64-byte SPC700 IPL ROM are compiled into the\nbinary and served from memory (higan/target-libretro/libretro-sfc.cpp:364-396,\nhigan/sfc/smp/smp.cpp:25-33).\n\nCoprocessor firmware. A ROM is imported through icarus, whose heuristics\ndetect the coprocessor from the cartridge header\n(icarus/heuristics/super-famicom.cpp:707-759) and write a manifest naming\neach firmware file with its size\n(icarus/heuristics/super-famicom.cpp:482-545). DSP1 games are given the\nDSP1B names, while dsp1.program.rom and dsp1.data.rom are named for the Campus\nChallenge '92 and Powerfest '94 cartridges\n(icarus/heuristics/super-famicom.cpp:623-640,\nicarus/heuristics/super-famicom.cpp:416-417,\nicarus/heuristics/super-famicom.cpp:437-438). When the image does not carry\nthe firmware appended (icarus/heuristics/super-famicom.cpp:106-190), the\nimporter reports the file as missing (icarus/core/super-famicom.cpp:64-71)\nand the target reads it through locate_libretro, appends it to the image\nand imports again (higan/target-libretro/libretro.cpp:105-141).\nlocate_libretro tries the system directory, then higan/ under the user's\nconfig and data directories (higan/target-libretro/libretro.cpp:15-35). No\nhash is checked. The sizes below are those the manifest declares, and a\nshorter file leaves the second import short and the load fails.\n\nThe icarus database is read from Database/ next to the frontend\nexecutable or under the icarus config and data directories, and takes\nprecedence over the heuristics when the image's SHA-256 is listed\n(icarus/core/core.cpp:1-16, icarus/icarus.cpp:7-15,\nicarus/core/super-famicom.cpp:17-24). It names dsp1.program.rom and\ndsp1.data.rom for several DSP1 titles and sgb.boot.rom for the Super Game\nBoy cartridge.\n\nSuper Game Boy. Loading a .gb or .gbc file selects the folder named by the\nhigan_sfc_sgb_bios option, SGB1.sfc/ by default or SGB2.sfc/\n(higan/target-libretro/libretro-sfc.cpp:154-156,\nhigan/target-libretro/libretro-sfc.cpp:354). program.rom is looked up in\nthat folder, then in SGB.sfc/ and Super GameBoy.sfc/, and the folder's\nmanifest is generated from its program.rom and *.boot.rom files\n(higan/target-libretro/libretro-sfc.cpp:202-243,\nicarus/core/super-famicom.cpp:1-11). The heuristics recognise the cartridge\nby its header and name the boot ROM sgb1.boot.rom or sgb2.boot.rom\n(icarus/heuristics/super-famicom.cpp:612-621,\nicarus/heuristics/super-famicom.cpp:225-245). The Game Boy system opens\nthat name from the folder first and from the system directory root as a\nfallback (higan/gb/system/system.cpp:54-65,\nhigan/sfc/coprocessor/icd2/icd2.cpp:34-38,\nhigan/target-libretro/libretro.cpp:200-278). Once a Game Boy image is\nloaded both files are mandatory: a missing program.rom fails\nload_special_bios, a missing boot ROM sets the failure flag, and\nretro_load_game returns false (higan/target-libretro/libretro-sfc.cpp:223-227,\nhigan/target-libretro/libretro.cpp:635-642). The source tree ships no copy\nof the boot ROMs or of the coprocessor firmware.\n",
        "profiled_date": "2026-09-17",
        "source": "https://gitlab.com/higan/higan",
        "source_branch": "libretro",
        "source_commit": "d3f592013a27cb78f17d84f90a6be6cf6f6af1d1",
        "systems": [
          "nintendo-snes",
          "nintendo-sgb"
        ],
        "type": "libretro",
        "upstream": "https://gitlab.com/higan/higan"
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
