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.
And here’s our generic plug for Computer Archaeology:
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?
A walkthrough tutorial? We’ve just given you one.
Oh and PS: If you get past level 255, the game freaks out.
Continue reading “Reverse Engineering Galaga to Fix the No-Fire Cheat”
Christmas is coming, and if you have nieces, nephews, or ankle biters of your own roaming your house, you’re probably wondering how you’ll be subsidizing Santa this year. it looks like Toys R Us will be selling the Leapfrog LeapsterGS for $30 on Black Friday this year. It’s a Linux device running on a 550 MHz ARM 9, with 128 MB of RAM and 2 GB of Flash. Overpowered for a children’s toy, but perfect for when the kids forget about it in a month, because now you can replace the firmware with a proper Linux install and run classic emulators.
Putting Linux on these cheap handhelds made for children isn’t anything new; we’ve seen it done with the Leapfrog DIDJ and the Leapfrog Explorer. Those consoles, however, had rather anemic CPUs and not a whole lot of RAM. Moore’s Law finally kicked in for stocking stuffers, it seems, and the Leapster GS is powerful enough to play all those Nintendo, Game Boy and even MAME games.
All that’s needed to flash the new firmware is soldering a few wires onto the LeapsterGS’ board for a serial connection. The new LeapsterGS firmware even has an MP3 and movie player, so even if the recipient of one of these machines grows tired of it in a week, there’s still a lot of life left in it.
Video of the LeapsterGS playing the greatest arcade game below.
Continue reading “Linux on a Leapster for Classic Video Game Emulation”
[Bradley W. Lewis] is no stranger to Nixie clock builds, and he felt his latest commission was missing something. Instead of merely mounting the Nixie clock into a case resembling an NES console, he goes full tilt and makes it into an NES console emulator. After some work on the milling machine, a wooden box has room to squeeze in a few new components. [Bradley] originally planned to mount only an Arduino with an ArduNIX shield to handle the Nixie clock, but the emulator demands some space saving. Flipping the Arduino on its side freed up plenty of room and the shield still easily connects to the adjacent Nixie tube board.
A Raspberry Pi serves as the console emulator and was mounted close to the side of the case to allow access to its HDMI port. The other ports from both the Arduino and RasPi stick out of the back, including an extension to the Pi’s RCA video out and buttons to set both the hour and minutes of the clock. The two surplus NES buttons on the front of the case control power to the RasPi and provide a reset function for the Nixie clock.
If that isn’t enough Nixie to satisfy you, check out the WiFi Nixie counter.
We may have all been eagerly awaiting the arrival of the PS3 slim, but don’t get too excited yet. According to an official press release from Sony, the PS3’s slimmer counterpart is dropping the ability to install Linux or another operating system. It’s always a shame when new products come packed with less features, but this time, it’s preventing us from doing things like cracking SSL using 200 of the consoles, or running emulators from an Ubuntu install on the console. For those of us that still plan on keeping our “old” PS3s, Yellow Dog Linux has been released on a USB stick and allows you to run without having to do a full installation.