1. RetroArch
  2. News

RetroArch News

RetroArch Steam – Beta key giveaway

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/

RetroArch & Shaders

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)

[h2]Editing Shader Presets[/h2]

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


[h2]"Reference" Presets[/h2]

Presets can use a #reference "" 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).

[h2]Converting Cg shaders to GLSL[/h2]

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/

Welcome to RetroArch's Steam Page

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 Steam Launch lineup revealed



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 Steam Launch Update

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.

[h2]Cores as separate free DLC[/h2]

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.

[h2]What To Expect[/h2]

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.