higan (console multi-system emulator)
higan (formerly known as bsnes) is an emulator that began development
on 2004-10-14. The purpose of this emulator is a bit different from
others: it focuses on accuracy, debugging functionality, and clean
code. The emulator does not focus on things that would hinder accuracy.
This includes speed and game-specific hacks for compatibility. As a
result, the minimum system requirements for higan are very high.
As of v104, higan has top-tier support for the following consoles:
- Nintendo Super Famicom/SNES, including add-on hardware:
+ Super Game Boy
+ Sufami Turbo
- Nintendo Game Boy Advance
It also includes some level of support for these consoles:
- Satellaview add-on for the Super Famicom
- Nintendo Famicom/Nintendo Entertainment System
- Nintendo Game Boy
- Nintendo Game Boy Color
- Sega Master System
- Sega Game Gear
- Sega Mega Drive/Genesis
- NEC PC Engine/TurboGrafx 16 (but not the CD-ROM^2 System/TurboGrafx-CD)
- NEC SuperGrafx
- Bandai WonderSwan
- Bandai WonderSwan Color
Complete (though slightly outdated) documentation on higan is available
at: https://higan.readthedocs.io/en/stable/
*** Configuration:
The default profile directory (where platform system files, cheats and
shaders are located) is /usr/share/higan. If you want a personalized
profile, store your files in ~/Emulation, then higan will use this
directory instead.
First time users note: By default there are *no* control mappings. You'll
have to use Settings -> Input to map your preferred keyboard and/or
gamepad controls for each emulated system. Also, by default, there's
nothing 'plugged into' the emulated controller ports. In the menu bar,
click on the system name (e.g. Famicom, Super Famicom) -> Controller
Port 1 -> Gamepad (or whatever is required for the ROM you're running).
*** Build options:
- OpenAL is autodetected, and used if found. You can disable it with
OPENAL=no in the environment.
- OSS is disabled by default. If you need it, set OSS=yes in the environment.
- PulseAudio is enabled by default. You can disable it with PULSE=no in
the environment.