Editing RetroArch

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
{{Infobox software
+
{{Infobox
|logo          = Retroarch.png
+
|image = retroarch.png
|logowidth = 250
+
|first = 1.0.0.1
|developer    = Squarepusher, themaister, [https://github.com/libretro/RetroArch/graphs/contributors others]
+
|second = Yes
|version      = {{Version|RetroArch}}
+
|third = Multi-platform
|active        = Yes
+
|fourth = Squarepusher, themaister, others
|platform     = [[Emulators on Windows|Windows]]<br/>[[Emulators on macOS|macOS]]<br/>[[Emulators on Linux|Linux]]<br/>[[Emulators on Haiku|Haiku]]<br/>[[Emulators on Android|Android]]<br/>[[Emulators on iOS|iOS]]<br/>[[Emulators on Raspberry Pi|Raspberry Pi]]<br/>[[Emulators on Pandora|Pandora]]<br/>[[Emulators on DragonBox Pyra|Pyra]]<br/>[[Emulators on PS2|PlayStation 2]]<br/>[[Emulators on PS3|PlayStation 3]]<br/>[[Emulators on PS4|PlayStation 4]] (Unofficial)<br/>[[Emulators on PSP|PlayStation Portable]]<br/>[[Emulators on Vita|PlayStation Vita/TV]]<br/>[[Emulators on Xbox|Xbox]]<br/>[[Emulators on Xbox 360|Xbox 360]]<br/>[[Emulators on Xbox One|Xbox One]]<br/>[[Emulators on GameCube|GameCube]]<br/>[[Emulators on Wii|Wii]]<br/>[[Emulators on Wii U|Wii U]]<br/>[[Emulators on Switch|Nintendo Switch]]<br/>[[Emulators on 3DS|Nintendo 3DS]]<br/>[[Emulators on GCW Zero|GCW Zero]] (Unofficial)<br/>OpenDingux<br/>BlackBerry<br/>Steam Link<br/>Leapfrog
+
|fifth = [http://www.libretro.com/ libretro.com]
|type          = [[libretro]] frontend
+
|sixth = [https://github.com/libretro GitHub]}}'''RetroArch''' is an open source, multi-platform frontend for the [[libretro]] API. It is designed to be a fast, lightweight, and portable [[multi-system emulator]].
|prog-lang = C, C++
 
|website      = [https://www.libretro.com/ libretro.com]
 
|support = [https://www.patreon.com/libretro Patreon]<br/>[https://github.com/sponsors/libretro GitHub Sponsor]<br/>[https://liberapay.com/Libretro/donate Liberapay]
 
|source        = [https://github.com/libretro GitHub]
 
|license      = GNU GPLv3
 
}}
 
  
'''[[wikipedia:RetroArch|RetroArch]]''' (formerly '''SSNES''') is an open-source, multi-platform [[libretro]] [[Frontends|frontend]] written in C or C++. It is designed to be fast, lightweight, and portable.
+
RetroArch is available for Windows, OS X, Linux, Android, iOS (jailbroken), BlackBerry 10, Raspberry Pi, OpenPandora, PlayStation 3, Xbox, Xbox 360, GameCube, and Nintendo Wii.
  
 
==Downloads==
 
==Downloads==
Note: Some libretro cores are maintained separately from their originators, and thus possess a different update timeline.
+
*[http://www.libretro.com/index.php/downloads/ RetroArch (all versions)]
*[https://buildbot.libretro.com/stable/ RetroArch Stable Builds]
+
===PC Versions===
*[https://buildbot.libretro.com/nightly/ RetroArch Nightly Builds]
+
*[https://www.dropbox.com/sh/91sakv0qdyxjx9f/cGOfV7ZOKd Dev builds (Windows 64-bit, Android)]
*[https://buildbot.libretro.com/nightly/windows/ Windows RetroArch-Nightly-Installer]
+
*[http://www.mediafire.com/download/yrydc78bl6y82z4/retroarch-phoenix.7z RetroArch-Phoenix launcher (Windows 64-bit, no longer updated)]
*Ubuntu PPAs: [https://launchpad.net/~libretro/+archive/ubuntu/stable Stable], [https://launchpad.net/~libretro/+archive/ubuntu/testing Nightly/Testing]
 
*Arch Linux User Repositories: [https://aur.archlinux.org/packages/retroarch-git/ Testing], [https://aur.archlinux.org/packages?O=0&K=libretro&submit=Go All]
 
 
 
 
===Mobile/Console Versions===
 
===Mobile/Console Versions===
*[https://play.google.com/store/apps/details?id=com.retroarch RetroArch for Android on Play Store], 32-bit & 64-bit ARM (also [https://play.google.com/store/apps/details?id=com.retroarch.aarch64 Plus version])
+
*[https://play.google.com/store/apps/details?id=com.retroarch&hl=en RetroArch for Android]
*[https://apps.apple.com/us/app/retroarch/id6499539433 RetroArch for iOS on App Store]
+
*[https://anonfiles.com/file/0b9b21f606c5d20d7ab27fb5bdaabb61 RetroArch for PS3 (CFW)] v.0.9.9, [https://anonfiles.com/file/6bab2de9422a6c00716c4dc14f8521df PS3 (DEX)] v.1.0.0, [https://anonfiles.com/file/423b3236bef70feee9b22aed7809745a PS3 (Cobra ODE)] v1.0.0
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/apple/ios9/RetroArchiOS9.ipa RetroArch for iOS9] ({{RetroArchVer}})
+
*[https://anonfiles.com/file/fcc9ae50c79285f5e914fc72d14342c0 RetroArch for Xbox] and [https://anonfiles.com/file/32768e3a4ab2ee7db7c31a93bc2bd975 Xbox 360] v0.9.9
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/apple/ios-arm64/RetroArch.ipa RetroArch for iOS-arm64] ({{RetroArchVer}})
+
*[http://themaister.net/retroarch-dl/blackberry/bb10/RetroArch-Cascades-1_0_0_1.bar RetroArch for BlackBerry 10]
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/playstation/psp/RetroArch.7z RetroArch for Playstation Portable] ({{RetroArchVer}})
 
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/playstation/vita/RetroArch.vpk RetroArch for PlayStation Vita/TV] ({{RetroArchVer}})
 
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/playstation/ps2/RetroArch_elf.7z RetroArch for Playstation 2] ({{RetroArchVer}})
 
*[https://xbins.org/libretro/stable/1.9.0/playstation/ps3/RetroArch.PS3.CEX.PS3.pkg RetroArch for PlayStation 3 (DEX)] (1.9.0)
 
*[https://xbins.org/libretro/stable/1.7.4/xbox/xbox/RetroArch.zip RetroArch for Xbox] (1.7.4)
 
*[https://digiex.net/threads/retroarch-360-0-9-8-3-download-sega-sens-gameboy-finalburn-emulator-for-xbox-360.12395/ RetroArch for Xbox 360] (0.9.8.3)
 
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/windows-msvc2019-uwp/x64/RetroArch-msvc2019-UWP_x64.msixbundle RetroArch for Xbox One / Universal Windows Platform] ({{RetroArchVer}})
 
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/nintendo/ngc/RetroArch.7z RetroArch for GameCube] ({{RetroArchVer}})
 
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/nintendo/wii/RetroArch.7z RetroArch for Wii] ({{RetroArchVer}})
 
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/nintendo/wiiu/RetroArch_rpx.7z RetroArch for Wii U] ({{RetroArchVer}})
 
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/nintendo/3ds/RetroArch_cia.7z RetroArch for Nintendo 3DS (.cia)] ({{RetroArchVer}})
 
*[https://buildbot.libretro.com/stable/{{RetroArchVer}}/nintendo/switch/libnx/RetroArch.7z RetroArch for Nintendo Switch] ({{RetroArchVer}})
 
*[https://pyra-handheld.com/boards/threads/retroarch-1-7-2.81254/ RetroArch for Pandora on OpenPandora's repo] (1.7.3) and [https://repo.openpandora.org/?page=detail&app=retroarch.lifning.001 old 2013 variant] (0.9.9.1)
 
*[https://pyra-handheld.com/repo/apps/53 RetroArch for Pyra] (1.9.6)
 
*[https://boards.dingoonity.org/gcw-development/(test-release)-retroarch-for-gcw0/ RetroArch for GCW Zero (.opk)] (0.1b) {Unofficial test build}
 
*[https://store.steampowered.com/app/1118310/RetroArch/ RetroArch on Steam]
 
  
 
==Supported Systems==
 
==Supported Systems==
Line 50: Line 25:
  
 
==Features==
 
==Features==
*Consistency across multiple platforms, using the same UI structure and a fully featured command line interface.
 
*Gamepad-controlled menu system with multiple styles available, such as XMB or Material UI. (There's also a [https://www.youtube.com/watch?v=hfuioGjCItw QT-based 'WIMP' desktop-style interface] for PC platforms that was announced before and released in version [https://www.libretro.com/index.php/retroarch-1-7-3-released/ 1.7.3].)
 
*Gamepad auto-configuration profiles, so that gamepads are mapped automatically when connected. XInput controller autoconfig is built into the application, with other controller types available as external profiles.
 
*Per-core and per-game configuration overrides
 
*Built-in [https://docs.libretro.com/guides/crtswitchres/ <abbr title="On Windows OS you need CRT Emudriver OR EDID editor tool such as 'Custom Resolution Utility'.">Custom resolution/CRTSwitchRes</abbr>] and refresh rate for video output, with exclusive fullscreen mode and monitor index for multi-monitor setups.
 
*Dynamic rate control for smooth audio and video, even when the game's output rate differs from your system's. Especially obvious with systems like GBA that do not run 60Hz.
 
*Basic fast-forward, SRAM saving, savestate, etc. It supports serialization of the emulation state, which is used to provide real-time rewind and netplay.
 
*[[Shaders and Filters|Pixel shaders]] and [[Shader_Presets|presets]], primarily using Slang, Cg and GLSL, with HLSL on Xbox 360. The shader format it uses is flexible and fairly easy to use, allowing for complex multi-pass effects with adjustable runtime parameters. Also supports traditional video filter plugins that are run in software.
 
*Supports audio DSP filter plugins through .dsp configuration files.
 
*Custom overlay support.
 
*FFmpeg recording and playback support. It can record either the native resolution output of the core or the post-processed output of the frontend. Playback is handled through an internal FFmpeg libretro core.
 
*Streaming support. By adding your twitch account to RetroArch and making some small [https://www.retroarch.com/index.php?page=recording setup], it is possible to stream on Twitch the content of the game played.
 
*[[GGPO]]-like netplay (latency hiding rollback). It should be lag-free if everyone involved emulates at full speed, doesn't live on opposite sides of the world, and has decent internet speeds. It uses peer-to-peer UDP and supports two players. Due to rollback, it requires a fair amount of CPU power to run, and only works with cores that support serialization.
 
*Options for decreasing input latency related to vsync by eliminating buffering by the video driver, as well as using frame delay to delay polling of inputs until right before a vsync occurs on the display.
 
*Supports [[Input_lag|input lag-mitigating techniques]]. One of these setting is "Run-ahead" which allows cycle-accuracy emulators to run ahead of mandatory 1 or 2 frames of input lag. These settings allow emulators to [https://medium.com/@libretro/retroarch-1-7-2-achieving-better-latency-than-original-hardware-through-new-runahead-method-1b80d26bb5d1/ achieve better latency than original hardware] (Run-ahead option official debut in version 1.7.2).
 
*[https://retroachievements.org/download.php#ralibretro RetroAchievements support].
 
*Libretro cores compatible with [[BizHawk]] and [[Virtual_reality#VR_game_room_simulations|EmuVR]], so if you don't like using RetroArch as a [[Frontends|frontend]] you have other options as well.
 
  
==Building RetroArch==
+
*Consistency across multiple systems.
{{Main|Building RetroArch}}
 
==Using RetroArch==
 
{{Main|Using RetroArch}}
 
==RetroArch for Dummies==
 
{{Main|Dummies Guide: RetroArch}}
 
  
==Netplay==
+
*Custom resolution and refresh rate for output.
Netplay is now usable from the menu in current builds, under Settings>Netplay Options. You can get it to work with the [https://github.com/libretro/RetroArch/wiki/Using-command-line command line] or the long-deprecated [https://www.mediafire.com/download/yrydc78bl6y82z4/retroarch-phoenix.7z RetroArch-Phoenix Launcher] as well in older builds.
 
  
You must specify whether you will be hosting (server) or joining (client) the game. If joining, you must also enter the host's IP address in the field below. Make sure your firewall is open on port 55435 (default; you can change it if you like) and that the port is forwarded in your router, if applicable. You can also specify 'spectator mode,' which will allow an arbitrary number of spectators to join and watch you play without being able to play themselves.
+
*Dynamic rate control for amazing sound even when it's run at a different rate than the video, such as vsync causes sometimes. Especially obvious with GBA.
  
Delay frames denote the maximum number of frames RetroArch's libretro cores will need to emulate at once to maintain synchronization due to actual network latency. You can figure out an appropriate ballpark for this number by pinging the other player and dividing the time (in milliseconds) by 16 (roughly the number of milliseconds in a frame from a game running at 60 fps). If the gameplay is a bit choppy, try increasing the number of delay frames a bit.
+
*Basic fast forward, rewind, savestate, etc
 +
*[[Shaders and Filters|Shaders]]: .shader, .cg, .cgp . filter
 +
*Ported to many, many different platforms.
 +
*[[GGPO]]-like netcode (latency hiding rollback). It should be lag-free if everyone involved emulates at full speed, don't live on opposite sides of the world and has decent internet speeds. It uses peer-to-peer UDP and supports two players. Due to rollback it requires a fair amount of CPU power to run.
  
Similar to the GGPO platform, RetroArch creates a constant stream of savestates which, along with button presses, are exchanged and compared between the server and client machines. If the savestates start to diverge, the game rolls back in time to a point where they both agree, and then the libretro cores emulates the missing frames all at once to get back to the appropriate spot. This gives the illusion of completely lagless inputs, which is invaluable for twitchy, fine controls.
+
==Using RetroArch==
 +
{{Main|Using RetroArch}}
 +
==NetPlay==
  
If you try to connect to a server and it immediately says client disconnected, open your log and make sure your ROMs match exactly (it will complain about a hash mismatch otherwise). If it gives you a weird time-out error, just close the window and try to connect again, and it should work itself out (sometimes excessive spikes in network latency can cause the states to diverge catastrophically, resulting in this error).
+
For netplay, you must specify whether you will be hosting (server) or joining (client) the game. If joining, you must also enter the host's IP address in the field below. Make sure your firewall is open on port 55435 (default; you can change it if you like) and that the port is forwarded in your router, if applicable. You can also specify 'spectator mode,' which will allow an arbitrary number of spectators to join and watch you play without being able to play themselves.
  
==Alternative Launchers and Frontends==
+
Delay frames denotes the maximum number of frames RetroArch will need to emulate at once to maintain synchronization due to actual network latency. You can figure out an appropriate ballpark for this number by pinging the other player and dividing the time (in milliseconds) by 16 (roughly the number of milliseconds in a frame from a game running at 60 fps). If the gameplay is a bit choppy, try increasing the number of delay frames a bit.
There are plenty of other frontends that can either work as a launcher for RetroArch or you can replace it entirely with another [[Frontends#Libretro|libretro frontend]].
 
  
{{Main|Frontends}}
+
Similar to the GGPO platform, RetroArch creates a constant stream of savestates which, along with button presses, are exchanged and compared between the server and client machines. If the savestates start to diverge, the game rolls back in time to a point where they both agree and then emulates the missing frames all at once to get back to the appropriate spot. This gives the illusion of completely lagless inputs, which is invaluable for twitchy, fine controls.
  
==Controversies==
+
If you try to connect to a server and it immediately says client disconnected, open your log and make sure your ROMs match exactly (it will complain about a hash mismatch otherwise). If it gives you a weird time-out error, just close the window and try to connect again and it should work itself out (sometimes excessive spikes in network latency can cause the states to diverge catastrophically, resulting in this error).
A number of controversies have sparked during the development of RetroArch, mostly due to Squarepusher/TwinAphex's attitude and actions towards upstream emulators. As a result, Reicast development has halted<ref>https://web.archive.org/web/20220201223114/https://old.reddit.com/r/emulation/comments/s8poim/pcsx2_qt_still_needs_to_be_split_up_into_parts/htkalk1//</ref><ref>https://github.com/skmp/reicast-emulator/issues/1928</ref>.
+
==Frontend==
 +
There is an alternate frontend available called RA-Player, for those that want to try something that looks more like a native Windows program. It is a work-in-progress.
  
==Also See==
+
Download it [http://phexe.com/2014/01/ra-player-v0-0-2-0-released/ here]
* [[EmulatorJS]]
 
* [https://emulation.gametechwiki.com/index.php/Category:RetroArch_PSP RetroArch PSP]
 
  
==External links==
+
<h2 class="de1">External links</h2>
*[https://docs.libretro.com/ Libretro Documentation] (Contains extensive documentation on the usage of Libretro, Retroarch, and its cores.)
 
*[https://forums.libretro.com/ Official forums]
 
*[https://discordapp.com/invite/27Xxm2h Official Discord server]
 
*[https://www.youtube.com/user/Libretro/ Official Youtube channel]
 
  
==References==
+
<p class="de1">[https://github.com/Themaister/RetroArch/wiki RetroArch Wiki @ Github]</p>
{{Reflist}}
+
[http://libretro.com/forums/index.php? Forums]
  
[[Category:RetroArch|*]]
+
<p class="de1">[https://github.com/Themaister/RetroArch/wiki/RGUI Using RGUI]</p>
[[Category:Frontends]]
+
[[Category:Emulators]]
[[Category:Netplay]]
+
[[Category:Game Boy Advance emulators]]
[[Category:Windows emulation software‏‎]]
+
[[Category:Game Boy emulators]]
 
[[Category:Linux emulation software]]
 
[[Category:Linux emulation software]]
[[Category:macOS emulation software]]
+
[[Category:Multi-emulators]]
[[Category:Haiku emulation software]]
+
[[Category:Nintendo Entertainment System emulators]]
[[Category:Raspberry Pi emulation software]]
+
[[Category:OS X emulation software]]
[[Category:Pandora emulation software]]
+
[[Category:NetPlay]]
[[Category:Android emulation software]]
 
[[Category:iOS emulation software]]
 
[[Category:PlayStation Portable emulation software]]
 
[[Category:PlayStation Vita emulation software]]
 
[[Category:PlayStation 2 emulation software]]
 
[[Category:PlayStation 3 emulation software]]
 
[[Category:PlayStation 4 emulation software]]
 
[[Category:GameCube emulation software]]
 
[[Category:Wii emulation software]]
 
[[Category:Wii U emulation software]]
 
[[Category:3DS emulation software]]
 
[[Category:Switch emulation software]]
 
[[Category:Xbox emulation software]]
 
[[Category:Xbox 360 emulation software]]
 
[[Category:Xbox One emulation software]]
 
[[Category:Web emulation software]]
 

Please note that all contributions to Emulation General Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Emulation General Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)