A Full Guide on Integrating RetroArch with HyperSpin and RocketLauncher

This is a full tutorial showing how to integrate RetroArch with HyperSpin and RocketLauncher.

Foreword

RetroArch has become the choice of emulators for many players now and is increasingly popular since its launch few years ago. Its main reason is its ability to support multiple mainstream emulators and provide a unified configuration across all its offered emulators (or cores). For the uninitiated, RetroArch serves as the front-end for Libretro, which provides the cores for the emulators including BSNES, Ganbatte, and even MAME and MESS.

Setting up RetroArch


First, download RetroArch builds here. I'll leave it to you whether to download the Stable build (v1.0) or the nightly builds (v1.1.x). The later support audio and video filters as well as more path configurations and possibly more ROMs compatibility especially for the MESS or MAME cores. For this tutorial I'm going to download the nightly build. If you're using the stable build instead, some of the configurations in the screenshots might differ, especially the configuration screen.

Nightly builds for RetroArch which features the most recent core configurations for the RetroArch emulator. Make sure you download both the RetroArch and cores, which is basically the various emulators that RetroArch supports.


Extract RetroArch.7z to your Emulators folder in the HyperSpin, such as G:\HyperSpin\Emulators\RetroArch.

Extracted files from RetroArch.7z archive.


Next, extract the cores.7z into RetroArch\cores.


Before we start to integrate RetroArch into RocketLauncher, let's start by configuring some of its initial settings.

Configuring RetroArch

You'll see the following welcome screen when launching RetroArch for the first time. It will then automatically create a configuration file named retroarch.cfg under its RetroArch root folder. This is the file that RetroArch will refer to whenever you launch RetroArch.

RetroArch welcoming screen when launching for the first time.

retroarch.cfg, which is the configuration file that RetroArch will refer to whenever it is launch.Notice that it is only a single line for now, and it will then be populated as we configure some settings within RetroArch.

Navigating in RetroArch is relatively simple as shown in the welcoming screen. Pressing X to Enter/Confirm, Z to back.

The first thing we'll want to do is to configure some of the essential paths such as cores, roms, filters, shaders, etc. To do that, go to Settings > Path Options and setup the following:

Settings.

Path Options
The default path options. We are going to configure some of the paths to point to the exact paths.

The following settings are based on my RetroArch folder located in G:\HyperSpin\Emulators\RetroArch. Change the path accordingly. Note that some of the options might not be available if you're using RetroArch stable build.

Browser Directory: The path to your ROMs such as G:\roms. This path will be automatically loaded when you are trying to load a game.

Content Directory: Same as Browser Directory. The path to your ROMs.

Assets Directory: The path that stores assets.
Example: G:\HyperSpin\Emulators\RetroArch\assets

Config Directory: The path that stores RetroArch configuration files. Instead of storing it in RetroArch root folder we are going to store it here instead for better file structure management.
Example: G:\HyperSpin\Emulators\RetroArch\config

Core Directory: The folder that stores RetroArch cores (.dlls), which is where we extract our cores.7z just now.
Example: G:\HyperSpin\Emulators\RetroArch\cores

Core Info Directory: The folder that stores the core information (.info). These are also extracted from the cores.7z and is the same folder as the core directory.
Example: G:\HyperSpin\Emulators\RetroArch\cores

Content History Path: The path to the file that stores for a list of games that we had launched in the past in RetroArch. Leave it as default, which it stores in RetroArch root folder.
Example:  retroarch-content-history.txt (default)

VideoFilter Directory: The folder that stores the video filters.
Example: G:\HyperSpin\Emulators\RetroArch\filters\video

AudioFilter Directory: The folder that stores the audio filters.
Example: G:\HyperSpin\Emulators\RetroArch\filters\audio

Shader Directory: The folder that stores the shaders.
Example: G:\HyperSpin\Emulators\RetroArch\shaders

Overlay Directory: The folder that stores the overlay image such as gamepad, borders, keyboards, etc.
Example: G:\HyperSpin\Emulators\RetroArch\overlays

Screenshot Directory: The folder that stores the screenshots captured in-game.
Example: G:\HyperSpin\Emulators\RetroArch\screenshots

Savefile Directory: The folder that stores the savefile for the system. The savefile is the actual save file that is generated by the emulator and is usable even if you're using other emulators. For example, Playstation 1 memory card .mcr. Note that a separate folder that are named according to the system will be generated.
Example: G:\HyperSpin\Emulators\RetroArch\save

Savestate Directory: The folder that stores the save state that you taken in game, or simply the memory content state at the point when you took it. Unlike savefile, save state are emulator dependant and you cannot simply load a save state taken in an emulator and attempt to load it using another. I simply point them to the same folder as my Savefile Directory
Example: G:\HyperSpin\Emulators\RetroArch\save

