MB Microvision |
The aims for this challenge are to
(1) Write an assembler and emulator for the system as accurately as I can. I have data sheets and manuals for the Microcontrollers, the LCD Controller chip and circuit diagrams so this should be possible.
(2) Write one or more new games to run on the system. This is challenging. The Microvision is a bit like the Atari VCS. On modern LCD systems, or even not quite so old ones, you just turn a bit on in memory to turn a pixel on. With the Microvision, you have to continually refresh the screen, a line at a time, about 30 or so times a second. The problem is that the controllers are slow , 50,000 to 80,000 instructions a second.
(3) Build a hardware emulation of the Microvision itself. This will be an Arduino (probably) with either an LCD display scaled down to 16x16 pixels, or alternatively a 16x16 LED Display that I already have.
I was originally going to work on Auto Race, but I wasn't happy with the accuracy of my research regarding the Rockwell Calculator Chip that drove it, so I have changed it. I think these things should be accurate and not just made up to suit.
For those of you that don't know this system - it is about 10" x 3" in size, and has a display in the middle which is 16 x 16 pixel resolution. There is a speaker and an array of 3 x 4 keys - not all of these are used all the time, as you can see in "Block Buster".
The "Cartridge" is the grey plastic bit, so they are quite large - the main unit , the dark brown part contains the speaker, the operating buttons, the LCD screen, the rotary controller at the bottom and the batteries. The cartridges contain the button covers (the blue bits are very thin plastic) and a circuit board with the controller on.
There are several types of cartridges. The cartridge varies between the Intel 8021, which is a grand daddy of the Intel 8048 micro controller, and the TMS1100 from Texas Instruments. As I understand it, it was designed for the 8021 (which is a much easier to program 8 bit micro controller) but they didn't have enough chips, so they redesigned it for the TMS1100.
Some games, including Block Buster I think, are available in both 8021 and 1100 formats.
Very nice! There are some TMS1100 cart dumps available if you want some code to test on your emulator.
ReplyDeleteAre there ? I didn't know that. I spent an afternoon with an Arduino and a chip from a Pocket Simon trying to bully it into giving up its code as per the patent (the chip was a variant so may not have had the hardware ?) - could get it to run the code by clocking it but nothing would produce a dump :( Are these Microvision carts ? I'm pretty much okay with the TMS1100 bit (I don't emulate the LFSR Program Counter but this is just byte reorganisation) but would be useful to test the LCD emulation especially - could be back to front and/or upside down, or just wrong - the data sheet isn't awfully clear in places :)
DeleteHey, it's been a while. I decapped the MB4850 16-pin Simon chip and it isn't a TMS-1000; it looks like they converted it to an ASIC, so there's no ROM to dump. A fellow sent me a TMS-1000 from the original revision Simon, and I decapped and dumped it: http://www.seanriddle.com/simon.html
DeleteKevtris has dumped 4-5 of the TMS1100 Microvision carts using a variation on the method described in the patent. I've spent more than a few afternoons working on this, too, but the patent has several mistakes and inconsistencies that make it difficult.
ReplyDeleteI just "visually" dumped a TMS1100 and mapped the bits on the die to the ROM dump, so worst case we could do it that way. I've got the Vegas Slots cart that I could decap and dump if I don't hear back from Kevin.