Difference between revisions of "Emulators"

From A complete guide to Super Metroid speedrunning
Jump to: navigation, search
(Adding a new page about emulators)
 
(Removing link to higan.dev, seems to be down, and wrong certificate.)
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
All Emulators officially released by Nintendo (such as Wii VC, WiiU VC, 3DS VC, and SNES Classic) are acceptable for runs. Other emulators generally accepted by SpeedRunsLive are also accepted for runs here. Commonly recommended emulators are '''RetroArch''' (with bsnes or Snes9x core), '''Higan''', '''Snes9x''', '''SNESGT'''. Older versions of Snes9x (v1.43 or older) as well as all versions of ZSNES are banned. These emulators do not properly emulate the game for speedrunning standards.  Keyboard is allowed, but should have a setting enabled to prevent left+right (see below).
+
All Emulators officially released by Nintendo (such as Wii VC, WiiU VC, 3DS VC, SNES Classic, and Switch) are acceptable for runs. Other emulators generally accepted by SpeedRunsLive are also accepted for runs here. Commonly recommended emulators are '''RetroArch''' (with bsnes or Snes9x core), '''bsnes''', '''Higan''', '''Snes9x'''. Older versions of Snes9x (v1.43 or older) as well as all versions of ZSNES are banned. These emulators do not properly emulate the game for speedrunning standards.  Keyboard is allowed, but should have a setting enabled to prevent left+right (see below).
  
 +
Emulator functions that are not available to console players using a standard controller are banned from use during runs. This includes but is not limited to: savestates, pressing two opposite direction inputs at the same time (left+right), turbo, fast forward/rewind, run ahead, and RAM watch. Auto-splitters that use RAM watch are generally accepted but should not give any advantage to the runner. See [[Leaderboard Submission Rules]] for more information.
  
