Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Creating 2600 Emulator, where are specs?

5 views
Skip to first unread message

hle...@gems.vcu.edu

unread,
Dec 16, 1992, 1:18:29 PM12/16/92
to
Alright, I know this question has been asked 'n' million times but I have never
seen an answer. Where can I get a copy of the hardware/software specifications
for the Atari 2600? I assume that these are available as the system is no
longer in production. Why do I want them? Well, I'm interested in writing a
2600 emulator program. Do you want to be able to run all your old atari games
on an IBM-PC? Tell me where to get the specs!

Thanks,
Hugh
--
*******************************************************************************
** Hugh L. Eaves ** Internet: hle...@ruby.vcu.edu **
** Medical College of Virginia ** Bitnet: hleaves@vcuruby **
** Department of Human Genetics ** Voice: (804) 371-8754 **
***************** All non-incendiary communication welcome! *******************

Greg Alt

unread,
Dec 18, 1992, 5:22:55 PM12/18/92
to
In article <1992Dec18....@cbnewsl.cb.att.com> co...@cbnewsl.cb.att.com (E. Kontei) writes:
>Hmm. I think we CAN get microsecond accuracy. Remember, the 2600 had
>a very primitive instruction set, running at 1MHz. Today's computers
>have much comprehensive instruction sets, usually running at 25 MHz
>or more.

Yes, on the 2600 programming mailing list, we have discussed this, and
we decided that this is possible. The only part that will be difficult
is the graphics. This will be very tricky, but we plan on writing an
emulator that works only with games that didn't use bizarre hardware
tricks (things that weren't intended to be possible), then we will try
to cover those.

>How abou this: a translator to "compile" the 6502 assembly language
>into the apropriate assembler instructions for the target machine.

We plan on using a more portable emulator with only the I/O (graphics,
sound, joysticks) being machine dependent, and the rest written in
portable C.

>It may very well be doable, but why bother finding out? :-) You might
>as well re-write the game itself to run on the computer. Easier to do,
>and you get better graphics and sound!

If there were only a few games, this may be the case, but there are about
600-700 games available for the 2600. Many of them are horrible, and
many of them are great. An emulator will help preserve the games so that
people can still play them even when the 2600 machines are all broken or
hard to find.
----
"Dwayne Dibly?!" - The Cat (I've seen 5th season. Have you?)
----

E. Kontei

unread,
Dec 18, 1992, 3:15:36 PM12/18/92
to
In article <tor...@zola.esd.sgi.com>, port...@tweezers.esd.sgi.com (Michael Portuesi) writes:
>
> Writing an Atari 2600 emulator on any contemporary piece
> of computing hardware is next to impossible unless you are
> an incredibly experienced real-time programmer - and even
> then, it would be incredibly difficult.
>
> All Atari 2600 games drive the display hardware directly,
> as the television scans the display. Unless you duplicate
> all of the timing relationships in the hardware -- and
> GUARANTEE that things will happen with microsecond
> acuracy -- it won't work. This includes things like
> emulating its sound and sprite hardware.

Hmm. I think we CAN get microsecond accuracy. Remember, the 2600 had
a very primitive instruction set, running at 1MHz. Today's computers
have much comprehensive instruction sets, usually running at 25 MHz
or more.

How abou this: a translator to "compile" the 6502 assembly language


into the apropriate assembler instructions for the target machine.

Then all you have to do is an emulator that maps the appropriate memory
locations into actions. Video RAM is from $xxx to $yyy, sound is at
$zzz, and so on. You only need three registers (A, X, and Y), and can use
the computer's other registers to keep any status variables you need.
This is all off the top of my head.

It may very well be doable, but why bother finding out? :-) You might
as well re-write the game itself to run on the computer. Easier to do,
and you get better graphics and sound!

--
E n r i q u e C o n t y
Master of Science!
jes...@ihlpm.att.com
Disclaimer: You're not dealing with AT&T

Tim Smith

unread,
Dec 19, 1992, 1:27:41 AM12/19/92
to
How do you plan to handle condition codes? Calculating 6502 condition
codes in C (assuming you are writing in C) could be a pain.

Here's a suggestion: don't calculate condition codes unless you need
them. Whenever an operation is done, save the operands and the operator.
When you encounter an instruction that checks the condition codes (e.g.,
a conditional branch), then calculate them from the saved operator and
operands.

--Tim Smith

Michael Portuesi

unread,
Dec 18, 1992, 1:26:07 PM12/18/92
to

In article <1992Dec16....@gems.vcu.edu>, hle...@gems.vcu.edu writes:
> Alright, I know this question has been asked 'n' million
> times but I have never seen an answer. Where can I get a
> copy of the hardware/software specifications for the Atari
> 2600? I assume that these are available as the system is no
> longer in production. Why do I want them? Well, I'm
> interested in writing a 2600 emulator program. Do you want
> to be able to run all your old atari games on an IBM-PC?
> Tell me where to get the specs!

