Emulators are a great way to reminisce about games and software from yesteryear. [Jorj Bauer] found himself doing just that back in 2002, when they decided to boot up Three Mile Island for the Apple II. It played well enough, but for some reason, crashed instantly if you happened to press the ‘7’ key. This was a problem — the game takes hours to play, and ‘7’ is the key for saving and restoring your progress. In 2002, [Jorj] was content to put up with this. But finally, enough was enough – [Jorj] set out to fix the bug in Three Mile Island once and for all.
The project is written up in three parts — the history of how [Jorj] came to play Three Mile Island and learn about Apple IIs in the first place, the problem with the game, and finally the approach to finding a solution. After first discovering the problem, [Jorj] searched online to see if it was just a bad disk image causing the problem. But every copy they found was the same. There was nothing left for it to be but problem in the binary.
Emulation is a difficult thing to do, particularly when you’re trying to emulate a complex platform like a game console, with little to no public documentation available. Often, you’ll have to figure things out by brute force and dumb luck, and from time to time everything will come unstuck when a random piece of software throws up an edge case that brings everything screeching to a halt.
The Classic NES series was a handful of Nintendo Entertainment System games ported to the Game Boy Advance in the early 2000s. What makes them unique is a series of deliberately obtuse programming decisions that make them operate very differently from other titles. These tricks utilize advanced knowledge of the way the Game Boy Advance hardware operates and appear to have been used to make the games difficult to copy or emulate.
The games use a variety of techniques to confuse and bamboozle — from “mirrored memory” techniques that exploit addressing anomalies, to putting executable code in video RAM and writing to the audio buffers in unusual manners.
Even more confusingly, these techniques only appear to have been used in the Classic NES series of games, and not other Game Boy Advance titles. It’s not obvious why Nintendo went to special effort to protect these ports over other titles; perhaps the techniques used were for other reasons than just an attempt at copy protection. Speculate amongst yourselves in the comments.
A well-designed phone case will protect your phone from everyday bumps with only as much style flair as you’d like. While protection is usually the only real function of a case, some designs — like [Gabbelago]’s Emucase — add specific utility that you might not have known you needed.
Contrary to most cases, the Emucase fits over your phone’s screen, and the resulting facelift emulates the appearance of a Game Boy for easier — you guessed it — Game Boy emulation play on your smartphone.
Cannibalizing a USB SNES gamepad for its buttons and rubber contact pads, Gabbelago then threaded some wire through the contacts, securing it with copper tape and glue; this provides a measurable level of capacitance to register on the touchscreen. Using heat to bend the sides of the 3D printed case so it can attach to the phone is probably the trickiest part of this cool project. Check out his build instructions for any pointers you need.
The Apple II was one of the first home computers. Designed by Steve “Woz” Wozniak, it used the MOS technologies 6502 processor, an 8-bit processor running at about 1 MHz. [Maxstaunch] wrote his bachelor thesis about emulating the 6502 in software on an AVR1284 and came up with a handheld prototype Apple II with screen and keyboard.
Originally, [maxstrauch] wanted to build an NES, which uses the same 6502 processor, but he calculated the NES’s Picture Processing Unit would be too complicated for the AVR, so he started on emulating the Apple II instead. It’s not quite there – it can only reference 12K of memory instead of the 64K on the original, so hi-res graphic mode, and therefore, many games, won’t work, but lo-res mode works as well as BASIC (both Integer BASIC and Applesoft BASIC.)
[Maxstrauch] details the 6502 in his thesis and, in a separate document, he gives an overview of the project. A third document has the schematic he used to build his emulator. His thesis goes into great detail about the 6502 and how he maps it to the AVR microcontroller. The build itself is pretty impressive, too. Done on veroboard, the build has a display, keyboard and a small speaker as well as a micro SD card for reading and storing data. For more 6502 projects, check out the Dis-Integrated 6502 and also, this guide to building a homebrew 6502.
[GreatScott] bought a Game Boy case. Normally, you’d assume you wanted this to repair a damaged Game Boy, but in this case [GreatScott] used a Pi Zero and some 3D printing to build a game system into the tiny box. You can see some videos, below.
Two interesting parts of the project are the source of the LCD display (a rearview camera screen) and the selection of batteries. Lithium ion batteries are all the rage. But if you watch the news, you know there are some safety issues with using the batteries, especially if you use them improperly. [GreatScott] decided to go with nickel metal hydride cells which still need a protection circuit, but are typically less of a danger than the newer technology cells.
If you come from somewhere with a tradition of eating a meal of roast turkey or goose to celebrate Christmas, Thanksgiving, or other holidays, then maybe you’ve encountered the three-bird roast, or Turducken. A deboned duck is stuffed with a deboned chicken, and in turn the combination is stuffed into a turkey All the gaps are filled with sausage meat stuffing, and the resulting combination is roasted for a serious meat-fest. Vegetarians, please look away.
It’s something of an excess of poultry, but the three-bird roast is a delicacy that definitely works. We’re not so sure about the link that prompted this journey into celebration poultry dishes by reminding us of a turducken, but we’ll leave the verdict to you the reader. Someone has created an unholy turducken-style chain of emulators that delivers a Sinclair ZX Spectrum on a Linux machine via Windows, DOS, and the Commodore 64. If it had its own word like the poultry dish it might be a Linwindoscomtrum, but let’s not go there.
So how have they done it? First, they took Lubuntu, and installed WINE. (OK, Wine Is Not an Emulator, we know that, but go with the story for a moment) Then they installed DOSBox under WINE for a DOS command prompt, and ran no$C64, a Commodore 64 emulator. On that they ran the c642spec Sinclair ZX Spectrum emulator, and finally arrived in a ZX BASIC prompt.
The author does make the point at the start of the write-up that it’s a waste of ten minutes, but even though the result is an overly complex way to slowly emulate an archaic home computer on a modern one we’ll still give them ten out of ten for the effort.
Incidentally, the author does not identify themself and there is little clue in the form of the rest of the site to identify them, so unusually for a Hackaday piece we can not give credit where it is due. We do however salute the anonymous emulator pilot for their glorious folly.
By measuring out the on-screen buttons and using light photo paper, he was able to have buttons on the skin as well: the touch screen still works through it. You can download his printable templates… and the finishing touch is a similar print for the back of the phone to gives that genuine Game Boy feel. Okay, feel is not the right term since the classic d-pad and red buttons are still just capacitive and have no throw. But this is a clever step in a fun direction.
Check out his other hacks while you are at it, including the Game Boy Fridge.