Jump to content
toddtmw

Atari 2600 Emulator for A8?

Recommended Posts

Anyone ever thought about whether this would even be possible? The 2600 seems pretty low end from a resource standpoint. What does the 2600 have that A8 doesn't have?

  • Like 2

Share this post


Link to post
Share on other sites

Anyone ever thought about whether this would even be possible? The 2600 seems pretty low end from a resource standpoint. What does the 2600 have that A8 doesn't have?

 

A TIA chip, a 6532 RIOT and an entirely different system architecture. :)

Share this post


Link to post
Share on other sites

Yeah. Not really possible with software alone. The A8 is only a little faster than the 2600 which leaves nothing for all the real-time hardware simulation that would have to happen. Basically, you could watch the A8 slowly draw 2600 scan lines.

  • Like 1

Share this post


Link to post
Share on other sites

You might be able to do something very rudimentary. But nothing approaching the fidelity of Stella. The architecture is just too different. The timing too strict.. And more!

Share this post


Link to post
Share on other sites

Either somebody is going to come along and do it. Or they won't. It is possible, but it will take some serious engineering, and it will never work 100%.

 

-Thom

Share this post


Link to post
Share on other sites

In some respects the 2600 PMs are more powerful than the computers - we lose the repeat ability which allows the 2600 to have 6 for the price of 2.

 

What kills the idea more than anything though is the cycle dependant positioning. There's just no easy way to run native 6502 code then detect what cycle offset a register hit takes place on when the hosting machine is less than about 50 times as fast.

  • Like 1

Share this post


Link to post
Share on other sites

From what I've read over the years, and also through personal experience, the lower limit is actually 100x. That is, at minimum you need a machine 100x faster that what is being emulated. So for the 2600, this means a clock speed of over 100MHz. Stella was able to do that in the 486 days, but is no longer able to do so because of all the added features (debugger, etc) that require a much faster machine. But realistically, you're not going to get proper emulation on less than 100MHz, and even achieving that will be hard.

  • Like 1

Share this post


Link to post
Share on other sites

119 MHz gives about 100 cycles per NTSC 6507 cycle. I wonder though, were there any 2600 emus for the PS original? It's RISC and only runs at 34 MHz.

 

There was an 800 emu for the ST, only a 4.5 x speed difference although it probably run at 33% speed at best, wasn't that accurate and probably suffered even worse if complex graphics were needed.

Share this post


Link to post
Share on other sites

From what I've read over the years, and also through personal experience, the lower limit is actually 100x. That is, at minimum you need a machine 100x faster that what is being emulated. So for the 2600, this means a clock speed of over 100MHz. Stella was able to do that in the 486 days, but is no longer able to do so because of all the added features (debugger, etc) that require a much faster machine. But realistically, you're not going to get proper emulation on less than 100MHz, and even achieving that will be hard.

 

Without going into much detail, I'll point out that '100x CPU clock' is absolutely meaningless. a 100MHz 6502 vs. a 100MHz intel i7 would be no surprise when the i7 wins. You have to take into account architectural features like CPU pipelining, caching, out of order execution, and superscalar (multiple-issue meaning multiple instructions start running at the same time). What you could do on a 100MHz 486, you might be able to do on a modern 50MHz ARM CPU (or maybe not, I'm just giving a potentially bad example)

Edited by Joey Z

Share this post


Link to post
Share on other sites

I'm well aware of that, and have quite in-depth experience of Stella and its requirements. The original question was could a 2600 emulator be written for an A8 (a similar CPU), and in that context 100x CPU time is the absolute lower limit of what would be needed. And that would be pushing it. And since no A8 had a CPU anywhere near that fast, the answer is no, a fully-compatible 2600 emulator could not be done in such an environment.

 

Stella was also written and ran on a Dreamcast (200MHz CPU), but not very well (and not completely). Similar 'small' systems have been used as well (GP32, PSP, etc), and much effort was required to get them to run with 200-300MHz CPUs. Even on the 486 @ 100MHz, it was still very minimal, not-fully-complete emulation. So while MHz in general doesn't translate well between different architectures, I would still state that 100x minimum really is the absolute minimum.

