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 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.