Walkthrough - C ROMs
"Sweet dreams are made of this." - "Sweet Dreams," Eurhythmics, covered by Marilyn Manson
At this point, I think a solid, real-life example can help to further explain and pull together the concepts of ROM dumping. So let's dive right into how I dumped the KOF2K2 bootleg. I will start off with the C ROMs since they are a great example of a smooth, though not simple, dump. The P ROMs were damaged, and they will be dealt with in the next section of the walkthrough.
First, some background info will probably be helpful. The C ROMs (like all the other ROMs on this bootleg) are NOT normal DIP ROMs. Instead, they are surface mount chips that have been made to act like the normal DIP ROMs. Two surface mount chips = 1 normal DIP ROM. These surface mounts are all mounted on two separate daughter board, 8 surface mounts per board (4 front, 4 back). One daughter board contains all the data for the odd numbered C roms. The other daughter board contains all the data for the even numbered C roms. These two daughter boards are then mounted on the board normally used for the C, M1, and S1 roms. M1 and S1 were mounted separately on the board. Here is a shot of the front of the daughter board:
Here is a shot of the back of the daughter board:
Since I already knew that this daughter board functioned just like the normal C ROMs, all I had to do was pretend that I was working with ordinatry C ROMs with the minor disadvantage of having to work with all the odd ROMs permanently tied to each other and all the even ROMs permanently tied to each other.
My first step was to desolder the daughterboards. This went quite smoothly, though I did notice that the pins on the sockets were movable (they could be slid up and down) since they were only held in place by solder. My next task was to disable all the ROMs except for the one that I was trying to read.
The daughter boards are mounted with the socket of the daughterboard mounted where normally the largest numbered C ROM of the set (C7 or C8) would go on the board.
The only other connections to the main C ROMs board (beside the daughterboard socket) were pins on the daughterboard that got stuck into the socket where normally, the pin 13's of the normal DIP ROMs would go. Pin 13 is significant since pin 13 = /OE on the normal DIP ROMs and is how the MVS selects between the C ROMs since all odd C ROMs share all their other lines (same goes for the even C ROMs, everything is shared except for the /OE line). In the next picture, you can see these pins circled in red.
The way I determined which pin corresponded with which ROM was by looking at where the daughterboards were placed. First, let's look at a normal C ROM board:
The C8 ROM is on the leftmost edge of the board; then the ROM to the right of that is the C6; to the right of C6 is C4; and finally, the rightmost even C ROM is C2. A similar pattern is followed for the odd C ROMs (going from left to right, C7-C5-C3-C1). Since the daughterboard socket is mounted on the leftmost edge of the board, the pin 13 of the socket itself must be the /OE pin for C8 of the bootleg. The pin to the right of that would be for C6, the next one would be for C4, and the rightmost banking pin would be for C2. So now, I have knew exactly which pins controlled which ROMs.
Since I had noticed earlier that the pins on the daughter board socket were movable, I decided to use that to my advantage by purposely pushing UP pin 11 and pin 13. After that, it was a simple matter of attaching VCC to all the banking pins except for the one that I wanted to read, and then reading that ROM the same way I would read the normal C DIP ROM.
This dump was certainly more troublesome than normal, but it was definitely as smooth and sweet a dump as I could ever dream of. The P ROMs on the other hand were a hellish nightmare. So, let's go and tackle those next.
Quick recap:
C ROM Daughter Board Organization
The ROM Select Pins
Identifying which select pin went with which ROM
Next Section:
Walkthrough Part 2 - P ROMs
Go back to the table of contents