Hackaday Links Column Banner

Hackaday Links: July 25, 2021

Everyone makes mistakes in their job, but very few of us get the chance to make a one-character mistake with the potential to brick millions of devices. But that’s what happened to a hapless Google developer, who made an understandable typo in the ChromeOS code that ended up making it all the way to production. The error, which was in the OS encryption keys vault, was supposed to include the “&&” operator for a logical AND. The developer instead used a single ampersand, which broke the who conditional statement. This meant the OS evaluated even correct passwords as invalid, leaving users locked out of their Chromebooks. To be fair to the developer there should be a lot of QA steps between that typo and production, but it still has to sting.

Speaking of whoopsies, sometimes it just doesn’t pay to be right on the internet. It started when a player of the popular tank battle simulator “War Thunder” took issue with the in-game 3D model of the British Challenger 2 main battle tank. The player argued that the model was inaccurate to the point of affecting gameplay, and thought the model should be changed to make things more realistic. There seemed to be some basis for this, as the player claimed to have been a Challenger 2 commander and gunnery instructor. What’s more, like any good Netizen, the player cited sources to back up the claims, including excerpts from the official Challenger 2 instruction manual. Players on the War Thunder forum flagged this as likely classified material, but the player insisted that it wasn’t — right up to the point where the UK Ministry of Defence said, “Not so fast.” It turns out that the manual hasn’t been declassified, and that releasing the material potentially runs afoul of the Official Secrets Act, which carries with it up to 14 years detention at Her Majesty’s pleasure.

For fans of pinball, the announcement that the Museum of Pinball in Banning, California is closing its doors for good is probably a mix of good news and bad. It’s obviously bad news for any museum to close, especially one that curates collections from popular culture. And there’s no denying that pinball has been a big part of that culture, and that the machines themselves are often works of electromechanical art. But it appears that the museum just couldn’t make a go of it, and now its cavernous space will be sold off to a cannabis grower. But the sad news is tempered by the potential for private collectors and other pinball aficionados to score one of the estimated 1,100 pins the museum now needs to find a home for. We’ve never been to the museum, so it’s hard to say what kinds of machines they have and how collectible they are, but regardless, the market is about to be flooded. If you’re nearby, you might want to take a chance to see and play some of these machines one last time, before they get shipped off to private game rooms around the world.

And finally, exciting news from Hackaday superfriend Fran Blanche, who will soon tick an item off her bucket list with a zero-G ride on “G-Force 1”. Not to be confused with its military cousin the “Vomit Comet”, the weightlessness-simulating aircraft will afford Fran a total of about five minutes of free-fall when she takes the ride in a couple of months. There will also be periods of the flight that will simulate the gravity on both the Moon and Mars, so Fran has promised some Matt Damon mythbusting and Buzz Aldrin moonbouncing. And always one to share, Fran will bring along a professional video crew, so she can concentrate on the experience rather than filming it. We’ve actually scheduled Fran for a Hack Chat in August, to talk about the flight and some of her other cool goings-on, so watch out for that.

Laser Galvos And An ESP32 Recreate Old-School Asteroids

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.

Continue reading “Laser Galvos And An ESP32 Recreate Old-School Asteroids”

Game Boy Plays Forever

For those of us old enough to experience it first hand, the original Game Boy was pretty incredible, but did have one major downside: battery consumption. In the 90s rechargeable batteries weren’t common, which led to most of us playing our handhelds beside power outlets. Some modern takes on the classic Game Boy address these concerns with modern hardware, but this group from the Delft University of Technology and Northwestern has created a Game Boy clone that doesn’t need any batteries at all, even though it can play games indefinitely.

This build was a proof-of-concept for something called “intermittent computing” which allows a computer to remain in a state of processing limbo until it gets enough energy to perform the next computation. The Game Boy clone, fully compatible with the original Game Boy hardware, is equipped with many tiny solar panels which can harvest energy and is able to halt itself and store its state in nonvolatile memory if it detects that there isn’t enough energy available to continue. This means that Super Mario Land isn’t exactly playable, but other games that aren’t as action-packed can be enjoyed with very little impact in gameplay.

The researchers note that it’ll be a long time before their energy-aware platform becomes commonplace in devices and replaces batteries, but they do think that internet-connected devices that don’t need to be constantly running or powered up would be a good start. There are already some low-powered options available that can keep their displays active when everything else is off, so hopefully we will see even more energy-efficient options in the near future.

Thanks to [Sascho] for the tip!

Continue reading “Game Boy Plays Forever”

GTA V Mod Shows (And Cheats) Those Stunt Jump Hoops

While the recent announcement of Grand Theft Auto V for the upcoming next-generation game consoles was a disappointment for those fervently waiting for a successor in the infamous video game series, it shows that after almost seven years of its initial release, the epic title is still going strong — and rightfully so. But a game as varied and complex as GTA V isn’t without some quirks, especially if you’re going for 100% completeness.

