Jump to content
eegad

2600 emulation on 8-bit computers?

Recommended Posts

I was just playing the Asteroids emulator on my 800xl and it made me wonder....would it be possible to do a 2600 emulator on the 8-bits? I know someone ported Adventure to the 8-bits a while back. Would a more generic emulator be possible?

 

 

  • Like 1

Share this post


Link to post
Share on other sites

I have always had this dream where i wake up to find Altirra has 7800 and 2600 support....Sadly its just a dream :(

 

As for the 2600 being emulated on the Atari itself, I've heard the 2600 is quite powerful under the hood despite what you see on the screen but you really need the words of a hardware guru like Avery etc, I'm betting it would be too hard...

Share this post


Link to post
Share on other sites

The childhood dream of having an Atari 400/800 and VCS and 7800 is alive and well. As long as they're on the same machine it's awesome enough for me.

 

Someone had suggested the individual emulators are like front ends or menu selectors for the game roms.

 

Regarding the idea of an 8-bit system emulating the VCS? The VCS' video display is significantly different from bit-mapped systems. And things happen pretty quick when the screen is being drawn. I can see individual games being done with a little per-game tweaking. I can also envision an 8-bit VCS emu running at 75% speed

 

Back in the day My 486 DX2/50 was handling VCS emulation ok - with power to spare.

Share this post


Link to post
Share on other sites

I was just playing the Asteroids emulator on my 800xl and it made me wonder....would it be possible to do a 2600 emulator on the 8-bits? I know someone ported Adventure to the 8-bits a while back. Would a more generic emulator be possible?

 

Porting is something entirely different, it can be as simple as tweaking the memory map or as comprehensive as a re-write in an entirely different language. So lot's of room and resources to play with.

Share this post


Link to post
Share on other sites

From my (very) Limited knowledge of the hardware of both systems, apart from speed, the 8-Bit's lack of a way of tripplexing the sprites width-wise (e.g. three planes in "Combat", three logs in "Pitfall!") would be a stumbling block, as well as a straight-forward 40-byte wide "playfield" register.

 

As Keetah says, porting is more obvious (see Phaeron's port of "David's Midnight Magic" from the 2600 - there are others too). And of course if the source code is available, that would be more useful.

 

Perversely, I'd like to see a more 2600-a-like version of Pitfall! for the A8 than the existing version, but I guess that's just because it's the version I grew up with :)

Share this post


Link to post
Share on other sites

Pure emulation, i.e. an 8-bit running a VCS binary would probably fail as VCS programs need very tight timing loops to 'chase the beam' and I doubt the extra speed of the 8-bit would be enough to interrupt all that chasing at the right times to replace instructions with something that produces the right effects on 8-bit hardware.

 

At least that's what I believe until my countryman Norbert Kehrer comes up with an emulator ;)

Edited by slx
  • Like 2

Share this post


Link to post
Share on other sites

An emulator needs code to perform all functions that are not identical between the machines (and usually even the identical functions are emulated by code just to give full control over how the emulator behaves). This means every cycle of the emulated machine needs many cycles on the host machine. The A8 is only clocked 50% percent faster than the 2600 and much of that advantage is lost to DMA. Add to that the need for everything to be cycle exact, so your emulator can't cheat in any way. So, no. The A8 would need serious help to run 2600 games.

 

I've had the idea of putting an ARM chip in a cartridge that would do all the emulation and also generate a kernel for the A8 to display the picture. I doubt there's anything the 2600 could display on a line that you couldn't do on the A8, but you wouldn't always do it in a similar fashion.

Share this post


Link to post
Share on other sites

Several things combine to make it next to impossible.

 

. chasing the beam, cycle counts per scanline are different as well as DMA hits on the computer. The whole thing mainly relates to changing graphics and PM positions and the PM positioning is done completely differently so knowing what cycle a positioning request occurs on would be a real time-consuming exercise.

 

. PM replication. Even though 2600 only has the 2 Players and single bit missiles and a ball, replication on the PMs mean you can have 6 across the screen with the clones automatically spaced from their parents at set intervals depending on the size/replicate mode register.

 

. HW registers. 2600 has them all on page 0 and some are frequently changed so even monitoring and emulting on a scanline basis wouldn't be enough.

 

. Playfield. Even though it's a scabby 20 bits * 2 giving 40 pixels, the mirror and replicate modes and way the thing is mapped to begin with means translation and bitshifting is needed. Another thing is that some games change the PF twice per scanline.

 

 

I had a think about using VBXE but even then it'd likely not help a lot. VBXE could capture and do some degree of analysis on z-page writes since you can have a memory window appear there. You could also probably setup a blit to give you a means of timing some things. And maybe use the blitter to help translate Playfield data and do the replicated PMs.

But still it comes down to the 6502 just being not fast enough.

A more realistic approach would be to just render in the background and do page-flipping. The stock machine would run emulation at a fraction of the speed. A 14 MHz enhanced CPU + VBXE gives you 8* stock speed plus 14 MHz worth of rendering engine in VBXE. Even then it would probably be a chore because you'd probably need to run the game in an emulation environment, ie execute each instruciton indirectly sort of like a debugger in step/trace mode would do.

Edited by Rybags
  • Like 3

Share this post


Link to post
Share on other sites

One other thing. I'm the co-author of the Virtual VCS demo for the Jaguar. Even that machine was struggling to run 2600 games full speed. We barely got our emulator to do it and we later found out Dave Staugas at Atari was working on the same thing but his was never fast enough.

 

Our trick was that we used some LUTs in the GPU for the most common operations and we re-arranged the cartridge image to prevent as many data loads and shifts as possible (I can elaborate if anyone wants because it was a real Eureka! moment for us).

  • Like 5

Share this post


Link to post
Share on other sites

I read that there was a VCS expansion card planned for the 1090. I bet it would have been similar to the 5200 expansion with the entire 2600 guts in it. Too bad that and the 1090 didn't happen or 2600 game homebrewing might have started 10 years earlier because of being able to code directly from an XL.

  • Like 1

Share this post


Link to post
Share on other sites

Aha, I'd heard of this Racing / Chasing the beam and formulated a rough idea of what it meant but hada google about and saw the book Racing The Beam about the VCS, read the wiki and wasn't too far off in my crude way. Judging by the other comments I'd say its unlikely the standard Atari would be able to emulate this just alone from the timing / cycle issue...

 

Sigh, back to my dream of Altirra emulating it all :)

 

Joking...

  • Like 1

Share this post


Link to post
Share on other sites

It'd be nice to have the Altirra interface and debugging features with other machines.

 

My list of priorities though would be something along the lines of Lynx, C64, 7800, NES, Plus/4, BBC Micro, Vic-20, Oric then other proprietary 6502 machines I might have missed.

 

My reasoning for not having 2600 anywhere near the top of that list - Stella has excellent features in it's own right, and complex debugging probably isn't quite as important for small system as the 2600.

  • Like 1

Share this post


Link to post
Share on other sites

I'd still like the 2600 up there but simply because I abhor most of the emulator interfaces, the 2600 particularly has prehistoric interfaces on the emulators. I'm sure if Avery was asked if he was happy with Altirra's interface he would say no but for the user its great, it sprawls a little but in general every thing has a good placement and its easy to use. Things like the pro system for 7800, Emu7800 and Stella for the 2600 just are a little awkward.

 

I'd love a C64 version of Altiira, Vice is very good but setting drives up especially with custom roms is hard work and once done if you want the default settings you must remove those that you set up rather than have a profile etc.

 

Can't really comment on the debugging side, my days of trying to grapple with machine code are long gone, I was below average at the time but I found my way around to actually code stuff, it just wasn't efficient code. These days I play around ripping character sets etc but mostly cheating games which is now easy to do with the cheat system Avery kindly added, before I'd use Omnimon and actually read and follow the code.

 

But yes, as much as its more jest than anything, I'd love to see an Avery version of some emulators but I'm pretty sure he would read this and laugh saying "not in a million years" and I totally appreciate that, life and work are well ahead of pet projects and the man deserves his own time and we will always be grateful for the time and effort that has and we hope will be put in the future, this and WinUAE are two of my favourite emulators, both authors strive for perfection and devote so much time to it, if I was into religion I'd say we are blessed to have them.

 

As I'm not religious I can only offer my heartfelt thanks for them..

 

Paul..

 

PS, Avery and Toni Wilen as a team, that would be emulation perfection....................................... Or they would kill each other :)

