Here's an IPS patch for that simple mod I was describing. You'll want to patch the KI2 conversion Any IDE ROM. This should run KI2 on a KI1 PCB w/o the conversion board. Of course it should make building a multi KI/KI2 much easier as well.
I tested it and it seems to work, though I'll admit that I pretty much suck at the game, plus my JAMMA testbench doesn't have a full set of KI controls, so it's not very easy to play. So, if anyone tries it out and does a complete playthrough... please report back. I see one additional piece of code that looks similar to the protection code, but putting a breakpoint in MAME, I never see it execute. Maybe it's one last booby trap that only happens after a certain point, or maybe it isn't this at all. I left it alone, as I don't like changing code unless I know what it does.
Also, I updated the MAME source in my post above to make it more accurate (when the CPLD is read, the upper bits are set according to the last write - though the software just masks them off anyway, so it's functionally the same).
I'm sure the next question will be about running KI on a dedicated KI2 PCB (or dedicated KI2 ROMs on a KI PCB). This becomes trickier, because the CPLD on the motherboard (U96) changes some address mappings. So, you'd need to go through the ROM and manually swap all of them. From the MAME source:
Code:
read: $80 on ki2 = $90 on ki
read: $88 on ki2 = $a0 on ki
write: $80 on ki2 = $90 on ki
write: $90 on ki2 = $88 on ki
write: $98 on ki2 = $80 on ki
write: $a0 on ki2 = $98 on ki
These are memory mapped to offset $10000000 (i.e. "read: $80" is a read of $10000080). You could try to exercise all the code, log all accesses, then swap them as necessary. But as I mentioned before, the code is decompressed from ROM into RAM, so you'd either need to decompress, patch, recompress... or manually patch all locations after decompression. Probably not difficult, but tedious.
DogP