{
  "commit": "d38cd580364b2c788e633b9e51c15e1668f726c0",
  "count": 1,
  "generated_at": "2026-11-03T13:36:34Z",
  "items": [
    {
      "id": "bsnes2014",
      "profile": {
        "core_classification": "frozen_snapshot",
        "core_version": "094",
        "cores": [
          "bsnes2014_accuracy",
          "bsnes2014_balanced",
          "bsnes2014_performance"
        ],
        "display_name": "Nintendo - SNES / SFC (bsnes 2014)",
        "emulator": "bsnes 2014",
        "files": [
          {
            "name": "dsp1b.program.rom",
            "required": false,
            "size": 6144,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:381",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp1b.data.rom",
            "required": false,
            "size": 2048,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:382",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp2.program.rom",
            "required": false,
            "size": 6144,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:403",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp2.data.rom",
            "required": false,
            "size": 2048,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:404",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp3.program.rom",
            "required": false,
            "size": 6144,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:417",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp3.data.rom",
            "required": false,
            "size": 2048,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:418",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp4.program.rom",
            "required": false,
            "size": 6144,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:431",
            "system": "nintendo-snes"
          },
          {
            "name": "dsp4.data.rom",
            "required": false,
            "size": 2048,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:432",
            "system": "nintendo-snes"
          },
          {
            "name": "cx4.data.rom",
            "required": false,
            "size": 3072,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:146",
            "system": "nintendo-snes"
          },
          {
            "name": "st010.program.rom",
            "required": false,
            "size": 49152,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:445",
            "system": "nintendo-snes"
          },
          {
            "name": "st010.data.rom",
            "required": false,
            "size": 4096,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:446",
            "system": "nintendo-snes"
          },
          {
            "name": "st011.program.rom",
            "required": false,
            "size": 49152,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:460",
            "system": "nintendo-snes"
          },
          {
            "name": "st011.data.rom",
            "required": false,
            "size": 4096,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:461",
            "system": "nintendo-snes"
          },
          {
            "name": "st018.program.rom",
            "required": false,
            "size": 131072,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:475",
            "system": "nintendo-snes"
          },
          {
            "name": "st018.data.rom",
            "required": false,
            "size": 32768,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:476",
            "system": "nintendo-snes"
          },
          {
            "name": "sgb.boot.rom",
            "required": false,
            "size": 256,
            "source_ref": "source ananke/heuristics/super-famicom.hpp:133",
            "system": "nintendo-sgb"
          }
        ],
        "notes": "Frozen at bsnes v094. Three build profiles: accuracy (dot-based PPU),\nbalanced, performance (scanline PPU). All 3 share the same 16 firmware\nfiles. Profiles only differ in PPU (sfc/profile-*.hpp), not coprocessors.\nSPC700 IPL ROM (64 bytes) embedded in target-libretro/libretro.cpp:31.\nNo HLE fallback for any coprocessor in v094.\nFirmware loaded from system_dir via file::exists() + mmapstream.\nNo hash or size validation on any firmware file.\nLibretro build uses heuristics only (ananke/heuristics/), not the SHA256\ndatabase (ananke/database/). All DSP1 games use DSP1B filenames via\nheuristic fallback. The database dsp1.program.rom / dsp1.data.rom names\nare only in the standalone build (target-ethos via ananke).\n.info accuracy/balanced: firmware_count=18, which counts the two dsp1.*\nnames of the database this build does not use. Performance .info:\nfirmware_count=17, without cx4.data.rom.\nUpstream v094 source is contained within the libretro repo (sfc/, ananke/).\nbsnes-emu/bsnes is the modern rewrite (v115+).\n",
        "profiled_date": "2026-03-25",
        "source": "https://github.com/libretro/bsnes2014",
        "source_commit": "3c1394e042ee444c8248e1b9210e14ea55e836e9",
        "systems": [
          "nintendo-snes",
          "nintendo-sgb",
          "nintendo-satellaview",
          "nintendo-sufami-turbo"
        ],
        "type": "libretro",
        "upstream": "https://github.com/bsnes-emu/bsnes",
        "upstream_commit": "78474e5d39f58872dc21aca18cf9eb583b147fe7",
        "version_basis": {
          "kind": "file",
          "path": "emulator/emulator.hpp",
          "pattern": "static const char Version\\[\\]\\s*=\\s*\"([^\"]+)\""
        }
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
