M-ulator V 0.09
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!)


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.
-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.
-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
			bosco - Bosconian
-?			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 a wave file called
BANG.WAV to be in the main directory, without it 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			Some sound frequencies are a bit off.
									Implement stars that twinkle.
									Attract mode doesn't play correctly.
									1 Coin = 1 Credit regardless of dips.
Galaga (Namco)		GALAGANM		As for Galaga (Midway).
Galaga (Bootleg)	GALAGABL		As for Galaga (Midway).
Dig Dug				DIGDUG			Not playable yet, only does self tests.
									You can listen to the sounds in test mode.
Bosconian			BOSCO			Not playable yet, only does self tests.

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


Current list of future games:

Xevious
Vanguard


To be done:

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


History:
Ver:	Status:		Mods:
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.

