A26 - An Atari 2600 Emulator
============================
Paul Robson ([email protected])
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 trieds
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 !
Controls :-
Player 1 : Arrow keys & right alt
Player 2 : Z X C F G
Reset : F1
Select : F2
Quit : Esc
To start it :-
===========
A26 <-0> <-1> <-b> <-m#> <-s> <-v> <-u#> <-l#> <-j> <-h>
<-f#> <-t#> <-c#> <-q#> <-p> <cartridge>
e.g. A26 -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)
|