Edited by Mclaneinc
  • Like 1

Share this post


Link to post
Share on other sites

One other thing. I'm the co-author of the Virtual VCS demo for the Jaguar. Even that machine was struggling to run 2600 games full speed. We barely got our emulator to do it and we later found out Dave Staugas at Atari was working on the same thing but his was never fast enough.

 

Our trick was that we used some LUTs in the GPU for the most common operations and we re-arranged the cartridge image to prevent as many data loads and shifts as possible (I can elaborate if anyone wants because it was a real Eureka! moment for us).

 

Good to have the programmer of Virtual VCS around here. :) Which version did you do? The one that ran at half speed or the one with better speed without the hit detection?

Share this post


Link to post
Share on other sites

...and saw the book Racing The Beam

 

Joking...

That book makes for very interesting reading even if you'll never program a VCS and gives an excellent insight into how 'later' VCS games wildly surpassed anything the VCS' designers ever intended it to be capable of.

 

Imho it's the best of the platform series so far, though I hope for the 8-bit book still in the works to be even better! ;)

 

 

Gesendet von iPhone mit Tapatalk

  • Like 1

Share this post


Link to post
Share on other sites

Good to have the programmer of Virtual VCS around here. :) Which version did you do? The one that ran at half speed or the one with better speed without the hit detection?

