It started at a UKVAC meet, when 3 of us had a challenge to take a worthless game, and make it into something that would sell.
I had a WC90 pcb, and an empty pacman cab, so decided that pacman on a wc90 was the way to go.
wc90 has 3 CPU's, 1 and 2 have 1k of shared ram, only 1 can see the background ram, and only 2 can see the sprites. It can handle more colours, but less pallette entries! - so duplicate character set to give me the correct number of pallettes, first 16 using characters 1-256, next 16 using 257-512
now take pacman code, change the start address of the sprite ram (to the shared 1k) and of the screen (to a normal block of ram), change it to read controls from a byte in ram and write sound commands to the 3rd cpu using the port setup for that. (this was all done with a hex editor)
run the pacman code, should run same as always, but no picture ('cos you have now got it writing to blocks of ram)
now add your own code to the interrupt routine. it needs to do a couple of things
a) copy the screen in ram to the real screen, changing the layout a bit as it does it (since pacman has 4 extra rows compared to wc90)
b) read the controls, re-map into pacman layout and store in the byte in memory for the real game code to read.
now running that should give you pacman background and dots dissapear as they are eaten by an imaginary pac! (and you can steer said invisible pac)
so, now write some code for the second CPU, that (on the interrupt again) reads the pacman sprite info from the shared 1k or ram, remaps it to my character set and pallette and stores it in the wc90 sprite locations.
so, run both, and we now have pacman running with ghosts you can see and pac that you can control but it is very quiet.
sound is a big problem, pacman can basically do the same as a tracker on the amiga - it has 4 pre-defined waveforms, which it can play back at different frequency and supports more than one voice. wc90 has a yamaha sound chip that can play samples, and can also play back built in waveforms at any frequency. (it can also do 3 voices)
so, using mame, get wav files of all of the pacman sound effects, convert them to the correct delta-t compression for the yamaha chip (now that is NOT easy, it's not the same as the delta-T used on PC's!! - for a clue how, the soundchip is also used in MSX computers) and via a couple of lookup tables to convert the three pacman background tunes into yamaha data versions. add a program to accept the music commands from the pac game and add that to the mix. (interupt driven again to play the tunes)
spot effects (eating dots, dying etc) are samples, and can play at the same time as the background tunes, although I had to knock them up an octave since for some unknown reason, if you reprogram the YM soundchip down to the same frequency on a wc90, it makes no noise!
so there you go, took me about a week to have background running, an extra couple of days for the sprites and about 3 months to finally get it sounding right (with some FM advice and help from the guy in the mame team who wrote the YM soundchip code for it)
end result, I sold the first pac90 on ebay for £74 (not bad for a PCB that cost me £5 in the first place) and wc90 pcb's still fetch about 5 times the price that they once did.
oh, and some little b*gger made more money than I did out of it by selling sets of eproms to 'upgrade' your wc90 pcb.
all testing was done using an updated verison of mame, and then lots of head scratching when it didn't work the same on the real PCB - multigame code done same way.
p.s. I have one working wc90 pcb in my collection, and it still runs the original wc90 code!
p.p.s the other 2 never did finish their conversions, so I declare myself the winner