System Directory: The folder that stores the system file such as BIOS for each system. For example, SCPH-1001 for Playstation 1, MESS BIOS, etc.
Example: G:\HyperSpin\Emulators\RetroArch\system

The completed Path Options screen after you had properly set the path.

After you had done that, go back to the Main Menu by pressing the 'Z' button and save the configuration file. The changes that you made will be saved in RetroArch-timestamp.cfg under the config folder that we just specify.

Save the changes that we did in a new configuration file.

The configuration file will be located in the config folder that we specified earlier, which is G:\HyperSpin\Emulators\RetroArch\config and is named RetroArch-timestamp. Since RetroArch will refer to retroarch.cfg in its root folder by default, we will now copy and replace the retroarch.cfg with this file, just in case RetroArch config file is not updated.

The updated retroarch.cfg file.

And that's it! We had done the initial configuration for RetroArch. Now moving on to integrate RetroArch with RocketLauncher so that it will run RetroArch for the system that you want.


Integrating RetroArch in RocketLauncher


As usual, open RocketLauncherUI and add a new Emulator named RetroArch under the Global Settings.

Adding RetroArch emulator to RocketLauncher for the first time. Notice that I only have several Roms extensions that these are the systems that I emulate using RetroArch.

Now here is where most people are mislook, even myself! For each module, there is a separate options that you can configure either for global module settings or per game settings.

To configure the module settings, click on the Modules tab, then select RetroArch.ahk from the Installed Modules window. Next,click the Edit Global Module Settings button.



Press the X button when ask whether to select a system in the System Selection screen.

Close this dialog since we're going to configure global settings.

Next, click the magnifier icon next to ConfigFolder option to select the RetroArch\config folder.

Configure the ConfigFolder used by RetroArch module. Ignore the MESS_BIOS_Roms_Folder for now as it is only needed if you want RetroArch to emulate MESS.

Now then, go and select a system in the left hand panel and use RetroArch as the default emulator. For example, I had selected RetroArch as my default emulator for Nintendo Game Boy system.

Set RetroArch as the default emulator for your system of choice. For example, Nintendo Game Boy system.

And there you go. RocketLaunch is now configured to launch RetroArch for your system of choice. Try to audit some games and click the Rocket icon to launch the game!

Setting Another Core as Default for A Game System

By default, RetroArch uses a default core for a particular game system. For example, VBA Next core for Nintendo Game Boy Advance. In my personal preference, I would prefer Ganbatte, which supposedly give more accurate emulation.

To change the default core for Nintendo Game Boy Advance in RetroArch, select GLOBAL system in the left panel, go to Modules tab and select RetroArch.ahk. Next, click the Edit Global Module Settings button.

Edit Global Module Settings for RetroArch.ahk module.
 
Select the system that you want to change the default core. In this example, I'm changing the default core for Nintendo Game Boy Advance, which uses VBNext core by default.

Click the magnifier icon next to LibRetro_Core option and select the core that you want to replace.

I'm selecting gambatte_libretro.dll as the default core to emulate my Nintendo Game Boy Advance system.

Now, to test it, audit the game and click on the Rocket icon to run it. Press F1 and you should see the core replaced by the core you selected.

Setting Up Cores in RetroArch

MESS (Multi Emulator Super System)

Setting up MESS in RetroArch could be rather difficult if you don't know what to configure. Luckily for you, I had gone through that experience and hence the purpose of this tutorial.

First, you'll have to download MESS BIOS files and put it in your RetroArch\system folder. MESS requires BIOS since it is an emulator that emulates other emulators. Sound confusing? I hope not.

Note that the RetroArch\system folder is not only to put the MESS BIOS. In general, this is the path where you are supposed to put the BIOS for other systems, such as PSX, GBA, etc.

You can download MESS Complete BIOS Pack (as well as BIOS files for other system) files from Emuparadise.

A list of BIOS files used by MESS. Notice each BIOS is archived. Extract this to your RetroArch\system folder such as G:\HyperSpin\Emulators\RetroArch\system
The extracted MESS.zip files in RetroArch\system folder.

Note: There is no need to extract these BIOS zip files as RetroArch MESS core will handle by themselves.

Next, you'll also need to create a retroarch-core-options.cfg file within RetroArch root folder in case it is not there. We're going to add the following lines corresponding to MESS core options manually here in order for us to load the cartridges instead of softlist, such as Atari 5200 .a52 files. The reason we need to do this is you can only access Core Options once you had successfully loaded a game. And with the default settings, loading Atari 5200 ROM file such as XXX.a52 is not possible with softlist settings enabled and media type that is not set as cartridge.

