A Chip8 Emulator For 68000-based Macs

Among this crowd, it’s safe to say that the original 68000 Macintosh computers need no introduction, but it’s possible some of you aren’t familiar with Chip8. It was an interpreted virtual machine originally created for the COSMAC VIP microcomputer by [Joe Weisbecker] way back in 1977. It enabled coding simple games on the COSMAC VIP without getting into machine code on the VIP’s CDP1802 processor. For the obvious reason of “Why not?” [KenDesigns] decided to put the two together with Chip4Mac68000, a Chip8 emulator for the original Macintosh.

Chip4Mac68000 is not actually a Macintosh program; it doesn’t run in the System Software. Instead, it is a bootdisk that runs bare-metal on the 68000 processor, bypassing Apple’s ROM completely. Doing that is probably more impressive than emulating Chip8 — anyone who wants to get into writing emulators starts with Chip8. That’s not to knock on anyone who goes to the effort of writing an emulator, it’s just that given its origins in a 1970s micro, it’s understandably a very simple system. Not many people do bare-metal coding on this sort of hardware anymore; it’s not like there’s an SDK you can go grab.

Or there wasn’t, anyway, because in order to get this emulator to work, [KenDesigns] wrote a bare-metal SDK for 68000-based Macs. Note that when he says 68000, he does mean 68000 — anything newer than a Macintosh Classic is out. It’s 68000, not 680xx. It was not a trivial endeavour. In the demo video embedded below, you can see his 512k Macintosh in pieces because he’s been poking at it with a logic analyzer to verify the hardware does what he thinks it’s being told.

If you want to try it out, apparently you don’t need real hardware: [KenDesigns] says MAME is accurate enough to make it all work, but miniVmac is not. No word if it would work on the RP2040-based PicoMac; if you try it, let us know how it works out.

This isn’t the first time we’ve seen people writing new software for old Macs of late. If you’re working new magic on very old machines, drop us a line. We’d love to hear about it.

Continue reading “A Chip8 Emulator For 68000-based Macs”

Seven New Street Fighter 2 Arcade Rom Hacks

[Sebastian Mihai] is a prolific programmer and hacker with a particular focus on retrocomputing and period games, and this latest hack, adding new gameplay elements to Capcom’s Street Fighter II – Champion Edition, is another great one. [Sebastian] was careful to resist changing the game physics, as that’s part of what makes this game ‘feel’ the way it does, but added some fun extra elements, such as the ability to catch birds, lob barrels at the other player, and dodge fire.

The title screen was updated for each of the different versions, so there is no doubt about which was being played. This work was based on their previous hacks to Knights of the Round. Since both games shared the same Capcom CPS-1 hardware, the existing 68000 toolchain could be reused, reducing the overhead for this new series of hacks. Continue reading “Seven New Street Fighter 2 Arcade Rom Hacks”

Everything You Wanted To Know About Early Macintosh Floppies

Using a disk drive today is trivial. But back “in the day,” it was fairly complex both because the drives were simple and the CPUs were not powerful by today’s standards. [Thomas] has been working on a 68000 Mac emulator and found that low-level floppy information was scattered in different places. So he’s gathered it all for us in one place.

Low-level disk access has a lot of subtle details. For example, the Mac calibrates its speed control on boot. If your emulated drive just sets the correct speed and doesn’t respond to changes during calibration, the system will detect that as an error. Other details about spinning disks include the fact that inner tracks are shorter than outer track and may require denser recordings. Laying out sectors can also be tricky since you will lose performance if you, for example, read sector one and then miss sector two and have to wait for it to come back around. Disk sectors are often staggered for this reason.

Adding to the complexity is the controller — the IWM or Integrated Woz Machine — which has an odd scheme for memory mapping I/O. You should only access the odd bytes of the memory-mapped I/O. The details are all in the post.

In a way, we don’t miss these days, but in other ways, we do. It wasn’t that long ago that floppies were king. Now it is a race to preserve the data on them while you still can.

An IBM PC showing "68000 IBM PC" on its monitor

IBM PC Runs BASIC With Motorola 68000 CPU Upgrade

Although ARM CPUs have been making headway in several areas of computing over the last decade or so, the vast majority of desktop, laptop and server CPUs are still based on the x86 architecture. How that came to be is no secret, of course: IBM chose the Intel 8088 to power its model 5150 PC back in the early 1980s, and since it became the dominant PC platform, everyone else followed suit. But what if IBM’s purchasing department had got a good deal at Motorola instead? [Ted Fried] has been experimenting with that scenario, by equipping an IBM PC with a 68000 CPU.

To be fair, he didn’t use an actual Motorola chip; instead, he emulated a 68k core on a Teensy 4.1 and implemented the 8088’s bus interface on its pins. The emulated core does exactly the same thing an actual CPU would do, while the rest of the computer works the same way it always did – data is stored in the motherboard’s DRAM chips, keystrokes are processed by the standard 8255 chip and progam output is displayed on the monitor through the MDA video card. Continue reading “IBM PC Runs BASIC With Motorola 68000 CPU Upgrade”

