Super Nintendo emulators

From Emulation General Wiki
Jump to: navigation, search
The Super Nintendo Entertainment System (SNES)
The Super Nintendo Entertainment System (SNES) is a 16-bit, fourth-generation console released in 1990 by Nintendo in North America. In Japan, it was known as the Super Famicom. The Satellaview was a subscription-based add-on released only in Japan that streamed content to the Super Famicom. The Super Game Boy was a peripheral designed to play Game Boy and black Game Boy Color cartridges on the Super Nintendo. Both the Satellaview and the Super Game Boy are supported by higan.

Emulation for the SNES is robust, with several high quality emulators for various systems, some of which are cycle accurate.

Emulators[edit]

PC
Name OS Version Libretro Core Accuracy Recommended
Higan (formerly bsnes) Windows, Linux 0.102 Cycle
bsnes-classic (forked bsnes Qt) Multi-platform 073u4 Cycle
Snes9x Multi-platform 1.54.1 High
BizHawk (bsnes) Windows 1.11.9.1 Cycle
Mednafen (bsnes) Multi-platform 0.9.42 High
lsnes Windows rr2-β23 Cycle
MESS Multi-platform 0.183 Low
Silhouette Macintosh 1.0 Low
ZSNES Multi-platform 1.51 Low
CATSFC Multi-platform 1.36 Low
NO$SNS Windows 1.6 Medium
Mobile
Name OS Version Libretro Core Accuracy Recommended
Snes9x Next Multi-platform 1.53 Mid
Snes9x EX+ Android 1.5.28 High
Snes9x EX Android 1.5.28 Low
SuperGNES Android r89 Low
CATSFC Multi-platform 1.36 Low
Snes8x Windows Phone 2.15.3 ? Mid
Console
Name OS Version Libretro Core Accuracy Recommended
Virtual Console Wii and Wii U n/a Mid-High
Snes9x Next Multi-platform 1.53 Mid
Snes9xTYL(me)cm Mod PlayStation Portable r26 Low
CATSFC Multi-platform 1.36 Low
blargSNES* 3DS 1.3 Low

* This emulator is currently in beta, but it does run several games. A compatibility list is available here. It doesn't support any cart-chips (SuperFX, DSP-1, Cx4, etc.), but for the Old 3DS, it's the best option so far. If using a New 3DS, use CATSFC with RetroArch.

Comparisons[edit]

1. Higan (formerly bsnes)

  • The most accurate of the bunch. It should play all commercially released games without trouble, assuming you have the power.
  • ROM hacks designed around emulator quirks will most likely not work, same as with real hardware.
  • LLE audio sounds amazing.

While higan is the most accurate emulator, the vanilla build may induce to some confusion due to the "Advent of Gamepaks". As the author puts it here, bsnes 0.73 is user-friendly though already 5-6 years old, thus lacking many of the recent emulation improvements. It's recommended to use forks based on this version instead, such as bsnes-classic or bsnes-plus, which backport many of the improvements from new releases. As of now, higan only maintains the accuracy profile, while higan 097 is the last one getting "performance" and "balanced" optimized less CPU-intensive versions.

Users of the vanilla higan builds will need to learn how to set "game folders" and separate co-processor roms and things like that. In case users are inapt for this, they can instead use the aforementioned bsnes forks, or still use the retroarch bsnes cores (as well as bsnes-mercury, a fork which restores HLE chip functionality on higan), all of these are close up-to-date with the main version's latest developments and offer an easy way to set up your roms.

2. Snes9x

  • Compatible with most games, even many ROM hacks that make use of emulator quirks.
  • Fast enough for pretty much any toaster (even Pentium 1 or 2 machines)
  • LLE audio, same as bsnes's.
  • Often buggy graphical output and shader support in standalone
    • Driver/GPU dependent.
    • Remember those diagonal lines of offset across older 3D games on certain graphics cards? Yeah. Finding a picture.
  • Hit-and-miss controller support, especially when it comes to XInput devices.

