IT Cooking

Success is just one script away

Libretro 101: Getting Started with Retroarch Windows PC

5 min read
Retroarch setup the right way

Retroarch can be confusing, and is not working well out-of-the-box. This guide will help you getting started fresh in minutes. It compiles all the information I wish I had when I started months ago.

 

Presentation of Retroarch

Retroarch is a frontend for libretro

Retroarch is NOT an emulator.

Retroarch is a cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.

Libretro is a meta-project hosting tons of emulator cores. Each core is an emulator platform. In the past, we had individual emulators for each platform, in the form of a classic app with executable, DLL, assets folders, etc. Most have been ported to libretro as a single file. On windows, they present themselves as a single DLL:

retroarch-cores-dll

Other frontends currently maintained as of 2022 and based off Libretro (or compatible with):

  1. Retroarch (Windows, PS3, Wii, Linux, etc)
  2. Batocera (Linux pendrive)
  3. BizHawk (Windows)
  4. OpenEmu (MacOS)
  5. RetroBat aka Emulation Station (Windows)

 

A simple google trends lookup later, shows Retroarch as a clear winner:

Retroarch-google-trend-2022-04

Surprisingly, Linux solution such as OpenEmu do not seem to take off. Let’s get back to it on another thread.

 

Rant against Retrobat

I do not recommend Retrobat for the following reasons:

  • Retrobat is developed by a French oligarchy who cannot hear critiques. They assume things about you, before trying to help.
  • Retrobat is based on outdated dotNET 2.0 and 3.x – which is impossible to install on modern machines, without some tweaks and hacked binaries.
  • Retrobat does not work out of the box. It comes packaged with some Libretro cores, but don’t tell you which versions they are. I tried games that work on Retroarch with their version of FBneo, NES, SMNES, Genesis, nothing works.
  • Asked for help on their discord and got this: “Oh, if your machine cannot run Retroarch, forget about Retrobat”. Nice. Did I ever say I cannot run Retroarch?

As French know-it-all geniuses, these people assume things before asking and categorize you immediately. If it works for you, great. I’ll pass.

 

Install Retroarch portable

Download and Unpack Retroarch and Cores

The best way to maintain it, is to run it in portable mode. Get the latest stable release from here: 1.10.2 as of April 2022

  • Retroarch itself
  • The cores as well

Retroarch

Both will unzip under RetroArch-Win64 – keep it as it, it’s easier to maintain. Later on, you can update the installation by downloading the latest 20XX-XX-XX-RetroArch.7z package and overwriting the executable.

You can also let it download each core from within the frontend, but why bother when you have a convenient zipfile available?

 

Download Assets

You can but you should let Retroarch download them from the fronted. This guarantees the compatibility for the version you have.

Retroarch

 

Download BIOSpacks

It’s not necessary if your collection of Arcade games is full non-merged or merged. It does not hurt to have it either way.

BIOS files go into Retroarch-x64\system\– unzip it under that folder.

 

Setup RetroArch

On the first run you will be greeted by the ozone menu:

Retroarch

You can change this in the Drivers screen:

Retroarch

  • glui: smartphone menu

Retroarch

  • rgui: Wii menu

Retroarch

  • xmb: Xbox menu

Retroarch

 

Setup Drivers

Retroarch

Setup everything exactly like that:

Retroarch

  • Video: the default video driver is vulkan but everyone fond on PSX/Wii/N64 recommend glcore
  • Audio: some recommend wasapi if your audio stutters or fails to play properly, it’s up to you

 

Setup Video

Setup everything like that:

Retroarch

  • Threaded Video: OFF – this will improve CPU demanding games at the cost of accuracy
  • Bilinear Filtering: ON – this is crucial for LED display, without it your games will look clean but aliased and horrible in the end

 

retroarch-bilinear-filtering
comparison between bilinear filtering ON and OFF

As you can see, Bilinear filtering will provide the look and feel of CRT TV on your latest 4K 70″ OLED TV.

There are tons of other filters available but this one is the fastest and bestest off the batch.

 

Output

Everything in there is auto-detected and depends on the video driver you already selected before (glcore or vulkan)

Fullscreen mode

You can enter Fullscreen with ALT + ENTER – no need to tweak this, it will constantly switch your dekstop when you unload games anyway

Windowed Mode

Remember Window Position and Size: ON

Scalling

Retroarch

  • Integer scale: ON – games won’t fit the entire screen but that’s fine, you likely have a 70″ TV anyway and it’s a HUGE boost in performance
  • Integer Scale Overscale: OFF – you don’t want your games to be cropped
  • Aspect Ratio: core provided – let the genius developers of the cores handle that for you
  • Crop Overscan: ON – don’t show garbage pixels on the edges

Synchronization

Retroarch

  • Vsync: OFF – I can’t think of any game in the past, present or future that would benefit of this. It just slows everything down
  • Hard GPU Sync: OFF – even worst than VSync – they did it
  • Sync to Exact Content Framerate: depends on your monitor/TV, and only for fullscreen non-windowed mode

 

Setup Audio

Retroarch

Since we selected xaudio, that should work with Windows just fine. leave everything default over there

 

Input

This is where the fun begins. This is Windows, remember. Every time you plug controllers off and on, you will lose something or something will break.

When plugin in your controllers, try to always plug the same ones in the same order on your USB hub.

Retroarch

After plugin in controllers, chose the port you want to setup:

Retroarch

Chose the one you want to be Port 1 in Device Index, and see if the controls are recognized. If not, proceed with each individual control or go ahead with Set All Controls.

 

Latency

Retroarch

You want the best experience possible:

  • no GPU Sync
  • no delay
  • no run-ahead
  • Polling behavior = whatever it does not change a thing
  • all the rest default

 

AI Service = OFF

Retroarch AI service OFF

AI Service feature allows users to play games written in a foreign language, or add text voice-overs automatically. This uses OCR (optical character recognition), machine translation, and text-to-speech. While these technologies can’t provide the same level of accuracy as curated content, it can go quite far. Machine translation can give a good gist of what’s being said, especially for some language pairs, and text-to-speech can be of great benefit for accessibility.

AI Service needs a hotkey that you press when you need it. It will send a screenshot to a url of your choice and feed you the result back, whether it’s speech or a picture overlay.

More information here

 

Wrapping Up

Next step is … Update cores, assets, databases, import games and play with Retroarch.

  • Auto-Update Retroarch
  • Import Games

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *