

                                
                                           
                                          
                                              
                                      
		
                          E M U L A T O R  
		             Ver 0.02 (BETA 1)


TIME-PILOT EMULATOR -- BETA RELEASE

Copyright Notices:
    Copyright (C) 1997 Michael Cuddy, Fen's Ende Software
    
    TIME PILOT Emulator Home Page: 
        http://www.fensende.com/Users/mcuddy/timep
    
    This program, and this document are Copyright 1997 Michael Cuddy, 
    Fen's Ende software.  This program may be freely redistributed
    only if the entire contents of the archive are kept together.
    
    THIS PROGRAM MAY NOT BE DISTRIBUTED WITH ROM IMAGES FOR TIME PILOT, OR
    ANY OTHER GAME (HINT, HINT).  YOU MAY NOT LEGALLY OWN A COPY OF THE 
    TIME PILOT ROMS UNLESS YOU OWN A TIME PILOT MACHINE.  IF YOU HAVE A 
    COPY OF THE TIME PILOT ROMS, AND YOU ARE NOT A PROUD OWNER OF A 
    TIME PILOT MACHINE, YOU DESERVE A SPANKING, AND I'M GOING TO TELL 
    YOUR MOMMY ON YOU! THE SOFTWARE CONTAINED IN THE TIME-PILOT ROMS 
    ARE COPYRIGHT 1983 KONAMI, THEY ARE NOT MY PROPERTY, I CAN'T GIVE 
    THEM AWAY.  I WILL IGNORE ALL REQUESTS FOR ROMS.
    
    Original Z80 Core is copyright 1995 Marat Fayzulin.
    Original PSG (AY-3-8910) emulation (C) Ville Hallik 1996.
    Synthetic Audio Library (SEAL) is Copyright 1996 Egerter Software
    ModeQ code contributed by Gary Shepherdson
    
What Have I Got Here?
---------------------
    ** IMPORTANT **
    
    READ ALL OF THIS FILE, AND ALL OF FAQ.TXT BEFORE SENDING ME EMAIL.
    I AM GETTING SWAMPED WITH EMAIL, AND AM NOT GETTING AS MUCH TIME
    TO WORK ON MY EMULATORS.  I WANT TO KEEP MY FANS IN THE LOOP, SO
    PLEASE GIVE ME TIME TO WORK.  IF YOU ASK A QUESTION COVERED IN THE
    FAQ, YOU WILL NOT RECIEVE AN ANSWER!  SORRY TO BE SO BLUNT, BUT
    I'M GETTING ABOUT 50 MAIL MESSAGES A DAY!
    
    This is the second release of a Time Pilot emulator.   I'm going to
    call this one BETA: all of the functionality has been added, all
    that remains is bug-cleanup.
    
    Most of the cleanup that needs to happen in related to the emulation 
    shell, and not the emulator itself (although there are a few bugs 
    there, too).
    
    If you can run my GYRUSS emulator, you can probably run Time Pilot.
    If you can't run GYRUSS, you might be able run Time Pilot, because 
    it's inner workings are simpler than GYRUSS (less sprites on screen
    at a time, only 2 instead of 5 PSG's etc).
    
    Let me know if this crashes your machine ...
    On second thought: let me know, good or bad, what happens.
    
    It should work on any reasonably spiffy pentium (like I said, it's not
    optimized).  I'm targeting a P90 or P100 (before you 486 folks start 
    whining, realize that there's alot going on inside this little box:
    2 CPUs plus 2 programmable sound generators spooling out audio ... 
    besides, a P133 motherboard + CPU is just over 200.00 now, so upgrade, 
    for chrissakes). 
    
    I've run it under W95 (in a dos box) and it runs just fine.  
    I actually haven't tried it under real "DOS".
    
    There are some known problems with the audio code and AWE32's
    (third party library). Try the '-b' or '-B' switches which force
    the SEAL library to treat your sound card like an SB-16.
    
    Also, for some reason, the emulator doesn't play happy with 
    (older versions??) of QEMM installed (under DOS or Win95).  You'll 
    have to disable QEMM to run it (see the FAQ).
    
    The game will never run faster than 60FPS, no matter how many
    pentium-pro's you try to run it on. (unless, of course, you change
    the <gfx-fps> parameter on the command line ;-)
    
