Tiny Game Boy (That Plays Witcher 3) And Other Things That Blew My Mind

For years Sprite_TM has been my favorite hacker, and yet he continues to have an uncanny ability to blow my mind with the hacks that he pulls off even though I’m ready for it. This weekend at the Hackaday SuperConference he threw down an amazing talk on his tiny, scratch-built, full-operational Game Boy. He stole the badge hacking show with a Rick Roll, disassembled the crypto challenge in one hour by cutting right to the final answer, and managed to be everywhere at once. You’re a wizard Harry Sprite!

Here’s what’s crazy: these are the antics of just one person of hundreds who I found equally amazing at the conference. It feels impossible to convey to you the absolute sincerity I have when I say that SuperCon was far and away the best conference I’ve ever been to or have even heard about. It managed to outpace any hyperbole I constructed leading up to the weekend. This morning felt like I was waking up from a dream and desperately wanted to fall asleep again.

What is This Tiny Game Boy You Speak Of?

Tiny Game Boy PCB running gnuBoy Emulator

Sprite_TM’s cadence of presenting is a big part of grasping all that went into this hack. He has an “oh, one more thing” habit of assaulting you with incredible leaps of creativity and hurdling technical roadblocks which can’t be done justice here. But it will be a few weeks before the video is edited and ready for publication. Here are some of the highlights to whet your appetite.

In his youth, Sprite_TM was addicted to the culture surrounding Nintendo Game Boy and remembers well the disappointment of ordering a tiny Game Boy key chain that turned out to do nothing more than act as a digital watch. Nearly twenty-five years later, technology has advanced far enough and a skilled engineer can actually build this. Sprite’s SuperCon talk presented a suitable excuse to focus his skills on the task.

The challenge goes something like this: find a suitably tiny color screen, connect it to an ESP32 (dual core 240 MHz processor), surround it with a 3D printed case scaled to match the proportions of the original Game Boy, and wrap the whole thing up with a custom board to handle battery management, audio (which is an awesome h-bridge hack in itself which I won’t go into here), and user input.

sprite_tm_game-boy-doom
Look closely, that’s the tiny Game Boy running Doom

A tiny Game Boy case is one thing, but you need an equally impressive software hack to actually do the emulation. The challenge here is that emulators are made to run on a full-blown computer and, although quite powerful, the ESP32 is a microcontroller and not an SoC. Once his emulator was running flawlessly Sprite_TM kept going — Doom must run on all things, right? But he played back a demonstration of Witcher 3, a current-gen game, running on the hardware. You’ll have to wait for the talk video for the secret of that one but I’ll give you a hint: ESP32 is a WiFi chip.

If you’re not already familiar with Sprite’s hacks, start with the Tamagotchi Singularity from last year.

Mind == Blown

Using an Arduino to brute-force forth crypto challenge puzzle
Using an Arduino to brute-force forth crypto challenge puzzle

I missed most of the talks I was really looking forward to seeing this weekend. Ken Shirriff’s work reverse-engineering silicon has always amazed me and when he explained some of it on stage I wasn’t there. I was delighting in the chase to solve the badge’s crypto challenge. (I was successful, but only with hints from Krux and Voja Antonic and help from a half-dozen other people working on the riddles.) This happened again and again — I missed talks from Ben Krasnow, Nadya Peek, Samy Kamkar, Star Simpson, and myriad others who I respect and adore. Yes, I was running around giddy, like a kid in an amusement park.

I wandered in for the last half of Dr. Crystal Gordon’s presentation on Bio-inspired sensing and delighted in her insight into how robotic locomotion is being markedly improved with data recorded and analyzed from biological locomotion. I watch as Ben Krasnow and Alan Yates were fascinated by Toshiro Kodera’s research into gyromagnetism in metamaterials — these are not easy people to impress. And went for a ride to Mars and beyond with Steve Collins’ tales of the many failure modes of NASA missions.

Everyone in the room taking pictures of Brian Benchoff's literal red herring during Crypto challenge unveiling
Everyone in the room taking pictures of Brian Benchoff’s literal red herring during Crypto challenge unveiling

The venue worked out perfectly, providing two stages, and spacious outdoor chill area, both indoor and outdoor workshops, and just the right ambiance to create a trance-like state.

We touted this as building a Hacker Village. I defy anyone who was there to say we did otherwise. I sat in talks while people all around me hacked on the firmware of their badges. I watched Zach Fredlin depopulate all of the surface-mount LEDs on his badge and rebuild the display as a super-sized air-wired design. We gave away $200,000 to the top entries of the Hackaday Prize. And a completely unplanned and impromptu desktop milling workshop sprung to life in the Supplyframe Design Lab.

Become an Eagle Master -- a workshop for that.
Become an Eagle Master — a workshop for that.

Perhaps most notably, I never once saw someone standing on the edge of the room by themselves, nervous to take part. The feeling of inclusion, of community, that everyone there was important and mattered, is certainly the most inspiring part of the whole experience.

This is something special, and I wish I could live every day of my life-like I was at this SuperConference.

Much More to Come

You don’t have to take my word for it, but you will have to wait just a bit. We’ll work on publishing every speck of awesome from this weekend as quickly as we can get it ready. Watch the front page of Hackaday and set aside some time to really dig in a treat yourself to the talks and events that made it so special.

