KIM-1 to COSMAC Elf Conversion — Sort Of

In the mid-1970s, if you had your own computer, you probably built it. If you had a lot of money and considerable building skill, you could make an Altair 8800 for about $395 — better than the $650 to have it built. However, cheaper alternatives were not far behind.

In 1976, Popular Electronics published plans for a computer called the COSMAC Elf which you could build for under $100, and much less if you had a good junk box. The design was simple enough that you could build it on a piece of perf board or using wire wrap. We featured the online archive of the entire Popular Electronics collection, but hit up page 33 of this PDF if you want to jump right to the article that started it all. The COSMAC Elf is a great little machine built around a 40-pin RCA 1802 processor, and for many was the first computer they owned. I lost my original 1802 computer in a storm and my recent rebuild in another completely different kind of storm. But there is a way to reclaim those glory days without starting from scratch.  I’m going to repurpose another retro-computing recreation; the KIM-1.

I’ll admit it, Rewiring a real KIM-1 to take an 1802 CPU would be difficult and unnecessary and that’s not what this article is about. However, I did have a KIM UNO — [Oscar’s] respin of the classic computer using an Arduino mini pro. Looking at the keyboard, it occurred to me that the Arduino could just as easily simulate an 1802 as it could a 6502. Heck, that’s only two digits different, right?

The result is pretty pleasing. A “real” Elf had 8 toggle switches, but there were several variations that did have keypads, so it isn’t that far off. Most Elf computers had 256 bytes of memory (without an upgrade) but the 1802 UNO (as I’m calling it) has 1K. There’s also a host of other features, including a ROM and a monitor for loading and debugging programs that doesn’t require any space in the emulated 1802.

Continue reading “KIM-1 to COSMAC Elf Conversion — Sort Of”

Completely Owning the Dreamcast Add-on You Never Had

If you’ve got a SEGA Dreamcast kicking around in a closet somewhere, and you still have the underutilized add-on Visual Memory Unit (VMU), you’re in for a treat today. If not, but you enjoy incredibly detailed hacks into the depths of slightly aged silicon, you’ll be even more excited. Because [Dmitry Grinberg] has a VMU hack that will awe you with its completeness. With all the bits in place, the hacking tally is a new MAME emulator, an IDA plugin, a never-before ROM dump, and an emulator for an ARM chip that doesn’t exist, running Flappy Bird. All in a month’s work!

The VMU was a Dreamcast add-on that primarily stored game data in its flash memory, but it also had a small LCD display, a D-pad, and inter-VMU communications functions. It also had room for a standalone game which could interact with the main Dreamcast games in limited ways. [Dmitry] wanted to see what else he could do with it. Basically everything.

We can’t do this hack justice in a short write-up, but the outline is that he starts out with the datasheet for the VMU’s CPU, and goes looking for interesting instructions. Then he started reverse engineering the ROM that comes with the SDK, which was only trivially obfuscated. Along the way, he wrote his own IDA plugin for the chip. Discovery of two ROP gadgets allowed him to dump the ROM to flash, where it could be easily read out. Those of you in the VMU community will appreciate the first-ever ROM dump.

On to doing something useful with the device! [Dmitry]’s definition of useful is to have it emulate a modern CPU so that it’s a lot easier to program for. Of course, nobody writes an emulator for modern hardware directly on obsolete hardware — you emulate the obsolete hardware on your laptop to get a debug environment first. So [Dmitry] ported the emulator for the VMU’s CPU that he found in MAME from C++ to C (for reasons that we understand) and customized it for the VMU’s hardware.

Within the emulated VMU, [Dmitry] then wrote the ARM Cortex emulator that it would soon run. But what ARM Cortex to emulate? The Cortex-M0 would have been good enough, but it lacked some instructions that [Dmitry] liked, so he ended up writing an emulator of the not-available-in-silicon Cortex-M23, which had the features he wanted. Load up the Cortex emulator in the VMU, and you can write games for it in C. [Dmitry] provides two demos, naturally: a Mandlebrot set grapher, and Flappy Bird.

