bsnes-mercury Balanced is a libretro core for RetroArch that targets Nintendo SNES and Famicom content. It is a fork of higan that aims to restore some useful features that had been removed and to improve performance somewhat. The core is compiled with the Balanced profile.
Accuracy at default settings
At default settings, the bsnes-mercury cores are not less accurate than the mainline bsnes cores. Switching to less accurate special chip HLE behaviour requires explicitly enabling two core options. Maximum accuracy is described as uncompromisable in the fork's design, with any accuracy-affecting behaviour optional and off by default.
Documented improvements over upstream
- - Improved framerate
- - Faster ROM loading
- - HLE emulation of some special chips is optionally restored, defaulting to LLE; chips for which no HLE emulation was developed (ST-0011 and ST-0018) remain LLE
- - SuperFX overclock is available and off by default; when enabled it makes SuperFX look smoother
Supported content formats
Content that can be loaded by the bsnes-mercury Balanced core uses the following file extensions: .sfc, .smc and .bml.
Firmware placement
Required or optional firmware files go in the frontend's system directory. The documentation lists firmware for the DSP1, DSP1B, DSP2, DSP3 and DSP4 co-processors, the CX4 co-processor, the ST010, ST011 and ST018 co-processors, and the Super Game Boy BIOS (sgb.boot.rom). Each listed file has an associated md5sum in the official table; the same table provides the filenames to place in the system directory.
Core options
The core exposes the following options from the core options menu. Defaults are shown first. Allow settings to reduce accuracy depends on the option being enabled: Respect accuracy-impacting settings. Special chip accuracy: LLE or HLE, with the LLE default; enabling HLE is less accurate but less demanding, and ST-0011 and ST-0018 cannot be HLE'd. SuperFX speed: 100%, 150%, 200%, 300%, 400%, 500% or 1000%, with 100% being stock clockspeed. System region: auto, ntsc or pal. Preferred aspect ratio: auto, ntsc or pal. Crop overscan: disabled or enabled. Gamma ramp (requires restart): disabled or enabled. The Allow settings to reduce accuracy option must be enabled for Special chip accuracy and SuperFX speed to function properly.
Saves and states
The core's internal core name is bsnes-mercury. Cartridge battery saves are written to the frontend's Save directory as 'content-name'.srm, and states are written to the frontend's State directory as 'content-name'.state#.
Geometry and timing
The core reports 60.0988118623 FPS for NTSC games and 50.0069789082 FPS for PAL games, a sample rate of 32040.5 Hz, and an aspect ratio that depends on the Preferred aspect ratio core option. For the core-provided aspect ratio to apply, RetroArch's aspect ratio must be set to Core provided in the Video settings.
Controllers
For User 1, the selectable device types are None, SNES Joypad (the default) and SNES Mouse. For User 2, the device types are None, SNES Joypad (the default), SNES Mouse, Multitap, SuperScope, Justifier and Justifiers. Multitap support in compatible games is configured by switching User 2 to the Multitap device type, which allows up to five players. Justifiers represents two Justifiers plugged in for two-player Justifier games.
Frontend features the core reports supporting
The documented frontend-level settings the core respects include Restart, Screenshots, Saves, States, Rewind, Netplay, Core Options, Memory Monitoring for achievements, RetroArch Cheats, Controls, Remapping, Subsystem and Softpatching. The documentation marks Native Cheats, Rumble, Sensors, Camera, Location, Disk Control, Username, Language, Crop Overscan and LEDs as not supported.
Super GameBoy
For Super GameBoy support you need sgb.boot.rom in RetroArch's System directory, plus a GameBoy ROM and a Super GameBoy ROM. The Game Boy and Super GameBoy ROMs have to be unzipped. Super GameBoy is exposed through the Subsystem API.
Loading Super GameBoy through the RetroArch menu
- 1. Load the GameBoy ROM through 'Load Super GameBoy' in RetroArch's Main Menu.
- 2. Load the Super GameBoy ROM through 'Load Super GameBoy' in RetroArch's Menu Menu.
- 3. Start the content by selecting 'Start GameBoy' in RetroArch's Menu Menu.
Launching Super GameBoy from the command line
retroarch -L {path to bsnes core} {path to Super GameBoy ROM} --subsystem sgb {path to GameBoy rom}MSU-1
MSU-1 support in this core is documented as complex, and the documentation suggests the Snes9x core for simplified and easily accessible MSU-1 support. MSU-1 support can be used by loading a correct .bml file.
Documented compatibility note
The official documentation lists one game-specific issue: in A.S.P. Air Strike Patrol, black lines show up during gameplay and the shadow below the aircraft is missing.
Authors and license
Reference table · Scroll horizontally to see all columns.
| Filename | Description |
|---|---|
| dsp1.data.rom | DSP1 co-processor firmware |
| dsp1.program.rom | DSP1 co-processor firmware |
| dsp1b.data.rom | DSP1B co-processor firmware |
| dsp1b.program.rom | DSP1B co-processor firmware |
| dsp2.data.rom | DSP2 co-processor firmware |
| dsp2.program.rom | DSP2 co-processor firmware |
| dsp3.data.rom | DSP3 co-processor firmware |
| dsp3.program.rom | DSP3 co-processor firmware |
| dsp4.data.rom | DSP4 co-processor firmware |
| dsp4.program.rom | DSP4 co-processor firmware |
| cx4.data.rom | CX4 co-processor firmware |
| st010.data.rom | ST010 co-processor firmware |
| st010.program.rom | ST010 co-processor firmware |
| st011.data.rom | ST011 co-processor firmware |
| st011.program.rom | ST011 co-processor firmware |
| st018.data.rom | ST018 co-processor firmware |
| st018.program.rom | ST018 co-processor firmware |
| sgb.boot.rom | Super Game Boy BIOS |
Reference table · Scroll horizontally to see all columns.
| Option | Setting key | Default | Values |
|---|---|---|---|
| Allow settings to reduce accuracy | bsnes_violate_accuracy | disabled | disabled | enabled |
| Special chip accuracy | bsnes_chip_hle | LLE | LLE | HLE |
| SuperFX speed | bsnes_superfx_overclock | 100% | 100% | 150% | 200% | 300% | 400% | 500% | 1000% |
| System region | bsnes_region | auto | auto | ntsc | pal |
| Preferred aspect ratio | bsnes_aspect_ratio | auto | auto | ntsc | pal |
| Crop overscan | bsnes_crop_overscan | disabled | disabled | enabled |
| Gamma ramp (requires restart) | bsnes_gamma_ramp | disabled | disabled | enabled |
Reference table · Scroll horizontally to see all columns.
| User | Device types | Default |
|---|---|---|
| User 1 | None, SNES Joypad, SNES Mouse | SNES Joypad |
| User 2 | None, SNES Joypad, SNES Mouse, Multitap, SuperScope, Justifier, Justifiers | SNES Joypad |
Reference table · Scroll horizontally to see all columns.
| Extension | Notes |
|---|---|
| sfc | SNES content |
| smc | SNES content |
| bml | MSU-1 content is loaded via a correct .bml file |
Reference table · Scroll horizontally to see all columns.
| Associated RetroArch database |
|---|
| Nintendo - Super Nintendo Entertainment System |
| Nintendo - Super Nintendo Entertainment System Hacks |
| Nintendo - Sufami Turbo |
Sources & references
Content responsibility: FrameTinker editorial desk. Source authors and software maintainers are credited separately below; this is not a claim of hands-on testing.
Published .
RetroArch: bsnes mercury balanced — official gaming software documentation https://raw.githubusercontent.com/libretro/docs/master/docs/library/bsnes_mercury_balanced.mdRetrieved Oct 12, 2026Something doesn’t match your setup?
Suggest a correction
