ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ððððð ððð ð ð ððð ððð ððð ð ðð ððððð ð ð ðð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ððð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ððð ð ð ððð ð ððð ððð ðð ð 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 parameter on the command line ;-) Command Line ------------ There are several command line parameters: tp [ -f ] [ -a ] [ -s ] [ -c ] [ -t ] [ -q ] [ -b ] [ -B ] There's a usage message, but it's very terse; so here's a slightly better description: -f -- 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 -- 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 -- 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 -- 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 - 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 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-