Porting DOOM To A Forgotten Apple OS

Apple hasn’t always had refined user experiences in their operating systems. In the distant past of the ’90s they were still kind of clunky computers that were far from the polished, high-end consumer machines of the modern era. That wasn’t all that Apple offered back then, though. They had a long-forgotten alternative operating system that was called A/UX designed for government applications, and [Keriad] is here to show us this relic operating system and port DOOM to it.

A/UX was designed in the pre-PowerPC days when Macintosh computers ran on Motorola 68000 chips. Luckily, [Keriad] has a Mac Quadra 800 with just such a chip that is still fully-functional. DOOM was developed with the NeXTSTEP operating system which can run on old Macs thanks to another tool called MacX which allows X11 applications to run on Mac. A version of gcc for A/UX was found as well and with the source code in hand they were eventually able to compile a binary. There were several hiccups along the way (including the lack of sound) but eventually DOOM was running on this forgotten operating system.

The main problem with the build in the end, besides the lack of sound, is that the game only runs at 2 – 3 frames per second. [Keriad] speculates that this is due to all of the compatibility layers needed to compile and run the game at all, but it’s still impressive. As far as we know, [Keriad] is the first person to port DOOM to this OS, although if you’re looking for something more straightforward we would recommend this purpose-built Linux distribution whose sole task is to get you slaying demons as quickly as possible.

The Epic Saga Of Hacking Knights Of The Round

For the uninitiated, Knights of the Round was a hack-and-slash arcade game released by Capcom in 1991 that rather loosely followed the legend of King Arthur and the eponymous Knights of the Round Table. In it, up to three players make their way from stage to stage, vanquishing foes and leveling up their specific character’s weapons and abilities. But [Sebastian Mihai] was looking for a new way to experience this classic title, so he decided to reverse engineer the game and create his own version called Warlock’s Tower.

Those familiar with the original game will no doubt notice some of the differences right away while watching the video below, but for those who don’t have an intimate knowledge of Arthur’s digital adventures, the major changes are listed on the project’s web page. Among the most notable are the removal of cooperative multiplayer and stage time limits. This turns the game from a frantic beat ’em up to a more methodical adventure. Especially since you now have to compete the game in a single life. If we had to guess, we’d say [Sebastian] prefers his games to have a bit of a challenge to them.

Even if you aren’t interested in playing Warlock’s Tower yourself, the story of how [Sebastian] created it is absolutely fascinating. He started with zero knowledge of Motorola 68000 assembly, but by the end of the project, was wrangling multiple debuggers and writing custom tools to help implement the approximately 70 patches that make up the custom build.

The hundreds of hours of work that went into creating these patches is documented as a sort of stream of consciousness on the project page, allowing you to follow along in chronological order. Whether it inspires you to tackle your own reverse engineering project or makes you doubt whether or not you’ve got the patience to see it through, it’s definitely worth a read. If you’re a Knights of the Round fan, you should also take a look at the incredible wealth of information he’s amassed about the original game itself, which honestly serves as an equally impressive project in its own right.

Modified versions of classic games, known colloquially as “ROM hacks” are fairly common among serious fans who want to see their favorite games improved over time. While they aren’t always as ambitious as Warlock’s Tower, they all serve as examples of how a dedicated community can push a product well beyond the scope envisioned by its original creators.

Continue reading “The Epic Saga Of Hacking Knights Of The Round

VME Reverse Engineering

With some free time on his hands waiting for delayed parts to arrive, [Rik] set out to reverse engineer an old VME system he had acquired. VMEbus computers are based on the standard Eurocard PCB format, which defines a wide range of card sizes — the most common being 6U height like [Rik]’s system. They usually consist of a rack-mounted card cage with a passive backplane. Originally, Motorola 68000-based CPU cards were used in VMEbus systems, but any processor could be used as long as you provided the right signals and timings to the system bus. Eurocard systems are less common these days, but are still used in some applications. In fact, if you’re into synthesizers, you may be using Eurocards today — the Eurorack standard is based on the standard 3U card size.

Back to [Rik]’s project, he had no idea what this system was nor how to use it. A bit of probing around and he found two UARTs, a system monitor, and a way to load and dump S-record files. He documents the process quite well, as the internal layout and memory map of the system is unlocked piece by piece. We also like his method of instrumenting the VMEbus signals — logic analyzers are so small today, you can just mount one inside the rack.

Spoiler alert: [Rik] succeeds in mapping out the memory, writes some small programs in 68k assembly language, and even builds his own LED accessory card so he can blink some lights (as one must do).

We wrote about modularity recently, and VMEbus + Eurocard systems are good examples of modular design. You could quickly put together a robust assembly using entirely off-the-shelf cards, or mix in your own custom cards. But technology advancements in clock speeds and miniaturization have made these card cage, passive backplane systems less and less relevant today. Do any of you still use the VMEbus, or have you designed with them in the past? Let us know down in the comments below.