Skip to content
alkazar edited this page Oct 9, 2022 · 2 revisions

How the seamless GE Proton support works in ChimeraOS

2022-08-24

Proton is a compatibility layer built into Steam that allows Windows games to work on Linux and ChimeraOS. It is quite important to ChimeraOS because without it there would be far fewer playable games available.

GE Proton is a community version of Proton with more bleeding-edge features and often improved game compatibility. Unlike the official version of Proton, GE Proton is not included in Steam by default and is not all that easy to install for those unfamiliar with it.

ChimeraOS users were very frequently asking how they could install GE Proton because they naturally wanted to play a wider range of games. Due to the nature of ChimeraOS being an exclusively gamepad-controlled experience the answer to that question used to be quite complicated, involving manually copying files through FTP or ssh. Today, it is as easy as selecting a version of GE Proton in the Steam Play settings in Steam.

Beyond being able to select GE Proton manually, we can also pre-configure it to be used with specific games so that they can work out of the box without the user needing to be aware GE Proton is required for those games or that GE Proton even exists.

It took some time and research to get to this point. When trying to find a solution to the problem of how to easily install GE Proton, a few different ideas were considered.

The first and obvious idea was to simply include GE Proton pre-installed with ChimeraOS. While this would work, it had some serious drawbacks. For one, GE Proton is quite large. A single version of GE Proton is over 1 GB in size, while ChimeraOS itself is around 5 GB. It would be rather wasteful for those who never need to use GE Proton to have an OS that is 20% larger for no benefit.

Furthermore, it is important to be able to keep older versions of GE Proton around because new versions can break compatibility with some games. However, it would be impractical to keep adding new versions of GE Proton to ChimeraOS. The system would become bloated beyond belief.

Another idea was to add a GE Proton management page to the Chimera web app where you could remotely download and install new versions of GE Proton through your browser. However, besides the problem of users not naturally being able to find this feature, it also wouldn't allow us to ensure that GE Proton was installed as a prerequisite for games that require it. This is important because we want to provide an out-of-the-box experience for as many games as possible.

After a little bit of research into how exactly Steam lists and launches different versions of GE Proton, we found a way to automatically install specific versions of GE Proton for games that require it, and also allow the user to select any version of GE Proton in Steam Play without having to pre-install anything.

Is it magic? No! This is how it is done:

  1. We add stubs for each version of GE Proton to Steam.
  2. When invoked by running a Steam game, the stub transparently downloads and runs the selected version of GE Proton.

For the first part, we essentially lie to Steam, telling it there are many different versions of GE Proton installed when there are none installed. Steam happily plays along and lists the GE Proton versions in its interface for users to select from.

When a user starts a game and Steam invokes the fake GE Proton stub, it is invoking a script which downloads and launches the GE Proton version that was selected by the user in Steam. The download only happens once, and after GE Proton is installed, the stub is removed without a trace.

It took some time to arrive at this solution and we certainly made our users wait, but it was worth it for the extremely simple experience it affords to ChimeraOS users in the end.