atom0s / Steamless

Steamless is a DRM remover of the SteamStub variants. The goal of Steamless is to make a single solution for unpacking all Steam DRM-packed files. Steamless aims to support as many games as possible.
Other
3.12k stars 195 forks source link

meet problem with steamapi init #44

Closed gloomy-lyre closed 3 years ago

gloomy-lyre commented 3 years ago

I've bought a game on steam,and I use steamless to remove drm for some offline injection. Though the steamless says that the unpack is successful,when I tried to launch the game without steam,there popped a window saying that:"steam setup:steam must be running to play this game(steamapi_init()failed)" Bur when I tried to launch the unpacked exe inside steam ,it still works What does this message means?the readme says that it will not remove the layers on steamapi ,but I've already had a valid one,confused

OdinVex commented 3 years ago

The game is attempting to call Steam APIs and with the Steam Stub having been removed it won't be able to call them (the pointers are not set up). Removing SteamDRM alone is not enough for most games. You need to emulate Steam's API which is beyond the scope of what can be shared here.

atom0s commented 3 years ago

Though the steamless says that the unpack is successful,when I tried to launch the game without steam,there popped a window saying that:"steam setup:steam must be running to play this game(steamapi_init()failed)"

Depending on the stub version there are two means of this causing an error.

The first is when the stub is setup to initialize steam_api.dll/steam_api64.dll and the game then assumes it'll be set already and just attempts to reference the initialized data.

The second is when the API is looking to ensure the environment variable for the SteamAppID is set. When the stub is loading, it'll set some environment variables letting steam assume that the game is registered and loaded properly.

You can generally fix this instance by creating a .bat script to run the game and do the following:

@echo off
set SteamAppId=YOUR_GAME_STEAM_APP_ID
start GAME_EXE_NAME.exe

This is ultimately not a bug with Steamless though, it has unpacked the game as expected.

gloomy-lyre commented 3 years ago

1.I've tried steamless on another game ,and it doesnt work either .Both the version of steam stub is 3.1. 2.Then i tried bat like this : @echo off set SteamAppId =588650 start dealcells.exe but both of games didn't work (init fail) seems like bat don' t affect it .May you give some suggestions? 3.By the way, it seems that few people put forward question about this problem .Is this a rarely-met problems? looking forward to your guide.thanks

atom0s commented 3 years ago

I do not assist with piracy. Emulating steam_api is not part of this project and never will be.

gloomy-lyre commented 3 years ago

@atom0s Surely i'am not and i' won't use this in piracy .I' ve already bought it and I will only use it myself to skip steam launch .May you answer other questions for me ?Thanks .

OdinVex commented 3 years ago

@atom0s Surely i'am not and i' won't use this in piracy .I' ve already bought it and I will only use it myself to skip steam launch .May you answer other questions for me ?Thanks .

It has already been said that it is beyond the scope of this repo/project. Recommending to close issue.

gloomy-lyre commented 3 years ago

Now I know the other steps and the reason for not saying this.Thanks,i feel sorry for not having search for more info about this and my unconsidered remark.