It was recently pointed out to me that Clay Cowgill produces a kit (among many fine others) for a Tempest multigame. In that kit was a custom game written by Clay himself, "Vector Breakout", which works on the Tempest hardware. You can visit his page here: http://www.multigame.com/tempest.html Understandably, Clay is a very busy person, and we really can't expect a brain dump from him. But I managed to get the details from him regarding the use of MAME for programming the Tempest hardware. [My comments will be in these brackets.] > Did you use MAME to develop your vector breakout? If so, any comments > on the experience that you can relate? Yep, I used MAME. My comments on MAME?... "Don't trust MAME." ;-) Seriously though, all the information I needed to program on Tempest Hardware I basically got from the MAME sourcecode on Tempest, Jess Askey's AVG description, and my old "Mapping the Atari" book for info on POKEY. (Jess' description doesn't document everything apparently. There's some kind of subroutine call that I don't understand that isn't listed. It's implemented in MAME, so digging through the source there might be enough to figure it out-- I just ignored it...) MAME beats the hell out of burning ROMs, but it has some shortcomings: a) No concept of vector drawing time-- images (no matter how complex) always draw in MAME. The real game has a finite amount of time to finish before flicker becomes a problem. b) Monitor behaviour-- real code must appease the [vector] monitor or else objects won't position correctly and/or the spot killer will get you. [The spot killer will turn "off" the monitor if there isn't enough positional movement of the gun across the screen.] c) POKEY-- MAME doesn't really model the behavior of POKEY's I/O ports correctly. d) IRQ's-- MAME doesn't handle IRQ's correctly. (You can write code that runs on MAME but will hang a real machine quite easily.) e) VRAM-- MAME doesn't handle VRAM accesses (in particular bus contention) properly/at all. (You can always access VRAM in MAME, not so on real hardware.) f) Long vectors-- MAME does something funky with some types of long vector draws. It'll look "fine" on the MAME screen, but be goofy on the real hardware. I think MAME can interpret the most significant as a sign-bit in some instances... Since I switched to a little vector-editor of my own the problem basically disappeared. Go figure. g) Vector Generator-- MAME allows vector generator features that aren't on the real hardware. ("Sparkle", for example.) [The MAME code for the Atari Vector Generator is not just used for Tempest, but Major Havoc as well. It's going to have additional features that aren't really there in the real thing.] Once you work around the above though, things work reasonably well and it's a boatload faster than any alternatives. Plus, just being able to single-step and set breakpoints is worth any/all hassles. [Not to mention setting up real-time memory monitors on the screen.] I wrote Vector Breakout in a few weeks of off and on work. The Menu System in something less than 1 week... I like your idea to document the Tempest source-- I'd help but I'm busy on a multitude of other projects... -Clay P.S. I reported the above stuff to the MAME team for fixing back in April? So some of might be better now...