Closed bacyco closed 1 year ago
You can run the game with the --log
command line parameter or just run it from a terminal. In the former case it will write out all the log messages, including the crash handler info if it ever gets there, into a file called pd.log
in the same directory as pd.ini
.
If the crash handler is completely bypassed by this crash, then the only option is to run it under GDB or another debugger.
Will do. thank you!
I'll probably just dump my error log here if it works to avoid opening up a brand new issue.
Alright, after restarting the problem area a few times I got one of the crashes to trigger, this is what the log file output:
version: dad5b3c (i686-windows) startup date: 23 Sep 2023 14:09:21 data dir: ./data save dir: . ROM file: pd.ntsc-final.z64 loading segment fontjpnsingle from ROM (offset 00194b20 pointer 226e2b40) loading segment fontjpnmulti from ROM (offset 0019fb40 pointer 226edb60) loading segment animations from ROM (offset 001a15c0 pointer 226ef5e0) loading segment mpconfigs from ROM (offset 007d0a40 pointer 22d1ea60) loading segment mpstringsE from ROM (offset 007d1c20 pointer 22d1fc40) loading segment mpstringsJ from ROM (offset 007d5320 pointer 22d23340) loading segment mpstringsP from ROM (offset 007d8a20 pointer 22d26a40) loading segment mpstringsG from ROM (offset 007dc120 pointer 22d2a140) loading segment mpstringsF from ROM (offset 007df820 pointer 22d2d840) loading segment mpstringsS from ROM (offset 007e2f20 pointer 22d30f40) loading segment mpstringsI from ROM (offset 007e6620 pointer 22d34640) loading segment firingrange from ROM (offset 007e9d20 pointer 22d37d40) loading segment fonttahoma from ROM (offset 007f7860 pointer 22d45880) loading segment fontnumeric from ROM (offset 007f8b20 pointer 22d46b40) loading segment fonthandelgothicsm from ROM (offset 007f9d30 pointer 22d47d50) loading segment fonthandelgothicxs from ROM (offset 007fbfb0 pointer 22d49fd0) loading segment fonthandelgothicmd from ROM (offset 007fdd80 pointer 22d4bda0) loading segment fonthandelgothiclg from ROM (offset 008008e0 pointer 22d4e900) loading segment sfxctl from ROM (offset 0080a250 pointer 22d58270) loading segment sfxtbl from ROM (offset 00839dd0 pointer 22d87df0) loading segment seqctl from ROM (offset 00cfbf30 pointer 23249f50) loading segment seqtbl from ROM (offset 00d05f90 pointer 23253fb0) loading segment sequences from ROM (offset 00e82000 pointer 233d0020) loading segment texturesdata from ROM (offset 01d65f40 pointer 242b3f60) loading segment textureslist from ROM (offset 01ff7ca0 pointer 24545cc0) loading segment copyright from ROM (offset 01ffea20 pointer 2454ca40) skipping segment fontjpn romdataInit: loaded rom, size = 33554432 memp heap at 24554020 - 25554020 rom file at 2254e020 - 2454e020 WARNING: GL: GL_INVALID_OPERATION WARNING: GL: GL_INVALID_OPERATION WARNING: GL: GL_INVALID_OPERATION WARNING: GL: GL_INVALID_OPERATION WARNING: GL: GL_INVALID_OPERATION WARNING: GL: GL_INVALID_OPERATION
Yeah, that is not going through the crash handler. It could be in your graphics driver, considering the last messages. The driver sure has a very concise way of describing the errors. What GPU model do you have? And what area are you getting these crashes in?
AMD Radeon RX 6600 XT
As for the crashes there's two circumstances that are reproducible for me, although what the exact conditions are to reproduce them is a complete guess. The first crash seems to be related to the player being killed, but that's as precise as I can describe it. It just quits in the middle of falling down in first person, but this occurs seemingly completely randomly.
The 2nd crash occurs in relation to cloaking devices, but again, exactly what circumstance causes the crash seems to be random. They can occur in multi-player but the most reliable places for me to reproduce them is Deep Sea: Nullify Threat or a Combat Simulation with cloaking devices.
Sure sounds like it's related to framebuffer effects then. I'll try to add something to increase the likelihood of GL debug output being useful.
I'll keep trying to get more detailed information from the crashes as updates continue as this seems to be a 'particular to me' issue.
Okay, you should now maybe be able to get more detailed GL debug output by running the game with --log --debug-gl
.
After the current Github Action finishes building of course.
Will do, thanks. Gotta wait a couple hours before I can test again, but my next comment should hopefully be a more detailed log
Alright, there doesn't seem to be much added to the log output, just in case I crashed the game 4 times. I originally saved them to a .txt file to keep the post neat, but I might as well just dump all 4 here:
version: bd113a5 (i686-windows) startup date: 24 Sep 2023 01:42:14 data dir: ./data save dir: . ROM file: pd.ntsc-final.z64 loading segment fontjpnsingle from ROM (offset 00194b20 pointer 2268ab40) loading segment fontjpnmulti from ROM (offset 0019fb40 pointer 22695b60) loading segment animations from ROM (offset 001a15c0 pointer 226975e0) loading segment mpconfigs from ROM (offset 007d0a40 pointer 22cc6a60) loading segment mpstringsE from ROM (offset 007d1c20 pointer 22cc7c40) loading segment mpstringsJ from ROM (offset 007d5320 pointer 22ccb340) loading segment mpstringsP from ROM (offset 007d8a20 pointer 22ccea40) loading segment mpstringsG from ROM (offset 007dc120 pointer 22cd2140) loading segment mpstringsF from ROM (offset 007df820 pointer 22cd5840) loading segment mpstringsS from ROM (offset 007e2f20 pointer 22cd8f40) loading segment mpstringsI from ROM (offset 007e6620 pointer 22cdc640) loading segment firingrange from ROM (offset 007e9d20 pointer 22cdfd40) loading segment fonttahoma from ROM (offset 007f7860 pointer 22ced880) loading segment fontnumeric from ROM (offset 007f8b20 pointer 22ceeb40) loading segment fonthandelgothicsm from ROM (offset 007f9d30 pointer 22cefd50) loading segment fonthandelgothicxs from ROM (offset 007fbfb0 pointer 22cf1fd0) loading segment fonthandelgothicmd from ROM (offset 007fdd80 pointer 22cf3da0) loading segment fonthandelgothiclg from ROM (offset 008008e0 pointer 22cf6900) loading segment sfxctl from ROM (offset 0080a250 pointer 22d00270) loading segment sfxtbl from ROM (offset 00839dd0 pointer 22d2fdf0) loading segment seqctl from ROM (offset 00cfbf30 pointer 231f1f50) loading segment seqtbl from ROM (offset 00d05f90 pointer 231fbfb0) loading segment sequences from ROM (offset 00e82000 pointer 23378020) loading segment texturesdata from ROM (offset 01d65f40 pointer 2425bf60) loading segment textureslist from ROM (offset 01ff7ca0 pointer 244edcc0) loading segment copyright from ROM (offset 01ffea20 pointer 244f4a40) skipping segment fontjpn romdataInit: loaded rom, size = 33554432 memp heap at 24501020 - 25501020 rom file at 224f6020 - 244f6020 WARNING: GL: (00001) GL_INVALID_OPERATION
version: bd113a5 (i686-windows) startup date: 24 Sep 2023 01:57:01 data dir: ./data save dir: . ROM file: pd.ntsc-final.z64 loading segment fontjpnsingle from ROM (offset 00194b20 pointer 221b7b40) loading segment fontjpnmulti from ROM (offset 0019fb40 pointer 221c2b60) loading segment animations from ROM (offset 001a15c0 pointer 221c45e0) loading segment mpconfigs from ROM (offset 007d0a40 pointer 227f3a60) loading segment mpstringsE from ROM (offset 007d1c20 pointer 227f4c40) loading segment mpstringsJ from ROM (offset 007d5320 pointer 227f8340) loading segment mpstringsP from ROM (offset 007d8a20 pointer 227fba40) loading segment mpstringsG from ROM (offset 007dc120 pointer 227ff140) loading segment mpstringsF from ROM (offset 007df820 pointer 22802840) loading segment mpstringsS from ROM (offset 007e2f20 pointer 22805f40) loading segment mpstringsI from ROM (offset 007e6620 pointer 22809640) loading segment firingrange from ROM (offset 007e9d20 pointer 2280cd40) loading segment fonttahoma from ROM (offset 007f7860 pointer 2281a880) loading segment fontnumeric from ROM (offset 007f8b20 pointer 2281bb40) loading segment fonthandelgothicsm from ROM (offset 007f9d30 pointer 2281cd50) loading segment fonthandelgothicxs from ROM (offset 007fbfb0 pointer 2281efd0) loading segment fonthandelgothicmd from ROM (offset 007fdd80 pointer 22820da0) loading segment fonthandelgothiclg from ROM (offset 008008e0 pointer 22823900) loading segment sfxctl from ROM (offset 0080a250 pointer 2282d270) loading segment sfxtbl from ROM (offset 00839dd0 pointer 2285cdf0) loading segment seqctl from ROM (offset 00cfbf30 pointer 22d1ef50) loading segment seqtbl from ROM (offset 00d05f90 pointer 22d28fb0) loading segment sequences from ROM (offset 00e82000 pointer 22ea5020) loading segment texturesdata from ROM (offset 01d65f40 pointer 23d88f60) loading segment textureslist from ROM (offset 01ff7ca0 pointer 2401acc0) loading segment copyright from ROM (offset 01ffea20 pointer 24021a40) skipping segment fontjpn romdataInit: loaded rom, size = 33554432 memp heap at 24038020 - 25038020 rom file at 22023020 - 24023020 WARNING: GL: (00001) GL_INVALID_OPERATION
version: bd113a5 (i686-windows) startup date: 24 Sep 2023 02:04:26 data dir: ./data save dir: . ROM file: pd.ntsc-final.z64 loading segment fontjpnsingle from ROM (offset 00194b20 pointer 22e39b40) loading segment fontjpnmulti from ROM (offset 0019fb40 pointer 22e44b60) loading segment animations from ROM (offset 001a15c0 pointer 22e465e0) loading segment mpconfigs from ROM (offset 007d0a40 pointer 23475a60) loading segment mpstringsE from ROM (offset 007d1c20 pointer 23476c40) loading segment mpstringsJ from ROM (offset 007d5320 pointer 2347a340) loading segment mpstringsP from ROM (offset 007d8a20 pointer 2347da40) loading segment mpstringsG from ROM (offset 007dc120 pointer 23481140) loading segment mpstringsF from ROM (offset 007df820 pointer 23484840) loading segment mpstringsS from ROM (offset 007e2f20 pointer 23487f40) loading segment mpstringsI from ROM (offset 007e6620 pointer 2348b640) loading segment firingrange from ROM (offset 007e9d20 pointer 2348ed40) loading segment fonttahoma from ROM (offset 007f7860 pointer 2349c880) loading segment fontnumeric from ROM (offset 007f8b20 pointer 2349db40) loading segment fonthandelgothicsm from ROM (offset 007f9d30 pointer 2349ed50) loading segment fonthandelgothicxs from ROM (offset 007fbfb0 pointer 234a0fd0) loading segment fonthandelgothicmd from ROM (offset 007fdd80 pointer 234a2da0) loading segment fonthandelgothiclg from ROM (offset 008008e0 pointer 234a5900) loading segment sfxctl from ROM (offset 0080a250 pointer 234af270) loading segment sfxtbl from ROM (offset 00839dd0 pointer 234dedf0) loading segment seqctl from ROM (offset 00cfbf30 pointer 239a0f50) loading segment seqtbl from ROM (offset 00d05f90 pointer 239aafb0) loading segment sequences from ROM (offset 00e82000 pointer 23b27020) loading segment texturesdata from ROM (offset 01d65f40 pointer 24a0af60) loading segment textureslist from ROM (offset 01ff7ca0 pointer 24c9ccc0) loading segment copyright from ROM (offset 01ffea20 pointer 24ca3a40) skipping segment fontjpn romdataInit: loaded rom, size = 33554432 memp heap at 24cba020 - 25cba020 rom file at 22ca5020 - 24ca5020 WARNING: GL: (00001) GL_INVALID_OPERATION WARNING: GL: (00001) GL_INVALID_OPERATION WARNING: GL: (00001) GL_INVALID_OPERATION WARNING: GL: (00001) GL_INVALID_OPERATION WARNING: GL: (00001) GL_INVALID_OPERATION WARNING: GL: (00001) GL_INVALID_OPERATION
version: bd113a5 (i686-windows) startup date: 24 Sep 2023 02:11:49 data dir: ./data save dir: . ROM file: pd.ntsc-final.z64 loading segment fontjpnsingle from ROM (offset 00194b20 pointer 22071b40) loading segment fontjpnmulti from ROM (offset 0019fb40 pointer 2207cb60) loading segment animations from ROM (offset 001a15c0 pointer 2207e5e0) loading segment mpconfigs from ROM (offset 007d0a40 pointer 226ada60) loading segment mpstringsE from ROM (offset 007d1c20 pointer 226aec40) loading segment mpstringsJ from ROM (offset 007d5320 pointer 226b2340) loading segment mpstringsP from ROM (offset 007d8a20 pointer 226b5a40) loading segment mpstringsG from ROM (offset 007dc120 pointer 226b9140) loading segment mpstringsF from ROM (offset 007df820 pointer 226bc840) loading segment mpstringsS from ROM (offset 007e2f20 pointer 226bff40) loading segment mpstringsI from ROM (offset 007e6620 pointer 226c3640) loading segment firingrange from ROM (offset 007e9d20 pointer 226c6d40) loading segment fonttahoma from ROM (offset 007f7860 pointer 226d4880) loading segment fontnumeric from ROM (offset 007f8b20 pointer 226d5b40) loading segment fonthandelgothicsm from ROM (offset 007f9d30 pointer 226d6d50) loading segment fonthandelgothicxs from ROM (offset 007fbfb0 pointer 226d8fd0) loading segment fonthandelgothicmd from ROM (offset 007fdd80 pointer 226dada0) loading segment fonthandelgothiclg from ROM (offset 008008e0 pointer 226dd900) loading segment sfxctl from ROM (offset 0080a250 pointer 226e7270) loading segment sfxtbl from ROM (offset 00839dd0 pointer 22716df0) loading segment seqctl from ROM (offset 00cfbf30 pointer 22bd8f50) loading segment seqtbl from ROM (offset 00d05f90 pointer 22be2fb0) loading segment sequences from ROM (offset 00e82000 pointer 22d5f020) loading segment texturesdata from ROM (offset 01d65f40 pointer 23c42f60) loading segment textureslist from ROM (offset 01ff7ca0 pointer 23ed4cc0) loading segment copyright from ROM (offset 01ffea20 pointer 23edba40) skipping segment fontjpn romdataInit: loaded rom, size = 33554432 memp heap at 23ee5020 - 24ee5020 rom file at 21edd020 - 23edd020 WARNING: GL: (00001) GL_INVALID_OPERATION
On a potentially different side note, something is bugged with NPC movement causing unexplained slowdowns. The video included just shows Elvis but repeated testing shows this affects every NPC for me.
https://github.com/fgsfdsfgs/perfect_dark/assets/144067266/4ee85eb9-2262-4a2b-b09d-b9b730e2c97d
AMD's GL implementation sure has useful error messages, damn. Even with everything enabled it's still just GL_INVALID_OPERATION
.
The movement speed thing might be fixed now that I rolled back the trig change. If the crash still happens in the new build, your only options of diagnosing it are either run it under GDB or WinDbg or something, or maybe look in the Windows Event Viewer for pd.exe crashes.
The movement speed is definitely fixed in the last update. However the log still outputs the useless error. Windows Event Viewer seems to be giving me just as useless results with:
Faulting package full name: Faulting package-relative application ID: Hang type: Unknown
Is there anything particularly of use I might be able to extract with event viewer here or should I try one of the other two?
EDIT:
there seems to be some relation to something the computer dubs a "security error" in relation to Local Activation permission for "COM Server application" giving me CLSID and APPID strings telling me "LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool."
Yeah no, if it doesn't have "Fault address" in there it's useless. Setting up GDB might be quite a bit of work, as you'd need MSYS2 and other crap, so you could try getting WinDbg from here or from here and running the game through it until it crashes. However I haven't used it myself, so I can't really help you with it.
Oof. I'll get on that asap. I might opt for GBD as I already have MSYS2, and just seeing the pattern already I'm likely gonna end up going through both options anyway just to try to get to the root of the issue, but whichever one works it'll probably take me a while to post the results.
Oh, if you already have it, then you can run the MINGW32 shell, then execute this:
pacman -S mingw-w64-i686-gdb
then cd
to the directory where the game is, then
gdb pd.exe
r
and after it crashes do bt
and show me the output. Assuming it doesn't crash out of gdb.
Well this is weird, it tells me two of the packages are corrupt or invalid so it won't let me install gdb. specificallly "File /var/cache/pacman/pkg/mingw-w64-i686-bzip2-1.0.8-2-any.pkg.tar.zst" and "File /var/cache/pacman/pkg/mingw-w64-i686-termcap-1.3.1-6-any.pkg.tar.zst"
Just do rm -rf /var/cache/pacman
, then pacman -Sy
and retry.
I had to reinstall MSYS2 from scratch but I finally got it to work. And of course now I can't get PD to crash. I'll keep at it till I can post a crash log
Edit:
Alright, after repeated testing including setting up an extensive free for all perfect sim game with nothing but cloaks and RCP-120s, I've been experiencing no more crashes. However, I have some better educated guesses as to what was going on:
cd
to the folder faster for GDB)I'm going to keep trying to force the expected crashes but until I can get an actual crash log, these are the only ideas I can logically point to. I'm very reluctant to call this solved until a couple days go by without the crash occurring as nothing I listed above makes sense to me for a solution.
The game does not depend on MSYS2 and comes with all the DLLs it needs. Unless you were building it yourself of course, or running it from within MSYS2 before. The paths should not be a problem either.
It could be that it just doesn't crash under GDB. It could also be that it only crashes with GL debug enabled, in which case you can try running it with r --debug-gl
instead of just r
. If the latter is the case, then you should be good now that it's possible to run it without --debug-gl
.
Whichever one of those options it is, (I suspect running it under GDB is what did it) the game runs quite well now even without a terminal or GDB. I even booted up an older version I was sure would crash without any debuggers or parameters and it ran fine without issues.
This might have been solved but in the weirdest way and I'm not gonna pretend to understand what exactly changed.
Could be a certified AMD driver moment. I'll leave this up for a while, post here if you get another crash. Thanks for testing.
I've been testing on and off and I haven't had any more crashes. I'm gonna call this fixed at this point. Thank you so much for the help.
I can't get the crash handler to function after many attempts, I'm hopeful a crash log that gets dumped in a .txt file would be useful in my instance. Something keeps crashing the game and interfering with the already implemented crash handler so I can't provide any relevant information besides the basic "my game crashed" and that I'm on AMD if that matters.
I have high hopes it's related to issue #180, as a divide by zero error might be just the thing to time my graphics drivers out every single time it crashes. Just in case it's not, a crash log would definitely help figure out the problem since I can't get the handler to activate.