Difference between revisions of "Super Nintendo emulators"
|Line 235:||Line 235:|
Latest revision as of 13:57, 17 August 2022
|Type||Home video game console|
The Super Nintendo Entertainment System (SNES) is a 16-bit, fourth-generation home video game console released by Nintendo on November 21, 1990, in Japan and on August 23, 1991, in the US. It retailed for $199.99. It has a Ricoh 5A22 CPU at 3.58 MHz. 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.
- 1 Emulators
- 2 Emulation Enhancements
- 3 Accessories
- 4 Satellaview emulation
- 5 Data Pack emulation
- 6 SNES-CD revival and emulation
- 7 References
- 8 Resources
|PC / x86|
|Snes9x||1.61||✓||High||✗ [N 2]||✓||~|
|nSide (forked higan)||git||✓||Cycle||✓||✗||~|
|BizHawk (bsnes v115)||2.8||✗||High||✓||✓||~|
(forked bsnes Qt v073)
|lsnes (based on bsnes)||rr2-β23
|kindred (Super Sleuth PE)||1.12 Preview Build 3||✗||?||✗||✓||✗|
|Mednafen (bsnes v059)||1.31.0-UNSTABLE||✓||High||✓||✓||✗|
|Mobile / ARM|
(Different from 'Snes9x')
(Snes9x 1.39 based)
|Snes9x GX||4.5.3||✗||?||✓ [N 2]||✓||✓|
RetroArch 360 0.9.8.3
(Snes9x 1.39 based)
|Snes9x for 3DS||git||✗||Low||✓||✓||~|
|Pocket SNES||Beta||✓||Low||?||✓ (libretro core)||✗|
- Cycle-> ares in pixel accuracy mode
- Due to using a non-commercial license. Source code is still publicly available.
- The codifier of emulation accuracy. Should play all commercially released games without trouble, assuming you have the power.
- Incompatible with old ROM hacks made to take advantage of emulator quirks, much like real hardware.
- Has a superb LLE audio engine.
- For supreme authenticity higan offers better ROM management, but newcomers who care more about playing the ROMs they have should stick with the bsnes release.
- 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, though for decent experience you'll want at least a late Pentium 3).
- Shares its LLE audio engine with bsnes.
- Older versions may have buggy graphics and shaders in standalone, though it's video card and driver dependent.
- Controller support is hit-and-miss, especially when it comes to XInput.
- 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 fullscreen 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.
- 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.
- Multi-system emulator by TASVideos designed for tool-assisted speedruns, but also doubles as an easy-to-use emulator.
- Its SNES core is based on bsnes v115.
- Primarily for Windows, but some Linux compatibility has been reported, likely through Wine.
- Has support for libretro cores.
- Like BizHawk, it's multi-system and based on bsnes.
- 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 current higan versions.
- It's missing many of the improvements to the LLE audio engine that newer versions of Snes9x and higan have.
- It also lacks many of the updates to edge cases such as Air Strike Patrol, one of two games notorious for manipulating 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 one of them. At that point, you'd be better off using standalone bsnes.
- Mesen S / Mesen SX
- Launched in April 2019 from the same author of the top-class NES/Famicom emulator Mesen. Was slated to have similar features as its famous forebearer.
- Users who increasingly tire of higan's (or bsnes) limited user options and cumbersome ROM and save files management may gravitate towards Mesen-S sooner or later, which should run nicely in users' game systems alongside Snes9x or Mednafen (or similar peer).
- The least accurate of the bunch but still relevant for many reasons, including:
- Running full speed on even very old PCs such as an early Pentium 1.
- Forming the basis for many ROM hacks which were often designed around (let alone possible, simply because of) its problems and would break on anything else.
- Having tons of bugs and not even emulating some of the original console's operations which some less notable games needed.
- One of these bugs was an ACE vulnerability that, if discovered in the emulator's prime, would've allowed a maliciously designed ROM to run its own code on the host machine. No real-world case of it being exploited exists aside from some harmless proof of concept, but it's always good to verify your ROMs before opening them in ZSNES.
- Having surprisingly good netplay.
- Sporting an iconic DOS-centric GUI.
- While fans have since modded the binaries (including to patch out the vulnerability), the project is basically dead.
- Older versions rely 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. With that said the newest version does not need them for SDD-1 titles, only for SPC7110 titles.
- 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).
High Resolution Affine Transformations
The SNES had a graphical mode called "Mode 7" that allowed scaling the first background layer. The Super-FX2 added more advanced scaling options but they're not covered by Mode 7 and therefore enhancements for it. The SNES Mode 7 background is limited to 128x128 pixels, and the output resolution is 256x240. As a result, there's heavy aliasing and a general loss of quality with some transformations. However, there have been emulator enhancements to make it look better:
- High resolution: The scaled backgrounds are rendered with subpixel precision at a higher resolution compared to the rest of the game's graphics. This may cause visual discrepancies between both.
- Supersampling: Acts like a sort of anti-aliasing for Mode 7. All graphics are rendered with the same pixel size, though scaled backgrounds are rendered in a higher resolution then processed back to the same resolution as the rest of the image, for a more uniform look. Used to be the only option in bsnes.
- Widescreen: Later added by bsnes-hd.
With certain settings, there is heavy aliasing which we can reduce by increasing the sampling rate.
Mode 7 scaling bilinear filtering
Some older version of SNES9X offered bilinear filtering for Mode 7 backgrounds, making them smoother/blurrier instead of pixelated as they are scaled, instead of just applying the bilinear filter on the video output itself.
Alternative audio interpolation methods
Most SNES emulators since at least ZSNES 1.3.x support audio interpolation methods beyond the traditional SNES Gaussian interpolation, such as Linear, Cubic, Sinc, or even no interpolation, should someone prefer that.
Higher sample rates
Likewise, the sample rate can also be set to higher than 32 kHz even in ZSNES 0.150. Though in some versions of ZSNES in the very early 2000s it did cause some artifacts. Nowadays emulators support sample rates all the way to 96 kHz.
There aren't as many accessories that were released for the SNES compared to the NES 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 such as colorization and improved sound by way of the SNES's more sophisticated sound hardware. 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. 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.
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.
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.
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.
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.
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. 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.
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.
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, 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
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 / x86|
|bsnes||sx2 v009 (based on v082)||High||✓||✓|
|BizHawk (bsnes v115)||2.8||High||?||✓|
|Snes9x||sx2 0.02 (based on 1.53)||High||✗||~|
|Mednafen (bsnes v059)||1.31.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 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.
|Name||Platform(s)||Version||Data Pack Emulation||FLOSS||Recommended|
|PC / x86|
|Snes9x||sx2 0.02 (based on 1.53)||Mid||✗||✓|
|bsnes||sx2 v009 (based on v082)||Low||✓||✗|
SNES-CD revival and emulation
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 and repaired. 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.
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 flashcard, bsnes (v075 and up), higan (v094 and up), and Snes9x (1.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 / x86|
To load the MSU-1 patched games with higan or bsnes:
- Patch the original SNES ROM with the IPS patch
- Make sure to copy
manifest.bmland 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
- Make sure it's
- Launch with higan/bsnes.
To load the MSU-1 patched games with Snes9x:
- Patch the original SNES ROM with the IPS patch
- 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
.msuextension and all PCM files suffixed by track number.
- Make sure the files all carry the same name prefix as the base ROM, with the MSU image having a
- Launch the base ROM with Snes9x.
Notable hacks for the MSU-1 include:
- BS Zelda no Densetsu (a restoration of how the streamed audio played in the Satellaview game!)
- BS Zelda no Densetsu: Inishie no Sekiban
- Chrono Trigger (includes a conversion of the FMV intro from the PlayStation version of the game)
- Donkey Kong Country 2
- The Legend of Zelda: A Link to the Past (with an optional patch adding FMVs)
- Mega Man X
- Mega Man X3 (with CD version audio)
- Rock n' Roll Racing
- Secret of Mana
- Super Mario World
- Super Road Blaster (port of the FMV arcade game)
- List of Super Nintendo Entertainment System accessories
- SNES Development Wiki – SNES Development Wiki for you know, SNES Development.
- SNES Accuracy Tests (TASVideos) – Test results on various emulators using test ROMs