This is an old revision of the document!


SNES

The US release. The original JP release.

The Super Nintendo Entertainment System (SNES), known as the Super Famicom in Japan, is a 16-bit fourth-generation home video-game console released by Nintendo on November 21, 1990 in Japan. Just like with the NES, it was redesigned as the SNES and released one year later in August 23, 1991 in the US, retailing for $199.99. The redesign wasn't as drastic as as the original NES vs. Famicom, though the SNES version got a unique purple/pink color scheme for its controller's buttons, compared to the Super Famicom's red-yellow-blue-green color scheme. The PAL region uses the Super Famicom's console case and controller color scheme.

Batocera typically uses the Super Famicom's controller button layout when referring to generic controllers (A B X Y, Red Yellow Blue Green), however some may refer to them by their compass directions (East South North West, East button (A Snes) South button (B SNES) North button (X Snes) West button (Y Snes) respectively) to avoid ambiguity with some other consoles.

Emulation for the SNES is extensive and very mature. Batocera features two (three if you count the weak-hardware optimized PocketSNES) hand-picked emulators and some of their forks.

shortname snes
emulator/core(s) libretro/bsnes libretro/bsnes_hd libretro/snes9x libretro/snes9x_next libretro/pocketsnes
rom format(s) smc fig sfc gd3 gd7 dx2 bsx swc zip 7z

bsnes was originally a SNES emulator started on October 14th, 2004, known for being more accurate to the hardware than other emulators at the time. Eventually the project started including emulation of so many other systems that the bsnes name started to become misleading, renaming the project to higan in 2012. Higan was forked in 2018 to revive the SNES-focused bsnes emulator from the project, more in line with how it was back in 2004. This standalone implementation has been 'libretro-ized' to work with RetroArch.

Configuration

All core related settings must be configured in RetroArch's Quick Menu (Hotkey+South button (B SNES)). This may change in the future.

