Microvision emulator release

 Posted by (Visited 1295 times)  Game talk  Tagged with: , ,
May 072017
 

I’ve been working for a while–five years!–on my emulation arcade cabinet, entitled Press Start: Emulating Videogame History. I started with a stock cabinet and control panel, and have been gradually modding it with stuff, like a robotics-driven auto-rotating monitor, LED lighting that matches whatever game is launched, and additional controls. I’ve been slowly working on getting emulation set up on it for everything historically important from Tennis for Two on forward.

But that’s another story. I mention it only because it led me to this little project.

The very first handheld console that supported cartridges was called the Microvision, and it was made by Milton Bradley in 1979. It had a 16×16 pixel LCD screen, and of course the only color it supported on that screen was black. Only a dozen or so games were ever made for it, and it was pulled from the market only two years later, losing the popularity contest to Nintendo’s Game and Watch series as well as the myriad other handhelds that emerged around the same time. It would take until 1989 before someone else gave the handheld cartridge idea a shot — that device was called the Gameboy. In fact, according to Wikipedia, the Microvision helped inspire the Game and Watch series.

The Microvision had a lot of issues. Carts were giant plastic overlays that clicked on to the top of the whole device; it was apparently easy to mess up the insertion process, enough so that the manual actually included troubleshooting steps. A transparent plastic overlay sat over the screen to confer some amount of color and user interface to the primitive display. A 12 key keypad and a small paddle knob were the controls, but not all games used all the keys, so the carts actually covered up the buttons that weren’t in use, and left holes for the keys that were, with a thin film labeling the buttons. This film was apparently quite susceptible to being punctured by fingernails.

But worst of all, the early LCD screen technology was susceptible to “screen rot.” They weren’t backlit, but if exposed to sunlight, they started to go bad and eventually ceased to function. Many if not most working Microvisions out there have this problem now, and eventually, they all will stop working.

Now, clearly I wanted to have an emulator for this historically important little handheld. But a lot of the early systems are poorly emulated, and the Microvision was, until recently, no exception. There was a Javascript simulator written by Bob Eichler, that had some of the games coded up. There was a German emulator done in 2008, but it handled only one game. MAME/MESS added the driver back in 2013, but it was labeled “non-working.”

Then in 2014, Paul Robson, who is apparently quite active in the retro community, wrote an emulator, got hold of dumps of every game, and even ported the core logic over to Arduino and managed to build a working new Microvision, as part of a RetroChallenge. (He’s done a lot of stellar work on other devices and platforms too). He also helpfully open-sourced the code. He even wrote two new games for it: a port of Space Invaders, and a simple little bombing game.

As I tried to get it set up in my cabinet, though, I immediately ran into a few limitations. The biggest: the emulator only ran in a window at 800×600. It supported importing BMP files for the overlays, but Robson had only made one, for Pinball. It was pretty barebones.

But as I started playing, the games were mostly pretty fun. So I started making overlays… and then I tracked down the source code and figured out how to compile it… and here we are now, after a week of work. Here is a side by side of Robson’s last version, and of what I am releasing today.

This package includes an updated emulator supporting full screen from the command line, snaps of the carts so you can see which buttons do what, and upgraded visuals on the actual emulation. I also made overlays for every game available, including Robson’s two homebrew games, as well as fake cart snaps for those two games. The colors on the new overlays are matched as closely as I can get to the originals, and I even managed to match the exact font used on the original carts (Futura Normal for most, but Sea Duel used Helvetica Neue. Hey, it was the seventies…).

This download includes everything you need to play all the games that exist. It has all the cart snaps and overlays and .bin files for the games. In simplest form, you can simply drag any of the .bin files onto mvem.exe and start playing in an 800×600 window. But for a better experience, I suggest opening a command line or using an emulator frontend:

mvem "Block Buster.bin" 1920x1080x1

will launch Block Buster at full screen on a 1080 monitor. The last digit should be either 0 or 1 for windowed or fullscreen. Honestly, 800×600 is a bit small to be able to see the key hints on the snap on the left, but I left it that way given the prevalence of 720p screens out there on notebooks these days.

If you want manuals for the games (which I recommend, some of them are obvious and others are impenetrable), lots of snaps, and the like, you should head over to this link, where ranger_lennier uploaded a treasure trove of them back in 2013. I’d host a mirror, but my website host might well get mad, it’s a lot of high-res images.

I haven’t gotten around to compiling a Mac version, and I may not. I also may not maintain this version, to be honest — I know nothing at all about the actual emulation part of the code, and carefully avoided touching it in favor of only doing cosmetic changes to the user experience.  If changes are needed for  better emulation accuracy (there may be some errors in the dumps of the games, based on what I read) then Paul Robson is a far better source than I am for information.

That said, if anyone out there wants to build a Mac version or keep working on the emulator, here is a ZIP of the source code and Code::Blocks project that I put together. I make no guarantees that it’s pretty, but I did try to comment where I added things. It may take some work to even get the project set up; the project file was missing from Paul’s original upload and I had to reconstruct it, paths to things like SDL are sure to need changed, and in zipping it up I actually rearranged the directories a bit so it probably doesn’t open out of the box.

Many thanks to Paul Robson for all his hard work and expertise and I hope he doesn’t mind that I mangled his code; to ranger_lennier for the scans; to the one and only Microvision website over at Atari2600land; and the Microvision info over at the Handheld Museum.

I never owned a Microvision, and don’t think I ever saw one in the wild. Playing the games renewed my appreciation for how we can stuff play into something incredibly tiny, and making this small contribution to making it easier for others to have that experience also increased my appreciation for all those who work to keep all of this history alive.

Now I have one less excuse for not making something of my own again… must cast about for some other major distraction. 🙂

  4 Responses to “Microvision emulator release”

  1. Messing with this tomorrow! Brilliant, Raph! Thanks for sharing!

  2. I am so grateful for this article and the other articles and presentations on your site. I am creating a game design curriculum for my son to study this summer, and they have been a really big help.

Sorry, the comment form is closed at this time.