DOOM 1.9 for BeOS - beta 0.7.0 (September 19, 1997)

Copyright © 1993, 1994, 1997 id Software, Inc.

FOR BEST RESULTS, YOU MUST RUN DOOM FROM A TERMINAL!

Read the rest of this file for more information.

Where to go for More Information

For all the latest, up-to-date BeOS DOOM information, please visit my web site at:

http://www.qnx.com/~chrish/Be/software/doom/

There's a lot of other BeOS information, links to other developers, links to software,
etc. available on my BeOS web site, so you might want to take a look around while
you're there!

http://www.qnx.com/~chrish/Be/

If you've got access to a PC, and want to be really dazzled by some exciting technology,
take a look at QNX's demo disk… a complete realtime OS, GUI, web browser, web
server and more on a single floppy disk:

http://www.qnx.com/iat/

About the BeOS DOOM Beta

This is DOOM beta 7, which now features:

•	The ability to play music and the sound effects at the same time; music will
	also have the correct starting volume (hey, I fixed a bug before anyone
	reported it!).

•	“-3” and “-4” options for windowed play (not for fullscreen!); these aren't
	as heavily optimised as Jon's great pixel doubler (“-2” option), but they should
	be perfectly playable on any machine you'd want to use them on.

•	Preliminary networking that probably doesn't work; I still don't have the means
	to test this.  BeOS DOOM should network with any other DOOM that uses
	TCP/IP networking; all the UNIXes (Linux, Sun Solaris, SGI IRIX, etc.) and
	possibly MacOS and PC (if they can use TCP/IP; the original PC version used
	IPX networking)… oh, and QNX of course.

•	You can now play modified games (with WAD add-ons, the -file option)
	in fullscreen mode.  The warning about no tech support will appear in the
	Terminal that you started DOOM from.

The third DOOM beta, added an extremely optimised pixel-doubling
routine, courtesy of Jon Wätte (the “-2” option) and sound effects (also
courtesy of some code from Jon).

You'll need DOOM and doom1.wad (or doom.wad from the full DOOM, or doom2.wad
from DOOM II).  Any PC or Mac WAD should work, but (for now) the file's name
must be lower-case, and it must be in the directory you start DOOM from.  This is
fairly lame, and will be fixed once I've built a GUI for DOOM's settings.

Final DOOM (or was it Ultimate DOOM?) had an extra “episode”, Thy Flesh
Consumed; this requires a rebuild of the DOOM source code (!), so contact me if you
have this version of DOOM so we can make that fourth episode work.  You should 
still be able to play the other DOOM episodes included in that game.

Run DOOM from a Terminal, with some of these options:

-8bit 	- run in an 8-bit window (default)
-32bit	- run in a 32-bit window
-fullscreen	- run full-screen (requires a system that supports a 640x480
			BWindowScreen; if you can't run Dominoes don't even try this)
-2		- double the pixels for a 640x400 display area
-3		- tripple the pixels for a 960x600 display area (windowed only!)
-4		- quadruple the pixels for a 1280x800 display area (windowed only!)

-joy1	- use Joystick in port #1 (BeBox; bottom port)
-joy2	- use Joystick in port #2 (BeBox)
-joy3	- use Joystick in port #3 (BeBox; top port)
-joy4	- use Joystick in port #4 (BeBox)

Note that Joystick #1 is the bottom joystick port, and #3 is the top.  Strange but
true.

-nomusic	- don't play music
-nosfx 		- don't play sound effects
-nosound	- don't play music or sound effects

-net x host	- attempt to network, where x is the “player number” (a number from
			 1–4), and host is the host name or IP address of the other system

Or the other DOOM options (RTFM, especially the rest of this file).

You can use Home (aka 7 on the keypad) or PageUp (aka 9 on the keypad) to strafe
left and right.

What Doesn't Work

•	Shift + the cursor keys on the keypad doesn't make you run.  If you press
	Shift after the cursor key, you'll correctly run.

•	Networking.  Yes, it's implemented now, but I don't expect it to work because
	it's totally untested.  Marco Nelissen tested an alpha 0.7 version that had the
	first attempt at networking in it (hey, it compiled :-), and it didn't work… this
	is take two.   I'm going to start hacking the networking again as soon as my 
	BeOS Masters Award finally arrives.

•	No support for external MIDI devices yet; sorry.  I'm going to try to borrow
	an external General MIDI device so I've got some incentive to get this working.

•	There's no nice GUI settings dialogs yet, you have to specify all the options
	on the command-line (that's why you still have to run DOOM from a
	Terminal).

•	Starting a new game by double-clicking a WAD file won't work properly.

