Retroarch Ubuntu Download Cores ~UPD~

2 views
Skip to first unread message

Christain Cobb

unread,
Jan 25, 2024, 3:35:21 PM1/25/24
to telnedalit

Many game console may have multiple emulator cores, the question of which one is the best may come up. Emulators can be designed to be more accurate at the cost of a performance hit, check out the Emulation General Wiki for a good look at what will suit your needs and hardware.

retroarch ubuntu download cores


DOWNLOAD ☆☆☆ https://t.co/z7Y68VIzsw



If you do not see the "Core Downloader" option, you may have installed RetroArch using a package manager. If so, see Installing cores through package manager (Ubuntu PPA only). Otherwise, to enable it:

I'm trying to get set up and rolling on ubuntu (20.10, on a RPi 4b), so far without luck. I've installed retroarch through the "testing" ppa, since I read on a post here that that would let me use the internal core downloader. But it doesn't seem to work: when I choose "Core Downloader", I just get "Fetching core list..." and then nothing else.

Now it did show up, it did list all cores, it did download them all, but now it didn't install them. This is probably caused by a broken RetroArch's Cores directory. To change this go into Settings -> Directories -> Cores and changed it to a writable folder to install the cores. (Retroarch has its own cores folder)

In the reddit thread mentioned above @Runsamok explains that this behavior is the default one for Arch linux systems, letting users get the Cores from Pacman or AUR. In my Manjaro, installing the libretro cores through Pamac did installed them on RetroArch, but the Manjare repos only have a handful of cores and they probably won't be enough for some, like me. Also, installing them internally in RetroArch feels a bit cleaner to me, as I'm not planning to install any other libretro frontend.

There are many ways to install RetroArch in a Linux environment. If you can compile it from source, you can remove unneeded features and dependencies. Distro packages can be nice, but we don't control those builds (aside from the official PPAs) and can't guarantee their quality or how often they are updated. Universal packages, such as Snap and Flatpak are maintained by the libretro team but have some limitations resulting from their sandboxing techniques, such as lack of support for Vulkan and a small number of cores not functioning as expected.

These instructions will install RetroArch. Cores should be downloaded from within the program using the Online Updater's Core Updater, if possible. Some distros patch out the Online Updater, in which case you'll need to install cores using your package manager. There are core packages available in the PPAs, as well, and they will continue to be updated, but new packages for new cores will not be created.

What I found was that the asset locations, cores, and core information are in the global system, but when I try to update these things, retroarch never asks me for the system password. So I assumed that the files weren't updated.

I solved the problem by changes all the locations of contents that retroarch stores in the global system to locations in the user scope like '/.local/share' and '/.local/lib' in the Directory settings

Some cores, like 2048, do not require any content in order to work. In this case, after you have loaded the core, 'Start Core' will appear inside the main menu. Select this to start the core directly.

To launch a game, select the libretro core you'd like to use under Load Core, and select a ROM under Load Content>Select File. Alternatively, you can use Load Content>Select File And Detect Core to be presented with a list of cores detected based on the file extension of the content.

Replace with the name of the package the core is available in. You can see all of the cores available to you either in your package manager (e.g. Synaptic, Software Center) or by visiting Launchpad. To install all (or at least most) of the cores in one go, run

Before you can use the cores you've downloaded in Retroarch, you need to set the path to the libraries in retroarch.cfg, the configuration file for Retroarch. Run Retroarch at least once to create a skeleton retroarch.cfg. By default, retroarch.cfg will be created in the directory $HOME/.config/retroarch, where $HOME is your home directory. If retroarch.cfg is not found at that location, run Retroarch and choose the Save Config option - Retroarch will save a new configuration file and display its path on screen. Alternatively, you can use the find command:

Once you've located the libretro cores, it's time to open retroarch.cfg using your editor of choice. Look for the option libretro_directory, which may be located near the bottom of the file. Insert the path to the libretro cores between the quotation marks on the right hand side. Assuming the cores are located in /usr/lib/libretro, the line in the configuration file should look like

You can also set the libretro path using the menu. In Retroarch, go to Settings -> Path Options -> Core Directory and navigate to the appropriate folder. If you set everything up correctly, you should see the cores when you select the Core option in the menu.

