RetroArch - libretro
Read our blog post here for details on how you can obtain a key for Beta 1. Make sure you are quick, as we have a limited amount of keys to pass around for now.

https://www.libretro.com/index.php/retroarch-steam-beta-1-key-giveaway-read-more-for-details/
Aug 28, 2020
RetroArch - Gadsby
What is Shaders

Shaders are efficient graphics filters that can greatly improve the rendering of old games. They can also be used to replicate the look and feel of old CRT monitors. You can even stack them to create your own effect. The possibilities are infinite.

RetroArch is shipped with a lot of shaders. There is an overwhelming array of them and we can't show all of them on this page.

Here are a few common examples:







Shaders can also be used to display the handheld border:



Shader languages and shader presets

Shaders are small programs, and they are written in specific programming languages. RetroArch supports 3 of these languages:

  • CG: Old, deprecated format.
  • GLSL: Shader format available to OpenGL.
  • Slang: New and recommended shader format, when available. Compatible with Vulkan, Direct3D 10/11/12, OpenGL Core, WiiU and Metal renderers.

Depending on your platform and the way you have configured RetroArch, you need to use one of these shader types.

RetroArch is also able to stack these shaders to create a combined effect. These complex effects are saved with a special extension:

.cpg for CG
.glslp for GLSL
.slangp for Slang

The shader presets can also have parameters. This means that you can tweak them to fit your needs. You can watch our Shader showcase videos on YouTube.

Shader Presets are combinations of one or more shaders. They can be loaded via Quick Menu -> Shaders -> Load Shader Preset and if you want to keep the shader in-between play sessions, you can save them as an "automatic" preset via Quick Menu -> Shaders -> Save -> Save Global/Core/Directory/Game Preset.

Global presets are automatically applied in any content for any core, while the Core presets are applied in any content for that specific core. Directory presets apply to all content in a certain folder and Game presets apply just to one game. Note that directory and game presets are also core specific.

If more than one automatic presets exist that could be applied, the most specific one wins out, so for example, if both a global and a game preset exists, the game preset will be used.

You can also save custom non-automatic shader presets via Quick Menu -> Shaders -> Save -> Save Shader Preset As, so if you create your "perfect" combination of shaders you can recall this at any time with Load Shader Preset then continue on to save it as an automatic preset. This will save time if using the same preset for multiple games or cores.

By default automatic presets will save to under /presets/"name-of-core"/"name-of-core/directory/game".glslp|slangp|cgp or presets/global.glslp|slangp|cgp in the shader directory while custom presets are saved in the base shader directory. The shader directoy can be changed via Settings -> Directory -> Video Shader.

There are plenty of user created default presets that come bundled with the RetroArch installation and these can be updated from Main Menu -> Online Updater -> Update Glsl|Slang|Cg Shaders (you can find these presets in the shaders_glsl|slang|cg subfolders of your shader directory)

Editing Shader Presets

You can edit shader presets or build your own using these tools:

  • Shader Passes: The number of shader passes to use.

    For every shader pass you can configure:

  • Shader #N: Path to a shader. All shaders must be of the same type (i.e. .glsl, .slang, or .cg).
  • Shader #N Filter: Hardware filter used for scaling. "Don't Care" uses Settings -> Video -> Bilinear Scale.
  • Shader #N Scale: Scale for this pass. The scale factor accumulates, i.e. 2x for first pass and 2x for second pass will give you a 4x total scale. The last pass in the chain then is streched to fullscreen using the Settings -> Video -> Bilinear Scale filter setting. Note: If the preset uses scaling methods which are not simple, (i.e. source scaling, same scaling factor for X/Y), the scaling factors displayed might not be correct.

    Apply Changes: After changing shader settings, use this to apply changes. Changing shader settings is a somewhat expensive operation so it has to be done explicitly.

    Shader Parameters: Shows the list of all tweakable shader parameters, which are previewed "live", i.e. without the need of hitting Apply Changes

    Shader Parameters: Shows the list of all tweakable shader parameters, which are previewed "live", i.e. without the need of hitting Apply Changes

"Reference" Presets

Presets can use a #reference "<preset path>" directive, which will act as if the preset with the given path was loaded instead.

From the shader menu you can create such reference presets by first loading any shader preset and then immediately saving it as an automatic shader preset. If any changes were made to the menu preset, it'll be saved as a copy like usual.

