|Developer(s)||byuu et al.|
|Platform(s)||Windows, macOS, Linux, FreeBSD, libretro|
|Emulates||Nintendo Entertainment System (Family Computer), Super Nintendo Entertainment System (Super Family Computer), 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.
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.
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.
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. There is also another fork based on bsnes-classic known as bsnes-plus that focuses on adding debugging features to the GUI.
bsnes-mcfly bsnes-mcfly is a port of the Qt GUI from bsnes v0.73 to higan v0.106.
nSide is a fork of higan that, among other things, adds support for more boards 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.
List of forks
- 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-classic: bsnes v0.73 fork.
- 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-mercury: higan v0.94 fork with speed hacks and HLE regressions.
- 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.
- nSide: higan fork with added preliminary Atari 2600 emulation and improved Famicom emulation.
- OpenEmu/BSNES-Core: bsnes v0.89 fork for macOS.
- SnesBox: bsnes port to C#.
- xSnes: higan v0.94 fork to remove non-SNES systems.
- bsnes-mcfly: bsnes-mcfly is a port of the Qt GUI from bsnes v0.73 to higan v0.106.
- bsnes official: It is a subset project of higan, and focuses on performance, features, and ease of use.
- csnes: Made from scratch, a product for commercial use, focusing on performance and reasonable (though not excessive) accuracy.
Discontinued forks: honou, IronSNES, SSNES (which became RetroArch). Mednafen has a bsnes v0.59 fork as its SNES core.
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.
higan's bsnes and bgba cores are it's 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.
Version 0.73 is an older, but easier to use, version of bsnes. There is also the aforementioned bsnes-classic, which is v0.73 with emulation improvements from newer versions. Another alternative is to use one of the bsnes cores in RetroArch to get around some of the less user-friendly designs in higan.