Super Nintendo emulators

From Emulation General Wiki
Revision as of 17:57, 1 December 2018 by 212.252.97.52 (talk) (Emulators: fix)
Jump to navigation Jump to search
Super Nintendo Entertainment System
Snesna.png
Developer Nintendo
Type Home video game console
Generation Fourth generation
Release date 1990
Discontinued 2003
Predecessor NES
Successor Nintendo 64
Emulated

The Super Nintendo Entertainment System (SNES) is a 16-bit, fourth-generation home video game console released by Nintendo in 1990. Borrowing the name of its predecessor, the Nintendo Entertainment System, it was similarly named the Super Famicom in Japan, and during that time it had fierce competition with SEGA's Genesis (known in other regions as the Mega Drive).

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

Emulators

Name Operating System(s) Version Libretro Core Accuracy Active Recommended
PC
higan (formerly bsnes) Multi-platform v110

v106r44 beta (bsnes official)
csnes WIP (from scratch)

Cycle
nSide (forked higan) Multi-platform v009r16 Cycle
bsnes-classic (forked bsnes Qt) Multi-platform v073u7
v106r04 (bsnes-mcfly)
Cycle
Snes9x Multi-platform 1.62.3 High
BizHawk (bsnes v0.87) Windows 2.9.1 Cycle
lsnes Windows rr2-β23
Git
Cycle
Mednafen (bsnes v0.59) Multi-platform 1.32.0-UNSTABLE High
NO$SNS Windows 1.6 Medium
MAME Multi-platform 0.264 Low
Silhouette macOS 1.0 Low
ZSNES Multi-platform 1.51 Low
CATSFC Multi-platform 1.36 Low
Mobile
Snes9x EX+ Android Varies High
Snes9x Next Multi-platform 1.53 Mid
Snes8x Windows Phone 2.15.3 ? Mid
Snes9x EX Android 1.5.34 Low
SuperRetro16 Android 1.7.11 Low
CATSFC Multi-platform 1.36 Low
Console
Virtual Console Wii, Wii U, New 3DS 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
Snes9x for 3DS Nintendo 3DS Git Low
blargSNES* Nintendo 3DS 1.3b 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.). This emulator is no longer recommended due to inactivity and other more accurate and more compatible emulators, such as Snes9x for 3DS.

Comparisons

1. higan (formerly bsnes)

  • The most accurate of the bunch. Should play all commercially released games without trouble, assuming you have the power.
  • Incompatible with ROM hacks made to take advantage of emulator quirks, much like real hardware.
  • A superb LLE audio engine.

higan (or, as it was known before it expanded its scope to more systems, bsnes) is the most accurate SNES emulator out there, but newcomers who care more about playing games rather than 100% accurate emulation should stick with the most recent version of the forked bsnes core from the same author.

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 engine shared with bsnes.
  • Often buggy graphics and shaders in standalone, though it's video card and driver dependent.
  • Hit-and-miss controller support, especially when it comes to XInput.

3. RetroArch

  • Not a unique emulator, but there are official cores for bsnes and Snes9x you can easily obtain.
  • Very customizable and programmable by nature.
  • Tends to have better graphics than standalone software.
    • The viewport is scalable to any resolution.
    • It makes good use of full-screen with the right choice of interface.
    • A highly robust and flexible shader system completely separate from the core.
  • Dynamic rate control fixes most audio issues.
  • Mirrored Rom and Ram maps, allowing ordinary rom images to be played right away.
  • The Snes9x Next core was forked from a commit somewhere between upstream version 1.52 and 1.53 and includes some extra speed hacks to run full speed on the Wii, as well as a SuperFX overclock option.
  • The bsnes-mercury restores things like HLE DSP and SGB emulation using Gambatte, as well as some optimizations that don't sacrifice accuracy. Things like the HLE DSP were removed in higan and, much like Snes9x Next, it has an option to overclock SuperFX. The default options match bsnes, where HLE emulation is not enabled by default.

4. BizHawk

  • TASVideos tests say its the best for TASes (tool-assisted speedruns/superplays).
  • Not cross-platform; it's written in C#, and compiled for .NET 4.0 on Windows.
  • Has support for libretro cores.

