Difference between revisions of "RetroArch"

From Emulation General Wiki
Jump to navigation Jump to search
(Emulation)
(WIP cores)
Line 142: Line 142:
 
|
 
|
 
|-
 
|-
|Nintendo 64
+
|[[Nintendo 64]]
 
|
 
|
 
[[Mupen64Plus]]
 
[[Mupen64Plus]]

Revision as of 21:53, 8 July 2013

RA Logo.png
Current version: 0.9.9
Active: Yes
OS: Multiplatform
Authors: Squarepusher, themaister, others
Official website: http://www.libretro.com/
Source code: Unknown

RetroArch is an open source, multi-system application that can run 'cores', which are mainly emulators, under the libretro API. It is described as a modular multi-system emulator/game system that 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

Cores

Emulation

System Core Version
SNES bsnes 0.92 Performance
SNES bsnes 0.92 Balanced
SNES bsnes 0.92 Accuracy
SNES Snes9x 1.53
SNES Snes9x-Next
WonderSwan Mednafen 0928
PlayStation Mednafen 0928
PlayStation PCSX-ReARMed
PC Engine Mednafen 0928
Neo-Geo Pocket Mednafen
Virtual Boy Mednafen
Atari 2600 Stella
Nintendo (Famicom) bnes
NES FCEU
NES QuickNES
NES Nestopia 1.44
Game Boy/Color Gambatte
GBA VBA-Next
GBA Meteor 1.4
Sega Systems (Master, Genesis, Sega CD, Game Gear) Genplus GX
Arcade

Final Burn Alpha

Game Engine

Quake Tryquake
Doom PrBoom
Cave Story nxengine

WIP cores

DOS DOSBox
Nintendo DS DeSmuME
Sega Saturn Yabause
Nintendo 64

Mupen64Plus

Arcade

Mame-2003

LucasArt Game Engines

Scummvm

Atari Jaguar Virtual Jaguar

Features

  • Consistency across multiple systems.
  • A "just works" functionality for the most part, with further configuration options available or soon to come.
  • Custom resolution and refresh rate for output.
  • 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.
  • Basic fast forward, rewind, savestate, etc for if you're cheating scum and whatnot.

Using RetroArch

After downloading RetroArch, run 'retroarch-phoenix.exe' and then go to 'RetroArch > Update RetroArch' to start downloading emulation cores.

RAP update.png
RetroArch's Updater

From there, click 'Check Version'. This checks if everything is up-to-date (you have to do this every time you use the updater). Double-click on a core to start downloading it.

Note: Some users experience a glitch where RetroArch update stops at 100% after downloading a core or update. If this happens close RetroArch, find the downloaded .zip file in RetroArch's directory and manually unzip the file.

To launch a game, select the emulator core you'd like to use under 'libretro core path', and the appropriate ROM under 'Normal ROM path'. Make sure that 'retroarch.exe' is selected under 'RetroArch path', and click 'Start RetroArch'.

If you are going to play in a system that needs a BIOS, there's a bit more setup required. First off, download these BIOS files. Now go to 'System > General' and change the 'System directory' to where ever you'd like and place the BIOS files in there.

RA System Directory.png

In addition, systems like the PSX require you to load them through CUE sheets. Most rips come with these, but in case yours didn't, a template is shown:

FILE "GAME NAME [1] US.bin" BINARY
   TRACK 01 MODE1/2352
      INDEX 01 00:00:00

Replace GAME NAME [1] US.bin with whatever your game's file name is, but keep the quotation marks. Load the .cue file in RetroArch under Normal ROM to start the game.

Shaders/Filters

RetroArch can use bsnes' XML .shader, CG pixel .cg, and .cgp for shaders. It can also use bsnes' .filter files for filters.

NetPlay

RetroArch uses 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.

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.

Delay frames denotes the maximum number of frames RetroArch will need to emulate at once to maintain synchonization 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.

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.

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

Guides and Info

How to use Super Game Boy ROMs on RetroArch:

Download this, place it in the RetroArch folder, and rename it as "sgb.boot.rom". Now on RetroArch, under File > Special ROM, select a Super Game Boy ROM (they will all basically work) and a Game Boy ROM. Finally, under ROM type, select Super GameBoy, make sure you have a bsnes core selected, and play.

How to use RetroArch:

Getting Started

Advanced configuration options

RetroArch Wiki @ Github

Using RGUI

Source code

https://github.com/libretro