substituting ROM

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
substituting ROM
by on (#62391)
I've heard here and there that it can be done, although I don't have enough understanding of the behaviour of ROMs to rig it up myself.
i.e. for example using a 27C512 in a socket on an UNROM board that should take a 1 Mbit ROM,
or
using a 128 Kbit rom in a 64kbit CHR socket in an NROM, etc.
availability is the issue, and it would help to know how to use alternate ROMS when in a pinch.
i'm sure it involves doing something with the address holes / pins but I'm not sure what.

by on (#62392)
The first thing you do is make sure that the unused address pins are connected to ground. This way, the rest of the circuit can only see the "beginning" of the ROM where your data is stored. For example, a 16Kx8-bit EPROM in a circuit expecting 8Kx8-bit ROM would have A13 connected to ground. You may have to make other wiring changes to get the chip enables correct.

by on (#62405)
Besides connecting the upper address lines to ground you should mirror your data to fill up the entire ROM chip. That way should the upper address lines be changed it will still show up the same data.

by on (#62407)
and what about using a 27C512 in an 1024Kb UNROM? what should be done with the hole for the highest address pin?

by on (#62553)
Roni wrote:
and what about using a 27C512 in an 1024Kb UNROM? what should be done with the hole for the highest address pin?


Do you mean a 27C010/27C020 (1024/2048 Kb)? Since the 27C512 is only 512Kbits.

I'm a cheap guy that uses EPROMs and I've found the best way for me is to go with the 27C512s (28 pins) for any ROMs 64K x 8 (512Kb) or under, and 27C020's (32 pins) for 128K-256K x 8 (1024Kb-2048Kb). Those have been the easiest and cheapest EPROMs for me to find so far.

For the EPROMs that have more capacity than the game you store on them, for example:

You have a 16K x 8 game. You want to burn it on a 27C512 (64k x 8 ). Fill the entire 64k of the chip by filling the data pattern from
0000H to FFFFH with 4 copies of the game.

Then it really doesn't matter what the higher address pins of the 27C512 are, because all 4 16K slots are filled with the same thing. You can tie them to ground, or VCC, and I haven't ran into any problems from leaving A17, VPP, and ~PGM completely unconnected on my 27C020's. I could understand why you might not want to leave A17 floating (though haven't experienced anything from it yet), but on the models I've been using the datasheet just says that VPP and ~PGM don't matter during a read, so I didn't connect them.

Also, there's a good referenceherefor what you're doing.