diff --git a/README b/README index fb46137..7877b8a 100644 --- a/README +++ b/README @@ -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 diff --git a/cgdoom/cgdoom-ui.c b/cgdoom/cgdoom-ui.c index 76a4234..094132c 100644 --- a/cgdoom/cgdoom-ui.c +++ b/cgdoom/cgdoom-ui.c @@ -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)