RetroArch
RetroArch is a unified graphical front-end for emulators. On Linux, it can be installed from your package manager, Steam, Flathub and even Snapcraft.
Core installation
RetroArch doesn't come with emulators by default. Called "cores" in RetroArch, they're plugins implementing the Libretro API. To install them, you do it through the online updater, directly from RetroArch. You can do it manually by downloading the core you want from buildbot.libretro.com and extracting it to ~/.config/retroarch/cores/.
Warning
When installed through your Linux package manager, RetroArch online updater might be disabled by default. You'll have to edit its configuration file to enable it.
Warning
On Linux, if you encounter the "No Cores Available" error, you might have to change the cores path in the RetroArch configuration file.
Adding games
The easiest way is to scan a directory where games from the same system are located. To do that, select "Manual Scan", then a content directory with "Content Directory", set "Default Core" and choose "Start Scan". A new entry should have been added to the RetroArch main menu.
Systems
PC-98
PC-98 games can easily be played through RetroArch thanks to the np2kai libretro core.
- Install np2kai manually or from the online updater.
- Place the font file (
font.rom,FONT.ROM, orfont.bmp) inside~/.config/retroarch/system/np2kai/. Refer to the official BIOS setup documentation for more details. - Run RetroArch and scan the directory where the games are located.
- Configure the core with the following settings (it should run most of the translated games).
| Setting | Value |
|---|---|
| PC Model | PC-9801VX |
| CPU Clock Multiplier | 42 |
| RAM Size | 16 |
| CPU Feature | 80386 |
| Sound Board | PC9801-86 |
| GDC | uPD7220 |
| JastSound | OFF |
| Floppy Seek Sound | OFF |
| Volume Floppy Seek | 0 |
| Volume Beep | 0 |
| Mouse or Touchpanel Input | ON |
| D-pad to Mouse/Keyboard/Joypad Mapping | Manual Keyboard |
These settings can be tweaked further depending on the game. For more information, check out the PC-98 Game FAQ and the official libretro core docs.
Advanced Users
The following section is for advanced users who want to remap their joystick buttons.
To remap joystick buttons, edit the lrjoybtn setting in the following file:
~/.config/retroarch/system/np2kai/np2kai.cfgUsing the np2kai documentation:
"This value is little endian and 12 values of 16bits (2 Bytes) are arranged. Write the key code of RETROK (see libretro.h) to this value. The order is: D-UP / DOWN / LEFT / RIGHT / A / B / X / Y / L / R / Select / Start."
For example, to bind the Up Arrow key to D-UP:
- Find the RETROK code in libretro.h (
273) - Convert it to little-endian hexadecimal →
1101 - Add a space between bytes →
11 01
Repeat for each button.
A full example line would look like this:
lrjoybtn = 11 01 12 01 14 01 13 01 78 00 7a 00 20 00 32 01 08 00 2f 01 1b 00 0d 00DOS
Install the DOSBox Pure core manually or from the online updater.
For some specific games, you can also install the ScummVM core manually or from the online updater.
Troubleshooting
- To reset all RetroArch settings, go to
~/.config/retroarch/and delete "retroarch.cfg". - If your GPU is old, you might have to check if "Allow Cores to Switch the Video Driver" in "Core" settings is enabled and change the video driver used by RetroArch from
glcoretoglin "Video" settings, under the "Output". - RetroArch didn't enter in proper fullscreen under old versions of GNOME X11 and workarounds included
devilspie2scripts, running RetroArch with Gamescope and forcing borderless fullscreen windowed mode. - If you're using GNOME with an NVIDIA GPU, game frames may flicker and persist after exiting a game until the next reboot if you don't have "Show Window Decorations" enabled in "Video" settings, under the "Windowed Mode" menu (it might be related to buffer-flipping like mentioned here, on NVIDIA forums or this old thread, NVIDIA G-Sync, unredirection being broken or Vsync/VRR)
Contributors
moogul