protonscr

Spectromancer

protonclosed appid 22500Game compatibility - Unofficial
ValveSoftware/Proton#8244 · opened 2024-11-14 by kellydornhaus · updated 2024-11-14 · 2 comments · github · game page · search this game
Kkellydornhaus 2024-11-14 github
  • Name of the game with compatibility issues: Spectromancer
  • Steam AppID of the game: 22500
  • Proton version: 9.0-3 and Experimental

Symptoms

I recently have become interested in producing an update to an old video game that is on Steam. The current version of the game runs fine on Steam Deck.

However the build tools used to compile it are no longer available. This game is written in Pascal and I am building in FreePascal with Lazarus. That is, I am compiling the same basic game but with new tools as the old tools are not available.

The new build runs on Windows, but crashes during startup on the Steam Deck when Direct3DCreate8 is called.

In order to reproduce I created a small test app that only goes through the DirectX initialization process and does nothing else.

The process successfully calls LoadLibrary on D3d8.dll and gets the address of Direct3DCreate8, then call it. Direct3DCreate8 does a fair bit of work before eventually crashing.

I've attached the PROTON log: steam-13139970551109910528.log

A Dependency Walker log, which shows Direct3DCreate8 doing a lot of work before eventually crashing: dependencywalker.txt

As well as Steam's System Runtime Diagnostics, System Report, and System Info:
system-runtime-diganostics.txt
system-report.txt
system-info.txt

Reproduction

  • Opt into the DeckTest branch of Spectromancer using the password ProtonDeckTest
  • Run the app. You should see messageboxes saying "Before start...", "Step 1", and then it will crash as it calls Direct3DCreate8 at Step1. (There are 5 more steps after that and then it ends with "All right" which all works on windows but not on Steam Deck.)
Kkisak-valve maintainer 2024-11-14 github

Hello @kellydornhaus, warn:seh:dispatch_exception backtrace: --- Exception 0xc00002b5 at 0xe8185eda: /usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu/dri/radeonsi_dri.so + 0x785eda. in your Proton log looks like a floating point exception in the radeonsi OpenGL driver.

I'd test if the not-yet-default DXVK render path is healthier with the game's launch options set to PROTON_DXVK_D3D8=1 %command%.

Kkellydornhaus 2024-11-14 github

Wow, what an amazingly prompt response. It worked, thank you so much.

Launch options

Launch lines

DLLs

Error codes