VOGONS

Common searches


Reply 120 of 141, by Gmlb256

User metadata
Rank Oldbie
Rank
Oldbie
Hezus wrote on 2021-11-15, 22:00:

Thanks! Made a little batch file that changes the setting and then loads wolf3d. Just setting SET BLASTER=P330 seems enough to make it work.

You're welcome!

I suggest adding the rest of the BLASTER environment variable or restoring the original one on the batch file after running wolfdosmpu, since some DOS programs may need the rest.

Reply 121 of 141, by ericvids

User metadata
Rank Newbie
Rank
Newbie

Just a quick note, guys,

Version 1.44 is up. As usual, head over to github for the EXEs. Fixed some major bugs -- you will definitely want to upgrade to this. 😀

Changelog:

Corrected a couple of crashing and corruption cases in the classic code. You should now be able to play Spear of Destiny from start to finish without crashing or experiencing corrupted graphics, even if you save/load your game a lot.

  • Now stops MM_GetPtr() from exhausting all available memory block structures (not the actual memory) over the course of the game. This is due to the page manager aggressively requesting new blocks every time the game goes into the play loop "until it fails" and causes the temporary block structure to be leaked, eventually bombing with "MM_ClearBlock: No purgable blocks!"
  • Fixed out-of-memory issue that can happen on rare memory configurations after the level restarts due to player death.
  • Fixed memory corruption issue where pushing a secret wall again while it is moving can cause random static map ornaments to become impassable. I have experienced it myself on E4M2 and SoD Map 1, and this video shows how it can be triggered in SoD Map 2 (which renders it unwinnable if no enemies are left to help reverse the glitch).
  • Fixed memory corruption issue where loading a game and entering an already-pushed secret wall's original position puts the player in an undefined area, subsequently causing random walls to change to texture page number 1 (darkened stone wall).
  • Increased the conventional memory requirement to 576 KB (exactly 9/10ths of 640 KB) to avoid memory thrashing issues. You can now bypass this memory requirement with the "nomain" command-line parameter (instead of the "goobers" or "debugmode" parameters), to force the game to run on a low-memory system without enabling cheat codes. Please save your game often if you need to use "nomain" because the game is much more likely to crash.

Gameplay fixes:

  • Fixed the classic "phantom doors" glitch where actors can pass through a closed door if a patrolling enemy was initially placed facing that door. This was fixed because it was clearly not intended by the developer when it happens on E4M6 on the hardest difficulty (in the top left room with the crowns). However, since this bug may be intentionally used in mods to surprise players with ambushes or to make "fake" locked doors that the player can pass through without a key, you can reenable it by using the new COMP flag 64. (A related quirk, "holowalls", remains supported for mods without the need for COMP.)
  • Now gives the gold key to the player upon getting the spear; otherwise, a player can trick an enemy to open the locked door without the key, grab the spear, and get into an unwinnable final level (because you need the key to get out).

Rendering fixes:

  • Now properly renders bonus item sprites that could not be picked up (e.g., 25-ammo boxes). Previously they seem to disappear as if they were already picked up, only to reappear when the player backs away.
  • If a pushwall's landing spot is adjacent to a door, the pushwall is now marked as a door side (see E2M3, rightmost pushwall of the map, also the start of a chain of secrets with lots of treasure).
  • If a pushwall passes against a wall that is marked as a door side, that wall is now rendered correctly with its regular texture instead of the door side texture (see E4M6 pushwall in the top left room with the crowns, or the E2M8 pushwall maze when choosing the pushwall that blocks you from getting the Apogee sign).

