bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.
Go to file
Tim Allen 54e48aabbe Describe how to contribute to higan.
Since higan does not follow the conventional git development model,
we should prominently document how people can contribute.
2017-08-12 20:57:58 +10:00
higan Update to v104 release. 2017-08-12 20:53:13 +10:00
hiro Update to v103r27 release. 2017-08-06 23:36:26 +10:00
icarus Update to v104 release. 2017-08-12 20:53:13 +10:00
libco Update to v103r21 release. 2017-07-26 22:42:06 +10:00
nall Update to v103r23 release. 2017-07-30 23:00:31 +10:00
ruby Update to v103r27 release. 2017-08-06 23:36:26 +10:00
shaders Update to v095r02 release. 2015-11-10 22:07:34 +11:00
.gitignore Update to v097r27 release. 2016-03-19 18:35:25 +11:00
.gitlab-ci.yml Include the official shaders in build artifacts. 2017-06-22 16:28:21 +10:00
CONTRIBUTING.md Describe how to contribute to higan. 2017-08-12 20:57:58 +10:00
README.md Fix intra-document links. 2017-08-12 20:57:58 +10:00

README.md

higan, the multi-system emulator

higan emulates a number of classic videogame consoles of the 1980s and 1990s, allowing you to play classic games on a modern general-purpose computer.

As of v102, higan has top-tier support for the following consoles:

  • Nintendo Super Famicom/Super Nintendo Entertainment System, including addon hardware:
    • Super Game Boy
    • Sufami Turbo
  • Nintendo Game Boy Advance

It also includes some level of support for these consoles:

  • BS-X Satellaview addon for the Super Famicom
  • Nintendo Famicom/Nintendo Entertainment System
  • Nintendo Game Boy
  • Nintendo Game Boy Color
  • Sega Master System
  • Sega Game Gear
  • Sega Megadrive/Genesis
  • NEC PC Engine/TurboGrafx 16 (but not the CD-ROM² System/TurboGrafx-CD)
  • NEC SuperGrafx
  • Bandai Wonderswan
  • Bandai Wonderswan Color

higan is actively supported on FreeBSD 10 and above, and Microsoft Windows 7 and above. It also includes some level of support for GNU/Linux and macOS.

higan is officially spelled with a lowercase "h", not a capital.

About this document

This is the unofficial higan README, a community-maintained introduction and reference. It may be out of date by the time you read this, and it may contain errors or omissions. If you find something that's wrong, or you have a suggestion, see "Unofficial higan resources" below.

Official higan resources

Unofficial higan resources

There are also other projects based on current or older versions of higan, in whole or in part, that you might want to check out.

  • Mednafen is another multi-system emulator. Its SNES emulation is based on bsnes v059, from the time before bsnes was renamed to higan.
  • BizHawk is another multi-system emulator, specialising in the creation of tool-assisted speedruns. Its SNES emulation is based on bsnes v087.
  • nSide is a fork of higan that greatly enhances its NES emulation support, and adds minor features to the other cores too. It also restores the "balanced" SNES emulation core that was removed from higan in v099, which is less CPU intensive than the current accuracy-focussed core.
  • bsnes-plus is a fork of bsnes v073 that adds improved support for debugging SNES software.

Installing and uninstalling higan

The best way to install higan depends on what platform you're using, as well as whether you want to use official binaries or compile the source-code from scratch.

Installing an official release on Windows

Official higan releases are distributed in 7-zip archives. You will need to install 7-zip, or another compatible archiving tool, to install higan.

Once you have a suitable archiving tool, extract the contents of the higan archive into a new directory.

When you're done, the new directory should contain higan.exe and icarus.exe along with other assorted files and directories that describe the systems higan emulates.

You may put that directory wherever you like.

To run higan, open the higan.exe file.

Before you can actually play games, you'll need to import them and configure higan.

Uninstalling an official release on Windows

Delete the directory containing higan.exe and the other associated data from the original archive.

To remove higan's configuration:

  1. Press Win+R to open the Run dialog
  2. Type %LOCALAPPDATA% and press Enter to open the folder where higan's configuration data lives
  3. Delete the subdirectories named icarus and higan if they exist.

You might also want to remove the games imported into higan's library (including in-game saves and save-states):

  1. Press Win+R to open the Run dialog
  2. Type %USERPROFILE% and press Enter to open the folder where higan keeps its game library
  3. Delete the subdirectory named Emulation if it exists

Compiling from source on Windows

You will need a copy of the higan source-code. If you download an official release from the higan homepage, you will need 7-zip or a compatible tool to extract it. Alternatively, you may obtain higan source code from the unofficial git repo using the Git source-code management tool, or by clicking the download button on the right-hand side of the web-page and choosing an archive format.

You will need a C++ compiler to compile higan. We recommend installing TDM64-GCC, preferably the latest version but anything newer than 4.9 should be fine. higan does not support building with clang++ (Clang is still not quite there yet for Windows) nor Microsoft Visual C++ (last we checked, it didn't support all the C++ features higan uses).

Note: Make sure you get TDM64-GCC, not TDM-GCC. When compiled in x86 (32-bit) mode, higan may crash at startup because gcc targeting x86 does not support Windows' structured exception handling (SEH). Also, historically in x86 mode gcc has miscompiled a part of the NES emulation core. See the higan forum for details.

Once you've installed mingw-w64, open a command-prompt window, type g++ --version then press Enter to check it's installed correctly. You should see a message like

g++ 1.2.3 20010101
Copyright (C) 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

...except it should mention the version of mingw that you installed and the corresponding dates. If you see an error message like "command not found" or "bad command or filename", you may need to add mingw's "bin" directory to your computer's %PATH%. See the mingw documentation for help with that.

Once mingw is installed and available from the command prompt:

  1. Put the higan source code in some convenient location, like C:\higan-src
  2. Open the command-prompt
  3. Type cd C:\higan-src (or wherever you put the higan source) and press Enter
  4. Type mingw32-make -C icarus compiler=g++ and press Enter to build the icarus import tool
  5. Type mingw32-make -C higan compiler=g++ and press Enter to build the main higan executable

Installing a compiled build on Windows

  1. In Windows Explorer, create the directory where you want higan to live
  2. Assuming you built higan in C:\higan-src, copy C:\higan-src\icarus\out\icarus.exe into the new directory
  3. Copy C:\higan-src\icarus\Database and its contents into the new directory
  4. Copy C:\higan-src\higan\out\higan.exe into the new directory
  5. Copy all the *.sys directories in C:\higan-src\higan\systems into the new directory

The new directory should now contain icarus.exe, higan.exe, a directory named Database, and half a dozen directories named after the systems higan emulates with .sys at the end. This is what you would get by downloading an official build, as described under Installing an official release on Windows above.

Before you can actually play games, you'll need to import them and configure higan.

Uninstalling a compiled build on Windows

The process is the same as Uninstalling an official release on Windows above. You may also wish to delete the higan source directory.

Compiling from source on Linux

You will need a copy of the higan source-code. If you download an official release from the higan homepage, you will need 7-zip or a compatible tool to extract it. Alternatively, you may obtain higan source code from the unofficial git repo using the Git source-code management tool, or by clicking the download button on the right-hand side of the web-page and choosing an archive format.

You will also need GCC 4.9 or higher, including the C and C++ compiler, GNU Make, and development files (headers, etc.) for the following libraries:

  • GTK 2.x
  • PulseAudio
  • Mesa
  • gtksourceview 2.x
  • Cairo
  • SDL 1.2
  • libXv
  • libAO
  • OpenAL
  • udev

On a Debian-derived Linux distribution, you can install everything you need with a command like:

sudo apt-get install build-essential libgtk2.0-dev libpulse-dev \
    mesa-common-dev libgtksourceview2.0-dev libcairo2-dev libsdl1.2-dev \
    libxv-dev libao-dev libopenal-dev libudev-dev

Once you have all the dependencies installed:

  1. Put the higan source code in some convenient location, like ~/higan-src
  2. Open a terminal window
  3. Type cd ~/higan-src (or wherever you put the higan source) and press Enter
  4. Type make -C icarus compiler=g++ and press Enter to build the icarus import tool
  5. Type make -C higan compiler=g++ and press Enter to build the main higan executable

Installing a compiled build on Linux

Assuming you have successfully compiled higan as described in the previous section:

  1. Open a terminal window
  2. Type cd ~/higan-src (or wherever you put the higan source) and press Enter
  3. Type make -C icarus install and press Enter to install icarus and its game database
  4. Type make -C higan install and press Enter to install higan and its supporting files

This installs higan and its associated data files into the ~/.local directory hierarchy.

To confirm higan is installed correctly, type higan in a terminal and press Enter. If the higan window appears, everything is working. On the other hand, if you get an error message like "command not found", you should double-check that the directory ~/.local/bin is included in your $PATH environment variable by running the following command in a terminal:

echo "$PATH" | tr ':' '\n' | grep ~/.local/bin

If the above command prints the full path of ~/.local/bin (for example: /home/yourname/.local/bin) then you should be good. If it prints nothing, you need to add the following line to ~/.profile:

export PATH=~/.local/bin:$PATH

(this line must be in ~/.profile because most GUIs do not read any other files at login)

If you also have a ~/.bash_profile, make sure it reads the contents of ~/.profile with a line like this:

source ~/.profile

You will need to log out and log back in for changes to ~/.profile or ~/.bash_profile to take effect.

Before you can actually play games, you'll need to import them and configure higan.

Uninstalling a compiled build on Linux

To uninstall higan, as installed by the above instructions:

  1. Open a terminal window
  2. Type cd ~/higan-src (or wherever you put the higan source) and press Enter
  3. Type make -C icarus uninstall and press Enter
  4. Type make -C higan uninstall and press Enter

To remove higan's configuration, delete the directory ~/.config/higan as well.

To remove the games imported into higan's library (including in-game saves and save-states), delete the directory ~/Emulation.

You may also wish to delete the higan source directory.

Installing the GBA BIOS

Importing games

What's a game folder?

Importing regular games

Importing games with co-processor firmware

Importing BS-X games

Importing Sufami Turbo games

Importing Super Game Boy games

Importing MSU-1 games

Configuring higan

Drivers

Installing custom shaders

Controls

  • mapping PC inputs to emulated controllers
  • configuring which emulated controllers are connected to the emulated system

Notes on specific emulation cores

The WonderSwan rotates!

Shaders look weird on SNES because of interlace/hi-res

GBA in-game saves are Difficult

PSG volume for the Mega Drive (see https://board.byuu.org/viewtopic.php?p=42158#p42158 for info)

Frequently Asked Questions

where is the vsync option?

exclusive full-screen?

phones and tablets