Emulator functions that are not available to console players using a standard controller are banned from use during runs. This includes but is not limited to: savestates, pressing two opposite direction inputs at the same time (left+right), turbo, fast forward/rewind, run ahead, and RAM watch. Auto-splitters that use RAM watch are generally accepted but should not give any advantage to the runner.
+
The below table has a comparison of various common emulators; a more comprehensive list can be found [https://emulation.gametechwiki.com/index.php/Super_Nintendo_emulators here].
  
 
+
{| class="wikitable" style="text-align: left; "
'''RetroArch''' is the emulator of choice for runners that want to minimize input delay/latency. It features many settings for reducing latency at the cost of performance. Use the values listed below, but adjust the frame delay as high as possible without dropping any frames.
+
|+ Emulator comparison
 
+
|-
* video_refresh_rate = "60.099"
+
!
* video_threaded = "false"
+
! Comments
* video_hard_sync = "true"
+
|-
* video_hard_sync_frames = "0"
+
! Virtual Console
* video_frame_delay = "8"
+
(Wii, WiiU, New3DS, SNES Classic, Switch)
* video_max_swapchain_images = "2"
+
|
 +
* Low input lag (except WiiU)
 +
* Relatively stable when using [[Spacetime Beam]]
 +
* Unable to run [[0%]] due to crashing on the Artificial Varia glitch
 +
* Difficult to run [[4%]] or [[12%]] due to crashing with the Block Shuffler glitch
 +
|-
 +
! [https://github.com/bsnes-emu/bsnes bsnes]
 +
|
 +
* Low input lag
 +
* Options for GPU Sync and Adaptive Sync
 +
* Options for Run-Ahead and Overclocking: these are banned for runs on the leaderboard
 +
* Requires a modestly good computer; much lower system requirements than higan
 +
* Partially randomized [https://github.com/bsnes-emu/bsnes/issues/140 RAM initialization] that aims to model hardware behavior; can affect [[Out of Bounds]] movement
 +
* As unstable as console when using [[Spacetime Beam]]
 +
* For Super Metroid, no known accuracy disadvantage compared with higan
 +
|-
 +
! byuu
 +
[https://github.com/higan-emu/higan/ higan]
 +
[https://ares-emu.net ares]
 +
|
 +
* Multi-system emulator built from bsnes
 +
* Designed for accuracy above all other considerations
 +
* Requires a powerful computer
 +
* Starting with v107, the project gained a new complex interface in order to be able to support such complex hardware as the [https://www.reddit.com/r/retrogaming/comments/avznc8/nintendo_is_no_match_for_the_sega_tower_of_power/ Sega "Tower of Power"]
 +
* Partially randomized [https://github.com/bsnes-emu/bsnes/issues/140 RAM initialization] that aims to model hardware behavior; can affect [[Out of Bounds]] movement
 +
* As unstable as console when using [[Spacetime Beam]]
 +
* For Super Metroid, no known accuracy advantage compared with the new bsnes (v107+)
 +
|-
 +
! [https://sites.google.com/site/bearoso/ Snes9x]
 +
|
 +
* Requires very little computer power, will run on just about any system
 +
* Often has moderate input lag. Version 1.56.1 added a "Reduce input lag" option that helps some users
 +
* With high-refresh-rate monitors, some users only see 30fps displayed by the emulator
 +
* Relatively stable when using [[Spacetime Beam]]
 +
* Certain controllers require [[Control Schemes|manually setting up the dpad diagonal directions]]
 +
|-
 +
! [http://tasvideos.org/Lsnes.html Lsnes]
 +
|
 +
* Commonly used for [[Tool Assisted Speedruns|TASes]]
 +
* Most [https://github.com/dan-tas/supermetroid-tas/blob/master/snes-supermetroid/src/test/resources/hitbox-viewer/lsnes-hitbox-viewer-32px.lua hitbox viewers] used to learn [[Out of Bounds]] navigation are written for lsnes
 +
* Uses the bsnes v085 "Compatibility" core by default
 +
* Moderate input lag
 +
* Moderate audio lag
 +
* Not recommended for real-time speedrunning
 +
* Powerful tool for TASing, but requires manual handling of savestates
 +
|-
 +
! [https://github.com/TASVideos/BizHawk#readme BizHawk]
 +
|
 +
* Commonly used for [[Tool Assisted Speedruns|TASes]]
 +
* Uses the Snes9x core by default, but the bsnes v087 core is available
 +
* Moderate input lag
 +
* Not recommended for real-time speedrunning
 +
* Easier to learn TASing than lsnes: the ".tasproj" format used by default contains savestates, so it's easier to jump back a few frames without manual handling of savestates
 +
|-
 +
! [https://www.retroarch.com/?page=platforms RetroArch]
 +
|
 +
* Emulator frontend that can use various "cores"
 +
* Recommended setup options can be found [https://alttp-wiki.net/index.php/RetroArch_Settings here]
 +
* With the recommended setup, has low input lag
 +
* Snes9x cores prior to 2010 use Snes9x 1.43, and are banned from the leaderboards
 +
* Option for Run-Ahead: this is banned for runs on the leaderboard
 +
|-
 +
! Snes9x 1.43
 +
|
 +
* This older version of Snes9x used to be common, but is commonly banned for speedrunning because it emulates lag incorrectly
 +
|-
 +
! ZSNES
 +
|
 +
* '''Do not use ZSNES'''
 +
* It has a major exploit that's been known for years, where loading a malicious ROM [https://www.youtube.com/watch?v=Q3SOYneC7mU allows any code to be run on your computer]
 +
* This exploit will [https://www.reddit.com/r/emulation/comments/3aq0t3/psa_zsnes_v151_native_code_execution_vulnerability/csfg1m1/?context=10000 supposedly be fixed in the next release], but the latest release still was in 2007
 +
* It also does not emulate lag accurately, making for unfair comparisons to runs performed on console
 +
* Please don't use it, seriously. Even for casual gaming.
 +
|}

Revision as of 08:26, 23 October 2022

All Emulators officially released by Nintendo (such as Wii VC, WiiU VC, 3DS VC, SNES Classic, and Switch) are acceptable for runs. Other emulators generally accepted by SpeedRunsLive are also accepted for runs here. Commonly recommended emulators are RetroArch (with bsnes or Snes9x core), bsnes, Higan, Snes9x. Older versions of Snes9x (v1.43 or older) as well as all versions of ZSNES are banned. These emulators do not properly emulate the game for speedrunning standards. Keyboard is allowed, but should have a setting enabled to prevent left+right (see below).

Emulator functions that are not available to console players using a standard controller are banned from use during runs. This includes but is not limited to: savestates, pressing two opposite direction inputs at the same time (left+right), turbo, fast forward/rewind, run ahead, and RAM watch. Auto-splitters that use RAM watch are generally accepted but should not give any advantage to the runner. See Leaderboard Submission Rules for more information.

The below table has a comparison of various common emulators; a more comprehensive list can be found here.

Emulator comparison
Comments
Virtual Console

(Wii, WiiU, New3DS, SNES Classic, Switch)

  • Low input lag (except WiiU)
  • Relatively stable when using Spacetime Beam
  • Unable to run 0% due to crashing on the Artificial Varia glitch
  • Difficult to run 4% or 12% due to crashing with the Block Shuffler glitch
bsnes
  • Low input lag
  • Options for GPU Sync and Adaptive Sync
  • Options for Run-Ahead and Overclocking: these are banned for runs on the leaderboard
  • Requires a modestly good computer; much lower system requirements than higan
  • Partially randomized RAM initialization that aims to model hardware behavior; can affect Out of Bounds movement
  • As unstable as console when using Spacetime Beam
  • For Super Metroid, no known accuracy disadvantage compared with higan
byuu

higan ares

  • Multi-system emulator built from bsnes
  • Designed for accuracy above all other considerations
  • Requires a powerful computer
  • Starting with v107, the project gained a new complex interface in order to be able to support such complex hardware as the Sega "Tower of Power"
  • Partially randomized RAM initialization that aims to model hardware behavior; can affect Out of Bounds movement
  • As unstable as console when using Spacetime Beam
  • For Super Metroid, no known accuracy advantage compared with the new bsnes (v107+)
Snes9x
  • Requires very little computer power, will run on just about any system
  • Often has moderate input lag. Version 1.56.1 added a "Reduce input lag" option that helps some users
  • With high-refresh-rate monitors, some users only see 30fps displayed by the emulator
  • Relatively stable when using Spacetime Beam
  • Certain controllers require manually setting up the dpad diagonal directions
Lsnes
  • Commonly used for TASes
  • Most hitbox viewers used to learn Out of Bounds navigation are written for lsnes
  • Uses the bsnes v085 "Compatibility" core by default
  • Moderate input lag
  • Moderate audio lag
  • Not recommended for real-time speedrunning
  • Powerful tool for TASing, but requires manual handling of savestates
BizHawk
  • Commonly used for TASes
  • Uses the Snes9x core by default, but the bsnes v087 core is available
  • Moderate input lag
  • Not recommended for real-time speedrunning
  • Easier to learn TASing than lsnes: the ".tasproj" format used by default contains savestates, so it's easier to jump back a few frames without manual handling of savestates
RetroArch
  • Emulator frontend that can use various "cores"
  • Recommended setup options can be found here
  • With the recommended setup, has low input lag
  • Snes9x cores prior to 2010 use Snes9x 1.43, and are banned from the leaderboards
  • Option for Run-Ahead: this is banned for runs on the leaderboard
Snes9x 1.43
  • This older version of Snes9x used to be common, but is commonly banned for speedrunning because it emulates lag incorrectly
ZSNES