	---------------------------------------------------------------
	Kem -- the Killer multi EMulator.
	Copyright 1996-1997 Michael Cuddy, Fen's Ende Software
	All Rights Reserved
	Version 1.1
	---------------------------------------------------------------
	
	NOTE: THIS PROGRAM MUST NOT BE DISTRIBUTED WITH ARCADE ROM 
	IMAGES.  THE ARCADE ROMS ARE COPYRIGHTED BY THEIR RESPECTIVE
	OWNERS, AND ARE NOT PART OF THIS DISTRIBUTION.  DISTRIBUTING
	ROM IMAGES WITH THIS ARCHIVE IS ILLEGAL, THREATENS THE 
	DEVELOPMENT OF FURTHER EMULATORS, AND ATTRACTS THE ATTENTION
	OF BIG SCARY LAWYERS.  PLEASE DO NOT DISTRIBUTE ROM IMAGES
	WITH THIS PROGRAM.
	
	I DO NOT KNOW WHERE TO GET ROM IMAGES FROM.  IF YOU SEND ME
	MAIL REQUESTING ROM IMAGES, I WILL IGNORE IT.  I WILL PROBABLY
	ALSO IGNORE ALL FUTURE MAIL FROM YOU.
	
	ALSO NOTE: I PUT MUCH BLOOD, SWEAT, AND TEARS INTO THIS 
	EMULATOR.  I AM NOT ASKING ANY MONEY FOR IT.  I DO NOT
	GIVE PERMISSION FOR IT TO BE SOLD, FOR ANY PRICE, ON ANY 
	CD-ROM COLLECTION IF THAT COLLECTION INCLUDES ROM-IMAGES.
	IF YOU PAID MONEY FOR THIS EMULATOR, YOU WERE RIPPED OFF.  
	PLEASE NOTIFY ME OF THE SELLER SO THAT I MAY TAKE 
	APPROPRIATE LEGAL ACTION.
	
	---------------------------------------------------------------
	
	
	Table Of Contents:
	
	    I. What Have I Got Here?
	
	    II. System Requirements
	
	    III. Command Line Arguments
	
	    IV. The Games
	    
	    V. Configuration Menus 	*NEW - README!!*
	    
	    VI. Extra Special Thanks
	
	Appendices:
	
	    A. The Game Configuration Files (*.GAM)
	    
	    B. Reporting Bugs
	    
	    C. Known Problems
	    
	    D. Files Included In The Archive
	    
	    E. Contact Information
	    
	    F. Version History
	
       
    I. What Have I Got Here?
    ------------------------
	
	You are holding in your hot-little-hands (disk?), the latest
	and greatest version of my emulation system "KEM".  
	
	"KEM" used to stand for KONAMI EMULATOR, but since I added
	the Bally/Midway "MCR" emulations (Tron, Et. Al.), I 
	decided to change the name to KILLER EMULATOR.  I could have
	picked MIKE'S EMULATOR, but "MEM" was a stupid name, and "FEM"
	for FEN'S ENDE EMULATOR was kinda lame, too.
	
	BLAH, BLAH, BLAH... I hate writing manuals...
	
	This emulator started out as a GYRUSS emulator.  It was the 
	first, and was written when I knew very little about emulation
	(as opposed to now, when I have passed knowing "very little" about
	emulation, and have risen to "kind know what's going on" ....).
	
	GYRUSS begat TIME PILOT, which begat POOYAN, and then, silly me
	realized that these stupid emulations had about 90 percent
	common code between them.  Thus, KEM was born.  I ripped the
	good, and the bad, from GYRUSS, TIME PILOT, and POOYAN, turning
	nasty ugly compile time constants into nasty global variables,
	added a configuration script "language", and VIOLA', a multi-
	emulator.
	
	Well, after poking about on the net, and finding schematics for
	TRON, I decided that I should emulate TWO TIGERS.  Well, I always
	sucked at TRON, but I was always the one with the "ALL TIME
	HIGH SCORE" on TWO TIGERS whenever I could find it, and since 
	TRON and TWO TIGERS used the same hardware (BALLY MCR/II), I decided
	to kill two birds with one stone, and emulated them both.
	
	Most of the code from the KONAMI style emulators was reused in
	the MCR2 emulation core; the CPU's, audio stuff, etc., but the 
	configuration language lacked something (and, by all rights, still
	does .. I'll get to that later), so I hacked, and I hacked, and 
	I blew the config file in!
	
	------------------------------------------------------------------
	
	The following games are currently supported:
	   
        CONFIG FILE	Game Name		System Type 	Sound?
        -----------	---------------------	------------	------
        2tigers.gam	Two Tigers		MCR/II		Yes
	bluep.gam	Blue Print		BLUE PRINT	Yes
	demoderb.gam	Demolition Derby	MCR/III		No
	domino.gam	Domino Man		MCR/II		Yes
	dotron.gam	Discs of Tron		MCR/III		Yes(1)
	gyruss.gam	Gyruss			KONAMI		Yes
	journey.gam	Journey			MCR/II+		Yes
	kickman.gam	Kickman			MCR/I		Yes
	pooyan.gam	Pooyan			KONAMI		Yes
	rampage.gam	Rampage			MONOBOARD(2)	No
	shollow.gam	Satan's Hollow		MCR/II		Yes
	solarfox.gam	Solar Fox		MCR/I		Yes
	tapper.gam	Tapper			MCR/III		Yes
	timber.gam	Timber			MCR/III		Yes
	timep.gam	Time Pilot		MCR/III		Yes
	tron.gam	Tron			MCR/II		Yes
	wacko.gam	Wacko			MCR/II		Yes
	
	(1) "Discs of Tron" does not have SARK's voice
	(2) "MONOBOARD" is very similar to MCR/III, with the CPU+SPRITE
	    board being compressed down onto one PCB.
	
	----------------------------------------------------------------
	
	BY THE WAY: PLEASE READ THIS WHOLE MANUAL, including the "KNOWN
	BUGS" file before sending me any mail.  If you send me mail
	with a complaint about something covered in this manual, or the 
	"FAQ", I'll just ignore your letter ... Mind you, I'm not trying 
	to be a jerk, it's just that I get 200-500 mail messages per 
	day, and I just can't answer questions I've already
	answered.
	
    
    II. System Requirements
    -----------------------
	
	To run this emulator, requires a pretty fast machine.  A P120
	should be sufficient, if you have a fast PCI graphics card.
	486's are not supported, and I'll immediately close any bugs 
	submitted about the program being too slow on a 486.  Some 
	of the emulated games will function, but slower than
	true-speed on a 486, and some will "crash" going into "pause" 
	mode without warning.
	
        The "official" minimum system requirements are:
	
	    * PENTIUM 100 or faster CPU.
	    	Let's face it; this program is a PIG!  it's a total
		hack, and not much of it has been converted to ASM.
		I'll probably be putting an assembly language Z80
		core into it in the near future.
		Sound slows down the whole shebang, so if it's 
		too slow for your system, turn off audio (see 
		options: -a 0). You can also try the frame-skipping 
		option (-K 1).
		
	    * FAST SVGA Card, with VESA BIOS:
	        If you do not have a VESA 2.0 (which allows 
		"linear access") for your SVGA card, then you should
		get "Scitech Display Doctor" (SDD) from 
		www.scitechsoft.com.
		
		*************************************************
		KEM will run with a VESA 1.2 BIOS, but it will
		run _VERY_ SLOWLY!
		*************************************************
		
		I removed the 'MODEQ' code (see my orig. emulators, GY,
		and TP), and replaced all of that code with VESA SVGA
		code.
		
	    * 8MB of RAM (16MB under Win95)
	        Well, you could probably get away with less, but what
		are you doing with a Pentium with less than 16MB of
		RAM.  If you have a sample for Journey to play during
		the concert scene, you'll need memory for that, too.
		
	    * 256K CACHE, 512K better, 1M best!
	        Wow, what a difference cache memory makes.  This program
		spends most of it's time piddling around in a 256K chunk
		of memory for the virtual Z80, and having that code
		in cache is a "Good Thing" (tm ;-).  If you have a Pentium
		class machine with no cache, spank yourself and then go 
		spend the less-than-fifty-dollars it takes to upgrade 
		your cache. Pentium processors spend most of their time
		WAITING for DRAM to give them something to chew on.
		Cache RAM eliminates some of this waiting, for a big 
		speed boost.
		
	    * Win95 or DOS 6.2
	        If you can make this code run on OS/2, or WinNT, or 
		DOSEMU under Linux, more power to you!  I don't plan on
		supporting them, though.  If someone does make it work
		under one of these operating systems, send me the config
		files (.PIF for NT, or DOS config for OS/2), and I'll 
		make them available.
	    
	Optional are:
		
	    * Sound Card (not req'd)
	        Well, not required unless you're an arcade freak! And,
		if you're taking the time to read this, you probably
		are!
		
		I currently use the SBDRV library written by Ron Fries
		and Neil Bradley.  It should work with most sound-blaster
		compatible sound cards. 
		
		My sound card is a true Creative Labs Sound Blaster 16.
		Yeah, it has a signal-to-noise ratio somewhat worse
		than alt.flame, but it gets the job done, and what with
		the fans from the three computers in my office, and
		the "notches" in the frequency response of my EARS 
		from being around computers for 17 years, I can't
		heard the difference anyways.
		
		If all else fails, you can use the '-a 0' option to turn
		off sound.
		
	    * Joystick
	    
		Currently, no normal PC joysticks are supported.
		
		I hope to support GRiP directly in the future.
		
		The Wingman Warrior (logitech SWIFT driver) is supported, 
		too (awesome for TRON: SPIN knob and joystick).
		
		There is a small TSR called JOYEMU by Bob Graham 
		(fxpilot@enc-1.com) that works well with KEM until 
		joysticks are supported natively.
		
		
    III. Command Line Arguments
    ---------------------------
	
	There are a number of command line arguments supported by KEM.
	A quick summary of them can be coaxed from KEM by using '-?' or
	'-help'.
	
	***************************************************************
	**                                                           **
	** VERY IMPORTANT:  The CASE (UPPER/lower) of the flags is  **
	**  significant.  -A is different from -a                    **
	**                                                           **
	***************************************************************
	
	
	For reference, here they are:
    
	    -a <rate>	Audio update rate default is 120; 0 disables audio.
	    -b          Force non-autoinit DMA for sound card (may help 
	    		SB-PRO/CLASSIC/SB compatibles get sound)
	    -c <slice>	Main cpu timeslice quantum
	    -d 		Debug mode (redirect stdout!)
	    -f <fps>	Number of updates per second.
	    -g <game>	Specify .GAM file to load
	    -I <dir>	Add <dir> as search directory for files.
	    -i          Ignore rom checksums when loading, or, with -l,
	    		compute checksums.
	    -j 		Disable joystick support
	    -K <skip>	# of frames to skip between updates (default: 0)
            -l          List games supported, check for ROM existance 
	                (add -V to list missing roms)
	    -L <xx.sav> Load a saved game immediately.  NOTE: when a
	     		saved game is loaded, HIGHSCORE saving as well
			as NVRAM saving (for MCR games) is disabled.
			We wouldn't want you to cheat, now, would we?
	    -s <srate>	Audio sampling rate.
	    -S 		Simulate Scanlines (disables h/w double buffering)
	    -q		"Quiet Mode"
	    -V 		Dump parsed contents of .GAM file, or with -l, list
	    		missing roms.
	    -v <volume> change master volume
	    
    	These options are for graphics mode selection:
	
            -A		Try to use VBE accelerator functions
            -D 		Don't try for double-buffered mode
	    -M 		List valid SVGA modes (for use with -x flag)
	    -x <mode> 	Select screen mode (use -M to show valid modes)
	    
	Options can also be set in .INI files.  KEM will try to
	load a file called KEM.INI first; it will then process
	command line arguments.  Next it will search for <HWCLASS>.INI 
	where <HWCLASS> is the type of hardware that is being emulated.  
	The current hardware classes (set by the "HardwareType" 
	directive in the .GAM files) are:
	
		MCR - all of the MCR/MONOBOARD games
		POOYAN, GYRUSS, TIMEPILOT, BLUEPRINT - you figure it out.
		
        Because the MCR hardware class encompases many games, KEM will
	also try to load a file called <GAME>.INI where <GAME> is the 
	root name of the .GAM file loaded (i.e.: 2tigers.GAM -> 2tigers.INI)
	
	The format of the .INI file is <KEYWORD> = <VALUE>.  Each keyword
	should be on a line of it's own.
	
	A little more detail on the switches and keywoards:
    
	    -a <rate>
    	    AudioUpdateRate = <rate>
	    
	    This flag sets the audio "update rate".  This is the number
	    of times per second that the programmable sound generator
	    registers are checked to update the sound.  The default rate
	    is 120.  Setting a rate of 0 disables audio.  Higher rates
	    can result in more accurate sound, but eat up alot of CPU.
	    
	    This flag determines the size of the audio buffers needed;
	    there is 1 audio buffer per PSG (gyruss has 5, most
	    others have 2), the audio buffers are sized according to 
	    this formula:
	    
	    	    ( SAMPLE_RATE / UPDATE_RATE ) * 3
	    -b
	    NoAutoInitDMA = <1 or 0>
	    
	    This flag is for compatibility with older sound blasters, 
	    and some compatibles. If you run KEM, and you don't get any
	    sound, or it locks up, try using this flag.
	    
	    
	    -c <slice>
    	    CpuTimeSlice = <slice>
	    
	    This flag sets the quantum of time that the main CPU is
	    run relative to checking for interrupts, audio updates, 
	    etc.  This number can be made higher to compensate for
	    slower machines (because there is a certain amount of
	    context-switch time associated with stopping the CPU
	    emulation and checking interrupts, sound, etc). The default
	    CPU time slice is 512. (INI\Gyruss.ini drops gyruss down
	    to 384; seems to improve performance)
	    
	    -d 	
    	    DebugMode = <1 or 0>
	    
	    Debug mode.  Outputs lots of debugging information.
	    Probably not useful if your initals are not "MFC", 
	    however, if you are having trouble with a game, run it
	    with this flag, an e-mail me the "kem.out" file 
	    created.
	    
	    -f <fps>
    	    Fps = <fps>
	    
	    Set the number of video updates per second.  Should be
	    left at 60 unless you have a slow machine. The MCR
	    games should be run at 30 (use supplied batch files!)
	    
	    -g <game>
	    <no keyword equiv>
	    
	    The most important, and most often used flag.  This selects
	    which .GAM file to load.  This is the only required flag.
	    There is no keyword equivalent to this switch because
	    the name of the game is used to determine what .GAM file
	    (and thus, what .INI file) to load.
	    
	    -I <dir>	
	    IncDir = <dir>
	    
	    The program searches a directory list for locations of
	    ROM's and .GAM files.  It should use the search path for
	    more files, but it doesn't.  The default path contains
	    the current directory (.) and the subdirectory "data/". 
	    You can specify more than one '-I ' to add more directories.
	    You can also specify '-I -' to erase all directories from
	    the search path.
	    
	    -i 
	    IgnoreChecksums = <1 or 0>
	    
	    A .GAM file can optionally specify a rom checksum.  The
	    checksums supplied with KEM are known working good
	    checksums.  However, there are often multiple versions
	    of a game, and this option will allow you to override
	    KEM's version checking to play with a different, but still
	    correct version of a game.  When combined with the -l flag
	    (list games) this switch causes the rom checksums to actually
	    be computed while the games are being listed -- see the 
	    description of -l.
	    
	    -j 
    	    DisableJoy = <1 or 0>
	    
	    This stops the program from reading the joystick port.  
	    Some joysticks can slow the emulation down significantly.
	    I'll probably put in an interrupt driven joystick routine
	    eventually, which should help, but if you have trouble with
	    emulation speed, try this flag.
	    
	    -K <skip>
    	    FrameSkip = <skip>
	    
	    This causes the graphics engine to skip updating frames; if you
	    have a slow computer, you can get some more performance out
	    of the emulation by using '-K 1'.  Anything more than '1' 
	    and you're probably going to hate gameplay, but it's a 
	    subjective thing.
	    
	    -l 
	    <no keyword equivalent>
	    
	    This flag will cause KEM to search it's data directory for 
	    .GAM files. Load each one in turn, and check for the existance
	    of the proper rom files.  If you combine this flag with the -V
	    flag, any missing roms will be listed (otherwise, KEM will
	    just say something like "2 roms are missing").
	    
	    This switch also reverses the sense of the -i flag; by default
	    -l ignores the checksums of the roms, it just searches for
	    them.  Adding -i causes the listing to not ignore the checksums
	    (i.e.: compute them).
	    
	    -s <srate>
    	    AudioSampleRate = <srate>
	    
	    This sets the sampling rate;  the default is 22100.  Setting
	    this higher does not significantly improve the quality of 
	    the audio, since the chips that are being emulated output
	    crappy ol' square waves anyways.  It's mostly here to eat
	    CPU time ;-)  If you use a rate other than 22100, then
	    the "DRUMS" in gyuruss will not sound right, as they were
	    sampled at 22100 and the current sound library does not
	    interpolate.
	    
	    -S 
	    Scanlines = <1 or 0>
	    
	    This turns on scanline-simulation.  Some people like this,
	    and it can speed up the emulation on slower machines,
	    since only 1/2 of the data is copied per frame.  The KONAMI
	    games look okay in this mode, but the MCR games generally
	    look bad (because the sprites are high-res)
	    
	    Because of the internal graphics architecture of KEM (and 
	    to effect the copying of only 1/2 of the data), This 
	    option disables hardware double buffering.
	    
	    Note that this is not a tweaked mode, it's just 
	    line-skipping.
	    
	    -V 		
    	    DebugDump = <1 or 0>
	    
	    Useful for debugging.  Also causes information about missing
	    roms to be printed when used with -l.
	    
	    
	    -v <volume>
	    MasterVolume = <0 .. 15>
	    
	    This changes the master volume setting.  In previous versions
	    of KEM, this setting was stored on a per-game basis.  It
	    is now stored in the KEM.REG file for all games.
	    
	    -q
	    Quiet = <1 or 0> 
	    
	    Quiet mode.  Causes KEM to not issue warnings or pause
	    before startup.  Useful as a switch for front ends.
	    
	    -M 
	    <no keyword equivalent>
	    
	    This switch lists all of the SVGA modes that can be used 
	    with the emulator.  If you do not get any valid modes
	    listed, then try using "Scitech Display Doctor" (the driver
	    formerly known as UNIVBE).
	    
	    -x <mode> 
    	    SVGAMode = <mode>
	    
	    This switch is used to select the SVGA mode to use for MCR
	    emulation.  Use -M to see valid values.
	    
            -A		
    	    UseVBEAccel = <1 or 0>
	    
	    By default (because it doesn't work on _MY_ system), KEM 
	    does not try to use the VBE Accelerator functions provided 
	    by UNIVBE or your video card. This flag requests VBE/AF 
	    support.  Since I don't believe that I use any features of 
	    VBE/AF, this flag isn't that useful ;-)
	    
            -D
    	    UseDBuffer = <1 or 0>
	    
	    By default, KEM will try to find a video mode that has at 
	    least two buffers available for double-buffering. 
	    The main reason to use this flag is if you have a slow PCI 
	    or VL bus graphics card; since the System-memory back-buffer
	    will be faster than over-the-bus accesses.  (and since the 
	    back-buffer is dumped to the video card in 32-byte increments,
	    instead of 8 and 16-byte random-accesses in a double-buffered
	    situation). 
	    
	    Double buffering is automaticly disabled in any of the 
	    scrolling modes because many cards cannot handle the scrolling
	    method that KEM uses.
	    
	    
    IV. The Games
    -------------
    
    	Currently, this emulation supports the following games:
	
	    "KONAMI" type games:
	    
		* GYRUSS
		* TIME PILOT
		* POOYAN
		
	    "MCR/I" type games:
	    
		* KICKMAN
		* SOLAR FOX
		
	    "MCR/II" type games:
	
		* TRON
		* TWO TIGERS
		* SATAN'S HOLLOW
		* DOMINO MAN
		* JOURNEY
		* WACKO
        
	    "MCR/III" type games:
	    
		* TAPPER
		* TIMBER
		* DISCS OF TRON
		* DEMOLITION DERBY
	    
	    Other "MCR" type games:
	    
	        * RAMPAGE (MONOBOARD)
		
	    Other Games:
		
	    	* BLUE-PRINT
	    
    	Soon, support for the following games will probably be added 
	(in no particular order, and no promises made):
	
	    "MCR/II" type games:
	        * KOZMIK KROOZ'R  (kem actually runs this currently,
		  but since KOZMIK has a plastic spaceship that rotates
		  and interacts with the video game through a sensor, 
		  it's a little difficult to emulate)
	    
	    "MCR/III" type games:
	        * SPY HUNTER
	    
	    Others:
	        * BOMBJACK
		* BERZERK
		* FRENZY
		
        To run these games, you will need to have the appropriate rom
	images.  The .GAM files specify where the emulator will look for 
	rom images.  Look for lines like these:
	
		TileRom = "..."
		ARom = "..."
		CRom = "..."
		SprRom = "..."
		
	NOTE: the space between the keyword and the '=' is mandatory,
	as is the space between the '=' and the quote delimiting the
	filename.
	
	"TileRom" lines specify the roms for the background images 
	(tiles or character plane)
	
	"SprRom" lines specify the roms for the foreground (sprite) 
	images.
	
	"ARom" lines are roms dedicated to the Audio CPU
	
	"CRom" lines are roms dedicated to the main CPU.
	
	**
	** I DO NOT HAVE THE ROMS FOR THESE GAMES, AND I DO NOT KNOW
	** WHERE TO GET THEM..
	**
	** IF YOU ASK ME FOR INFORMATION ABOUT THE ROMS, I WILL 
	** SILENTLY IGNORE YOU.
	**
	
	Control Keys
	------------
	
	All games are fully configurable as far as the game keys
	are concerned.
	
	Pressing <ESC> from the emulation gets you to the main menu,
	from there, select "Control Menu ..." and then "Game Controls ..."
	Other selections on the "Control Menu" allow configuration
	of the various input drivers (keyboard, mouse, joystick, GRiP,
	SWIFT, etc.)
	
	To see the default keys for each of the games, look in the 
	control menu.
	
	Keys that work in all emulators:
	
		Alt-Q       - Quit
		
		ESC         - Access emulator setup menu
		
		Shift-F9    - Reset emulator
		
		F10         - Halt (pause / unpause)
		
		F11	    - Save game (you will be prompted for 
		              a filename at the bottom of the screen;
			      the .SAV extension will be added automaticly.
		Shift-F11   - Load game.  NOTE: when a game is loaded,
			      Highscores saving and NVRAM saving (for MCR
			      systems) is disabled until the emulation is
			      reset (Shift-F9).  
		
		F12         - Increase master volume
		
		Shift-F12   - Decrease master volume
		
		SCRLOCK     - Screenshot;  screenshots are saved as
			      PCX\KEMnnnn.PCX where "nnnn" is an increasing
			      number.  Screenshots will not be 
			      overwritten.
		
		+/-         - (on the keypad or number row) move the 
			      screen up and down if it's smaller than 
			      the 512 pixels high (640x480 looks GREAT, 
			      but most games need to scroll up to see the 
			      important bits of the screen!)
		
		
    V. Configuration Menu
    ---------------------
    
	Press <ESC> to get into and out of the config screen.
	
	The following choices will appear:
	
    		* Control Menu ...
    		* Dipswitch Menu ...
    		* About / Credits ...
    		* Return To Emulation
    		* Exit To Dos
	
	Selecting an option with elipsis after it ('...') takes you
	to another menu.  At any time in a menu, the <ESC> key will
	take you back to the previous menu, or, if on the main
	menu already, will take you back to the emulated game in 
	progress. 
	
	The last two options are self explanitory: one exits KEM, and
	the other returns you to the action.
	
	The "About / Credits ..." display is the same display that popped
	up the first time you ran KEM, and can be exited by pressing
	any key.
	
	The "Dipswitch Menu" contains the various dip-switch settings
	offered by the current game.  If no dipswitch settings are 
	available, the dipswitch menu will be empty; press <ESC> 
	to return to the main menu.
	
	The "Control Menu" is the most complex set of menus in the 
	emulator, and requires a bit of explanation.  The control
	menu looks like this:
	
    		* Game Controls ...
		* Configure <device> ...
		* Configure <device> ...
		* Configure <device> ...
		* Back to Main Menu
		
	The "Game Controls" menu is where you configure which 
	keys/buttons/mouse axis/joystick axis will be used by
	the various emulated controls.  This menu will list each
	control that a given game supports (like "1P Start", "Left", 
	etc.) and the current device button/axis that activates that
	control.
	
	There are two types of controls: "Buttons" and "Axis".  Each 
	supported physical device (currently, Keyboard, Mouse, and 
	Wingman Warrior) provides a number of each of these types of
	controls.  For example, a mouse provides two "axis" (Mouse X and
	Mouse Y) controls, and two or three "button" controls (Mouse Left,
	Mouse Right, and Mouse Middle). The wingman warrior provides
	4 axis (Stick X, Stick Y, Spinner, and Throttle) and twelve (!)
	buttons.  (four fire-buttons, plus four hat directions, plus 
	a "pseudo" button for each direction the main joystick can
	be moved).
	
	The keyboard is a special device;  not only does it provide 
	101 "button" types (one for each key on the keyboard), it
	also provides two axis controls.  These are needed for those people
	who don't have or don't want to use a mouse or Wingman Warrior.
	These "virtual Axis" are, by default, mapped to the period (.) and
	slash (/) keys, for one axis and the "C" and "V" keys for the other.
	
	These keys may not be convenient for non-us layout keyboards.  
	they can, however be changed to any four keys on the keyboard:
	
	** THE KEYS THAT ACTIVATE THE KEYBOARD'S VIRTUAL AXIS CAN BE CHANGED
	** IN THE "CONFIGURE KEYBOARD" MENU 
	
	When setting up the device to activate a game control, (like 
	"Player 1 Start", or whatnot), select the control with the 
	arrow keys, and press enter; the control name will then flash 
	blue and KEM will wait for a key to be pressed or an axis to be
	moved (depending on the type of control).  Once you have selected
	the appropriate control, the menu item will return to it's normal
	color, and the name of the selected control will appear to the
	right of the control name.
	
	Each device detected will have a "Configure <device> ..." menu
	built for it on the main menu.  In general, you should play
	with the settings on these menus until you get a set of parameters
	that you like.  A short explanation of each of the fields however
	follows (note that not all fields will be present on all devices):
	
	    "Mode" -- This setting generally has values like "Abs" or "Rel"
	      or "Rel/Inv".  "Rel" means that the axis reports relative 
	      values.  "Abs" means that the axis reports absolute values
	      "Inv" means that the axis' values are inverted (up becomes 
	      down, down becomes up, etc.)
	      
	    "Scale" -- This value is a modifier to the way the real control
	      reports it's data to the emulation.  Positive values cause
	      a multiplication (i.e.: if the controller would respond '5' 
	      and the scale is set to '2', the emulation would read the
	      control as '10'), and negative values cause division (if 
	      the controller would respond '10' and the scale is set to
	      "-2" then the controller would respond '5' to the emulation.
	      
	    "Max Delta" -- this indicates the maximum amount that the
	      control may change in one animation frame.  Some games
	      (most notably kickman) need this  value tweaked to match
	      the ballistics of your mouse, etc).
	
	
	All of these values are provided for experimentation.  Play with
	them until you decide on the values that suit your game playing
	style the best.
	
	Hints:
	     * If the arm rotates too slowly in TRON when using the keyboard,
	       increase the "scale"  value.  If it rotates too fast, 
	       decrease the scale.
	       
	     * If you think that the sense of left/right is backwards for
	       an axis, change the "mode" to add "Inv" (like from "Rel" to
	       "Rel/Inv".  You can also change the keys assigned to 
	       increment/decrement a "virtual axis" from the keyboard
	       
	     * If your wingman warriror is not responding on the joystick
	       part, decrease the threshold value under "configure wingman"
	       
	      
	
    VI. Extra Special Thanks
    ------------------------
    
        I'll start listing folks here, in no particular order;  so many
	people have helped me, that I can't begin to thank them all!
	
	Neil Bradley		Pete Grounds
	Ron Fries 		Marat Fayzullin
	Villie Hallik 		JROK
	Kurt Mahan
	Jeff "The Riffer" Mercer		
	Al "Gonzo The Great" McCormick
	Moose			
	Brian Peek
        THE TANT ARCHIVE
	Bob "FxPilot" Graham
	
	and: The EMULATOR mailing list.
	
	(to subscribe to the emulator mailing list, a list for the discussion
	of all emulators, not just KEM, send mail with "subscribe" in 
	the BODY of the message to : <emulator-request@FensEnde.COM> )
	Oh, by the way, if you type 'secret' during the "please wait" 
	at the startup credits screen, it will get you past having 
	to wait for the credits.  This just proves that you read the
	instructions ;-).
	
	If I've left anyone out, please don't be shy ... let me know!
	
	And thank you to all of my beta testers, who put up with 
	broken palettes, crashing machines, funky video modes,
	difficult controls, and all sorts of badness in the 
	early Beta's
    
    APPENDIX A: The Game Configuration Files (*.GAM)
    ------------------------------------------------
    
	The game-configuration files are a very-inflexible, just-short-of-
	hard-coding-it way of changing the behavior of the emulated games.
    
	The configuration file specifies ROMs to load, and where to load them
	from, as well as memory maps, and other goodies.  Take a look.  I'm
	probably not going to document the current version of the game
	configuration "language", because it's going to undergo some radical
	changes between now and the next release (and maybe between now 
	and the final release).
    
    APPENDIX B. Reporting Bugs
    --------------------------
    
	To report bugs, there will eventually be a web-based form on 
	the KEM web page at :
			
			http://www.fensende.com/kem/
	
	Once it exists (check first!) Please use it.  I will ignore 
	all bug-reports that are sent to me via e-mail once the bug-tracking
	system is online.
	
	If you have submit a bug-report that is answered in the FAQ, 
	in this document or in the KNOWNBUG.TXT file, I'll probably 
	silently ignore you.
	
	(Honestly, I've spent _WAY_ too much time answering the same
	damn question over and over!)
    
    APPENDIX C. Known Problems
    --------------------------
    
	Lots.  Too many to detail here. See KNOWNBUG.TXT.
	
    APPENDIX D. Files Included In The Distribution
    -----------------------------------------------
    
    	Below is a listing of all of the files included in the 
	archive.  Please do not distribute modified versions of this
	archive.  The latest and greatest version of this emulator
	can always be found at:
	
		http://www.fensende.com/kem/
		
	Files:
	
	    README.TXT
		
	        This file.
		
	    FAQ.TXT
	    
	        KEM's Frequently asked questions file; maintained by 
		Jeff "The Riffer" Mercer
	    
	    WHATSNEW.TXT
	    
	        Release notes for the current (and previous) versions
		of KEM detailing changes from version to version.
		
	    KNOWNBUG.TXT
	     
	        This is the list of currently known bugs.  Please read
		this file before submitting a bug report!
		
	    KEM.EXE
	    
		This is the main executable.  It requires that 
		dos4gw.exe be in your path somewhere.  Dos4gw.exe
		is not included with the distribution; it is available
		from my Gyruss page.
		
		    http:/www.fensende.com/Users/mcuddy/gyruss/
		    
	    KEM.RES
	    
	        Graphics and font data.
		
		
	    2T.BAT -- Two Tigers
	    BP.BAT -- Blue Print 
	    DD.BAT -- Demolition Derby
	    DM.BAT -- Domino Man
	    DT.BAT -- Discs of Tron
	    GY.BAT -- Gyruss
	    JJ.BAT -- Journey
	    KM.BAT -- Kickman
	    PY.BAT -- Pooyan
	    RA.BAT -- Rampage
	    SF.BAT -- Solar Fox
	    SH.BAT -- Satan's Hollow
	    TA.BAT -- Tapper
	    TI.BAT -- Timber
	    TP.BAT -- Time-Pilot
	    TR.BAT -- Tron
	    WA.BAT -- Wacko
	    
	        These batch files are shortcuts for running the currently
		supported games.
		
	    DATA\TRON, DATA\DOTRON, et. al.
	    
	    	These are the directories where the ROM images for
		each game should be placed (I.e.:  images for "TRON" should
		be placed in the "data\tron" directory.
		
	    SAVEGAME\
	    
	        This directory is where saved games will be stored
		(i.e.: if you type "foo" as a savegame name, it will
		be saved as "savegame\foo.sav"
		
	    PCX\
	    
	        This directory is where saved screenshots will
		be stored.
	
	    DATA\GYCHAR.PAL, DATA\GYSPR.PAL, 
	    DATA\PYCHAR.PAL, DATA\PYSPR.PAL, 
	    DATA\TPCHAR.PAL, DATA\TPSPR.PAL,
	    
	    	These are best-guess palette files for the 
		Time Pilot, Gyruss, and Pooyan sprite and tile 
		color palettes. The other games have RAM based
		palettes.
		
	    DATA\*.GAM, 
	    
	    	These are the game description files for each of the
		supported emulated games. You'll have to get the ROMs
		from elsewhere; don't ask me.
		
	    DATA\MCR2.GAM, DATA\MCR3.GAM, 
	    DATA\MCR1.GAM, DATA\SSIO.GAM
		
	        These .GAM files are special; they are used for all of the 
		common directives for MCR/II emulation and are used by all 
		of the MCR/II games.
		
	    RAM\*.KEY RAM\*.HI RAM\*.RAM RAM\*.DIP
	      
	        Various input map files (mapping keys/joy/mouse etc) and
		high-score files, Dip switch settings and NVRAM save files
		
	    INI\*.INI
	     
	        Various sample initialization files; these are the ones
		that I use.  If you don't like 'em: change em!
		
    APPENDIX E. Contact Information
    -------------------------------
    
        The best way to get ahold of me is via e-mail.  My e-mail
	address is:
	
		mcuddy@FensEnde.com
		
	My home page is at:
	
		http://www.fensende.com/Users/mcuddy/
		
	And I hang out on EFNet IRC in #EMU as "Pryankstr"
	
	KEM IS FREE, however, if you feel compelled to send me a 
	donation, (arcade schematics are most welcome!) 
	You can send it to:
	
		Michael Cuddy
		166 Warwick Street
		Redwood City, CA 94062
		
        This address will be valid until at least June 1998; and
	probably afterward, but check my web page for updates.
		
	
    APPENDIX F. Version History
    ---------------------------
    
    	June  7, 1997 -- BETA05    -- Private BETA release  
    	June  9, 1997 -- BETA05(A) -- Private BETA release
	June 12, 1997 -- BETA06(B) -- Private BETA release
	June 13, 1997 -- V1.0      -- First Public Release
	June 24, 1997 -- V1.1B     -- Private Release
	June 28, 1997 -- V1.1B2    -- Private Release
	July 11, 1997 -- V1.1      -- Public Release
	