Command Line
------------
    
    There are several command line parameters:
    
	    tp [ -f <gfx-fps> ] [ -a <audio-fps> ] [ -s <srate> ]
	       [ -c <cpu-cycle> ]
	       [ -t ] [ -q ]
	       [ -b ] [ -B ]
	       
	    
    There's a usage message, but it's very terse; so here's a slightly
    better description:
    
       -f <gfx-fps> -- this option sets the number of interrupts 
       	   per second that will be sent to the main CPU.  
	   This relates to the speed of the game. The default 
	   (and correct value) is 60.  Min is 1, max is about 70.  
	   You probably shouldn't need to change this from the default.
	   (unless you're trying to run it on a slow machine -- the
	   symptoms that indicate the need to lower this number are:
	   the emulator 'HALT's for an unknown reason)
       
       -a <audio-fps> -- is the number of times per second (give-or-take) 
           that the audio chips are polled for thier current values 
	   and new sample buffers are generated to be passed to the 
	   sound card.  The default here is also 60.  The minimum is 
	   about 20 (sounds stupid otherwise).  maximum practical 
	   limit is about 120. This does not change the speed at 
	   which sounds play, or thier pitch, it only changes the 
	   accuracy of the simulation of the PSG chips.  The higher 
	   the number the more CPU is needed to calculate the PSG 
	   chips' envelopes. (but they are computed in smaller chunks)
	
	-s <srate> -- this is the data rate that your sound card will chew 
	   through the sample buffers at.  Slower computers should select
	   a lower number.  lowest practical number is 8000, highest is 
	   44100.  (default is 11050 -- should be compatible with
	   most sound cards).
	   
	-c <cpu-cycles> -- the number of cpu cycles executed between 
	   housekeeping tasks (graphics, audio, etc.); there's a bit
	   of overhead associated with entering the CPU emulation
	   code, this parameter helps reduce that overhead so that
	   the emulation cpu can run closer to actual speed.
	   The Default value is 32.  Running with Audio turned on,
	   you should set this to 1 (so that the audio and video
	   CPU's run at the same rate -- this takes a beefier system
	   than I have to run right...)
	   
	-t -- start the emulator in text-mode.  You probably don't 
	   want to do this unless you're me.
	   
	-q -- select old modeQ code.  I've put new tweaked-vga-mode
	   code in this version.  The -q flag selects the old code.
	   
	(new in 0.02)
	-b -- force sound library to treat your soundcard like an SB-16.
	
	-B -- force sound library to treat your soundcard like a "Classic"
	    Sound Blaster.
	    
	-j -- disable joystick support.  can speed up game on slower
	   systems.
	   
	-m -- force monoaural mode.  can speed up game on slower systems.
	  
	   
