Files
libretro/emulators/bsnes_mercury.yml
T
Abdessamad Derraz e7aa9e870b fix: state libretro core versions from their code
Each libretro profile records version_basis and core_version is read
there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba
0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build
takes its version from git carry the nearest tag in describe form
(flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders
copied from .info files (Git, SVN) are replaced by the code's statement,
and a code that states none is null with kind none.
2026-10-27 19:21:27 +01:00

175 lines
4.7 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"
source_commit: "79d7f9de218b6ffa65a80bbdc5828532bc239232"
core_version: "094"
version_basis:
kind: file
path: "emulator/emulator.hpp"
pattern: 'static const char Version\[\]\s*=\s*"([^"]+)"'
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"