-------------------------------------------------------------------------------
                             The Virtual ColecoVision
                 A ColecoVision Emulator for Windows 95 and NT 4.0
          Copyright (C) 1996, 1997 by Neal Danner (neald@geocities.com)
                              All rights reserved.

                    ColecoVision (tm) is a trademark of Coleco.
               DirectX(tm) is a trademark of Microsoft Corporation.
          TMS9928A emulation based on original work by Marat Fayzullin.

                      Comso Fighter 2 (the included game ROM)
                     Copyright (C) 1996, 1997 Marcel de Kogel
                               All rights reserved.
                         http://www.komkon.org/~dekogel

        All other product names mentioned here-in are either registered
             trademarks or copyrighted by their respective holders.
-------------------------------------------------------------------------------

The Virtual ColecoVision is a non-profit emulator created for those individuals
who were and still are fans of the Coleco gaming era who wish to play their
ColecoVision games under Windows 95 and NT 4.0.

For more information on the ColecoVision and it's history check out these
web sites.

The Virtual ColecoVision Homepage:
http://www.geocities.com/SiliconValley/Vista/8640/VColeco.html

Norman G. Sippel's ColecoVision Homepage:
http://www.infinet.com/~ngsippel/cv.html

This History of Home Video Games Homepage:
http://www.sponsor.net/~gchance/

The ColecoVision FAQ:
http://www.infinet.com/~ngsippel/cv/cv-faq.html

Marcel de Kogel's Homepage (author of Comso Figher 2 and AdamEm):
http://www.komkon.org/~dekogel

Marat Fayzullin's ColEm Homepage:
http://www.komkon.org/fms/ColEm

-------------------------------------------------------------------------------
Features in The Virtual ColecoVision
-------------------------------------------------------------------------------
   o  Full emulation of the ColecoVision game console hardware
      including:
      o   The primary and secondary hand controllers
      o   Sound

   o  TMS9928A video emulation uses Microsoft's DirectX API for sprite
      handling and screen refresh.

   o  Play full-screen or Windowed. A Full-screen scale factor setting is
      also provided.

   o  Custom keyboard/joystick mappings of the ColecoVision hand
      controller emulation.

   o  Both manual and automatic pausing of the emulation

   o  A bunch of ColecoVision hardware emulation settings to control
      pretty much every aspect of the ColecoVision emulation core.

   o  Multithreaded so that Z80 CPU emulation runs on one thread while
      Video/Input are ran from the primary thread.
   
   o  ColecoCheat! Provides a mechanism to cheat in *some* games.

-------------------------------------------------------------------------------
                             Table of Contents
-------------------------------------------------------------------------------
1.0 - Introduction

1.1 - System Requirements

1.2 - Revision History

1.3 - Getting started

2.0 - Feature Wish List

2.1 - Known Problems/Bugs

2.2 - Where to find Virtual ColecoVision Updates

2.3 - General Questions and Answer

4.0 - Special thanks

-------------------------------------------------------------------------------
1.0 - Introduction
-------------------------------------------------------------------------------
Thank you for using The Virtual ColecoVision.  After putting many hours into
developing the core emulation, I hope you get as much enjoyment playing your
ColecoVision games on The Virtual ColecoVision as I did developing it.


A little history...
The Virtual ColecoVision used to be called ColEm 97 until 10/06/97.  Most of
you reading this may wonder why this happened. Well, it is a long story, so
I'll attempt to make it short.

The Virtual ColecoVision is the result of a development project started by me
back in October of '94. The project originated as The Virtual ColecoVision,
but was later renamed to ColEm due to partial usage of Marat Fayzullin's
TMS9918A emulation code. I did this as a courtesy to Marat for using his
TMS9918A code. The rest of the the Virtual ColecoVision emulation code was and
still is a combination of my development efforts. After speaking with Marat, it
became apparent that since ColEm 97 was not a full port of his original ColEm
UNIX source code, it should be given a new name. So, after reading many e-mails
from users, a new name, "The Virtual ColecoVision", was chosen.

As a side note, the only Windows version of ColEm that was completely based on
Marat's ColEm source was ColEmWin 0.1.2, which was originally ported by me but
is no longer being developed.


Additional contributions to this documentation are always welcome.  Please
mail additional information, opinions, and/or comments to:

Neal Danner
neald@geocities.com

Enjoy!!

-------------------------------------------------------------------------------
1.1 - System Requirements
-------------------------------------------------------------------------------

