A small PCB with an OLED screen showing a Dinosaur Game

Hackaday Prize 2022: RunTinyRun Is A Fully Solar-Powered, Portable Dinosaur Game

Fully solar-powered handheld gadgets have so far mostly been limited to ultra-low power devices like clocks, thermometers and calculators. Anything more complicated than that will generally have a battery and some means to charge it. An entirely solar-powered video game console is surely out of reach. Or is it? As [ridoluc] shows, such a device is actually possible: the RunTinyRun gets all its power directly from the Sun.

To be fair, it’s not really a full-fledged game console. In fact it doesn’t even come close to the original Game Boy. But RunTinyRun is a portable video game with an OLED display that’s completely powered by a solar panel strapped to its back. It will run indefinitely if you’re playing outside on a sunny day, and if not, letting it charge for a minute or two should enable thirty seconds of play time.

The game it runs is a clone of Google’s Dinosaur Game, where you time your button presses to make a T-Rex jump over cacti. As you might expect, the game runs on an extremely minimalist hardware platform: the main CPU is an ATtiny10 six-pin micro with just 1 kB of flash. The game is entirely written in hand-crafted assembly, and takes up a mere 780 bytes. A 0.1 farad supercap powers the whole system, and is charged by a 25 x 30 mm2 solar cell through a boost converter.

RunTinyRun is a beautiful example of systems design within strict constraints on power, code size and board area. If you’re looking for a more capable, though slightly less elegant portable gaming console, have a look at this solar-powered Game Boy.
A Dinosaur Game implementation running on a breadboard setup

Tiger Boy Advance Is A 90s Kid Dream Come True

From the release of the DMG-01 in 1989 until the final Micro variant hit store shelves in 2005, the Nintendo Game Boy line represented the epitome of handheld gaming for hundreds of millions of players. But that’s not to say there weren’t a wide array of other handheld systems that aimed to chip away at the Japanese gaming giant’s monopoly. SEGA and Sony released high-tech systems that brought impressive technical innovations, while Tiger Electronics famously took the opposite approach with ultra-cheap handhelds that leveraged simplistic games based on popular children’s franchises.

[Chris Downing] had to make do with these budget Tiger games as a child, and now as an adult, he’s determined to made things right with the Tiger Boy Advance. As the name implies, this retro hybrid combines the look and feel of a branded Tiger game with the power and software compatibility of a legitimate Nintendo Game Boy Advance (GBA) circa 2001. It even sprinkles in some modern niceties, like USB-C charging and a backlit display. While most of its charm is probably lost on anyone who didn’t grow up within a fairly narrow range of years, the video below seems to prove that even modern kids can appreciate this one-of-a-kind creation.

From an electronics standpoint, the system is essentially just a gutted GBA crammed into a 3D printed approximation of an old Tiger game from around the mid 1990s. But what makes this project special is the nostalgia-fueled attention to detail that [Chris] brings to the table.

Take for example the custom manufactured faceplate that combines artwork from some of the era’s best known games. Getting the image printed on the back of the CNC-cut piece of clear acrylic proved to be quite a challenge, but the final result looks incredibly professional. Instead of using the GBA’s stock buttons and directional pad, [Chris] decided to 3D print replacements that mimic the look of the original Tiger controls. It all culminates in a device that perfectly recreates the unique look of the original Tiger games.

Some will argue that he’d have done better to equip the system with a Raspberry Pi Zero 2 and the latest build of RetroPie, and frankly, it’s easy to see the appeal of going that route. But [Chris] didn’t make this for us, he built it to encapsulate a very specific time from his own childhood. We’re just glad that the technology now available to the individual maker allowed him to turn this particular dream into reality.

Continue reading “Tiger Boy Advance Is A 90s Kid Dream Come True”

Six GameBoy Pokemon games

Bridging Game Worlds With The ‘Impossible’ Pokémon Trade

