Virtual PCB Emulator

VPCB has a long history. It has it's roots in a program Chris sent me for the Amiga sometime in the mid-90's. His idea was originally to make an "open source" gaming console, and this little program "SIMCON" (as it was called then) was supposed to be a framework for that. It had a little 6502-like CPU with a few instructions and I think a small screen that could be drawn to directly like a CHIP-8.

Around this time I traded in the trusty old Amiga 3000 and got a PC and promptly forgot about the program. Then one day in early 1996 I ran across Dave Spicer's SPARCADE (as it was later named). It was hard to believe at first that this was playing real arcade games through emulation because such a thing hadn't been done or heard of before-- and on a 486 no less! Well, I got interested in getting involved and dug up the old SIMCON framework and started to see if I could turn the CPU into a real 6502, and armed with my VIC-20 programmer's reference manual, I set about to do that. At the time (late 1996) there was no emulator source code or MAME and there were just a handful of us attempting to do this. I tried to disassmble the few arcade roms archived on the (now defunct) spies.com to find one that spit out something I recognized as 6502 code. I finally ran across Centipede, figured out where the ROMs loaded in memory by examining the JMP and JSR's, and tried to plug them into SIMCON. It went slowly, but I'd make small strides every time I spent a couple hours with the code. I would add and fix opcodes and massage the addresses that the Centipede code appeared to poke around at, slowly discerning the entire memory map as the code would run a little further each time. (Incidentally, my memory maps for Centipede and Millipede are still in MAME uncredited to me). I remember the day I first got the mushrooms and high-score table to display (sideways and upside down) and I knew at that point I could get it working, given enough time and effort. I added Millipede which is very similar hardware and released the program in late 1996 and developed it for a little while into 1997, while starting to add other 6502-based games, but in February of 1997 MAME was released and made such huge strides that I knew I couldn't do it by myself and keep up. The code turned into an Apple I emulator also at some point, which is available from the main page on this site.

Fast-forward to 2003. Chris bought himself a Palm Tungsten-T and decided to figure out how to program the ARM side with the free CYGWIN tools. I had lost the original source to VPCB at this point, but still had an incarnation of the CPU that was in the Apple emulator. Chris took this and did all the hard work of figuring out how to program without global variables, and successfully reproduced a Centipede emulator that ran in ARM mode which was plenty fast enough for this simple game. After a bit of debugging, he released in in October 2003 and "insisted" I get an ARM Palm and help him out with it... :) Anyway, I finally gave in, bought a Clie TG50 and have worked on it on and off for the past couple months. I have fixed the colors in Millipede, making it playable and added most all of the Atari vector games to it.

It will now play:
Asteroids Deluxe
Lunar Lander
Space Duel
Gravitar (playable, but has scaling issues)

It "runs" but does not "play":
Red Baron (has a few glitches, like you can't fire your guns and the controls are wacky)
Black Widow (has dual joysticks so controls are not finished)
Tempest (has big problems but at least boots)
Major Havoc (actually 'Alpha One' the single-CPU prototype. Not in released 0.6 codebase.)

This software is defunct and no longer offered for download.

Find me on Facebook
All content copyright (c) 1971-2061 by Peter Rittwage. All programs mentioned are copyrighted by their respective owners.