What is RetroArch?
RetroArch is a free and open-source frontend that serves as a hub for emulators, game engines, and media players. It is compatible with a multitude of platforms, including Windows, MacOS, Linux, Android, iOS, PS2, PS3, PSP, PS Vita, Wii, Wii U, 2DS, 3DS, Switch, and more. The beauty of RetroArch lies in its extensive support for a wide range of systems, making it a one-stop solution for retro gaming enthusiasts.
At its core, RetroArch consists of "cores," which are essentially emulators embedded within the program. These cores enable RetroArch to emulate various gaming systems, allowing you to experience the games of yesteryear on modern devices. Depending on the version of RetroArch you are using, you can handpick the cores you want to load or use a pre-loaded build that includes all working cores.
Why Choose RetroArch?
You might be wondering why you should bother with RetroArch when there are standalone emulator options available. The answer lies in the unique features and benefits that RetroArch brings to the table:
1. Wide System Support: RetroArch is available on multiple platforms and can emulate a vast array of gaming systems. From classic consoles like the NES and Sega Genesis to handheld devices like the Game Boy and PSP, RetroArch covers it all. Check out the full core list to explore the multitude of emulation options within RetroArch.
2. Universal Button Mapping: With RetroArch, you can set your buttons for any core, allowing you to customize your gaming experience. Save per-game settings and button remaps for the best possible gameplay. Additionally, you can set up hotkeys for tasks like save states, loading save states, bringing up the RetroArch menu, and more. This eliminates the hassle of remembering different key mappings across various emulators.
3. Precise Video Scaling Options: RetroArch offers extensive control over the game image's scaling to match your device's dimensions and resolution. You can even apply bezel overlays to customize the screen layout. Whether you prefer perfect pixel accuracy or stretching the image to fill the entire screen, RetroArch has the scaling options to suit your preferences.
4. Shaders and Filters: Shaders and filters add visual enhancements to your gaming experience. Shaders apply overlays that mimic scanlines, colorization, and other effects to recreate the look of CRT monitors or chunky LCD grid displays. Filters, on the other hand, improve the screen's visual quality by smoothing out pixel distortion. RetroArch provides a range of shaders and filters to enhance your game's visuals.
5. Playlists and Thumbnails: RetroArch uses playlists to organize your game library, enabling you to add box art (thumbnails) to each game for a visually appealing browsing experience. You can also set favorites for quick access to your most cherished games.
6. In-game Saves and Save States: RetroArch allows you to save your game progress using in-game saves similar to the original consoles. Additionally, you can take snapshots of any game at any time using save states. This flexibility lets you pick up and continue your game exactly where you left off.
7. Fast Forward and Rewind Support: RetroArch features universal support for fast forward and rewind hotkeys. This comes in handy during slow or challenging parts of certain games, allowing you to navigate through them quickly.
8. Universal Cheats: With RetroArch, you can easily add cheat files and access all the cheats from the RetroArch menu. Enjoy additional fun and discover new ways to experience your favorite games.
9. Achievements: RetroArch supports Retro Achievements, providing an extra layer of challenge and excitement to your gaming sessions.
10. NetPlay: You can use RetroArch to host or join online gaming sessions for retro games, allowing you to connect and play with friends and fellow enthusiasts.
11. Recording and Streaming: RetroArch enables you to record your gameplay directly within the app and even stream it to popular platforms like Twitch.
12. Active Development: RetroArch has been continuously developed since 2004, boasting a dedicated team of developers who are actively improving and enhancing the software.
While RetroArch offers a multitude of features and benefits, it's important to note that it may not be perfect for every situation. The user interface can be overwhelming for newcomers, and some standalone emulators may provide better performance for specific systems. However, if you have a system that relies primarily on RetroArch for emulation or a powerful PC that can handle the workload, RetroArch can handle higher-end systems too.
Getting Started with RetroArch
Now that you understand the advantages of RetroArch, let's dive into the process of setting it up on your preferred platform. Whether you're using a Windows PC, Mac, Linux, Android device, iOS device, PS Vita, or Xbox, the basic setup steps remain consistent. In this guide, we'll primarily focus on the Windows PC setup, but the instructions apply to other platforms as well.
Installing RetroArch
The first step is to download and install RetroArch on your device. Head over to the RetroArch Downloads page and select the version suitable for your platform. Choose the 64-bit version if available, as it offers better performance on capable devices. If you're using an Android device, you can download RetroArch directly from the Google Play Store. However, keep in mind that the Play Store version may not be as frequently updated as the version available on the RetroArch Downloads page.
After installing RetroArch, launch the app for the first time. This will create the necessary file directory structure. You can also check if your controller works out of the box with the RetroArch interface. If it doesn't, don't worry; we'll cover button mapping in a later section.
Understanding Configurations and Saves
Before we delve further into the setup process, let's take a moment to understand how RetroArch handles configurations and saves. This knowledge is crucial to avoid any unintentional configuration mishaps.
Configuration File: Basic configurations in RetroArch are saved in a file called retroarch.cfg. This file stores system-wide settings that apply to the entire frontend. Examples of settings saved in this file include the menu driver (theme), button mapping preferences, hotkeys, video scaling options, and more. To make adjustments to the configuration file, you must access RetroArch without loading a game and then go to Main Menu > Configuration File > Save Current Configuration. It's important to note that the configuration file can only be saved when no game is loaded.
Overrides: Overrides allow you to create specific configurations for individual emulators, emulated consoles, or games. These configurations are stored in separate .cfg files and can be loaded on-demand. For example, if you want to use a special hotkey or video scaling option for a specific game, you can open that game, make the necessary adjustments in the settings, and save it as a per-game override. Overrides follow a hierarchical structure: core overrides, content directory overrides, and game overrides. Core overrides affect the entire core, content directory overrides apply to all games in a specific directory, and game overrides affect only one game.
Remap Files: If you want to save game-specific controls, you can do so using remap files (.rmp). To save game-specific controls, go to the RetroArch Quick Menu > Controls section, make the desired changes (usually in the Port 1 Controls subsection), and save a Core / Content Directory / Game Remap file. These remap files follow the same hierarchical pattern as overrides.
Independent Saves: RetroArch has additional options and configurations that operate independently of the process described above. These options are governed by their own configuration files rather than the typical retroarch.cfg or override .cfg/.rmp files. For instance, the Core Options menu allows you to make settings changes that affect all games launched from a specific core. These changes do not require manual saving, as they are automatically applied when you exit the game. Similarly, the Shaders menu allows you to save "Shader Presets" that apply specific shader profiles. These presets can be saved globally, per core, per content directory, or per game.
It's worth noting that certain operating systems, such as EmuELEC, Batocera, and 351ELEC, utilize their own frontends (e.g., EmulationStation) to sync settings with RetroArch. In these cases, it's best to make adjustments within the EmulationStation menu, as the settings will override RetroArch configurations. Stick with the EmulationStation menu for making changes unless you specifically want to modify RetroArch configurations.
Setting Up File Directories
When you launch RetroArch for the first time, it will create a file structure known as "Directories" on your device. By default, these directories are located in the same folder as your RetroArch app or in the root directory of your device (e.g., an Android phone). However, you may want to manually adjust the file locations to point RetroArch to your existing BIOS folder or change the location of save files for easier access.
To configure your file directories, go to Settings > Directory and you'll find a list of directory paths. Here, you can customize the file locations to fit your needs. Consider the following adjustments:
System/BIOS: You can navigate to the default RetroArch directory on your device, locate the "system" folder, and add all your BIOS files there. Alternatively, you can change the BIOS location to point to the folder where your BIOS files are already stored. Navigate to your BIOS folder within RetroArch and select "Use This Directory."
File Browser: If you have a main folder where you keep your ROMs (e.g., a "GAMES" folder), you can adjust the File Browser directory to that location. This way, you won't have to navigate to that folder every time you want to add a new system to your playlists, saving you valuable time in the long run.
Cheat Files: If you manually install cheat files (more on that later), this option allows you to set a new default cheat file location. However, if you were able to install cheats using the Update Cheats function described in the next section, you won't need to make any changes here.
Screenshots: Here, you can adjust the screenshots location to a folder of your choice, making it easier to access your captured moments.
Save Files: For added convenience, you can change the location of your save files on your device. If you're running RetroArch on your PC, you could even point this section to a cloud-based folder (e.g., Dropbox or Google Drive) to create a cloud-based save system that works across multiple devices.
Save States: Similar to save files, you can adjust the location of your save states for easy access.
You can further offload directories to custom folders to maintain your setup independently of the default RetroArch folders. This is especially helpful if you want to update RetroArch in the future while preserving your current configuration. More details on updating RetroArch will be covered later in this guide. Once you've made your adjustments, go to Main Menu > Configuration File > Save Current Configuration to save your changes.
Updating RetroArch Assets, Cores, and More
Now that you have RetroArch installed and your file directories set up, it's essential to keep RetroArch up to date with the latest assets, cores, and other components. RetroArch's Online Updater provides a convenient way to update various aspects of the program. To access the Online Updater, go to Main Menu > Online Updater.
Here are some key functions you should perform in the Online Updater:
Update Core Info Files: This updates the core information files, ensuring that the latest core information is available for RetroArch to use.
Update Assets: This function updates the assets used by RetroArch, such as the icons, menu themes, and other graphical elements.
Update Controller Profiles: Make sure to run this function to update the controller profiles available in RetroArch. This ensures that your controller is properly recognized and mapped in the interface.
Update Cheats: If you're interested in using cheats in your games, run this function to update the cheat files. RetroArch allows you to manually install cheat files, but the Update Cheats function simplifies the process by automatically downloading and applying the latest cheats for your games.
Update Databases: This function updates the databases used by RetroArch, such as the game databases and playlist databases.
Update Shaders: Shaders enhance the visual appearance of your games. Running this function updates the available shaders in RetroArch, allowing you to experiment with different visual effects.
Please note that while these options are available in most versions of RetroArch, some versions may have different options due to design choices. If you don't see some of the options mentioned above, don't worry—simply proceed with the available functions.
In addition to updating assets and components, you'll also want to download the cores necessary to play games on RetroArch. The core downloader can be accessed through Online Updater > Core Downloader. Here, you can browse and download the cores you want to run on your system. RetroArch offers a wide selection of cores, allowing you to emulate systems ranging from classic consoles to more recent platforms.
To ensure you have the latest version of each core, periodically run the "Update Installed Cores" function. This will check for any updates to the cores you have already downloaded and install them if available.
Building Your RetroArch Library: Game and BIOS Files
To start playing games on RetroArch, you'll need the necessary game files (ROMs) and, in some cases, BIOS files. Game files are the standard ROMs used by emulators and can be easily obtained from various sources. RetroArch supports both uncompressed files and compressed files in .zip or .7z formats, which can save space on your device.
When selecting game files, it's important to ensure compatibility with the cores you plan to use. RetroArch's Libretro Docs page provides detailed information on each core, including the accepted file types. To find this information, navigate to the Core Library menu on the left-hand side, select the desired core, and consult the "Extensions" section. For example, the Gambatte core accepts Game Boy and Game Boy Color ROMs, among others.
To maintain an organized library, it's recommended to create a standardized folder structure for your game files. Here's a suggested approach:
- Create a main folder on your computer or device called "GAMES."
- Inside the "GAMES" folder, create subfolders for each gaming system you plan to emulate (e.g., NES, SNES, Game Boy, Game Boy Color).
- Within each system subfolder, place the corresponding ROM files. It's best to stick with a consistent file type for each system (e.g., .sfc files for SNES games). To ensure consistency and compatibility, consider using the "No Intro" naming standard for your ROM files (e.g., "Super Mario Bros. 3 (USA)").
In addition to game files, certain systems require BIOS files to run properly. BIOS files are necessary system files that provide essential functionality for specific consoles. Examples of systems that require BIOS files include PlayStation 1, Game Boy Advance, and Sega CD. It's important to note that sharing BIOS files is prohibited due to copyright restrictions. Therefore, you must either dump the BIOS files from the original consoles or find legitimate RetroArch BIOS packs online.
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
Remember, obtaining BIOS files is your responsibility, and you should only use BIOS files for systems you legally own or have permission to use.
Installing RetroArch on Your Platform
The process of installing RetroArch can vary depending on the platform you're using. In some cases, RetroArch may come pre-installed on specific firmwares or operating systems like Batocera, EmuELEC, or RetroPie, eliminating the need for manual installation. However, for platforms such as PS Vita, Xbox, Android phones, Mac, or Windows PC, you'll need to download and install RetroArch yourself.
To install RetroArch, follow these general steps:
- Visit the RetroArch Downloads page.
- Select the appropriate version for your platform.
- Download the version of your choice and install it.
- Note: For Android devices, you can download and install RetroArch directly from the Google Play Store. However, keep in mind that the Play Store version may not be as frequently updated as the version available on the RetroArch Downloads page.
- Once RetroArch is installed, launch the app to create the necessary file directory structure.
- Check if your controller works out of the box with the RetroArch interface. If not, refer to the button mapping section for instructions on configuring your controller.
Configuring RetroArch: Understanding the Basics
Configuring RetroArch may seem daunting at first, but fear not! In this section, we'll demystify the process and guide you through the essential configurations to get you up and running.
The RetroArch Interface
When you launch RetroArch, you'll be greeted with the interface, which serves as the gateway to your retro gaming experience. By default, RetroArch uses the "glui" menu driver, a simple black and white interface. However, if you find this interface confusing or prefer a different look, you can switch to an alternative menu driver.
To change the menu driver, navigate to Settings > User Interface > Menu and select your desired menu driver. One popular choice is the "xmb" menu driver, inspired by the original PlayStation 3 cross-menu bar. It offers logical submenus and a more visual representation of the options. Choose the menu driver that suits your preferences, and don't forget to save your changes by going to Main Menu > Configuration File > Save Current Configuration.
Additionally, you can customize the appearance of the menu by adjusting the settings under Settings > User Interface > Appearance. Here, you can modify the menu scale factor, adjust menu icons, change the background color, and more. Find the visual configuration that suits your taste and save your changes.
To optimize the interface further, you can toggle the visibility of specific menu items. Go to Settings > User Interface > Menu Item Visibility and turn off the menus you wish to hide. This allows you to declutter the interface and focus on the options that matter to you. For example, you can hide the Explore, Favorites, Images, Music, and Netplay menus to streamline your RetroArch experience.
Remember to save your changes by going to Main Menu > Configuration File > Save Current Configuration.
Button Mapping and Hotkeys
One of the first tasks you'll want to tackle is button mapping. This ensures that your controller's controls align with RetroArch's universal button mapping, providing a seamless gaming experience. While some controllers, like Xbox controllers, are automatically mapped by default, others may require manual configuration. In this section, we'll guide you through the process of configuring your controller's buttons.
To configure your controls, open RetroArch and navigate to Settings > Input > Port 1 Controls > Set All Controls. Follow the on-screen prompts to map each button on your controller. Once you've completed the button mappings, you can further customize the OK and Cancel buttons. If you're not satisfied with the default configuration, head to Settings > Input > Menu Controls and swap the buttons to your preference.
After mapping your controls, save your changes by going to RetroArch Main Menu > Configuration File > Save Current Configuration. Please note that you can create core or game-specific button mappings using overrides if you want a special setup for particular games or cores. Additionally, the Input settings offer an option to create and save Controller Profiles, allowing you to use multiple controllers with specific mappings (e.g., mapping controls for SNES gameplay to a specific controller).
Now that your button mapping is complete, it's time to set up hotkeys. Hotkeys are button combinations that provide quick access to various RetroArch functions while in games or within the RetroArch interface. Configuring hotkeys allows you to perform actions like saving or loading states, toggling fast forward or rewind, pausing the game, and more. Let's explore how to set up hotkeys.
Open RetroArch and go to Settings > Input > Hotkeys. Here, you'll find a range of hotkey options. We recommend configuring the following essential hotkeys:
- Hotkey Enable: Select a button that will serve as your primary hotkey enable button. This button enables the use of other hotkeys. A commonly chosen button for this purpose is the SELECT button.
- Fast-Forward (Toggle): Assign a button to toggle the fast-forward feature, allowing you to speed up gameplay.
- Rewind: Assign a button for the rewind feature, which lets you undo mistakes or replay certain parts of the game. Note that you'll need to enable rewind support in core overrides for specific systems where you want to use this feature.
- Load State: Assign a button to load a previously saved state.
- Save State: Assign a button to save the current game state.
- Show FPS (Toggle): Assign a button to toggle the display of frames per second (FPS).
- Pause (Toggle): Assign a button to pause and unpause the game.
- Reset Game: Assign a button to reset the game to its initial state.
- Close Content / Quit RetroArch: Select either "Close Content" or "Quit RetroArch" based on your usage scenario. If you plan to use RetroArch as your primary frontend, choose "Close Content" to return to the RetroArch menu. If you're using a different frontend (e.g., EmulationStation or LaunchBox), select "Quit RetroArch" to return to that frontend instead.
- Menu (Toggle): Assign a button to toggle the RetroArch Quick Menu.
Feel free to customize the hotkeys to your liking, and remember to save your changes by going to RetroArch Main Menu > Configuration File > Save Current Configuration.
Optional Features: Auto Save/Load, Rewind, and Run Ahead
RetroArch offers several optional features that enhance your gaming experience. Let's explore some of these features:
Auto Save / Auto Load: This feature automatically creates a save state when you exit a game and loads that save state when you launch the game again. To enable this feature, go to Settings > Saving and turn on Auto Save State and Load State Automatically. This ensures that you can pick up your game right where you left off.
Rewind: The rewind feature allows you to go back in time and undo mistakes or replay specific moments in a game. While enabling rewind support globally may impact performance on certain systems, you can selectively enable it for specific systems using core overrides. Start a game, open the RetroArch Quick Menu by pressing SELECT + X, navigate to the Rewind section, and turn on Rewind Support. Save the core override to apply rewind support to all games running that core. Please note that enabling rewind may result in slower performance on systems like Saturn or PS1, so it's best to enable it selectively.
Run Ahead: Run Ahead is a feature that reduces input latency, providing a more responsive gaming experience. This feature is particularly useful for systems like SNES and below. Similar to the rewind feature, you can enable run ahead support selectively using core overrides. Start a game, open the RetroArch Quick Menu by pressing SELECT + X, navigate to the Latency section, and enable Run Ahead to Reduce Latency. Save the core override to apply run ahead support to all games running that core. Keep in mind that run ahead may impact performance on certain systems, so it's best to enable it only where beneficial.
Creating Playlists: Organize and Access Your Games
Playlists in RetroArch allow you to conveniently browse and launch your games directly from the program. Creating playlists can streamline your retro gaming experience by keeping all your games organized within RetroArch. RetroArch offers two methods for creating playlists: scanning directories and manual scanning.
Scan Directory: This method is suitable for systems with unzipped ROMs that have distinct file types (e.g., .nes games). To create a playlist using this method, navigate to Settings > Playlists and select "Scan Directory." RetroArch will recognize and scan the directory for games, automatically assigning the console and assets to each system. You should then see the newly created playlist in the Playlists section. To enable thumbnails for your games, ensure that the On-Demand Thumbnail Downloads option is turned on. Alternatively, you can manually scan each playlist for thumbnails in the Online Updater section.