                                     v7800 V0.10
                                 (Virtual Atari 7800)

             Copyright 1999 by Daniel Boris (dboris@erols.com)

---------------------------------------------------------------------------
Copyright:
v7800 is copyright 1999 by Daniel Boris.
TIA Sound is copyright 1996 by Ron Fries.

v7800 is free as long as it is not used in a commercial matter and not
altered in any way. The contents of this archive should not be
added to or changed in any way. 

I maintain the right to forbid the use of the emulator  at
any time. I am not responsible for any damage caused by the use
of this program. This program is distributed "as-is". I make no
guarantees as to it's accuracy, performance, or compatibility with
the users hardware.

v7800 is not to be included in CD collections of any sort.
---------------------------------------------------------------------------    

Introduction
        
        v7800 is an Atari 7800 video game emulator for MSDOS. I originally
   wrote this code to be part of the MESS multi-system emulator but also decided
   to release it as a standalone emulator while the next version of MESS is still
   in development. This emulator is a pretty quick and dirty hack of my code so
   it's not perfect and a little slow, but it's playable.

The current version of v7800 can be found at:

    http://www.atarihq.com/danb

If you find any bugs please e-mail me at: dboris@erols.com.

---------------------------------------------------------------------------

v7800 was written using DJGPP a free 32bit C/C++ development system:

        http://www.delorie.com/djgpp/ 

v7800 uses Allegro, an excellent game programming library for djgpp by Shawn
Hargreaves:

	http://www.talula.demon.co.uk/allegro/

TIA sound emulation was done with TIA Sound V1.0 by Ron Fries.

v7800 uses the SEAL sound library. SEAL Synthetic Audio Library API
Interface Copyright (C) 1995, 1996 Carlos Hasan. All Rights Reserved:

http://www.egerter.com/

----------------------------------------------------------------------------

Setup:

        Before you can run v7800 you need a copy of the 7800 BIOS ROM. For
copyright reasons I am not including this ROM image in this archive, but
it can be found at:

        http://www.emuviews.com/

Once you get the image rename it to 7800.rom and put it in the same directory
as the emulator.

If you are running under plain MSDOS you must copy the file CWSDPMI.EXE to
your root directory.

You will also need cartridge images, but again for copyright reasons I cannot
provide these. PLEASE DO NOT E-mail me asking for ROM images! All messages
asking for ROM images will be promptly deleted. The carts must have a 128
byte header to work properly with v7800, see details on this below. ROMS with
the extension .A78 will probably already have the header attached.

The following games run almost perfectly:
Pole Position II, Ms Pac Man, Galaga, Dig Dug.

------------------------------------------------------------------------------------

Basic Usage:

To start v7800 simply type v7800 followed by the name of the ROM file you want
to load. For example to load a file called poleii.a78 you would type:

V7800 POLEII.A78

-----------------------------------------------------------------------------
Config file:

v7800 supports a default configuration file. This file (7800.cfg) will be
automatically created the first time you run the emulator. The config file
specifies all the default configurations that are to be used by the emulator.
The options in the [config] section of the file corresponds to the command line
options. For example "fr = 1" in the config file means to use a frame skip rate
of 1. Any command line options you use when running the emulator will override
the setting in the config file. So, for example, if you start the emulator with:

v7800 poleii.a78 -frame=3

the emulator will use a frame skip rate of 3 instead of 1. If there is not config
file entry for an option and you don't specify a command line option for it, then
the emulator will use and internal default.

The only config option that does not correspond to a command line option is
the 'path' option. Path sets the directory to use when loading roms. So if
you have 'path = c:/v7800/roms/' in the config file, and you type:

v7800 poleii.a78

the file: c:/v7800/roms/poleii.a78 will be loaded. If you put a path in the
command line then it will override the config file:

v7800 c:/v7800/poleii.a78

will load the file c:/v7800/poleii.a78

-----------------------------------------------------------------------------
Command line options:

v7800 file -[options]

        file - 7800 ROM image to load. This must be a raw binary file, with a
        special 128 byte header.

        -frame=# - Sets frame skip rate. The emulator will display 1 out of
        every # frames. The higher the number, the faster the emulation, but
        more frames are skipped. I find that a frame rate of -frame=4 works
        good for most games.

        -top=# - sets the first scanline to display on the screen. Default
        is 32. The 7800 screen is only supposed to be 192 lines high, but
        some games stretch this beyond 200, thus the emulator will cut off
        the bottom of the image. The image can be shifted up and down with
        this setting.

        -modex - This makes the emulator use the VGA 320x240 Mode. This
         mode is slower the normal mode, but allows for a bigger display.

        -control =
            This configures what type of control you wish to use. After the
        equals put one of the following options:

           key    - Disables all other controls and uses the keyboard.

           stick - Enables a real joystick to be used in digital mode. This
                    mode works good for most games.


         -nostick - Disables real joystick. This will override any other
          joystick command line options.

        -nosound - Disables sound emulation.

        -nolimit - Disables the speed limiter.


----------------------------------------------------------------------------
Cart Header:

To work with this emulator ROM images must have this 128 byte cart header at
the start of the raw data:

0      Header version     - 1 byte
1..16  "ATARI7800      "  - 16 bytes
17..48 Cart title         - 32 bytes
49..52 data length        - 4 bytes
53..54 cart type          - 2 bytes
    bit 0 - Pokey cart
    bit 1 - Supercart bank switched
    bit 2 - Supercart RAM
55     controller 1 type  - 1 byte
56     controller 2 type  - 1 byte
    0 = None
    1 = Joystick
    2 = Light Gun

100..127 "ACTUAL CART DATA STARTS HERE" - 28 bytes

-------------------------------------------------------------

Controls:

    Arrow keys = Joystick 1
    E,D,S,F    = Joystick 2
    Left Ctrl       = Fire A Stick 1
    Left Shift      = Fire B Stick 1
    Right Ctrl       = Fire A Stick 2
    Right Shift      = Fire B Stick 2

    Q          = Leave the emulator
    F1         = Reset
    F2         = Start

----------------------------------------------------------------------------

Limitations:
- Now POKEY sound emulation in Ballblazer
- Only supports standard carts, supercarts not supported


Version History:

v0.10  05/17/99 First Public Release
