How to find out if a game is native for sure?
Lib-Inst 27 Mar 2024
Does anyone know how to find out if a linux version is native for sure? I used the website protondb since it tells you if something is native but then I found out some games arent really native despite them being mentioned as native such as bioshock infinite. it uses a wrapper called eON. How do you find out if a game is really native?
damarrin 27 Mar 2024
If you don’t have it installed search online.

If you have it installed search through its files.
Myrhan 27 Mar 2024
You can check for a Windows (DOS) binary via magic numbers on the commandline, pipe od to 'head' or 'less' if you want. If the launcher is a Linux binary or script, then you may need to find what it launches.
file 'binary'
od -t x1 'file'


Check the logs to see if the game produces any information to related techs, like eon.

You can find out some more info with Linux binaries with the following.
readelf -a 'binary' 

SteamDB may be somewhat helpful in this regard.
- You can go to 'Configuration' and see what they have for the Linux executable. (I have seen devs mess up and put a Windows executable there, or even renamed the Linux binary to .exe).
- Check in the Linux depot and look for files that would indicate 'eon', 'wine' etc.

Companies that have done ports with some form of 'layer' would be Valve (ToGL), Aspyr, Feral Interactive (indirectx), and Virtual Programming (eON). You can just go to their sites and see their game list, although you may need to use the wayback machine since information may have been removed.

Depending on the company, source access and the tech they use, some may not be native and external like wine, or a translation layer in the source like valves ToGL.

There's also games that use an interpreted language, so while the game code may not be native, the Interpreter/VM will be and you can check that.
ie. Some HTML/Javascript game using nwjs.

Last edited by Myrhan on 28 Mar 2024 at 9:58 pm UTC
CatKiller 27 Mar 2024
I found out some games arent really native despite them being mentioned as native such as bioshock infinite. it uses a wrapper called eON.

The Virtual Programming Linux ports are native, just like their Mac ports are native to Mac, and just like Feral's Linux and Mac ports are native to those platforms respectively.

Would they likely perform better and have better support if they were first-party builds rather than using a third-party porting house after the fact? Sure. Would they perform better if they were translating to modern Vulkan (with DXVK) rather than OpenGL (with eON or IndirectX, respectively)? Also yes.

But they're not non-native.
Lib-Inst 28 Mar 2024
If you don’t have it installed search online.

If you have it installed search through its files.

I am still newish to linux. what should I be searching through the files for? btw which games valve used ToGL for?

Last edited by Lib-Inst on 28 Mar 2024 at 3:34 am UTC
damarrin 28 Mar 2024
Myrhan has a much more complete answer above, but basically you should be searching for .exe and .dll files.

Out of curiosity, why do you want to know that so precisely?
CatKiller 28 Mar 2024
btw which games valve used ToGL for?

All of them that haven't since been upgraded to use DXVK instead.
Myrhan 28 Mar 2024
Source engine Linux games are using ToGL. You can still see this in the depots if you search for 'togl' in the files section. Take a look at these two Left 4 Dead 2, and Half Life 2.

Try 'readelf' on the binary, you can try loading up those games and typing 'lsof' and grep it to see if it gets loaded or not. There's also a bunch of command line options for these game you can toy with if stuff is not exposed in the settings. ie. '-vulkan', '-gl'.

I didn't verify any of these, check them out. For instance DOTA 2 has been upgraded to Source 2 engine and is using vulkan now, with openGL support being dropped.

MangoHUD seem to have something to detect DXVk, etc.
Lib-Inst 28 Mar 2024
Myrhan has a much more complete answer above, but basically you should be searching for .exe and .dll files.

Out of curiosity, why do you want to know that so precisely?
Source engine Linux games are using ToGL. You can still see this in the depots if you search for 'togl' in the files section. Take a look at these two Left 4 Dead 2, and Half Life 2.

Try 'readelf' on the binary, you can try loading up those games and typing 'lsof' and grep it to see if it gets loaded or not. There's also a bunch of command line options for these game you can toy with if stuff is not exposed in the settings. ie. '-vulkan', '-gl'.

I didn't verify any of these, check them out. For instance DOTA 2 has been upgraded to Source 2 engine and is using vulkan now, with openGL support being dropped.

