dethrace-labs / dethrace

Reverse engineering the 1997 game "Carmageddon"
https://twitter.com/dethrace_labs
GNU General Public License v3.0
669 stars 38 forks source link

[github-actions-build] Couldn't open keymap file #330

Open nistvan86 opened 1 year ago

nistvan86 commented 1 year ago

I was about to test win64 build at https://github.com/dethrace-labs/dethrace/actions/runs/5019323827 If I enter the configuration menu and try to change to any of the layouts the game crashes, and in the log I can see an error.

Failed to open "d:\tmp\dethrace/DATA/KEYMAP_0.TXT"Couldn't open Key Map file

This works with the same game files if I replace it with the 0.6.0 release of dethrace.

madebr commented 1 year ago

Can you try the executable that is built by the actions of https://github.com/dethrace-labs/dethrace/pull/331? It won't fix the error, but should print more information about why the file could not be opened.

It might also be useful to tell us what steps you're doing in dethrace, as detailed as possible.

nistvan86 commented 1 year ago
Failed to open "d:\tmp\dethrace/DATA/KEYMAP_0.TXT" (Permission denied)
Couldn't open Key Map file

This is rather strange as I do nothing else than overwriting the three files coming from the zip inside the game folder. I do the same restoring with the 0.6.0 zip and it starts to work correctly again.

Interestingly enough it still fails with permission denied if I launch the newer exe it with admin privileges.

madebr commented 1 year ago

I can reproduce the error on Linux when I make DATA/KEYMAP_0.TXT read-only (chmod a-w KEYMAP_*.TXT). Can you verify the file permissions?

nistvan86 commented 1 year ago

I see nothing out of ordinary with the files, authenticated users on the system have full access over them.

As I've said I'm using the exact same game files with the 0.6.0 and the github built version, I'm only replacing dethrace.exe, dethrace.pdb, sdl2.dll files in the game directory with either zip variant. With 0.6.0 it can load the keymap, with the other one it cannot. The game files are from the GoG installer of the game. Actually it's enough to swap the dethrace.exe, as it still launches with the 0.6.0 dethrace.pdb and sdl2.dll files, this already shows this symptom.

I've checked and no other dethrace.exe is running on the system. Also tried adding the whole folder to Windows Defender's exclusion list but it still doesn't work. (I think it would completely block the execution if it finds it malicious, not just selective block some operations)

Now that I've checked it's not just the keymap file, but also the save games. It just don't crash the game when I try to save the game, but the next time I go to load game, it reverts back to the previous state in that slot.

I'm out of ideas what this could be.

Squall-Leonhart commented 1 year ago

Definitely an issue introduced with more recent changes, I'll start bisecting once i get the build environment setup.