Officially support Doom II: Hell On Earth

This commit is contained in:
Lephenixnoir 2021-09-20 17:41:32 +02:00
parent 4da88c1318
commit 516be94294
Signed by: Lephenixnoir
GPG Key ID: 1BBA026E13FC0495
2 changed files with 35 additions and 15 deletions

40
README
View File

@ -12,23 +12,35 @@ Credit goes to:
CGDoom is licensed under GPLv2 as a derivative work of both the original DOOM
sources (GPL) and nDoom (GPLv2). See LICENSE.
UI improvements TODO:
-> Better keyboard layout (including more keys, eg. Run)
=> Edit messages accordingly ("press y"/etc)
Games officially supported:
-> Doom (shareware version) [doom.wad]
-> Ultimate Doom [doomu.wad]
-> Ultimate Doom (split) [doomu1.wad, doomu2.wad, doomu3.wad, doomu4.wad]
-> Doom II: Hell On Earth [doom2.wad*]
WAD support TODO:
-> Shareware WAD should work 100% (if not, it's a bug)
-> Ultimate Doom WAD should work 100% (if not, it's a bug)
-> Doom II WAD seems to run out of memory halfway through
Games with an asterisk* should be played with "Use experimental RAM" enabled.
They can generally be played without it, but risk running out of memory.
Status for other games:
-> The Plutonia experiment: not tested
-> TNT: Evilution: not tested
-> Heretic: not tested
-> Heretic: Shadow of the Serpent Riders: some crashes
-> Fallout: not tested
-> Pinochestein 3D: works at least partially
-> Counter-strike: works at least partially
-> HellRaiser: not tested
-> Freedoom phase 1: E1 works, E2 crashes
UI improvements TODO:
* Better keyboard layout (including more keys, eg. Run)
* Edit messages accordingly ("press y"/etc)
Technical support TODO:
-> Supply more VRAM memory to internal allocator
=> Merge internal heap into Z_Zone? (< 50 kB)
=> Remove multiply-avoiding lookup tables?
-> Reenable LTO if possible
-> Built-in overclocking?
-> SDL2 debug version support?
-> Darken background in menu (some code does that somewhere?)
* Built-in overclocking?
* Auto frameskip?
* Improve SDL2 build for video capture
* Darken background in menu (some code does that somewhere?)
CGDoom used to be compiled with the mini-SDK. However, it's become quite
difficult to get a copy of that. Instead, this port is built with a modified

View File

@ -404,6 +404,8 @@ int UI_Main(CGD_WADFileInfo *wads, int wad_count, int *dev_info, int *use_mmap,
action = "Play Ultimate Doom E3";
else if(!strcmp(wads[i].name, "doomu4.wad"))
action = "Play Ultimate Doom E4";
else if(!strcmp(wads[i].name, "doom2.wad"))
action = "Play Doom II";
Layout_Text(&l, action, "%s (%d.%dM)",
wads[i].name, wads[i].size / 1000000,
@ -422,7 +424,7 @@ int UI_Main(CGD_WADFileInfo *wads, int wad_count, int *dev_info, int *use_mmap,
Layout_Checkbox(&l, "Map file to memory:", use_mmap);
Layout_Checkbox(&l, "Trust unaligned lumps:", trustunaligned);
if(enable2MBline)
Layout_Checkbox(&l, "Use memory beyond 2MB:", enable2MBline);
Layout_Checkbox(&l, "Use experimental RAM:", enable2MBline);
Layout_EndFrame(&l);
Bdisp_PutDisp_DD();
@ -430,6 +432,12 @@ int UI_Main(CGD_WADFileInfo *wads, int wad_count, int *dev_info, int *use_mmap,
GetKey(&key);
if(Layout_Event(&l, key)) {
/* Autostart when changing starting episode/map */
int startparam = (l.focus == wad_count || l.focus == wad_count+1);
int changekey = (key == KEY_CTRL_EXE || key == KEY_CTRL_LEFT ||
key == KEY_CTRL_RIGHT);
if(startparam && changekey)
*autostart = 1;
}
else if(key == KEY_CTRL_EXE && l.focus == wad_count + 2) {
if (!*autostart && *enabledemos)