Amazed? Yeah, we were as well. But then this is the same guy emulated an ARM chip on the AVR architecture, just to run Linux on an ATMega1284p.

Hackaday Prize Entry: Gaming Done Tiny with Keymu

The world’s tiniest Game Boy Color, introduced at the 2016 Hackaday SuperConference, is a work of art. This microscopic game console inspired [c.invent] to create how own gaming handheld. His Keymu project on describes an open source, keychain-sized gaming handheld that its builder claims is really the world’s tiniest. How did he make it smaller? It’s a miniature Game Boy Advance SP, and it folds up in a handy clamshell case.

While he’s a Pi fan, [c.invent] felt the Pi Zero was too big and clunky for what he had in mind–a keychain-sized handheld. Only the Intel Edison was compact enough. He began with a custom PCB with a connector for the Edison’s fragile ribbon cable, then added an 1.5″ OLED display and an 11.7mm speaker, all powered by a 220 mAh lithium battery. [c.invent] also created inside a custom folding 3D-printed case that protects the Keymu’s electronics from keys and pocket lint.

Unlike the mini Game Boy Color, [c.invent] aims to create a fully fledged emulation console. The Edison incorporates a Linux distribution that allowing it to install emulators for GameBoy Color, GBA, NES, and SNES.

Discontinued Nintendo Consoles and Raspberry Pis

Nintendo has discontinued a Classic gaming console. It’s a pity, yes, but with the release of Nintendo’s new gaming console, they probably have bigger fish to fry. That doesn’t mean these discontinued Nintendo consoles will die a slow, miserable death locked away in a closet; at least one of them will live on with the heart of a Raspberry Pi.

This is a project [Liam] has been working on since 2012, just after he got the first edition of the Raspberry Pi. While some people were figuring out how to stuff the Pi inside a Nintendo Entertainment System or a Super Nintendo Entertainment System, [Liam] decided to embed the Pi inside a console of a more recent vintage: the Nintendo GameCube.

The first phase of this project was simply to get the Pi running inside the enclosure of the non-working GameCube he picked up. The power supply in this console was well designed, and after a quick perusal through some online documentation, [Liam] found a stable 5V with enough amps to power the Pi. After ripping out the internals of this console with the help of a quickly hacked together ‘Nintendo screwdriver’, [Liam] had a perfectly functional Pi enclosed in a Nintendo chassis.

Time marches on, and after a while, the Raspberry Pi 2 was released. By this time, retro emulation was hitting the big time, and [Liam] decided it was time for an upgrade. He disassembled this Nintendo console again, routed new wires and inputs to the original controller ports, and used a Dremel to route a few holes for the HDMI and SD card slot.

With the addition of a few SNES-inspired USB controllers, RetroPi, and a few ROMs, [Liam] has a wonderful console full of classic emulation goodness, packaged in an enclosure Nintendo isn’t making any more.

The Best Pi Emulation Console You Can Build

By far the most popular use for a Raspberry Pi is an emulation console. For an educational device, that’s fine – someone needs to teach kids how to plug a USB cable into a device and follow RetroPi tutorials on the Internet. These emulation consoles usually have one significant drawback: they’re ugly, with wires spilling everywhere. Instead of downloading a 3D printed Pi enclosure shaped like a Super Nintendo, [depthperfection] designed his own. It looks great, and doesn’t have a donglepocalypse hanging out the back.

The biggest factor in building an enclosure for a Pi Zero is how to add a few USB ports. There’s only one USB port on the Pi Zero, although if you’re exceptionally skilled, you can solder a hub onto the test points on the bottom of the board. This stackable USB hub solves the problem with the help of pogo pins for the power and USB pair. It’s only $17 USD, too.

With the USB and power sorted, [depthperfection] set out to design an enclosure. This was modeled in Fusion360, with proper vent holes, screw bosses, and cutouts for all the ports. It’s designed to be 3D printable, and with a little ABS smoothing, this enclosure looks great.