If you make changes and still want a automatic preset to point to it, you can first save it as a custom preset and then immediately save an automatic preset. This allows you to change your custom preset without having to resave the automatic one every time.

Note that custom saved presets are always saved as copies and automatic presets cannot point to automatic presets. This is so we never get references to references (which are not supported).

Converting Cg shaders to GLSL

In some cases, Cg shaders cannot be supported. This goes for OpenGL ES drivers, and when EGL OpenGL contexts are used (KMS mode for instance). Using Nvidia's cgc compiler, you can convert Cg shaders to GLSL shaders with the cg2glsl tool developed by us here. It can convert single shaders as well as whole folder structures in batch. 100% compatibility is not guaranteed, but almost all shaders should work fine. Cg presets (.cgp) are not converted at the moment, but converting them is as simple as copying over the .cgp, rename it to .glslp and replace references to .cg files to .glsl.

If you have further questions you can find me on Discord with gadsby#6752

Don't forget to join our Steam Group! https://steamcommunity.com/groups/libretro

https://www.retroarch.com
https://docs.libretro.com/
RetroArch - Gadsby
https://store.steampowered.com/app/1118310/RetroArch/

First of all, we thank everyone for being here. We want to share our official channels with you so that we can interact more and see the developments together.


Channels

These are the official channels where you can follow us, talk with us and seek support. We cannot guarantee that information and/or content from other, unofficial sources is accurate and safe.

  • Twitter
    Do you want to get the latest updates and latest information before anyone else? Welcome to Twitter.

  • Website
    This is our official website. You can find frequently asked questions here.

  • Discord
    Our fastest communication channel, you can instantly communicate with thousands of members.

  • Github Repository
    All magic is happening here. You can contribute to the developments, give feedback or see the problems on the development side.

  • Reddit
    Get support and share advice and settings with a vibrant and growing community in the official RetroArch subreddit.

  • Libretro Documentation
    You can find the developer or end user documentation here. If you are looking for something, you can definitely find it here.

  • Forum
    Do you remember the forum days? Yes, our Forum is still active.

  • Facebook | Facebook Watch | Facebook Groups
    If you have a Facebook profile, you can follow our developments and updates here. You can watch our videos and interact with other users in our group.

  • LibRetro's YouTube | RetroArch's YouTube | DailyMotion
    If you want to see the latest developments visually, we are waiting for you on our YouTube channels. In these pages, we share our development, improvement, installation and customization videos, as well as add gameplay videos.

  • Teespring
    Do you want to look cooler than anyone else? Our official merch are in this store.
RetroArch - libretro


So, it’s been a long time since we (prematurely) announced our intent to launch RetroArch on Steam. We’re nearing the finish line now however, so now is as good as any a time to start discussing how things are going to roll out.

Will launch on Windows first (Linux later)
We will be releasing on Windows first, with a release on Linux scheduled later (no ETA).

We are trying to limit our support burden at launch here since we are (understandably) concerned about the large amount of support requests and feedback we are bound to be receiving. Adding Linux right from the bat would further exacerbate that.

10 Cores Available On Launch Day
We are deciding to launch with 10 cores at launch. These cores have already been approved and uploaded on Steam. They are as follows:

  • Mupen64 Plus Next
  • Kronos
  • PCSX ReARMed
  • Stella
  • SameBoy
  • mGBA
  • Mesen
  • Mesen S
  • Genesis Plus GX
  • Final Burn Neo

There will be no ‘Core Downloader’ in RetroArch, or anything that is not hosted on Steam in fact. To obtain cores, you need to install cores separately that we provide as ‘DLC’. These are all free just like RetroArch itself.

NOTE: We need to stress – on its own, without installing any of the cores, the most you will be able to do with RetroArch is watch some movie files and playback music files through its builtin ffmpeg core. To make it do anything else, you will have to install cores.

Differences between regular RetroArch and Steam version
Apart from these aforementioned changes, there will be no substantial differences for now in the Steam version. We understand that even though we have consistently improved the User Experience and tried to make things more easily accessible that we will still be in for a lot of criticisms over the initial learning curve, so we’ve pretty much resigned to the fact that this will happen and will just brace for impact and try to do as much as what we can with the criticism that will inevitably be piling on. We will try to do our best to be as receptive to the feedback as possible with the thickest amount of skin possible, and try to suitably make some much needed UI changes.

