Building my own Sega Genesis Mini

It’s been several years since I posted Building a own custom retro console running RetroPie. That project was a lot of fun at the time, but I haven’t built another custom system since.

I just wanna play Sega Genesis

My original intent was to build something that focused on playing Sega Genesis games. The Genesis remains my favorite childhood console, and my dream was to build an emulation machine that looked like a Sega Genesis externally, but loaded with the entire library of games.

However the Raspberry Pi was still in its infancy back then, and I couldn’t bring myself to cannibalize an actual Genesis for its shell. Instead I settled on building my custom console with a generic case and (Xbox 360) controllers featuring a similar six-button layout. But that build just didn’t hold my interest for very long and I ended up digging out my original Sega Genesis, picking up one of Krikzz’s EverDrive flashcarts, and never looking back.

Fast forward to 2019, and Sega released the Sega Genesis Mini, which I happily picked up. It was my favorite of the official mini consoles, and it earned its spot on my desk at work. Despite the quick availability of hacks to add more games (and systems), I appreciated having such a tight, curated experience, even if I didn’t agree with every game choice.

Home office plans

Now it’s 2022 and that mini has mostly sat unused while I worked from home. As our offices have reopened, I’ve decided to split my time and to finally build myself a proper home office. And while I’ve kept a spot on my desk earmarked for a small “retro hardware setup”, I also have nice large TV and couch just begging for its own game system.

My first thought was to bring the Genesis Mini home, but it’s nice to have a self-contained setup at work for the days I go in. My second thought was to just pick up a Xbox Series S, giving me access to my modern digital library instead.

Then the Genesis Mini 2 was announced, so that became a contender. I looked at the game list, but unfortunately it doesn’t really excite me. However, in the process of watching various YouTubers’ opinions on the system, I stumbled upon some other projects that I’d completely missed before.

Blast 16 and the RetroFlag MEGAPi case

Blast 16 is a Raspberry Pi image designed to help you build your own Genesis mini console. Rather than just another RetroArch and Emulation Station setup, designed to host the full library of every retro console ever, Blast 16 is very Sega-oriented, and only supports the Genesis, Sega CD, 32X, Master System, and Game Gear. More than that, the beautiful, box-art-focused UI can’t handle more than a couple hundred entries without slowing down. So it’s meant to make you curate your experience, and only put on games you really want to play.

On top of that, and the real icing on the cake for me, is it’s easy to pair the Blast 16 software with the RetroFlag MEGAPi Case, which looks just like an actual Model 1 Sega Genesis. Seeing the two together in this video, my original dream was rekindled, and building my own Genesis Mini jumped to the top of my to-do list.

Getting the parts

My first concern was the age of these projects – they’d all come to market years ago, in response to the official Genesis Mini release. And if there’s one problem with these kinds of niche retro products, is that they’re often impossible to get if you didn’t buy them on day one.

Thankfully the Blast 16 website was still up and running, and I was happy to find that the MEGAPi case is still available on Amazon. I put in my order, and it’s quite lovely:

Next I gathered up two 8Bitdo M30 Bluetooth controllers (which I already had). The only thing missing was a Raspberry Pi.

I almost had a heart-attack seeing my (lack of) options. The MEGAPi case supports the Raspberry Pi 2B, 3B, or 3B+, but almost no one carries them anymore. I’d have to shell out $120 just for the low-end 2B, which is three times its original retail price of $40, and doesn’t even have Bluetooth.

Thankfully, past me had me covered. Checking my Amazon order history, I saw I’d picked up a 3B back in 2017 (who knows for what), and sure enough I there it was in my parts bin, still in the box. Bingo!

Building the hardware

Installing the Raspberry Pi into the MEGAPi case was simple and straight-forward – just plug in the two USB plugs, the single plug for the GPIO, and screw the board down:

Finally I flipped on the switch labeled “Smart Shutdown” (more on that later), closed the case and screwed it shut:

Initial software setup

With the hardware done, the next part was setting up a Micro SD card with Blast 16. I used a 16 GB card (no reason to waste anything bigger), and following the excellent instructions on the Blast 16 website, got the card imaged.

After that, I installed the card through the little lift door on the side of the MEGAPi:

After running the device once for the initial setup, and pairing the M30 controllers, it was time to install some games!

Installing games

Doing so was super easy. All you have to do is copy your ROMs (with matching box-art) onto a USB flash drive in a particular folder structure. Then if you boot the system with flash drive plugged in, Blast 16 will automatically install them onto the system. Note: if you want to remove games later, you can do so from within the Blast 16 menus.

I installed a little over a hundred games, mostly Genesis favorites, but also select few 32X, Sega CD, and Master System titles. It may not be the forever list, but it’s a great start.

Installing the safe shutdown scripts

One of the biggest gotchas with building a Pi-based anything is that the board doesn’t have a power switch. Out of the box, you’re expected to plug in the power to turn it on, and make sure to safely shutdown from within the running software to turn it off. If you don’t, and just pull the power, you risk corrupting the SD card and breaking your system.

Thankfully, the MEGAPi case wires its power switch and reset button to the Pi’s GIPO pins, and RetroFlag provides scripts you can install on your system to trigger a safe shutdown or restart when they’re used.

Update: Whoops! Apparently the base Blast 16 image already includes a working safe shutdown script that I completely missed. My version is unnecessary and installing it may give you some random error messages.

Unfortunately, RetroFlag hasn’t touched their code in a while, so the scripts have bugs and the install instructions didn’t work for me with Blast 16. I ended up forking their code and fixing the scripts myself for the Blast 16 / MEGAPi combo. I’ve written up revised instructions here, but long story short, if you want to copy my work, once you’ve gotten your Pi’s network configured, you just need to run the following from a terminal:

wget --no-check-certificate -O - "https://raw.githubusercontent.com/jonthysell/retroflag-picase-blast16/main/blast16_install.sh" | sudo bash

After it reboots the power switch and reset button will work as expected.

Final thoughts

I really love how well this project turned out. It looks so nice under my TV:

The UI is beautiful, and while I normally like the clean, pixel-perfect look when emulating, I’ve found I really like simulating an old CRT on this setup by setting the scaling to 4:3, turning on scan lines, and enabling the NTSC composite filter. Note: that last option meant going into RetroArch’s menus, so while that isn’t strictly necessary, I like that it’s still available.

In fact, having access to RetroArch’s menus meant I was also able to enable RetroAchievements, which was listed in Blast 16’s FAQ as unsupported. It works great, and I find adds a whole new level of fun when playing these old games.

Overall I’m thrilled to finally fulfill this old dream of mine, and while it doesn’t have literally every single game, I expect to spend plenty of hours playing my custom Sega Genesis Mini.

/jon