Minimum system configuration:

   486-DX100/Pentium 75 or faster running Windows 95/NT4.0 with the
      DirectX binaries installed.
   8MB ram (16MB for NT4.0)
   VLB video card

   Note: The DirectX binaries can be downloaded from:
   http://www.microsoft.com/directx


Recommended system configuration:

   Pentium 100Mhz or faster running Windows 95/NT4.0 with the
      DirectX binaries installed.
   16MB ram
   PCI based video card
   Joystick

   Note: The DirectX binaries can be downloaded from:
   http://www.microsoft.com/directx

-------------------------------------------------------------------------------
1.2 - Revision History
-------------------------------------------------------------------------------

2.00a:
   - First public release of ColEmWin 97.
   - Initial release with OO emulation core design.

2.00b:
   - Fixed Video Mode 2 bug.

2.00c:
   - Fixed "Fatal Exception" crash caused when running ColEmWin 97 in color
     depths greater than 16 bits per pixel.  This bug just goes to show you
     that you shouldn't drink beer and code at the same time! =)

2.10a:
   - Added support for some undocumented Z80 opcodes
   - Added ColecoCheat! feature which allows you to cheat on some games!
   - Added ability to save/restore game progress!
   - Added a Display tab to the ColEmWin 97 Properties dialog which
     provides many new features:
      - Video mode to use for full-screen mode can now be chosen from a
        list of modes supported by your DirectDraw drivers.
      - A "Scaling" factor for full-screen modes can now be specified
        which allows the display output to be enlarged for high-resolution
        video modes.
      - There are now two independent frame skip rate settings.  One for the
        full-screen mode frame skip rate and one for the Windowed mode frame
        skip rate.
   - Added button to invoke Joystick Configuration applet in the Control
     Panel.  This was added for convienence only.
   - Added button to invoke Display properties applet in the Control Panel to
     help switch video settings for playing in Windowed mode.
     This was added for convienence only.
   - Added a menu item to the help menu which points your web browser to the
     ColEm 97 Homepage.

2.10b:
   - Renamed ColEm 97 to "The Virtual ColecoVision".
   - Fixed full-screen scale bug which caused no output under some video
     resolutions.
   - Added logo screen.
   - Modified order of calls to DirectDraw's SetPalette() function.  This
     fixes a bug where SetPalette() was failing.
   - Added a "Message(s)" option to the Emulation menu where users can view
     normal, warning, and error messages generated by the core emulation.  A
     very useful tool for determining emulation problems.

2.11a:
   - Marcel de Kogel's Comso Fighter 2 game ROM is now included!

   - Fixed TMS9928A video mode 3 bug in TMS9928A emulation.  Now games like
     Smurf Paint'n Play work (and possibly others as well).

   - Fixed TMS9928A video mode 2 pattern generator and color table problems
     (in VMode 2, VDP registers 3 & 4 have a different function).
      
   - Rewrote the speed synchronization core.  It now uses the Win32
     performance counting API since it provides a finer granularity for
     profiling emulation speed than does the Win32 GetTickCount()
     function.

   - Added system registry manipulation command line options:
      
     "/unregister" - Pass this argument to remove all references to
                     The Virtual ColecoVision from the system registry,
                     including setup information and file associations.

     "/register" - Pass this argument to register VColecoWin in the
                   system registry.  This also allows you to specify
                   other cartridge file extensions to associate with
                   The Virtual ColecoVision.

   - TMS9928A emulation now dumps video mode switch information into
     the Emulation -> Message(s) dialog.

   - Fixed bug where the previous display mode isn't restored if a
     user exits VColecoWin with ALT+F4 while running in Fullscreen mode.

   - Added drag-n-drop support.  Now you can drag ROM files directly onto
     The Virtual ColecoVision to load them.  If you drag more than one ROM
     file, multiple Virtual ColecoVision instances will be spawned.

   - Fixed duplicate menubar accelerators.  Added accelerators for some
     options previously only available by traversing the menu.

   - Fixed textual errors in ColecoCheat! (mainly for BurgerTime).

-------------------------------------------------------------------------------
1.3 - Getting started
-------------------------------------------------------------------------------
Your on your own until I get this section written.  =)

-------------------------------------------------------------------------------
2.0 - Feature Wish List
-------------------------------------------------------------------------------
   - Debugger/assembler (including a ROM/tile editor).
   - Add network play using DirectPlay.