This is also what helped inform our decision to go with 10 cores. We could have launched with over 60 cores, sure, but the ensuing fallout would have been a mess and it would have been near impossible to focus on bug reports and issues piling in. By focusing on 10 cores, we can do some much-needed Quality Control where issues inevitably get picked up, we can respond to it and in the process improve the quality of the core. This kind of isolated feedback time with a specific batch of cores is something we have found ourselves in the past always lacking, since it was always off to do the Next Big Thing as new features, cores, and other developments are made on an almost weekly basis. This gives us the much-needed time to focus on a specific batch of cores and polish them before we move on to the next batch of cores.
RetroArch - libretro
Hi there guys,

we want to inform you on what we have been doing these past few months and where the launch of RetroArch is at.

While we still don't want to commit to a confirmed release date, we do hope it won't be long from this point on.

Cores as separate free DLC

Most of our time has been spent doing this release right on the legal end given our unique situation where RetroArch is a GPL-licensed application that loads in modular programs through a dynamic library API. We have decided upon a model where each core is a separate free DLC. There will be no Core Updater of any kind in the Steam release.

NOTE: These cores DO NOT COME WITH ANY KIND OF DRM, neither is Steamworks integration being used.

We went through the painstaking task of reaching out to the original program authors and asking them for their permission, even in cases where the GPL already gives us the rights to do so. We decided it was important that program authors were OK with us publishing their work on Steam as free DLC, hence the outreach.

The response has been extremely positive. The authors were very happy to learn of our plans and gave their blessing to have their software added to Steam as free DLC for RetroArch. We can state that at least the following cores will be ready at launch:

  • bsnes
  • bsnes HD beta
  • Final Burn Neo
  • Flycast
  • Mesen
  • Mesen S
  • Nestopia
  • Play!
  • SameBoy
  • TIC-80
  • EasyRPG
  • Mupen64 Plus Next
  • Kronos
  • Theodore
  • Blastem
  • Stella
  • Snes9x
  • mGBA
  • 4DO
  • Genesis Plus GX
  • 2048
  • RACE
  • VBA-M
  • NeoCD
  • FreeIntv
  • FreeChaf
  • QuickNES
  • Picodrive
  • Game Music Emu
  • GW (Game & Watch)
  • PX68K
  • REminiscence
  • XRick
  • Desmume
  • gpSP
  • PocketCDG
  • Tyrquake
  • Vitaquake 2
  • boom3
  • EightyOne/81
  • Gearsystem
  • CrocoDS
  • Gearboy
  • Caprice32
  • Parallel N64
  • PPSSPP
  • NP2Kai

This list will be be updated as time goes on.

NOTE: RetroArch will come without any cores pre-installed. You will need to install cores separately as free DLC through the 'Manage my DLC' page after you install RetroArch. This should be convenient enough, and the benefit is that updates will be automatically synchronized this way whenever a core updates.

What To Expect

This is what one can expect for the impending launch:

  • RetroArch as an application itself, when installed through Steam, will be able to be launched even without Steam being active. Therefore, no kind of DRM is being imposed.
  • RetroArch as well as the cores will be provided completely for free.
  • The cores do not have any kind of DRM applied to them.
  • No Steamworks integration. If it will ever happen, it will be done through a separate process as has been done by plenty of other Steam GPL-licensed programs/games.
  • We will never provide any copyrighted content that we do not have permission to under any circumstance. Out of the gates, you will be able to run disk-based content from a CD-ROM drive with many CD-based emulators. There is also a preservation-focused project in the work that will make it easier to preserve your legally bought cartridges, but more on that as we get closer to release.

We want to also keep expectations in check - RetroArch will be free and will come with zero warranty. We also want to stress that it will be incrementally updated and improved. Do not expect everything at launch to be perfect. Please bear with us here as we are in a quite unique situation here with this release where we have went to painstaking lengths to do everything right. While our software is ever-improving and we are always striving to make the UX/UI more convenient, we are fully cognizant of the fact that there is still a bit of an usability hurdle to overcome. We ask you to bear with us as we try to get this application out of the door on Steam and to keep in mind that we intend to aggressively and quickly improve the program in the usability department based on user feedback.