Interface fixes:

  • Made sure quicksave message appears for at least 10 tics; otherwise, the message sometimes doesn't get displayed when your monitor's native refresh rate is less than 70Hz, e.g., when running on modern hardware or DOSBox.
  • Now displays up to 999:99 total episode time. This was previously capped at 99:99. Note that :99 shows instead of :59 to indicate timer overflow, like in the vanilla EXE. So now you will know the exact amount of time you wasted playing Wolf3D instead of working today! (Also because, even after so many hours of "debugging" wolfdosmpu, I still could not finish below 99:59 on SoD at the hardest difficulty with 100% completion ratios...)
  • Fixed typo in SoD ending text ("by" -> "be"). If it isn't obvious by now, I've been playing SoD a lot. 😀
  • Fixed quicksave/quickload so that it immediately becomes active after a normal save/load. Also, if the user pressed Esc on the save/load screen, the quicksave/quickload slot will now revert to the previous one used instead of changing to the one currently selected by the cursor. (I've been victimized by this...)
  • Fixed so that keyboard and mouse input is always cleared after screen fade/fizzle-ins (i.e., if you impatiently pressed Esc multiple times at a function key menu, the game screen won't anymore immediately fade back out to the main menu).

Reply 123 of 141, by Pickle

User metadata
Rank Member
Rank
Member

sounds great on my YMF754 Toshiba Tecra 8200. Only a couple observations i had while playing.
1. There seems to be half a 0 following the last valid digit on the completion stats.
2. Im getting some kind of render tear or glitch at random times. It happens fast might be a gray triangle. I didnt try the original exe to see if it happens there.
Very nice work on this, i was just expecting the midi support but seeing all the other support really makes this quite nice.

Reply 124 of 141, by ericvids

User metadata
Rank Newbie
Rank
Newbie
Pickle wrote on 2021-11-17, 20:10:

sounds great on my YMF754 Toshiba Tecra 8200. Only a couple observations i had while playing.
1. There seems to be half a 0 following the last valid digit on the completion stats.

I think you mean the ^ mark, which indicates that there are more kills/secrets/treasures on the level but they are currently inaccessible. When you get a key or push a secret door that makes more items accessible, the counts increase, and eventually the ^ disappears when everything is accessible. The marks won't disappear in E2M8, E3M10 and E6M10 by the way, because of map bugs and/or ghosts that can not be killed -- in fact, I put that in specifically for E2M8 so that players can track their progress in the Aardwolf maze even if they turned the automap off for a challenge (the increasing secrets counter gives players a clue whether they hit a dead end or should continue on a path).

Pickle wrote on 2021-11-17, 20:10:

2. Im getting some kind of render tear or glitch at random times. It happens fast might be a gray triangle. I didnt try the original exe to see if it happens there.
Very nice work on this, i was just expecting the midi support but seeing all the other support really makes this quite nice.

I'm not entirely sure why it happens, but I think it has something to do with the screen refreshing before the whole play area is drawn (the "gray triangle" you observe is probably the floor before the walls are overlaid on it), and it is likely caused by the conventional memory graphics cache getting overrun so that the renderer has no wall graphic to draw for a split second. It also happens on the original exe, but is more pronounced in this version because the MIDI and automap support eats up much more memory. So far I have not been able to replicate it consistently, though.

If it happens way too often on your PC though, then it might be something else. If you can capture a video of it happening during gameplay, it might be helpful for diagnosis.

Reply 125 of 141, by Pickle

User metadata
Rank Member
Rank
Member

Your right on both issues. thanks for explaining the ^.
I tried it with the original and it did occur and i think your right that it occurs more often in the mod build. I can try to catch a screen shot of it.

Reply 126 of 141, by ericvids

User metadata
Rank Newbie
Rank
Newbie
Pickle wrote on 2021-11-18, 13:26:

Your right on both issues. thanks for explaining the ^.
I tried it with the original and it did occur and i think your right that it occurs more often in the mod build. I can try to catch a screen shot of it.

Okay... I actually just discovered something funny on the original EXE (and it happens exactly the same on wolfdosmpu) -- you can actually replicate that flickering glitch immediately on the very first level of Episode 1. Start the game and immediately move backwards.

The funny part is what I discovered on the frame of the glitch itself. These are the three consecutive frames while I'm moving backward, where the glitch happens. I have ABSOLUTELY no idea what is happening here. Any Wolf3D code experts/historians here?

wtf_1.jpg
Filename
wtf_1.jpg
File size
39.25 KiB
Views
339 views
File license
Fair use/fair dealing exception
wtf_2.jpg
Filename
wtf_2.jpg
File size
34.88 KiB
Views
339 views
File license
Fair use/fair dealing exception
wtf_3.jpg
Filename
wtf_3.jpg
File size
39.42 KiB
Views
339 views
File license
Fair use/fair dealing exception

Reply 127 of 141, by ericvids

User metadata
Rank Newbie
Rank
Newbie

Update:

I still haven't had time to fix the bug above, but I successfully made a savegame that starts out with the player coordinates already set to where the bug happens, so I can look closely into it later. I also found out that all released versions of Wolf3D had it, all the way back to shareware version 1.0. I anticipate that fixing this is going to be just as complicated as making the game borderless without rewriting the renderer (I think).

Instead of spending possibly two months doing that, I turned my attention to other things that needs fixing.
Version 1.45 mostly fixes sound support. (Available at github as usual)

  • Added "nompu" command-line parameter to disable MPU-401 usage and revert to OPL2 music. Removing/renaming your MUSIC directory has the same effect. Just in case you REALLY want that...
  • Fixed the sound attenuation behavior on SB pro, because SB pro volume level 7 of 15 (the minimum volume encoded into the Wolf3D volume lookup table) is actually near inaudible instead of half volume as one might expect. Since the developer intention seems to be for attenuating sounds only down to the half-volume point (coupled with the fact that non-SB-pro devices do not attenuate volume, making it "unfair" for SB pro owners if they don't hear some sounds), the value sent to the SB pro is now adjusted closer to the SB pro's real half-volume point. This fix also reduces (but not eliminates) sounds getting cut off abruptly -- which is actually a low-volume sound effect taking precedence over a high-volume one -- and also makes the sound positioning a bit more pleasing with headphones due to the more-balanced volume distribution.
  • Added special cases for door sounds, which account for many of the sound cut-off issues players experience in Wolf3D. Direct door interaction by the player should now always play a sound regardless of a currently-playing sound's priority, but the sound can be overridden by higher-priority sound effects afterwards. Ambient door closing sounds will not override other door sounds anymore (but ambient door opening still will, to alert the player of an enemy opening a door). Reopening a currently-closing door should also now override the door-closing sound with a door-open sound. All that said, the real solution to the sound cut-off problem is to do software-based mixing of simultaneous sounds ala Doom, which would require significant engine changes and may be too much work for 286 (don't know when/if this will happen at all).
  • Fixed classic Sound Blaster code where the first parts of digitized sounds can get dropped sometimes due to a wayward interrupt.
  • Fixed new Covox support where the first few digitized sounds will not play (but subsequent ones work fine).
  • Fixed slowdown issue with Covox and DMA-less SB support combined with very short non-digitized AdLib sound effects (i.e., the digitized sound's pitch lowers when the player runs into a wall or holds the Open key).
  • Fixed DONOTHINGSND not getting played on tiles previously occupied by pushwalls (it now plays, as with any other tile, for consistency).
  • PUSHWALLSND is now a positioned sound.

Other non-sound-related stuff:

  • Fixed rare possibility for the automap to break when the player is straferunning through a one-tile-wide corridor on lower framerates, which can result in the player skipping entire tiles (and breaking spotvis connectivity). Item pickup logic has also been fixed to not skip these tiles (except if COMP 4 is specified).
  • Previous version cleared keyboard inputs after screen fade-/fizzle-in, but this changed the level start's feel significantly (players would start pressing directional keys during the fade-in only for the movement to not register, killing running starts). Changed so that only the LastScan code is cleared, which only affects the processing of the menu keys Esc and F1-F10 (which was the intended fix).
  • Previous version broke some behavioral compatibility with existing maps with holowalls -- in particular, shooting inside a holowall should alert all enemies in the level. (Fixed in this version.)
  • Reverted SAVENEARHEAP to its original value (it was modified to help reduce the memory requirement to 576 KB, but it apparently causes random crashes; still not sure why).

Reply 129 of 141, by ericvids

User metadata
Rank Newbie
Rank
Newbie
Hezus wrote on 2021-11-20, 09:17:

Great work! I'll test this some more when I get the chance. Will my old save games break with the updated version?

Old wolfdosmpu savegames should work fine since I made it a point to preserve compatibility since version 1.32 (i.e., as long as the filename is SAVEGM_n.xxx). Anything before that won't work, including savegames from the original EXEs.

Savegame compatibility with the original EXEs is pretty hard to achieve; even the original open-source code release broke compatibility with many versions of Wolf3D and all versions of Spear of Destiny savegames. There seems to be a (very hacky) way to make it work, but it would increase the size of the EXEs further, so it's in my TODO list along with fixing the glitch in the screenshots above.

Reply 131 of 141, by ericvids

User metadata
Rank Newbie
Rank
Newbie

Version 1.46 is up. Not as many improvements as in previous versions, but you might want to update nonetheless. It's in github as usual. 😀

Changelog:

  • Implemented a sounding queueing scheme where a sound effect may only override a currently-playing one when the latter has played for a minimum length, replacing the door-related special cases in the previous version. This scheme fixes more sound cut-off issues while guaranteeing that the next sound effect still plays -- all player-activated digitized sounds (active door opening/closing, pushwall activation, and gun firing) are assigned minimum lengths. No more "silenced" gunshots or door-opening due to an enemy shouting too quickly in reaction -- and the enemy shout is not dropped! (Although you will still only hear the shout in full if you stop firing... again, sound effects mixing is currently not possible due to the Wolf3D sound engine being hardcoded to play monaural digitized sound with hardware stereo panning only.)
  • Fixed glitch where doors that are "perpetually" open due to a partially-blocking corpse may suddenly close when an enemy passes over the corpse (not necessarily through the door). Incidentally this also fixes a special case in the automap where such doors are indicated as open only when the player looks at it (whereas they should be perpetually open due to the corpse).
  • Fixed player weapon getting stuck in a firing frame when the player grabs the spear while firing.
  • Fixed Save Game not disabling after episode completion.

This release will probably last for quite a while, as I'm running out of things to fix. Also, because the next few things that I DO need to fix are pretty hard (the main things being "THE" renderer glitch as posted above, and improving the sound system further). 🙁 Plus, I have to take a break for a while due to real-world commitments. That said, the wolfdosmpu project is still alive, and if you find a critical bug that is ruining your game, please do drop a note here in vogons so I can fix it. 😀

Also, I realized that it's been about two months since I first released wolfdosmpu (and about five months since I released the wolfmidi converter). To celebrate (yay!), I recorded a playthrough of Spear of Destiny, with 100% kills/secrets/treasures on I am Death Incarnate:

https://www.twitch.tv/videos/1215462266

Well, not quite 100% kills -- you cannot get that on the final level because the ghosts regenerate. But as a fun challenge, I tried to beat that WITHOUT killing the ghosts but still getting all the secrets and treasures, which is a LOT harder because it requires luring the ghosts away from the collectibles they protect without shooting them. (The challenge starts at 3:06:48, took me almost an hour, and had to start over when I realized that all the ghosts that were following me had completely swarmed around the boss. I'm a fairly decent player but nowhere near as good as John Romero or decino, and I have to save a lot...)

Reply 133 of 141, by Stretch

User metadata
Rank Member
Rank
Member

Thanks ericvids for this project. I haven't played this much Wolf3d since the 1990's.

Win10 - AMD Ryzen 9 3900 - 16 GB - GeForce RTX 2060S - Sound BlasterX AE5-Plus
Win98SE - ASRock 775i65G R3.0 - Celeron 2.2 GHz - 2 GB - GeForce FX5700 - Audigy 2 ZS
Win98SE - Via Apollo Pro Mobo - Pentium II 233 - 256 MB - Voodoo 3 1000 - Yamaha YMF724

Reply 134 of 141, by badmojo

User metadata
Rank l33t
Rank
l33t

Something I've noticed because I was testing something related is that the stereo separation of this exe (I'm using WOLF3DCW.EXE) is a lot less pronounced that the original WOLF3D.EXE. I can still hear it but sounds that should be totally on my right for example, still play out of the left speaker. In the original no sound would be heard out of the left speaker.

Maybe it's just me - I'm using a YMF71x based ISA sound cards and these are know for having trouble with stereo in Wolf3D if not setup properly, but as working the original game works fine on my setup. I tried MIDITO which can now lock the YMF mixer and no change - stereo is there, it's just not very noticible.

Is anyone else finding that?

Life? Don't talk to me about life.

Reply 135 of 141, by ericvids

User metadata
Rank Newbie
Rank
Newbie
badmojo wrote on 2021-11-27, 07:08:

Something I've noticed because I was testing something related is that the stereo separation of this exe (I'm using WOLF3DCW.EXE) is a lot less pronounced that the original WOLF3D.EXE. I can still hear it but sounds that should be totally on my right for example, still play out of the left speaker. In the original no sound would be heard out of the left speaker.

Maybe it's just me - I'm using a YMF71x based ISA sound cards and these are know for having trouble with stereo in Wolf3D if not setup properly, but as working the original game works fine on my setup. I tried MIDITO which can now lock the YMF mixer and no change - stereo is there, it's just not very noticible.

Is anyone else finding that?

Oh, um... *sheepishly*... I did that.

That's an unfortunate side-effect of my tinkering with the SB pro separation -- I think some people are too used to the original's. My reasoning was that if you cannot hear it, it would be "unfair" for SB pro owners compared to SB 1/1.5 and Disney/Covox who would hear the sound effects in full volume (and people did depend on that, myself included, to count the enemies behind a door). It was also the reason why some sounds seem like they get abruptly cut off; the game practically drops your gun sounds completely on later episodes when there are lots of enemies reacting, and most of them inaudible (because of the separation formula being weird).

But since I've already put in the sound queueing system to still allow you to count enemy shouts while not missing the "good" parts of door/gun sound effects, I suppose I can revert it to the original separation formula. Just give me a day or so.... (I should really offer it as an option, but the menus are so cramped now that I don't know where to put it... and it's better to just not have the changed separation formula if people are already used to the original...)

Reply 136 of 141, by ericvids

User metadata
Rank Newbie
Rank
Newbie
badmojo wrote on 2021-11-27, 07:08:

Is anyone else finding that?

Just a quick check tho: badmojo, can you verify that the sound works as you expect on this version, before I make a release? (you only need to test one of the EXEs -- I don't know which one you normally use)

Last edited by ericvids on 2021-11-28, 07:25. Edited 1 time in total.

Reply 137 of 141, by badmojo

User metadata
Rank l33t
Rank
l33t

This is a tricky one then - your efforts to improve the way sounds get cut off are much appreciated because that's something that has bugged me over the years but I also really like clear stereo separation, which I'd argue also helps the player react to an enemy they didn't see. I think personally I'd choose proper stereo over some sounds getting cut off but the last thing I want to do is make your life difficult, so do whatever you think makes the most sense 👍

Yes the attached version works how I'd expect it to thankyou!

Life? Don't talk to me about life.

Reply 138 of 141, by ericvids

User metadata
Rank Newbie
Rank
Newbie
badmojo wrote on 2021-11-27, 21:22:

Yes the attached version works how I'd expect it to thankyou!

Okay, finalized the release!

Version 1.47 is officially up. Also surreptitiously threw in a few more bugfixes in there:

  • 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.

Just as a heads-up: If you notice more dropped sounds in this release, just keep in mind that most of it is simply because a very-low-volume sound effect was overriding the sound that was dropped. You can minimize the effect by turning your speaker volume up and the MIDI music volume (in Sound options) down.

Reply 139 of 141, by badmojo

User metadata
Rank l33t
Rank
l33t

Brilliant, thanks again. Both Wolf and Spear are working as expected so far with this version but I will continue my 'testing'.

Life? Don't talk to me about life.