3. RetroArch, which has bsnes and Snes9x cores.

  • The same points as the emulators themselves
  • Amazing graphical output
    • At any resolution
    • At any full-screen resolution and refresh rate
    • Vast shader support
  • Dynamic rate control kills off most audio distortion, such as crackling.
  • Mirrored Rom and Ram maps, allowing ordinary rom images to be played right away.
  • Has a fork of Snes9x known as Snes9x Next that is based on a WIP of Snes9x between 1.52 and 1.53 with some extra speed hacks so it runs full speed on a Wii, as well as a SuperFX overclock option.
  • Has a fork of bsnes known as bsnes-mercury, which aims to restore functionality like HLE DSP chip emulation and SGB emulation using Gambatte that was removed in later versions of bsnes, as well as have some optimizations that don't affect emulation accuracy. It also has an option to overclock SuperFX. Default options make it exactly the same as regular bsnes, with LLE DSP chip emulation enabled.

4. BizHawk

  • Useful for TAS (tool-assisted speedruns)
  • Written in C#, requires .NET 4.0
  • Support for Libretro SNES cores
  • Windows-only

5. Mednafen

  • The SNES core is based on bsnes v059 which is rather old from 2010. It predates the performance/balanced/accuracy builds. This version is much faster than the current version.
  • Missing many of the LLE audio improvements that newer versions of Snes9x and higan use currently.
  • The version of bsnes that Mednafen is using is missing out on many accuracy updates that particularly impacts a few edge case games such as Air Strike Patrol. The significance of this game is it was one of two games known to manipulate the PPU mid-scanline and is notoriously difficult to emulate. Some of the problems Mednafen has versus newer cores is poorly rendered text, flickering lines near the bottom of the screen, and missing shadow during flight.
  • While acceptable for many games its recommended to use Snes9x, higan, or RetroArch instead.

6. ZSNES

  • Will run full speed on very old x86 systems such as an early Pentium 1.
  • Awesome netplay code, probably the only reason why the emulator is still used.
  • ROM hacks were often designed around its speed hacks and many won't work properly on anything else.
  • Though fans have made modded builds, it is basically a dead emulator with no future.
  • Many bugs and lacked functions for many games, see ZSNES review
  • Polarizing graphical user interface (loved by some, hated by others)
  • Much like older versions of Snes9x, relies on external pre-decompressed graphical packs to emulate some games with elaborate chips. Assuming you get the (now really hard to find) graphical packs for the SPC7110 (like from here) and Star Ocean (to-do), and you put them in folders you then set under "Paths" in ZSNES, they can be playable without missing graphics. Same for older versions of Snes9x (like 1.43).

NOTE: ZSNES has a serious vulnerability allowing for executing arbitrary code (potentially malware) if allowed to load a tampered ROM. Using ZSNES with SNES ROMs gotten from unknown sources is thus not recommended. Viable alternatives are BZSNES (if you want to load ZSNES-compatible hacks), ZMZ (if you want the UI), NO$SNS or older versions of Snes9x (for speed on old computers) or any of the other emulators like bsnes/higan and Snes9x (for better compatibility).

Satellaview emulation[edit]

BS-X or Satellaview software was broadcast the console add-on and stored as temporary data to be deleted shortly afterwards. As such, a wealth of games went undumped and lost forever.

Many of these games had Soundlink features and would have assets like streamed music and voice acting, as well as some extra data, but these have been lost forever outside of video recordings and OST releases. These games will likely play without music on your emulator. The entirely fan-made MSU-1 feature on the higan emulator tries to replicate the BS-X Satellaview and unreleased SNES-CD concept for streamed music in SNES games far beyond the maximum cartridge capacity (12MB), but it's not the same thing.

Some games like BS Treasure Conflix make use of the additional RAM provided by the BS-X add-on. While you can try playing them on regular SNES emulators as regular emulators, you may face issues for many of these games (no font appearing, hangs with black screen, and so on). You'll need Satellaview emulation to properly emulate those.

