Making replacement carts - newbie questions

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Making replacement carts - newbie questions
by on (#36819)
Hi all,

I suppose this topic has been discussed to death, and I apologize for creating yet another thread, but I'd like to make sure I get things right. Answers much appreciated!

So, I'd like to create some replacement carts, possibly with ROM sockets so I can eventually replace the game inside. I understand there are various conditions to be met: mapper, chr- and prg-ram, battery, mirroring and rom sizes. Can I safely assume that the games using the same board will be "compatible"? Like Krusty's Fun House which uses TLROM board would be replaceable with Toxic Crusader. Is the board revision important too?

Another question regards the memory size. If I have lets say only 256K ROMs, but the game requires 128K PRG / 64K CHR could I just fill the rest of the image with garbage and burn it?

How do I extract ROMs from the iNES images? Can I just copy data with the hex editor? Header is 16 bytes long, after which goes PRG and then CHR which means I need (for example) 128K of data starting at 0x10 for PRG, and 64K starting at 0x20010 (128 * 1024 + 16) for CHR. When I join header, prg and chr back it should work in emulator and have same checksum as original ROM, right?


That's it for now, thanks for your time!
Re: Making replacement carts - newbie questions
by on (#36822)
shiny wrote:
Another question regards the memory size. If I have lets say only 256K ROMs, but the game requires 128K PRG / 64K CHR could I just fill the rest of the image with garbage and burn it?

As long as you hold the unused upper address lines low (wire them to GND), you can just fill the first 128 KiB of the PRG chip and the first 64 KiB of the CHR chip and everything should work just peachy.

Quote:
How do I extract ROMs from the iNES images? Can I just copy data with the hex editor? Header is 16 bytes long, after which goes PRG and then CHR which means I need (for example) 128K of data starting at 0x10 for PRG, and 64K starting at 0x20010 (128 * 1024 + 16) for CHR. When I join header, prg and chr back it should work in emulator and have same checksum as original ROM, right?

Yes. You can verify that you did the right thing by opening up your PRG and CHR files in the tile editor and making sure that the PRG "looks like PRG" and the CHR "looks like CHR".
Re: Making replacement carts - newbie questions
by on (#36823)
Thanks a lot tepples! What about my board "compatibility" question? :)

tepples wrote:
As long as you hold the unused upper address lines low (wire them to GND), you can just fill the first 128 KiB of the PRG chip and the first 64 KiB of the CHR chip and everything should work just peachy.


This means when I solder the sockets that particular cat will be limited to the chosen combination of PRG/CHR sizes, unless I add some switches, right?

by on (#36824)
Another way to do it that doesn't involve grounding address lines is to duplicate the data throughout the bank. For example, you'd put four copies of a 64 KiB CHR section into a 256 KiB chip.

by on (#36827)
I get it. Sounds very practical.
Anyway, any tips regarding which rom fits which board?
Example:
Gauntlet 2: TSROM C 128k PRG / 128k CHR MMC3, horizontal mirroring
Star Wars: TSROM B 128k PRG / 128k CHR MMC3, horizontal mirroring

Are they interchangeable?