It can get fairly complicated to explain. More on why here and here.

mess_softlists_enable = "disabled"
mess_softlists_auto_media = "disabled"
mess_softlists_auto_media = "disabled"
mess_media_type = "cart"
mess_boot_to_bios = "disabled"
mess_boot_to_osd = "disabled"
mess_boot_from_cli = "enabled"


Settings for MESS in retroarch-core-options.cfg

Do not confuse this with the retroarch.cfg that we configured earlier on. As the name suggest, this is configured per-core basis and can varied from core to core, whereas retroarch.cfg is global settings and does not in any way related to the core.


Next, open up RocketLauncherUI, go to GLOBAL settings, select Modules, and then select RetroArch.ahk. Click the Edit Global Module Settings, then click on the magnifier icon right next to MESS_BIOS_Roms_Folder and select the path to your MESS BIOS, such as G:\HyperSpin\Emulators\RetroArch\system\MESS

Configuring MESS BIOS ROMs folder that MESS core will use in RetroArch.


Now try to audit some system ROMs using MESS such as Atari 5200. If you're seeing a blank screen, that simply means that the MESS core in RetroArch cannot emulate it.

More Information

Libretro - MAME/MESS/UME Cores
MESS User's Manual

Atari 5200

From my personal experience, the MESS-libretro core in RetroArch still requires some work as it can only emulates a partial of Atari ROMs that I got. What I meant by partial is that you'll see a blank screen for ROMs that it cannot emulate, such as Frogger. You might want to consider to setup Kat5200 or Atari800/Atari800 Win Plus to emulate the Atari 5200 ROMs.

Extra Readings

General Information on Emulation
 

Final Note

More core setup will be added as I started to use RetroArch!

8 comments

Hello brother ! I m having trouble with retroarch... I think my module is not the good one...also, im using hyperlaunchHQ so...I have first upgrade it to rocktlauncher ?
For exemple...I trying to use retroarch with TuborGrafx CD but it don t load properly...and say that the syscard3.pce is not in the right place...so I ve placed it everywhere and nothing ... sad ! Could be a module problen ?

Reply

Bookmarked this tutorial. Very concise, thank you. Not many Hyperspin tutorials like this on the web!

Reply

This Helped me out so, MANY Thanks My Vectrex games worked in Retroarch but Rocketlauncher was using a different core. How to change it was a hard answer to find.

Reply
This comment has been removed by the author.

I put together a dedichated Street Fighter wheel in Hyperspin called "Street Fighter Collection".

I have everything up and running but I do have an issue I'm hoping someone can help with. Since "Street Fighter Collection" isn't a real system I had a little trouble getting it to load in RocketLauncher.

I use RetroArch for MAME and when I went to launch I game I was basically getting errors that Street Fighter Collection is not a supported system in RetroArch. I could not find anything on the RocketLauncher front end that allowed me to associate RetroArch with my new fake system (Street Fighter Collection). So I edited the RetroArch ahk file to include it as a system.

Because I edited the ahk I now get errors (although everything works).

Was there a way on the front end to associate and emulator with a system?

Reply

hi
Can you explain how to setup hyper hq and retroarch for a system like sega genesis or whatsoever.
Thx

Reply

Great tutorial thanks, do you know of anyway i can stop rocketlauncher overwriting my system specific setting in retroarch-core-options.cfg. It ignores the settings i created in Retroarch then overwrites them with default values. Ive tried everything to stop it doing this but cant work it out. Any help on this very much appreciated....

Reply

HOW I GOT BLANK ATM CARD THAT CHANGE MY ENTIRE LIFE.
I have being hearing about this blank ATM card for a while and i never really paid any interest to it because of my doubts. Until one day i discovered a hacking guy called Mr. Williams, he is really good at what he is doing. Back to the point, I inquired about The Blank ATM Card. If it works or even Exist. They told me Yes and that its a card programmed for random money withdraws without being noticed and can also be used for free online purchases of any kind. This was shocking and i still had my doubts. Then i gave it a try and asked for the card and agreed to their terms and conditions. Hoping and praying it was not a scam, One week later i received my card and tried with the closest ATM machine close to me, It worked like magic. I was able to withdraw up to $10000. This was unbelievable and the happiest day of my life. So far i have being able to withdraw up to $88000 without any Fear of being caught. I don't know why i am posting this here, i just felt this might help those of us in need of financial stability. blank ATM has really changed my life. If you want to contact them, Here is the email address williamshackers@hotmail.com And I believe they will also Change your Life...

Reply

Post a Comment

If you found this article or post helpful to you, feel free to enter your comments below ;)