Selecting the Proper ROM
"You were from a perfect world / A world that threw me away today" - "Coma White," Marilyn Manson
In a perfect world, selecting the proper ROM would be the easiest part of the dumping process. All you would have to do would be read the model number printed on the ROM itself and then select that in your ROM reader. Unfortunately, in real life, it's a bit more complicated. So here are some guidelines to help you pick the correct ROM.
1. See if you can find a manufacturer and model number on the ROM. If you see one, then check and see if your reader supports that device. If it does, then you're done. Just plug it in and read it.
2. If you have the model number but you can't find the device in the supported list, then that means you will have to go looking for an equivalent ROM. Count how many legs the ROM has. Look through your list of supported devices and see if you can find something with a similar number of legs. Now go onto a search engine and look up the info about both ROMs. What you are looking for here are data sheets. Data sheets are VERY useful since they allow you to know which legs of a ROM are doing what. Your equivalent ROM should ideally have a 100% identical pin out as the ROM you are trying to read. Sometimes, it may not be possible to find that. If you can't find a 100% match, check and make sure that all the legs that are NOT marked NC on the target ROM match up with the legs on the equivalent. If the equivalent has additional address lines, it just means that your equivalent has a greater capacity than your target. So you can STILL use that to read the data. Just remember to strip away the extra junk after you read it to correct for the overdump. A few words of caution when trying to find equivalents: ALWAYS and I mean ALWAYS make sure that your VCC and GND connections match up. Putting VCC on the wrong pin could cause some SERIOUS damage. Also check that the voltages you set your reader to use to read at are reasonable for your target ROM. ALWAYS research thoroughly and make sure that you've gotten it right before plugging it in and reading it.
Here's an example of two roms that are equivalents:
3. If you can't find any markings on the ROM, try looking at where you took it off the board. Sometimes, there may be a model number listed right under the ROM after you desolder it. Knowing the size of the ROM helps as well in identifying it.
In this picture, the space under the M1 of the RBFF2 board is shown:
Things to know about pin outs:
1. NC = Not Connected
2. VSS = LO = GND = 0
3. VCC = HI = VDD = 1
4. OE = Output Enable
5. CE = Chip Enable
6. Logic statements: A bar over something or something followed by a / mark mean NOT. Think of 1 as TRUE and 0 as FALSE. SO, if you see CE with a line over it, then it means to enable the chip, then you want to set that pin on GND since GND = 0, and if it is a NOT, then NOT FALSE = TRUE = ENABLED.
7. Axx = Address Line xx
8. Qxx = Dxx = Data Line xx
9. Byte mode vs Word mode: Word mode uses 16 data lines (D0 to D15) to output the data. Byte mode only uses the first 8 data lines (D0 to D7). To get the rest of the data in Byte mode, you will need to somehow bank an extra line which will switch between the two halves. You can find out which line that is by checking the data sheets on that particular rom.
10. VPP = used for writing to the ROM. If you're only reading the ROM, tne you don't need to worry about this.
Leg/Pin counting:
Leg 1 is on the top left hand corner of the ROM chip. Numbering goes down the left hand side and then snakes back up the right hand side. So the highest numbered leg will end up on the top right hand corner. Most ROM have some sort of mark either next to Leg 1 or a mark to indicate which side of the ROM is the top.
Here are some examples of counting (the terms "leg" and "pin" are used interchangeably):
What I've been using for equivalents:
These may not cover ALL the roms for ALL the NeoGeo games out there. NeoGeo carts have actually changed over the years as to what ROMs they use (earlier carts may use a certain ROM for say the C ROMs data, but later carts may use a different one, etc.). The list here is simply what I've been using (worked for RBFF2, KOF2K, Metal Slug 3, bootleg of KOF2K2, etc.). You should ALWAYS check and make sure you are dealing with the correct equivalents.
P roms - ST M27C322. Use this for both P roms. This is a 4mb rom, so your P2 will be just right. For P1, you will get an overdump. So after dumping P1, only keep the 1st mb of data.
C roms - Check and see if your reader will take an MX23C6410. If it will, then read the C roms in as that since that is an 8mb equivalent. BUt if not, then use the ST M27C322. C roms are really 8mb, but unforunately, my rom reader doesn't have support for anything like that. So what I do is read it with this 4mb ST rom and manually bank the addressing to switch between the 1st half of the data and the 2nd half of the data. To manually bank, carefully bend up leg 11 (Address line 21) so that that one leg is in the air. Use some kynar wire and a wire wrapping tool to make a connection between leg 11 and and leg 12 (GND). Place it into the reader and make sure that leg 11 is NOT inside the reader socket. Save the file as cx_a.rom. Repeat this process except this time, move the wire so that leg 11 is now tied with leg 22 (VCC) instead. Save the file as cx_b.rom. Now go to your command prompt and type the following: copy /b cx_a.rom + cx_b.rom cx.rom This will copy the two halves together and you're done.
Here are some pictures of what a bent up leg 11 tied to leg 22 (VCC) looks like:
V roms - Same rom selection as the C roms. V roms really are 8mb, BUT they only use 8 data lines. This time though, you need to bend up leg 30 (A-1). This is the line that switches between the even and odd bytes of the rom. You don't have to select upper and lower halves of this rom since it is only 4mb. Set leg 30 to GND and save it as vx_lo.rom. Then set leg 30 to VCC and save it as vx_hi.rom. Now use the ROMWAK utility. Here's the command for it:
romwak /b vx_lo.rom 1.rom
romwak /b vx_hi.rom 2.rom
romwak /m 1.rom 2.rom vx.rom
That will strip away the blank bytes in the two roms and then byte merge them into their proper form.
M1 rom - Use the ST M27C405 rom. This will also create an overdump, so discard the extra garbage.
S1 ROM - Use the ST M27C1001. This should be the right size as dumped.
Here's a quick recap:
Equivalent ROMs
Common Pin Out Labels
Leg/Pin Counting
P ROMs
C ROMs
V, M1, and S1 ROMs
Next Section:
Wiring a Socket
Go back to the table of contents