Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
bejiitas_wrath

Doom Sound

Recommended Posts

I have re-coded the keys cheat, but it will not display double keys display. But I will fix that. And I am going to add Boom support from Xdoom. If anyone wants the DJGPP makefiles for Windows, drop me a line. It should compile fine on Windows.

Here is a nice screenshot!

http://bejiitas_wrath.tripod.com/maps/doomscrn.zip

1152*864 @ 16bit color. Still playable too.

http://bejiitas_wrath.tripod.com/doomstuff/dosdoom.tar.bz2

The sound for dosdoom is now working perfectly. I have compiled a copy of the Linux Doom soundserver and I have used that to setup the sound for dosdoom. I am providing a binary of the sound server with the source package. I rewrote the Linux sound code for dosdoom and managed to get it to talk to the soundserver. I tried it with the lxdoom one, that was probably why I was having so many problems. Anyway I have fixed it. I wanted to use the existing code instead of looking at someone else's and trying to work that out. I looked at the code for Edge, but that was more comprehensive than I wanted. Now I just need to go back through the code and clean it up some more. It seems to work very well too, I was playing TNT MAP30 with it and it worked very well indeed. Now I am very happy with the performance of the dosdoom engine. The sndserver process always seems to close after the game exits, no zombie processes left over blocking /dev/dsp. dosdoom was coded to look for the soundserver application in the $DOOMWADDIR location, but i changed it to just look in the current directory, because it will not work with the lxdoom one. The framerate whilst using this setup is still very fast, there are none of the framerate issues that Chi Hoang wrote about in his notes. i am testing and developing this on a Pentium II 450MMX with 192MB by the way. Someone with a P4 or Athlon will not be worried. FIXME,The only problem is that when I load up freedoom it still uses the Doom2 sounds. Maybe re-do wadfile handling code?

New features. From dosdoom 0.64!

'idgive1' - gives chainsaw.
'idgive2' - gives shotgun + full ammo.
'idgive3' - gives double-barrel shotgun + full ammo.
'idgive4' - gives chaingun + full ammo.
'idgive5' - gives missile launcher + full ammo.
'idgive6' - gives plasma rifle + full ammo.
'idgive7' - gives BFG + full ammo.
'idunlock' - gives all the keys.
'idloaded' - gives all the ammo.
'idsuicide' - suicide.
'idtakeall' - takes all stuff away.
'idinfo' - replaces 'showinfo'. Shows all stats.
'idkillall' - replaces 'hotaru'. Updated to kill all skulls.
'idinfo' gives numerical x,y coordinates.
'idkeys1' - Gives Yellow Skull.
'idkeys2' - Gives Red Skull.
'idkeys3' - Gives Blue Skull.
'idkeys4' - Gives Yellow Card.
'idkeys5' - Gives Red Card.
'idkeys6' - Gives Blue Card.
**Spectres can be setup as Visible/Partly Visible/Translucent/Stealth.
**Lost Soul can be setup as Visible/Partly Visible/Translucent/Stealth.
**monster respawn setting in the menu.
**monster infighting setting in the menu, partial or mass infighting!
**Dehacked support.
MF_STEALTH flag to use for monsters. See p_enemy.c

TODO:
CD Audio in Linux.
Fix more bugs.
Team TNT BOOM Support.
Fix missile teleportation. Arachnotron plasma will teleport but not your rockets? weird.
Graphical titles for menu options. Video options and game-play menu. Easy done.

Any feature suggestions? Do not ask me to `make it like Zdoom' though. Just any small features you really want in a source port.
Dosdoom runs on my system @ 1152*864 in 16bit color.

And it is still very playable at that resolution too! The new cheats mean you can just select the weapon you want. I just need to add a new cheat code like idbehold that will let you select the key's you want. sort of like tntkey in Boom. And this source port is less bloated and faster than Edge, being it's older father of sorts. But I will not abuse the Edge developers for deciding to use 3D cards. Why can't you just download Edge-1.27 which still works with software mode? But I will be keeping this source port software only, and I would not know how to code for 3d cards anyway. I have fixed a bug with the Arachotron monster where the Plasma would be coming out it's eyes. Just like this. Note the MF_STEALTH flag. You can set this for any monster if you want it to be more translucent.

void A_BspiAttack (mobj_t *actor)
{
if (!actor->target)
return;
if (actor->flags & MF_STEALTH) // From dosdoom v0.64.
{
if (actor->invisibility)
actor->invisibility--; // You can't see me!
}
else
{
actor->invisibility = 0;
}
A_FaceTarget (actor);
// Bejiitas Wrath 2005.
// Code borrowed from the Revenant. Fixes the Arachnotron
// plasma spawning too high.
actor->z -= 16*FRACUNIT; // Fire plasma at the right height.
// Fire white hot plasma.
P_SpawnMissile (actor, actor->target, MT_ARACHPLAZ);
actor->z += 16*FRACUNIT; // Back to normal.
}

Now it comes out the gun like it should. Easy. So what do you think? Answers on a postcard to Phobos please ;).
Before I forget here is the human explosions code.. Very funny in action. Turn it on or off in the menu & start a new game. Then just listen for the explosions ;)

// Check for Zombie, Shotgunner and Chaingunner - give random chance for
// explosion.
if (HumanExplode&&( ( actor->type == MT_POSSESSED ) || ( actor->type == MT_SHOTGUY ) ||
( actor->type == MT_CHAINGUY ) ))
{
random = P_Random() - M_Random();
if ( random >= 240 )
{
// Create Rocket and then "kill" it (causing explosion).
deathcharge = P_SpawnMobj (actor->x,
actor->y,
actor->z + 4*8*FRACUNIT,
MT_ROCKET);
P_KillMobj(NULL,deathcharge);
return;
}
}

The below code is a cheat I have added to give specific keys.

// 'Giving out specific Keys. idkeys 1-6
for (i=1;i<6;i++)
{
if (cht_CheckCheat(&cheat_giveKeys[i], ev->data1))
{
switch (i)
{
case 1: // Yellow Skull.
plyr->cards[it_yellowskull] = true;
break;
case 2: // Red Skull
plyr->cards[it_redskull] = true;
break;
case 3: // Blue Skull
plyr->cards[it_blueskull] = true;
break;
case 4: // Yellow Keycard.
plyr->cards[it_yellowcard] = true;
break;
case 5: // Red KeyCard
plyr->cards[it_redcard] = true;
break;
case 6: // Blue Keycard.
plyr->cards[it_bluecard] = true;
break;
default: // this should not happen
break;
}
}
}

Thats about it for now. But quite an update!

Share this post


Link to post

Make it like Eternity! No, I'm kidding. Feel free to snatch any ideas you might need from it though ^_^ Keep up the good work, it's nice to see an older port being brought up to date.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×