Transferring hard-earned Pokémon out of the second generation GameBoy game worlds into the ‘Advance Era’ cartridges (and vice versa) has never been officially supported by Nintendo, however [Goppier] has made these illicit trades slightly easier for budding Pokémon trainers by way of a custom PCB and a healthy dose of reverse engineering.

Changes to the data structure between Generation II on the original GameBoy (Pokémon Gold, Silver and Crystal) and Generation III on the GameBoy Advance (Pokémon Ruby, Sapphire, FireRed, LeafGreen and Emerald) meant that trades between these cartridges was never a possibility – at least not through any legitimate means. In contrast, Pokémon trades are possible between the first and second generation games, as well as from Generation III and beyond, leaving the leap from Gen II to Gen III as an obvious missing link.

Modern players have already overcome this limitation by dumping the cartridge save files onto a PC, at which point any Pokémon could be added or subtracted from the save. Thus, this method relies on self-control as well as the right hardware. [Goppier]’s solution is arguably far more elegant, and requires very little extra hardware. A simple PCB with ports for older and newer GameBoy Game Link Cables is the physical bridge between the generations. An ARM Cortex microcontroller sits between these connections and translates the game data between the old and the new.

The microcontroller is required to translate the data structure between the generations, and seems fit for purpose. Not only does the Pokémon data require conversion, but a few other hacks are needed before the two generations will talk nicely to each other. Pokémon on the GameBoy Advance brought in new features such as representing player movement in the trading rooms (i.e. you can see the other player moving on your screen), which also had to be addressed.

The concern over the legitimacy of trades within the Pokémon community is a curious, yet understandable, byproduct of the multiplayer experience. As an example, modern players have to be wary of ‘hacked’ Pokémon, which can often introduce glitches into their game world following a trade. Apart from these issues, some Pokémon players simply desire genuine Pokémon as part of fostering a fair and enjoyable gaming experience.

This literal bridge between Gen II and Gen III game worlds brings the community tantalizingly close to a ‘legitimate’ means of transferring their Pokémon out of ancient cartridges and into modern games. Could Nintendo one day officially sanction Gen II to Gen III trades with a similar device? Crazier things have happened.

We love our GameBoy hacks here on Hackaday, so why not check out this project that replaces the battery-backed SRAM in your GameBoy games with FRAM?

Continue reading “Bridging Game Worlds With The ‘Impossible’ Pokémon Trade”

GamecubePC Puts a PC into a Gamecube chassis

GamecubePC Packs Plenty Of Punch Into GameCube Plastics

If reading Hackaday teaches us anything, it’s that there is a subset of hackers who take things like emulator builds a step farther than most. [RetroModder] is very clearly one such hacker. Enter the GamecubePC, which you can read about on Hackaday.io. The GamecubePC is a multi-year project that aims to stuff an entire Windows 10 PC into a GameCube shell while still being able to play Wii and GameCube titles at native resolution and performance.

Internals of the GamecubePC with all the custom chassis and PCB's on display
Internals of the GamecubePC with all the custom chassis and PCB’s on display

Although it only takes a spare computer and the Dolphin emulator to make a GameCube and Wii emulator, great attention has been paid to keeping the GameCube at the forefront. Contributing to the illusion is the preservation of the original GameCube power switch and reset buttons by way of custom PCB’s that interface the parts to the mSTX motherboard.

The bottom of the GameCube shell is replaced with a 3D printed base that mounts the motherboard while smartly giving access to the motherboard’s front panel. The minuscule motherboard sports an Intel Core™ i5-7600 with 8GB memory, and SSD storage. Topping off the experience are four functional controller ports that can be switched to be used with the emulator or with PC games too. Surely the GamecubePC will be the subject of many double takes!

Custom game builds are no stranger to Hackaday, and you might appreciate this portable Wii that can play Wii and GameCube games or this GameCube controller hacked into a Joycon for the Nintendo Switch.

Edit from the far future: it’s now a project on Tindie.  Check it out.

DIY Handheld Game Puts Its Brains On A Removable Cart

