Sometimes, it’s really useful to watch a project’s parts come together one piece at a time in order to get a complete understanding and mental picture of the whole, and we found that to be the case with this simple, retro-inspired sample game from [ezContents]. (Video, embedded below.) The code is on GitHub but if you’re at all interested in what goes on behind the scenes in a game like that, don’t miss the video.
These sprite-based games are mostly about moving a small graphical object (a sprite) around a screen in response to user input, and managing what happens when collisions are detected between the player’s sprite and other sprites like enemies, projectiles, and so forth. The development process is wonderfully documented and demonstrated in a video, as each separate part of functionality gets built and explained one piece at a time.
The simple game is made using ArduPy (which is MicroPython combined with Arduino APIs) using Seeed Studios’ Wio Terminal, a small microcontroller development board with integrated screen, sensors, and button inputs including a little directional clicker that [ezContents] uses as a joystick.
The video of the whole process is embedded below; give it a watch and you’ll maybe come away with inspiration, but you’ll definitely have a much better understanding of how these types of games are developed, even if you’re not using the same hardware or development environment.
[Greg] loves hacking his bow ties. Back in high school, he added some bright RGB LEDs to the bow tie he wore to prom and even won the male best-dressed award. Recently he decided to try another bow tie hack, this time giving his tie some retro arcade game feels.
He decided to use an ATtiny85 and to experiment doing some more lower-level programming to refresh his skills. He wrote all his libraries from scratch which really helped him learn a lot about the ATtiny in the process. This also helped him make sure his code was as efficient as possible since he had quite a bit of memory constraints using the ATtiny85 (only 512 bytes of RAM).
He designed the body of the bow tie with wood. He fit all the electronics inside the body while allowing the ATtiny to protrude out of the body giving his bow tie some wanted hacker aesthetic. Of course, he needed to access the toggle switch to play the game, so he made a slot for that as well.
Like many of us, [Alex] spent a large part of his childhood feeding coin after coin into one arcade game or another. Galaga is one of his all-time favorites, and he has wanted to build a Galaga cabinet for a long time. Once his workshop was ready for the job, it was time to cross it off the list.
The cabinet is built to 4/5 scale. This is a great size because he gets the stability and feel of a full-size machine, but it’s much easier to move it around. As you might expect, there’s Pi in the cabinet. The display is an old TV that [Alex] found in a Dumpster. And although it works great, it would go into standby instead of powering off along with everything else. To get around this, [Alex] built an automatic remote control with an IR LED and an Arduino Diecimila. After a five-second wait, it sends the power-on code to the TV and switches the input. The TV is supposed to be in portrait mode for Galaga, but this proved to be a challenge. Changing the orientation at the Pi level resulted in poor performance and choppy sound, so he changed it at the game execution level.
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.
We didn’t know there was a cheat to Galaga, but [Chris Cantrell] did. And so he did what any curious hacker would do — reverse-engineer the game to diagnose and eventually fix the bug.
Spoilers ahoy! Go read the website first if you’d like to follow [Chris]’s reversing efforts in the order that they actually happened.
The glitch is triggered by first killing most of the bees. When only six are left, they go into a second pattern where they swoop across the screen and wrap around the edges. While swooping, sometimes the bees will fire a shot when they’re at coordinates with X=0. Now two facts: there’s a maximum of eight missiles on the screen at any given time, and the position X=0 was reserved by the software to hide sprites that don’t need updating.
The end result is that eight missiles get stuck in a place where they never drop and don’t get drawn. No further shots are fired in the entire game. You win.
So that’s the punchline, but everyone knows that a good joke is in the telling. If you’re at all interested in learning reverse engineering, go read [Chris]’s explanations and work through them on your own.
Ancient video games run on MAME or similar emulators are the perfect playground for learning to reverse engineer; you can pause the machine, flip a bit in memory, and watch what happens next. Memory was expensive back then too, so the games themselves are small. (It’s not like trying to reverse engineer all however many jiggabytes of Microsoft Office.) The assembly languages for the old chips are small and well-documented, and most of the time you’ve also got a good dissasembler. What more could you ask for?
We’re not showing you the finished version of this tiny Galaga arcade cabinet because it doesn’t really testify to the awesome that was packet into this hack. In regards to the features the build is just nuts!. The user controls were customized to look like the real thing, and the attention to detail would make craftsmen from the gilded age of dollhouses proud.
The machine is driven by a Nintendo DS, which donates its upper screen as the cabinet display. In the image to the right you can see that the lower display is still accessible through an opening in the back of the cabinet. The joystick is a small multi-directional switch which was altered by adding the red ball. It was also housed in a custom metal bracket that includes a washer to limit the movement of the stick. Also shown on the right are the lights for the marquee as well as the two coin-slots.