-------------------------------------------------------------------------------
2.1 - Known Problems/Bugs
-------------------------------------------------------------------------------
2.10c:
   - BeamRider, Bump'n Jump, and The Heist still don't load or run correctly.
     Bump'n Jump caused emulator to hang.  Possibly caused by a bug in the
     Z80CPU or TMS9928A emulation.  After I get the Z80CPU execution
     profiler/cache working I hope to quickly resolve this problem.

   - Pitfall, Dukes of Hazzard, and Frogger don't accept hand controller input.
     Appears to be something in the hand controller emulation...

   - The "Add/Remove Joystick(s).." button in the Input Devices tab doesn't
     work under Windows NT 4.0 if no Joystick devices are attached.

-------------------------------------------------------------------------------
2.2 - Where to find Virtual ColecoVision Updates
-------------------------------------------------------------------------------

The latest version as well as all previous versions of the Virtual ColecoVision
can be found at The Virtual ColecoVision Homepage:
http://www.geocities.com/SiliconValley/Vista/8640/VColeco.html

***********************************************************************
PLEASE NOTE:  No catridge ROM images are included with The Virtual ColecoVision
due to the fact that some of the ColecoVision games are still under copyright
by their respective holders.
***********************************************************************

-------------------------------------------------------------------------------
2.3 - General Questions and Answers
-------------------------------------------------------------------------------
Q1: Where can I get some Game Cartridge ROM images?

    A1: The cartridge ROM images are still under copyright by their respective
        holders.  Owning a copying of a cartridges ROM is illegal unless
        you actual own the corresponding ColecoVision catridge.  There are
        numerous sites on the Internet where you can download copies of
        ColecoVision game ROMs.  I will list them here for your
        reference only.  I am not involved with nor do I endorse or
        otherwise support any of these sites.

        Dave's Video Game Classics - Coleco ROMs:
        http://www.davesclassics.com/colecoroms.html

        The History of Home Video Games Homepage - ColecoVision Archive:
        http://www.sponsor.net/~gchance/ColecovisionStuff/Docs/docs.html

        Coleco Corner:
        http://www.pce.net/anthony/colcorner/

        PLEASE DO NOT send me e-mail asking for game ROM images!

Q2: When I try and run VCOLECO.EXE, Windows just tosses up a dialog 
    box with an error message dealing with DDRAW.DLL or DSOUND.DLL.
    What is the problem and how do I fix it?

    A2: The DirectX libraries must be installed for The Virtual ColecoVision
        to function.  You can get the DirectX libraries by downloading and
        running the following program:

        http://www.microsoft.com/DirectX/Resources/Downloads/dx5eng.exe

Q3: I can successfully run The Virtual ColecoVision, but when I get to a
    game select screen I cannot get any further.  It's like the emulator
    isn't getting input from my keyboard.  How do I fix this problem?

    A3: There are two things here.  First, some games don't work well
        with the hand controller emulation in The Virtual ColecoVision.
        Check out the "Known Problems/Bugs" section of this file for
        a know list of these types of games.

        Second.  On some computers, the default keyboard mapping doesn't
        work.  So, if you simply remap every hand controller emulation
        key for each controller in the Input Devices setup tab, it might
        start working.
        
        How to get to the Input Devices setup tab:
        1.   Press Alt+I on your keyboard OR click on the"Emulation ->
            Input Devices..." menu item.

        2.  Now, click on the "Defaults" button.

        3.  Then choose a key in the "ColecoVision Key" combo box and the
            "Mapped As" location will display the key or joystick button
            that it's mapped to on your machine.  Now, go through each
            key in the "ColecoVision Key" list, and then click on the
            button/combo box under the "Mapped As" label to map it to a
            different key.  Note that you can remap it to the same keyboard
            key it was set to by default, thus resetting the mapping layer.

            I'm assuming that problem comes from the fact that the binary
            key state that The Virtual   ColecoVision defaults to isn't
            matching your keyboard's bit pattern for the same key.

-------------------------------------------------------------------------------
4.0 - Special Thanks
-------------------------------------------------------------------------------
 - My wife, for putting up with me during development of the Virtual
   ColecoVision!
 - Thomas Jacobs and John Maier (for providing me with their
   Coleco-ADAM computers!)
 - Marat Fayzullin (for his TMS9918A emulation source)
 - Marcel de Kogel for allowing me to distribute his Comso Fighter 2 game
   ROM with the Virtual ColecoVision!! (http://www.komkon.org/~dekogel)

-------------------------------------------------------------------------------
Unanswer Questions and/or Comments
-------------------------------------------------------------------------------
Do you have any questions that aren't answered above?  Send your question(s) 
to Neal Danner at neald@geocities.com with a subject line of
"The Virtual ColecoVision".