Projects
This is a list of some of the projects I've worked on. I took a break from work for a year when my daughter was born and worked on projects. Most of them are not for sale at all anymore. From time to time I will mention on the front page if I have any extra's of something I want to get rid of.
Pacman hi score board, Ms Pacman hi score board, Pacman Plus hi score board - These three kits were discontinued as
the multigame was only a little more expensive.
Pacman multigame This is emulated poorly in misfit mame. You can try it, just be aware that there are several bugs due
to the bad emulation.
Atari 2600 Multicart -Enabled most of the 2600 catalog on one cart. The ram timing is really critical. Games with
ram built into the cart work on most consoles but not all. It suports pretty much all the banking schemes except the parker bros. It has a vertical scrolling menu and comes with software to alter the menu and games.
Colecovision hard drive expansion -The bootstrap loader in the bios will load a program to memory and executes it. I was intending to write amenu to select the program to load. It's still very handy to just load a cart rom onto the CF card and run it. The problem with this project is I never found a solution for the case. In the arcade world no one cares, but for consoles people want some kind of plastic case for the board. If there's interest in this project I might be willing to open source it. I don't have time to continue it now that I've gone back to working full time.
Generic Z80 hi score board = This was a board that plugs into the z80 socket. It requires no code modification. It works the same way MAME's hi scores work. It overlay's the ram with nvram, a trigger is programmed in that turns on the overlay after the ram is initially cleared. Also small code modifications like fast shoot for galaxian and turbo speed for the pac's and make trax are possible. You hold the start button and push the joystick up or down to enable or disable. Games completed: Make Trax, Bubble Booble, Wonderboy, Jr Pacman, Pacman, Mspac Bootleg, Pac Plus, Galaxian and several others. New games can be programmed into it in about 30 minutes. Unfortunately the nvram I was using was discontinued and the ones I can get have quadrupled in price making this much less cost effective.
Various Jamma cab to PCB adapters. At one time I had about 20 to choose from. Some examples: Exidy, Taito
Pacman multigame 2 -I made this to add some interesting games I had that didn't work on the original multipac, like
Homercide and the decrypted Beastie Feastie.
Q*Bert multigame -Mike Doyle did a production run of these, he may be out by now. We may consider another run at some
point.
Exidy 440 multigame -Beta was successful but I'm not planning a second run at this time.
I consider this my masterpiece. It sits on the bus between the cpu and the board and can imitate the protection of all the
different games. The CPLD on this one is very complex, it would probably have taken 100 chips to do in TTL logic what it is
doing. I also like the animated splash screen I wrote that imitates the mansion in Chiller.
DECO Cassette multigame. Replaces the cassettes which are not
available. - In beta test
Playchoice 10- an adapter to play NES/famicom carts. I need a good supply of NES edge connectors. I may do it as
famicom instead and make everyone find their own famicom/NES adapters. It includes a new bios for the PC10.
Sega System 1 multigame -I have a working prototype of this except for banking the sound roms. The menu is written
and I have all of the sega system 1 games decrypted. There's not a lot of interest in this one so it's on the back
burner.
Software Projects
Decryption/Protection work: Jumpshot, Ms Pacman, Shoot the Bull, Atlantic City Action, part of Gardia, Street Heat, Highway Chase, Drakton, Piranha, Abscam, Naughty Mouse, Super Missle Attack, RoboWrestle, 8 Ball Action. These were more an example of problem solving than expertise at decryption. What I'm good at is figuring out a way to solve the problem of getting the information out. The methods used ranged from embedding a trojan in the Jumpshot code and displaying decrypted values to the monitor to
just plain paper and pencil work. Later I automated my paper and pencil method with a program I call Bit Fiddler that can
recognize the patterns that correspond with known plaintext. A later version I wrote for Gardia would even pull the code
from other games by the same manufacturerer using it as the known plaintext. That's how I discovered they'd reused a lot of
code from My Hero in Gardia; two games that couldn't be any more different. Something else I discovered, there's one piece
of code that's in all the sega sys 1 games I checked. Eventually I developed my Z80 decryption device that is able to dump
decryption tables from any Z80, even the dreaded MC-8123. These tables lead to Nicola discovering the algorythim. This lead
to the breakthrough with the 1089 as the encryption was similar. Much later Aaron noticed the "random" keys for the 1089 that
were to large to guess were in fact generated by a much smaller number. This lead Nicola back to the MC-8123. He was able to
decrypt the remaining missing MC-8123's without me having to dump them. My original plan was to produce replacement cpu's as
the sram is battery backed. However the general consensus is people would rather run hacked roms than pay for a replacment
cpu.
Intelligent 6502 dissassembler-This decompiler follows all the entry points into a binary program, following all the
branches rather than a straight line path. There reason for this is most programs have a large number of small data area's
spread through the program rather than a code block followed by a data block. This can identify these area's and label them
as data to enable the program to be recompiled more accurately. Another feature of the dissassembly is it lists the "came
from" addresses of all the opcodes that have them, as well as the address of any code that reads a data byte. Other uses
I've found for it is identifying unreachable code in programs I have written. It's also the only way dissassemble programs
that use a seperate encryption for the opcodes and data. I've also used it to encrypt programs that I've written for
hardware that encrypts opcodes differently. I will probably post it after I've fine tuned it a little more.
RomIdent database Romident is a very old dos tool for identifying unknown video game roms. The main problem with it is the database needed an update. What I did was write a program to merge the old database with a newer one extracted from the XML output of MAME. At the time I was coding in VB6 so all the XML parsing is homegrown and occasionally needs tweaking when a new release comes out. I need to rewrite it in .NET.
Various games written in assembler for embedded hardware Several are available in the download section. They can be run in an older vesion of MAME. I'm particularly proud of the smooth scrolling aliens in alien armada. Without scrolling hardware and sprites it was difficult to accomplish. The pong demo was written for and is included in the VHDL version of pacman hardware available here.
Port of Death Derby from pac hardware to colecovision. Source is available for anyone interested in coding for the
colecovision.
Modified versions of arcade games like this version of pacman that plays like Ladybug. Some other hacks include converting ms pacman to two player simultaneous, and Homercide