Difference between revisions of "RetroArch"

From Emulation General Wiki
Jump to navigation Jump to search
(Moving to its own article.)
(Trimming article a bit. Moving things to Using RA guide page.)
Line 85: Line 85:
 
|NES
 
|NES
 
|QuickNES
 
|QuickNES
|1
+
|1.0
 
|-
 
|-
 
|NES
 
|NES
Line 104: Line 104:
 
|-
 
|-
 
|Sega Systems ([[Master System|Master]], [[Genesis]], [[Genesis|Sega CD]], [[Game Gear]])
 
|Sega Systems ([[Master System|Master]], [[Genesis]], [[Genesis|Sega CD]], [[Game Gear]])
|GenPlus-GX
+
|[[GenPlus-GX]]
 
|1.7.4
 
|1.7.4
 
|-
 
|-
Line 165: Line 165:
  
 
*Custom resolution and refresh rate for output.
 
*Custom resolution and refresh rate for output.
 
*Amazing [[Shaders and Filters|shader]] support.
 
  
 
*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.
 
*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.
+
*Basic fast forward, rewind, savestate, etc
 +
*
 +
Shaders: bsnes' XML .shader, CG pixel .cg, and .cgp for shaders. It can also use bsnes' .filter files for filters.
 +
*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.
  
 
==Using RetroArch==
 
==Using RetroArch==
 
{{Main|Using RetroArch}}
 
{{Main|Using RetroArch}}
 
==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==
 
==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.
 
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.
Line 189: Line 185:
 
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).
 
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==
+
<h2 class="de1">External links</h2>
===How to use Super Game Boy ROMs on RetroArch:===
 
<p class="de2">Download these [http://www.mediafire.com/download.php?htga58k9rumhla9 SGB-capable bsnes cores]. Then [http://www.its.caltech.edu/~costis/sgb_hack/sgb_bios.bin 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 the bsnes core you downloaded selected, and play.</p>
 
  
<p class="de2">
+
<p class="de1">[https://github.com/Themaister/RetroArch/wiki RetroArch Wiki @ Github]</p>
</p>
+
[http://forum.themaister.net/index.php Forums]
 
 
<h3 class="de1">How to use RetroArch:</h3>
 
  
 
<p class="de1">[http://filthypants.blogspot.com/2011/11/getting-started-with-ssnes.html Getting Started]</p>
 
<p class="de1">[http://filthypants.blogspot.com/2011/11/getting-started-with-ssnes.html Getting Started]</p>
  
 
<p class="de1">[http://filthypants.blogspot.com/2011/11/advanced-ssnes-configuration-options.html Advanced configuration options]</p>
 
<p class="de1">[http://filthypants.blogspot.com/2011/11/advanced-ssnes-configuration-options.html Advanced configuration options]</p>
 
<p class="de1">[https://github.com/Themaister/RetroArch/wiki RetroArch Wiki @ Github]</p>
 
  
 
<p class="de1">[https://github.com/Themaister/RetroArch/wiki/RGUI Using RGUI]</p>
 
<p class="de1">[https://github.com/Themaister/RetroArch/wiki/RGUI Using RGUI]</p>
  
<p class="de1">
+
<p class="de1">[https://github.com/libretro Source code]</p>
</p>
 
<h2 class="de1">External links</h2>
 
[http://forum.themaister.net/index.php Forums]
 
 
 
==Source code==
 
https://github.com/libretro
 
 
[[Category:Emulators]]
 
[[Category:Emulators]]
 
[[Category:Game Boy Advance emulators]]
 
[[Category:Game Boy Advance emulators]]

Revision as of 21:37, 2 August 2013

RA Logo.png
Current version: 0.9.9
Active: Yes
OS: Multi-platform
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' under the libretro API. It is designed to be a fast, lightweight, and portable emulator.

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 1.52.4
WonderSwan Mednafen 0.9.28
PlayStation Mednafen 0.9.28
PlayStation PCSX-ReARMed r19
PC Engine Mednafen 0.9.28
Neo-Geo Pocket Mednafen 0.9.28
Virtual Boy Mednafen 0.9.28
Atari 2600 Stella 3.4.1
NES bnes 0.83
NES FCEU 98.13mm
NES QuickNES 1.0
NES Nestopia 1.44
Game Boy/Color Gambatte 0.5.0
Game Boy Advance VBA-Next 1.0.2
Game Boy Advance Meteor 1.4
Sega Systems (Master, Genesis, Sega CD, Game Gear) GenPlus-GX 1.7.4
Arcade

Final Burn Alpha

0.2.97.28

Game Engine

Game Core Version
Quake TyrQuake 0.61
Doom PrBoom 2.5.0
Cave Story NXEngine 1.0.0.4

WIP cores

System Core Version
DOS DOSBox SVN
Nintendo DS DeSmuME SVN
Nintendo 64

Mupen64Plus

2.0-rc2
Arcade MAME 2003 0.78
LucasArt Game Engines ScummVM 1.6.0

Overview

  • Consistency across multiple systems.
  • 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

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

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

Using RetroArch

Main article: Using RetroArch

NetPlay

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

External links

RetroArch Wiki @ Github

Forums

Getting Started

Advanced configuration options

Using RGUI

Source code