******* Mission ******* The ColecoVision Emulator for the MSX Version 1.1 Copyright (C) 1996 Marcel de Kogel Hardware and Software Requirements ================================== An MSX1 with 64K RAM minimum (an MSX2 is recommended) MSX-DOS Some ColecoVision ROM images Both PSG and SCC and up to two joysticks are supported. The emulator will automatically detect and use an SCC cartridge in either slot 1 or 2 Files included ============== mission.com The emulator mission.txt This file coleco.rom ColecoVision OS ROM image. Since the emulator makes some assumptions of where certain OS routines are located, you may not be able to use different OS ROM images The latest version of Mission can always be found on the Mission distribution site at http://www.komkon.org/~dekogel/mission.html Note ==== Since the program emulates a ColecoVision by patching the OS ROM, many games will not run on the emulator. About 1/3rd of all images I've tested run correctly, a few more run, but with flaws (e.g. corrupted graphics or sound). Also, because the MSX is significantly slower than the ColecoVision, you may find fewer games run correctly if you're using a 60Hz (NTSC) display. If you're having trouble running some games, try switching to 50Hz mode Key Mappings ============ F1 - Pause emulation F2 - Continue emulation F4 - Quit emulator (only works on MSX2 systems) to 40 column text mode. Please note that this will not work properly if you started the emulator in 80 column mode SELECT - Quit emulator (only works on MSX2 systems) to 80 column text mode. Please note that this will not work properly if you started the emulator in 40 column mode F5 - ColecoVision reset switch STOP - Toggle slow mode. For all cheaters out there INS - Map keyboard to joystick port #1 (default) DEL - Map keyboard to joystick port #2 Cursor keys - Joystick movement Space, M - Joystick first button N - Joystick second button B - Joystick third button V - Joystick fourth button 0-9 - Keypad key buttons - - Keypad * button = - Keypad # button Starting the emulator ===================== To start the emulator, simply type MISSION . If no filename is given, the emulator will load and execute CART.ROM, if present. The extension of your game ROM images is assumed to be .ROM. If a file CART.PAT is present, the emulator will load it and use it to patch CART.ROM Patch file format ================= The patch file (*.PAT) format is as follows: String "Mission Patch File",$1A Word Size of ROM image in bytes Word ROM image checksum. This is the sum of all bytes in the image Word Number of patches to apply Patch data follows and has this format: Word Offset in image of this patch Byte New value Creating patch files ==================== Below are some addresses useful for those who want to create patch files: Offset Type Contents/Function ------ ---- ----------------- $3f00 String "MISSION" $3f07 Byte Emulator version number. The high nibble contains the major version number, the low nibble the minor version number. Currently, this byte contains $11 $3f10 Byte Current joypad #1 status $3f11 Byte Current keypad #1 status $3f12 Byte Current joypad #2 status $3f13 Byte Current keypad #2 status $3f14 Byte Current VDP status byte. Calling the READ_VDP_STATUS routine ($1fdc) modifies this; using this routine is highly recommended $3f80 Subroutine Send A to the sound chip, you can also use location $335. Please note that calling this function does not change the PSG/SCC settings $3f83 Subroutine Interpret sound chip data, this is called at every interrupt $3f86 Subroutine Update current controller statuses. This is also called by the interrupt routine The subroutines do not change any register unless specified otherwise, and use no stack space If the upper two bits of the first byte of a cartridge image are both cleared, the lower bits have the following function: Bit Function --- -------- 0 This game does not use the VDP_OUT routine ($1fd9) to set VDP register #1. Setting this bit ensures interrupts are passed to the cartridge NMI handler 1-5 Reserved If the first instruction of a game (the one pointed to by [$800a])is LD SP,nnnn; the emulator will replace it with LD SP,$7ff0. If a game runs out of stack space, try changing the first instruction, or add a LD SP,nnnn instruction somewhere in it's initialisation routine. ColecoVision RAM is at $7000-$73ff, all other memory between $4000-$7fff can be used freely Legal issues ============ This software can be used free of charge and may be distributed freely, as long as the archive isn't modified in any way, no profit is made from distributing it, and no game ROMs are supplied with it. Also, this software comes without any warranty, neither express nor implied: Use at your own risk History ======= 1.1 31-12-1996 Some (minor) bug fixes, added slow mode, keyboard can now be mapped to joystick port #2, improved SCC support and added 80 column support, removed separate NTSC version, pause feature stabilised, added support for patch files 1.0 30-11-1996 Initial release Please send your comments to Marcel at m.dekogel@student.utwente.nl