Files
libretro/emulators/bsnes_mercury.yml
2026-03-25 12:23:32 +01:00

170 lines
4.6 KiB
YAML

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-25"
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:242-264
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"