How to reprogram an nes game?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
How to reprogram an nes game?
by on (#50996)
I plan on buying a eprom programmer in a few days and I'd like to know if I can reprogram a nes game just like I'd reprogram any atari 2600 game etc. Like do I just burn an nes rom on a single eprom or do I need to reprogram a few eproms?

by on (#50997)
There are two ROMs in many NES Game Paks: one to hold the program, and one to hold the font. (This is a "CHR ROM" configuration.) Other Game Paks store everything on one ROM and have a RAM chip to hold the font. (This is called "CHR RAM".) Do you know to operate a hex editor?

by on (#50998)
tepples wrote:
There are two ROMs in many NES Game Paks: one to hold the program, and one to hold the font. (This is a "CHR ROM" configuration.) Other Game Paks store everything on one ROM and have a RAM chip to hold the font. (This is called "CHR RAM".) Do you know to operate a hex editor?

I've used a hex editor for editing exe files before, so yes I do know how to operate a hex editor.

by on (#51006)
You should have no problems if you have done 2600 cartridges before...One of the major differences is the pin configuration of the program and character ROM chips (Mask ROM in this situation).

Some helpfull hints would be the Mask ROM Pinouts and the datasheet(s) for the EEPROM/Flash you are going to swap with.

Do you know what you want to convert? This may be helpfull since there are several memory switching methods, and some only work on certain boards. If you've done 2600 boards, you're probably familiar with the 1/2/4K Banking and the Expansion RAM...The NES also has MMCs and Battery Backups for RAM to boot.

by on (#51009)
AWal wrote:
You should have no problems if you have done 2600 cartridges before...One of the major differences is the pin configuration of the program and character ROM chips (Mask ROM in this situation).

Some helpfull hints would be the Mask ROM Pinouts and the datasheet(s) for the EEPROM/Flash you are going to swap with.

Do you know what you want to convert? This may be helpfull since there are several memory switching methods, and some only work on certain boards. If you've done 2600 boards, you're probably familiar with the 1/2/4K Banking and the Expansion RAM...The NES also has MMCs and Battery Backups for RAM to boot.


My mistake, I haven't actually reprogrammed a 2600 game, I just know you only need to swap one eprom as thats all there is to a 2600 game cart.

by on (#51010)
The most common format for an NES executable is iNES, which originated in the pirate community but has since come into official use. The vast majority of iNES files have two or three parts:
  1. a 16-byte header that describes a circuit board suitable for running the game, including any mapper chips,
  2. a "PRG" (program) ROM image, and
  3. an optional "CHR" (character) ROM image that contains fonts and other graphics.

The first 16 bytes make up the header. Bytes 0-3 are always 'N', 'E', 'S', $1A. If the value at offset 5 is zero, there are one PRG ROM and one CHR RAM; if it is nonzero, there are two ROMs (PRG and CHR), and the value gives the size of the CHR ROM in 8192 byte units.

by on (#51014)
So basically I need to burn 3 eproms?

by on (#51015)
You need to burn one or two, depending on the game. The header just tells you which game you'll need to buy and reprogram, as different games need different kinds of circuit boards with different support chips.

by on (#51016)
Ohh, is there any way to tell without opening the cart? Like is there a list somewhere of supported donor boards?

by on (#51018)
You might find this useful: http://bootgod.dyndns.org:7777/