Over the years we’ve seen plenty of homebrew handheld game systems that combine an AVR microcontroller, a few buttons, and an small OLED display. Some of them have even been turned into commercial products, such as the Arduboy. They’re simple, cheap, and with the right software, a lot of fun. But being based on an MCU, most of them share the same limitation of only being able to hold a single game at any one time.

But not the Game Card, by [Dylan Turner]. This handheld was specifically designed so that games could be easily swapped out using physical cartridges. But rather than trying to get the system’s microcontroller to boot code from an external flash chip, the system relocates the MCU to the removable cartridge. That might seem a bit overkill, but given how cheap the ATTINY84A on each cartridge is, it’s not exactly going to break the bank.

With the microcontroller on the cartridge, the only hardware that stays behind on the Game Card is the SSD1306 128×64 OLED display, buttons, and the battery. That means the handheld is effectively non-functional unless a game is slotted in, but that could be said of most early cartridge-based game systems as well. On the other hand, it also opens up the possibility of producing cartridges with more powerful microcontrollers down the line.

Using a different microcontroller for each game is a neat hack, but it’s not the only solution to the problem. We previously saw a community effort to add expandable storage to the Arduboy in the form of a DIY cartridge, which ultimately led to the development of an official flash chip upgrade for the handheld.

Continue reading “DIY Handheld Game Puts Its Brains On A Removable Cart”

Cracking A GBA Game With NSA Tools

[Wrongbaud] is a huge fan of Japanese kaiju-style movies, including Godzilla and King Kong. In honor of the release of a new movie, he has decided to tackle a few projects to see how both of these monsters can hold their own against other legendary monsters. In this project, he is using Ghidra, named after another legendary kaiju, against the password system of the Game Boy Advance game Kong: King of Atlantis.

Since this project is a how-to, [wrongbaud] shows how to search Ghidra for existing scripts that might already have the functionality needed for GBA analysis and emulation. When not, he also illustrates how to write scripts to automate code analysis, and then moves on to cracking the level password system on the game.

The key to finding the passwords on this game was looking for values in the code that were seven characters long, and after some searching [wrongbaud] is finally able to zero in on the code responsible for handling passwords. Once found a brute force method was automated to find viable passwords, and from there the game was officially pwned. For anyone interested in security, reverse engineering, or just the way that binaries work, it’s quite the detailed breakdown. Of course, it’s not the only example we have seen that uses this software tool to extract passwords.

PlayStation Games On The GBA, With A Few Extra Steps

It might seem impossible, but what you’re looking at is a Sony PlayStation game being played on a Nintendo Game Boy Advance. The resolution is miserable and the GBA doesn’t have nearly enough buttons to do most 3D games justice, but it’s working. There’s even audio support, although turning it on will slow things down considerably.

How does it work? The trick is that creator [Rodrigo Alfonso] is actually emulating the PlayStation on a Raspberry Pi and simply using Nintendo’s handheld as an external display and controller. We say “simply”, but of course, it’s anything but. The GitHub page for the project goes into impressive detail on how the whole thing works, but the short version is that the video data is sent from the Linux framebuffer to a small program running on the GBA over the handheld’s serial port using SPI. In testing he was able to push 2.56 Mbps through the link, which is a decent amount of bandwidth when you’ve only got to keep a 240 × 160 screen filled.

Perhaps the best part is that you don’t even need a flash cart to try it at home. [Rodrigo] is using a trick we’ve seen in other GBA projects, where the program is actually transferred to the handheld over the link cable at boot time.

Nintendo introduced this “multiboot” feature so multiplayer games could be played between systems even if they didn’t all have a physical cartridge, but now that hackers have cracked the code, it means you can run arbitrary code on a completely unmodified console; though it does get wiped as soon as you power it off.

[Rodrigo] provides all the information and software you need to try it at home, you just need a Raspberry Pi, a Game Boy Advance, and Link Cable you don’t mind cutting up; far less hardware than is required by the similar project to run DOOM on the NES. Since he’s tied everything into the popular RetroPie frontend, we imagine it would even work when emulating earlier 2D consoles; which would be a much better fit for the GBA’s display and limited inputs.