Difference between revisions of "Super Nintendo emulators"

From Emulation General Wiki
Jump to navigation Jump to search
(Accessories)
(higan is multiplatform)
Line 15: Line 15:
 
|-
 
|-
 
| style="text-align: center;"|[[Higan]] (formerly bsnes)
 
| style="text-align: center;"|[[Higan]] (formerly bsnes)
| style="text-align: center;"|Windows, Linux
+
| style="text-align: center;"|Multi-platform
 
| style="text-align: center;"|[http://byuu.org/emulation/higan/ {{higanVer}}]
 
| style="text-align: center;"|[http://byuu.org/emulation/higan/ {{higanVer}}]
 
| style="text-align: center;"|✓
 
| style="text-align: center;"|✓

Revision as of 17:31, 26 March 2017

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. This console had fierce competition with SEGA's Mega Drive console (Genesis in North America).

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

Emulators

Name OS Version Libretro Core Accuracy Recommended
PC
Higan (formerly bsnes) Multi-platform v110 Cycle
bsnes-classic (forked bsnes Qt) Multi-platform 073u4 Cycle
Snes9x Multi-platform 1.54.1 High
BizHawk (bsnes) Windows 2.9.1 Cycle
Mednafen (bsnes) Multi-platform 1.32.0-UNSTABLE High
lsnes Windows rr2-β23 Cycle
MESS Multi-platform 0.264 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
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
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

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).

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 only emulators to truly emulate its features.

Another thing to note is that there is a redesign 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.

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 and Yoshi's Safari 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 Super Scope, emulated with 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 layer 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 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 2.9.1 Cycle
Mednafen (bsnes) Multi-platform 1.32.0-UNSTABLE High

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 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

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 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[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 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

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

Resources