-
-
Notifications
You must be signed in to change notification settings - Fork 3
Programming the ROM chips
The main program I recommend using for preparing ROM files for NES games is FamiROM, an amazing program made by FrankWDoom. I am also using a T48 programmer to load the files onto the chips. The rest of this page will require this software and hardware. This isn't the only way to program your chips, but it is the way I do it and in my opinion the easiest.
Furthermore, for this page, I will be using Spiritual Warfare as an example ROM. This is an unlicensed game, but still a perfectly acceptable example.
First, load your ROM file (.nes extension) into FamiROM. This file has both the PRG and CHR components combined together (if the game does not use CHR RAM). The information will be shown on the right.

If you did not know what kind of board you needed to make your game, you can find it there listed at the bottom where it says "boards". There may be multiple options, depending on the game you picked. In this example, the board is "Color Dreams" which the Discrete Logic Mapper board can support.
You will also note that on the left under "target EPROM size", you will see the PRG and (if the board uses CHR ROM instead of RAM) CHR EPROM names pre-selected. These selections are the UV EPROM examples with the minimum required space for the game you want. As long as your chips are this size or larger, you can use them - furthermore, these menu options do not mean you need to use UV EPROMs as listed, they are simply analogs for the sizes of the chips you need.
Personally, I use 39SF040 NOR Flash chips for all my NES needs - this is analogous to the 27C040 in the drop-down menus. The reason is the 39SF040 chips are large enough for nearly all NES games, for both PRG and CHR ROM sizes.
Choose the size of the PRG and CHR (if you need it) on the drop-down menus that correspond to the ROM chips you are using. As I said earlier, the 39SF040 that I use for everything corresponds to 27C040. So, my screen will look like this:
Then, click "Split" and check the folder your original ROM file was loaded. You should now have separate PRG and CHR .BIN files, unless your board requires CHR RAM in which case you will have only the PRG file. You will also note that the sizes of these files match the size of the ROM chip you are using (in KB). The file name will also indicate the ROM chip and a multiplier that equals the total .BIN size divided by the ROM component size. Instead of leaving the unused portion of the ROM chips empty if you choose a ROM chip with more space than is required, FamiROM duplicates the ROM and appends it to the end to fill up the entire ROM space with data. The reason for this is, in a very reductive sense, is to make it easier to install in circuit boards by functionally "disabling" upper address pins you don't need.
In my example, the PRG and CHR sizes were 128KB each. To fit into the 39SF040, a 512KB chip, each component had to be duplicated 4x to fill up the entire contents of the chip, hence the "x4" in the file names.
Now, using the T48, you can very easily just put the chips in the programmer, load up the file, select your chosen ROM chip from the "Select IC" menu, and program your PRG and CHR chips. If you have both PRG and CHR, be sure to label or otherwise make note of which is which.
