{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "fuse",
      "profile": {
        "core_classification": "community_fork",
        "core_version": "1.6.0",
        "cores": [
          "fuse",
          "fuse_libretro"
        ],
        "display_name": "Sinclair - ZX Spectrum (Fuse)",
        "emulator": "Fuse",
        "files": [
          {
            "hle_fallback": true,
            "md5": "4c42a2f075212361c3117015b107ff68",
            "name": "fuse/48.rom",
            "note": "Spectrum 48K ROM. Also used for 16K and 48K NTSC. Embedded in core.",
            "required": false,
            "sha1": "5ea7c2b824672e914525d1d5c419d71b84a426a2",
            "size": 16384,
            "source_ref": "fuse/settings.c:216-217, fuse/machines/spec48.c:76",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "b4d2692115a9f2924df92a3cbfb358fb",
            "name": "fuse/128-0.rom",
            "note": "Spectrum 128K ROM 0 (editor). Embedded in core.",
            "required": false,
            "sha1": "4f4b11ec22326280bdb96e3baf9db4b4cb1d02c5",
            "size": 16384,
            "source_ref": "fuse/settings.c:214, fuse/machines/spec128.c:70",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "6e09e5d3c4aef166601669feaaadc01c",
            "name": "fuse/128-1.rom",
            "note": "Spectrum 128K ROM 1 (48 BASIC). Embedded in core.",
            "required": false,
            "sha1": "80080644289ed93d71a1103992a154cc9802b2fa",
            "size": 16384,
            "source_ref": "fuse/settings.c:215, fuse/machines/spec128.c:73",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "4ed7af4636308b8a48d7a35e6c5b546b",
            "name": "fuse/plus2-0.rom",
            "note": "Spectrum +2 ROM 0. Embedded in core.",
            "required": false,
            "sha1": "72703f9a3e734f3c23ec34c0727aae4ccbef9a91",
            "size": 16384,
            "source_ref": "fuse/settings.c:237, fuse/machines/specplus2.c:70",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "b3db95931cc844efaeb82db9c171b9f3",
            "name": "fuse/plus2-1.rom",
            "note": "Spectrum +2 ROM 1. Embedded in core.",
            "required": false,
            "sha1": "de8b0d2d0379cfe7c39322a086ca6da68c7f23cb",
            "size": 16384,
            "source_ref": "fuse/settings.c:238, fuse/machines/specplus2.c:73",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "9833b8b73384dd5fa3678377ff00a2bb",
            "name": "fuse/plus3-0.rom",
            "note": "Spectrum +3 ROM 0. Also used for +2A. Embedded in core.",
            "required": false,
            "sha1": "e319ed08b4d53a5e421a75ea00ea02039ba6555b",
            "size": 16384,
            "source_ref": "fuse/settings.c:239, fuse/settings.c:243, fuse/machines/specplus3.c:193",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "0f711ceb5ab801b4701989982e0f334c",
            "name": "fuse/plus3-1.rom",
            "note": "Spectrum +3 ROM 1. Also used for +2A. Embedded in core.",
            "required": false,
            "sha1": "c9969fc36095a59787554026a9adc3b87678c794",
            "size": 16384,
            "source_ref": "fuse/settings.c:240, fuse/settings.c:244, fuse/machines/specplus3.c:196",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "3b6dd659d5e4ec97f0e2f7878152c987",
            "name": "fuse/plus3-2.rom",
            "note": "Spectrum +3 ROM 2. Also used for +2A. Embedded in core.",
            "required": false,
            "sha1": "22e50c6ba4157a3f6a821bd9937cd26e292775c6",
            "size": 16384,
            "source_ref": "fuse/settings.c:241, fuse/settings.c:245, fuse/machines/specplus3.c:199",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "a148bcc575e51389e84fdf5d555c3196",
            "name": "fuse/plus3-3.rom",
            "note": "Spectrum +3 ROM 3. Also used for +2A. Embedded in core.",
            "required": false,
            "sha1": "65f031caa8148a5493afe42c41f4929deab26b4e",
            "size": 16384,
            "source_ref": "fuse/settings.c:242, fuse/settings.c:246, fuse/machines/specplus3.c:202",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "bc123f625e245c225f92ef05933ed134",
            "name": "fuse/plus3e-0.rom",
            "note": "Spectrum +3e ROM 0. Embedded in core.",
            "required": false,
            "sha1": "649fbd233490bf58b35350b0123d36caaaa011eb",
            "size": 16384,
            "source_ref": "fuse/settings.c:247, fuse/machines/specplus3e.c:66",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "617364264c587d20c9fc4746c29679f2",
            "name": "fuse/plus3e-1.rom",
            "note": "Spectrum +3e ROM 1. Embedded in core.",
            "required": false,
            "sha1": "f12198108cbb14de4f03c6695bc16d08c85ee214",
            "size": 16384,
            "source_ref": "fuse/settings.c:248, fuse/machines/specplus3e.c:69",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "c363e95dcd0a90e6e7f847e6e47e0179",
            "name": "fuse/plus3e-2.rom",
            "note": "Spectrum +3e ROM 2. Embedded in core.",
            "required": false,
            "sha1": "773633dce5ba323a9e00d9d0f9e4d8c295df7c87",
            "size": 16384,
            "source_ref": "fuse/settings.c:249, fuse/machines/specplus3e.c:72",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "a148bcc575e51389e84fdf5d555c3196",
            "name": "fuse/plus3e-3.rom",
            "note": "Spectrum +3e ROM 3. Same as plus3-3.rom. Embedded in core.",
            "required": false,
            "sha1": "65f031caa8148a5493afe42c41f4929deab26b4e",
            "size": 16384,
            "source_ref": "fuse/settings.c:250, fuse/machines/specplus3e.c:75",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "fb3f86eb1e5a695d9c50c124e7cfb875",
            "name": "fuse/se-0.rom",
            "note": "Spectrum SE ROM 0. Embedded in core.",
            "required": false,
            "sha1": "8608328d7dd66602a4846f046b24fed500f7d828",
            "size": 16384,
            "source_ref": "fuse/settings.c:257, fuse/machines/spec_se.c:89",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "88de4a3129086f34bb9ca559acc51e6c",
            "name": "fuse/se-1.rom",
            "note": "Spectrum SE ROM 1. Embedded in core.",
            "required": false,
            "sha1": "3be5de57dd3bd0a9d15c57cabe9179afe2906a52",
            "size": 16384,
            "source_ref": "fuse/settings.c:258, fuse/machines/spec_se.c:92",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "9dd7ecf784a6c04265c073c236f5fadb",
            "name": "fuse/tc2048.rom",
            "note": "Timex TC2048 ROM. Embedded in core.",
            "required": false,
            "sha1": "febb2d495b6eda7cdcb4074935d6e9d9f328972d",
            "size": 16384,
            "source_ref": "fuse/settings.c:260, fuse/machines/tc2048.c:80",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "55d462fccc6c536037404ef4ced08bec",
            "name": "fuse/tc2068-0.rom",
            "note": "Timex TC2068 ROM 0. Also used for TS2068. Embedded in core.",
            "required": false,
            "sha1": "1446cb2780a9dedf640404a639fa3ae518b2d8aa",
            "size": 16384,
            "source_ref": "fuse/settings.c:261, fuse/settings.c:263, fuse/machines/tc2068.c:138",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "hle_fallback": true,
            "md5": "575d203c6e15e679fba0b73f854ec7a2",
            "name": "fuse/tc2068-1.rom",
            "note": "Timex TC2068 ROM 1 (EXROM). Also used for TS2068. Embedded in core.",
            "required": false,
            "sha1": "7e265a2c1f621ed365ea23bdcafdedbc79c1299c",
            "size": 8192,
            "source_ref": "fuse/settings.c:262, fuse/settings.c:264, fuse/machines/tc2068.c:141",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/128p-0.rom",
            "note": "Pentagon 128K/512K/1024 ROM 0, loaded by the Pentagon resets (fuse/machines/pentagon.c:131-133). Without it that model cannot be selected and the core falls back to its built-in 48K machine (fuse/machine.c:150-162).",
            "required": false,
            "size": 16384,
            "source_ref": "fuse/settings.c:226, fuse/settings.c:230, fuse/settings.c:234, fuse/machines/pentagon.c:131",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/128p-1.rom",
            "note": "Pentagon 128K/512K/1024 ROM 1, loaded by the Pentagon resets (fuse/machines/pentagon.c:134-136). Without it that model cannot be selected and the core falls back to its built-in 48K machine (fuse/machine.c:150-162).",
            "required": false,
            "size": 16384,
            "source_ref": "fuse/settings.c:227, fuse/settings.c:231, fuse/settings.c:235, fuse/machines/pentagon.c:134",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/trdos.rom",
            "note": "TR-DOS ROM (Beta 128 disk interface), loaded by the Pentagon resets (fuse/machines/pentagon.c:137-139) and by the Beta 128 interface (rom_beta128, fuse/settings.dat:253). Without it that model cannot be selected and the core falls back to its built-in 48K machine (fuse/machine.c:150-162).",
            "required": false,
            "size": 16384,
            "source_ref": "fuse/settings.c:228, fuse/settings.c:232, fuse/settings.c:236, fuse/machines/pentagon.c:137",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/gluck.rom",
            "note": "Gluck ROM, loaded by the Pentagon 512K and 1024 resets (fuse/machines/pentagon512.c:82-84, pentagon1024.c:78-80). Without it that model cannot be selected and the core falls back to its built-in 48K machine (fuse/machine.c:150-162).",
            "required": false,
            "size": 16384,
            "source_ref": "fuse/settings.c:229, fuse/settings.c:233, fuse/machines/pentagon512.c:82",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/256s-0.rom",
            "note": "Scorpion 256K ROM 0, loaded by the Scorpion reset (fuse/machines/scorpion.c:76-78). Without it that model cannot be selected and the core falls back to its built-in 48K machine (fuse/machine.c:150-162).",
            "required": false,
            "size": 16384,
            "source_ref": "fuse/settings.c:252, fuse/machines/scorpion.c:76",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/256s-1.rom",
            "note": "Scorpion 256K ROM 1, loaded by the Scorpion reset. Without it that model cannot be selected and the core falls back to its built-in 48K machine (fuse/machine.c:150-162).",
            "required": false,
            "size": 16384,
            "source_ref": "fuse/settings.c:253, fuse/machines/scorpion.c:79",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/256s-2.rom",
            "note": "Scorpion 256K ROM 2, loaded by the Scorpion reset. Without it that model cannot be selected and the core falls back to its built-in 48K machine (fuse/machine.c:150-162).",
            "required": false,
            "size": 16384,
            "source_ref": "fuse/settings.c:254, fuse/machines/scorpion.c:82",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/256s-3.rom",
            "note": "Scorpion 256K ROM 3 (TR-DOS), loaded by the Scorpion reset. Without it that model cannot be selected and the core falls back to its built-in 48K machine (fuse/machine.c:150-162).",
            "required": false,
            "size": 16384,
            "source_ref": "fuse/settings.c:255, fuse/machines/scorpion.c:85",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/if1-2.rom",
            "note": "Interface 1 ROM (edition 2). Loaded by fuse/peripherals/if1.c:403.",
            "required": false,
            "size": 8192,
            "source_ref": "fuse/settings.c:221, fuse/peripherals/if1.c:404",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "md5": "78e61a2a02121873c1756b21fd1398b1",
            "name": "fuse/disciple.rom",
            "note": "DISCiPLE disk interface ROM. Bundled in repo but not in mem_entries[].",
            "required": false,
            "sha1": "9a75ed4b293f968985be4c9aa893cd88276d1ced",
            "size": 8192,
            "source_ref": "fuse/settings.c:220, fuse/peripherals/disk/disciple.c:279",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "md5": "42e5de16fb5e50082bb954ec7ce45851",
            "name": "fuse/plusd.rom",
            "note": "+D disk interface ROM. Bundled in repo but not in mem_entries[].",
            "required": false,
            "sha1": "6b841dc5797ef7eb219ad455cd1e434ca3b9d30d",
            "size": 8192,
            "source_ref": "fuse/settings.c:251, fuse/peripherals/disk/plusd.c:239",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/didaktik80.rom",
            "note": "Didaktik 80 disk interface ROM. Not embedded.",
            "required": false,
            "size": 14336,
            "source_ref": "fuse/settings.c:219, fuse/peripherals/disk/didaktik.c:236",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/opus.rom",
            "note": "Opus Discovery disk interface ROM. Not embedded.",
            "required": false,
            "size": 8192,
            "source_ref": "fuse/settings.c:225, fuse/peripherals/disk/opus.c:210",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/mf1.rom",
            "note": "Multiface 1 ROM. Not embedded.",
            "required": false,
            "size": 8192,
            "source_ref": "fuse/settings.c:222, fuse/peripherals/multiface.c:224",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/mf128.rom",
            "note": "Multiface 128 ROM. Not embedded.",
            "required": false,
            "size": 8192,
            "source_ref": "fuse/settings.c:223, fuse/peripherals/multiface.c:225",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/mf3.rom",
            "note": "Multiface 3 ROM. Not embedded.",
            "required": false,
            "size": 8192,
            "source_ref": "fuse/settings.c:224, fuse/peripherals/multiface.c:226",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "md5": "c54aa8f374b0971f51546c29d5d1eba1",
            "name": "fuse/speccyboot-1.4.rom",
            "note": "SpeccyBoot ethernet ROM. Bundled in repo but not in mem_entries[].",
            "required": false,
            "sha1": "16af6f052b38a027dd49ba6e96e3a59d16b62672",
            "size": 8192,
            "source_ref": "fuse/settings.c:259, fuse/peripherals/speccyboot.c:148",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/ttx2000s.rom",
            "note": "TTX2000S teletext adapter ROM. Not embedded.",
            "required": false,
            "size": 8192,
            "source_ref": "fuse/settings.c:265, fuse/peripherals/ttx2000s.c:198",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          },
          {
            "name": "fuse/usource.rom",
            "note": "Currah uSource ROM. Not embedded.",
            "required": false,
            "size": 8192,
            "source_ref": "fuse/settings.c:266, fuse/peripherals/usource.c:129",
            "system": "sinclair-zxspectrum",
            "validation": [
              "size"
            ]
          }
        ],
        "notes": "Fuse (Free Unix Spectrum Emulator) ported to libretro. Emulates the ZX\nSpectrum family: 16K, 48K, 48K NTSC, 128K, +2, +2A, +3, +3e, SE, Timex\nTC2048, TC2068, TS2068, Pentagon 128K/512K/1024, and Scorpion 256K.\n\nROM loading is in src/compat/file.c:91-118. The core first checks an\ninternal table of embedded ROMs (mem_entries[]). If the ROM filename is\nnot found there, it falls back to the filesystem at\n{system_dir}/fuse/{rom_filename} (src/compat/file.c:160-175).\n\nEmbedded ROMs cover 48K-family, 128K, +2, +3, +3e, SE, TC2048, TC2068.\nPentagon, Scorpion, and peripheral ROMs are NOT embedded and must be\nplaced in {system_dir}/fuse/ by the user.\n\nDefault ROM filenames are set in fuse/settings.c:209-260. Each machine\ntype loads its ROMs during reset via machine_load_rom() calls in the\nfuse/machines directory. All ROMs are size-validated at load time\n(fuse/machine.c:287).\n\nThe +2A reuses the +3 ROMs (plus3-0/1/2/3.rom) per fuse/settings.c:234-237.\nThe TS2068 reuses TC2068 ROMs (tc2068-0/1.rom) per fuse/settings.c:257-258.\nSpectrum 16K uses 48.rom per fuse/settings.c:211.\n\nUpstream FUSE 1.7.0 has SP0256 speech chip (sp0256-al2.rom) and Currah\nuSpeech (uspeech.rom) peripherals not ported to libretro.\n",
        "platform_details": {
          "bios_mapping": {
            "note": "ROM resolution order in compat_file_open():\n1. Check mem_entries[] (18 embedded ROMs compiled as .h arrays)\n2. If not found, try {system_dir}/fuse/{filename} on filesystem\nThe path is constructed by concatenating system_dir + \"/fuse\" + path\nwhere path includes the leading slash from fuse's internal path.\n",
            "source_ref": "src/compat/file.c:55-89, 129-223"
          },
          "embedded_roms": {
            "note": "18 ROMs embedded in the binary via .h headers generated from .rom files:\n48.rom, 128-0.rom, 128-1.rom, plus2-0.rom, plus2-1.rom,\nplus3-0/1/2/3.rom, plus3e-0/1/2/3.rom, se-0.rom, se-1.rom,\ntc2048.rom, tc2068-0.rom, tc2068-1.rom.\ndisciple.rom, plusd.rom, speccyboot-1.4.rom are present in the repo\nfuse/roms/ directory but NOT in mem_entries[], so they are loaded\nfrom the filesystem only.\n",
            "source_ref": "src/compat/file.c:55-73"
          },
          "machine_rom_map": {
            "note": "Spectrum 16K:       48.rom (1 ROM)\nSpectrum 48K:       48.rom (1 ROM)\nSpectrum 48K NTSC:  48.rom (1 ROM)\nSpectrum 128K:      128-0.rom, 128-1.rom (2 ROMs)\nSpectrum +2:        plus2-0.rom, plus2-1.rom (2 ROMs)\nSpectrum +2A:       plus3-0.rom, plus3-1.rom, plus3-2.rom, plus3-3.rom (4 ROMs)\nSpectrum +3:        plus3-0.rom, plus3-1.rom, plus3-2.rom, plus3-3.rom (4 ROMs)\nSpectrum +3e:       plus3e-0/1/2/3.rom (4 ROMs)\nSpectrum SE:        se-0.rom, se-1.rom (2 ROMs)\nTimex TC2048:       tc2048.rom (1 ROM)\nTimex TC2068:       tc2068-0.rom, tc2068-1.rom (2 ROMs)\nTimex TS2068:       tc2068-0.rom, tc2068-1.rom (2 ROMs, same files)\nPentagon 128K:      128p-0.rom, 128p-1.rom, trdos.rom (3 ROMs)\nPentagon 512K:      128p-0.rom, 128p-1.rom, trdos.rom, gluck.rom (4 ROMs)\nPentagon 1024:      128p-0.rom, 128p-1.rom, trdos.rom, gluck.rom (4 ROMs)\nScorpion 256K:      256s-0.rom, 256s-1.rom, 256s-2.rom, 256s-3.rom (4 ROMs)\n",
            "source_ref": "fuse/settings.c:209-260, fuse/machines/spec48.c, fuse/machines/spec128.c"
          },
          "rom_copyright": {
            "note": "Most ROMs are copyright Amstrad. Amstrad allows free distribution but\nretains copyright. Selling ROMs standalone is not permitted. SE ROMs\nare GPLv2+. DISCiPLE/+D ROMs are copyright Datel, distribution allowed.\nSpeccyBoot ROM is MIT licensed.\n",
            "source_ref": "fuse/roms/README.copyright"
          }
        },
        "profiled_date": "2026-03-23",
        "source": "https://github.com/libretro/fuse-libretro",
        "source_commit": "e997e2bc32c888348f862f69f2c53babfedf7791",
        "systems": [
          "sinclair-zxspectrum"
        ],
        "type": "libretro",
        "upstream": "https://sourceforge.net/projects/fuse-emulator/",
        "version_basis": {
          "kind": "file",
          "path": "fuse/configure.ac",
          "pattern": "m4_define\\(\\[fuse_version\\],\\s*\\[([^\\]]+)\\]\\)"
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