When we submitted it to Atari, it ran full speed but was missing sound and collisions (which were going to be handled by the DSP/Jerry). When we sent all our code to Carl Forhan, something must have gotten mixed up because the version he got had some problems.

 

We expected Atari to jump at it, but they kept delaying us because they were waiting to see if the in-house version would work (as we found out years later).

Share this post


Link to post
Share on other sites

I'd love a C64 version of Altiira, Vice is very good but setting drives up especially with custom roms is hard work and once done if you want the default settings you must remove those that you set up rather than have a profile etc.

i've never tried swapping the drive ROMs out in VICE but don't the options to save/load the config to a specified file do at least the majority of what you're wanting...?

  • Like 1

Share this post


Link to post
Share on other sites

That is soo true...Good thing one of us is awake...

 

It would be nice to have a more friendly way tho...

Edited by Mclaneinc

Share this post


Link to post
Share on other sites

I'd still like the 2600 up there but simply because I abhor most of the emulator interfaces, the 2600 particularly has prehistoric interfaces on the emulators. I'm sure if Avery was asked if he was happy with Altirra's interface he would say no but for the user its great, it sprawls a little but in general every thing has a good placement and its easy to use. Things like the pro system for 7800, Emu7800 and Stella for the 2600 just are a little awkward.

 

I'd love a C64 version of Altiira, Vice is very good but setting drives up especially with custom roms is hard work and once done if you want the default settings you must remove those that you set up rather than have a profile etc.

 

Can't really comment on the debugging side, my days of trying to grapple with machine code are long gone, I was below average at the time but I found my way around to actually code stuff, it just wasn't efficient code. These days I play around ripping character sets etc but mostly cheating games which is now easy to do with the cheat system Avery kindly added, before I'd use Omnimon and actually read and follow the code.

 

