Doom Environment Simulator v2.03alpha ------------------------------------- This is the first version which can render transparent wall textures. Some refinements have also been made to the upper / lower pegging modes. Due to the textures now being cached from disk, and the fact that no attempt is made to load graphics before starting a level, there is a significant amount of disk activity to be expected each time the program encounters a texture it has not yet seen. After all the textures have been rendered at least once, the disk activity will probably stop altogether, providing your machine has enough ram to store every texture in a given level. If you do not have enough ram to hold every texture needed, the graphics cache will intelligently keep the most frequently used textures in ram, and load new textures at the expense of lesser used ones. Again, by the time this point is reached, disk activity should be almost zero. To cut a long story short - implementing a simple routine which forces the cache to 'look' at each texture in the level before starting, will ensure that 90% of the textures will be 'thrashed' into ram before the game begins - eliminating disk swapping almost completely at the expense of a short initial delay (like Doom). For the moment, I just want to be sure the disk swapping works properly in realtime, and I'm leaving it like this for now. As an aside (and the prime reason for writing a graphics cache) - this demo will work with only 32k of memory space free for the cache - even if it WOULD take about 20 minutes to draw the screen after all the implied disk thrashing! :) The texture browser has been removed, so don't be surprised if it doesn't work. :) If you don't have a Heretic WAD, go and find one. It looks a hell of a lot better than Doom, and is worth seeing on an Atari machine! There are 4 versions of the executable - numbered in order of compatibility from 1 -> 4. Version 1 will probably only work on 16Mhz bog-standard Falcons, but is optimised for that machine and is the fastest of all the executables. Version 4 will work on anything (hopefully), including the fastest and least compatible accelerators / caches / FastRAM combinations. It is also the slowest of all the executables due to the additional safety measures which have been enabled. There is actually very little difference in speed between the 4 versions, so don't panic if some don't work on your system. It is up to the user to find the fastest, most stable executable to use from now on. The sources contain a compat_level setting to allow anyone to compile their own version with the required compatibility level. If NONE of the versions work properly on Afterburners or any other type of card, I will need to know as soon as possible! Operational details: -------------------- Commandline options: > doom192a.ttp ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Doom I example: Load episode 2, mission 3 from doom.wad > doom192a.ttp doom.wad e2m3 > Ultimate Doom: episodes 1-4 available > Commercial Doom: episodes 1-3 available > Shareware Doom: episode 1 available only ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Doom II example: Load mission 13 from doom2.wad > doom192a.ttp doom2.wad map13 > maps 1-32 available ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Heretic example: Load episode 1, mission 4 from heretic1.wad > doom192a.ttp heretic1.wad e1m4 > Shareware Heretic: episode 1 available only ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Movement keys: Arrow keys left / right & forward / back ALT hold down for strafe / sidestep SHIFT hold down for run Option keys: ESC quit TAB toggle map on / off '1' rise '2' drop '3' toggle horizontal detail '4' toggle vertical detail (not ready on VGA yet) 'V' select VGA aspect ratio (320x240 = fullscreen -> default) 'R' select RGB (PAL) aspect ratio (320x200 = fullscreen) 'F' toggle normal/full display height (320x200 <-> 320x240) '-' decrease window size '+' increase window size When using the texture browser, you may use the arrow keys to move forward and back through all of the available wall textures in the IWAD. The textures displayed are full 'composite' TEXTURES from the TEXTURE1 & TEXTURE2 directories in the IWAD - not simply patches from the PNAMES directory. This is the beginnings of the graphics cache which is needed for management of large numbers of textures in memory at once. The detail options are not yet complete, as the special hardware video modes required to achieve 160x200, 320x100 & 160x100 are not yet implemented on VGA. I have been sent the appropriate routines but have not yet had time to make the necessary modifications to the engine in order to make them useful. There is however software emulation for all of these modes which is almost complete. The currently supported modes are:- RGB : 320x200 / 320x240 RGB : 320x100 / 320x120 (hardware emulation) RGB : 160x200 / 160x240 (software emulation) RGB : 160x100 / 160x120 (part software, part hardware emulation) VGA : 320x200 / 320x240 (software emulation) VGA : 160x200 / 160x240 (software emulation) The other detail modes do work, but they will currently look squashed. The currently unfinished modes are:- VGA : 320x100 / 320x120 VGA : 160x100 / 160x120 To use this demo, you will need a Doom IWAD level file of some kind. PWAD (patch WAD) files will not work as they do not to contain the correct number of textures. A 4MB Demo WAD is freely available for the PC (shareware Doom). There are also 10MB (commercial Doom) & 12MB (Ultimate Doom) versions if you have access to those - and even a 14Mb Doom-II WAD which might also work. WAD files from Heretic (Shareware & commercial) will also work with this program - and look even better than Doom. Any WAD smaller than the ones stated is likely to be a PWAD and will not be much use... I will be using the 4MB & 12MB WADs for testing, just in case problems arise and you need to know. Important modifications: ------------------------ * 1.32alpha -> 1.7alpha > The NodeInCone function is now on the DSP. > A new DSP function has been employed to defrag the floor runs. > Rotational, perspected mapping function for floors & ceilings. > Distance shading for floors & ceilings. > Perspected mapping function for walls. * 1.7alpha -> 1.8alpha > Removed unwanted FPU instructions: * 1.8alpha -> 1.9alpha > Replaced 'additive' shading scheme with better 'scaled' shading. > Added lighting to walls. > Added depth-cueing to walls. > Optimised texture mapping code for CPU bus pipeline. > Optimised texture-index calculations > Optimised texture-run storage & lookup > Modified WAD parser for easy acess to individual resources. > Different textures just for the hell of it. * 1.9alpha -> 1.92alpha > Floor & ceiling textures loaded from IWAD & used correctly. > Fixed vertical aspect ratio for VGA. > Changed the distance shading curve YET AGAIN! (I want ID's original source!) > More accurate floor / ceiling rendering routines. > Low detail modes now work fully on RGB & partially on VGA. > Fixed the sky texture and then discovered it wasn't quite so fixed after all. > DSP / CPU communications optimised for walls. > New full-height (320x240) capability! > New texture-browsing mode. * 1.92alpha -> 1.93alpha > Compatibility modes added for accelerators. > Scaled motion now used for drastic changes in framerate. > Bobbing feature when walking / running. * 1.93alpha -> 2.00alpha > Fully textured walls. > Auto-defragmenting memory manager. > Graphics resource cache with hit-frequency organiser. > Texture pegging & offsets used for mapping. > The sky now looks a lot better. * 2.00alpha -> 2.01alpha > Double-VBL Falcon/VGA bug fixed. * 2.01alpha -> 2.02alpha > Double-VBL bug fixed again (correctly this time). > Improved wall mapping (rounding errors caused bad joins). * 2.02alpha -> 2.03alpha > Transparent walls now supported. > Texture pegging improved. > Fixed reschange problem on exit. ------------------------ Doug @ Black Scorpion Preferred e-mail: <101573.1275@compuserve.com> Alternate e-mail: