Talk:Sound effects behave differently on level 8

I obtained the recent information (source vs vanilla differences) while working on Chocolate Doom. myk pointed out that the constant growling of monsters at maximum volume was rather annoying. It took quite a while for me to work out why it was behaving differently to Vanilla. I actually confirmed this (two separate variables that had been merged) by disassembling the official Sun Doom port! Fraggle 18:07, 23 March 2006 (UTC)

Does this really happen on Map08 of Doom2 and Final Doom?
I just tried Doom2.exe and warped to Map08 and Cybies footsteps were not full volume.
EDIT: In Doom95, Cybies footsteps on Doom2/Final Doom Map08 are full volume, but in Doom2.exe they aren't, so a 'bug' in Doom95. I'll update the article. Vermil
The article never claimed that in vanilla the sounds are full volume, merely that they are using a different volume calculation. I just started doom2.exe in DosBox, set sound volume to zero, and sound effects still played on level 8, but not on any other level of Doom 2. PolicyNonsense 09:18, 14 January 2012 (UTC)


I don't see how "level 8" is misleading, since it concerns both ExM8 and MAP08. The constant in both naming conventions is that it's level 8. Also, see the source code in the "Technical" part. You'll notice that it doesn't have checks for gamemode. Compare with all the gamemode checks in other parts of the code, for example G_InitNew() in g_game.c. Here's a beautiful example:

    // set the sky map for the episode
    if ( gamemode == commercial)
    {
	skytexture = R_TextureNumForName ("SKY3");
	if (gamemap < 12)
	    skytexture = R_TextureNumForName ("SKY1");
	else
	    if (gamemap < 21)
		skytexture = R_TextureNumForName ("SKY2");
    }
    else
	switch (episode) 
	{ 
	  case 1: 
	    skytexture = R_TextureNumForName ("SKY1"); 
	    break; 
	  case 2: 
	    skytexture = R_TextureNumForName ("SKY2"); 
	    break; 
	  case 3: 
	    skytexture = R_TextureNumForName ("SKY3"); 
	    break; 
	  case 4:	// Special Edition sky
	    skytexture = R_TextureNumForName ("SKY4");
	    break;
	} 

It demonstrates how the code uses three variables: gamemap (which contains the map number), episode (which contains the episode number, only relevant for Doom 1 gamemodes) and gamemode. Gamemode itself is an enum, and here are its values (from doomdef.h):

typedef enum
{
  shareware,	// DOOM 1 shareware, E1, M9
  registered,	// DOOM 1 registered, E3, M27
  commercial,	// DOOM 2 retail, E1 M34
  // DOOM 2 german edition not handled
  retail,	// DOOM 1 retail, E4, M36
  indetermined	// Well, no IWAD found.
  
} GameMode_t;

(As an aside, I find the comments here interesting. 34 maps were apparently planned, at one time, for Doom II?)

So, in short:

  1. Sound effects that would have been silenced by being beyond clipping distance are still played.
  2. Sound volume is calculated differently on level 8. The effective distance is capped and a minimal volume of 15 is ensured.
  3. This does not discriminate between ExM8 and MAP08. The two points above are true regardless of the gamemode, as long as you are on the eighth map it's true, whether it's the eighth map in an episode or the eighth map in an episodeless game. --Gez 21:34, 23 January 2012 (UTC)

Yes, but the sound effects on Map08 of Doom2 and Final Doom only seem to be full volume on Doom95 gardless of distance. In Doom2.exe, the sound effects on Map08 aren't full volume regardless of distance. It seems like people may be thinking that because it occurs in Doom95, that it occured in the original.

I stand corrected.

Return to "Sound effects behave differently on level 8" page.