M-ulator V 0.14
by Martin Scragg
mnm@onaustralia.com.au
http://www.users.bigpond.com/mnm


M-ULATOR COPYRIGHT 1997 BY MARTIN SCRAGG.  DISTRIBUTION OF THIS PRODUCT
ON CD-ROM WITHOUT THE PERMISSION OF THE AUTHOR OR CHARGING ANY MONEY
FOR IT IS ILLEGAL.
DISTRIBUTION OF THIS EMULATOR WITH ROM IMAGES IS ILLEGAL.
DOING SO WILL HARM FURTHER EMULATOR DEVELOPMENT AND WILL CONSIDERABLY ANNOY
THE RIGHTFUL COPYRIGHT HOLDERS OF THOSE ROM IMAGES AND CAN RESULT IN LEGAL
ACTION UNDERTAKEN BY EARLIER MENTIONED COPYRIGHT HOLDERS.


Acknowledgements:

Allard van der Bas (avdbas@wi.leidenuniv.nl) for the repository which gave me
a start.
Nicola Salmoria (MC6489@mclink.it) for all sorts of bits and info from mame.
Z80Em Portable Zilog Z80 Emulator Copyright (C) Marcel de Kogel 1996,1997
Allegro library by Shawn Hargreaves, 1994/96
SEAL Synthetic Audio Library API Interface Copyright (C) 1995, 1996
   Carlos Hasan. All Rights Reserved.
Video modes created using Tweak 1.6b by Robert Schmidt, who also wrote
   TwkUser.c. Thanks to Chuck Cochems for the help in making them more
   compatible.
Steve B. for help with double width/height sprites, a few general hints
and making me look somewhere else in my emulation to fix the sprite position
bugs.  (Doh!)
Paul Swan for some schematics and ROM images.
Virtu-Al for the Bosconian palette and sound proms and lots of other stuff.
Sidney Brown for the loan of various boards for reference.
Pete Grounds for help with various bits.
All of the beta testers.


Usage:

M-ulator will run in a dos window under windows 95.

The games must be in the correctly named directory.
At a dos prompt type M

To Select a game use the up and down arrows then press enter.  The game
instructions will be displayed on the right side of the screen.


Command line options:

M [-m n][-d][-s][-g name][-?]

-m n		Use selected video mode.  Available modes are:
			0 - Use standard 640x480x256 VESA mode instead of custom video mode.
			1 - Default video mode.
			2 - Alternate video mode, if the default mode doesn't work with
				your monitor/video card.
			3 - No scanlines video mode.
-d			Dump the games characters to the screen before playing, press any
			any key to continue.
-l			Will generate a front end help file when a standard is reached.
-s n		Use sound card n where n is:
			0 - Silence
			1 - Sound Blaster
			2 - Sound Blaster AWE32
			3 - Pro Audio Spectrum
			4 - Ultrasound Max (CS4231 Codec)
			5 - Ultrasound
			6 - Windows Sound System
			7 - Ensoniq Soundscape
-f n		Skip n number of frames.  Use this if the game is too slow.
			I use 3 on my 586-133 and it plays close to real speed.
-j n		Enable use of joystick with games.
			0 - Don't use joystick.
			1 - Use joystick (default).
-g name		Select game to play and bypass menu system.  Current games are:
			galaga - Galaga (Midway)
			galaganm - Galaga (Namco)
			galagabl - Galaga (Bootleg)
			digdug - Dig Dug (Atari)
			digdugnm - Dig Dug (Namco)
			bosco - Bosconian (Midway)
			bosconm - Bosconian (Namco)
			xevious - Xevious
-?			Display the help information.

For Sound Blaster AWE32 users:
      The driver uses the BLASTER environment variable, you must
      specify the EMU8000 I/O base port address parameter. If your
      card does not have DRAM local sound memory, you must use the
      card as a Sound Blaster 16 or earlier.

For the explosion sounds in the games you will need the included wave files
to be in a directory called SOUNDS in the main directory, without them you
will not get the explosions.