bsnes-sx2 and snes9x-sx2 are recommended. They use your PC clock with no option to modify it, though. SNESGT had the option to modify the clock, but it wasn't updated for a while and isn't really recommended for SNES emulation in general. No$SNS has good BS-X emulation (and the best debugger tools for ROM hackers and translators) but falls behind the others when it comes to general emulation.

You'll need the BS-X BIOS to properly emulate the Satellaview. It goes as BS-X.bin under the BIOS folder when using snes9x-sx2. There are many variants. You'll want the translated one (with English text) with removed DRM so that you can play a given broadcast without restrictions on how many times you can do so, like in the original hardware.

Whenever you open a BS-X compatible ROM (that wasn't modified to behave like a normal SNES game, like most BS Zelda translations were), you'll be greeted by the BIOS software. It will ask you to choose your name and avatar, which you can control in a city. Of course, the St-GIGA broadcast service went defunct in 2000, so the big radio tower will just give you a "Hello Satellaview" test broadcast. However, you may be interested in seeing how Nintendo used to do loading screens. To see them without them shutting down instantly, open BSX0001-47.bin (bsxdat folder) in a hex editor and change offset 0x06 from 0x30 to 0x00. Most houses will be closed, though.

You'll want to enter the little red house you start in front of and load the stored data. In some cases, you may have to wait a while before actual game play starts, or until a given time (on real hardware people would wait for up to 6 minutes).

PC
Name OS Version BS-X Emulation Recommended
bsnes Windows sx2 v0.09 (based on v082) Cycle
Snes9x Windows x86, x64 sx2 0.02 (based on 1.53) High
NO$SNS Windows 1.5 (2013) Mid
SNESGT Windows 2.18 (2007) Mid
bsnes (higan) Windows, Linux 0.96 Cycle
BizHawk (bsnes) Windows 1.11.9.1 Cycle
Mednafen (bsnes) Multi-platform 0.9.42 High

Data Pack emulation[edit]

Also known as DLC for the Super Famicom - not only the old Mega Drive could do its lock-on thing! (incredible, isn't it?)

Data Packs are Satellaview 8M Memory Paks which have data meant to be used as expansion for a Data Pack-compatible game. Data Pack-compatible game cartridges look like the BS-X Cartridge. For most of these games, data was distributed via St.GIGA’s Satellaview streaming services. Same Game and SD Gundam G-Next had some Data Packs sold in physical form via retail stores. RPG Tsukuru 2, Sound Novel Tsukuru and Ongaku Tsukuru Kanaderu could save user-created data to 8M Memory Paks.

The following games were compatible with Data Packs:

  • Derby Stallion 96
  • Joushou Mahjong Tenpai
  • Ongaku Tsukuru Kanaderu
  • RPG Tsukuru 2
  • Same Game
  • SD Gundam G-NEXT
  • Shigesato Itoi no Bass Tsuri No. 1
  • Sound Novel Tsukuru

These Data Packs are available on ROM sites as regular SFC files, but their actual nature couldn't be more different. Unlike regular SNES games, they won't load in SNES emulators by themselves. Two emulators support this feature:

  • Snes9x: Under "File/Load Multi Cart...", choose the base game for "Slot A" and the expansion pack for "Slot B", and then the BS-X BIOS file. The combined game variant should open. Most Memory Pack games should work this way but some are unemulated for various reasons - it's one of the last overlooked areas in SNES emulation after all.
  • bsnes-sx2: Under "File/Load Slotted BS-X Cartridge". However, due to how the emulator doesn't have a "Show files from all extensions" option, and an oversight during development, the expansion pack file can't be selected. Due to this, current versions can't go in-game.
PC
Name OS Version Data Pack Emulation Recommended
bsnes Windows sx2 v0.09 (based on v082) Incomplete
Snes9x Windows x86, x64 sx2 0.02 (based on 1.53) Mid


SNES-CD revival and emulation[edit]

SNES-CD[edit]

It's well-known enough that the Super Famicom was to get a CD add-on called the SNES-CD, developed by Sony who already helped with the sound chip for the SNES. However, Sony got greedy and tried to include a clause in the contract to give them all rights to any software developed on the device. In retaliation, Nintendo publicly humiliated the Sony executives present at the SNES-CD announcement by claiming they would partner with Phillips instead. Talks between Sony and Nintendo continued afterwards as late as 1993, but the project couldn't be salvaged. Nintendo lost interest in the CD peripheral, seeing how the Sega CD failed in the US and the PC-Engine CD only enjoyed modest success. They cancelled the Phillips collaboration on yet another SNES-CD prototype, but in return they allowed them to use some of their properties for their Phillips CD-i console. Later, they collaborated with the St. Giga radio service to create the Japan-exclusive Satellaview add-on for the Super Famicom which played broadcasts of SFC games using streamed audio. As for Sony, they took the hardware and experience from their collaboration with Nintendo to create the first PlayStation. Nintendo would continue to support the cartridge format for its next console, the Nintendo 64. A shy attempt at rewritable disk media was attempted with the 64DD, but the add-on failed due to lack of support from third parties, many of whom had opted to support the PS1 instead. And the rest is history.

Some prototype units of the Sony SNES-CD were indeed made. While games were in development for the add-on, some were eventually reworked as regular SNES cartridge games with lots of content gutted (e.g. Nintendo R&D's Marvelous, Square's Secret of Mana and Romancing Saga 2). Other games, like Hook, were ported to the Sega CD instead, while the rest were outright cancelled. These games were to have much bigger worlds, streamed music, cutscenes, and even FMVs according to various interviews. That never happened, however, and even most of the stuff developed for these consoles, including their various manuals and specifications, were lost.

Recently, an actual Sony SNES-CD prototype has been uncovered[1] and repaired.[2][3] It had various weird hardware restrictions (number of saves, CD size limit, no co-processors) with much of it likely having to do with its unfinished nature. For example, it had a planned Audio CD support that doesn't actually work, which means the MSU-1 is a much more attractive alternative for hacks aiming to reflect what SNES-CD could have been.

No$SNS 1.6 supports the Sony SNES-CD add-on. This was made possible after some reverse engineering and analysis of the leaked BIOS file. Get the leaked Super Disc BIOS, circulating on the net as "SDBR_v0.95.sfc". Under the same directory as the no$sns executable, make a "BIOS" folder, put the BIOS file there and rename it to "SFX-100.bin".


The only SNES-CD games available online at this time are a BIOS for one of the discovered prototypes and two homebrew games. These games, Magic Floor and Super Boss Gaiden (both of which have alternate versions as regular SNES ROMs) come as BIN/CUE files. NO$SNS 1.6 supports only one CD mode, so it doesn't actually read the CUE but just the BIN file.

PC
Name OS Version SNES-CD (Sony) Accuracy Recommended
NO$SNS Windows 1.6 Medium

MSU-1[edit]

Cue the MSU-1, which aims to add some of these features to the SNES. It's a custom fan-made hardware specification for an additional chip, eventually made available and working with real SNES hardware, as the SD2SNES flashcard. It's the closest to the SNES-CD that you'll ever get. No more 12MB maximum cartridge size limitation!

One inconvenience is that this specification isn't really supported by most emulators. It's currently supported by the SD2SNES flash card, bsnes (v075 and up), and higan (v094 and up). These hacks simply won't work at all in other emulators, unless their developers implement a MSU-1 check to let the game run in these emulators without the MSU-1 enhancements.

PC
Name OS Version MSU-1 Accuracy Recommended
higan Windows, Linux 0.96 Cycle
bsnes Windows, Linux 0.75 Cycle
Snes9x Windows, Linux Main High

To load the MSU-1 patched games with higan or bsnes:

  1. Patch the original SNES ROM with the IPS patch
  2. Make sure to copy manifest.bml and the PCM files (generated with create_pcm.bat, often found included with the sound pack) in the same directory as the ROM
    • Make sure it's %USERPROFILE%\Emulation\Super Famicom\ in the case of higan, and follow the readme included to know what names to use
  3. Launch with higan/bsnes.

Notable hacks for the MSU-1 include:

References[edit]

Resources[edit]