Adding a steam_api override to "Native, Builtin" has been tested and also did nothing.
EDIT:
See this file for reference as to what the game's using:
The wrong version somehow gets loaded.
The problem can be reproduced with the native steamclient.
For this it's required to take the 100 version of the SDK,
and replace isteamuserstats.h with the one from 99y.
Example invocation:
g++ -g -I/home/patrick/Git/proton-build/src-lsteamclient/steamworks_sdk_special -m32 -Wall steamclient_test.cpp /home/patrick/steamclient.so
Log with WINEDEBUG=steamclient
#include <stdio.h>
#include "isteamclient.h"
#include "isteamuserstats.h"
extern "C"
{
void *CreateInterface(const char *name, int *return_code);
}
int main(int argc, char *argv[])
{
int return_code = 0;
ISteamClient *pSteamClient = (ISteamClient *)CreateInterface("SteamClient007", &return_code);
HSteamPipe hSteamPipe = pSteamClient->CreateSteamPipe();
HSteamUser hSteamUser = pSteamClient->ConnectToGlobalUser(hSteamPipe);
if (pSteamClient == nullptr)
{
return 1;
}
printf("pSteamClient: %p\n", pSteamClient);
ISteamUserStats *pUserStats = (ISteamUserStats *)pSteamClient->GetISteamUserStats(hSteamUser, hSteamPipe, "STEAMUSERSTATS_INTERFACE_VERSION002");
if (pUserStats == nullptr)
{
printf("Failed to receive user stats\n");
return 1;
}
printf("pUserStats: %p\n", pUserStats);
CGameID id(13000);
bool bSuccess = pUserStats->RequestCurrentStats(id);
if (!bSuccess)
{
printf("Failed to receive current stats\n");
return 1;
}
printf("Everything OK\n");
return 0;
}
The resulting binary crashes at the same spot.
Passing a reference (pointer) to CGameID instead of CGameID appears to work. There seems to be an issue with CGameID being dereferenced in the code by steamclient.so.
Probably needs to be fixed in Steam(?)
WINEDEBUG=steamclient](https://github.com/user-attachments/files/21874331/steam-13000.log)x1 2025-08steam_api.dllx1 2025-08
Compatibility Report
System Information
I confirm:
steam-13000.log
Symptoms
Starting up the game instantly crashes
Reproduction
Press play
Analysis
The game uses a custom steam_api.dll using probably an obsolete version of ISteamUserStats.
(strings suggest STEAMUSERSTATS_INTERFACE_VERSION002).
The calls for example to presumably GetAchievement (vtable+0x24) always pass app id and zero as the first two parameters.
Publically available documentation implies that passing these values is unexpected.
Code within the provided function by SteamClient crashes the game, whilst dereferencing the app id, as if it was a pointer.
My gut feeling is, that the wrong steam_api.dll gets loaded.
System info should be unnecessary, but is provided as pro forma.