Skip to content

Commit

Permalink
- revert sb pro stereo sep, fixed saving when dead
Browse files Browse the repository at this point in the history
  • Loading branch information
ericvids committed Nov 27, 2021
1 parent e6e1ad7 commit ea249ed
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 22 deletions.
6 changes: 4 additions & 2 deletions README.md
Expand Up @@ -245,10 +245,12 @@ Usage
Version History
===============

Next release
1.47 (2021-11-27)
------------
- Really fixed first-sample dropping on Sound Blaster this time -- it seems to be caused by a driver problem that throws a stream-continue interrupt too early when the interrupt is masked and subsequently unmasked. The workaround was to defer playing of full samples until after the first interrupt.
- Really fixed first-sample dropping on Sound Blaster this time (I hope) -- it seems to be caused by a driver problem that throws a stream-continue interrupt too early when the interrupt is masked and subsequently unmasked. The new workaround defers playing of full samples until after the first interrupt.
- Added COMP 128 to revert the enemies-closing-unclosable-doors glitch. Also fixed more cases where the glitch can happen (e.g., when two or more enemies step on all the corpses that block the door from closing with perfect timing) and a related glitch where a door that has been blocked open for more than 32767 tics (7.8 minutes) would not close for another 7.8 minutes even if unblocked.
- Fixed so that Esc and function keys are inaccessible when the game is already in a special playstate (e.g., player dying, level completion, etc.). This fixes many succeeding bugs such as the player dying immediately after a quick load (which happens when the player was killed at the exact moment they press F9), or saving at the exact moment of death and reloading to find yourself alive but with zero health.
- Reverted stereo separation formula -- the change was too jarring for players used to the original formula. The sound queuing system is retained, however.

1.46 (2021-11-25)
-----------------
Expand Down
12 changes: 0 additions & 12 deletions WOLFSRC/ID_SD.C
Expand Up @@ -891,20 +891,8 @@ SDL_PositionSBP(int leftpos,int rightpos)
if (!SBProPresent)
return;

#ifdef WOLFDOSMPU
// sound blaster pro's volume attenuation curve is too steep,
// making far sounds practically inaudible; since non-pro SB
// plays everything at full volume, the softest sounds should
// at least be audible on pro SB to be "fair" (and to prevent
// users from thinking that sounds are just being turned off
// all of a sudden, when in reality, very soft/far sounds are
// overriding very loud/near sounds)
leftpos = 15 - (leftpos >> 1);
rightpos = 15 - (rightpos >> 1);
#else // WOLFDOSMPU
leftpos = 15 - leftpos;
rightpos = 15 - rightpos;
#endif // WOLFDOSMPU
v = ((leftpos & 0x0f) << 4) | (rightpos & 0x0f);

asm pushf
Expand Down
2 changes: 1 addition & 1 deletion WOLFSRC/VERSION.H
Expand Up @@ -7,6 +7,6 @@
//#define DEBCHECK
#define CARMACIZED
//#define UPLOAD
#define VERSION 1.46
#define VERSION 1.47
#define WOLFDOSMPU
#define WASD
11 changes: 6 additions & 5 deletions WOLFSRC/WL_MENU.C
Expand Up @@ -788,6 +788,10 @@ int CP_CheckQuick(unsigned scancode)
#endif // WOLFDOSMPU
DrawPlayScreen ();

#ifdef WOLFDOSMPU
VW_FadeIn ();
StartMusic ();
#else // WOLFDOSMPU
if (!startgame && !loadedgame)
{
VW_FadeIn ();
Expand All @@ -801,8 +805,6 @@ int CP_CheckQuick(unsigned scancode)
if (MousePresent)
Mouse(MDelta); // Clear accumulated mouse movement

#ifdef WOLFDOSMPU
#else // WOLFDOSMPU
PM_CheckMainMem ();

#ifndef SPEAR
Expand Down Expand Up @@ -885,13 +887,12 @@ int CP_CheckQuick(unsigned scancode)
if (loadedgame)
playstate = ex_abort;

#ifdef WOLFDOSMPU
#else // WOLFDOSMPU
lasttimecount = TimeCount;

if (MousePresent)
Mouse(MDelta); // Clear accumulated mouse movement

#ifdef WOLFDOSMPU
#else // WOLFDOSMPU
PM_CheckMainMem ();

#ifndef SPEAR
Expand Down
5 changes: 4 additions & 1 deletion WOLFSRC/WL_PLAY.C
Expand Up @@ -2223,15 +2223,18 @@ void PlayLoop (void)
{
#endif // WOLFDOSMPU
VW_FadeIn ();

#ifdef WOLFDOSMPU
// clear pending inputs
LastScan = sc_None;
if (MousePresent)
Mouse(MDelta); // Clear accumulated mouse movement
lasttimecount = TimeCount; // don't frameskip
}
#endif // WOLFDOSMPU

// do not check keys when the game is already in a transitory play state
if (! playstate)
#endif // WOLFDOSMPU
CheckKeys();

//
Expand Down
2 changes: 1 addition & 1 deletion WOLFSRC/_WVER.H
@@ -1 +1 @@
#define VERSION 1.46
#define VERSION 1.47

0 comments on commit ea249ed

Please sign in to comment.