protonscr

Crazy Machines 3

protonclosed appid 351920Game compatibility - UnofficialXAudio2
ValveSoftware/Proton#3205 · opened 2019-11-10 by klangman · updated 2024-08-15 · 17 comments · github · game page · search this game
2 matching comments, n / p to jump
Kklangman 2019-11-10 github

Compatibility Report

  • Name of the game with compatibility issues: Crazy Machines 3
  • Steam AppID of the game: 351920

System Information

  • GPU: GTX 750 Ti
  • Driver/LLVM version: nvidia 440.26
  • Kernel version: 5.3.0
  • Link to full system information report as Gist:
  • Proton version: 4.11-8

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.

steam-351920.log

Symptoms

Fails on startup.

Reproduction

Remove the following line from file cm3.ini: StartupMovies = "Movies/loading.mp4" (work-around for different issue) then try and start the game. You should find that it works with Proton 4.11-7 but fails to start with 4.11-8

Aalasky17 2019-11-11 github

@klangman I am seeing the same error as you, but the failure happens even when I go back to older proton versions including 4.2-9. Could you try switching to 4.2-9 to verify if you are still seeing the failure there? For a clean test, please temporarily move your old compatdata folder so that the test will be in a clean prefix (....../steamapps/compatdata/351920). You can delete the newly created folder and replace it with your old one after the test to prevent losing game data :)

Kklangman 2019-11-11 github

@klangman I am seeing the same error as you, but the failure happens even when I go back to older proton versions including 4.2-9. Could you try switching to 4.2-9 to verify if you are still seeing the failure there? For a clean test, please temporarily move your old compatdata folder so that the test will be in a clean prefix (....../steamapps/compatdata/351920). You can delete the newly created folder and replace it with your old one after the test to prevent losing game data :)

I forced 4.2-9 before I submitted the issue and found it working. I then switched back to 4.11-8 in order to generate a proton log of the failure for this issue report. I'll try moving compatdata tonight when I get home and report what happens on my machine.

Aalasky17 2019-11-11 github

@klangman Thank you for checking! That makes the behavior I am seeing even stranger since the logs look the same.

If you confirm that the behavior is still good on 4.2-9 with the old prefix, could you take a log of the failure with 4.11-8 with +relay,+steamclient,+dxgi logging channels added? (This can be done by editing user_settings.py in the steam common/Proton 4.11 folder.)

Also, I cannot see the full system report gist that you linked above. Would you mind re-linking it?

Kklangman 2019-11-12 github

Could you try switching to 4.2-9 to verify if you are still seeing the failure there? For a clean test, please temporarily move your old compatdata folder so that the test will be in a clean prefix (....../steamapps/compatdata/351920).

I moved ..../steamapps/compatdata/351920 to back it up and ran again with 4.2-9, it worked perfectly. I also reinstalled the game and again it worked well with 4.2-9. Went back to 4.11-8 and again it crashed.

I ran with the extra channels in user_settings.py and here is the new log:

steam-351920.log.tar.gz

I do the gist report tomorrow.

Aalasky17 2019-11-13 github

@klangman Thank you for the log! I have one more favor to ask for now, just to confirm that we are seeing the same issue as you. Could you try putting the following line into the launch options for the game to see if it fixes the launch failure on 4.11-8?
WINEDLLOVERRIDES="dxgi=n" %command%

Kklangman 2019-11-14 github

WINEDLLOVERRIDES="dxgi=n" %command%

@alasky17 Yes, with that option in place the games runs using Proton 4.11-8

Aalasky17 2019-11-14 github

@klangman Thank you for the confirmation!

Aaeikum 2019-11-19 github

I've added a hack to fix this without the override in the next Proton release.

I thought the technical details were interesting, so if you're curious, here they are. The crash is caused by the game reading uninitialized memory. I couldn't 100% confirm why it does that, but I suspect it is related to our missing Media Foundation support (the crashing code belongs to the FGameMoviePlayer class). However, the game does check for NULL before dereferencing the uninitialized value that it reads. By accident of memory allocation, the uninitialized memory happens to contain the GPU Description string read earlier from DXGI. If your GPU string is long enough, the game will try to dereference some wide character string and crash. See rcx=0065004700200041 in the original bug report. That string is "A Ge", which is a substring of your full device string: NVIDIA GeForce GTX 750 Ti.

DXVK's DXGI incorrectly reports the GPU string as just GeForce GTX 750 Ti, while Wine's DXGI reports it correctly as NVIDIA GeForce GTX 750 Ti. Wine's string happens to be long enough to fill the uninitialized memory with WCHAR ASCII instead of NULL. So Wine crashes where DXVK didn't. This also explains why @alasky17 always saw the crash even before 4.11-8. Her GPU string is AMD RADV POLARIS10 (LLVM 8.0.0), which is long enough to trigger the crash even on DXVK.

Anyway I added a hack just for this game which sets the GPU Description to the empty string to work around this. The game doesn't seem to use this value outside of dumping it in its log file, so I think it's safe. Hopefully we can remove the hack when our Media Foundation support matures and fixes this probably (assuming that is actually the problem).

Kklangman 2019-11-19 github

@aeikum Thanks for the details. If I was looking closer I might have noted the contents of rcx looked like UTF16 characters, but they are backwards due to little-endianness I suppose. Glad to hear it will be fixed in the next release. Thanks again!

Aaeikum 2019-11-28 github

This should be working again without the WINEDLLOVERRIDES workaround in 4.11-9. Thanks for reporting!

Kklangman 2019-12-04 github

4.11-9 worked for me. Thanks!

GGabrielSieben 2020-02-09 github

I'm on GTX 1050 with Pop!_OS and Proton 5.0. I still have removed the line from file cm3.ini: StartupMovies = "Movies/loading.mp4". Settings are all set to High, Antialiased, 1920x1080, and I get about 30-40FPS avg. Not exactly great, but completely playable.

MMartinX3 2022-09-23 github

Not working with proton experimental.
I removed the video from the .ini file.

Forced to run with Proton 6.3-8 and it works.

Llongusnickus 2023-02-09 github

Forced to run with Proton 6.3-8 and it works.

i tried CM3 with proton 7. crashed. tried it now again with 7.0..6. crashed
force 6.3. IT WORKS
switched back to 7. still working

Aalasky17 2023-02-09 github

@MartinX3 @longusnickus Where exactly is the game crashing? On launch? Could you please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

MMartinX3 2023-02-10 github
Aalasky17 2023-02-13 github

@MartinX3 Thank you! Unfortunately that did not help explain why the game is crashing for you and not for me :/ If you are able to grab a log of the game crashing (PROTON_LOG=1 %command% in the launch options, log will be created by default as ~/steam-351920.log) then maybe we could figure out what is going on here. I think in order to do that, you might need to temporarily move the working prefix from 6.3-8 since it sounds like the game is working for you now after switching to 6.3-8 temporarily? Instead of deleting the prefix, you can just rename it and then move it back after testing on 7.0 with a fresh prefix. I don't want you to accidentally mess up your game if it is working, so please only try at your own risk, or if the game starts crashing again.

Proton versions

Launch options

Launch lines