A fork of the 2018 bsnes that adds various enhancements including HD Mode 7 (F-Zero tracks rendered in 4k! Doesn't upscale the textures themselves, just increases the viewport resolution), Widescreen support (best with the aforementioned HD Mode 7, but can also work with traditional 2D games) and others.

Configuration

All core related settings must be configured in RetroArch's Quick Menu (Hotkey+South button (B SNES)). This may change in the future.

Snes9x is a mature SNES emulator that evolved from being a speed-focused Win95 standalone to one of the most accurate and performant current SNES emulators available. This is the libretro port of it.

Configuration

setting description recommendation
snes.gfxbackend Chooses graphics API. opengl is more compatible, vulkan is more performant but not as compatible with devices. This setting is shared with all snes9x and bsnes forks. opengl
snes.reduce_sprite_flicker Enhancement. The SNES has a limit of 32 sprites per line, flickering between them if that limit is exceeded. This setting removes that limit. No games particularly used this quirk, and thus enabling it is usually safe (albeit less authentic). enabled
snes.reduce_slowdown Enhancement. Overclocks the SNES's CPU to improve console-accurate lag. Very experimental. light for shorter loading times, compatible for improving game slowdown and max for demanding titles (Gradius 3, Super R-Type). disabled Changing this can cause games to crash!
snes.overclock_superfx Enhancement. Overclocks the SuperFX chip to improve console lag. Settings under 100% can improve performance on weak devices. Very experimental. Values for overclocking: 150%, 200%, 250% etc. up to 500%; underclocking: 90%, 80%, 70%, 60% or 50%. 100% Changing this can cause timing errors.
snes.hires_blend Selects blending mode. Some games manipulated the blurriness of the interlaced analogue signal to create transparency effects (eg. Kirby's Dream Land, Jurassic Park). merge merges the colors of the pixels to create a cleaner looking transparency effect (though it technically means the transparent object is moved half a pixel, it's not really noticeable), blur uses bilinear filtering to achieve the same effect (but is more noticeable). off, shaders can also simulate a similar effect.
snes.controller1_snes9x Select what controller is connected to port 1. 1 for SNES Gamepad, 2 for SNES Mouse. 1
snes.controller2_snes9x Same as above in addition to 257 for SNES Multitap, 260 for SuperScope, 516 for Konami Justifier or 1028 for M.A.C.S. Rifle. 1
snes.controller3_snes9x The controller plugged into the Konami Justifier (P1). 1 for SNES Gamepad or 772 for Konami Justifier (P2). 1

Other settings must be configured in RetroArch's Quick Menu (Hotkey+South button (B SNES)).

A fork of Snes9x that includes some extra speed hacks to run full speed on weaker hardware, as well as including an overclocking option to increase FPS in games like Star Fox. This is the libretro port of it.

Configuration

snes.gfxbackend Chooses graphics API. opengl is more compatible, vulkan is more performant but not as compatible with devices. This setting is shared with all snes9x and bsnes forks. opengl
snes.2010_reduce_sprite_flicker Enhancement. The SNES has a limit of 32 sprites per line, flickering between them if that limit is exceeded. This setting removes that limit. No games particularly used this quirk, and thus enabling it is usually safe (albeit less authentic). enabled
snes.2010_reduce_slowdown Enhancement. Overclocks the SNES's CPU to improve console-accurate lag. Very experimental. light for shorter loading times, compatible for improving game slowdown and max for demanding titles (Gradius 3, Super R-Type). disabled Changing this can cause games to crash!
snes.2010_overclock_superfx Enhancement. Overclocks the SuperFX chip to improve console lag. Settings under 100% can improve performance on weak devices. Very experimental. Values for overclocking: 11 MHz, 12 MHz, 13 MHz, 14 MHz, 15 MHz, 20 MHz, 30 MHz or 40 MHz; underclocking: 9 MHz (Underclock), 8 MHz (Underclock) or 5 MHz (Underclock). 10 MHz (Default) Changing this can cause timing errors.
snes.controller1_snes9x_next Select what controller is connected to port 1. 1 for SNES Gamepad, 2 for SNES Mouse. 1
snes.controller2_snes9x_next Same as above in addition to 257 for SNES Multitap, 260 for SuperScope, 516 for Konami Justifier or 772 for Dual Konami Justifiers. 1

Other settings must be configured in RetroArch's Quick Menu (Hotkey+South button (B SNES)).

Also known as Snes9x 2002, Pocket SNES is a lightweight but innaccurate libretro core available only on weaker systems. Notable for the standalone version running (albeit poorly) on the GBA of all things. You can run this emulator in the GBA emulators!

Configuration

FIXME

No SNES emulator in Batocera needs the BIOS to run.

Place your SNES ROMs in /userdata/roms/snes and your SNES MSU-1 smc or sfc ROMs in /userdata/roms/snes-msu1. ROMs can be compressed into zip or 7z files.

Surely the beginning of a jolly co-operation!

There was going to be a disc-based add-on for the SNES just like the original Famicom's Disk System add-on. Nintendo was going to collaborate with the small and local but well-known hardware manufacturer Sony at the time, and despite getting far into the development phase, the project was cancelled due to licensing disagreements. I wonder what Sony did with that disc-based video-game console prototype they were working on?

Although a prototype unit was discovered and repaired, it wasn't finished and had severe limitations. The MSU-1 is a fan-made custom hardware specification to emulate what would be believed to be capable of the ill-fated SNES-CD. It's even compatible with a real SNES!

Of course, no commercial games have been released for the SNES MSU-1, but there have been romhacks and fan-patches that can utilize it. Place your patched roms into the roms/snes-msu1 folder to add them. They'll even get their own system entry (though most themes don't seem to support it yet), which you can group with the SNES system using custom collections. The PocketSNES emulator doesn't support MSU-1 patched ROMs.

The default button mapping to the SNES controller is as follows:

SNES Controller layout

  • systems/snes.1629629121.txt.gz
  • Last modified: 5 years ago
  • by atari