For software, [depthperfection] turned to Recallbox, a retrogaming platform that also doubles as a media player. It’s simpler than a RetroPi installation, but for playing Super Mario 3, you don’t really need many configuration options. This is a great project that just works and looks good doing it. The world — and the Raspberry Pi community — needs more projects like this, and we’re glad [depthperfection] sent this one in.

Raspberry Pi-Based Game Boy Emulator

The most popular use for a Raspberry Pi, by far, is video game emulation. We see this in many, many forms from 3D printed Raspberry Pi cases resembling the original Nintendo Entertainment System to 3D printed Raspberry Pi cases resembling Super Nintendos. There’s a lot of variety out there for Raspberry Pi emulation, but [moosepr] is taking it to the next level. He’s building the smallest Pi emulation build we’ve ever seen.

This build is based on the Pi Zero and a 2.2″ (0.56 dm) ili9341 TFT display. This display has a resolution of 240×320 pixels, which is close enough to the resolution of the systems the Pi Zero can emulate. The Pi Zero and display are attached to a beautiful purple breakout board (shared on OSH Park) along with a few 5-way nav switches, a charger for a Lipo battery, and a few other bits and bobs.

Right now, [moosepr] is experimenting with adding sound to his board. It’s easy enough to get sound out of a Pi Zero — it’s just PWM coming from a few pins — but audio also needs an amp, a speaker, and more space on the board. To solve this problem, [moose] found a few piezo transducers from musical greeting cards. These are designed to be thin and as loud as possible, and attaching these directly to the PWM pins providing audio might just work. This is a project to keep an eye on, if only to see if cheap piezos work for low-fi audio in retro emulators.

ENIAC: The Way We Were

When I first got interested in computers, it was all but impossible for an individual to own a computer outright. Even a “small” machine cost a fortune not to mention requiring specialized power, cooling, and maintenance. Then there started to be some rumblings of home computers (like the Mark 8 we recently saw a replica of) and the Altair 8800 burst on the scene. By today’s standards, these are hardly computers. Even an 8-bit Arduino can outperform these old machines.

As much disparity as there is between an Altair 8800 and a modern personal computer, looking even further back is fascinating. The differences between the original computers from the 1940s and anything even remotely “modern” like an Altair or a PC are astounding. If you are interested in that kind of history, you should read a paper entitled “Electronic Computing Circuits of the ENIAC” by [Arthur W. Burks].

These mid-century designers used tubes and were blazing new ground. Part of what makes the ENIAC so different is that it had a different design principle than a modern computer. It was less a general purpose stored-program computer and more of a collection of logic circuits that could be configured to solve problems — sort of a giant vacuum tube FPGA, if you will. It used some internal representations that proved to be suboptimal which also makes it seem strange. The EDSAC — a later device — was closer to what we think of as a computer. Yet the ENIAC was a major step in the direction of a practical digital computer.

Cost and Size

Programming the ENIAC in 1951 (±4 years)
[Image Source: Public Domain]
The size of ENIAC is hard to imagine. The device had about 18,000 tubes, 7,000 diodes, 70,000 resistors, 10,000 capacitors, and 6,000 switches. There were 5 million hand-soldered joints! ([Thomas Haigh] tells us that while this is widely reported, the real number was about 500,000.) Physically, it stood 10 feet tall, 3 feet deep, and 100 feet long. The tube filaments alone required 80 kW of power. Even the cooling system consumed 20 kW. In total, it took 150 kW to run the beast.

The cost of the machine was about $487,000. Almost a half-million dollars in 1946 is plenty. But that’s nearly seven million dollars in today’s money. What was worth that kind of expenditure? The military built firing tables for shell trajectories. From the [Burks] paper:

“A skilled computer with a desk machine can compute a 60-second trajectory in about twenty hours…”

Keep in mind that in 1946, a computer was a person. [Burks] goes on to say that a differential analyzer can do the same job in 15 minutes. ENIAC, on the other hand, could do it in 30 seconds and with a greater precision than the differential analyzer.

Continue reading “ENIAC: The Way We Were”