But yes, as much as its more jest than anything, I'd love to see an Avery version of some emulators but I'm pretty sure he would read this and laugh saying "not in a million years" and I totally appreciate that, life and work are well ahead of pet projects and the man deserves his own time and we will always be grateful for the time and effort that has and we hope will be put in the future, this and WinUAE are two of my favourite emulators, both authors strive for perfection and devote so much time to it, if I was into religion I'd say we are blessed to have them.

 

As I'm not religious I can only offer my heartfelt thanks for them..

 

Paul..

 

PS, Avery and Toni Wilen as a team, that would be emulation perfection....................................... Or they would kill each other :)

I dunno Mc - Stella has the best debugger interface of any emulator I've seen. It really is the "Altirra" of 2600 emulators.

  • Like 1

Share this post


Link to post
Share on other sites

Hi Stephen,

 

As said, I can't really comment on the debugging side, to be honest I've not looked at the Stella debugger at all, I was more talking about the easiness of using the emulators, Altirra and WinUAE make 99% of it very clear and easy even on the complex setup and there are others who also do a fine job of ease of use like Nestopia, Blue MSX and Hoxs64.

 

I want the GUI to do as much of the setting up as possible so when you do run the older machine, say Amiga, its only then you get stuck in to doing stuff by hand ie setting up Opus etc. It might sound a bit lazy but it for me dulls the experience if you have to do loads of by hand setup to just run the wanted machine in the emulator. Altirra etc does 99.99% of that for you by just selecting the hardware or the profile, things like needed roms, memory etc are all go. Emulators like Blue MSX which emulates a fair few machine and NOT just MSX has a machine manager, select wanted machine and all the variables are done for you.

 

I'm not saying the other emulators are rubbish, I just wish the gui's were more up to date and friendly but I'm not a complete idiot, while there's nothing else I'll happily use them as they are, in the end if the emulation is good that is what counts.

 

If I were to give a perfect example of what I don't like in gui's it would be Atari++, the quality of emulation is very good but the interface is a nightmare of SDL madness, just browsing directories is based on DOS style directives, its annoying, its clunky. Hats off to Thor etc for making it but using it isn't fun until you get the Atari actually running and then its ok. I'm desperately trying to not appear to criticise authors, these people have more talent in one finger than I will ever have at programming but sometimes they are very good at the emulation side and not so at the cosmetic stuff and I can relate to that, being good at maths and problem solving does not mean you have creative artistic flair :)

Edited by Mclaneinc

Share this post


Link to post
Share on other sites

Sounds like a project that would be a huge success with us if it were ever to become a reality. I know I'd buy one. :)

Share this post


Link to post
Share on other sites

Having an Atari 8-bit computer emulate the 2600 probably is asking too much, but for instance perhaps Batari BASIC could have a compiler that generates an 8-bit kernal instead, so the same source files could work. While there are plenty of other, excellent BASIC solutions for the 8-bit computers, being able to compile Batari projects would increase the software output even more, if one can settle with "2600 quality" games.

  • Like 1

Share this post


Link to post
Share on other sites

Having an Atari 8-bit computer emulate the 2600 probably is asking too much, but for instance perhaps Batari BASIC could have a compiler that generates an 8-bit kernal instead, so the same source files could work. While there are plenty of other, excellent BASIC solutions for the 8-bit computers, being able to compile Batari projects would increase the software output even more, if one can settle with "2600 quality" games.

 

I think that could definitely be done - I'm working on an A8 cross compiler for SuperCharger BASIC and Flashback BASIC, which are already cross compatible via the same mechanism applied to abstract the memory access schemes. Now I need to abstract A8 memory access similarly as well as TIA to CTIA; should work for everything but sprite replication.

 

Flashback BASIC features a soft blitter chip and display lists like the A8 which may make the games feel more at home on the platform. I'm keeping the soft blitter rather than using ANTIC but I am providing access to the extra A8 player missile graphics though games that use them won't be able to compile for the 2600.

 

DPC+ bB might feel more at home on the A8 too if a cross compiler could be made that uses an ARM chip co-processor cart, which I think is also possible.

  • Like 1

Share this post


Link to post
Share on other sites

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.

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...