5. Mednafen

  • Much like higan, it's an open-source, multi-system emulator. The libretro core is a fork renamed Beetle.
  • Graphical shells exist (like Mednaffe) to help with the fact that it can only run from the command line.
  • Its SNES core is based on bsnes v059 which is actually pretty old. It predates the performance/balanced/accuracy profiles to as far back as 2010. However, this version is much faster than upstream.
    • It's missing many of the improvements to the LLE audio engine that newer versions of Snes9x and higan have.
    • It's also missing out on many accuracy updates that address a few edge cases such as Air Strike Patrol, one of two games known to notoriously manipulate the PPU mid-scanline. It also has some problems rendering text, flickering lines near the bottom, and displaying shadows during flight.
  • There are systems Mednafen emulates well and very accurately, but the SNES is not exactly one of them. At that point, it's worth using bsnes or its libretro cores instead.

6. ZSNES

See also the review.
  • The least accurate of the bunch but still relevant for many reasons.
    • Runs full speed on even very old x86 systems such as an early Pentium 1.
    • Many ROM hacks were often designed around (let alone possible, simply because of) its problems, and would often break on anything else.
    • It had tons of bugs and lacked certain operations for less notable games that needed them. Some testing also showed it didn't synchronize the components as often as other newer emulators would.
      • One of these bugs was a severe ACE vulnerability that could allow a maliciously designed ROM to run its own code on the host machine. Therefore, it's best to check the source of your roms before using them with ZSNES.
    • Though fans have modded the builds, the project is basically dead.
  • It has surprisingly good netplay.
  • Sports an interesting but polarizing graphical user interface; it's either loved, or it's despised by the community.
  • Relies on external pre-decompressed graphical packs to emulate some games with elaborate chips, much like older versions of Snes9x such as 1.43. Assuming you get (what are now rare and very hard-to-find) graphical packs for the SPC7110 (like from here) and Star Ocean, and put them in folders you then set under "Paths" in ZSNES, they can be playable without missing graphics.
  • Viable alternatives are bZSNES (for ZSNES-centric rom hacks), ZMZ (for the UI), NO$SNS or older versions of Snes9x (for speed boosts tailored to old systems). Otherwise, choose any of the others like bsnes/higan and Snes9x (for better compatibility).

Detailed round-ups of the best SNES emulators:

List of recommended SNES emulators for Android:

Accessories

There aren't as many accessories that were released for the SNES compared to the NES[1] but there is still quite a few to go over.

Super Game Boy

The Super Game Boy was a peripheral designed to play Game Boy and black Game Boy Color cartridges on the Super Nintendo through the cartridge slot, just like a typical SNES game. The Super Game Boy uses a special version of the Game Boy hardware to allow for Super Game Boy enhanced Game Boy games to operate its otherwise hidden features. Although many Game Boy/Game Boy Color emulators and Game Boy Advance emulators fake this ability, higan and forks are the first and only emulators to truly emulate its features.

Another thing to note is that there is a redesigned model, only released in Japan, called the Super Game Boy 2. It has the ability to use a link cable connection that the first model lacks. It also fixes a slight overclocking issue and runs games at normal speed.

There are a few hiccups with emulating the Super Game Boy, however. higan's Game Boy core isn't up to snuff yet. One notable example is Pokémon Yellow Version and the special border that is supposed to display. higan displays the standard Game Boy border while the real hardware displays a special green Pikachu border. On the other hand, Pokémon Gold/Silver Version, designed for Game Boy Color, can operate on a Game Boy and that operates as intended when played on a Super Game Boy. Also, if one attempts to run Game Boy Camera in higan in Super Game Boy mode, the emulator crashes. higan can run in Super Game Boy 2 mode, but link cable connections are not possible yet, not even with other Game Boy emulators that can emulate a link cable.

asciiPad

The asciiPad is a controller by asciiWare that has similar features to the NES Advantage. Unlike the standard SNES controller, it has seven small switches that extend the way buttons are pressed. All the switches can be set to one of three modes for the standard buttons they individually represent, except for the seventh labeled "Slow" which changes the frequency of the additional modes. The switch can be set off, to turbo, and to auto. The turbo setting holds the button, and the auto setting control presses them automatically. higan is the first and only emulator known to support this specific controller's switches. Other emulators have a completely different implementation of turbo presses in their GUI, which can work for some, but not to this extent.

Super Scope

