The Definitive Guide to Steam Play Tools
What is Proton and how is it different from GE-Proton? And what about Luxtorpeda? How do they work and how do you use them?

Youâve probably heard of Steam Play. Itâs how Valve makes Windows games playable on Linux/Steam OS. But if youâve ever taken a deeper look into it, you might have seen mentions of "Proton 9.0-4e," "Proton Experimental," or even "GE-Proton."
You might have questions like:
- "Why do I need a Compatibility Tool?"
- "Whatâs the difference?"
- "What's the best version to use?"
- Or even "What else can Steam Play do?"
Well, these are excellent questions and in this post Iâm going to explain exactly what each version is and what makes them different from the other versions.
But first, letâs discuss exactly why we need compatibility layers.
Why We Need Compats
Each Operating System has its own architecture which solve common issues that most programs need order to function. Things like loading and saving data to disk, multitasking, accessing hardware features, and more.
Without an OS, each program would need to have built-in support for specific pieces of hardware. You might remember back in the MS-DOS days when games would only support a handful of audio cards, for example.

There are two key ways that Operating Systems handle this abstraction. The first is known as a syscall
and the other is an API
or ABI
(which Iâll refer to as an AxI
call).
The difference between the two can be subtle but, to simplify things, an AxI
call is generally stable and is guaranteed to provide the same results across multiple versions of the OS. Meanwhile a syscall
may provide different results when called across different OS versions. At least, this is how things work in the Linux world.
Importantly, though, syscall
s on Linux, Mac, and Windows are all vastly different from each other. Some OSs also support proprietary and non-standard AxI
s. Think DirectX on Windows and and Metal macOS/iOS. There are also standard APIs. Things like OpenGL and Vulkan. We'll talk about those more in a minute.

This is why we need compatibility layers. Because an open()
command on Linux is a ReadFile()
on Windows. Many Windows games also use DirectX which is an API thatâs exclusive to Windows. So if you run a Windows game on Linux without a compat layer, the game will try to call ReadFile()
or a DirectX methodâwhere it doesn't existsâand it will crash.
Proton (and WINE) implement these all these Windows syscall
s and AxI
s on Linux. For the most part this is extremely performant and transparent to an application.

I can already hear some folks asking, "but wait, if we're adding another layer of translation into the mix, won't that cause performance loss/add bloat to my system?"
The short answer is "eh."
The long answer is "it depends."
Generally speaking, if a game is compiled for your computer then it's compiled for an x86_64 CPU. The binary code is running natively on the CPU so this isn't like emulation where there's software emulating another CPU's instruction set. In many instances, we're literally only talking about software shims that listen for Windows syscalls
/AxI
calls and translating them to Linux calls.
There definitely can be slowdown when translating complex graphical operations. Things like DirectX, for example. But given the complexity and suboptimal design of DirectX and the speedy, low-level architecture of Vulkan... it's often the case that the delta between native Dx
vs. Dx->Vulkan translation
is negligible.
But here's the cool thing: if a Windows game has a Vulkan rendering pipeline instead of DirectX, then it doesn't need to be translated. And that's how Vulkan games running under Proton will meet (and sometimes exceed) their Windows benchmarks on the same hardware!
So now that we're up-to-speed on the design of things, let's talk about the various compatibility tools that are out there.
WINE is the grandfather of all compats. As far as Iâm aware, it was the first attempt at building a compat layer and it stays true to its original vision: supporting Windows applications. So let's talk about it.
WINE
WINE (which stands for WINE Is Not an Emulator) is a compatibility layer for Windows applications on Linux. Windows applications take many forms. There are office and productivity suites, there are creative tools like Photoshop and FL Studio, there are video editors like DaVinci Resolve, web browsers like Firefox, and, yes, games.
WINE is developed to support all of them.
So, whatâs unique about WINE?
- WINE is a general purpose tool which is developed for the broadest support.
- It's cross-platform, targeting both Linux and macOS.
- We get a major release of WINE once a year with fixes and smaller features added in the interim.
- WINE focuses on user-space libraries and
AxI
s. This means that it doesnât use speed-boosting utilities likeESYNC
orFSYNC
which are non-standard and focused on gaming. This can lead to certain games running slower through WINE than they do through Proton.
Proton
Proton is Valveâs gaming-focused fork of WINE. Itâs open sourceâjust like WINE. Proton is a collaboration between Valve, their contractors, and CodeWeavers (the developers of WINE).
Whatâs unique about Proton?
- Proton is focused on gaming. This means that itâs optimized for performance.
- This also means that Valve will often introduce patches for Proton built for specific games.
- It uses speed-boosting techniques and libraries like
ESYNC
andFSYNC
to get the most performance out of games - New versions of Proton are issued at a much faster clip than WINE. Sometimes weekly and often alongside (or following) the release of a major game.
- Finally, Proton is distributed with the Linux Steam client.
Proton Experimental
Proton Experimental isâas the name might implyâexperimental. Itâs a branch of Proton that Valve uses to roll out and test upcoming Proton features and fixes. This is great as it allows them to ensure compatibility and stability!
Experimental follows the (highly unstable) Bleeding Edge branch. Bleeding Edge is the beta branch that is not recommended for anyone other than developers.
What is a Hotfix?
Finally, you might have seen the mention of Hotfixes. This is generally a one-off update for a specific title. Youâll often see these around the time of a new gameâs release. In Valve's own words:
It's a special version of Proton that contains targeted fixes for new, important games. It's used when there's no time to do a proper Stable or Experimental release. It's intended to be short lived and be phased out once the fix matures and is released as a part of one of the other flavors.
What about version numbers?
There are currently many numbered versions of Proton. The latest (as of writing) is Proton 10.0-1
. This new version was released on May 2nd 2025. We usually see numbered versions on an annual basis.
Previous versions of these compats are also supported, though. Some games are built against these older versions and other titles just work better with them.
What about GE-Proton?
As I mentioned earlier, WINE and Proton are free and open source software. This lets anyone read, study, modify, or redistribute the code for their own purposes.
Thatâs exactly what our friend Thomas Crider (aka âGloriousEgrollâ) does. He makes his own spin of Protonâcalled GE-Protonâthat include features Valve wonât (or legally canât) include.
GE-Proton includes fixes like better video playback support, built-in FSR hacks, NVIDIA CUDA support for PhysX and NVAPI, raw mouse input, backported WINE patches, and more.
There are other community spins of Proton and each has its own purpose.
How to use these tools?
For Proton/Proton Experimental/Proton Hotfixes you simply find the game in your library and click the gear icon:

