Improved support for CHEX Quest
Brought to you by:
e6y
Hi,
currently, prboom-plus' emulation of chex.exe has some flaws. Most notably, it fails to use CHEX.WAD as an IWAD, because that file is missing the notorious IWAD header (its first byte is P, although it is an IWAD in the technical sense). Thus, I have relaxed CheckIWAD() at bit in case (game_exe == EXE_CHEX). However, for this to work I had to move the e6y_InitCommandLine() function, whoch checks for the '-exe chex' parameter, a bit up in the order. I hope that doesn't do any harm. At least I couldn't find an issue with it.
Secondly, chex.exe does not show the Episode menu, although the game is based on Ultimate Doom.
- Fabian
Improve CHEX Quest support
I've found the following list in chex.deh and improved by patch (with the help of chocolate-doom) based on these requirements:
# Because of the limitations of dehacked, it is not possible to
# completely emulate chex.exe merely with a dehacked patch. Although
# this patch takes care of the majority of the changes necessary, the
# following changes are also necessary to accurately emulate chex.deh:
#
# * Monsters should not drop ammo
-> Already there.
# * The game should end after the fifth level, instead of the eighth.
-> Added in the new patch.
# * The episode selection screen should not be displayed.
-> Already in the first patch.
# * The level warp cheat should always warp to episode 1.
-> Added in the new patch.
# * The automap should show the level name for the episode 1 level,
# eg. the displayed level name for E2M3 is the level name for
# E1M3.
-> Added in the new patch.
I am tempted to forcefully set (game_exe = EXE_CHEX) if (gamemode == retail) && !strnicmp(iwad+i-8,"chex.wad",8), but we would need to force the loading of the chex.deh file for a proper emulation as well. Do you think it is possible to embed that file into prboom-plus.wad? Or should the game just abort with instructions where to find that file, just like chocolate-doom does?
Improved Chex Quest support patch
Do you think the patch qualifies for application?
i'll apply it today
Cool, thanks. How about the idea to embed chex.deh in prboom-plus.wad and load it unconditionally?
> How about the idea to embed chex.deh in prboom-plus.wad
no
Check the latest revision. Did i miss something?
> How about the idea to embed chex.deh in prboom-plus.wad and load it unconditionally?
Done
Just had a look at the patches, looks good so far.
Some remarks:
1) I am not sure about the change in p_telept.c (r4296). The CHEX.EXE was based on Final Doom, whereas CHEX.WAD was based on Ultimate Doom. So demo compatibility should be finaldoom. Is this considered anywhere?
2) It seems you forgot to "svn add" the CHEXDEH file.
3) Creation of the prdoom-plus.wad file is handled in data/Makefile.am, not prboom.txt anymore (I think that file can even go). Also, maybe that lump should get embraced by "if NONFREE_GRAPHICS", since the origin of its content is quite spurious (but then it should be possible to give it as a file on the command line)?
i've added missed chexdeh and entries in makefile.am