			Wolfenstein 3D ST (v0.2 Beta)
			-----------------------------

hi there,

  i'm back with a new wolf engine that features moveable doors
  and advanced controlls this time.
  
  controls:
	cursor-block - turn left/right, walk ahead/backwards
        alternate    - strafe (slide to the left/right)
	right shift  - run (my TT's left shift-key is broken, so don't
		            wonder please :))
	space	     - open/close a door
	escape       - exit


  remaining/known bugs that will be fixed in the next version:

  - offset exceeds table range at one angle (360 deg.) -> so
    don't wonder about walls shrinking at this angle, suddenly.
    it's hard to hit that angle, though. so you won't most likely
    notice that bug

  - timing-base is to fast for the ST which means that you can't
    notice any diffrence in walking and running as well as the colli-
    sion routines will clip you against walls at odd places (too far
    away from the apropiate wall, which results in a little problem
    with door-opening -> if a door doesn't open, step back a little,
    walk straight against it and try again) as long as you run the
    program on an 8Mhz machine
 

  stuff to be covered in the next version:

  - pushwalls (secret areas)
  - static objects such as lamps, chairs and so on


requirements/specs.:

	-any 1Mb+ ST/e/MST/e/Falcon/TT030 (maybe clones as well)
	-RGB/VGA
	-Fastram-support


any urgent requests: ray@atari.org

ray//.tscc                                                            07-31-02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

history of v0.2 beta:

04-29-02	-had some new ideas and finally decided to continue
		 working on the game - this time it's gonna be aimed
		 at a second beta v0.2

		-background raster moved to color reg 15 to get rid
		 of the colored borders. it doesn't cost any cycles,
		 i just have to use and.b scalers for even rows, now.
		 move.b-scalers have to pass a $f in the low, and.b-scalers
		 in the high nibble, hence the preshifted textures had to
		 be adapted, as well

05-02-02	-completely rewritten 3d engine to work more flexible,
		 quicker and more accurate than the old one - the wall-
		 refresh now works at 16.16 fixedpoint precision which
		 can be noticed by sharp corners we can't look through,
		 as it was the case in some places of the old maze, and
		 the 100% perfect height-zooming of the single wall slices
		 when walking straigt towards them (has been a problem in
		 v0.1 beta, as well) - door support should now be very
		 easasily added

		 -> bug: multiplication overflows in some borderline cases
		 -> done: some minor optimizations
		 -> fixed: overflow bug
		 -> removed: wall collisions - will be added later on
			     in a more complete manner

05-04-02	added: (partial) door-support - they get drawn at the right
		       positions but they can't be opened or closed yet - just
		       like in the original mac version there's a maximum sup-
		       port for 64 doors per level (take a look into the sources
		       of the mac version of wolf3d - every tile is a byte: while
		       the lower 6 bits enumerate the texutre, the upper two bits
		       are used as door/doorside flags)

05-05-02	-doorside textures get drawn at the right places (i.e left and
		 right of doors just where they ought to be)

07-10-02	-rewrote and optimized alot of stuff after this long pause.
		 the nibble-c2p was replaced by a *slightly* (~0.25 vbls)
		 slower byte-c2p (thanx defjam !!), but don't worry this
		 doesn't result in any noticable speed-difference. it rather
		 means: lower memory consumption for textures (no 2nd preshift
		 needed), for the c2p-table (32k instead of 256k), for the
		 scalers (since we only need one sort of those i.e.
		 move.b source(a1),dest(a2)...).
		 sure, we need to clear a buffer that is twice as long but
		 as i mentioned you can't notice the speed diffrence (line-
		 doubling and buffer-clearing will be optimized for blitter-
		 machines within the next days, too).
		 multibyte-scaling shall be applied soon ("move.b source(a1),d0"
		 + n times "move.b d0,dest(a2)" is faster than n times
		 "move.b source(a1),dest(a2)").
		 
		 added: completely dynamic memory allocation (using malloc(),
			mxalloc())

		 -> bug: refuses run on the ST for some reason
		 -> fixed: ST-bug (wrong allocation size in the scaler-setup)

		added: reduced aes-library to display programerrors using
		       "form_alert"

07-11-02	optimized/added: scaling - added multibyte-scalers, which turned
				 out to be only about 10 additional lines of code,
				 much less than expected.


07-12-02	fixed: "stuck-key-bug", using a $118.w-routine and checking for
			ACIA irqs via bit #7 of $fffffc00.w solved this problem.

07-14-02	optimized/added: new player-movement routines. however, wall-
				 collisions are still missing

07-17-02	added: strafe motion (press 'Alternare' key !)

07-20-02	optimized: quicker c2p method using movem.w again (1.884 vbls on
			   a 8 MHz ST with 50Mhz display) + no table alignment needed
			   anymore.

07-21-02	just a cosmetic optimization: i started using the extended STE-
		palette (ST-users: don't worry, it'll work on your machine as well.
		though, the colors will look *slightly* diffrent)

		added: wall-collisions !! pheew...writing this piece of code really
		       sucked ! but now it's done - doors still get handled in a
		       special way as you can still walk straight through them.


07-22-02	added: angle-scale table, meaning that angle wraparound is automatically 
		       handled now (quicker), because the angle range is directly
		       fitted into a word so the gamewindow can be resized without
		       any table recalculation. additionally i can use the same turning-
		       delta for any windowwidth without any diffrence in turning-speed.
                       i added a 70 degree FOV which makes things look a bit narrower and
		       corners sharper (equal to the original macintosh version of the
		       game)

		-> bug: angle seems to exceed table range at 360 degrees (don't know why,
			yet).

07-23-02	added: basic door-opening code - doors keep opening and closing on and on
		       automatically (just for testing pruposes) - however, door-handling
		       routines to make the user able to control (i.e. open) doors has not
		       been written yet (maybe tomorrow).

07-25-02	added: door-processing code - however not tested yet, as some additional
		       data still needs to be assembled...


07-26-02	door-processing routines tested for the first time - i had to find 2 or 3
		bugs, but basically the stuff was working fine. having fixed these bugs it's
		time to bother with optimizing the crap now, i guess.

		optimized/fixed: door processing...need to compile some additional data
				 in order to finish this beta now.

07-27-02	phew, doors are completly functional, finally - except for the colliding
		against them.

07-30-02	yeehaa, i can't quite believe it but the gfx+sfx by ninjaforce (the crew
		that created those data for the apple IIgs version, which is based on the
		macintosh version of wolf3d, that looks much better than the pc-version in
		my eyes) arrived today, finally !! time to include some of the stuff right
		now.

07-31-02	added: some original textures & gfx i just recieved by ninjaforce 
		       (it's 1.35 am :)).

07-31-02	phew...door-collisions are finally done - time to release this thing right
		now.