Completely Owning the Dreamcast Add-on You Never Had

If you’ve got a SEGA Dreamcast kicking around in a closet somewhere, and you still have the underutilized add-on Visual Memory Unit (VMU), you’re in for a treat today. If not, but you enjoy incredibly detailed hacks into the depths of slightly aged silicon, you’ll be even more excited. Because [Dmitry Grinberg] has a VMU hack that will awe you with its completeness. With all the bits in place, the hacking tally is a new MAME emulator, an IDA plugin, a never-before ROM dump, and an emulator for an ARM chip that doesn’t exist, running Flappy Bird. All in a month’s work!

The VMU was a Dreamcast add-on that primarily stored game data in its flash memory, but it also had a small LCD display, a D-pad, and inter-VMU communications functions. It also had room for a standalone game which could interact with the main Dreamcast games in limited ways. [Dmitry] wanted to see what else he could do with it. Basically everything.

We can’t do this hack justice in a short write-up, but the outline is that he starts out with the datasheet for the VMU’s CPU, and goes looking for interesting instructions. Then he started reverse engineering the ROM that comes with the SDK, which was only trivially obfuscated. Along the way, he wrote his own IDA plugin for the chip. Discovery of two ROP gadgets allowed him to dump the ROM to flash, where it could be easily read out. Those of you in the VMU community will appreciate the first-ever ROM dump.

On to doing something useful with the device! [Dmitry]’s definition of useful is to have it emulate a modern CPU so that it’s a lot easier to program for. Of course, nobody writes an emulator for modern hardware directly on obsolete hardware — you emulate the obsolete hardware on your laptop to get a debug environment first. So [Dmitry] ported the emulator for the VMU’s CPU that he found in MAME from C++ to C (for reasons that we understand) and customized it for the VMU’s hardware.

Within the emulated VMU, [Dmitry] then wrote the ARM Cortex emulator that it would soon run. But what ARM Cortex to emulate? The Cortex-M0 would have been good enough, but it lacked some instructions that [Dmitry] liked, so he ended up writing an emulator of the not-available-in-silicon Cortex-M23, which had the features he wanted. Load up the Cortex emulator in the VMU, and you can write games for it in C. [Dmitry] provides two demos, naturally: a Mandlebrot set grapher, and Flappy Bird.

Amazed? Yeah, we were as well. But then this is the same guy emulated an ARM chip on the AVR architecture, just to run Linux on an ATMega1284p.

Dreamcast VMU, meet iPod

We’d bet you never had a Dreamcast Visual Memory Unit, but if you can find one now it can be turned into an iPod (translated). The VMU was originally a memory card for the not-so-popular gaming console that put an LCD screen right in your controller. When you weren’t at home you could take it with you and play mini-games. This version lacks its original guts, which have been replaced with a 6th generation iPod nano. The screen is just a bit small for the opening so a frame of white tape was applied as a bezel. The sleep button has been extended through the cover for the VMU connector. It seems there’s a gaping hole in the back of the case, but after seeing the ultrasonic knife used to cut away the plastic we don’t care. We’ve embedded video of that tool after the break.

Continue reading “Dreamcast VMU, meet iPod”

IntoDream, the ‘portable’ Dreamcast

What looks like an absolute mess of wires,5 fans,3 batteries, and other miscellaneous equipment squeezed into a Tupperware box on the left? At first we didn’t believe it, but it is actually [John’s] fully functioning slick-looking portable Dreamcast on the right. The system runs Quake 3 for a little over 2 hours, not too bad considering it is also powering a VMU, rumble pad, 5 inch LCD screen, and did we mention 5 fans! All in all, it’s still smaller than the original Xbox controller, and we like that one of the greatest consoles is getting some well deserved respect. Check out the work log and a video of it functioning after the break. Continue reading “IntoDream, the ‘portable’ Dreamcast”