To change the Dip Switch settings:
When a game is selected hold down the S keys before the game starts (keep it
held down until you have finished).  When the test screen is displayed press
the keys 1-8 Q-I to change the dip switches.  The messages on the screen
will reflect the changes you make.  From within the game if you hold down the
S key you can change the dips but will not get any visual indication of the
changes.  Dip switch settings are saved for each game in the directory with
the ROM images with the same name as the directory and the extension DSW.
To reset the dip switch settings delete this file.  While in the test screen
you can listen to the game sounds by pressing the arrow keys.
WARNING - Some dip switch settings can cause the games to go into funny modes.
eg. in Galaga pressing the 6 key will go into Stage advance mode, this will
advance the stages without you playing them.  Some dip switch settings have
been masked out. eg Freeze video mode.  For an explanation of the dip switches
get a copy of the switch settings from:
Dave's Video Game Classics
http://www.gamepen.com/gamewire/classic/classic.html


High Scores:
High scores are saved for each game in the directory with the ROM images with
the same name as the directory and the extension HIS.  To reset the high
scores delete this file.


Currently supported games:
Name:				Directory:		Known Problems:

Galaga (Midway)		GALAGA			1 Coin = 1 Credit regardless of dips.
									Some sound frequencies are a bit off.
									Attract mode doesn't play correctly.
Galaga (Namco)		GALAGANM		As for Galaga (Midway).
Galaga (Bootleg)	GALAGABL		As for Galaga (Midway).
Dig Dug (Atari)		DIGDUG			Wrong colours.
									No playfield (dirt).
									Probably more.
Dig Dug (Namco)		DIGDUGNM		As for Dig Dug (Atari).
Bosconian			BOSCO			1 Coin = 1 Credit regardless of dips.
									Some colours are not mapped correctly.
									Game sometimes hangs after 5-10 minutes.
Bosconian (Namco)	BOSCONM			As for Bosconian (Midway).
Xevious				XEVIOUS			Not playable yet.

Read the romnames.txt file for the names of the ROM images.


Current list of future games:

Pole Position I/II


To be done:

Finish interface.
Make it a lot faster.
Make it more configurable.


History:
Ver:	Status:		Mods:
0.14	Release		Dig Dug pump works better now, not sure if correct.
					Better colours in Dig Dug but still wrong.
					Added High score saving for Dig Dug and Bosconian.

0.13	Beta		Finally made the sound pause and resume when the game does.
					Dig Dug is now playable.
					Fixed missing graphics bits in Bosconian.
					Bosconian stars now scoll independently of the screen.
					Stars now twinkle in Galaga and Bosconian.

0.12	Beta		Added Xevious, not playable yet.
					Dig Dug now starts (still not playable).
					Bosconian bullets and radar now work.
					Support for Namco Dig Dug.
					Bosconian Speech implemented.
					Namco Bosconian added.
					Lots of Bosconian graphics bugs fixed.
					Bosconian score now works but not yet complete.

0.11	Release		Bosconian now playable.
					Joystick can now be disabled.

0.10	Release		Stars scroll correct speed in all modes.

0.09	Beta		Table top flip mode implemented.
					Better sound frequencies.
					Added Bosconian support (Not playable yet).
					Dip Switch setting in test mode and during game.
					Player ship explosions (Requires BANG.WAV in main dir).

0.08	Beta		High Score save/restore.
					Support for Namco Galaga.
					Speed throttling better.
					Better Sound volume.
					Stars scroll regardless of frames skipped.

0.07	Beta		Added sound support.

0.06	Beta		Added Joystick support.
					Lots of internal restructuring.
					Added Dig Dug support (Not playable yet).

0.05	Release		Added -f Frame skip option to speed up the game.
					Made stars be able to stop and to scroll backwards.

0.04	Beta		Fixed sprite position bug (It was my clipping routine Doh!).
					Added double width/height sprites for explosions/bullets.
					Fixed bug so explosion sprites are displayed.

0.03	Beta		Changed command line selection of video mode to make
					them consistant.
					Added new no scanlines mode.
					Added game selection from command line to bypass menus.
					Fixed some of the Sprite position bugs.
					Added background stars.
					Game starts without credits.
					Runs the REAL Galaga ROMs.

0.02	Release		Fixed running second and third CPU code until main CPU
					issues a reset, This has the advantage of seemingly
					skipping the power up self test.
					Added -l for different video mode and -v for vesa mode.

0.01	Release		First release.

