emulator: bsnes-mercury type: libretro core_classification: enhanced_fork source: "https://github.com/libretro/bsnes-mercury" upstream: "https://byuu.org/higan" profiled_date: "2026-03-23" core_version: "v094 (Mercury)" display_name: "Nintendo - SNES / SFC (bsnes-mercury)" cores: [bsnes_mercury_accuracy, bsnes_mercury_balanced, bsnes_mercury_performance] systems: - nintendo-snes - nintendo-sgb - nintendo-satellaview - nintendo-sufami-turbo notes: | Fork of higan v094 by Alcaro. Restores HLE for coprocessor chips removed in v094, adds firmware_appended support and SuperFX overclocking. Three profiles: accuracy, balanced, performance (PPU differs, not firmware). Core option bsnes_chip_hle (default LLE, requires bsnes_violate_accuracy) controls HLE/LLE at runtime. ref: target-libretro/libretro.cpp:428-442 Firmware loaded from system_dir via file::exists + mmapstream. No hash or size validation on any firmware file. ref: target-libretro/libretro.cpp:241-263 firmware_appended: firmware can be appended to end of ROM file. ref: ananke/heuristics/super-famicom.hpp:83 SPC700 IPL ROM (64 bytes) is embedded in the binary. ref: target-libretro/libretro.cpp:39 Upstream higan v094 by byuu (2014, site defunct). Mercury preserves v094 code with HLE additions documented in changes.diff at repo root. files: # --- NEC uPD7725 DSP chips (DSP1/1B/2/3/4) --- # ananke always generates dsp1b filenames for DSP-1 games (backward-compatible) - name: dsp1.program.rom system: nintendo-snes required: false size: 6144 hle_fallback: true note: "only loaded via custom BML manifest, ananke uses dsp1b" source_ref: "sfc/cartridge/markup.cpp:422-432" - name: dsp1.data.rom system: nintendo-snes required: false size: 2048 hle_fallback: true note: "only loaded via custom BML manifest, ananke uses dsp1b" source_ref: "sfc/cartridge/markup.cpp:422-432" - name: dsp1b.program.rom system: nintendo-snes required: false size: 6144 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:381" - name: dsp1b.data.rom system: nintendo-snes required: false size: 2048 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:382" - name: dsp2.program.rom system: nintendo-snes required: false size: 6144 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:403" - name: dsp2.data.rom system: nintendo-snes required: false size: 2048 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:404" - name: dsp3.program.rom system: nintendo-snes required: false size: 6144 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:417" - name: dsp3.data.rom system: nintendo-snes required: false size: 2048 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:418" - name: dsp4.program.rom system: nintendo-snes required: false size: 6144 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:431" - name: dsp4.data.rom system: nintendo-snes required: false size: 2048 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:432" # --- Hitachi HG51B (CX4) --- - name: cx4.data.rom system: nintendo-snes required: false size: 3072 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:146" # --- NEC uPD96050 (ST010, ST011) --- - name: st010.program.rom system: nintendo-snes required: false size: 49152 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:445" - name: st010.data.rom system: nintendo-snes required: false size: 4096 hle_fallback: true source_ref: "ananke/heuristics/super-famicom.hpp:446" - name: st011.program.rom system: nintendo-snes required: false size: 49152 source_ref: "ananke/heuristics/super-famicom.hpp:460" - name: st011.data.rom system: nintendo-snes required: false size: 4096 source_ref: "ananke/heuristics/super-famicom.hpp:461" # --- ARM DSP (ST018) --- - name: st018.program.rom system: nintendo-snes required: false size: 131072 source_ref: "ananke/heuristics/super-famicom.hpp:475" - name: st018.data.rom system: nintendo-snes required: false size: 32768 source_ref: "ananke/heuristics/super-famicom.hpp:476" # --- Super Game Boy --- - name: sgb.boot.rom system: nintendo-sgb required: false size: 256 source_ref: "ananke/heuristics/super-famicom.hpp:133"