10-02-2022, 01:59 PM
RetroArch is hands down the best retro gaming system emulator out. RA is a software to manage EVERY game for EVERY console/system out.
Here's a quick run down of some big ones I like:
Atari 2600, Atari 5200, Atari 7800, Atari Lynx, Sega Saturn, Sega Master System, Sega Dreamcast/NAOMI, Sony PlayStation, Sony PlayStation 2, Nintendo NES/Famicom, Nintendo SNES/SFC, Nintendo Virtual Boy, Game Boy/Color, Game Boy Advance, Nintendo DS, Nintendo 3DS, Nintendo 64, Nintendo GameCube/Wii, Xbox, DOS, RPG Maker 2000/2003, Commodore Amiga and LOADS more as you can see.
Want to see an extensive list of console/systems supported?
https://docs.libretro.com/meta/core-list/
What RA has to offer:
[*]Universal button mapping. You can set your buttons for any RA core, and also save per-game settings and button remaps for the best experience. You can also set up hotkeys for things like save states, loading save states, bringing up the RA menu, fast forward, etc. With this method, you only have to remember hotkeys for one platform instead of different key mapping options across various emulators.
[*]Precise video scaling options. With RetroArch, you can adjust the game image to match your device’s dimensions and resolution, or even apply bezel overlays to customize the layout of your screen. If you have certain preferences for your scaling (perfect pixel accuracy, or stretching out the image to take up the full screen), RA should have what you need.
[*]Shaders and Filters. Shaders apply an overlay to your screen that can mimic scanlines, colorization, or other effects that will recreate CRT monitors, chunky LCD grid displays, and more. Filters behave like shaders for your games, and can alter the screen to provide you a better visual experience. Adding filters to your game image will smooth out pixel distortion for screens that don’t accurately match the original console you are emulating.
[*]Playlists and thumbnails. RetroArch uses “Playlists” to organize the game library, and it will allow you to add box art (“Thumbnails”) to every game as you scroll through, and you can also set favorites, which is very handy.
[*]In-game saves and save states. RetroArch has the ability to save your game with SRAM (in-game) saves like how it was on the original console, and you can also use save states to take a snapshot of any game at any time as well.
[*]Fast forward, rewind support. RetroArch has universal support for fast forward and rewind hotkeys, which will allow you to navigate slow (or perilous) moments in certain games.
[*]Universal cheats. With RetroArch, you can simply add the appropriate cheat files and access all of the cheats from the RA menu.
[*]Achievements. RetroArch supports Retro Achievements, which are super fun.
[*]NetPlay. You can use RetroArch to host or join online gaming sessions for retro games.
[*]Recording and Streaming. You can record your gameplay directly in the app, and even stream it to services like Twitch.
[*]Active development. RetroArch has been around since 2004 and its development team is very active.
Game ROMs and BIOS files
The thing you need most to get this running, are games for the cores, and bios files for certain systems to be able to start up. Not all systems require bios files. Most systems just require the ROM to play. ROM or Read Only memory, or plural ROMs, are the game files. They will hold the games information to start them up. Usually decrypted or dumped straight from the real thing. RetroArch (generally) has the ability to use .zip or .7z files that will compress those ROM files as well. To find which ROM files work best for your desired core, I recommend going to the Libretro Docs page, then navigating the Core Library menu on the left-hand side to find the core you want to use, and then consult the “Extensions” section to see what files are accepted. Here is an example of the Gambatte core section, which will show you the accepted file types for Game Boy and Game Boy Color, plus information on BIOS and other core-specific options.
What you want to accomplish, is building a standardized ROM library. This can be done in a number of ways, but the easiest way to do it would be to make a folder on your computer called “GAMES”. Inside, create subfolders for each of your systems (NES, SNES, GB, GBC, etc.). Then in each of those subfolders, add your ROM files. I recommend sticking with the same file type for each system, like .sfc files for SNES games. File names should be named according to the “No Intro” standard (e.g. “Super Mario Bros. 3 (USA)”).
Additionally, inside your GAMES folder, make a BIOS folder and put the BIOS files inside. BIOS files are necessary system files for certain consoles to run properly. Examples of systems that will not run without BIOS include PlayStation 1, PS2, Game Boy Advance, and Sega CD. Here is more information about BIOS files, including links to specific BIOS requirements for each core. Most work without them though. It is technically illegal to give ROMs or bios files away due to copyright. There tons of public links out there available though. A quick google of "retro arch bios files" shows archive.org has a download link with direct + torrents downloads lol. So they are very common to find.
Bios Link: https://letmegooglethat.com/?q=retro+arch+bios+files
ROM Link: https://letmegooglethat.com/?q=rom+downloads
Here is a list of recommended BIOS files to get you started:
SEGA CD: bios_CD_E.bin
bios_CD_J.bin
bios_CD_U.bin
FAMICOM DISK SYSTEM: disksys.rom
GAME BOY (for boot logo): gb_bios.bin
GAME BOY COLOR (for boot logo): gbc_bios.bin
GAME BOY ADVANCE: gba_bios.bin
NEO GEO: neogeo.zip
PLAYSTATION 1: scph1001.bin
TURBOGRAFX-CD: syscard1.pce
syscard2.pce
syscard3.pce
How to Install RetroArch:
There are many ways to install RetroArch, depending on the system you using, and whether or not it is pre-installed. You can find LakkaTV, Retro-Pie, EmuELEC, and a few other operating systems that come with retroarch already. RA supports LakkaTV as their own. Retro-Pie would be my next suggestion. Probably more support for LakkaTV, as you can find their discord is highly used.
Devices supported:
Android, iOS, MacOS, Linux, Windows (of course), nvidia shield, steam deck, almost any device as you can see. It's a well developed application with loads of cross-platform capabilities.
I'm going to explain the best way to install to Windows. It's the most universal, widely used among the community, and most others will vouch, this is the way to go about setting up.
Figure out the newest version from here,
https://buildbot.libretro.com/
As of writing this it's 1.11.0
Want the 64 bit version, and should be here
GRAB THE .7z FILES.
DO NOT INSTALL/SETUP
So RetroArch.7z
Here is direct link: https://buildbot.libretro.com/stable/1.1...troArch.7z
We want everything already in the folder, that way it can be transferred anywhere and still work.
Once you install, it does things different. This way it can be on USB, plug into any computer and still plays.
I host my file from a SAMBA share on linux home server, mount the samba share as network location on each computer, and everyone has the same files.
This can cause issues with game saves though. So I'd recommend just configuring your copy, and putting it on each computer if you don't want your saves overwritten. I trust my userbase to not overwrite a good save. And I make backups of the saves.
Note**
If you use Steam on windows to download and not from official site, not all the cores are available. It is a very stripped version. Takes a lot more to get everything working properly.
Note2**
Not all cores are available across all devices. You just can't run a PS2 on a phone yet. Or gamecube via phone. They require too much resources and will lag to all hell. That's why here, we are recommending PC to use. So all core are compatible.
There are 2 kinds of saves, quick save (usually happens in game), core snapshot save (usually done by pressing f2). Most people don't recommend the latter, but it's a good backup to have if someone overwrites the other save or vice versa.
Understanding configurations and saves
Before we get started, it is very important to understand how configuration saves work in RetroArch, because it follows a specific logic. 99% of the time when someone tells me they “screwed up their RetroArch” it’s because they saved a configuration in a way they didn’t expect. So let’s take a minute and explain how this stuff works.
CONFIGURATION FILE. Basic configurations are saved in a configuration file called retroarch.cfg. This is where you would save system-wide configurations that would apply to the entire frontend. For example, this file will dictate what menu driver (theme) to display when showing RetroArch, your button mapping preferences, hotkeys, video scaling options, and more. To make adjustments to the configuration file, you need to be using RetroArch without a game loaded, and then you will make your adjustments and go to Main Menu > Configuration File > Save Current Configuration. Consider this your “baseline” configurations. Note that the configuration file can only be saved when a game is NOT loaded.
OVERRIDES. If you want to make a specific configuration that applies only to a certain emulator, emulated console, or game, you will want to use overrides. These are basically configuration (.cfg) files that are specific to a game or console. For example, if there is a certain game where you want to use a special hotkey or video scaling option, you would open up that game, make the adjustment in the settings, and then save it as a per-game override. Every other game will function normally, but the next time you boot that specific game, those per-game settings will load.
There are three types of overrides, which follow a specific hierarchy: core overrides, content directory overrides, and game overrides. In order to save an override, you need to launch a game first, and then access the RetroArch Quick Menu (which we will set up in the hotkeys section below), and then go to Quick Menu > Overrides to save the override.
CORE OVERRIDES will save your configuration for that entire core. This is good when you have a core that emulates multiple systems and you want to have the same experience across each of those systems. An example of this would be the Gambatte core, which emulates Game Boy and Game Boy Color. If you make a CORE OVERRIDE for Gambatte, all Game Boy and Game Boy Color games will be affected when launching those games with the Gambatte core.
CONTENT DIRECTORY OVERRIDES will save your configuration for every game file in that same folder. For example, if you save a content directory override for a Game Boy game, it will affect all Game Boy games, but not Game Boy Color games since those ROM files will (likely) reside in a different folder — even though they use the same core. This feature is helpful when you have disparate systems that are supported by the same core. Another example is the Genesis Plus GX core, which can support Sega Genesis, 32X, Master System, and Game Gear. If you were to make some configuration adjustments that would be beneficial for the Genesis but not the Game Gear, you would want to use a content directory override instead of a core override, that way it would only affect Genesis games.
GAME OVERRIDES affect only that one game, and not others.
REMAP FILES. If you want to save game-specific controls, then this is done via a REMAP (.rmp) file. To do so, you will need to enter the RetroArch Quick Menu > Controls section, make your changes (likely in the Port 1 Controls subsection), then save a Core / Content Directory / Game Remap file. These three types of remap files follow the same pattern as the overrides above.
The hierarchy of these overrides and remap files are as follows:
So by default the settings within retroarch.cfg will be your primary configuration settings, but if you have a core override then those settings will take precedence. But if you also have a content directory (or game) override, that will take precedence over anything else.
INDEPENDENT SAVES. Confusingly, there are a couple other options and configurations that work outside of the process above. This is because they are governed by their own configuration files, and not the typical retroarch.cfg or override cfg/rmp files mentioned above.
Set your file directory
When you launch RetroArch for the first time, it will create a file structure, which they call “Directories” on your device. Generally this will be the same folder where your RetroArch app is located, or in the root directory of your device (like an Android phone). However, you may want to adjust the file locations manually, so that you can point RetroArch to your own BIOS folder, or to change the location of your save files for easier access.
Go to Settings > Directory and you will see a list of directory paths. Here you can configure them to your needs. Some adjustments worth considering:
After you have made your adjustments, be sure to go to Main Menu > Configuration File > Save Current Configuration.
Update RetroArch assets, cores, and more
Now that we have built our file structure and know how to save configurations, let’s go in and start updating RetroArch. The core system you installed may not have all of its functions included, so you will want to load them yourself. Note that you will need to be connected to the Internet for this section to work. To do so, go to Main Menu > Online Updater and run some of the updater functions available. I recommend the following:
Additionally you will want to go into Online Updater > Core Downloader and download the cores you want to run on your system. You can download as many or few as you would like. I would recommend fully downloading one core before starting the download for the next core, because it can mess up your downloads to queue them all up at once. Periodically, you can also go in and select Update Installed Cores to see if there have been any updates to the cores since you first downloaded them.
My preferred RetroArch cores for popular systems:
Arcade (FB Alpha 2012) -- for low-end devices
Arcade (FinalBurn Neo) -- fighting games and beat'em ups
Arcade (MAME 2003-Plus) -- all-around arcade emulation
Commodore Amiga (PUAE)
DOS (DosBox-Pure)
NEC PCE/TG-16/PCE-CD/TG-CD (Beetle PCE)
Nintendo GB/GBC (Gambatte)
Nintendo GBA (gpSP or mGBA)
Nintendo Virtual Boy (Beetle VB)
Nintendo DS (melonDS)
Nintendo NES (Nestopia or fceumm)
Nintendo SNES (Snes9x Current)
Nintendo 64 (ParaLLEl or Mupen64Plus)
Nintendo GameCube/Wii (Dolphin)
ScummVM -- point-and-click PC games
Sega Master System/Genesis/CD (Genesis Plus GX)
Sega 32x (PicoDrive)
Sega Saturn (YabaSanshiro or Beetle Saturn)
Sega Dreamcast (Flycast)
SNK Neo Geo (FinalBurn Neo)
Sony PlayStation (DuckStation, SwanStation, or PCSX ReARMed)
Sony PlayStation 2 (PCSX2)
Sony Playstation Portable (PPSSPP)
GLUI menu driver
OZONE menu driver
RGUI menu driver
XMB menu driver
The default menu drivers: glui, ozone, rgui, and xmb.
Adjust the user interface
Once you have an understanding of how to save configurations, and we have the most updated assets, let’s start actually adjusting RetroArch. We’ll start with the user interface, which is called a “menu driver” in RetroArch.
When starting up the system, you will likely be greeted with a black and white interface called “glui”. It’s okay, but I find that it can be confusing to navigate. Instead, I prefer to use an older interface called “xmb”, modeled after the original PlayStation 3 cross-menu bar. I prefer this menu because it makes the submenus more logical and visual to me, so that is what I will use in my video guides.
To change the User Interface, go to Settings > User Interface > Menu and adjust it to one of the other menus. Then go to Configuration File > Save Current Configuration to save your changes. After you exit and re-open RetroArch, you will have the new menu.
You can also adjust the menu appearance to fit your preferences. To do so, go to Settings > User Interface > Appearance and adjust the settings here. You can adjust the Menu Scale Factor to increase or decrease the menu font, adjust the menu icons, or change the background color, and more.
Finally, you can adjust the menu items that are displayed on your interface, to clean it up a bit. Go to Settings > User Interface > Menu Item Visibility and toggle off the menus you don’t want to see. In general, these are the menu items I turn off by default:
Show ‘Explore’ > OFF
Show ‘Favorites’ > OFF
Show ‘Images’ > OFF
Show ‘Music’ > OFF
Show ‘Netplay’ > OFF
After you have made your adjustments, be sure to go to Main Menu > Configuration File > Save Current Configuration.
Button mapping and hotkeys
Button mapping is likely the next thing you want to do. This will align your controller’s controls with the RetroArch universal button mapping. If you are using an x-input controller (like an Xbox controller) the buttons will likely be automatically mapped, and if you are using a handheld device that has a RetroArch backend already baked in (like ArkOS, EmuELEC, or 351ELEC), then you likely don’t have to map the controls. But some bluetooth or wired controllers may behave unexpectedly, so let’s adjust the button mapping.
To configure your controls, open RetroArch and go to Settings > Input > Port 1 Controls > Set All Controls and follow the prompts.
After you are done setting up the controls, you will want to decide which buttons you want to use for OK and Cancel buttons. If you don’t like how they are configured by default, you can go into Settings > Input > Menu Controls and swap the buttons.
Once you have mapped your controls, be sure to go to RetroArch Main Menu > Configuration File > Save Current Configuration. Note that you can make core or game specific button mapping by using overrides, if you want to have a special setup for a particular game or core. Additionally, in the Input setting there is an option to create and save Controller Profiles, which you could use for multiple controllers (for example, if you wanted to use a specific controller for SNES gameplay, you could map the controls to that one controller and then choose that profile for SNES gameplay).
HOTKEYS are simple button combinations that will allow you to make certain adjustments while in games and RetroArch. You will want to set these up next.
Open RetroArch and then go to Settings > Input > Hotkeys. Here you will see a number of hotkey options.
Here are a couple options that are fundamental to the hotkey experience:
Confirm Quit: with this ON, you will have to press the Quit RetroArch hotkey twice to actually exit. This can be good to avoid accidental button presses, but can get annoying over time. I leave this one OFF.
Menu Toggle Controller Combo: this option will pause your game and bring up the RetroArch Quick Menu. This can be a specific key combination that works independently of any other hotkey setup. For this one I choose Hold Start (2 Seconds). This means if I hold the START button for two seconds, the RetroArch Quick Menu will appear.
Hotkey Enable: this will be your primary hotkey button. Every hotkey you choose in the options below it will need to be used in combination with your hotkey enable button. For this I usually choose the SELECT button. This means that SELECT + whatever other hotkey I choose will be my button combo to activate a hotkey shortcut.
There are several hotkeys I recommend you set while you’re in these settings. Here are some of my preferred hotkeys:
Hotkey Enable: SELECT button
Fast-Forward (Toggle): R2 button
Rewind: L2 button *
Load State: L1 button
Save state: R1 button
Show FPS (Toggle): Y button
Pause (Toggle): A button **
Reset Game: B button
Close Content (or Quit RetroArch): START button ***
Menu (Toggle): X button
Volume Up: Left d-pad
Volume Down: Right d-pad
Run-Ahead (Toggle): Up d-pad
* For the Rewind function to work, you will need to go into Settings > Frame Throttle > Rewind > ON. This is not something I would recommend turning on as a global configuration, because some systems (like Saturn or PS1) will be very slow with it on, and some (like PSP) may outright crash. Instead, I recommend setting the hotkey now, then for the systems you want to use rewind (like NES, for example), you can go into the Quick Menu by pressing SELECT + X and then go turn Rewind on and save it as a core override. More information is in the section below.
** A bug in some versions of RetroArch (like the Android build) occurs when mapping the A button as a hotkey using controllers that don’t have an embedded controller profile. This will break the use of the A button within the menu. So in some cases you may not want to map the A button to a hotkey at all.
*** Note that your SELECT + START hotkey should be set to either “Close Content” or “Quit RetroArch”, but this will depend on your use case. If you plan on using RetroArch as your frontend, then you will want to Close Content to return to the RetroArch menu. If you are using a different frontend, like EmulationStation or LaunchBox, you will want to set it to Quit RetroArch so that when using this hotkey it will return you to the frontend instead.
After you’ve made all of your configurations, go to the RetroArch Main Menu > Configuration File > Save Current Configuration.
Optional features
An option I like to set with my games is AUTO SAVE / AUTO LOAD. This will create a save state when you close down a game, and then load that save state when you launch the game again. It provides a pick-up-and-play feel to your retro gaming. To set this, use the following two commands:
The REWIND feature in RetroArch is helpful when you want to re-do a mistake on the fly. And while we set it as the SELECT + L2 hotkey above, by default this feature should be turned OFF in RetroArch, and then enabled only for certain systems. That’s because this feature has a somewhat high performance tax which can negatively affect performance on systems like PS1 and above. Instead, you will want to use a core override to save this setting. First, start up a game (like an NES game), and then press SELECT + X to bring up the Quick Menu, then navigate to the Rewind section within the Quick Menu. Now select Rewind Support > ON. Now you can go to Quick Menu > Overrides > Save Core Overrides, which will enable rewind support on all NES games running that emulator core.
There is also a RUN AHEAD feature which will reduce latency on certain setups. For example, this may be beneficial when using the Android-based version of RetroArch and a bluetooth controller, to give a more natural feel to retro gaming. Like with the rewind feature, this has a performance tax and should only be used on systems that would benefit from it (like SNES and below). For this reason we’ll use a core override again. First, start up a game (like an NES game), and then press SELECT + X to bring up the Quick Menu, then navigate to the Latency section within the Quick Menu. Now select Run-Ahead to Reduce Latency > ON. Now you can go to Quick Menu > Overrides > Save Core Overrides, which will enable run ahead support on all NES games running that emulator core. Note that this is one of many advanced features to improve latency; here is more information.
Finally, on many versions of RetroArch (specifically those with touchscreen capability, like Android), they may have a TOUCHSCREEN BUTTON OVERLAY on your screen when starting up a game. If you have a controller you likely do not want to see this overlay. To turn it off, go to Settings > On-Screen Display > On-Screen Overlay > Display Overlay > Hide Overlay When Controller is Connected > ON.
Create playlists
You can set up playlists within RetroArch to browse and launch your games directly in the program. This will be helpful if you just want to remain within RetroArch to launch your games. There are two methods for creating playlists in RetroArch:
SCAN DIRECTORY. This is the most straightforward way to make playlists, and is best for systems with unzipped ROMs that have distinct file types (like .nes games). With this option, you will navigate to the folder that contains your ROM files, then select “Scan this Directory”. RetroArch will then recognize and scan the directory for games, and assign the console and assets to that system. You should then see it in your playlist. When you have a more common file type for your games (like .bin files for Genesis games, it’s better to do a Manual Scan).
MANUAL SCAN. This is the preferred way to scan your directories because it gives you more control. Here is the breakdown:
Content Directory: navigate to your ROM folder and select “Scan this Directory”
System Name: select the system name you want to associate with your playlist
Custom System Name: use this if you want to use a special name for this playlist. Note that you will also need to set your “System Name” to “Custom” for this to work
Default Core: select the core you want to associate with this play list. Afterwards you can assign a different core to specific games by selecting the game and choose “Set Core Association”
File Extensions: add in all of the file extensions you want to scan for your console. You can leave this blank if they are all the same (e.g. zip files for arcade games), but for the most part it’s helpful to add these in, especially if you are using several file types. Separate each file extension with a space (no comma), like this for Dremcast: cdi, gdi, chd
Scan Recursively: turn this on if you want to scan subfolders too
Scan Inside Archives: this will scan the files within the zip file, whether you want this on will depend on the system you are scanning. You will want this off if scanning arcade games
Arcade DAT File: this is important if you are scanning arcade games, because it will associate your zip file (“simps2pj”) with a full file name (The Simpsons). To set this up, head to this page and download the latest MAME dat/xml file. Then save this file somewhere that you can access on your device, and choose it when at this part of the menu
Arcade DAT Filter: with this selected, only arcade games that appear in the DAT file will show up in your playlist. Generally you want this setting OFF
Overwrite Existing Playlist: this will overwrite anything already in the playlist. You generally want this OFF if you are just adding new games to your playlist
If you want thumbnails to appear next to your games, you need two things: 1) the files must be named according to the “No Intro” standard (e.g. “Super Mario Bros. 3 (USA)”) and 2) go into Online Updater > On-Demand Thumbnail Downloads > ON so that they will download when you browse through your playlist. Alternatively, you can manually scan each playlist for thumbnails in the Online Updater section instead.
Finally, you can go into Settings > Playlists and adjust how your playlists behave. There is also a Manage Playlists section within here that will allow you to adjust things like the default core, how the thumbnails appear, or just delete the playlist altogether.
Scaling and video options
One of the biggest advantages of using RetroArch is that you can use universal and streamlined video options. So let’s take some time to go over the basics here.
ASPECT RATIO
Let’s first define aspect ratio. A square screen aspect ratio would be defined as 1:1 (or 1.0), and very few game systems ran at this aspect ratio (Watara Supervision). At the other end of the spectrum, a standard widescreen TV aspect ratio would be 16:9, or 1.76,
Most classic home consoles had an aspect ratio of 4:3 to match CRT TVs. Handheld systems had varying aspect ratios, due to having a variety of screens. Arcade system aspect ratios are also all over the place, because each cabinet was different. Some other notes:
Common aspect ratios for handheld and home console systems (click to enlarge)
So why is aspect ratio important? Because if you plan on playing RetroArch on a modern TV or monitor (which likely has a 16:9 aspect ratio), emulated systems at their native aspect ratio will have black bars on the left and right sides. If you want to preserve the native aspect ratio then it’s all good, but if you want to stretch out the display to take up more space on your TV, then you will need to adjust scaling options.
You can adjust the aspect ratio by going into Settings > Video > Scaling > Aspect Ratio and adjusting your global configuration. I would recommend “Core Provided” since that will allow each emulator core to decide the appropriate aspect ratio. If you want to stretch the aspect ratio to fit your screen no matter what, you would want to select your screen’s ratio (like 16:9). Just beware that the emulation police will likely come for you if you don’t use the proper aspect ratio.
After you have made your adjustment, go to Main Menu > Configuration File > Save Current Configuration. You could also use the Overrides function to make core-specific or game-specific configurations.
INTEGER SCALING
Because many handheld systems had a much lower pixel density than the resolution of your TV, monitor, or phone, some of these systems will benefit from integer scaling. Integer scaling is defined as scaling by a factor of a whole number (2x, 3x, etc), as opposed to non-integer scaling (1.5x, etc). When turned on, RetroArch will scale up to the greatest integer scale below your device’s resolution. So for Nintendo 64 games, which have a native resolution of 640×480, it will scale up to 2x, or 1240×960, with black borders on all sides. This will keep a 1:1 pixel ratio and everything will look nice and crisp, so long as you don’t mind the black bars around the image.
If you don’t turn on integer scaling, the image will scale to match your device’s display (while preserving aspect ratio) to fill out as much of the screen as possible, but this may result in pixel distortion which can make some pixels look distorted on your display. You may not notice the difference, which is totally fine. You can also use shaders or filters to re-balance the image, as you’ll see in the section below.
To turn on integer scaling, go to Settings > Video > Scaling > Integer Scaling and make your adjustment. Like with everything else, you will need to save your configuration file, and you could also use overrides to make per-core or per-game settings, too.
1) Special 1 colorization with bevel shader
2) Special 1 colorization with lcd3x shader
3) GB-DMG colorization with bevel shader
4) no colorization with gameboy shader
5) no colorization with gb-palette-dmg shader
6) no colorization with sameboy-dmg-response-time shader
Game Boy colorization and shader combo examples
Shaders and filters
You can add Shaders to your game image to recreate classic looks (like scanlines to mimic CRT displays) or LCD grids, and more. They are stackable and adjustable, giving you a lot of freedom in their implementation. For more information on shaders, check out this page from RetroArch. Shaders can become very complex, so we will stick with just the basics here.
To find shaders, start a game then enter the Quick Menu > Shaders > Video Shaders > ON, then navigate to the Load menu. You will likely have the choice of glsl or slang shaders; slang shaders are newer but may not be compatible with your device. You can experiment with the two to find which set you prefer. Within each shader folder will be subfolders that contain shader collections. Some of the best places to start looking are the handheld folder (for handheld systems) or the interpolation folder. Once you have found shaders you like, you can save them as global, core-based, or game-based presets within the Shaders folder.
Filters behave a lot like shaders but are more CPU intensive, although sometimes they can create a more accurate effect than shaders alone. You can find the filters section in Settings > Video > Video Filter. The Normal 2x and 4x shaders are effective in balancing pixels when not using integer scaling. This will give you the best “clean” screen option but will have some CPU tax, so I do not recommend using them on lower-end consoles like RK3326 handheld devices (Abernic RG351 series, PowKiddy RGB10, etc.). Another set of filters that work really well with NES and SNES games are the Blargg filters, which recreate the experience of using an older television set. Once you have found a filter you like, you can save the configuration file for a global setting, or use overrides for core-specific or game-specific settings.
Note that the way you save shaders versus filters is different. Shaders are saved by their own presets within the Shaders setting menu, while Filters are saved via overrides or the global configuration file (Save Current Configuration).
Core options
The last settings worth messing with are core options. You can find these by starting up a game, entering the Quick Menu > Options section, and seeing what core options are available. For example, on higher-end systems like N64 or PSP, within the core options you can find the ability to upscale the resolution from 480p to 720p or 1080p, or higher. Each core options section will be unique to that core, so go in there and see what options you have. If you have any questions about any of these settings, I recommend consulting the LibRetro Docs page and browsing their Core Library to see what options are available and what they do.
SGB 1A
SGB 2A
SGB 3A
Sample SGB (Super Game Boy) colorization: 1A, 2A, and 3A
An easy example of core options would be to adjust colorization options for Game Boy within the Gambatte core, demonstrated above.
Finally, in addition to ghosting and GB colorization, the Gambatte RetroArch core also provides an accurate color correction for Game Boy Color games, as you can see above. This setting is found in Quick Menu > Options > Color Correction Mode > Accurate. You can also adjust the “frontlight position” options within Color Correction Mode to tone down any harsh contrast in your current configuration.
Retro Achievements website
RetroAchievements
One neat feature that is available within RetroArch is a service called RetroAchievements. These function as you would expect — as you complete a milestone in a retro game, you will get an achievement pop-up celebrating that accomplishment. Moreover, you can track your achievements from within RetroArch or on the RetroAchievements website. And if you want to go all the way down the rabbit hole, you could compete with friends or join the community to participate in discussions or contribute to creating or refining achievements in the future. Note the you must be connected to the internet for RetroAchievements to work.
To get started, go to RetroAchievements.org and register for a free account. Then in RetroArch, go to Settings > Achievements > ON and enter your username and password. Finally, to save this setting, go to Main Menu > Configuration File > Save Current Configuration. The same account can be used on multiple versions of RetroArch spread across various platforms.
If you’d like to add me as a friend or track my (abysmal) progress on retro games, here is my profile.
Cheats
RetroArch has an embedded universal cheat system, which can be used in a pinch or for the duration of your game.
To set these up, you must first go into Main Menu > Online Updater > Update Cheats. This will download the cht database and install everything automatically.
If you do not have internet access on your device, or if you use an operating system that doesn’t enable the cheats downloader function, you can still load cheats offline. This only needs to be done one time.
First, go to this GitHub page and click on the green “Code” button, and select Download Zip. Download that file, and unzip it. Inside you’ll find a folder named “cht”, and within that, a bunch of game system folders. Grab the game system folders for the systems that you want to enable cheats for, and place those folders somewhere handy, like in a “Cheats” folder within the GAMES folder where your ROMs reside.
Open up RetroArch then navigate to Settings > Directory > Cheat File, and then navigate to the Cheats folder, then select <Use This Directory>. To save this setting, go to Main Menu > Configuration File > Save Current Configuration. Now, whenever you try and load cheats, it will default to your Cheats folder to find your cheat files.
Once you have the cheat files installed, it’s easy to activate them. Start up a game, then go to Quick Menu > Cheats > Load Cheat File
Updating RetroArch
The process of updating RetroArch is unique for each system. For example, on Windows, you can update the program by simply overwriting the .exe file with a newer version. For more information, I recommend going to the installation page of your respective RetroArch version and see what the team says to do. I wouldn’t sweat too much about keeping the absolute latest version of RetroArch on your device; it’s often enough to use a stable build and update your cores via the Online Update tool instead.
Another way to update RetroArch is to do a manual reinstallation while preserving your most critical files. To do so, you would want to go into the Settings > Directory section and point some important folders to somewhere besides the default RetroArch folder. Here is the process:
Need help?
Join our discord Sick Gaming here: https://discord.gg/sBuDJK9qT3
Just type in chat for help for quick.
Also here is LibRetro discord that has retroarch and help channels: https://discord.gg/btbZMqsrCf
Those will be the most helpful places to get quick answers.
Hope I've satisfied a lot of questions. Feel free to message me here also.
Here's a quick run down of some big ones I like:
Atari 2600, Atari 5200, Atari 7800, Atari Lynx, Sega Saturn, Sega Master System, Sega Dreamcast/NAOMI, Sony PlayStation, Sony PlayStation 2, Nintendo NES/Famicom, Nintendo SNES/SFC, Nintendo Virtual Boy, Game Boy/Color, Game Boy Advance, Nintendo DS, Nintendo 3DS, Nintendo 64, Nintendo GameCube/Wii, Xbox, DOS, RPG Maker 2000/2003, Commodore Amiga and LOADS more as you can see.
Want to see an extensive list of console/systems supported?
https://docs.libretro.com/meta/core-list/
What RA has to offer:
[*]Universal button mapping. You can set your buttons for any RA core, and also save per-game settings and button remaps for the best experience. You can also set up hotkeys for things like save states, loading save states, bringing up the RA menu, fast forward, etc. With this method, you only have to remember hotkeys for one platform instead of different key mapping options across various emulators.
[*]Precise video scaling options. With RetroArch, you can adjust the game image to match your device’s dimensions and resolution, or even apply bezel overlays to customize the layout of your screen. If you have certain preferences for your scaling (perfect pixel accuracy, or stretching out the image to take up the full screen), RA should have what you need.
[*]Shaders and Filters. Shaders apply an overlay to your screen that can mimic scanlines, colorization, or other effects that will recreate CRT monitors, chunky LCD grid displays, and more. Filters behave like shaders for your games, and can alter the screen to provide you a better visual experience. Adding filters to your game image will smooth out pixel distortion for screens that don’t accurately match the original console you are emulating.
[*]Playlists and thumbnails. RetroArch uses “Playlists” to organize the game library, and it will allow you to add box art (“Thumbnails”) to every game as you scroll through, and you can also set favorites, which is very handy.
[*]In-game saves and save states. RetroArch has the ability to save your game with SRAM (in-game) saves like how it was on the original console, and you can also use save states to take a snapshot of any game at any time as well.
[*]Fast forward, rewind support. RetroArch has universal support for fast forward and rewind hotkeys, which will allow you to navigate slow (or perilous) moments in certain games.
[*]Universal cheats. With RetroArch, you can simply add the appropriate cheat files and access all of the cheats from the RA menu.
[*]Achievements. RetroArch supports Retro Achievements, which are super fun.
[*]NetPlay. You can use RetroArch to host or join online gaming sessions for retro games.
[*]Recording and Streaming. You can record your gameplay directly in the app, and even stream it to services like Twitch.
[*]Active development. RetroArch has been around since 2004 and its development team is very active.
Game ROMs and BIOS files
The thing you need most to get this running, are games for the cores, and bios files for certain systems to be able to start up. Not all systems require bios files. Most systems just require the ROM to play. ROM or Read Only memory, or plural ROMs, are the game files. They will hold the games information to start them up. Usually decrypted or dumped straight from the real thing. RetroArch (generally) has the ability to use .zip or .7z files that will compress those ROM files as well. To find which ROM files work best for your desired core, I recommend going to the Libretro Docs page, then navigating the Core Library menu on the left-hand side to find the core you want to use, and then consult the “Extensions” section to see what files are accepted. Here is an example of the Gambatte core section, which will show you the accepted file types for Game Boy and Game Boy Color, plus information on BIOS and other core-specific options.
What you want to accomplish, is building a standardized ROM library. This can be done in a number of ways, but the easiest way to do it would be to make a folder on your computer called “GAMES”. Inside, create subfolders for each of your systems (NES, SNES, GB, GBC, etc.). Then in each of those subfolders, add your ROM files. I recommend sticking with the same file type for each system, like .sfc files for SNES games. File names should be named according to the “No Intro” standard (e.g. “Super Mario Bros. 3 (USA)”).
Additionally, inside your GAMES folder, make a BIOS folder and put the BIOS files inside. BIOS files are necessary system files for certain consoles to run properly. Examples of systems that will not run without BIOS include PlayStation 1, PS2, Game Boy Advance, and Sega CD. Here is more information about BIOS files, including links to specific BIOS requirements for each core. Most work without them though. It is technically illegal to give ROMs or bios files away due to copyright. There tons of public links out there available though. A quick google of "retro arch bios files" shows archive.org has a download link with direct + torrents downloads lol. So they are very common to find.
Bios Link: https://letmegooglethat.com/?q=retro+arch+bios+files
ROM Link: https://letmegooglethat.com/?q=rom+downloads
Here is a list of recommended BIOS files to get you started:
SEGA CD: bios_CD_E.bin
bios_CD_J.bin
bios_CD_U.bin
FAMICOM DISK SYSTEM: disksys.rom
GAME BOY (for boot logo): gb_bios.bin
GAME BOY COLOR (for boot logo): gbc_bios.bin
GAME BOY ADVANCE: gba_bios.bin
NEO GEO: neogeo.zip
PLAYSTATION 1: scph1001.bin
TURBOGRAFX-CD: syscard1.pce
syscard2.pce
syscard3.pce
How to Install RetroArch:
There are many ways to install RetroArch, depending on the system you using, and whether or not it is pre-installed. You can find LakkaTV, Retro-Pie, EmuELEC, and a few other operating systems that come with retroarch already. RA supports LakkaTV as their own. Retro-Pie would be my next suggestion. Probably more support for LakkaTV, as you can find their discord is highly used.
Devices supported:
Android, iOS, MacOS, Linux, Windows (of course), nvidia shield, steam deck, almost any device as you can see. It's a well developed application with loads of cross-platform capabilities.
I'm going to explain the best way to install to Windows. It's the most universal, widely used among the community, and most others will vouch, this is the way to go about setting up.
Figure out the newest version from here,
https://buildbot.libretro.com/
As of writing this it's 1.11.0
Want the 64 bit version, and should be here
GRAB THE .7z FILES.
DO NOT INSTALL/SETUP
So RetroArch.7z
Here is direct link: https://buildbot.libretro.com/stable/1.1...troArch.7z
We want everything already in the folder, that way it can be transferred anywhere and still work.
Once you install, it does things different. This way it can be on USB, plug into any computer and still plays.
I host my file from a SAMBA share on linux home server, mount the samba share as network location on each computer, and everyone has the same files.
This can cause issues with game saves though. So I'd recommend just configuring your copy, and putting it on each computer if you don't want your saves overwritten. I trust my userbase to not overwrite a good save. And I make backups of the saves.
Note**
If you use Steam on windows to download and not from official site, not all the cores are available. It is a very stripped version. Takes a lot more to get everything working properly.
Note2**
Not all cores are available across all devices. You just can't run a PS2 on a phone yet. Or gamecube via phone. They require too much resources and will lag to all hell. That's why here, we are recommending PC to use. So all core are compatible.
There are 2 kinds of saves, quick save (usually happens in game), core snapshot save (usually done by pressing f2). Most people don't recommend the latter, but it's a good backup to have if someone overwrites the other save or vice versa.
Understanding configurations and saves
Before we get started, it is very important to understand how configuration saves work in RetroArch, because it follows a specific logic. 99% of the time when someone tells me they “screwed up their RetroArch” it’s because they saved a configuration in a way they didn’t expect. So let’s take a minute and explain how this stuff works.
CONFIGURATION FILE. Basic configurations are saved in a configuration file called retroarch.cfg. This is where you would save system-wide configurations that would apply to the entire frontend. For example, this file will dictate what menu driver (theme) to display when showing RetroArch, your button mapping preferences, hotkeys, video scaling options, and more. To make adjustments to the configuration file, you need to be using RetroArch without a game loaded, and then you will make your adjustments and go to Main Menu > Configuration File > Save Current Configuration. Consider this your “baseline” configurations. Note that the configuration file can only be saved when a game is NOT loaded.
OVERRIDES. If you want to make a specific configuration that applies only to a certain emulator, emulated console, or game, you will want to use overrides. These are basically configuration (.cfg) files that are specific to a game or console. For example, if there is a certain game where you want to use a special hotkey or video scaling option, you would open up that game, make the adjustment in the settings, and then save it as a per-game override. Every other game will function normally, but the next time you boot that specific game, those per-game settings will load.
There are three types of overrides, which follow a specific hierarchy: core overrides, content directory overrides, and game overrides. In order to save an override, you need to launch a game first, and then access the RetroArch Quick Menu (which we will set up in the hotkeys section below), and then go to Quick Menu > Overrides to save the override.
CORE OVERRIDES will save your configuration for that entire core. This is good when you have a core that emulates multiple systems and you want to have the same experience across each of those systems. An example of this would be the Gambatte core, which emulates Game Boy and Game Boy Color. If you make a CORE OVERRIDE for Gambatte, all Game Boy and Game Boy Color games will be affected when launching those games with the Gambatte core.
CONTENT DIRECTORY OVERRIDES will save your configuration for every game file in that same folder. For example, if you save a content directory override for a Game Boy game, it will affect all Game Boy games, but not Game Boy Color games since those ROM files will (likely) reside in a different folder — even though they use the same core. This feature is helpful when you have disparate systems that are supported by the same core. Another example is the Genesis Plus GX core, which can support Sega Genesis, 32X, Master System, and Game Gear. If you were to make some configuration adjustments that would be beneficial for the Genesis but not the Game Gear, you would want to use a content directory override instead of a core override, that way it would only affect Genesis games.
GAME OVERRIDES affect only that one game, and not others.
REMAP FILES. If you want to save game-specific controls, then this is done via a REMAP (.rmp) file. To do so, you will need to enter the RetroArch Quick Menu > Controls section, make your changes (likely in the Port 1 Controls subsection), then save a Core / Content Directory / Game Remap file. These three types of remap files follow the same pattern as the overrides above.
The hierarchy of these overrides and remap files are as follows:
So by default the settings within retroarch.cfg will be your primary configuration settings, but if you have a core override then those settings will take precedence. But if you also have a content directory (or game) override, that will take precedence over anything else.
INDEPENDENT SAVES. Confusingly, there are a couple other options and configurations that work outside of the process above. This is because they are governed by their own configuration files, and not the typical retroarch.cfg or override cfg/rmp files mentioned above.
- If you open a game then go into Quick Menu > Options and make adjustments here (which are called “Core Options“), it will affect everything that boots from that core, and you don’t need to manually save it — the settings changes will just save at the core level when you close out the game. Within this Options menu you can also choose to manually save these core options by game or content directory by going into the Manage Core Options section.
- If you open a game then go into Quick Menu > Shaders you can save what they call “Shader Presets“, which will apply a specific shader profile. Like with other options, you can specify how they apply, as either GLOBAL (whole system), CORE, CONTENT DIRECTORY, or GAME presets.
Set your file directory
When you launch RetroArch for the first time, it will create a file structure, which they call “Directories” on your device. Generally this will be the same folder where your RetroArch app is located, or in the root directory of your device (like an Android phone). However, you may want to adjust the file locations manually, so that you can point RetroArch to your own BIOS folder, or to change the location of your save files for easier access.
Go to Settings > Directory and you will see a list of directory paths. Here you can configure them to your needs. Some adjustments worth considering:
- System/BIOS: You can either go into the default RetroArch directory on your device and find the “system” folder to add all your BIOS files, or you can just change the BIOS location to point to wherever your BIOS are already saved. Go in here and navigate to your BIOS folder, then select “Use This Directory”.
- File Browser: You can adjust this to the main GAMES folder you have on your device, so that way you don’t have to navigate to that folder every time you want to add a new system to your Playlists. This will save you time in the long run.
- Cheat Files: If you manually install cheat files like in my section below, this option will allow you to set a new default cheat file location. If you were able to install cheats via the Update Cheats function described in the next section, you won’t need to do anything.
- Screenshots: Here you can adjust the screenshots location to the folder of your choice.
- Save Files: For easier access, you can change the location of your save files on your device. If you are running RetroArch on your PC, you could theoretically point this section to a cloud-based folder (like a Dropbox or Google Drive folder) and create a cloud-based save system that would work across multiple devices.
- Save States: This works like the Save Files section above, but with Save States. The same process applies here.
After you have made your adjustments, be sure to go to Main Menu > Configuration File > Save Current Configuration.
Update RetroArch assets, cores, and more
Now that we have built our file structure and know how to save configurations, let’s go in and start updating RetroArch. The core system you installed may not have all of its functions included, so you will want to load them yourself. Note that you will need to be connected to the Internet for this section to work. To do so, go to Main Menu > Online Updater and run some of the updater functions available. I recommend the following:
- Update Core Info Files
- Update Assets
- Update Controller Profiles
- Update Cheats
- Update Databases
- Update Shaders
Additionally you will want to go into Online Updater > Core Downloader and download the cores you want to run on your system. You can download as many or few as you would like. I would recommend fully downloading one core before starting the download for the next core, because it can mess up your downloads to queue them all up at once. Periodically, you can also go in and select Update Installed Cores to see if there have been any updates to the cores since you first downloaded them.
My preferred RetroArch cores for popular systems:
Arcade (FB Alpha 2012) -- for low-end devices
Arcade (FinalBurn Neo) -- fighting games and beat'em ups
Arcade (MAME 2003-Plus) -- all-around arcade emulation
Commodore Amiga (PUAE)
DOS (DosBox-Pure)
NEC PCE/TG-16/PCE-CD/TG-CD (Beetle PCE)
Nintendo GB/GBC (Gambatte)
Nintendo GBA (gpSP or mGBA)
Nintendo Virtual Boy (Beetle VB)
Nintendo DS (melonDS)
Nintendo NES (Nestopia or fceumm)
Nintendo SNES (Snes9x Current)
Nintendo 64 (ParaLLEl or Mupen64Plus)
Nintendo GameCube/Wii (Dolphin)
ScummVM -- point-and-click PC games
Sega Master System/Genesis/CD (Genesis Plus GX)
Sega 32x (PicoDrive)
Sega Saturn (YabaSanshiro or Beetle Saturn)
Sega Dreamcast (Flycast)
SNK Neo Geo (FinalBurn Neo)
Sony PlayStation (DuckStation, SwanStation, or PCSX ReARMed)
Sony PlayStation 2 (PCSX2)
Sony Playstation Portable (PPSSPP)
GLUI menu driver
OZONE menu driver
RGUI menu driver
XMB menu driver
The default menu drivers: glui, ozone, rgui, and xmb.
Adjust the user interface
Once you have an understanding of how to save configurations, and we have the most updated assets, let’s start actually adjusting RetroArch. We’ll start with the user interface, which is called a “menu driver” in RetroArch.
When starting up the system, you will likely be greeted with a black and white interface called “glui”. It’s okay, but I find that it can be confusing to navigate. Instead, I prefer to use an older interface called “xmb”, modeled after the original PlayStation 3 cross-menu bar. I prefer this menu because it makes the submenus more logical and visual to me, so that is what I will use in my video guides.
To change the User Interface, go to Settings > User Interface > Menu and adjust it to one of the other menus. Then go to Configuration File > Save Current Configuration to save your changes. After you exit and re-open RetroArch, you will have the new menu.
You can also adjust the menu appearance to fit your preferences. To do so, go to Settings > User Interface > Appearance and adjust the settings here. You can adjust the Menu Scale Factor to increase or decrease the menu font, adjust the menu icons, or change the background color, and more.
Finally, you can adjust the menu items that are displayed on your interface, to clean it up a bit. Go to Settings > User Interface > Menu Item Visibility and toggle off the menus you don’t want to see. In general, these are the menu items I turn off by default:
Show ‘Explore’ > OFF
Show ‘Favorites’ > OFF
Show ‘Images’ > OFF
Show ‘Music’ > OFF
Show ‘Netplay’ > OFF
After you have made your adjustments, be sure to go to Main Menu > Configuration File > Save Current Configuration.
Button mapping and hotkeys
Button mapping is likely the next thing you want to do. This will align your controller’s controls with the RetroArch universal button mapping. If you are using an x-input controller (like an Xbox controller) the buttons will likely be automatically mapped, and if you are using a handheld device that has a RetroArch backend already baked in (like ArkOS, EmuELEC, or 351ELEC), then you likely don’t have to map the controls. But some bluetooth or wired controllers may behave unexpectedly, so let’s adjust the button mapping.
To configure your controls, open RetroArch and go to Settings > Input > Port 1 Controls > Set All Controls and follow the prompts.
After you are done setting up the controls, you will want to decide which buttons you want to use for OK and Cancel buttons. If you don’t like how they are configured by default, you can go into Settings > Input > Menu Controls and swap the buttons.
Once you have mapped your controls, be sure to go to RetroArch Main Menu > Configuration File > Save Current Configuration. Note that you can make core or game specific button mapping by using overrides, if you want to have a special setup for a particular game or core. Additionally, in the Input setting there is an option to create and save Controller Profiles, which you could use for multiple controllers (for example, if you wanted to use a specific controller for SNES gameplay, you could map the controls to that one controller and then choose that profile for SNES gameplay).
HOTKEYS are simple button combinations that will allow you to make certain adjustments while in games and RetroArch. You will want to set these up next.
Open RetroArch and then go to Settings > Input > Hotkeys. Here you will see a number of hotkey options.
Here are a couple options that are fundamental to the hotkey experience:
Confirm Quit: with this ON, you will have to press the Quit RetroArch hotkey twice to actually exit. This can be good to avoid accidental button presses, but can get annoying over time. I leave this one OFF.
Menu Toggle Controller Combo: this option will pause your game and bring up the RetroArch Quick Menu. This can be a specific key combination that works independently of any other hotkey setup. For this one I choose Hold Start (2 Seconds). This means if I hold the START button for two seconds, the RetroArch Quick Menu will appear.
Hotkey Enable: this will be your primary hotkey button. Every hotkey you choose in the options below it will need to be used in combination with your hotkey enable button. For this I usually choose the SELECT button. This means that SELECT + whatever other hotkey I choose will be my button combo to activate a hotkey shortcut.
There are several hotkeys I recommend you set while you’re in these settings. Here are some of my preferred hotkeys:
Hotkey Enable: SELECT button
Fast-Forward (Toggle): R2 button
Rewind: L2 button *
Load State: L1 button
Save state: R1 button
Show FPS (Toggle): Y button
Pause (Toggle): A button **
Reset Game: B button
Close Content (or Quit RetroArch): START button ***
Menu (Toggle): X button
Volume Up: Left d-pad
Volume Down: Right d-pad
Run-Ahead (Toggle): Up d-pad
* For the Rewind function to work, you will need to go into Settings > Frame Throttle > Rewind > ON. This is not something I would recommend turning on as a global configuration, because some systems (like Saturn or PS1) will be very slow with it on, and some (like PSP) may outright crash. Instead, I recommend setting the hotkey now, then for the systems you want to use rewind (like NES, for example), you can go into the Quick Menu by pressing SELECT + X and then go turn Rewind on and save it as a core override. More information is in the section below.
** A bug in some versions of RetroArch (like the Android build) occurs when mapping the A button as a hotkey using controllers that don’t have an embedded controller profile. This will break the use of the A button within the menu. So in some cases you may not want to map the A button to a hotkey at all.
*** Note that your SELECT + START hotkey should be set to either “Close Content” or “Quit RetroArch”, but this will depend on your use case. If you plan on using RetroArch as your frontend, then you will want to Close Content to return to the RetroArch menu. If you are using a different frontend, like EmulationStation or LaunchBox, you will want to set it to Quit RetroArch so that when using this hotkey it will return you to the frontend instead.
After you’ve made all of your configurations, go to the RetroArch Main Menu > Configuration File > Save Current Configuration.
Optional features
An option I like to set with my games is AUTO SAVE / AUTO LOAD. This will create a save state when you close down a game, and then load that save state when you launch the game again. It provides a pick-up-and-play feel to your retro gaming. To set this, use the following two commands:
- Settings > Saving > Auto Save State > ON
- Settings > Saving > Load State Automatically > ON
The REWIND feature in RetroArch is helpful when you want to re-do a mistake on the fly. And while we set it as the SELECT + L2 hotkey above, by default this feature should be turned OFF in RetroArch, and then enabled only for certain systems. That’s because this feature has a somewhat high performance tax which can negatively affect performance on systems like PS1 and above. Instead, you will want to use a core override to save this setting. First, start up a game (like an NES game), and then press SELECT + X to bring up the Quick Menu, then navigate to the Rewind section within the Quick Menu. Now select Rewind Support > ON. Now you can go to Quick Menu > Overrides > Save Core Overrides, which will enable rewind support on all NES games running that emulator core.
There is also a RUN AHEAD feature which will reduce latency on certain setups. For example, this may be beneficial when using the Android-based version of RetroArch and a bluetooth controller, to give a more natural feel to retro gaming. Like with the rewind feature, this has a performance tax and should only be used on systems that would benefit from it (like SNES and below). For this reason we’ll use a core override again. First, start up a game (like an NES game), and then press SELECT + X to bring up the Quick Menu, then navigate to the Latency section within the Quick Menu. Now select Run-Ahead to Reduce Latency > ON. Now you can go to Quick Menu > Overrides > Save Core Overrides, which will enable run ahead support on all NES games running that emulator core. Note that this is one of many advanced features to improve latency; here is more information.
Finally, on many versions of RetroArch (specifically those with touchscreen capability, like Android), they may have a TOUCHSCREEN BUTTON OVERLAY on your screen when starting up a game. If you have a controller you likely do not want to see this overlay. To turn it off, go to Settings > On-Screen Display > On-Screen Overlay > Display Overlay > Hide Overlay When Controller is Connected > ON.
Create playlists
You can set up playlists within RetroArch to browse and launch your games directly in the program. This will be helpful if you just want to remain within RetroArch to launch your games. There are two methods for creating playlists in RetroArch:
SCAN DIRECTORY. This is the most straightforward way to make playlists, and is best for systems with unzipped ROMs that have distinct file types (like .nes games). With this option, you will navigate to the folder that contains your ROM files, then select “Scan this Directory”. RetroArch will then recognize and scan the directory for games, and assign the console and assets to that system. You should then see it in your playlist. When you have a more common file type for your games (like .bin files for Genesis games, it’s better to do a Manual Scan).
MANUAL SCAN. This is the preferred way to scan your directories because it gives you more control. Here is the breakdown:
Content Directory: navigate to your ROM folder and select “Scan this Directory”
System Name: select the system name you want to associate with your playlist
Custom System Name: use this if you want to use a special name for this playlist. Note that you will also need to set your “System Name” to “Custom” for this to work
Default Core: select the core you want to associate with this play list. Afterwards you can assign a different core to specific games by selecting the game and choose “Set Core Association”
File Extensions: add in all of the file extensions you want to scan for your console. You can leave this blank if they are all the same (e.g. zip files for arcade games), but for the most part it’s helpful to add these in, especially if you are using several file types. Separate each file extension with a space (no comma), like this for Dremcast: cdi, gdi, chd
Scan Recursively: turn this on if you want to scan subfolders too
Scan Inside Archives: this will scan the files within the zip file, whether you want this on will depend on the system you are scanning. You will want this off if scanning arcade games
Arcade DAT File: this is important if you are scanning arcade games, because it will associate your zip file (“simps2pj”) with a full file name (The Simpsons). To set this up, head to this page and download the latest MAME dat/xml file. Then save this file somewhere that you can access on your device, and choose it when at this part of the menu
Arcade DAT Filter: with this selected, only arcade games that appear in the DAT file will show up in your playlist. Generally you want this setting OFF
Overwrite Existing Playlist: this will overwrite anything already in the playlist. You generally want this OFF if you are just adding new games to your playlist
If you want thumbnails to appear next to your games, you need two things: 1) the files must be named according to the “No Intro” standard (e.g. “Super Mario Bros. 3 (USA)”) and 2) go into Online Updater > On-Demand Thumbnail Downloads > ON so that they will download when you browse through your playlist. Alternatively, you can manually scan each playlist for thumbnails in the Online Updater section instead.
Finally, you can go into Settings > Playlists and adjust how your playlists behave. There is also a Manage Playlists section within here that will allow you to adjust things like the default core, how the thumbnails appear, or just delete the playlist altogether.
Scaling and video options
One of the biggest advantages of using RetroArch is that you can use universal and streamlined video options. So let’s take some time to go over the basics here.
ASPECT RATIO
Let’s first define aspect ratio. A square screen aspect ratio would be defined as 1:1 (or 1.0), and very few game systems ran at this aspect ratio (Watara Supervision). At the other end of the spectrum, a standard widescreen TV aspect ratio would be 16:9, or 1.76,
Most classic home consoles had an aspect ratio of 4:3 to match CRT TVs. Handheld systems had varying aspect ratios, due to having a variety of screens. Arcade system aspect ratios are also all over the place, because each cabinet was different. Some other notes:
- Aspect ratios for some systems are not set in stone. Atari 2600 games didn’t technically have pixels, so they are at a different standard. Similarly, more modern consoles like the PS2 had widescreen options and variable resolutions.
- The NES had a resolution of 256×240, but only showed 256×224 on NSTC screens (which were limited to 224 vertical pixels); the 256×240 resolution can still be displayed on emulators. So while the NTSC TV showed an aspect ratio of 4:3 (1.33), most emulators show NES at 16:15 (1.07), and likely look best at a 4:3 anyway.
- Some games actually had different native resolutions on the same system. Most NTSC SNES games had a native resolution of 256×224 pixels, while Star Fox had 224×190, and Yoshi’s Island had 256×208. So for the chart below I stuck with the general NTSC aspect ratios.
- PAL TVs output a 240-pixel height, so PAL ROMs may have different resolutions than shown below. PAL ROMs on Nintendo GameCube have a resolution of 768×576.
- Some systems introduced scaling for certain games. For example, the PS1 mostly played games at a resolution of 320×240, but some scenes could scale up to 640×480. N64 games could scale from 320×240 up to 640×480 as well.
Common aspect ratios for handheld and home console systems (click to enlarge)
So why is aspect ratio important? Because if you plan on playing RetroArch on a modern TV or monitor (which likely has a 16:9 aspect ratio), emulated systems at their native aspect ratio will have black bars on the left and right sides. If you want to preserve the native aspect ratio then it’s all good, but if you want to stretch out the display to take up more space on your TV, then you will need to adjust scaling options.
You can adjust the aspect ratio by going into Settings > Video > Scaling > Aspect Ratio and adjusting your global configuration. I would recommend “Core Provided” since that will allow each emulator core to decide the appropriate aspect ratio. If you want to stretch the aspect ratio to fit your screen no matter what, you would want to select your screen’s ratio (like 16:9). Just beware that the emulation police will likely come for you if you don’t use the proper aspect ratio.
After you have made your adjustment, go to Main Menu > Configuration File > Save Current Configuration. You could also use the Overrides function to make core-specific or game-specific configurations.
INTEGER SCALING
Because many handheld systems had a much lower pixel density than the resolution of your TV, monitor, or phone, some of these systems will benefit from integer scaling. Integer scaling is defined as scaling by a factor of a whole number (2x, 3x, etc), as opposed to non-integer scaling (1.5x, etc). When turned on, RetroArch will scale up to the greatest integer scale below your device’s resolution. So for Nintendo 64 games, which have a native resolution of 640×480, it will scale up to 2x, or 1240×960, with black borders on all sides. This will keep a 1:1 pixel ratio and everything will look nice and crisp, so long as you don’t mind the black bars around the image.
If you don’t turn on integer scaling, the image will scale to match your device’s display (while preserving aspect ratio) to fill out as much of the screen as possible, but this may result in pixel distortion which can make some pixels look distorted on your display. You may not notice the difference, which is totally fine. You can also use shaders or filters to re-balance the image, as you’ll see in the section below.
To turn on integer scaling, go to Settings > Video > Scaling > Integer Scaling and make your adjustment. Like with everything else, you will need to save your configuration file, and you could also use overrides to make per-core or per-game settings, too.
1) Special 1 colorization with bevel shader
2) Special 1 colorization with lcd3x shader
3) GB-DMG colorization with bevel shader
4) no colorization with gameboy shader
5) no colorization with gb-palette-dmg shader
6) no colorization with sameboy-dmg-response-time shader
Game Boy colorization and shader combo examples
Shaders and filters
You can add Shaders to your game image to recreate classic looks (like scanlines to mimic CRT displays) or LCD grids, and more. They are stackable and adjustable, giving you a lot of freedom in their implementation. For more information on shaders, check out this page from RetroArch. Shaders can become very complex, so we will stick with just the basics here.
To find shaders, start a game then enter the Quick Menu > Shaders > Video Shaders > ON, then navigate to the Load menu. You will likely have the choice of glsl or slang shaders; slang shaders are newer but may not be compatible with your device. You can experiment with the two to find which set you prefer. Within each shader folder will be subfolders that contain shader collections. Some of the best places to start looking are the handheld folder (for handheld systems) or the interpolation folder. Once you have found shaders you like, you can save them as global, core-based, or game-based presets within the Shaders folder.
Filters behave a lot like shaders but are more CPU intensive, although sometimes they can create a more accurate effect than shaders alone. You can find the filters section in Settings > Video > Video Filter. The Normal 2x and 4x shaders are effective in balancing pixels when not using integer scaling. This will give you the best “clean” screen option but will have some CPU tax, so I do not recommend using them on lower-end consoles like RK3326 handheld devices (Abernic RG351 series, PowKiddy RGB10, etc.). Another set of filters that work really well with NES and SNES games are the Blargg filters, which recreate the experience of using an older television set. Once you have found a filter you like, you can save the configuration file for a global setting, or use overrides for core-specific or game-specific settings.
Note that the way you save shaders versus filters is different. Shaders are saved by their own presets within the Shaders setting menu, while Filters are saved via overrides or the global configuration file (Save Current Configuration).
Core options
The last settings worth messing with are core options. You can find these by starting up a game, entering the Quick Menu > Options section, and seeing what core options are available. For example, on higher-end systems like N64 or PSP, within the core options you can find the ability to upscale the resolution from 480p to 720p or 1080p, or higher. Each core options section will be unique to that core, so go in there and see what options you have. If you have any questions about any of these settings, I recommend consulting the LibRetro Docs page and browsing their Core Library to see what options are available and what they do.
SGB 1A
SGB 2A
SGB 3A
Sample SGB (Super Game Boy) colorization: 1A, 2A, and 3A
An easy example of core options would be to adjust colorization options for Game Boy within the Gambatte core, demonstrated above.
- Open a Game Boy game in RetroArch
- Bring up the RetroArch Quick Menu, then go to Options > GB Colorization > Internal. Next, go to Internal Palette > Special 1. This will produce a night light green colorization. For colorization that is more in line with the original DMG display, set it to Options > GB Colorization > DMG. Experiment to find what you like best! Above you can see three Super Game Boy colorization options.
- To set it as default for that game or for all Game Boy games no further configuration is necessary. Core options will automatically save when you close the game out. To save it for a specific game, go to Options > Manage Core Options > Save Game Options.
- Go to Quick Menu > Options > Interframe Blending. There you will see two LCD ghosting effects:
- LCD Ghosting (Accurate)
- LCD Ghosting (Fast)
- LCD Ghosting (Accurate)
- To set it as default, go to Overrides > Save Content Directory Overrides.
Finally, in addition to ghosting and GB colorization, the Gambatte RetroArch core also provides an accurate color correction for Game Boy Color games, as you can see above. This setting is found in Quick Menu > Options > Color Correction Mode > Accurate. You can also adjust the “frontlight position” options within Color Correction Mode to tone down any harsh contrast in your current configuration.
Retro Achievements website
RetroAchievements
One neat feature that is available within RetroArch is a service called RetroAchievements. These function as you would expect — as you complete a milestone in a retro game, you will get an achievement pop-up celebrating that accomplishment. Moreover, you can track your achievements from within RetroArch or on the RetroAchievements website. And if you want to go all the way down the rabbit hole, you could compete with friends or join the community to participate in discussions or contribute to creating or refining achievements in the future. Note the you must be connected to the internet for RetroAchievements to work.
To get started, go to RetroAchievements.org and register for a free account. Then in RetroArch, go to Settings > Achievements > ON and enter your username and password. Finally, to save this setting, go to Main Menu > Configuration File > Save Current Configuration. The same account can be used on multiple versions of RetroArch spread across various platforms.
If you’d like to add me as a friend or track my (abysmal) progress on retro games, here is my profile.
Cheats
RetroArch has an embedded universal cheat system, which can be used in a pinch or for the duration of your game.
To set these up, you must first go into Main Menu > Online Updater > Update Cheats. This will download the cht database and install everything automatically.
If you do not have internet access on your device, or if you use an operating system that doesn’t enable the cheats downloader function, you can still load cheats offline. This only needs to be done one time.
First, go to this GitHub page and click on the green “Code” button, and select Download Zip. Download that file, and unzip it. Inside you’ll find a folder named “cht”, and within that, a bunch of game system folders. Grab the game system folders for the systems that you want to enable cheats for, and place those folders somewhere handy, like in a “Cheats” folder within the GAMES folder where your ROMs reside.
Open up RetroArch then navigate to Settings > Directory > Cheat File, and then navigate to the Cheats folder, then select <Use This Directory>. To save this setting, go to Main Menu > Configuration File > Save Current Configuration. Now, whenever you try and load cheats, it will default to your Cheats folder to find your cheat files.
Once you have the cheat files installed, it’s easy to activate them. Start up a game, then go to Quick Menu > Cheats > Load Cheat File
Updating RetroArch
The process of updating RetroArch is unique for each system. For example, on Windows, you can update the program by simply overwriting the .exe file with a newer version. For more information, I recommend going to the installation page of your respective RetroArch version and see what the team says to do. I wouldn’t sweat too much about keeping the absolute latest version of RetroArch on your device; it’s often enough to use a stable build and update your cores via the Online Update tool instead.
Another way to update RetroArch is to do a manual reinstallation while preserving your most critical files. To do so, you would want to go into the Settings > Directory section and point some important folders to somewhere besides the default RetroArch folder. Here is the process:
- Create the following folders somewhere safe:
- System/BIOS
- Thumbnails
- Configs
- Cheat Files
- Overlays
- Controller Profiles
- Input Remaps
- Playlists
- Save Files
- Save States
- System/BIOS
- Note that if you are just starting up RetroArch for the first time (i.e. nothing is saved in the corresponding RetroArch folders already), you don’t need to do anything else. However, if you have been using RetroArch for a while already, then you want to go into the default RetroArch folders and copy their contents from their current location to your new location.
- Go into Settings > Directory and point the above directories to their new location.
- Before installing the new version of RetroArch, you need to find the retroarch.cfg file on your system. Its location will vary by device. On PC, you can find it in the root directory of the retroarch.exe file. On Android, it will be found in the Android > Data > com.retroarch.aarch64 (or similar) folder. Save a copy of this file somewhere you can access later.
- Download and install the new version of RetroArch and install it onto your device. You may need to delete the old one first (don’t worry, the folders you saved elsewhere will be fine). Before starting up RetroArch for the first time, place a copy of the retroarch.cfg in the same place where you found it originally.
- Launch RetroArch and it should pull up the retroarch.cfg file and all of your settings and directory locations along with it. You will need to go into the Online Updater tool and re-download assets, databases, etc.
Need help?
Join our discord Sick Gaming here: https://discord.gg/sBuDJK9qT3
Just type in chat for help for quick.
Also here is LibRetro discord that has retroarch and help channels: https://discord.gg/btbZMqsrCf
Those will be the most helpful places to get quick answers.
Hope I've satisfied a lot of questions. Feel free to message me here also.