MangoHUD seem to have something to detect DXVk, etc.

I checked the depots on steamdb for other games that are native like shadow tactics and overload and I saw some dll files in them. So are these games false claiming that they are native? Unless I am missing something....
CatKiller 28 Mar 2024
I checked the depots on steamdb for other games that are native like shadow tactics and overload and I saw some dll files in them. So are these games false claiming that they are native? Unless I am missing something....
You're missing that Unity uses Mono.
Myrhan 28 Mar 2024
Also some devs may be sloppy and leave junk in the Linux depot (windows/mac files).
Lib-Inst 29 Mar 2024
I checked the depots on steamdb for other games that are native like shadow tactics and overload and I saw some dll files in them. So are these games false claiming that they are native? Unless I am missing something....
You're missing that Unity uses Mono.

what is mono?
Vortex_Acherontic 29 Mar 2024
Myrhan has a much more complete answer above, but basically you should be searching for .exe and .dll files.

Out of curiosity, why do you want to know that so precisely?
Source engine Linux games are using ToGL. You can still see this in the depots if you search for 'togl' in the files section. Take a look at these two Left 4 Dead 2, and Half Life 2.

Try 'readelf' on the binary, you can try loading up those games and typing 'lsof' and grep it to see if it gets loaded or not. There's also a bunch of command line options for these game you can toy with if stuff is not exposed in the settings. ie. '-vulkan', '-gl'.

I didn't verify any of these, check them out. For instance DOTA 2 has been upgraded to Source 2 engine and is using vulkan now, with openGL support being dropped.

MangoHUD seem to have something to detect DXVk, etc.

I checked the depots on steamdb for other games that are native like shadow tactics and overload and I saw some dll files in them. So are these games false claiming that they are native? Unless I am missing something....

SteamDB is is not very precisely here. I often times saw devs to still re-package some DLLs or even exes out of accident or laziness with their Linux depots even though they weren't used.

Latest incident is Wrath: Aeon of Ruin, which even uses an open source game engine first hand available for Linux called darkplaces engine. Or better of a slightly modified fork of it called darkplaces-wrath. However they offer a true native Linux version bc the engine does but still re-package the entire windows DLLs and exes in their Linux depot. Primarily because there is no dedicated Linux depot but rather a switch of launch options happening.
Like instead running wrath-steam.exe they will launch wrath-steam on Linux.

See here:

 
.../stream/steamapps/common/WRATH> LC_ALL=C ll
total 28848
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  398385 Feb 28 19:21 SDL.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic 2509824 Feb 28 19:21 SDL2.dll
drwxr-xr-x. 1 vortexacherontic vortexacherontic     662 Mar 17 17:17 kp1
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  242176 Jan 20 21:10 libcurl-4.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  189256 Jan 20 21:10 libd0_blind_id-0.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  130439 Jan 20 21:10 libd0_rijndael-0.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  562176 Jan 20 21:10 libfreetype-6.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  509691 Jan 20 21:10 libgmp-10.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  640953 Jan 20 21:10 libjpeg-8.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic   46306 Jan 20 21:10 libogg-0.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  231911 Jan 20 21:10 libpng16-16.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  395696 Feb 28 19:21 libsteam_api.so
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  186364 Jan 20 21:10 libvorbis-0.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic   40685 Jan 20 21:10 libvorbisfile-3.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic   59404 Jan 20 21:10 libwinpthread-1.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  268136 Feb 28 19:21 steam_api.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  301928 Feb 28 19:21 steam_api64.dll
-rwxr-xr-x. 1 vortexacherontic vortexacherontic       7 Feb 28 19:21 steam_appid.txt
-rwxr-xr-x. 1 vortexacherontic vortexacherontic 3761952 Mar 13 20:05 wrath-64-glx
-rwxr-xr-x. 1 vortexacherontic vortexacherontic 3381888 Mar 13 20:05 wrath-dedicated
-rwxr-xr-x. 1 vortexacherontic vortexacherontic 3574272 Mar 13 20:05 wrath-dedicated.exe
-rwxr-xr-x. 1 vortexacherontic vortexacherontic 3743968 Mar 13 20:05 wrath-sdl
-rwxr-xr-x. 1 vortexacherontic vortexacherontic 3973120 Mar 13 20:05 wrath-sdl.exe
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  123773 Feb 28 19:21 wrath-steam
-rwxr-xr-x. 1 vortexacherontic vortexacherontic  152064 Mar 13 20:05 wrath-steam.exe
-rwxr-xr-x. 1 vortexacherontic vortexacherontic 3967488 Mar 13 20:05 wrath.exe
-rwxr-xr-x. 1 vortexacherontic vortexacherontic   93720 Jan 20 21:10 zlib1.dll


