Most of the hacks we see around these parts have to do with taking existing components and cobbling them together in interesting new ways. It’s less often that we see existing components gutted and repurposed, but when it happens, like with this reimagined rotary encoder, it certainly grabs our attention.
You may recall [Chris G] from his recent laser-based Asteroids game. If not you should really check it out — the build was pretty sweet. One small problem with the build was in the controls, where the off-the-shelf rotary encoder he was using didn’t have nearly enough resolution for the job. Rather than choosing a commodity replacement part, [Chris] rolled his own from the mechanical parts of the original encoder, like the shaft and panel bushing, and an AS5048A sensor board. The magnetic angle sensor has 14 bits of resolution, and with a small neodymium ring magnet glued to the bottom of the original shaft, the modified encoder offers far greater resolution than the original contact-based encoder.
The sensor breakout board is just the right size for this job; all that [Chris] needed to do to get the two pieces together was to 3D-print a small adapter. We have to admit that when we first saw this on Hackaday.io, we failed to see what the hack was — the modified part looks pretty much like a run-of-the-mill encoder. The video below shows the design and build process with a little precision rock blasting.
Playing Asteroids now isn’t quite what it used to be when it came out 40 years ago. At the time, the vector-scan display was part of the charm; making do with an emulator running on a traditional raster display just doesn’t quite do it for purists. But if you manage to build your own laser-projector version of the game like [Chris G] did, you’re getting close to capturing some of the original magic of the game.
There’s a lot to unpack about this project, and the video below does a good job explaining it. Where the original game used a beam of electrons flashing inside a CRT to trace out each object in the game, [Chris] substituted an off-the-shelf two-axis galvanometer from eBay and a 5-mW laser LED. This can project a gamefield on a wall up to two meters on a side, far bigger than any version of the machine ever built. The galvos are driven by op-amp drivers and an SPI DAC on a custom PCB. And in comparison to the discrete logic chips and 6502 running the original game, [Chris] opted for an ESP32.
As interesting as the hardware for this is, the real story is in the software. [Chris] does an excellent job running through his design, making the bulk of the video feel like a master class in game programming. His software is from scratch — no emulations here. As such it doesn’t perfectly reproduce the original games — no flying saucers and no spaceship explosion animations (yet) — but when coupled with the laser vector display, it certainly captures the feel of the original.
Being devoted Asteroids fans from back in the day, this one really pushes our buttons. We’ve seen laser-based recreations of the game before, but this one makes us think we can finally afford to recapture the glory of our misspent youth.
We humans are good at a lot of things, but making holes in the ground has to be among our greatest achievements. We’ve gone from grubbing roots with a stick to feeding billions with immense plows pulled by powerful tractors, and from carving simple roads across the land to drilling tunnels under the English Channel. Everywhere we go, we move dirt and rock out of the way, remodeling the planet to suit our needs.
Other worlds are subject to our propensity for digging holes too, and in the 50-odd years that we’ve been visiting or sending robots as our proxies, we’ve made our marks on quite a few celestial bodies. So far, all our digging has been in the name of science, either to explore the physical and chemical properties of these far-flung worlds in situ, or to actually package up a little bit of the heavens for analysis back home. One day we’ll no doubt be digging for different reasons, but until then, here’s a look at the holes we’ve dug and how we dug them.
The hack relies on the fact that the original game used a four-bit resistor ladder DAC to draw vectors in different intensity levels. Through some ingeniously simple hardware, this DAC is repurposed to denote different colours instead. It’s laced together with a 74LS08 AND gate chip, along with a handful of resistors and diodes. Three bits are used for red, green, and blue, respectively, with the fourth used as a “white boost” signal to allow the differentiation of colours like red and pink, or dark and light blue. It’s then all wired into an RGB vector monitor for final display. After that, it’s just a matter of a simple ROM hack to set the colors of various on screen objects.
Vector monitors are notoriously hard to film well, but it’s clear that in person the output is rather impressive. Making color versions of old retro games is actually a hobby of [Arcade Jason]’s – we’ve featured his color Vectrex before. Video after the break.
For all its simplicity, the arcade classic Asteroids was engaging in the extreme, with the ping of the laser, the rumble of the rocket, the crash of crumbling space rocks, and that crazy warble when the damn flying saucers made an appearance. Atari estimates that the game has earned operators in excess of $500 million since it was released in 1979. That’s two billion quarters, and we’ll guess a fair percentage of those coins came from the pockets of Hackaday’s readers and staff alike.
One iconic part of Asteroids was the vector display. Each item on the field was drawn as a unit by the CRT’s electron beam dancing across the phosphor rather than raster-scanned like TV was at the time. The simple graphics were actually pretty hard to create, and with that in mind, [standupmaths] decided to take a close look at the vector display of Asteroids and try to recreate it using a laser.
To be fair, [Seb Lee-Delisle] does all the heavy lifting here, with [standupmaths] providing context on the history and mathematics of the original vector display. [Seb] is a digital artist by trade, and has at the ready a 4-watt RGB laser projector for light shows and displays. Using the laser as a replacement for the CRT’s electron beam, [Seb] was able to code a reasonably playable vector-graphic version of Asteroids on a large projections screen. Even the audio is faithful to the original. The real treat comes when the laser is slowed and a little smoke added to show us how each item is traced out in order.
The problem with click-bait titles, besides the fact that they make the reader feel cheated and maybe a little bit dirty for reading the article, is that they leave us with nothing to say when something is truly outstanding. But the video of [Tiburcio de la Carcova] building up a mini-Galaga cabinet (complete with actual tiny CRT screen from an old portable 5″ TV) is actually the best we’ve ever seen.
Plywood is laser-cut. Custom 3D printed parts are manufactured and assembled, including the joysticks and coin door. Aluminum panels are cut on a bandsaw and bent with a hand brake. Parts are super-glued. In short, it’s a complete, sped-up video of the cutting-edge of modern DIY fab. If that’s not enough reason to spend four minutes of your time, we don’t know what is.
[Tiburcio] has also made a mini Space Invaders, and is thinking of completing the top-20 of his youth. Pacman, Asteroids, and Missile Command are next. We can’t wait.
There are (ahem) a couple of Raspberry-Pi-powered video game emulators on Hackaday, so it’s a little awkward to pick one or two to link in. We’ll leave you with this build that also uses a small CRT monitor to good effect albeit in less-fancy clothing.
As the Jerusalem mini Makerfaire approached, [Avishay] had to come up with something to build. His final project is something he calls ASTROGUN. The ASTROGUN is a sort of augmented reality game that has the player attempting to blast quickly approaching asteroids before being hit.
It’s definitely reminiscent of the arcade classic, Asteroids. The primary difference is that the player has no space ship and does not move through space. Instead, the player has a first person view and can rotate 360 degrees and look up and down. The radar screen in the corner will give you a rough idea of where the asteroids are coming from. Then it’s up to you to actually locate them and blast them into oblivion before they destroy you.
The game is built around a Raspberry Pi computer. This acts as the brains of the operation. The Pi interfaces with an MPU-9150 inertial measurement unit (IMU). You commonly see IMU’s used in drones to help them keep their orientation. In this case, [Avishay] is using it to track the motion and orientation of the blaster. He claims nine degrees of freedom with this setup.
The Pi generates the graphics and sends the output to a small, high-brightness LCD screen. The screen is mounted perpendicular to the player’s view so the screen is facing “up”. There is a small piece of beam splitting glass mounted above the display at approximately a 45 degree angle. This is a special kind of glass that is partially reflective and partially translucent. The result is that the player sees the real-world background coming through the glass, with the digital graphics overlaid on top of that. It’s similar to some heads-up display technologies.