
                        A26PCX - An Atari 2600 Emulator
                        ===============================
                   original A26 emulation and documentation:
                      Paul Robson (autismuk@aol.com)
                   PCX screen dump:
                      Ronnie Greene (ender@abts.net)

Why another 2600 emulator ? Well - for me there were two reasons :-

  (1) None of those available would run reasonably on my machine (486DX2/75)
  (2) I felt like doing it !

This emulator is written entirely in assembler (A86) and is under 22k long.
This is a beta version (or release 2.0 as Microsoft would put it !)
but it seems to work fairly well with the few cartridges I've tested it with.

There are several bugs fixed since 0.1 which means that most games I've tried
seem to at least start. Chess and Othello don't work (don't know why yet). The
8 and 16k ROM emulation seems erratic. Somethings work fine,some don't work at
all and I don't know why - if the emu is correct they should all work a bit
or all fail.

Note that only images that support the F8 bank switching (8k) and F6 bank
switching (16k) are supported (yet). This seems to be quite a lot of them !

Main plus points :-
        Its free. You can do what you like with it EXCEPT sell it.

          ( However please mail me with comments,suggestions,bugs etc.
            If your favourite game doesn't work,tell me about it and I can
            try to fix it !)

        Goes like stink !

        Now does a SCREEN DUMP!

Controls :-

Player 1    : Arrow keys & right alt
Player 2    : Z X C F G
Reset       : F1
Select      : F2
Quit        : Esc
Screen Dump : P

To start it :-
===========

A26PCX <-0> <-1> <-b> <-m#> <-s> <-v> <-u#> <-l#> <-j> <-h>
                              <-f#> <-t#> <-c#> <-q#> <-p> <cartridge>

e.g. A26PCX -m# -s -u40 -l192 -f3 -t7 combat.bin

If no cartridge name is included the color demo program is run (see lots of
2600 sites for the source for this)

Difficulty (-0 -1)
==================
Set the difficulty to hard for player 0 or player 1

Black and white (-b)
====================
Set black and white mode

Mid line collisions (-m#)
=========================
Does full midline collision when (scanline and #) is zero.

Small Screen (-s)
=================
Game played on a small screen in the middle of the display

Shrunk Screen (-v)
==================
Game played on normal size screen,but one line in 8 isn't displayed
(to give a 225 line screen on a 320x200 display)

Scanline bound (-l# -u#)
========================
Set the lower and upper bounds of the scan line on the screen

Latching (-h)
=============
Disables the a26 latching feature which was causing problems.

Joysticks (-j)
==============
Use a PC Joystick in place of P1 keys. (One only). The paddle should be
centred on starting a26 to get accurate calibration.

Time Control (-t#)
==================
This specifies the number of frames that are drawn in an IBM Clock tick (there
are 18.2 Clock ticks a second). The default is 3,giving a standard running
speed of 55fps. To run it flat out,set -t99

Frame skipping (-f#)
====================
In an attempt to speed some games up it is possible to skip frame updates.
This can be any number so it is possible to skip 4 frames in 5 by doing -f4

Sound Control [PC Speaker] (-c# -q#)
====================================
-c# sets the channel that is going to be played on the PC Speaker. 0 plays
channel 1 only,1 plays channel 0 only,2 plays both. Basically, the 2600 has 2
channels of sound, with noise, and 16 volume levels. A PC can beep and be
either on or off !

-q# sets the volume level below which no sound is played on the PC Speaker
-q16 shuts it up completely.

Paddles (-p)
============
The left/right/fire keys control the paddles. Used for breakout and a few
others.

Speeds :-

Tested on my kludge 486DX2/75 these figures are for complete updates (no
frame skipping)

        Activision Tennis               43 fps
        Combat                          111 fps
        Pacman                          75 fps
        Space Invaders                  26 fps
        Frogs'n'Flies                   23 fps
        Freeway                         37 fps (doesn't work uses midline coll)
        Pitfall                         40 fps

Examples of changing the frame skip rate on Frogs'n'Flies .....

        -f0     (default)               23 fps
        -f1     (every other one)       36 fps
        -f3     (3 out of 4)            51 fps
        -f7     (7 out of 8)            64 fps (jerky now !)
        -f15    (1 out of 16)           73 fps (very jerky !)

Note : these speeds were calculated on v0.1 of A26, so they'll now be
a bit different (probably a bit slower)
 
Thanks to the authors of stella and vcs, without whose source code I would
have been stuck. (I used it to check operation ALL the code is original)

Notes:  Othello & Checkers won't work because of compromises I make to get
        speed. There are probably other games in this category.
        Spiderman doesn't work either - and it does something very wierd..

        If you get a message 1234@42 in the top left corner its a signal
        from the CPU emulator that its come across an illegal opcode. I
        would be grateful if you would EMail me about any cartridge that
        does this.

Paul Robson.

Fixes

0.0 (13-Aug-96)         Project Started

0.1 (23-Aug-96)         First release

0.11 (26-Aug-96)        Second release
        Fixed indexing bug.
        Fixed jsr/ret bug (affecting Gauntlet)
        Fixed sbc decimal (affecting Keystone Kops,requested)
        Better display when bad opcode encountered
        Timer initially frozen (affecting Boxing,Berzerk and others...)
        Added (adjustable) speed control
        New banner
        Upper & Lower bounds on displayed scan line (requested)
        Added Atari 8k Cartridge support (F8 type only)
        Added Atari 16k Cartridge support (F6 type only)
        (Note : the 16k emulation seems to be fairly ropey !)
        Mid line collision testing (fixes freeway)

0.12 (27-8-96)          Third release
        Added shrunk screen option (1 in 8 lines missing)
        Added PC Speaker sound. (its really dire !)
        (Sound card support to be added when I find my SB Book)
        Fire buttons now latch if game supports it.
        Fixed brk bug
        Optimised page zero/page 1 accesses for the 6507 CPU
        Paddle code added
        Difficulty levels and black & white switches added.
        2 weeks old today !!

0.13 (29-8-96)          Fourth Release
        Fixed latching fire buttons bug (affected Donkey Kong at least)
        Added PC joystick stuff. (One supported only)
        Freeway collision problems fixed but problems with generation ?
        Sound might be a bit better (very slightly).

0.14 (30-8-96)          Fifth Release
        Latching can now be disabled if its a pain (which it is)
        Joysticks still don't work properly.

0.15 (2-9-96)           Sixth Release
        Externally calibrated joystick
        TXS bug (doesn't set NZ flags)

1.0 (10-2-97)           Release as A26PCX by Ronnie Greene
        Added PCX screen dump capability (see PCX.TXT for more info)
        Fixed P keypress bug - dumped 2 or 3 screen shots at a time
