Don't you hate vertical games that don't follow the standard monitor orientation? I like playing Crazy Kong,
but my board has been collecting dust for quite some time now because I'm too lazy to install a switch to swap
the yoke wires or flip the monitor in my generic cab everytime I want to play. I finally decided it was time to
sit down and figure out a software hack to flip the screen the proper way. And while I was in there digging
through the code, I figured I might as well write a high score save for it.
There are several versions of Crazy Kong out there (many bootlegs). This hack is written for
"Crazy Kong - Part II" (known as ckong.zip in MAME) and tested on an original Falcon board. My guess is that one
could convert any Crazy Kong board to run this version, so I'm including the entire set of ROMs in the ZIP file
below so that if someone wants to burn all the EPROMs and do the conversion they can try that. If you're already
running this version then you'll only need to change four ROMs, and replace one RAM chip with a non-volatile RAM
if you'd like to have your high scores saved. The RAM chip you need to replace is unlikely to be socketed,
so you'll have to remove the RAM and install a socket for the new NVRAM. If you don't have the soldering skills
to do this, please find someone who does to do it for you. An experienced tech can do the job in under 10 minutes.
You perform these modifications AT YOUR OWN RISK!!!
If the original code had been well written then the screen flip hack would have been trivial, but unfortunately
it was not. The logic for screen orientation was unnecessarily convoluted, and one routine (the one that draws
the jail bars in attract mode) was even hard-coded to draw in one orientation only. I started to fix the hack so
that it worked for cocktail mode as well, but then my brain started to hurt.... Actually, I just got lazy, and I
didn't see the point in keeping cocktail mode anyway since the flip is really only needed for uprights. So I disabled
support for cocktail and stole the dipswitch it used for my high score table reset. If you leave dipswitch 8 OFF
(all the dips are set to OFF for default settings) then the high score table is reset on boot. You will need to use
this setting if you're not going to install a NVRAM and just want the flip screen hack. To retain high scores, keep
dipswitch 8 in the ON position.
For the high score save, the code had to be modified so that the routine that initializes RAM leaves the
high score table alone. And I replaced the routine that fills the table with defaults with a conditional routine.
You can reset the high score table by turning OFF dipswitch 8.
1) The 2K static RAM at location 5C (chip with the yellow label in the picture) needs to be replaced with a non-volatile memory. If that chip happens to be socketed then this step will be a breeze; just pop out the RAM and plug in the NVRAM. If not, then you'll have to remove the chip and install a socket. You could use a battery-backed SRAM like the Dallas DS1220 or the ST M48Z02 (or M48Z12). Or you could use a newer technology that doesn't rely on batteries, like the Simtek 25C48 or the ZMD U63716 [NOTE: these two chips have been out of production for several years, and are no longer available], which have a 100+ year data retention.
Once you've got the new chip installed I suggest you test the board at this point to verify that your
socket installation is good. The game should play normal. This step will also put good data in the high score
table (otherwise you'll have to use dipswitch 8 to reset the table with valid data).
2) The new ROMs (2732 EPROMs) install at locations 5D,
5F, 5L, and
5N (chips with the blue labels in the picture).
For the do-it-yourself'er. If you've got your own programmer you can just download the ROM images
and burn them to 2732 EPROMs (or, if you're a clever monkey, you could do a single EPROM hack and put all the program
code into a 27256).