DOOM 1.9 for BeOS - beta 0.7.0 x86 (July 25, 1998)

Copyright © 1993-1998 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:

•	An x86 version (finally!).

•	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.

•	Networking.  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.

Ultimate DOOM had an extra “episode”, Thy Flesh Consumed; this requires a rebuild 
of the DOOM source code (!), so I've included another binary (UltimateDOOM) for
those of you who have this version of DOOM.  Please note that I have no way of
testing this, but I assume it'll work; it's exactly the same as the normal DOOM in
this archive, except for the fact that it should recognize the extra episode.  This
version isn't included with the x86 beta because it doesn't work.

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.

•	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;
	here it is nearly a year later, and nobody will lend me any equipment.

•	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.

•	The MIDI synth doesn't play nice with other audio stream subscribers; if you're
	playing DOOM without music, you can play samples, MPEG audio files, MODs,
	whatever you want, but if you turn on the MIDI synth, it scrambles everyone
	else's audio.  Another bug for Be to fix.

•	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 and not cleaning things up in the right order.

•	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	UMAX
-nosound	12.4	(100%)		59.3 (100%)
-nomusic	10.2	(82%)		57.3 (97%)
-nosfx		9.3	(75%)		55.8 (94%)
(both)		8.8	(71%)		54.9 (93%)

All measurements were done on my BeBox Dual-66 with both processors running
and a UMAX S900 (dual 604e at 180Mhz, 512k level-2 cache).

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.

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)
Howard Berkey			(for networking help)
William Bull				(for the excellent icons)
John Carmack				(for the code)
Hampus Edvardsson			(for testing with Ultimate DOOM's WAD)
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 Paterson				(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
  July 25, 1998
  11:41 AM