The stunt jumps seem a particular pesky nut to crack here, so [Anthony Som] made it his mission to shed some light on what qualifies as a successful jump by reverse engineering the system and writing both a mod for displaying the landing zone and a cheat to instant success.

If you’re not familiar with the game, its vast open world map features a variety of side quests, one of them being stunt jumps, where certain locations allow you to launch the vehicle you’re driving into the air in hopes to land on an adjacent road or area — whether to evade the people chasing you, or just for fun. There’s no telling how to actually succeed though, the game just tells you if you did or not afterwards, causing some degree of frustration. As an avid speedrunner (as in finishing a game in the shortest possible time), [Anthony] was looking for a way to increase the success rate for those stunt jumps, and decided to dig into the code to find out how to get there. Of course, being a proprietary game, he had to resort to reverse engineering and utilizing GTA’s vivid modding scene to do so.

His initial outcome was a mod that displays the launch and landing area as rectangles inside the game itself, which was a great help. But well, after already getting that far, [Anthony] figured he might as well continue and add a cheat mode to teleport the car right inside that expected landing area and be done with second-guessing his attempts once and for all.

If you’re curious about modding GTA yourself, his write-up has a few good pointers for that, and of course features some real examples of it. Whether this is a good idea for the self-driving AI that uses GTA as learning environment is probably a different story though.

Super Mario 64 As Experienced By Mario

Microsoft’s Kinect, a motion-sensing peripherial originally for the Xbox 360, is almost exactly a decade old now. And in that decade it has expanded from its limited existence tied to a console to a widely-used tool for effective and detailed motion sensing, without breaking the bank. While it’s seen use well outside of video games, it’s still being used to reimagine some classic games. In this project, Reddit user [SuperLouis64] has used it to control Mario with his own body.

While the build still involves some use of a hand controller, most of Mario’s movements are controlled by making analogous movements on a small trampoline, including the famed triple jump. The kinect is able to sense all of these movements and translate them into the game using software that [SuperLouis64] built as well. The trickiest movement seems to be Mario’s spin movement, which appears to have taken some practice to get right.

We appreciate the build quality on this one, and [SuperLouis64]’s excitement in playing the game with his creation. It truly looks like a blast to play, and he even mentions in the Reddit thread that he’s gotten a lot of productive excercise with his various VR and augumented reality games in the past few months. Of course if this is too much physical activity, you could always switch to using your car as the unique game controller instead.

Continue reading “Super Mario 64 As Experienced By Mario”

Arduino Plays NES Games

Watching the advancement of technology is interesting enough by looking at improved specifications for various components as the years go by. But clock speeds, memory size, and power consumption are all fairly intangible compared to actual implementation of modern technology when compared to days of yore. For example, this $40 microcontroller can do what a video game console was able to do in the 80s for a tenth of the (inflation adjusted) price.

The NESDUE is an emulator for NES games which runs completely on an Arduino Due. The Arduino does have some limitations that have to be worked around to get the Nintendo to work, though. For one, it needs to be overclocked to be playable and it also needs a workaround to get past the memory limit of 96 kB of RAM. From there, a small screen is wired up along with a controller (from a Super Nintendo) and the gaming can begin.

This is an impressive feat for an Arduino platform to accomplish, especially with the amount of memory tweaking that has to happen. This might be the most advanced gaming system available that runs everything on an Arduino, right up there with the Arduinocade which can provide an arcade-like experience straight from the Arduino as well.

Continue reading “Arduino Plays NES Games”

Classic 8-Bit Computing The Atari Way

In the classic gaming world, even before the NES arrived on the scene, there was no name more ubiquitous than Atari. Their famous 2600 console sold almost as many units as the Nintendo 64, but was released nearly 20 years prior. In many ways, despite making mistakes that led to the video game crash of the early 80s, Atari was the first to make a path in the video game industry. If you want to explore what the era of 8-bit computing was like in the Atari age, a new resource is compiling all kinds of Atari-based projects.

This site has everything, from assembling Atari 8-bit computers based on the 6502 chip, to programming them in BASIC and assembly, to running official and homebrew games on the hardware itself. This was put together by [Jason H. Moore] who grew up around Atari systems and later, their home computers. He even puts his biomedical experience to use here by designing a game for the 2600 called Gene Medic which can be found at the site as well.

If you grew up in the 70s and 80s and are looking for a bit of Atari nostalgia this site is the place to go. It’s even worth a visit from younger folks as well since the 8-bit world is a lot easier to get immersed in and learn the fundamentals of computer science. Of course, if you want to take it the other direction, it’s possible to modify the old Atari to add a few modern conveniences.

Photo via Evan-Amos