Select the "Properties..." menu option:

Then, go to the Steam Play tab and check the "Force the use of a specific Steam Play compatibility tool" box:

In the select box that appears, choose the compat you want:

For third party tools like GE-Proton, Luxtorpeda and others, youâll need to install them first using ProtonUp-Qt.
If you donât already have it installed you can use your app store (on the Steam Deck, you should go to Desktop mode and open the Discover Store):

Install ProtonUp-Qt if you donât have it already:

Then, in ProtonUp-Qt select the "Add version" button:

And install the tool you want:

Once youâve installed all the compat tools you need, you can go back into Steam and change the gameâs compat tool as shown above.
How do I know which compat to use?
Thatâs a great question! There are excellent resources out there if you need help. My preferred option is protondb.com.
Search for the game you want to play and then read the notes that other people have left. Youâll see people giving their reviews, their hardware configurations, and (crucially) on the right hand side of the review, youâll see which version of Proton they used.
I tend to scroll through and find a consensus Proton versions over the last yea and try that version first. For example, INSIDE is rated as ProtonDB Platinum and the majority of recent reviews say that Proton 9.0-2
is the build theyâre using.

Unsurprisingly, thatâs actually the build that Valve recommends and automatically sets the game to use.
But what about for a game like Burnout Paradise Remastered? Itâs got a Silver rating (which is actually fairly low). According to the latest posts, version 9.0-4
of Proton has no issues with the game launching if you set the -skipvideos
launch option.
Now, your mileage may vary. Especially if you're referencing older ProtonDB reviews, using an obscure Linux distro, or exotic or obsolete hardware. But if you're a Steam Deck player, you're gonna have a great time!
What else can Steam Play do?
Generally speaking, when people are talking about Steam Play, they mean Proton. However, there are other utilities out there that build upon the Linux Steam Clientâs support for compatibility layers. They deserve a mention here, because they do cool things.
There are two that I want to highlight. The first is Luxtorpeda. I wrote an article about it a few years ago. To sum it up, though, Luxtorpeda is a tool that allows you to substitute the Windows executables of games on Steam for native, fan-made Linux binaries!
I can't understate how much I love this. You can launch a game like Star Wars: Jedi Knight - Jedi Academy using the native Linux port OpenJK!

Or maybe play your Steam copy of Roller Coaster Tycoon 2 using the latest build of OpenRCT2!

There's a whole list of games that are supported by Luxtorpeda which I recommend you consult. Especially if you're a as big a fan of retro PC games as I am.
My favorite thing about Luxtorpeda, though, is that you just set it as the Steam Play tool for your game and it handles ALL the setup for these free clients!
Another awesome compat that I've barely scratched the surface of is SteamTinkerLaunch. Its interface is a little esoteric, but you can use it to configure ReShade as well as modding tools like ModOrganizer 2 and Vortex Mod Manager. It's an incredibly welcome utility on Linux!
Well, hopefully this guide to Steam Play Compatibility Tools has been helpful!
I also hope you learned at least one new thing! If you did, Iâd love it if you could share this article or become a subscriber. Subscribers get these articles delivered straight to their inbox!