Cacodemon
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Special Interest > Eternity > EE Progress Report
 
Author
All times are GMT. The time now is 18:46. Post New Thread    Post A Reply
Quasar
Moderator


Posts: 2200
Registered: 08-00


Here's what's been going on lately:

* Sound sequences are partially done. The environmental sequence engine is 100% complete and allows stuff like the Heretic global ambience objects to work.

* Some Hexen line specials are properly translated now, so you can open some doors and make some floors go up and down in Hexen (we call it progress :)

* Missing textures no longer bomb the game to the console; a message is posted there, but the game continues to run, displaying HOM on the offending lines. For a dramatic example, you can load Hexen over Heretic and then visit a Heretic map, where all the textures have become HOM.

* Variable pitch sounds work better now.

* Sounds can be seamlessly looped by ambience and sound sequences, and hardware channels are no longer stomped on unless all channels are taken, in order to make this work properly.

* Sound caching restored to proper semantics so that sounds don't stay in memory forever after being loaded, thanks to some code from Chocolate Doom.

* "Additive" sounds and sounddeltas can be defined in the new ESNDINFO and ESNDSEQ lumps. These can overwrite existing EDF sounds of the same name, but cannot specify explicit DeHackEd numbers.

* Joe is now an official team member and is working on tons of Small native functions.

* Ancient DOOM bug that semi-randomly crashed the game when the player fell down tall holes has been fixed at the price of expanding almost every short int in the rendering engine into a long int -- this avoids terrible integer overflow in the floorclip and ceilingclip arrays which caused, among other things, R_DrawColumn crashes, R_MakePlane crashes, and the corruption of almost the entire BSS memory segment, causing additional mysterious libc crashes when shutting down.

Old Post 06-10-06 09:36 #
Quasar is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
Mordeth
Administrator


Posts: 1704
Registered: 05-00


Thanks Quasar! Keep up the good work! Very pleased to see that you're working on ambient sounds.


Quasar said:
* Ancient DOOM bug that semi-randomly crashed the game when the player fell down tall holes


I've actually had this happen regulary in one specific spot in a map. Most of times while playtesting and running with noclip on through that deep pit to get to the stuff I wanted to check. Didn't mind it much, since it never happened when I wasn't using noclipping.

Old Post 06-10-06 11:08 #
Mordeth is offline Profile || Blog || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
Quasar
Moderator


Posts: 2200
Registered: 08-00


It was happening to me almost consistently on The Caves of Circe (Hexen map09 IIRC).

Here's why it happened. If the distance between the worldtop & worldbottom was too great, the value put into the "bottomfrac" variable would be negative, but it would be less than -32768. DOOM would then try to store this value into a short in the floorclip array, which tells where walls end and where floors begin.

But, doing this would cause the value to overflow to a large positive number, such as 32670 for example. The code had no contingencies for large positive offsets and would interpret them as normal column end values. Depending on the exact way this happened, you'd either try to draw a column off the bottom of the screen, try to draw a flat off the bottom of the screen, and/or the loop in R_MakeSpans would run drastically out of bounds and trash most of the static global variables in the program.

This latter occurrence is why it took me this long to fix this problem. I was aware of the R_DrawColumn overflow crash many years ago, but every time I tried to intercept it with live tests the program would crash anyways, or it would crash on exit and not show me an error message I had programmed. While looking at all the statics in the VC++ debugger this time, I realized memory had been overwritten, and with a combination of a .map file and some printf debugging (don't ever let anybody malign it, it can work...), I figured out the source of it.

Old Post 06-10-06 18:57 #
Quasar is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
All times are GMT. The time now is 18:46. Post New Thread    Post A Reply
 
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Special Interest > Eternity > EE Progress Report

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.

Forums Directory