diff --git a/README.md b/README.md index 9d20162..15fae5d 100644 --- a/README.md +++ b/README.md @@ -212,6 +212,16 @@ Usage nompu - disables MPU-401 support (i.e., re-enables OPL2 music) ``` +- ### Wow, PC Speaker digitized sound is now an option? (It used to be "hidden" as a config file hack!) Any other "hidden" features? + + - __View size__: wolfdosmpu supports increasing the view window size to fill the entire screen ("fullscreen mode"), or just the status bar ("borderless mode"), ala Doom. You can select these modes via the Change View menu option. + - Technically, borderless mode is supported by vanilla Wolf3D via a config file hack, but there are wall rendering bugs that are fixed by wolfdosmpu. + - When in fullscreen mode, the modern-controls version can show the player's stats (health, ammo, etc.) by pressing the Tab key. (Note that the MPU-only version does not support the Tab key.) + - Fullscreen mode uses much more conventional RAM than borderless mode due to the way the auto-generated wall-scaler code works, and your hard drive will thrash by the time you enter the large middle area in E1M1 if you have just 576KB of RAM and no EMS/XMS. Consider fullscreen support as "experimental". ;) + - __Mouse sensitivity__: wolfdosmpu allows setting a slightly higher mouse sensitivity (12 instead of 9). (Also technically possible in vanilla Wolf3D via a config file hack.) + - __Cheats__: The no-clip cheat (Tab+N) from SoD will also work on Wolf3D. + - __Bug fixes__: wolfdosmpu also has numerous minor fixes to vanilla Wolf3D bugs. The COMP parameter (discussed below) allows you to revert these fixes on a per-fix basis. + - ### What is this COMP parameter thingamajig? You can enable specific quirks/bugs of the vanilla game using the COMP (compatibility) command-line parameter. These parameters may be useful when you play custom maps that depend on these quirks. Specify a number after COMP, which should be the sum of the flags you want to enable (alternatively, specify a negative number to disable those flags and enable everything else): @@ -265,6 +275,9 @@ Usage while you walk away from it) - on PC Speaker digitized sound, doors will also use digitized sound effects (which will sound garbled due to the speaker's limitations) + - DONOTHINGSND and HITWALLSND (i.e., the sounds effects that play when holding the Open key + and running into walls, respectively) may significantly slow down any digitized audio that + is playing at the same time, especially when using Covox or SB in DMA-less mode ``` For example, to mimic the vanilla game's behavior when they were run on a Pentium (or faster) system, specify COMP 511 (e.g., WOLF3DCM COMP 511). On the other hand, COMP 510 (or COMP -1) disables the 3-tile pushwall move, which is ideal for completionists who wish to retain all other engine quirks. @@ -300,6 +313,12 @@ Usage Version History =============== +1.51 (2022-05-13) +----------------- +- Per Gmlb256's suggestion, removed the half-second delay before the play screen starts rendering in fullscreen mode. This was due to the game trying to fade in the play screen's UI elements, which do not exist in fullscreen mode. (If the game is not in fullscreen, these UI elements will still fade in as usual.) +- The warning to enter fullscreen mode is now only shown once in a session (in case the user wants to switch often, e.g., to temporarily view the stats in the MPU-only version). +- Customize Controls screen now prohibits essential keys (Esc, F1-F10, and Tab for the modern-controls version) from being customized. + 1.50 (2022-05-12) ----------------- - Now supports fullscreen (status-bar-less) mode for both modern-controls and MPU-only versions. diff --git a/WOLFSRC/VERSION.H b/WOLFSRC/VERSION.H index 44e81e8..06f3bde 100644 --- a/WOLFSRC/VERSION.H +++ b/WOLFSRC/VERSION.H @@ -7,6 +7,6 @@ //#define DEBCHECK #define CARMACIZED //#define UPLOAD -#define VERSION 1.50 +#define VERSION 1.51 #define WOLFDOSMPU #define WASD diff --git a/WOLFSRC/WL_MENU.C b/WOLFSRC/WL_MENU.C index 6937efb..3c476b6 100644 --- a/WOLFSRC/WL_MENU.C +++ b/WOLFSRC/WL_MENU.C @@ -796,8 +796,8 @@ int CP_CheckQuick(unsigned scancode) DrawPlayScreen (); #ifdef WOLFDOSMPU - VW_FadeIn (); - StartMusic (); + VL_FadeIn(0, 255, &gamepal, viewheight == 200 ? 0 : 30); + StartMusic(); #else // WOLFDOSMPU if (!startgame && !loadedgame) { @@ -887,7 +887,11 @@ int CP_CheckQuick(unsigned scancode) if (!startgame && !loadedgame) { +#ifdef WOLFDOSMPU + VL_FadeIn(0, 255, &gamepal, viewheight == 200 ? 0 : 30); +#else // WOLFDOSMPU VW_FadeIn (); +#endif // WOLFDOSMPU StartMusic (); } @@ -2859,6 +2863,21 @@ void EnterCtrlData(int index,CustomCtrls *cust,void (*DrawRtn)(int),void (*Print case KEYBOARDBTNS: if (LastScan) { +#ifdef WOLFDOSMPU + if (LastScan == sc_Escape) + { + picked = 1; + continue; + } + if (LastScan >= sc_F1 && LastScan <= sc_F10 +#ifdef WASD + || LastScan == sc_Tab +#endif // WASD + ) + { + continue; + } +#endif // WOLFDOSMPU buttonscan[order[which]]=LastScan; picked=1; ShootSnd(); @@ -2869,6 +2888,21 @@ void EnterCtrlData(int index,CustomCtrls *cust,void (*DrawRtn)(int),void (*Print case KEYBOARDMOVE: if (LastScan) { +#ifdef WOLFDOSMPU + if (LastScan == sc_Escape) + { + picked = 1; + continue; + } + if (LastScan >= sc_F1 && LastScan <= sc_F10 +#ifdef WASD + || LastScan == sc_Tab +#endif // WASD + ) + { + continue; + } +#endif // WOLFDOSMPU dirscan[moveorder[which]]=LastScan; picked=1; ShootSnd(); @@ -3397,17 +3431,20 @@ void CP_ChangeView(void) #ifdef WOLFDOSMPU if (exit && oldview != newview && newview == 21) { + static byte fullScreenOK = 0; #ifdef WASD - if (! Confirm("This view size hides the\n" - "status bar. You must use\n" - "the Tab key to view your\n" - "stats. Continue? (Y or N):")) + if (fullScreenOK || Confirm("This view size hides the\n" + "status bar. You must use\n" + "the Tab key to view your\n" + "stats. Continue? (Y or N):")) #else // WASD - if (! Confirm("This view size hides the\n" - "status bar, preventing\n" - "you from viewing essential\n" - "stats. Continue? (Y or N):")) + if (fullScreenOK || Confirm("This view size hides the\n" + "status bar, preventing\n" + "you from viewing essential\n" + "stats. Continue? (Y or N):")) #endif // WASD + fullScreenOK = 1; + else exit = 0; DrawChangeView(21); } diff --git a/WOLFSRC/WL_PLAY.C b/WOLFSRC/WL_PLAY.C index faceecf..7b11f82 100644 --- a/WOLFSRC/WL_PLAY.C +++ b/WOLFSRC/WL_PLAY.C @@ -1222,9 +1222,10 @@ void CheckKeys (void) DrawPlayScreen (); if (!startgame && !loadedgame) { - VW_FadeIn (); #ifdef WOLFDOSMPU - StopMusic(); + VL_FadeIn(0, 255, &gamepal, viewheight == 200 ? 0 : 30); +#else // WOLFDOSMPU + VW_FadeIn (); #endif // WOLFDOSMPU StartMusic (); } diff --git a/WOLFSRC/_WVER.H b/WOLFSRC/_WVER.H index 110ea61..0971640 100644 --- a/WOLFSRC/_WVER.H +++ b/WOLFSRC/_WVER.H @@ -1 +1 @@ -#define VERSION 1.50 +#define VERSION 1.51