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.