Keys and Using the Emulator
---------------------------
	   
    Keys that might be handy:
    
	ESC  - switches to the setup menu
	F12  - take a screen shot (saves in gyNNNN.pcx), won't overwrite
	       existing files
	q    - quit emulator (can also quit from the config menu)
	h    - start / stop the emulation (pause -- "STOP" will appear
	       above the "credits" line when stopped, press 'h' to 
	       continue the emulation)
	
    While "playing" (these keys are remappable):
    
	F1   - left coinmech
	F2   - right coinmech
	F3   - service mode (adds a credit)
	F4   - 1P start 
	F5   - 2P start
     2,4,6,8 - (on keypad) move ship
      <space>  - fire 
	
	q    - quit emulator
	Z    - (capital Zed) reset emulator (saves high-scores, and 
	       dipswitch state, too).
       t/T   - increase / decrease music tempo.  the actual tempo can be
               seen on the audio menu in setup mode.  The correct value
	       for Time Pilot is somewhere between 2 and 3.  Pick the one
	       you like best.
	       
    The movement, fire, credit, and start keys are all user-definable
    from the configuration menu (press <ESC> from the emulation to
    get to the config screens)
	       
    In Text mode: (not recommended for the faint of heart... but an 
    interesting look at the guts of the emulator; in text mode, 
    the audio CPU will not be run, the CPU runs at a snail's pace, 
    and no 'interrupts' will be delivered to the main Z80).
    
	Z   - reset emulator
	`   - (backquote) -- switch back to graphics mode
     1/2/3  - set dipswitch 1,2 or 3 (See spies.com document for switch settings) 
	      these dipswitch settings are persistent.  You shouldn't need to
	      do this, 'cause the configuration menu lets you get at all of
	      the interesting bits)
	i   - generate an interrupt to the CPU  .. this is the VBLANK interrupt
	      which normally happens automaticly in graphics mode.  
	n   - scroll memory window down 16 bytes
	p   - scroll memory window up 16 bytes
	'   - (singlequote) toggle updating of secondary registers 
	      (mnemonic: 'prime')
	R   - toggle display of all registers or just PC and A
	K   - toggle updating of stack window
	M   - toggle updating of memory window
	D   - toggle updating of disassembly window
	q   - quit
	s   - single step
	g   - run / stop cpu
	w   - write value to memory, you will be prompted for address and value
	m   - change memory window address.
	
Files, Included and Needed 
--------------------------
    
    The files that came in the archive:
    
    
	    readme.txt -- read this file ... er, wait, I guess you already 
		    are! Congratulations if you read this far before 
		    running the emulator!
		    
	    faq.txt -- If you have any problems, READ THIS FILE!!!!!!
	            Chances are that your problem is covered in here.
		    
	    tp.exe -- this is the main emulator executable
	    
	    tpchar.pal -- this is the palette file for the character-graphics
		 if deleted, gy.exe will create a new, greyscale palette.
		 the palette can then be edited while the cpu is halted in
		 graphics mode.  If you think that you have come up with
		 a better palette, mail me this file!
	    
	    tpspr.pal -- sprite palette; same notes as above.
		 
	    tp.ram -- session to session persistent state. (dip switches,
		 etc.) This file can be deleted to restore the "factory 
		 default state". (not distributed with archive)
		 
	    tp.hi -- the high-score table. The real Time Pilot doesn't save
	    	 high scores from game to game (a severe mis-feature!) but
		 the emulator does.  This file can be deleted to clear
		 high-scores. (not distributed with archive)
		 
	    tp.key -- keyboard mappings. don't mess with this file; key
	         bindings are changed from within the program.
	         If you delete it, it will be recreated with default keys.
		 (not distributed with archive).
		 
	    joy.dat -- joystick calibration information.  If your joystick
	    	 is screwed up and will not calibrate in the program, try
		 deleteing this file and re-running the emulator. (not
		 distributed with archive).
		 
	    bugrept.txt -- empty bug report; if you find a bug, copy this
	         file, fill it out, and email it to me, please!
		 
    ROMS: 
	 The emulator will look for roms in data\TM1 through data\TM7.  
	 Roms? did someone say roms ... I don't know where they come 
	 from, I don't know where to get 'em, and I'm not givin' you 
	 mine, assuming I have them. (insert std. disclaimer... ;-)
	 
To Do List
----------
    
    Things that need doing:
    
	 * faster, Faster, FASTer, FASTER!
	 * Gravis GRiP support
	 * Fixed PSG emulation
	 * Better sound library
	   
	   USE THIS PROGRAM AT YOUR OWN RISK (there, is that enough CYA?)
	   
    If this program fails on your machine, please READ THE FAQ!!!
    
    If the FAQ does not answer your questions, fill out the file 
    'bugrept.txt' to the best of your knowledge and email it to 
    me at: mcuddy@fensende.com
    
    The Time Pilot homepage is:
	http://www.fensende.com/Users/mcuddy/timep
	
Availability
------------

    This emulator is freely redistributable.  It is, however, Copyright 
    1997 (C) Michael Cuddy, Fen's Ende Software.
    
    One more time ...
    
    *************************************************************************
    This program may be freely redistributed only if it is NOT accompanied by
    TIME PILOT ROMS.  The TIME PILOT Roms are Copyright 1983 - 1985 by CENTURI CORP.
    DO NOT ASK ME FOR THE ROMS -- I CANNOT, AND WILL NOT GIVE THEM TO YOU.
    *************************************************************************
    
    If you send me mail asking for the roms, or where they are, your mail
    will be silently dropped.  Sorry.
    
    I plan on eventually making the source code available, but for now
    since the code is in a _constant_ state of flux, I'm not prepared 
    to release it to the whole world.  If you are working on an emulator
    and want the modular-multiple-3910 PSG code or the multiple-cpu patches
    to Marat's Z80 emulator, don't hesitate to ask.
    
    I have put up the PSG code on my web site.  Go to the Time Pilot page,
    and there is a link there: http://www.fensende.com/Users/mcuddy/timep
    
    I also have the multiple-z80 code up. There's no link.  it's called
    vz80.zip off of the Time Pilot directory.
    
    I will _never_ sell this program; however, if you feel inspired to 
    send me a gift, old arcade boards, schematics, and manuals are just 
    the right-sort-of-thing ;-)
    
    I'd also like to get the schematics for the game "two tigers"
    (not the fighting game, the sink-the-ships game).  A working board
    for that game would be nice too.
    
Known Working Configurations
----------------------------
    This is my development machine:
    
    	* P150 / ASUS (Intel Triton) motherboard, 32M mem, 512K 
	  cache. SoundBlaster 16/MCD, Adaptec SCSI card, DOS box under 
	  Win95.
    On the P150, I run with the compiled-in default settings:
    	fps (-f):	60 	(default)
	srate (-s):	11050 	(default)
	aupdate (-a):	60 	(default)
	cpucycle (-c):	16 	(default)
    The game runs at the right speed, but the music and SFX are not timed
    correctly (still working on that)
	
    If you find better settings, please mail them to me.
    
Special Thanks
--------------

    To all the other emulator authors, especially  neil@synthcom.com
	for his excellent 'emu'. the (not-just) Atari Vector Graphics 
	emulator. This was the program that inspired me to start down
	the dark side of coding--EMULATORS!
	
    Thanks to Marat Fayzulin for making his Z80 emulation core
        available.  I've extended this code to allow for multiple Z80's 
	in a single program as well as easy mapping of peripherals to the 
	Z80's memory and I/O busses.
	
    And: Thanks to Gary Shepherdson for the ModeQ code from his Kong 
        Emulator.  This should clear alot of bug-reports from my queue!
    
Known Problems
--------------

	(0.01) There seems to be a problem with people who have S3 video 
	cards and AWE32's ... the problem seems to be in the seal library.
	using '-a 0' will turn off audio.
	    
	    FIX: If you have an AWE32, you should remove AWEUTIL.EXE 
	    from your AUTOEXEC.BAT (or make a multi-boot config).  Win95
	    users should disable the "advanced wave table synthesis" (or
	    something like that ... I don't have an AWE32) from the 
	    control panel.  This is definately a bug with SEAL, and I've 
	    reported it to them.
	    
	    ANOTHER FIX: (002) try using the -b or -B switch to force the
	    sound library to talk to your sound card as an SB-16 or 
	    classic SB.
	
	I have some new video mode code,  It is the _actual_ 
	code from Gary Shepherdson's Kong Emulator.  If you can run 
	KONG and you can't run GYRUSS, I _REALLY_ want to know about it.
	
	(0.01) Slow machines can sometimes cause "interrupts" to be delivered 
	to the CPU too fast and cause wierd behaviour (usually the 
	emulator halts in a funky state)  Try using '-f 50' (or lower)
	and tell me what happens.   This is more of a problem with the
	Gyruss emulator, because there's more going on.
	
	(0.00) When you run the emulator under win95, it says 
	'you might want to run this under a DOS shell' ... ignore it or 
	change your DOS-box's preferences to ignore it for you.
	
	(0.00) If high-scores get corrupted, delete the gyruss.hi file.
	
	(0.00) 486's are not officially supported, however, the one in my
	office works okay (without audio!).  486's may be supported 
	in the future, when I speed up the sprite routines
	
	(0.00) The Audio tempo setting is a hack.  I need to figure out
	a better way to time this bugger.
	
Version History
---------------
    1/31/1997 -- Version 0.02 -- (BETA 1)
	
        Bugs Fixed:
	
	    * Sprites are now clipped "correctly": no more drawing off
	      the edge of the screen.
	      
	    * Command line parsing now sanitized (now uses common code
	      with gy.exe)
	      
	    * Removed table / upright setting from dipswitch menu; since
	      graphics chars don't flip when in "table" mode.
	      
	Features Added:
       
	    * Executable is now bound with PMODE/W.  It should be a 
	      little bit faster than the old version.  Most notably,
	      it should not have problems with sound cards set at IRQ 10
            * Joystick code added. Gamepads and standard joysticks are
 	      supported.  Configuration / calibration is a little Baroque, 
	      but you know what they say:  "If it ain't Baroque, don't fix it"
	
	    * Option to force sound library to talk to audio card as
	      a Sound-Blaster 16 or "classic" soundblaster, overriding 
	      autodetect; this should fix problems with some GUS's, 
	      older SB-PRO's and AWE-32's
	    
    1/15/1997 -- Version 0.01
    
	First Public Release
	
-E-O-F-
