A Cycle-Accurate Sega Genesis With FPGA

The Field-Programmable Gate Array (FPGA) is a powerful tool that is becoming more common across all kinds of different projects. They are effectively programmable hardware devices, capable of creating specific digital circuits and custom logic for a wide range of applications and can be much more versatile and powerful than a generic microcontroller. While they’re often used for rapid prototyping, they can also recreate specific integrated circuits, and are especially useful for retrocomputing. [nukeykt] has been developing a Sega Genesis clone using them, with some impressive results.

The Sega Genesis (or Mega Drive) was based around the fairly common Motorola 68000 processor, but this wasn’t the only processor in the console. There were a number of coprocessors including a Z80 and several chips from Yamaha to process audio. This project reproduces a number of these chips which are cycle-accurate using Verilog. The chips were recreated using images of de-capped original hardware, and although it doesn’t cover every chip from every version of the Genesis yet, it does have a version of the 68000, a Z80, and the combined Yamaha processor working and capable of playing plenty of games.

The project is still ongoing and eventually hopes to recreate the rest of the chipset using FPGAs. There’s also ongoing testing of the currently working chips, as some of them do still have a few bugs to work out. If you prefer to take a more purist approach to recreating 90s consoles, though, we recently featured a project which reproduced a Genesis development kit using original hardware.

Thanks to [Anonymous] for the tip!

Mortal Kombat Stand Up Arcade machines

Mortal Kombat ROM Hack Kontinues Arcade Legacy

September 13th 1993, colloquially known as Mortal Monday, became a dividing line in the battle for 16-bit supremacy. The mega popular arcade game Mortal Kombat was ported to Super Nintendo and Sega Genesis consoles, and every fanboy and fangirl had an opinion on which version truly brought the hits.

Nintendo’s version opted to remove the blood and gore in an attempt to preserve the company’s family-friendly image, while Sega’s offering merely locked the game’s more violent content behind a cheat code that so many fans learned by heart: ABACABB. Nintendo’s decision to censor Mortal Kombat on their console pushed public opinion in favor of the Sega Genesis version being superior, though it was clear that corners were cut in order to squeeze it onto a cartridge. Recently a group of developers led by [Paulo] sought to restore the Genesis version to its full potential with a ROM hack they’re calling Mortal Kombat Arcade Edition.

Mortal Kombat Arcade Edition is the sort of ROM hack where every facet of the game has been retouched. All sorts of sound effects and animations that were omitted in the 1993 translation to the Genesis have now been restored in higher quality. Every fighter’s look was remastered to more closely match the arcade presentation complete with move timing tweaks. Secret characters like Reptile, Noob Saibot, and Ermac are all playable, plus all the character bios from the arcade game’s attract mode make an appearance. An SRAM save feature was implemented in order to save high scores, and for an additional dose of authenticity there’s even a “DIP switch” configuration screen where you can set it to free play.

This ROM hack comes as an IPS patch that can be applied to a legitimate dump of the user’s Sega Genesis or Mega Drive cartridge. The site hosting the Mortal Kombat Arcade Edition patch features an online IPS patching tool called Rom Patcher JS that makes the patching process more convenient for those attached to their browser. The patched ROM can then be enjoyed in the user’s favorite emulator of choice, though running it on original hardware via a ROM cart is also possible (even encouraged). Considering the limitations of the Sega Genesis’ color palette the revamped look of Mortal Kombat Arcade Edition is all the more impressive. It just goes to show you that Genesis still does!

Not ready to FINISH HIM? Check out this countertop arcade build featuring some Mortal Kombat II art, or marvel at the incredible effort that went into creating the Knights of the Round ROM hack known as Warlock’s Tower.

Continue reading Mortal Kombat ROM Hack Kontinues Arcade Legacy”

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”