RetroArch has a robust CLI for those who prefer the command line, there are also many pages which should have been installed by default for retroarch, retroarch-joyconfig and others. If you use the CLI be sure to configure your retroarch.cfg file before first use. This config is well commented so each option can be fully understood. Use retroarch-joyconfig command for simplified input setup. RetroArch can auto-detect inputs, which is a great feature to simplify playing with multiple/different controllers (refer to man retroarch-joyconfig for details). The retroarch.cfg file should be located in /etc/retroarch.cfg, your home folder or the directory where RetroArch was installed depending on your distro and compilation setup.

Using recent builds of the bsnes libretro cores, you can load Game Boy games in a fully emulated Super Game Boy. As this feature is not currently usable from the menu, you must do so using a command line. Start RetroArch with the following command to load GB games in SGB mode using bsnes:

Note that these filters are WIP and may not work with all cores as they need to have codepaths for the pixel format the core uses (either 32bpp XRGB8888 or 16bpp RGB565). Blargg's NTSC is currently limited to 16bpp cores for example (bsnes is 32bpp so it won't work, but Snes9x is 16bpp so it works there). Cores that use Libretro GL for 3D like Mupen64Plus can not use these filters.

This tends to happen when you first start up RetroArch and not after loading a game. This is because without a core loaded, the menu is only throttled by Vsync when Limit Maximum Run Speed is disabled, while cores are able to throttle on audio as well. Fastforward disables both Vsync and audio sync, which allows the core to run unthrottled unless it is specifically limited by the Limit Maximum Run Speed setting.

Windows users with Nvidia hardware may find that even while idle, RetroArch CPU usage is upwards of 12% or above while using the GL video driver. If this is the case, go into the Nvidia Control Panel, and under Manage 3D Settings, check to see if the Threaded Optimizations option is set to Auto or On. If so, add retroarch.exe to the list of programs, and then toggle it to Off. This should lower CPU usage drastically.

The second method is to simply launch RetroArch from the command line in verbose logging mode, by doing retroarch --menu --verbose, and let it run for at least 4096 frames (about 1 minute at 60fps). When you close RetroArch, it will report the estimation results in the log. Again, running in exclusive fullscreen gives more accurate results. Example estimation output:

Steam on macOS requires you to have at least macOS El Capitan (10.11) installed or later. It does not support anything lower. This meant that we could go with our Metal/GL universal build that targets macOS High Sierra (10.13). In doing so, we could reasonably assume that the Macs capable of running this OS should have at least a GPU with support for the Metal 2 graphics API. This allows us to just set the default video driver to Vulkan, which should guarantee a high level of performance and also compatibility with cores that provide a Vulkan hardware context.

Runahead is a method that was first introduced in RetroArch before it got adopted by other emulators. It has the potential to drastically reduce latency, even being able to go below the native latency that a console and a CRT would be capable of. However, like any system, it also has its own drawbacks and deficiencies. Biggest one being steep performance requirements and (so far) no hardware context support (so cores that currently rely on OpenGL/Direct3D11/Vulkan are a no-go).

It has a couple of big advantages over the Google Play Store version:
* There is no set core limit. For RetroArch Plus on the Play Store, it is up to 127 cores that can be installed. We have to hand-pick these cores specifically so that users can install them on the Google Play Store.
* Cores are distributed from the Libretro buildbot infrastructure. There are far more cores available than on the Play Store.

Other measures have also been taken to further improve audio latency. Some cores have been updated now so that audio gets pushed to the frontend (i.e. RetroArch) AFTER the video frame has been uploaded. This is just in case the audio upload blocks for too long due to audio processing and syncing performed by the frontend. Uploading the video frame as soon as possible after the emulation loop is generally a good idea since it potentially avoids unnecessary input latency.

Steps have also been taken in cores to minimise use of the audio batch callback (for example, Tyrquake and Snes9x 2010), leading to better audio sample pacing, less overhead and better overall performance.

Not listed here of course are all the countless improvements made to individual cores since the last version. We might go into more detail on that sometime later, but rest be assured that cores are updated on a daily basis and receive heavy improvements, so keep updating your core library to get the latest benefits at all times!

9738318194
Reply all
Reply to author
Forward
0 new messages