protonscr

Knuckle Sandwich Demo

protonopen appid 2121940Game compatibility - Unofficial
ValveSoftware/Proton#6526 · opened 2023-02-12 by londiebrondie · updated 2023-11-23 · 12 comments · github · game page · search this game
Llondiebrondie 2023-02-12 github

Compatibility Report

  • Name of the game with compatibility issues: Knuckle Sandwich Demo
  • Steam AppID of the game: 1012570 (Full Game), 2121940 (Demo, the one I'm using)

System Information

  • GPU: 8 RDNA 2 CUs, 1.0-1.6GHz (up to 1.6 TFlops FP32)
  • Driver/LLVM version: Unknown/Steam Deck Default
  • Kernel version: 5.13.0-valve36-1-neptune
  • Proton version: Proton Experimental
  • NOTE: This is a Steam Deck

I confirm:

  • [x] that I haven't found an existing compatibility report for this game.
  • [x] that I have checked whether there are updates for my system available.

Symptoms

Before you get in-game, you have the option to "Play from the Beginning" or "Skip to Chapter 1". If you select "Play from Beginning", the game runs fine until reach the "Space Cleaner" minigame (it crashes). If you choose the "Skip to Chapter 1" option, the game crashes while attempting to load in the map. In the log I included, I choose the "Skip to Chapter 1" option.

Log

steam-2121940.log

Reproduction

  1. Boot into the game using Proton
  2. When given the option, do not change any settings
  3. When given the option to, "Skip to Chapter 1"
  4. Wait for the game to crash! It only takes a few seconds :)

Suspicions

My major suspicion is that using dxvk-2.1 is breaking the game, and that dxvk-2.0 will fix the game. Where did I get this idea? Well, I tried using bottles (with sys-wine 7.0.1 and dxvk 2.0) and it ran just fine. If I switched to dxvk 2.1 however, the game would crash. I would definitely compile a custom version of proton with dxvk-2.0 to test my theory, but I unfortunately don't know how to do that.

Kkisak-valve maintainer 2023-02-12 github

Hello @londiebrondie, these look like some lines of interest from the log:

FATAL ERROR in Vertex Shader compilation

ShaderName: blur_shdr


memory:67:25: E5005: Function "transpose" is not defined.


at gml_Object_clouds_Draw_0
Kkisak-valve maintainer 2023-02-12 github
Llondiebrondie 2023-02-12 github

Alright @kisak-valve, thanks for your input. What happens now?

BBlisto91 2023-02-13 github

If that's the issue then it will likely get pulled in in a future proton update.

Llondiebrondie 2023-02-16 github

This is important, so please read it @kisak-valve. I've solved the problem, I've found the stinky file.
I found out that, in order to get the game to work, you need to replace the /syswow64/d3dcompiler_43.dll included in Proton Experimental with the d3dcompiler_43.dll that's included in bottles. I noticed that the d3dcompiler43_.dll in Proton Experimental is 380.4 KiB (389,558), meanwhile the d3dcompiler_43.dll in bottles is 2.0 MiB (2,106,216). Maybe the one in Proton Experimental is outdated? I don't know exactly where the bottles app gets its d3dcompiler files from, but something tells me you'd find it on this page: https://usebottles.com/database/dependencies/

Keep me updated on what happens please 👍

BBlisto91 2023-02-16 github

Those bottles dependencies are the native Windows ones

Llondiebrondie 2023-02-16 github

Those bottles dependencies are the native Windows ones

Weird, then why does the game work with that .dll file?

BBlisto91 2023-02-16 github

Because there is a bug or missing implementation with the one Proton (wine) provides.
Afaik there have been some upstream work on these dll's since Proton 7 was made. So perhaps if we are lucky it'll work with Proton 8 which will be based on upstream wine 8.x

Llondiebrondie 2023-11-12 github

NOTE: This has not been fixed yet. The full game releases in a few weeks.

Hhdkronke 2023-11-22 github

I encountered this exact issue while playing the full version of Knuckle Sandwich. I hope this gets fixed soon!

Llondiebrondie 2023-11-23 github

Potential solution here: https://steamcommunity.com/app/1012570/discussions/0/4039227870118935892/

Yes this solution works because I made it and they just took it :joy:
At least they linked to my original message

Proton versions

DLLs