mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-08-03 12:47:01 -04:00
886 lines
40 KiB
Plaintext
886 lines
40 KiB
Plaintext
11/01/98 -- Changes
|
|
|
|
* Added credits screen.
|
|
|
|
* Added support for .deh/.bex inside of wads. Found and fixed several more
|
|
Boom DEH bugs.
|
|
|
|
* Added support for user comments to be embedded inside of mbf.cfg.
|
|
|
|
* Fixed plat speed in -beta emulation.
|
|
|
|
* Tidied up demonstration wads/dehs.
|
|
|
|
* Wrote docs.
|
|
|
|
10/30/98 -- Changes
|
|
|
|
* Added ability for monsters to be affected by friction (ice/sludge).
|
|
|
|
* Fixed menu-popup during demo playback if automap is active.
|
|
|
|
* Fixed EndGame during single-playback demos.
|
|
|
|
* Fixed dogs' aggressive level to be what it was before.
|
|
|
|
* Found out that default.cfg is read and understood by Allegro, to the peril
|
|
of your music :) default.cfg should not be used for any Doom-like engine
|
|
which uses Allegro, unless you really need it for your sound card.
|
|
|
|
* Fixed ice bobbing once again (I can see why it led to so many problems :)
|
|
|
|
* Fixed point-source wind effect so that it affects monsters and players
|
|
equally, and so that it generates force inversely proportional to distance
|
|
squared.
|
|
|
|
* Fixed Final Doom gamemission setting.
|
|
|
|
* Made missing patch error output less verbose unless -devparm is specified.
|
|
|
|
10/29/98 -- Changes
|
|
|
|
* Fixed problems with backspace in setup/option menus (wrong menu was chosen).
|
|
|
|
* Fixed bobbing and ice even more, to eliminate the influence of voodoo dolls
|
|
on bobbing, and to make ice more realistic.
|
|
|
|
* Stopped recording this log.
|
|
|
|
10/28/98 -- Changes
|
|
|
|
* Fixed many Boom bugs
|
|
|
|
* Wrote my own blockmap builder that I had been planning on doing.
|
|
|
|
* Fixed slime trails after looking at some demos of it.
|
|
|
|
* Fixed Boom door lighting effect to have gradual lighting instead
|
|
of an on/off switch that happens when the door is all the way
|
|
opened or all the way closed.
|
|
|
|
* Added 271 & 272 linedefs for sky property transfer. Avoids many
|
|
of the issues of skies which were imposed on in Doom, and is an
|
|
elegant solution. Skies can also be rotated if scroll effects are
|
|
used.
|
|
|
|
* Imported some minor Boom bugfixes (compatibility mainly, plus messages,
|
|
Final Doom).
|
|
|
|
* Fixed Boom v2.02 bugs: underwater sprite lighting, stairbuilding,
|
|
DEH thing flags by name. DEH flags have separate TRANSLATE1 and
|
|
TRANSLATE2 flags now, and they are OR'ed instead of added, so as
|
|
to prevent multiple entries from causing problems. The | symbol
|
|
may also be used to replace + as a punctuator in such a list,
|
|
although spaces are all that are needed.
|
|
|
|
* Fixed player bobbing to only occur when player is applying thrust.
|
|
Thus players standing still on conveyors, or sliding down ice,
|
|
aren't affected by bobbing (although ice code makes it difficult
|
|
to see the difference).
|
|
|
|
* Saved fractional texture offsets and fractional sector heights in
|
|
savegames, mainly for sky rotation.
|
|
|
|
* Added hotkey for setup menu.
|
|
|
|
* Fine-tuned automap pointer so that follow-mode-off cursor remains
|
|
as close to the follow-mode-on cursor as possible, until the player
|
|
moves it, as far as displayed coordinates go. Verified that there
|
|
isn't any noticable bias (full zoom-in shows the floor height to
|
|
change exactly at the right boundary where the pointer points).
|
|
|
|
* Split compatibility setup menu into two screens, and fixed the
|
|
highlighting of the two-line FIST/CHAINSAW SG/SSG weapon toggle option.
|
|
|
|
10/21/98 -- Changes
|
|
|
|
* Added option to ignore SG/SSG and Fist/Chainsaw toggles
|
|
|
|
* Fixed savegames during demo recordings
|
|
|
|
10/20/98 -- Changes
|
|
|
|
* Made sure beta lost souls stopped moving when dead.
|
|
|
|
* Added option to prevent zombie players from exiting levels (Phase I goal).
|
|
|
|
* Tried to address up/down asymmetry in monster behavior on stairs.
|
|
|
|
* Added support for dogs to jump down off tall ledges.
|
|
|
|
* Enabled Doom stair builder behavior when compatibility-selected.
|
|
|
|
* Tidying up menus.
|
|
|
|
10/18/98 -- Changes
|
|
|
|
* Added new menus: General and Doom Compatibility.
|
|
|
|
* Nearly all .cfg variables are now settable in menus, eliminating the need
|
|
for .cfg editors and front-ends.
|
|
|
|
* Improved menu system's numeric input, to allow backspace during input,
|
|
to allow negative values to be entered, and to avoid changing the original
|
|
value if the entered value is out of range.
|
|
|
|
* Made menu system's reset-to-defaults more robust (false activation or
|
|
improper functioning of this routine might explain the random resets to
|
|
defaults that occur, but then again, it may not explain them).
|
|
|
|
* Added menu support for filenames to be entered.
|
|
|
|
* Added support for up to two wads and two .deh files to be preloaded. The
|
|
preloaded ones take precedence over anything on the command line, allowing
|
|
something like a full-brightness wad (which changes the colormap) to always
|
|
take precedence. However, -noload can be used to suppress it, such as if a
|
|
demo that doesn't use the .wad or .deh file(s) needs to be played back.
|
|
|
|
* Added menu support for options pending until next program invocation, as
|
|
well as options which must have a function called after they are changed
|
|
(e.g. changing the video mode).
|
|
|
|
* Added optional flashing disk icon, as in Doom.
|
|
|
|
* Split Doom compatibility variable into separate parts, allowing each to be
|
|
changed independently in the Doom Compatibility menu.
|
|
|
|
* Emulated beta lost soul behavior.
|
|
|
|
* Other touchups in beta: player sprites, E2M5 sky, berserk pickup, and others.
|
|
|
|
* Made engine clear 2s flags in linedefs without second sidedefs, to prevent
|
|
SegViols on common wad errors. Doom didn't crash on most of these wads, only
|
|
because it used a different DOS extender, and the behavior is undefined
|
|
(it's Russian Roulette when it comes to programs).
|
|
|
|
* Added automap option to show automap pointer coordinates, instead of player
|
|
coordinates, when follow mode is turned off.
|
|
|
|
* Added option to make HOM cheat either a solid color or flashing.
|
|
|
|
10/06/98 -- Changes
|
|
|
|
* Less-rapidly changing levels.wad and graphics.wad are now distributed at:
|
|
http://classicgaming.com/doom/betalevl.zip
|
|
|
|
* Improved Pause during demo playback. Now it stops intermission and demo pic
|
|
screens better, and automap and menu are easier to use when demo is paused.
|
|
|
|
* Fixed underwater sprite drawing slowdown and added lighting flicker to the
|
|
savegame.
|
|
|
|
* Added ability to save games during single-player demo playback. Now you can
|
|
save in the middle of demo playback, as well as recording. Saves that were
|
|
recorded in the demo, are suppresed during playback and a warning appears.
|
|
|
|
* Fixed Boom music delta problem (random garbled noise in some music, such as
|
|
Memento Mori 2, MAP23).
|
|
|
|
09/29/98 -- Changes
|
|
|
|
* Pauses are now allowed during demo playback. However, in rare cases, using
|
|
pause during demo playback may cause desyncing, especially at the beginning
|
|
of the next level or in cases where the intermission screen is paused
|
|
(testing is encouraged, but is only good if reproducible by me with a demo).
|
|
|
|
* Entering the menu while recording a demo does not cause the demo to desync
|
|
anymore during playback (a Doom bug).
|
|
|
|
* Savegames recorded in demos get a suppression warning message printed when
|
|
played back (but no game is saved during playback).
|
|
|
|
* Fixed Boom bug in which menu messages >= 40 characters would not print
|
|
correctly. Pressing F9 before setting quickslot would print a message with
|
|
garbage at the end. Actually, this was a Doom bug too, but it was probably
|
|
never visible, due to compiler differences.
|
|
|
|
09/22/98 -- Changes
|
|
|
|
* Fixed torque code. Now oscillations don't happen easily -- a falling object
|
|
now reaches equilibrium, and objects don't fly off ledges at fast speeds.
|
|
|
|
* Made Boom sprite lighting more consistent under deep water or over fake
|
|
ceilings.
|
|
|
|
* Made config file handling more robust, and added informative diagnostics.
|
|
|
|
09/15/98 -- Changes
|
|
|
|
* Fixed bugs in torque code, so that it only affects non-sentient objects
|
|
that fall under gravity.
|
|
|
|
* Fixed Boom bug in which "soundtargets" (permanent signatures of sound
|
|
origins that are left inside sectors) are not saved across savegames.
|
|
Soundtargets are saved and restored now.
|
|
|
|
* Improved bouncing code so that grenades lose less momentum bouncing off of
|
|
walls, and so that the only momentum that is lost, is the component that is
|
|
perpendicular to the wall.
|
|
|
|
* Removed TNT prefixes from all cheat codes. TNT*** should still work (except
|
|
TNTKA and TNTEM), but the TNT is not a part of the cheat code anymore. Added
|
|
back IDK, finally, and added KILLEM.
|
|
|
|
09/13/98 -- Changes
|
|
|
|
* Commented out code which lets monsters drop off of tall ledges, since it's
|
|
too risky right now.
|
|
|
|
* Added code to simulate torque on objects hanging over ledges. Objects at
|
|
rest can now fall off of ledges if their center hangs off of one. This makes
|
|
up for the anamoly in which objects could be pushed over ledges, but they
|
|
often came to rest before falling off, and would stay up at the taller height
|
|
even though most of their mass was over the ledge. That anamoly did not occur
|
|
in Doom, because in Doom, tall dropoffs had invisible barriers which blocked
|
|
the motion of all objects except players and corpses -- if an object was
|
|
pushed over a ledge, it would stop moving if the ledge was too tall, no
|
|
matter what force was applied to it. That had to be removed in Boom, to
|
|
allow conveyors to push objects off of ledges. Note: multiple ledges can
|
|
be used, and can cancel each others' effects out, although the amount of
|
|
realism is limited to what Doom can handle -- after all, there's no such
|
|
thing in Doom as angular (rotational) momentum, at least not yet :) To
|
|
simulate it realistically, would require handling angular momenta along
|
|
the x- and y-axes, and would require being able to rotate sprites. So
|
|
the realism is necessarily limited, and improving it would be harder.
|
|
Doom copped out by simply not allowing objects to ever hang over ledges
|
|
in the first place.
|
|
|
|
* Fixed minor oversight in stuck-in-wall fix (it didn't account for players
|
|
stuck under floors). Boomedit.wad's exit teleporter sticking problem is
|
|
fixed now. (Note: this fix has no relation with TeamTNT's recent effort.)
|
|
|
|
09/09/98 -- Changes
|
|
|
|
* Added AI to help monsters stay out from under crushers (they can still get
|
|
through safely), and to let monsters jump off of tall ledges if that's the
|
|
only way they can escape from near-death (now, if I can just make the dogs
|
|
do that normally :).
|
|
|
|
* Improved stuck-in-door fix to be more accurate. Now it guesses better,
|
|
so it should almost be unnoticable, except that monsters don't stick to
|
|
doortracks anymore.
|
|
|
|
* Made monster AI more uniform (as far as friends vs. enemies of player).
|
|
|
|
* Tried to maximize AI efficiency without slowing the game down much, by
|
|
using lots of tricks.
|
|
|
|
09/08/98 -- Changes
|
|
|
|
* Added AI to let monsters more easily join friends on crowded lifts.
|
|
|
|
* Added AI for monsters to help dying friends.
|
|
|
|
* Added AI for monsters to strafe or back away from enemies when tactically
|
|
advantageous (such as in Tyson wads, or when the enemy is one of the dogs).
|
|
|
|
* Added AI for monsters to be smarter about going after enemies. Specifically,
|
|
going after enemies in the immediate vicinity first, and tending more to
|
|
divide up work with others, by passing up enemies that are already engaged
|
|
with friends (previously there was an overt tendency towards pack-attacks).
|
|
|
|
* Minor performance tuning.
|
|
|
|
09/05/98 -- Changes:
|
|
|
|
* Fixed Doom II SSG gunshot flash to be more uniform in lighting along the
|
|
gun.
|
|
|
|
* Fixed Classic BFG to brighten up BFG during firing, and to have less
|
|
pronounced recoil.
|
|
|
|
* Fixed Boom bug which was cause of slowdown with friendly monsters, and
|
|
which caused large levels to slow down under Boom in multiplayer games,
|
|
when a player went out of view of a monster.
|
|
|
|
* Improved monster AI to search more quickly and intellgently, by only
|
|
considering a few monsters at a time, searching in the immediate
|
|
vicinity first, and searching monsters in an order which leads naturally
|
|
to friendly monsters dividing up their work among different targets
|
|
(instead of all friendly monsters going after one target, then another,
|
|
etc.).
|
|
|
|
* Tuned fixed-point arithmetic functions a little more, gaining a few fps
|
|
under -fastdemo.
|
|
|
|
8/29/98 -- Changes:
|
|
|
|
* Fixed Boom friction slowdown problem, I think :) Boom used a crazy
|
|
algorithm, which explains the slowdown:
|
|
|
|
* Each object is set to "normal" friction at the beginning of every tic.
|
|
|
|
* During EVERY TIC, every sector which is tagged with a friction linedef,
|
|
is checked to see if it really has friction property (the sector flag).
|
|
If it does, then every object touching that sector is checked, and has
|
|
stored into it, the friction it would need if it were moving.
|
|
|
|
* Whenever it comes time for an object to be moved, its previously stored
|
|
friction value is used to reduce or amplify its momentum.
|
|
|
|
Friction was being stored as an object's property, when it really should
|
|
be a sector's property. Thus, every object on the map had to be updated
|
|
with friction information every gametic, whether or not it really needed it.
|
|
|
|
The new approach:
|
|
|
|
* Each sector which is tagged with a friction linedef, has friction
|
|
parameters computed and stored with the sector, at the beginning of
|
|
the level (this information can't change during the level).
|
|
|
|
* When it comes time to compute the friction applied on an object
|
|
(a computation which doesn't even happen for some objects, or
|
|
which only happens during certain times), then the sectors which
|
|
the object is in contact with, are checked for friction and the
|
|
floor with the most friction which is contacted, is used when
|
|
updating the object's momentum.
|
|
|
|
The result is that we do a little more work per object than the
|
|
old method did, but we process FAR fewer objects for friction
|
|
information, and we do so FAR less often.
|
|
|
|
Demo sync with past versions of Boom is not guaranteed, but -might-
|
|
work. Over 50 lines of code were rewritten, and the slightest
|
|
difference in timing or anything else, could throw off Boom demos
|
|
which use friction. The old approach was simply wrong, and keeping
|
|
it for demos leads to "code explosion": Essentially, to maintain
|
|
100% demo sync, you've got to double the size of your code, and
|
|
maintain two completely different versions, one of which is bad,
|
|
since there's not enough overlap between the two versions to simply
|
|
'nudge' one into behaving like the other, based on whether an old
|
|
demo is running or not. Also, the old version would be prone to
|
|
"bit rot", because unless it's exercised regularly by testing and
|
|
playing, it will likely get a bug without notice, and the only
|
|
symptom may be a demo desync noticed months after the bug was
|
|
introduced. All my software engineering instincts go against
|
|
keeping the old, performance-buggy code around for demos, and
|
|
only for demos.
|
|
|
|
* Considerably sped up monster searches for targets, by supplementing
|
|
existing Doom thinker_t data structure with linked lists containing
|
|
objects in a particular class. Each object can be a friend, an enemy,
|
|
or a misc object. The regular thinker_t list and operations on it are
|
|
pretty much unaffected. But each thinker_t now has additional linked
|
|
listed pointers, cprev and cnext, which point to the previous and next
|
|
members in the same class as the node. Every time an object is spawned,
|
|
killed, or changes its friendliness, the node's class links are updated,
|
|
so that it is placed in the correct list. The result is a continously
|
|
updated list of possible targets for monsters, without burdening the
|
|
monster search with extra objects which are not candidates. If there
|
|
are only 3 friendly monsters, for example, but 10000 other objects,
|
|
then a search for friendly monsters would only involve those 3 objects,
|
|
instead of 10003 as with the old method (10000 of which would be rejected
|
|
immediately, but would still be scanned). Searching the thinker linked
|
|
list for monster targets that are not really candidates for monster
|
|
targets, puts a lot of load on the CPU, especially given the linked
|
|
nature of the list (causes lots of memory cache misses). The new
|
|
method entirely skips such non-candidates.
|
|
|
|
* Fixed Beta plasma fireballs, to stop them from activating lifts.
|
|
|
|
* Made "doomednum" lookups faster, by using hash tables. Only affects
|
|
level startup time (not performance of regular play), when all of the
|
|
things are spawned initially, and the thing types are translated to
|
|
mobj types.
|
|
|
|
8/23/98 -- Changes:
|
|
|
|
Too many to remember :)
|
|
|
|
8/18/98 -- Changes:
|
|
|
|
* Added Doom-style page flipping for faster display without tearing. Now
|
|
486 and other low-end systems can have smooth play without slowdowns due
|
|
to waiting for vsync. (Note: page flipping has nothing to do with memory
|
|
managers, EMS, or XMS, nor is there any remote similarity. I say this since
|
|
someone I know, once assumed it had something to do with virtual memory
|
|
paging. No, it's completely different.)
|
|
|
|
* Improved setup menus to print warnings about modified parameters that are
|
|
sometimes delayed until the next game, to prevent confusion. This includes
|
|
the Beta BFG. If you save a game with the Beta BFG turned on, but your
|
|
default is to have it off, then loading a game may temporarily turn it on.
|
|
If you go to the menu, you will now be warned about the discrepancy, which
|
|
is NOT a bug.
|
|
|
|
Don't ask for any more beta features to be made optional in Boom outside of
|
|
the general -beta option :) The BFG is the only separate one. Doing it for
|
|
all of the beta's features would take too long and would waste memory while
|
|
you play Boom (because of all the extra sprites which are needed). Use -beta
|
|
for beta features. Only the BFG has enough reason to be a separate weapon,
|
|
and it does not take up much memory as far as sprites go, since it only needs
|
|
the old fireballs (the BFG itself is the same).
|
|
|
|
8/14/98 -- Changes:
|
|
|
|
* Fixed rad suit palette bug.
|
|
|
|
* Fixed Doom bug in which prevented using non-missile exploding objects
|
|
in blocklists. Fixed grenades on lifts.
|
|
|
|
* Improved bouncing objects to bounce off of walls.
|
|
|
|
* Prevented screen palette changes if -nodraw is used.
|
|
|
|
* Allowed TNTHOM and IDDT cheats to be used during demos.
|
|
|
|
8/09/98 -- Changes:
|
|
|
|
Fixed some Doom bugs:
|
|
|
|
* Monsters stuck in doortracks -- this was a Doom bug, in which Doom thought
|
|
that since a monster was touching a door linedef, and its motion was blocked,
|
|
that ALL it had to do was open the door, and this would be enough to free its
|
|
motion. Of course, this is not true if it was moving towards the doortrack!!!
|
|
No amount of door-opening will free it up, if it's moving towards the
|
|
doortrack. The solution was to randomly return failure when a wall obstacle
|
|
was met but a door linedef was activated. This way, the monster will try
|
|
other alternatives some of the time, not always assuming that opening a door
|
|
is sufficient to free itself. Tested it with a Baron, and it works. Note:
|
|
returning false all the time, would make it look funny, since then a monster
|
|
would always turn away from a door for a split second after opening it. And
|
|
determining exactly when it's stuck and when it's not, is difficult to do.
|
|
A random approach has a much better chance (pun), since it explores different
|
|
alternatives, independent of their interaction with the environment.
|
|
|
|
* Beta BFG and other fireballs passing through walls. This was another Doom
|
|
bug, which just happened to occur more often with the beta BFG because of
|
|
the number and velocity of fireballs. Doom normally cuts all object motions
|
|
into steps no larger than a certain distance, so that collisions are not
|
|
missed. However, someone forgot to use absolute value when comparing speeds,
|
|
so instead of (|x| > max OR |y| > max) being the test, (x > max OR y > max)
|
|
was the test. This caused non-uniformity in how collisions were handled,
|
|
depending on which compass direction the objects were moving. Fix is to
|
|
make it symmetrical, and this happens to fix most cases of the beta BFG.
|
|
YabbA DaBba Doom!!! (Yet Another Doom Bug!!!)
|
|
|
|
* Fixed Boom bug in setup menu, in which numeric entries (as opposed to yes/no
|
|
entries, weapons, or keyboard mappings), did not become active during the
|
|
current game (someone forgot to implement ptr2 for numeric menu items :)
|
|
|
|
* Fixed bug in cr_brick translation table (16 extraneous bytes right after
|
|
the active range of 176-191 -- simply deleted the one line of C code which
|
|
was extraneous).
|
|
|
|
* Made sky ivulnerability colormap behave like Doom's when compatibility mode
|
|
is used. In non-compatibility mode, the sky has the same colormap as
|
|
everything else does, under invulnerability, but in compatibility mode the
|
|
old behavior is used.
|
|
|
|
* In non-compatibility mode, made boss spawners, and only boss spawners (and
|
|
players), telefrag others. Old logic (still used in compatibility mode):
|
|
Telefrag if agent is a player, or MAP30 is running. New logic: Telefrag if
|
|
agent is a player, or if it's a boss spawner. Old demo sync is preserved, of
|
|
course, by reverting to old behavior in old demos.
|
|
|
|
* Added new automap color to indicate friends under iddt cheat.
|
|
|
|
* Improved performance of monsters seeking player friends as enemies --
|
|
previous implementation had a large slowdown caused by excessively
|
|
searching for them.
|
|
|
|
* Added BFG2704 message in beta emulation mode (Oh Yes!!!).
|
|
|
|
* Made friendly monsters tend to stay a certain distance from the player,
|
|
which can be programmed in the setup menu. It's only very approximate,
|
|
and does not constitute a hard rule that prevents friends from getting
|
|
closer. All it does, is that when friends are following the player, they
|
|
move away from the player when they are within this distance. But if
|
|
they are attacking another monster, possibly right next to the player,
|
|
this distance doesn't matter. Making this too strict, makes the friend's
|
|
behavior too easy to predict. Experiment with the distance (default 128),
|
|
and tell me what you think -- it's supposed to keep the dogs (or other
|
|
monsters) out of your feet, but where they can still follow you.
|
|
|
|
* Improved BFG's bouncing to support other objects as well. As an example,
|
|
grenade.deh is included. You can also make the player have the MF_BOUNCE
|
|
flag set, in which case, the player will bounce on the floor and experience
|
|
a kind of flying :)
|
|
|
|
... And others I can't remember. Don't waste time writing a LONG description,
|
|
or recording a demo, for a change you notice that I did not mention, without
|
|
first checking with me, because it's most likely a very intentional fix for a
|
|
Doom bug, that I forgot to list. Just mention it if it concerns you, such as if
|
|
it's doing something really crazy, or if it breaks demo sync with Doom or Boom
|
|
demos of version 2.02b or earlier.
|
|
|
|
8/04/98 -- Changes:
|
|
|
|
Fixed a teleporter problem in which the height was sometimes off -- oops!!!
|
|
|
|
8/03/98 -- Changes:
|
|
|
|
Made regular monsters look for friends and wakeup if they see them or are
|
|
attacked from behind. Now a dog who goes up and chews a Baron on his rear,
|
|
will have his day :) Enemies still look for players first, but will go after
|
|
friends as well if they are spotted. Not sure of impact yet, or whether this
|
|
needs to be made optional.
|
|
|
|
Fixed (or rather, worked around) beta chaingun sprite problem. The beta Doom
|
|
did not have complete sprites for its chaingun (some were chopped off at the
|
|
bottom), but this did not matter for the beta, because it did not allow
|
|
fullscreen. Workaround is to lower the chaingun while it fires, so that you
|
|
don't see any of the messed up sprites. In non-fullscreen mode, it still
|
|
works as before.
|
|
|
|
Included player and rocket sprites, based on two requests / beta discrepency
|
|
reports.
|
|
|
|
Improved player autoaiming so that friendly monsters can be aimed at by
|
|
players, despite autoaiming preferring enemies when there is a choice.
|
|
If you want to get a kick out of killing dogs, you can do so easily now :)
|
|
|
|
Fixed -timedemo so that automap, messages, and other things work just as in
|
|
-playdemo and -fastdemo.
|
|
|
|
8/02/98 -- Changes:
|
|
|
|
Fixed Boom v2.01/v2.02b bug with not being able to pick up weapons, which
|
|
happened randomly on DM levels. <rant> I'm going to see if the new Ty-rrany
|
|
Source Project can crack this one, which took me 10 hours :) I won't tell
|
|
them, not just yet. If they solve it, it will probably only be through trial
|
|
and error, by backing out past changes and comparing results. </rant>
|
|
|
|
Removed TNT ENDBOOM screen, replacing it with regular id ENDOOM screen.
|
|
|
|
Fixed monster movement clipping so that monsters don't hang off ledges
|
|
voluntarily, but can escape if pushed. Previous fix allowed them too much
|
|
freedom.
|
|
|
|
Fixed player movement clipping so that players can get out of stuck positions,
|
|
such as if they teleport partially inside a closed door or a 1s wall. Needs
|
|
testing again to make sure no "holes" were left :)
|
|
|
|
Note: movement clipping fixes do NOT currently include removing "bumps" along
|
|
walls when sliding along them. That bug is Doom's and is hard to fix because
|
|
Doom uses something similar to what is termed "impulse-based simulation" in
|
|
the literature -- lots of tiny collisions (impulses) happen along the wall, to
|
|
simulate an overall smooth motion. When the player's motion is at an angle
|
|
towards the wall, the component parallel to the wall, minus friction, becomes
|
|
the resulting movement. Sometimes Doom calculates this very roughly, leading
|
|
to wall-running, "wall bumps", and other effects. Longer-term item, harder to
|
|
fix.
|
|
|
|
Another note: "getting stuck out of closed doors" does not include monsters
|
|
getting stuck at doorjambs. That's a completely different issue, more related
|
|
to AI than movement clipping (the reason monsters get stuck is not because
|
|
movement clipping says they can't move -- rather, it's because the AI keeps
|
|
trying to make them go in the same direction -- this is known as "getting
|
|
trapped in local minima" in AI literature).
|
|
|
|
7/29/98 -- Changes:
|
|
|
|
Fixed problem with walking through closed doors (happened on rare occasions).
|
|
Backed out change to let player walk out closed doors, until this can be fixed
|
|
without side effects.
|
|
|
|
Tightened stuck-in-wall fix to only cover players, in case wad authors want to
|
|
use it as an effect for monsters (e.g., keep them pinned up to a wall).
|
|
|
|
7/27/98 -- Changes:
|
|
|
|
Fixed demo desync problem, which was caused by accidentally making monsters
|
|
respond more quickly to player attacks.
|
|
|
|
Fixed (or at least, reduced) problem with monsters stuck hanging off ledges.
|
|
In Boom, conveyors and projectiles could push monsters off ledges, but if
|
|
the monsters were not pushed all the way off (only partially), they became
|
|
stuck. The same phenomenon occurred in Doom whenever a monster was lifted
|
|
by a platform but was not completely on it yet. The fix is to relax movement
|
|
clipping so that monsters can move more freely, even when hanging off ledges.
|
|
|
|
Fixed problem with players and monsters getting stuck in walls if teleported
|
|
with even the slightest roundoff error (such as with Boom line-to-line
|
|
teleporters). Fix allows objects to move out of 1s walls and out of closed
|
|
doors, if they are partially inside. To see the effect, turn on no-clipping,
|
|
move into a wall, and then turn no-clipping back off. You will still be able
|
|
to walk out of the wall, but not back in.
|
|
|
|
Fixed long-time Doom bug (more of a hack, really) in which sky textures were
|
|
not properly colormapped with the invulnerability colormap (or the light-amp
|
|
visor colormap in beta emulation). Fix makes everything, even the sky, become
|
|
seen through the same glasses :)
|
|
|
|
Was too tired to work on beta lost soul behavior, or other things. (I needed
|
|
a rest, really, after training all those dogs :-)
|
|
|
|
7/24/98 -- Changes:
|
|
|
|
* Recalibrated BFG parameters to more closely match beta, increasing power
|
|
of fireballs and adjusting exit speed and position along BFG.
|
|
|
|
* Prevented BFG fireballs from bouncing off of skies.
|
|
|
|
* Merged friendly monster code and beta code together, now part of same source:
|
|
|
|
* You can select the beta BFG as an alternate weapon when playing Doom wads,
|
|
by changing the Options/Setup/Weapons setting.
|
|
|
|
* Beta features besides BFG are enabled with -beta command-line option
|
|
(eliminates the need to maintain two executables). New boom.exe replaces
|
|
beta.exe and Boom v2.01.
|
|
|
|
* Monster infighting may be disabled in the Options/Setup/Enemies menu.
|
|
|
|
* The number of helper dogs (1-3) can be changed in the setup menu or with
|
|
the -dogs <nnn> command-line option. (-dogs followed by a number from 0
|
|
to 3).
|
|
|
|
* Demos may be recorded and played back with and without -beta. However,
|
|
-beta MUST be used if a beta demo is played back (allowing the user to
|
|
override this could result in game crashes -- beta demos require beta
|
|
emulation mode be turned on, but it must be turned on at game startup
|
|
-- allowing it to change in the middle of the game would be like asking
|
|
to load wads in the middle of a game -- turn Doom into its own frontend).
|
|
|
|
* Autoaiming of projectile weapons is always enabled in non-beta-emulation
|
|
mode. In beta emulation mode, autoaiming is off unless AIM cheat is used.
|
|
|
|
* Included friend.deh file as a DEH example of creating friendly monsters.
|
|
By changing the thing flags you can turn all of a particular monster into
|
|
a friendly monster (but in the engine itself, not all members of a certain
|
|
type of monsters need to be friendly or not). Friend.deh is commented and
|
|
should be easy to change to make any monster friendly (though I don't know
|
|
what good a friendly Commander Keen will do :).
|
|
|
|
The following problems / bugs / idiosyncrasies are already known about:
|
|
|
|
* HOM and slime trails are not 100% emulated in beta. Those are not worth
|
|
preserving IMO. Artistic errors, yes -- HOM or slime lines (construction
|
|
errors), no. Case closed. :)
|
|
|
|
* Beta emulation lost soul behavior / deaths (still working on it)
|
|
|
|
* Loading 2.01 Boom Savegames give warning but may still work. If this
|
|
warning were not printed, some savegames might crash and you'd ask me why :)
|
|
|
|
* Friendly monsters may be telefragged easily (they hang around telerporter
|
|
exits, especially ones near walls where the only way to go out is to move
|
|
in a direction that's physically farther away from the player).
|
|
|
|
* Friendly Arch-Viles don't resurrect dead players yet (how'd you like to
|
|
be resurrected? :)
|
|
|
|
* Friendly monsters don't wake up monsters like players do.
|
|
[FIXED, except performance concerns still valid and need algorithm rewrite.]
|
|
|
|
* Beta skies are not the drawn the same as in original beta.
|
|
|
|
* Beta chaingun's bottom is drawn incorrectly.
|
|
[FIXED by working around it]
|
|
|
|
* Friendly attack-only monsters cannot be autoaimed at, even if they are
|
|
the only monsters in sight.
|
|
[FIXED]
|
|
|
|
* Helper dogs get replenished health at each level start. Fixing this is
|
|
a little complicated -- when did you last see a non-player carry over
|
|
to the next level? :)
|
|
|
|
* Helpers don't pick up items, need ammo, or use medikits. They don't
|
|
get hurt by nukage. This is very complicated to fix systematically and
|
|
intelligently without messing up the game for the player :) Not a
|
|
one-weekend job, so be patient :)
|
|
|
|
* Beta font is too small or unreadable. For this one, without going the
|
|
full route of creating two sets of fonts (the beta's and Doom's), there's
|
|
nothing that can be done about this, other than improving the colors of
|
|
the text. Either sacrifice the beta font entirely, live with it, or
|
|
significantly rewrite source to allow multiple fonts. Note that the
|
|
setup menu font problem is a completely separate issue from the size
|
|
of the fonts (it has to do with colors instead of size because of an
|
|
algorithm in Boom, transparent to the user, which requires red-colored
|
|
"base fonts").
|
|
|
|
* Friendly monsters cannot jump down ledges. Requires somewhat complicated
|
|
AI to fix this, without making them turn into jumping jacks that jump at
|
|
every opportunity, perhaps into inescapable traps. One idea already
|
|
considered is to add a weapon key to wave the player's fist once, and
|
|
then return to whatever weapon was being used. This waving of the fist
|
|
would not require any new weapons or player signals to be added, but it
|
|
could be used to signal the dogs or other friendly monsters.
|
|
|
|
* Some vertices suck up plasma and bullets. This is really just another
|
|
Doom bug, or a problem in a particular wad's blockmap.
|
|
|
|
* Friendly monsters get in your way (I'm sorry!!! :)
|
|
|
|
7/17/98 -- Changes since last version:
|
|
|
|
* Doubled BFG ammo -- it's hard to tell, but this looks more like the
|
|
original. It seems slightly large, but it's 2 fireballs per cell energy
|
|
used up (40 green and 40 orange fireballs).
|
|
|
|
* Added AUTOAIM and EEK cheats. AUTOAIM cheat toggles projectile
|
|
autoaiming, which is off by default (it was not present in the
|
|
original beta).
|
|
|
|
* Fixed TNTAMO cheat to prevent it from conflicting with AMO cheat.
|
|
|
|
* Don't know whether plasma fireballs bounce on floors and ceilings,
|
|
because there's no way to tell without any z-momentum in the fireballs --
|
|
no autoaiming existed, and certainly no lookup/down, so the fireballs
|
|
always shot straight, which means it's impossible to tell if they would
|
|
bounce. I'll assume they did, since the same fireballs were used for the
|
|
BFG and the plasma rifle.
|
|
|
|
7/14/98 -- Changes since last version:
|
|
|
|
* Fixed invisibility to not affect psprites.
|
|
|
|
* Adjusted plasma / BFG fireball damage to be like Romero suggested to me:
|
|
half the strength of normal plasma in later versions of Doom.
|
|
|
|
7/12/98 -- Changes since last version:
|
|
|
|
* Problem with fireballs walking up stairsteps fixed (looked funny!!!).
|
|
|
|
* Angle spread of BFG fireballs fine-tuned, to look more like the beta.
|
|
|
|
* Fireball exit position improved -- makes fireballs larger when they exit
|
|
BFG, and makes them move with weapon bobbing.
|
|
|
|
* Fireball speed fine-tuned. There's no way of telling the true speed except
|
|
by experimentation (care to become a Doom road cop? :) I doubt even Romero
|
|
remembers details such as the speed of fireballs.
|
|
|
|
* Plasma and BFG fireballs distinguished as far as bouncing.
|
|
|
|
* Fixed light amp goggles to use a green colormap like real night vision
|
|
goggles. There is evidence of this special green colormap in the beta,
|
|
and if you modify the beta's .wad file to insert light goggles, it's
|
|
used, and it also explains the mystery of the unused 34th colormap in
|
|
Doom -- there were originally two colormaps besides the 32 light levels:
|
|
the white one used for invulerability later (used for invisibility in
|
|
beta), and the one used for light amp, which was not used except in the
|
|
beta. Note: the light amp goggles don't ever lose power in the beta,
|
|
and so to prevent users from having to cheat to turn them off, or else
|
|
forever see green until the level finishes, I've retained the timeout
|
|
(I say "retained" since I'm going backwards in time :-).
|
|
|
|
* Made rad suit last until the end of the level (like berserker strength),
|
|
just as in the beta (I assume this is what happens -- I can sit for
|
|
minutes and it never wears off). Also removed palette changes for rad
|
|
suit and berserker, which were not present in the beta.
|
|
|
|
* Made invulnerability orb behave exactly as in beta (potion in a tall
|
|
blue flask colored and shaped like a health bonus in released Doom) --
|
|
it does not affect any palette or colormap, except to flash the white
|
|
colormap when it runs out. The tall blue flask is the old invulerability
|
|
orb, because it has the same sprite name, and it appears under the beta
|
|
if you change a thing to use its thing id. There is such a flask on the
|
|
middle of the 3 pillars on E3M2 which rise when the player walks past
|
|
the UAC room with the unholy bible on the floor, but the flask never
|
|
shows up, because its flags say it's never on map. Later of course,
|
|
it was replaced with a backpack.
|
|
|
|
* E3M2: donut lowers aligned, crushing ceilings changed to correct speed.
|
|
|
|
* E2M5: marble room doors made like original, 4 crushers' walls made steady,
|
|
some original beta bugs restored (e.g. crusher room entrance).
|
|
|
|
Todo list:
|
|
|
|
* Figure out whether plasma fireballs bounced like BFG fireballs.
|
|
|
|
* Consider slowing down lifts (they are running faster than in the
|
|
beta).
|
|
|
|
* Figure out the exact number and distribution of green/orange BFG
|
|
fireballs. I'm currently assuming 20 green and 20 orange, each
|
|
alternating like in the plasma gun, but it looks like there's
|
|
more in the original, maybe as much as twice as many -- perhaps
|
|
each of the 40 units of cell energy delivers an orange and a
|
|
green one. If anyone can run the original beta at ultra slow
|
|
speed, it might reveal the pattern.
|
|
|
|
* Figure out exact speed of BFG fireballs.
|
|
|
|
* Figure out the exact damage of BFG fireballs, possibly depending on color.
|
|
|
|
* Change lost soul behavior to emulate the beta.
|
|
|
|
* Optional BFG autoaiming? (The original BFG did NOT autoaim -- I will
|
|
definitely keep this optional, but perhaps autoaiming should be added.)
|
|
|
|
Files:
|
|
|
|
BETA.EXE Version of Boom modified to have beta features, such as the
|
|
classic BFG9000. This version of Boom is not supported by
|
|
TeamTNT, just me :)
|
|
|
|
GRAPHICS.WAD Replaces and supplies graphics necessary for the Beta.
|
|
This wad can be used with Doom I, Ultimate Doom, or
|
|
Doom II, and is necessary to completely reproduce the
|
|
BFG9000. BETA.EXE automatically adds this file, which
|
|
must be in the same directory as BETA.EXE.
|
|
|
|
LEVELS.WAD Replaces levels and textures used in the Beta version:
|
|
E1M2, E2M5, E3M2, which eventually became E1M2, E3M5,
|
|
and E2M2, respectively. To play these levels requires
|
|
Doom I or Ultimate Doom.
|
|
|
|
Some points to note:
|
|
|
|
* For now, you should copy CWSDPMI.EXE and any other files you
|
|
normally use, from an existing Boom directory. For best results,
|
|
boom.cfg should not be copied over without first reviewing the
|
|
defaults, which are optimized for the Beta, and which are
|
|
different than Boom's defaults.
|
|
|
|
* Lifts in the original 3 beta levels need to be checked to make
|
|
sure the lower textures under them are not missing (HOM), and
|
|
to make sure they are the correct texture (the same as in the
|
|
original beta).
|
|
|
|
* It seems like Romero changed all WR linedef types that existed in the
|
|
beta into W1 linedef types, and then proceeded to add totally new
|
|
linedef types for the WR ones. I had to convert all of the linedefs in
|
|
the beta's wad from Beta WR types (which are the same as W1 types in
|
|
the released Doom), into released WR types. But some might have been
|
|
missed.
|
|
|
|
* Lost souls have not had any behavioral (code) changes made yet.
|
|
That's on the todo list. Right now, there are only new sprites.
|
|
|
|
* Translucency and gamma correction are best turned off, to fully get the
|
|
same "look and feel" as the beta. Oddly, I feel like the beta is more
|
|
colorful and looks better than Doom, which is sorta washed out (either
|
|
washed dark or washed bright). With Doom, I turn up the gamma correction
|
|
because of poor contrast, while the Beta already has better contrast.
|
|
Part of this perception is pure sentimentality :)
|
|
|
|
* The Barons' horns are slightly different in the beta, in case you didn't
|
|
notice :)
|
|
|
|
* You should be able to play any of your favorite Doom and Doom II wads
|
|
with this mod. Only if you use a DeHackEd patch or BFG/plasma sprite
|
|
modifications, should there be any problems, but even then, only DEH
|
|
patches have any chance of making the game unplayable, and then only
|
|
when the BFG is modified by the patch. The vast majority of wads are
|
|
playable with the new BFG.
|
|
|
|
* The health and armor bonuses use the same thing numbers as the demonic
|
|
daggers and the skullchests, respectively. Currently, wads which use
|
|
health and armor bonuses will show demonic daggers and skullchests
|
|
instead, and they will work just as in the beta (they just disappear,
|
|
and a message is printed). Later, I might change this, and change the
|
|
thing numbers in the 3 Beta levels to use 3 unused thing numbers
|
|
(notwithstanding the JDS, or any other outside organization :-).
|
|
|
|
* Please keep this quiet for now, so the release will have more value
|
|
(initially and long-term). If this gets spread around right now,
|
|
people seeing its bugs might lessen its value, or the planned release
|
|
might not get the attention it deserves (people seeing it now will
|
|
be less likely to download it again).
|
|
|
|
* To prevent confusion, I'm talking above about the binary files,
|
|
beta.exe and beta.zip. The Doom news pages knowing about my work
|
|
is perfectly okay, and is intentional (I told them). It's the
|
|
"beta beta" binaries (i.e. the product), that I don't want leaked
|
|
now.
|
|
|
|
Lee Killough
|
|
killough@rsn.hp.com
|
|
http://classicgaming.com/doom/
|