bsnes(6) Accurate SNES/Super Famicom emulator


bsnes <ROM location>


<ROM location> -- from the command line, you can supply the name of a ROM file as an argument to start playing that ROM


F11 -- toggle fullscreen mode


bsnes is a Super Nintendo / Super Famicom emulator that strives to provide the most faithful hardware emulation possible. It focuses on accuracy and clean code, rather than speed and special features. It is meant as a reference emulator to document how the underlying hardware works. It is thus very useful for development and research. And while it can be used for general purpose gaming, it will require significantly more powerful hardware than a typical emulator. Although not as polished as the SNES emulation (yet), there is also support for NES, Gameboy, Gameboy Color and Gameboy Advance games.

Supported Filetypes

SFC: SNES cartridge -- ROM image.

BS: Satellaview BS-X flash cartridge -- EEPROM image.

ST: Sufami Turbo cartridge -- ROM image.

SRM, PSR: non-volatile memory, often used to save game data -- (P)SRAM image.

GB/GBC/GBA: Gameboy (Color/Advance) cartridge -- ROM image.

NES/FC: NES cartridge -- ROM image.

Note that bsnes can not open ROMs with different filename extensions or with copier headers.

Known Limitations

Satellaview BS-X emulation: this hardware is only partially supported. This is mostly because the satellite network it used (St. GIGA) has been shut down. Access to this network would be required to properly reverse engineer much of the hardware. Working around this would require game-specific hacks, which are contrary to the design goals of this emulator. As a result, most BS-X software will not function correctly.

Netplay: internet multiplay is not currently supported nor planned.


bsnes comes with three profiles, where "accuracy" and "compatibility" are focused on accuracy in emulating the SNES (compatibility makes minor tradeoffs in favor of speed) and "performance" is focused on using less resources. Which profile to use can be set with:

# update-alternatives --config bsnes-bin


bsnes does not only need ROMs containing games, but also data that was originally stored in chips belonging to the consoles. The files containing this data are organized in system folders. The system folders contain system info and firmware/BIOS images and are located in "$HOME/.config/bsnes". For example, to play GBA games, a GBA bios image is required. The file has to be named "bios.rom" and placed inside the "Game Boy Advance.sys" folder in "$HOME/.config/bsnes". The checksum of the file has to match the one given in "/usr/share/bsnes/Game Boy Advance.sys/manifest.xml".






Brandon Barnes, Tobias Hansen