The Super Scope is a bazooka-looking light gun that is a bit more complex compared to the Zapper for the Nintendo Entertainment System. Super Scope 6, Yoshi's Safari, Battle Clash, and Metal Combat: Falcon's Revenge used it. Some emulators including Snes9x and bsnes/higan support the Super Scope, emulated with the mouse.

Mouse

The mouse allowed control over Mario Paint and Mario & Wario among other games, though in later games mouse support was optional. Some emulators including Snes9x and bsnes/higan support the Mouse. A ROM hack for Mario & Wario replaces mouse controls with traditional controls for the emulators that don't support this feature.

Konami Justifier

Similar to the NES Zapper but differs from the Super Scope, this is another light gun but needs calibration. It looks like a real gun. It was meant to simulate the shooter arcade experience. Only one game is compatible and that is Lethal Enforcers. Snes9x and higan support this gun.

Super Multitap

Made by Hudson Soft and licensed by Nintendo, this functions similarly to the NES Four Score. Instead of using both controller ports, it just used one, allowing up to 5 players at once. Bomberman games used this accessory. Some emulators including Snes9x and bsnes/higan support five players.

JRA PAT, SNES Modem, and NTT Data Controller

This is a rather obscure Super Famicom game with compatible accessories. JRA PAT is a horse race gambling game where you could use real money.[2] The service is dead. However, it is unknown if any emulator supports the special controller and modem that can plug into the player 1 and player 2 slots respectively.

Voice-kun

A few games by Koei shipped with an Audio-CD that typically contained voice acting, and supported this accessory which would command a CD player with IR signals typically used by remote controllers so that audio plays at specific points in the game. These games are still playable in most emulators but without Voice-kun support. byuu intends to make either MSU-1 hacks or proper Voice-kun emulation for these games in future higan versions, which would make it the first emulator to emulate this feature.

Satellaview emulation

The Satellaview was a subscription-based add-on released only in Japan that streamed content to the Super Famicom. BS-X or Satellaview software was broadcast the console add-on and stored as temporary data to be deleted shortly afterward. 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 a 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 gameplay 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 (higan) Windows, Linux, macOS v110 Cycle
bsnes Windows sx2 v0.09 (based on v0.82) Cycle
Snes9x Windows sx2 0.02 (based on 1.53) High
NO$SNS Windows 1.5 (2013) Mid
BizHawk (bsnes) Windows 2.9.1 Cycle
Mednafen (bsnes) Multi-platform 1.32.0-UNSTABLE High
SNESGT Windows 2.18 (2007) Mid

Data Pack emulation

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 an 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
Snes9x Windows sx2 0.02 (based on 1.53) Mid
bsnes Windows sx2 v0.09 (based on v0.82) Low

SNES-CD revival and emulation

SNES-CD

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 afterward 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 canceled 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 the pathetic 64MB maximum storage limit which would be obsoleted by later bigger N64 cartridges, as well as the 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 other systems instead (Hook to the Sega CD, and Rayman to the Atari Jaguar, among others), while the rest were outright canceled. 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[3] and repaired.[4][5] 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 legitimate 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. Both of these were tested on the real hardware and have severe visual glitches due to the SNES-CD adding more undocumented interrupts which are not accurately emulated anywhere, which means it's safe to say that while SNES-CD emulation exists nowadays, it would have low compatibility with any legit unreleased SNES-CD game prototypes.


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

MSU-1

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), higan (v094 and up), and Snes9x (v1.55 and up). These hacks simply won't work at all in other emulators, unless their developers implement an MSU-1 check to let the game run in these emulators without the MSU-1 enhancements (the MSU-1 specification has a specific feature to allow for compatibility testing).

PC
Name OS Version MSU-1 Accuracy Recommended
higan Windows, Linux v110 Cycle
bsnes Windows, Linux, macOS v110 Cycle
Snes9x Multi-platform 1.62.3 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.

To load the MSU-1 patched games with Snes9x:

  1. Patch the original SNES ROM with the IPS patch
  2. Copy the patched ROM file, any MSU image file 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 the files all carry the same name prefix as the base ROM, with the MSU image having a .msu extension and all PCM files suffixed by track number.
  3. Launch the base ROM with Snes9x.

Notable hacks for the MSU-1 include:

References

Resources