Update June 2024: Besides minor tweaks all over the document, I included a dedicated RetroArch Cloud Sync section for FinalBurn Neo, as this cannot be put into the official documentation.
This February 2024, RetroArch reached another milestone with the release of the stable version 1.17. The significance of this frontend for the emulation community cannot be overestimated - it's the foundation/inspiration for many other projects and of course the home of an ever growing list of cores that run under this frontend. But it's also a steady inspiration for new concepts and ideas - with some of these ideas remaining in an experimental mode, while others becoming very successful and influential.
This is a follow-up to this post about configuring RetroArch from scratch - Part I.
So let's start Part II of the RetroArch tutorial with a focus on Arcade games - but most of this applies to other cores as well. As you may expect, this post is work in progress and will grow over time. If you are interested in some special RetroArch topics, just leave a comment below.
Even with 1.17 being out, let me suggest to use nightly builds. |
1. Use nightly MacOS builds:
The nightly MacOS builds of RetroArch have now been stable for several years. I can recommend using them instead of the stable builds. For example, new version 1.2.7 of MoltenVK (the Vulkan layer for MacOS) just landed two days after the stable 1.17 - apparently, this plugin is essential for RetroArch in MacOS, so you would not want to miss this update. But I do not mean that you should update RetroArch every day, but if you do, download a nightly build to benefit from the latest updates.
If things turn out strange for you, you can easily downgrade by installing the stable version over the nightly build. As shown in Part I, updating the app is simple, and you will not loose any of your settings.
2. The concept of Cores
RetroArch alone does not launch any game, but its cores do. Within the RetroArch framework, a lot of essential software is harmonized: With a very few exceptions, all the settings we‘ve discussed in Part I are global RetroArch settings that apply irrespective of the underlying Core. You find them in the RetroArch menu under Settings. In contrast, the Core Settings (discussed in a minute below) apply to one core only. They also behave quite differently to RetroArch settings.
Updating a Core is done within RetroArch in Main Menu/Core Updater. So for staying up-to-date with an emulator, you do not need to update RetroArch every single day. While I very often update the FinalNurn Neo Core in the Online Updater (more or less daily), I update RetroArch just once a month or less frequently - but then with a nightly build.
As shown in Part I of this tutorial, my current default Arcarde games core is FinalBurn Neo. It is still best of its class.
Some emulators come with different core versions, very prominently MAME. On Macs, the following MAME cores are interesting:
- MAME (current): The latest and greatest version, however with a large core to load.
- MAME 2003: A popular core built on MAME 0.78 released back in 2003, thus lightweight, but you won‘t get all the improvements of the last 20 years.
- MAME 2003plus: Tries to backport improvements to MAME2003. It can be buggy on Silicon Macs in my own experience, e.g. significant slowdowns with Gyruss.
Please note that no MAME core officially supports RetroAchievements, even if MAME (current) triggers them in some games. MAME 2010 does not work on Apple Silicon for me.
3. The RetroArch Configuration Concept
This section is rather intense, but understanding the different files that RetroArch uses for configurations is essential. You need to consider at least four stages of RetroArch configurations.
First: RetroArch .cfg files - triggered in the RetroArch Settings Menu (no need to run a game)
- ~/Library/Application Support/RetroArch/config/retroarch.cfg: This file contains the global RetroArch configuration found in RetroArch under Settings, which applies in the absence of Core-specific or Game-specific configurations. This is your most important configuration file, so especially at the beginning of your work in RetroArch, consider to backup this file from time to time. You can edit it with any text editor, but it's basically safer to save the configuration in RetroArch: Main Menu/Configuration File/Save Current Configuration
- ~/Library/Application Support/RetroArch/config/FinalBurn Neo/FinalBurn Neo.cfg: This is an example for a Core-specific configuration. It overrides the global configuration and saves only these options that are different from retroarch.cfg. When planning your configurations, be very careful and consider which Core-specific configurations you really need. Besides the text editor, you save a Core-specific configuration when running a game: Quick Menu/Overrides/Save Core Overrides
- ~/Library/Application Support/RetroArch/config/FinalBurn Neo/1942.cfg: This is an example for a Game-specific configuration. Same principles apply as for the Core-specific configuration. Apparently, those configurations override both Core-specific configurations and retroarch.cfg. Be even more careful to use them. Besides the text editor, you save a Game-specific configuration when running a game: Quick Menu/Overrides/Save Game Overrides
options that are specific to this Core alone. Be very careful to remember this distinction.
- Location of Remap files: ~/Library/Application Support/RetroArch/config/remaps/FinalBurn Neo/bankp.rmp (example for a remap file of Bank Panic in FinalBurn Neo).
- Configuration: While running a game, go to Quick Menu/Controls/Port 1 Controls/ - here you can assign the buttons of this Core/game differently from the default configuration. After the change, head back to the game and test the new configuration on the fly.
- Saving: If the new controller configuration works, you must immediately save it from within the game. So while still being in the game, go to Quick Menu/Controls/Manage Remap Files/ - here you can either save a Core Remap File or a Game-specific Remap file.
- ~/Library/Application Support/RetroArch/config/global.slangp: If you have this file, you have saved a global shader preset in RetroArch. So this shader applies unless there is a Core-specific shader preset or a Game-specific shader preset. I prefer not to have a global shader preset, as shaders can differ quite significantly, e.g. between Arcade machines (slot mask) and handhelds (dot matrix) - but it's more a personal choice, as you can override the global preset anyways.
- ~/Library/Application Support/RetroArch/config/FinalBurn Neo/FinalBurn Neo.slangp: Example for a standard FinalBurn Neo shader preset, which applies in the absence of a game-specific shader preset. That's a quite solid choice, by which you have one identical shader preset for the FinalBurn Neo Core.
- ~/Library/Application Support/RetroArch/config/FinalBurn Neo/1942.slangp: Example for a game-specific shader preset. I work with these presets for my game-specific Arcade artwork based on the brilliant koko-aio shader, as discussed in this blog post. With this concept, each game automatically launches its specific shader preset.
4. Core Save Files vs Save States
- Core Save Files (~/Documents/RetroArch/saves/): These files save the status as the system used to do, e.g. the classic saving in game consoles. In Arcade games, these are hiscore files, and they are e.g. saved under ~/Documents/RetroArch/saves/fbneo/1942.hi in an unreadable format.
- RetroArch Save States (~/Documents/RetroArch/saves/states): Contrary to Core Saves, you can trigger Save States at any time during a game, and it saves the exact state at this moment of the game. Save States can be very helpful to help out in a difficult moment of the game, as you revisit the game at exactly that moment. For exactly this reason, Save States are not allowed when playing a game in the Hardcore mode of RetroAchievements - because this is not the way as the game was played back then.
No comments:
Post a Comment
Any comments are welcome!