Hello everyone,
first time reporting a bug on the forum. Let me know if I've missed anything.
Issue
I'm having an issue playing the mod for Doom2 "PsychoPhobia" (v2.25) on modern versions of GZDoom.
Gzdoom versions till
4.11.3a (included) loaded the mod files without issues.
Starting from
4.12.0 (included), gzdoom crash on start with the following error
Code: Select all
Code: C0000005 (Access Violation - tried to read address 0000000000000008)
I've tried the following versions:
Note: In this post due to the 3 file limit, I just attached
4.12.0,
4.14.2 and
4.15pre-407-g9b44f2315 crash reports, as they seemed the more relevant versions. Let me know if you need also the other ones.
- 4.11.3a -> Working, so no crash report
- 4.12.0 -> First version to crash
- 4.12.1
- 4.12.2
- 4.13.0
- 4.14.2 -> Latest stable
- 4.15pre-407-g9b44f2315 -> Latest build at the time I'm writing this post
I did all the test runs on my
Windows 10 laptop, because I could use the .bat provided by the mod for loading, but the same issue appears also under my
PopOS 22.04 desktop.
I did re-download both mod and gzdoom to exclude this issue was due some kind of file corruption / gzdoom misconfiguration.
One weird thing about PsychoPhobia files, is that while all files have a
.pk3 extension, actually some of them are
7z archive, so the correct extension should be
.pk7 or
.7z.
Tried to rename those file with the more appropriate
.pk7 extension, but it didn't make any difference.
Workaround
I tried to repackage the files from the
7z archive to a real
.pk3 by extracting the content with 7zip to a folder, and then re-compressing it in a
.zip file, then I changed the extension to
.pk3, and it worked! After this file format change I was able to play PsychoPhobia also with version
4.14.2. (On both Windows and Linux)
Experimenting
Since the repackaging was successful, I tried repackage the mod once again, but in a fresh
7z archive (with a
.pk7 extension), thinking that maybe the original archive had some issues. The new one still crashed.
Making a plain 7z file, with like just a DECORATE lump did not crash.
So it seems that is something related to gzdoom 7z handling, but ONLY in particular cases, like this one.
Potential "suspect"
Looking for clues in the changelog for the first version that crashed, 4.12.0 (
https://zdoom.org/wiki/GZDoom_version_history#4.12.0), this line caught my attention:
Update LZMA SDK to 23.01
as if I'm not mistaken is the LZMA SDK is used integrate 7z compression into third-party softwares. Could be this update the root cause of this issue?
How to reproduce the issue
The mod files to be loaded are (the batch in the mod will do it for you):
Spoiler:
- PsychoPhobia.pk3
- PsychoPhobia_3d_ammo.pk3
- PsychoPhobia_3d_decorate.pk3
- PsychoPhobia_3d_gibs.pk3
- PsychoPhobia_3d_nature.pk3
- PsychoPhobia_3d_pickups.pk3
- PsychoPhobia_3d_projectiles.pk3
- PsychoPhobia_3d_weapons.pk3
- PsychoPhobia_HiResFont.pk3
- PsychoPhobia_ShellsStay_3d.pk3
Step-by-step bug reproduction (Windows 10)
Spoiler:
- Download Doom2: PsychoPhobia v.2.25 from https://www.moddb.com/mods/psychophobia ... obia-v-220 (Apologies for the huge file size, I wasn't able to reproduce the issue with a smaller example...).
- Extract the .RAR file content in a dedicate folder. Eg, let's assume the folder is C:/PsychoPhobia_V_2_25/.
- Navigate to C:/PsychoPhobia_V_2_25/GZDoom_1_5_06/.
- Inside that folder you will find the old gzdoom version the mod was shipped with. Delete everything inside the folder except the PsychoPhobia, which contains the batch file to run the mod.
- Download any version of gzdoom after 4.12.0 (included). Eg: 4.14.2.
- Extract the content inside C:/PsychoPhobia_V_2_25/GZDoom_1_5_06/, this way we are replacing the original gzdoom version with the new one, so we can leverage the original batch for -file loading
- Copy your copy of doom2.wad inside C:/PsychoPhobia_V_2_25/GZDoom_1_5_06/, to ensure is picked up by gzdoom.
- Navigate to C:/PsychoPhobia_V_2_25/GZDoom_1_5_06/PsychoPhobia, inside you will find a list of batch files, double click on PsychoPhobia_3D Shells stay forever.bat
- After a few seconds gzdoom 4.12.2 will start, select doom 2 in the gzdoom iwad selector and then it will start to load. It will crash after a few seconds, showing the crash dump pop-up window.
Thank you! Let me know if you need more info / the other versions crash reports.