Share this post


Link to post
Share on other sites

In real-world usage, a Pentium II 266 - Pentium III 350 runs Stella 2.x or 3.x at full speed. It J U S T B A R E L Y makes it.

Share this post


Link to post
Share on other sites

I am just getting my nose into 6502 machine language, so I have no idea.... But how was the ST able to run MAC software faster than the top of the line Mac that was available at the time? I am not talking abut external hardware (Spectre GCR) I am talking all in software (Macic Sac). Just curious......

Share this post


Link to post
Share on other sites

The 68000 of the ST runs faster than the ones in the Mac and Amiga by about 1/7th. Other than that, exact same CPU. No requirements for complex code tracking for time critical emulation, lots of what goes on can be just done natively. 68000 is also sufficiently advanced that some things can be trapped and special code ran which can make some emulation tasks easier.

 

Even the PC-Ditto emulation wasn't too bad. Though probably at effectively 20-30% speed of a 4.77 MHz 8086 it's still usable for some applications.

Share this post


Link to post
Share on other sites

Mac software is also relatively tame -- relocatable code and data, mostly going through the OS to access the hardware, and doesn't care too much if the CPU is 20% faster or slower than it should be. This means that emulators like Magic Sac and A-Max could just patch the Mac OS and tweak the memory map to match the host machine, and well-behaved software could run on the bare metal. You can do this on the A8 -- there was an Apple II emulator that didn't win any awards for accuracy but could run Applesoft BASIC and even some games. Doesn't work with the 2600 where you have games hitting the hardware directly and hardware that requires precise cycle timing to get practically anything on screen at all.

  • Like 2

Share this post


Link to post
Share on other sites

Then there is this video of a Spectrum emulator (Z80 @ 3.5 MHz) running on an A8 using a Rapidus (65C816 @ 20 MHz) & VBXE...

 

Edited by 917k
  • Like 1

Share this post


Link to post
Share on other sites

The Jag has like 4 2600 emulators if you want run a 2600 emulator on a Atari platform but most of the 2600 emulators on the Jag are broken some dont work, if they did work they never got optimize. Atari dropped the ball on 2600 emulators for the Jag. The Jag could had one cart packed full of 2600 games. :-o

 

Edited by walter_J64bit
  • Like 1

Share this post


Link to post
Share on other sites

There was too little effort put into Jaguar software as it was - doing emulators would have just given them an excuse to do even less.

 

Still, it would be interesting to see an emulator done on the computer even if it resulted in a 2 fps slideshow.

  • Like 1

Share this post


Link to post
Share on other sites

Anyone ever thought about whether this would even be possible? The 2600 seems pretty low end from a resource standpoint. What does the 2600 have that A8 doesn't have?

Great thread topic! :)

 

I am working on a cross-compiler for BASIC and Assembly games that use the Atari 2600 Flashback BASIC runtime (like PIXELS and KC Monster Maze) to run natively on the A8.

 

This can work because CTIA/GTIA can do pretty much everything TIA can except the mirrored sprites but it's translation and not emulation; given the MHZ direct emulation is not possible but a similar translator for batari BASIC games and classic Assembly games (that don't use sprite mirroring, space invaders is out) should also be possible to build!

Share this post


Link to post
Share on other sites

I am just getting my nose into 6502 machine language, so I have no idea.... But how was the ST able to run MAC software faster than the top of the line Mac that was available at the time? I am not talking abut external hardware (Spectre GCR) I am talking all in software (Macic Sac). Just curious......

Mac didn't really much in the way of custom hardware to worry about. The ST Mac emulators weren't really emulators, but more of what we'd today call a "Virtual Machine"

Share this post


Link to post
Share on other sites

Looks like the Vic 20 could play 2600 cartridges!!!

 

post-50483-0-16868900-1498931484_thumb.png

 

This was from the January 1983 edition of Compute! Magazine.

Edited by toddtmw
  • Like 1

Share this post


Link to post
Share on other sites

I bet that "loader" is/was something like 2600 adapter for 5200.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...