Also in regards to the last update, Saftle is thankfully in working order and is helping with the Steam release as planned. However, the buildbot is still a WIP. We'll instead be releasing stable builds only and cores that are ready to be released. Nightly builds and core updates between stable builds will still need to be looked into once the buildbot is ready.
RetroArch - Saftle
Hello fans of Steam, Libretro, and RetroArch!

This is Saftle, and I'm volunteering as Steam Community Coordinator.

As it is the last day of Q3, we figured we owed everyone an update on the status of our Steam launch! As you have already guessed, yes we will be delaying the release again. However, worry not! For those unaware, the same version that we were intending on releasing (current stable without any Steam services integrated), is available on https://www.retroarch.com and https://www.libretro.com. So anyone dying to dive into their old content, can do so now!

Why are we delaying the Steam launch... again?!
  1. Buildbot Server: Our Buildbot server is in the process of being updated both on a hardware and software level. This has been something that has needed to happen for a long time now, even before Steam was planned. Progress on this front is steady now, but there were a few hiccups at the beginning that we had to first sort out before we were able to dive in fully.

  2. Steam Depot integration: After the buildbot is ready for primetime and works with the current infrastructure, the plan is to automate the Steam builds and distribution. This is a job that I'm responsible for, but due to a medical emergency I won't be able to tackle this at the moment. Hopefully, by the time the buildbot is finished, I will be back on my feet. However, just in case, we may need to find a replacement for me. This is the main reason for the delay sadly.
In order to not keep letting you down with undetermined release dates, at the moment just expect RetroArch to be released as soon as we can, and if you can't wait you can always grab it for free from the two sites above!

I hope everyone understands that we are just as excited as you guys are to see this land on Steam. Please don't give up on us, and we'll let you know as soon as we have something more concrete! Until then, take care everyone and keep gaming!
RetroArch - libretro
In order to do this release justice, we have some infrastructure work remaining to do that will take more time. Our new release estimate therefore is sometime later this quarter. We will keep you updated on our progress.

The net positive of this is that we can ensure the release is more polished and that it will meet the user expectations of your average Steam user.
RetroArch - libretro
So RetroArch is finally coming to Steam two weeks from now!

RetroArch is the official reference frontend of the popular Libretro API. While there is nothing particularly about RetroArch or the Libretro API that has anything to do with emulators, most do it use it for this purpose.

We want to grow our base and as of this month we have been putting a heavy focus into making sure that RetroArch can run originally bought content on game discs. There are further announcements to follow in the coming weeks, and we are open to dialogue with game developers/publishers that have the rights to original IP who want to bring their games over to Steam through the use of RetroArch*.

Do note that RetroArch is an agnostic frontend/backend application that can be used to run modular programs. As such, it can run real games, media engines, and emulators, as long as these programs are converted/ported into modular pieces of software known as 'Libretro cores'.

So, without further ado, here's the details on our initial release:
  • Free.
  • Windows version first, Linux and macOS versions will release later. We're a bit wary of the support burden that will come with a much wider audience, so we want to do the Windows version first to make sure we can handle the demand.
  • At the beginning, there will not be any difference between the version you can get on Steam and the one available on our own website. As such, no Steamworks SDK functionality will be present at launch or any additional Steam features. However, after the initial launch, we will begin exploring options on how we can start leveraging Steam's functionality as a platform.
  • Release date will be approximately 30th of July.

RetroArch as a program serves as the fundamental backbone of many retro gaming machines out there in the wild. Even when it is not deliberately namechecked, chances are it's running in the backend of said retro program. Same goes for its sister project Libretro. For instance, several programs available on Steam already, such as Grid Cartographer, and New Retro Arcade, integrate Libretro support to allow you to run the software that has been ported to the Libretro API. As for Libretro, this API is being leveraged by several retro gaming companies right now to serve as the backbone of their retro emulation services. Given all this interest and burgeoning activity, we feel now is the time to finally bring the official Libretro frontend to Steam. RetroArch is truly in a class of its own on a technical level when it comes to latency, shader features, and now soon-to-be disc loading and disc dumping. We can't wait to bring you complete control over your retro gaming library coming this summer on Steam!

* Our only condition is that we have to abide by the GPL license and any derivative works.
...