Raspberry Pi-Based Game Boy Emulator

The most popular use for a Raspberry Pi, by far, is video game emulation. We see this in many, many forms from 3D printed Raspberry Pi cases resembling the original Nintendo Entertainment System to 3D printed Raspberry Pi cases resembling Super Nintendos. There’s a lot of variety out there for Raspberry Pi emulation, but [moosepr] is taking it to the next level. He’s building the smallest Pi emulation build we’ve ever seen.

This build is based on the Pi Zero and a 2.2″ (0.56 dm) ili9341 TFT display. This display has a resolution of 240×320 pixels, which is close enough to the resolution of the systems the Pi Zero can emulate. The Pi Zero and display are attached to a beautiful purple breakout board (shared on OSH Park) along with a few 5-way nav switches, a charger for a Lipo battery, and a few other bits and bobs.

Right now, [moosepr] is experimenting with adding sound to his board. It’s easy enough to get sound out of a Pi Zero — it’s just PWM coming from a few pins — but audio also needs an amp, a speaker, and more space on the board. To solve this problem, [moose] found a few piezo transducers from musical greeting cards. These are designed to be thin and as loud as possible, and attaching these directly to the PWM pins providing audio might just work. This is a project to keep an eye on, if only to see if cheap piezos work for low-fi audio in retro emulators.

14 thoughts on “Raspberry Pi-Based Game Boy Emulator

  1. For sound there are small amps with digital (I2S) sound input. They come in nearly-impossible-to-solder packages, but some have nice extras such as switchable headphone output, square wave (beep) generators and I2C control interface. My favorite is the CS43L22, which has all these features. It’s also the one used in the STM32F4 discovery board (but it’s hardwired for headphone output and speaker pins aren’t broken out).

    Anyway, the form factor is ugly. It’s nearly square and using a second joystick for the control buttons isn’t a good idea (but on the other hand it allows to play arcade games which use two joysticks, e.g. Black Widow).
    The best solution would be having a Playstation-like pad with all types of controls, but that’s not small. Maybe having swappable controllers like the Nintendo Switch? That would allow every emulated game/system to have an appropriate controller.

  2. “The most popular use for a Raspberry Pi, by far, is video game emulation.”

    Absolutely absurd. Just another “journalist” making up fake crap to give his hack story some credibility. Look at all the Raspberry Pi magazines, and all the web sites — video game emulation is nowhere near the top of the list. But that fact kind of ruins this fake article, so watch for some lame and totally made up “rebuttal.”

    1. Most of the crap you see people posting about raspberry pis is either
      1: emulators
      2: media center

      I bet more of these are being used for crap like that rather than what they were designed for.

    1. It doesn’t really matter how you mount them. I think those are digital joysticks so they have switches in them. Anyways it doesn’t really matter how you place them. Just fix it in the code. Most likely he did it for the looks

      1. I suspect that there is more to it than that. For inputs like this – joysticks – rotary encoders – I always write a small state machine to cancel switch bounce or missing pulses and reduce polling time.

        He may have found and improvement in the way they work by having two switches operate for every valid input.

  3. Piezos connected to digital pins will often work but you might discover how good transducers are at generating voltage as well as accepting it. Diode clamp the pin to power and GND or the spike generated by dropping or tapping the unit will try and fry your output pin. Some internal protection diodes are not able to deal with the spike​ from the transducer.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s