Yo Dawg, We Heard You Like Retrocomputers

The idea of having software translation programs around to do things like emulate a Super Nintendo on your $3000 gaming computer or, more practically, run x86 software on a new M1 Mac, seems pretty modern since it is so prevalent in the computer world today. The idea of using software like this is in fact much older and easily traces back into the 80s during the era of Commodore and Atari personal computers. Their hardware was actually not too dissimilar, and with a little bit of patience and know-how it’s possible to compile the Commodore 64 kernel on an Atari, with some limitations.

This project comes to us from [unbibium] and was inspired by a recent video he saw where the original Apple computer was emulated on Commodore 64. He took it in a different direction for this build though. The first step was to reformat the C64 code so it would compile on the Atari, which was largely accomplished with a Python script and some manual tweaking. From there he started working on making sure the ROMs would actually run. The memory setups of these two machines are remarkably similar which made this slightly easier, but he needed a few workarounds for a few speed bumps. Finally the cursor and HMIs were configured, and once a few other things were straightened out he has a working system running C64 software on an 8-bit Atari.

Unsurprisingly, there are a few things that aren’t working. There’s no IO besides the keyboard and mouse, and saving and loading programs is not yet possible. However, [unbibium] has made all of his code available on his GitHub page if anyone wants to expand on his work and may also improve upon this project in future builds. If you’re looking for a much easier point-of-entry for emulating Commodore software in the modern era, though, there is a project available to run a C64 from a Raspberry Pi.

Thanks to [Cprossu] for the tip!

20 thoughts on “Yo Dawg, We Heard You Like Retrocomputers

        1. Atari lacks also the VIC-II chip, nonetheless the screen editor works ;-)

          Given that Atari support analogue paddles as well, it would only need the driver patched to read from the right registers.

          BTW mouse is not mentioned on the documentation, and since at the moment only simple BASIC programs can be run it would be pretty pointless.

          P.S. There was also a “digital” mouse, the 1530 that does not use the SID ADCs.

    1. Exactly my thought, where exactly is mouse functionality mentioned?
      Although I’m not surprised if it is suported, because the 9-pin joystick connector is compatible and the way paddle readout work shouldn’t be to between two computer of the same era. But I really like to know why this was even tried as it makes no sense regarding priorities of making a project like this work. In other words, is this a typo of the editor? More info please…

      1. I think it’s easy to put in a Freudian slip once in a while. Gotta love the fact although it’s most certainly a typo, another commenter noted that there is indeed a edge case for the commodore having a mouse… Supposedly it IS possible to use an Atari ST or Amiga mouse with the 800XL, though it would fully depend on software to support it (It’s not ‘standard’ for sure).

        Just a sign of the times, hard to imagine a computer today that didn’t come with a pointing device!

    1. It is impressive, though since the BBC micro ran at 2MHz and the //e ran at 1MHz, it will make for a ‘slow’ BBC Basic, still faster than most 6502 Basics.

      Is it also possible to run Acorn Atom Basic (one weird, but brilliant implementation) on an Apple //e in a similar manner?

      Note: I don’t have a //e, but I do have a 1984 //c and an ][europlus with two drives and numerous cards including the MS Softcard for running CP/M software. I’ve just realised, that means I have a CP/M machine too!

  1. There is actually a “Commodore 64 Collection (E)”-ROM for the Super Nintendo out there.
    This game seems to be published by “IMAGE P. 1995” and is apparently a port of the C64 BASIC and KERNAL to the SNES.
    The KERNAL is of course a bit modified to use the SNES hardware. Tape routines are replaced by routines to load games from the internal ROM.
    BASIC and Chargen seem to be original (they are the same as ones found in the VICE emulator)
    After starting up it boots into a menu to select a game:

    By glitching that menu in the ROM I was able to drop to a BASIC prompt.
    Because the SNES lacks a keyboard I had to access the RAM directly to input anything.

    a load “$” showed me this https://imgur.com/2jxxkQq

    after dissecting the ROM image I was able to extract some of the games and actually run them on VICE aswell.

    Of course, googling for “IMAGE Productions” would be asking if anyone had seen a car.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.