Writing an Atari 2600 emulator on any contemporary piece


of computing hardware is next to impossible unless you are
an incredibly experienced real-time programmer - and even
then, it would be incredibly difficult.

All Atari 2600 games drive the display hardware directly,
as the television scans the display. Unless you duplicate
all of the timing relationships in the hardware -- and
GUARANTEE that things will happen with microsecond
acuracy -- it won't work. This includes things like
emulating its sound and sprite hardware.

Given that you can purchase used 2600 machines from the
local thrift store, that there are "clone" 2600 machines
from Coleco and others, that the 7800 directly plays 2600
games, and that hardware emulators were made for Colecovision,
Intelllivision, the 5200 and the VIC-20, wouldn't you
rather just dig up the hardware instead of embarking
on an exercise in frustration?

m.


--
Michael Portuesi Silicon Graphics, Inc. port...@sgi.com

Bob Rusbasan

unread,
Dec 18, 1992, 5:39:06 PM12/18/92
to
In article <tor...@zola.esd.sgi.com> port...@tweezers.esd.sgi.com (Michael Portuesi) writes:
>
>In article <1992Dec16....@gems.vcu.edu>, hle...@gems.vcu.edu writes:
>> Alright, I know this question has been asked 'n' million
>> times but I have never seen an answer. Where can I get a
>> copy of the hardware/software specifications for the Atari
>> 2600? I assume that these are available as the system is no
>> longer in production. Why do I want them? Well, I'm
>> interested in writing a 2600 emulator program. Do you want
>> to be able to run all your old atari games on an IBM-PC?
>> Tell me where to get the specs!

>Writing an Atari 2600 emulator on any contemporary piece
>of computing hardware is next to impossible unless you are
>an incredibly experienced real-time programmer - and even
>then, it would be incredibly difficult.

Others have said that it *would* be possible, but that brings up
another question:

Once this emulator is written, then what? Is this going to be an
underground thing, where people illegally copy the code stored on
the carts and pass it around to people with the emulator who
can run the games? Or are the games going to be licensed (somehow
I doubt that)?

Unless I'm mistaken, it takes a *long* time for copyrights to
expire, and I believe all of the 2600 games were copyrighted.

Surely there won't be a hardware attachment that lets you use the
actual 2600 carts -- that would be idiotic.

What's the plan here?

--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
/ Bob Rusbasan | Dance to the tension \
/ rusb...@expert.cc.purdue.edu | of a world on edge \
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Greg Alt

unread,
Dec 18, 1992, 2:36:03 PM12/18/92
to
In article <tor...@zola.esd.sgi.com> port...@tweezers.esd.sgi.com (Michael Portuesi) writes:
>Writing an Atari 2600 emulator on any contemporary piece
>of computing hardware is next to impossible unless you are
>an incredibly experienced real-time programmer - and even
>then, it would be incredibly difficult.

Difficult, but not "next to impossible".



>All Atari 2600 games drive the display hardware directly,
>as the television scans the display. Unless you duplicate
>all of the timing relationships in the hardware -- and
>GUARANTEE that things will happen with microsecond
>acuracy -- it won't work. This includes things like
>emulating its sound and sprite hardware.

This is true, but the emulator doesn't have to be strictly
real-time. All you have to do is count the cycles for
the emulated instructions and signal things based on how
many cycles have passed. This way, it will run too slow
on a slow machine and too fast on a fast machine. For the
fast machine, it will be possible to sync the display rate
with the timer interrupt so that it happens at the correct
speed instead of too fast. But you won't have to worry
about syncing the horizontal line drawing to anything
realtime.

>Given that you can purchase used 2600 machines from the
>local thrift store, that there are "clone" 2600 machines
>from Coleco and others, that the 7800 directly plays 2600
>games, and that hardware emulators were made for Colecovision,
>Intelllivision, the 5200 and the VIC-20, wouldn't you
>rather just dig up the hardware instead of embarking
>on an exercise in frustration?

It is an interesting problem to try, and I think many people
would find it useful. Besides, how else can you play 2600
games on an airplane? Running an emulator on a 486 laptop
makes that possible. :-) And there will be a time when 2600
hardware is difficult to find. Then the 2600 emulator will
be historically important.

This project is being started already with some very competent
people, and we have discussed many of the difficulties and
found ways around them. If anyone is interested in getting
on the mailing list for this project (or is you are just
interested in programming the 2600--something that is
probably more difficult than writing the emulator), send me
email and I'll send you the info for getting on the list.

0 new messages