Raspberry Pi Breathes Life Into A Scale Model SEGA

Miniature game consoles are all the rage right now. Many of the big names in gaming are releasing their own official “mini” versions of their classic machines, but naturally we see plenty of DIY builds around these parts as well. Generally they’re enclosed in a 3D printed model of whatever system they’re looking to emulate, but as you might expect that involves a lot of sanding and painting to achieve a professional look.

But for SEGA Genesis (or Mega Drive as it was known outside the US) fans, there’s a new option. A company by the name of Retro Electro Models has released a high-fidelity scale model of SEGA’s classic console, so naturally somebody hacked it to hold a Raspberry Pi. Wanting to do the scale detailing of the model justice, [Andrew Armstrong] went the extra mile to get the power button on the front of the console working, and even added support for swapping games via RFID tags.

[Andrew] uses the Raspberry Pi 3 A+ which ended up being the perfect size to fit inside the model. Fitting the Pi Zero would have been even easier, but it lacks the horsepower of its bigger siblings. The RFID reader is connected to the Pi over SPI, and the reed switch used to detect when the power switch has been moved is wired directly to the GPIO pins. The system is powered by a USB cable soldered directly to Pi’s PCB and ran out a small hole in the back of the case.

For input, [Andrew] is using a small wireless keyboard that includes a touch pad and gaming controls. Unfortunately, it has a proprietary receiver which had to be integrated into the system. In a particularly nice touch, he used snipped off component leads to “wire” the receiver’s PCB directly to the pins of the Pi’s USB port. Not only does it look cool, but provides a rigid enough connection that he didn’t even need to glue it down to keep it from rattling around inside the case. Definitely a tip to keep in the back of your mind.

The software side of this project is about what you’d expect for an emulation console, though with the added trickery of loading games based on their RFID tag. At this point [Andrew] only has a single “cartridge” for the system, so he simply drops the tags into the cartridge slot of the console to load up a new title. It doesn’t look like Retro Electro Models is selling loose cartridges (which makes sense, all things considered), so there might still be a job for your 3D printer yet if you want to have a library of scale cartridges to go with your console.

For those of you who were on Team Nintendo in the 1990’s, we’ve seen a similar build done with a 3D printed case. Of course, if even these consoles are a bit too recent for your tastes, you could build a miniature Vectrex instead.

Continue reading “Raspberry Pi Breathes Life Into A Scale Model SEGA”

How To Interface Sega Controllers, And Make Them Wireless

The Sega Genesis, or Mega Drive as it was known outside North America, was a popular console for the simple fact that Sega did what Nintendidn’t. Anachronistic marketing jokes aside, it brought fast scrolling 16-bit games to a home console platform and won many fans over the years. You may find yourself wanting to interface with the old controller hardware, and in that case, [Jon Thysell] is here to help.

[Jon] has done the work required to understand the Sega controller interface, and has shared his work on Github. The interface is an interesting one, and varies depending on the exact console and controller hardware used. The original Master System, with its D-pad and two buttons, simply uses six pins for the six switches on the controller. The 3-button Genesis pad gets a little more advanced, before things get further complicated with the state-machine-esque 6-button pad setup.

[Jon] helpfully breaks down the various interfaces, and makes it possible to interface them with Arduinos relatively easily. Sharing such work allows others to stand on the shoulders of giants and build their own projects. This nets us work such as [Danilo]’s wireless Genesis controller build. By combining the knowledge of the Sega protocol with a few off-the-shelf Arduinos and Bluetooth parts, it makes whipping up a wireless controller easy.

In this day and age, most console controllers can be readily interfaced with a PC with a variety of simple solutions – usually USB. You might feel like trying something harder though, for instance interfacing modern Nintendo controllers to a C64. Video after the break.

Continue reading “How To Interface Sega Controllers, And Make Them Wireless”

The Sega Mega Drive Dev Kit

segaWhile most homebrew video game development has focused on the original NES, Atari consoles, and has produced a few SNES games, there is another console out there that hasn’t seen much love. Sega’s classic console, the Genesis or Mega Drive, depending on where you’re from, was an extremely capable machine with amazing capabilities for its time. [Chris] figured the Mega Drive would make a good target for an all-in-one development kit, and with a lot of work he managed to put one together.

The standard cartridge for the Genesis or Mega Drive is just a simple ROM chip wired directly into the console’s address space. [Chris] took a cheap FPGA and some dual port ram to create a seamless interface between the modern world and the inside of this ancient console, allowing him to load every Mega Drive game off an SD card, as well as use modern tools to modify old games, or even create new ones.

To demonstrate his dev kit, [Chris] took a copy of Sonic 1, and using the debugger and GDB, gave himself infinite lives. It’s a very cool demonstration, searching through all the commands executed by the Megadrive CPU with the standard Linux debugging tools.Going through the trace, [Chris] found the instruction that decremented that value representing Sonics lives, replaced it with NOPs, in effect giving himself infinite lives. This is a lot like how the Game Genie works, only using much, much better tools.

Of course a USB dev kit wouldn’t be much use if it could only modify existing games. The real power of [Chris]’ work comes from being able to develop your own demos, games, and homebrew apps.

[Chris] needed to write a small homebrew Mega Drive app for the ROM loader portion of his dev kit using SGDK. Disassembling his own code with the dev kit, he was able to take a look at the instructions, and potentially even modify his loader.

It’s a really impressive technical accomplishment, and something that could be a boon to the extremely small homebrew scene for the Mega Drive. All the boards, code, and everything else are available over on [Chris]’ github, with the entire project written up on hackaday.io. Videos below.

Continue reading “The Sega Mega Drive Dev Kit”