Konami RC-code Locations 
Saturday, October 15, 2016, 13:46

Introduction


A long time ago someone asked me if I knew how Konami embedded the RC-codes their games. At the time I noticed 2 methods which are also used by many of the combination detection code. The Konami Game Master also uses one of these methods to detect cartridges that were released after the Konami Game Master. Many of the smaller games are detected using a different mehod.

Konami was a big fan of the BCD (Binary Coded Decimal) notation. In this notation the letters A-F are never used. This choice was made to speed up the displaying of regularly updated values, such as scores.

This article explains the methods as seen from the different ROM sizes.

16K ROM modules


The last 2 bytes of the ROM (addresses 7FFEh and 7FFFh) contain the RC-code in BCD, followed by 170 (0AAh). Testing this from other Konami titles, usually the last 6 bytes (7FFAh) are tested to increase the improbability of false positives.

The Konami Game Master detects these cartridges by adding the values of the 128 bytes starting from 5000h, which will be matched with a table directing to the actual Game Master data.

32K ROM modules


The last 2 bytes of the ROM (addresses 0BFFEh and 0BFFFh) contain the RC-code in BCS, followed by 170 (0AAh), just like in the 16K ROM modules. Some Konami titles use this method to test the last 6 bytes (0BFFAh) to increase the improbability of false positives. Other Konami titles use the second method.

The second method is split up into 2 formats for the Konami Game Master.

With the absolute format. From address 4010h the format is as follows:

- The ASCII value of the letter "A" (41h)
- The ASCII value of the letter "B" (42h)
- The value 7 (07h)
- The last 2 digits of the RC-code in BCD

Following this are 17 bytes of the Game Master data. These include addresses for the number of lives, stage number, the high score and the players scores. The exact explanation of this table goes beyond the scope of this article.

With the relative format. From address 4010h the format is as follows:

- The ASCII value of the letter "C" (43h)
- The ASCII value of the letter "D" (44h)
- The value 7 (07h)
- The last 2 digits of the RC-code in BCD

Following is a byte for option flags followed by addresses and maximum value you can input for that option. The exact explanation of this table goes beyond the scope of this article.

MegaROM modules


There are 3 games known which use the 32K ROM module method with the relative format: Nemesis or Gradius, Penguin Adventure and Ganbare Goemon. Also, some Konami titles had extra zeroes in that sequence (for coders: DW in stead of DB): Vampire Killer and Pennant Race. Finally some titles use the relative format with the letters "E" and "F" in stead of "C" and "D": Shalom and Pennant Race 2. All other titles only use the relative format as described in the 32K ROM modules section.

The Konami Game Master 2 has its own detection. Check on address 4010h for "Y" (59h) and "Z" (5Ah). This allows Konami titles to use the built-in SRAM disk.

add comment (2591 views)   |  permalink

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Next> Last>>