•	Alt + arrows for strafing may not work in full-screen mode; not sure if
	this is my bug or Be's; remember, "," and "." let you strafe left and
	right.  Using the right-hand Alt key appears to work just fine.  All Alt keys must
	not be created equal.  This should start working OK when I rewrite the keyboard
	input routines (coming soon).

•	No mouse support; this is a no-brainer for fullscreen mode, and John Fehr has
	given me a good suggestion for making it work sensibly in windowed games,
	so I just need some time to implement it.

Known Bugs

•	The Pause key on PC keyboards doesn't pause the game.

•	The “Low detail” setting in the game behaves strangely.  In fact, it leaves the
	game drawing on only the left half of the screen!  Even my BeBox is fast
	enough for “High detail” though, so don't use this.  It's not high on my TODO
	list.

•	Running the MIDI synth and the sound effects is slow on a BeBox
	Dual-66.  This might improve after I rewrite the MIDI player (right now I'm
	lazy and use the BMidiSynthFile object).  Oddly enough, it's still playable,
	even though the MIDI synth is a CPU hog.  Ah, the joys of SMP…  Sound and
	music should be just fine on anything faster.

•	If you're running full-screen, controlling the game with the joystick, and you've
	got Duncan Wilcox's Blanket screen saver running, Blanket will activate and
	start sucking up some of your CPU time (and memory).  It's doing the right
	thing though, since the system only thinks it's busy if you're moving the mouse
	or pressing the keys on the keyboard.  I'll ask Duncan for a “pause button”.

	Update: Duncan thought this was a pretty good idea, but that a better idea was
	to somehow detect when a BWindowScreen has focus, and not activate Blanket.
	He's looking into this.  I agree, this is much better than requiring applications
	to say “I've got a BWindowScreen, don't activate the screen saver…”

•	DOOM might crash when you exit, if your system is running with
	MALLOC_DEBUG set to true.  If you don't know what the hell I'm talking
	about, don't worry about it; this is something developers do to make sure
	their programs don't do anything silly.  Obviously, DOOM is being a little
	silly, and it's my fault, but it's hard to reproduce so I haven't fixed it yet.

•	DOOM might crash when you exit, if you're running with music turned on.
	Don't worry, it won't screw up your game or anything like that, it's just me
	being silly again.

•	DOOM II's final level will crash if you suck (like me) and take a long, long time
	to finish; once a lot of monsters (and I mean huge buckets of bodies) start piling
	up, it'll run out of memory.  Moral of the story is “Don't play in God Mode when
	you're too lame to actually finish the level.”  When I played it in normal mode,
	I died quickly, and DOOM did not crash.

Some speed tests

Here are some speed readings for -fullscreen mode, showing the effect of playing
music through the MIDI synth or 8 channels of sound effects.  The numbers are
frames per second based on “-timedemo demo3” using the DOOM WAD file.  These
seems suspiciously low, since the game seems to play much faster than the time'd 
demo.

Sound		-fullscreen -2
-nosound	12.4	(100%)
-nomusic	10.2	(82%)
-nosfx		9.3	(75%)
(both)		8.8	(71%)

All measurements were done on my BeBox Dual-66 with both processors running.
After running DOOM on the systems at the developer's conference, I can say with
confidence that DOOM screams on a box with a level-2 cache.  All those big
data structures and globals really annoy the tiny caches in the PowerPC 603 CPUs
inhabiting my BeBox.

I'll add a column for my UMAX S900 when it comes in.

Acknowledgements

Many thanks go to all the people who have helped me on this; if I've left
you off the list, let me know and I'll make sure you're there next time!

William Adams			(for getting me interested in BeOS in the first place)
Kevin Armstrong			(for the insider info about Lion's Mac port)
Sebastien Bacquet			(for the MUS -> MID conversion code)
William Bull				(for the excellent icons)
John Carmack				(for the code)
John Fehr					(for not laughing at my original SFX player)
Dominic Giampaolo		(for bugging me for a beta version)
Jake Hamby				(for annoying me with bug reports and helping fix 'em)
Mikael Hjerpe				(for some sample BWindowScreen code)
Micheal Hopwood			(for bugging me to get it working for the conference)
Naoko Katoaka			(for agreeing to do a Japanese translation of this file)
Raphael Moll				(for some sample BWindowScreen code)
Marco Nelissen			(for bouncing bug ideas off my brain and testing)
Scott Patterson			(for bugging me for a beta version & making me demo it)
Jon Wätte				(for many helpful hints, the fast pixel-doubler, sfx code)
Lynette Woodward-Herborth	(for letting me BeGeeky before the DevCon & testing)

And everybody on bedevtalk for listening to my rants and raves this past
year and a half or so.

- Chris Herborth
  September 19, 1997
  7:30 AM