Point being, neither are SteamDB, ProtonDB and not even PCGamingWiki a reliable source of information. As of now I do not know a reliable way of finding ture natives version except for in fact reading the file headers (which requires you to have access to the files and probably own it by then) and even then you can not be sure bc it might just be a left over or an actual Windows executable run via some kind of wrapper.

I think what we might need it some kind of community funded database to list native linux games and if they are true native or if they do use some sort of wrapper. Or we Linux users start expanding PCGamingWiki to list these information as well. At least it is community driven after all.

Edit: I missed to mention something. Even though native Linux games might use some wrapper they often time, like the native Valve games or in case of eON, do nothing but to translate the Dircet3D shaders to OpenGL or Vulkan. While everything else might probably still be native Linux code.

What however is a clear indicator for example in Earth 2160 the occurrence of the word "Wine" (https://steamdb.info/depot/383398/ search for Wine in the search field) that 100% is not native Linux at all as it is in fact ran with a bundled version of Wine which is a Win32 to POSIX translation layer. Or in layman terms: It translated software written for Windows using Windows interfaces to use the appropriate Linux interfaces while still thinking they run on Windows. Also Wine has it's own DIrect3D to OpenGL translation layer called WineD3D. Just like eON is one.

Last edited by Vortex_Acherontic on 29 Mar 2024 at 12:52 pm UTC
CatKiller 29 Mar 2024
SteamDB is is not very precisely here. I often times saw devs to still re-package some DLLs or even exes out of accident or laziness with their Linux depots even though they weren't used.
You can have Linux-native .exe files. Windward, for example, is properly packaged and depoted, but ships an .exe file for the dedicated server (the client's executable gets an x86 filename extension). Still native. Filenames don't matter. C#/.Net is cross-platform because of Mono.
Vortex_Acherontic 29 Mar 2024
SteamDB is is not very precisely here. I often times saw devs to still re-package some DLLs or even exes out of accident or laziness with their Linux depots even though they weren't used.
You can have Linux-native .exe files. Windward, for example, is properly packaged and depoted, but ships an .exe file for the dedicated server (the client's executable gets an x86 filename extension). Still native. Filenames don't matter. C#/.Net is cross-platform because of Mono.

Yes but the issue remains, there is no clear way to tell if a games does this or not.

Mono is a cross platform C# compiler and runtime for Linux, Windows and MacOS.
DotNET is not. It serves as a C# compiler and runtime solely for Windows.
However .NET Core is in fact a cross-platform C# compile and runtime developed by Microsoft but Regular .NET is not.

But you can perfectly write C# code which does only run on Windows simply by calling OS specific functions or libraries from your C# code or stuff which is only implemented in .NET but not Mono or .NET Core.

Last edited by Vortex_Acherontic on 29 Mar 2024 at 1:11 pm UTC
CatKiller 29 Mar 2024
Yes but the issue remains, there is no clear way to tell if a games does this or not.

Mono is a cross platform C# compiler and runtime for Linux, Windows and MacOS.
DotNET is not. It serves as a C# compiler and runtime solely for Windows.
However .NET Core is in fact a cross-platform C# compile and runtime developed by Microsoft but Regular .NET is not.

But you can perfectly write C# code which does only run on Windows simply by calling OS specific functions or libraries from your C# code or stuff which is only implemented in .NET but not Mono or .NET Core.

Which is irrelevant to OP's fear that they're somehow being misled. Including Windows-specific stuff wouldn't make it "non-native," it would just make it not work.
whizse 29 Mar 2024
Just to add to the confusion. Adventure Game Studio games sometimes package the entire game, data and all, in one humongous .exe. Linux ports used to be shipped with this .exe, but it was not executed, just read as data.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register