48 thoughts on “Tiny Game Boy (That Plays Witcher 3) And Other Things That Blew My Mind

  1. “””You’ll have to wait for the talk video for the secret of that one but I’ll give you a hint: ESP32 is a WiFi chip”””
    game streaming rendered on a tiny OLED module by the ESP32 i guess… without FPU!

          1. It basically essentially comes down to this. There’s a VNC server running on the PC running the games, a VNC-UDP bridge to downnscale the image to the size of the OLED, and some software on the GameBoy to display that. Keypresses on the GB are captured and sent back, the bridge converts it into VNC keypresses and the VNC server then makes sure the game sees these keypresses. I used this setup to capture a SNES-emu, DOOM and the Witcher 3 in this way. (Although I’m halfway sure that with a lot of optimization, the ESP32 actually should be able to run DOOM and a SNES-emu by itself.)

          2. in the 90’s I ran a SNES emu on a 486sx20 to play Zelda. It only ran at 25% or 50% of the speed. I got full speed on a 233mhz Pentium 2. I’d be more worried about RAM constraints.

          3. Hmmm have to look into that downscaling thing… When I’ve VNCed on weak devices, they’ve been all slideshowy. Guess because scaling done client side.

            I’d hope you could run doom native. It would play on a 386/16 with the res dialled down.

  2. “Perhaps most notably, I never once saw someone standing on the edge of the room by themselves, nervous to take part. ”

    Things that don’t happen episode #312…

    Socially Awkward Penguin: Hmmm I should pay $$$ to go to a conference where there’s hundreds of people, that will fix me.

  3. Sure Sprite_TM is a great hacker, Hackaday do well to mention stuff about the new feature-packed popular chip, and both deserve Espressif’s money for this ongoing extended advertising campaign that started last year, but I’m already tired of all the LAN multiplayer games, controlled with wiimotes, video-streamed or ported to the flagship product, that the blog is going to feed us with ad nauseam.

    Though that’s still better than another sententious lesson taught to the hidebound “get off my audio jack” nerds afraid of modernity, always moaning instead of following the great foresight of industry… but “Grandpa’s headphones turned bluetooth thanks to ESP32” is inevitably coming ! :D

    1. I understand your sentiment, and even with my current situation being evry much Espressif-favoured, I also wouldn’t like every single article here to be about the ESP32: the bar for projects on Hackaday always have been the interesing-ness and creativity of a project, not the components they use.

      Also: as far as I know, we do not pay Hackaday and if we tried, I’m sure we’d find Hackaday wouldn’t accept our money; I think their explicit policy is that people cannot pay to influence articles. On the other hand, I absolutely am being paid by Espressif; it’s my day job after all. That being said, I try to keep my hacking and work separately; for example apart from me getting the ESP-WROOM32 modules from the office, Espressif had nothing to do with me building the tiny GameBoy that was in the presentation. I also stated that in my presentation itself, and in general I’ll try as much as possible to make it clear when I did something with my own resources and when I did something being an engineer employed by Espressif. Sure, there’ll always be some subconscious partiality on my part, but the only way I can get rid of that is by either changing my current job or give up publishing articles.

      Sorry, I kind-of segued off there, but the entire thing has been on my mind lately.

  4. “The challenge here is that emulators are made to run on a full-blown computer and, although quite powerful, the ESP32 is a microcontroller and not an SoC”

    Beg pardon?! It’s got 2 cores @240MHz, and what exactly is the distinction between a microcontroller and SoC in this regard? Emulating a GB should be barely idling! (GB emulation was relatively trivial on ~33MHz ARM6…)

    Get off my lawn.

    1. The line separating them has indeed become blurry.

      To me it seems that microcontrollers are meant to be used with their internal SRAM only, while SoCs use external DRAM – but thats just something I’ve observed, not a formal definition. Anyone’s got more/better defining characteristics?

          1. Yeah but then they deliberately make them hard to use for anything other than overpriced phone calls and messaging.

            It’d be neat if there was a solid overview of ripping the guts out of an Android system so that it will still boot and provide a framebuffer and touchscreen input — bonus points if the radio still works without compromising the application processor — but not contain most of the Android userland – but this is different between devices and not any fun with a high risk of bricking the device.

  5. “For years Spite_TM has be my favorite hacker,..”
    #EditorJobOpeningAtHaD

    I’m amazed he can do all that while keeping up with his kids as a single dad with a full-time job, substantial college debt, and not let his extensive medical issues drag him down. The guy is truly impressive….

    …or just another adult age child escaping into a hobby… like social media, online gaming, watching sports, fashionistas, keeping up with the Kartrashians, etc.

    Glad he’s happy though.

    1. Sorry, but what? You’re not allowed to be good at electronics without also having crippling debt, a kind and medical issues? Apart from you assuming a bunch of things about my personal situation which are inaccurate at best, I don’t really manage to understand your logic here…

        1. I think it’s jealousy that you’ve got the time to do the hacking, rather than having your time soaked up by other things.

          I’m also jealous, but don’t hold it against you :-)

          1. I guess so. Honestly, I just love what I do and I also like everyone else to be able to use my stuff; that is why I release 99% of what I do under a permissive license. Some people have done awesome things with it, going above and beyond my original implementation, and I also love reading about that.

Leave a Reply to Sprite_tmCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.