|Developer(s)||byuu et al.|
|Platform(s)||Windows, macOS, Linux, FreeBSD, libretro|
|Emulates||Nintendo Entertainment System (Famicom), Super Nintendo Entertainment System (Super Famicom), Nintendo Game Boy/Color, Game Boy Advance, Bandai WonderSwan/Color, Sega Master System, Game Gear, Genesis/Mega Drive, NEC PC Engine (TurboGrafx-16)|
|Compatibility||100% for commercial titles|
Some homebrew may have small defects
|License||GNU GPL v3|
higan (formerly bsnes) is an open-source, multi-system emulator. It was created in response to inaccurate SNES emulators such as ZSNES and shoddy ROM hacks. It is also available as a libretro core for RetroArch.
- bsnes Official
- bsnes-plus v0.73+3a
- bsnes-classic (GitHub builds)
- bsnes-classic (EmuCR builds)
- nSide v0.09r16
higan's Super Nintendo emulator, bsnes, has 3 different profiles: Performance, Balanced, and Accuracy. The Balanced version is recommended for modern PCs. Use the Accuracy profile only for extreme cases. The Balanced profile was previously known as "Compatibility" in versions before v0.92.
The main concession to performance in the Balanced core is the PPU (graphics) emulation – rather than render a pixel at a time as real hardware must do, it renders an entire scanline at a time. Because Nintendo told SNES programmers not to mess with the PPU while scanline rendering was in progress, this has no effect in most games – but some programmers deliberately broke the rules and these games will have problems in the Balanced core.
There are two games known to manipulate the PPU mid-scanline; “A.S.P. – Air Strike Patrol (USA)” and “Uniracers (USA)”. Uniracers works because it’s the only game that tries to manipulate OAM mid-scanline, and bsnes just happens to behave exactly the way that Uniracers expects. Air Strike Patrol is missing the shadow beneath the plane, which makes the game harder to play.
v0.98 is the last release of higan which includes the Balanced and Performance profiles. Future releases will only include the Accuracy profile.
higan is unique among emulators for introducing the concept of game folders. Game folders were about accurately representing the game cartridge and its metadata. Things like SRAM, cheats, input settings, emulator metadata get stored with the game.
bsnes (Official Release)
bsnesis a subset project of higan, and focuses on performance, features, and ease of use. It returns to the Qt GUI that it abandoned before its merger with higan and has a much faster multi-threaded PPU renderer, giving it the performance of the old bsnes-balanced core while retaining the accuracy of the bsnes-accurate core.
csnes is a separate emulator made by byuu for commercial use, specifically companies that wish to re-release SNES titles they hold the licenses to. It is made completely from scratch and aims for speed and performance while maintaining a high level of accuracy for all licensed SNES titles.
List of forks
There is a fork of bsnes known as bsnes-mercury, which aims to restore functionality like HLE DSP chip emulation and SGB emulation using Gambatte that was removed in later versions of bsnes, as well as to have some optimizations that don't affect emulation accuracy. It also has an option to overclock SuperFX. Default options make it exactly the same as regular bsnes, with LLE DSP chip emulation enabled. This fork is only available as a libretro core, though it is possible to build it with Ethos (byuu's frontend) instead.
bsnes-classic is a fork of bsnes v0.73 that aims to backport emulation improvements from current higan while keeping the features of the older version's Qt GUI.
nSide is a fork of higan that, among other things, adds support for more boards such as the Atari 2600 as well as peripherals and the VS. UniSystem to the NES core. It also retains the SNES Balanced core and thus makes available new improvements to higan, such as the WASAPI driver and the IIR-Biquad interpolation filter, to users whose computers cannot run the Accuracy core-only releases from higan v0.98 onwards with full speed.
- BizHawk: bsnes v0.87 fork with added TAS features. Multi-system. Used for tool-assisted speedruns and has a debugger.
- bsnes macOS: bsnes v0.68 fork for macOS. Discontinued.
- bsnes-Qt: bsnes v0.73 fork to maintain Qt GUI.
- bsnes-sx2: bsnes fork with added Satellaview features. Discontinued. Merged with bsnes-plus.
- bsnes-plus: bsnes v0.73 fork with added superior debugging features.
- bsnes-cplusplus98: bsnes v0.85 port to C++98. For Win9x-compatible RetroArch versions.
- bsnes-gilgamesh: bsnes-mercury fork with added SQL database for CPU instructions.
- bsnes-hle: bsnes fork with HLE regressions.
- bsnes-libretro: higan v0.94 fork for RetroArch.
- bsnes-mcfly: higan v0.106 fork with the Qt GUI from bsnes v0.73.
- bsnes-rr: bsnes fork with re-recording features.
- defimulator: bsnes v0.74 fork.
- higan-qq: higan v0.94 fork.
- lsnes: bsnes fork with added TAS features.
- OpenEmu/BSNES-Core: bsnes v0.89 fork for macOS.
- SnesBox: bsnes port to C#.
- xSnes: higan v0.94 fork to remove non-SNES systems.
Discontinued forks: honou, IronSNES, SSNES (which became RetroArch). Mednafen has a bsnes v0.59 fork as its SNES core.
higan's bsnes and bgba cores are its most developed/accurate. The Nintendo 8-bit cores are very early in development, and are inferior to other existing emulators; alternatives include Gambatte, BGB, Mesen, puNES, and Nestopia. Bgba has made amazing strides from v0.95 on, getting very close to mGBA accuracy. higan also features a WonderSwan/WonderSwan Color core as of v0.98, which yields satisfactory results. The library-based GUI is not for everyone, though, and doesn't support drag and drop like a lot of other emulators do.
byuu noticed that Higan's UI is not for everybody and made a standalone version of bsnes that is developed in parallel with Higan's SNES core and has a Qt UI that's just like the earlier versions. For those that still aren't satisfied, RetroArch has its own libretro cores of bsnes to use with its interface.
- higan manual (community-maintained)