I was looking into how MAME packages its roms today, and I was struck of the appropriateness of it. They are zipped to improve space and separate dumps are kept separate. This is useful for burning and hacking ROMs. Also, it could be useful in terms of establishing a new and better ROM format than iNES. The mapper would be designated by an empty file simply entitled something like NROM.
For a game like Super Mario Bros., I envision the following:
File Name:Super Mario Bros. (U).zip
File Contents:
Super Mario Bros. (U).prg 32768 bytes
Super Mario Bros. (U).chr 8192 bytes
NROM V 0 bytes
There is a space between the board name and an H or a V, which designates the mirroring used. It is only used on those boards that use mirroring to any real effect (shown by an asterisk.)
Thus we have the boards
NROM * 32K PRG, 8K CHR-ROM
MMC1
SLROM 256K PRG, 128K CHR-ROM
SGROM 256K PRG, 8K CHR-RAM
SJROM 256K PRG, 8K CHR-RAM, 8K W-RAM
SKROM 256 PRG, 128K CHR-ROM, 8K W-RAM (battery backed)
SNROM 256K PRG, 8K CHR-RAM, 8K W-RAM (battery backed)
SOROM 256K PRG, 8K CHR-RAM, 16K W-RAM (8K battery backed)
SUROM 512K PRG, 8K CHR-RAM, 8K W-RAM (battery backed)
MMC2
PNROM 128K PRG, 128K CHR-ROM
MMC3
TLROM 512K PRG, 256K CHR-ROM
TGROM 512K PRG, 8K CHR-RAM
TKROM 512K PRG, 256K CHR-ROM, 8K W-RAM (battery backed)
TSROM 512K PRG, 256K CHR-ROM, 8K W-RAM
TLSROM 512K PRG, 128K CHR-ROM
TQROM 512K PRG, 128K CHR-ROM, 8K CHR-RAM
TVROM 512K PRG, 256K CHR-ROM, 4K V-RAM
MMC5
EKROM 512K PRG, 512K CHR-ROM, 8K W-RAM (battery backed)
ELROM 512K PRG, 512K CHR-ROM
ETROM 512K PRG, 512K CHR-ROM, 16K W-RAM (8K battery backed)
EWROM 512K PRG, 512K CHR-ROM, 32K W-RAM (battery backed)
MMC6
HKROM 512K PRG, 256K CHR-ROM
LS161
AOROM 256K PRG, 8K CHR-RAM
BNROM * 128K PRG, 8K CHR-RAM
CNROM * 32K PRG, 32K CHR-ROM
CPROM * 32K PRG, 16K CHR-RAM
GNROM * 128K PRG, 32K CHR-ROM
UOROM * 256K PRG, 8K CHR-RAM
FME-7
JSROM 512K PRG, 256K CHR-ROM
MMC1+4040
EVENT 256K PRG, 8K CHR-RAM, 8K W-RAM
MMC3+161
QJ 512K PRG, 256K CHR-ROM
MIMIC-1
80004 * 128K PRG, 64K CHR-ROM, 2K V-RAM
80030 * 128K PRG, 64K CHR-ROM
RAMBO-1
80032 128K PRG, 128K CHR-ROM
BF9093
BIC-43 * 256K PRG, 8K CHR-RAM
BF9096
BIC-48 * 256K PRG, 8K CHR-RAM
BF9097
BIC-62 128K PRG, 8K CHR-RAM
LS377
BC6 * 128K PRG, 128K CHR ROM
50282 * 128K PRG, 128K CHR ROM
LS138+LS175
NINA-06 * 64K PRG, 64K CHR-ROM
Impossible Mission II
NINA-001 * 64K PRG, 64K CHR-ROM, 8K W-RAM
Maxi-15
D-1012 1MB PRG, 1MB CHR-ROM
Caltron 6-in-1
?
Cheetah Men II + Action 52
?
Super Mario Bros./Tetris/Nintendo World Cup
?
After Burner
80042 ?
The benefits of this system are many. First, we will have more accurate emulation by ridding ourselves of the hated iNES mapper. Second, we can concentrate on emulating unique board hardware rather than emulating every single board variation, for many games come on more than one. Third, with the possibility of new CopyNESs, we can redump many boards that may have been hacked to use another mapper. Fourth, PRG and CHR are separated foreasy hacking and dumping. By peeking into the archive we can discover the size of the ROMs we will need. Fifth, we can keep game saves separate from our ROMs. Sixth, the system is flexible enough to add Famicom mappers. Seventh, the system will help people identify donor boards. Eighth, the system will eliminate the need for headers. The only possible way the ROM could go wrong is if the mirroring is set wrong. Ninth, these boards designate the maximum ROM sizes that the hardware can handle, tying them to reality.
For a game like Super Mario Bros., I envision the following:
File Name:Super Mario Bros. (U).zip
File Contents:
Super Mario Bros. (U).prg 32768 bytes
Super Mario Bros. (U).chr 8192 bytes
NROM V 0 bytes
There is a space between the board name and an H or a V, which designates the mirroring used. It is only used on those boards that use mirroring to any real effect (shown by an asterisk.)
Thus we have the boards
NROM * 32K PRG, 8K CHR-ROM
MMC1
SLROM 256K PRG, 128K CHR-ROM
SGROM 256K PRG, 8K CHR-RAM
SJROM 256K PRG, 8K CHR-RAM, 8K W-RAM
SKROM 256 PRG, 128K CHR-ROM, 8K W-RAM (battery backed)
SNROM 256K PRG, 8K CHR-RAM, 8K W-RAM (battery backed)
SOROM 256K PRG, 8K CHR-RAM, 16K W-RAM (8K battery backed)
SUROM 512K PRG, 8K CHR-RAM, 8K W-RAM (battery backed)
MMC2
PNROM 128K PRG, 128K CHR-ROM
MMC3
TLROM 512K PRG, 256K CHR-ROM
TGROM 512K PRG, 8K CHR-RAM
TKROM 512K PRG, 256K CHR-ROM, 8K W-RAM (battery backed)
TSROM 512K PRG, 256K CHR-ROM, 8K W-RAM
TLSROM 512K PRG, 128K CHR-ROM
TQROM 512K PRG, 128K CHR-ROM, 8K CHR-RAM
TVROM 512K PRG, 256K CHR-ROM, 4K V-RAM
MMC5
EKROM 512K PRG, 512K CHR-ROM, 8K W-RAM (battery backed)
ELROM 512K PRG, 512K CHR-ROM
ETROM 512K PRG, 512K CHR-ROM, 16K W-RAM (8K battery backed)
EWROM 512K PRG, 512K CHR-ROM, 32K W-RAM (battery backed)
MMC6
HKROM 512K PRG, 256K CHR-ROM
LS161
AOROM 256K PRG, 8K CHR-RAM
BNROM * 128K PRG, 8K CHR-RAM
CNROM * 32K PRG, 32K CHR-ROM
CPROM * 32K PRG, 16K CHR-RAM
GNROM * 128K PRG, 32K CHR-ROM
UOROM * 256K PRG, 8K CHR-RAM
FME-7
JSROM 512K PRG, 256K CHR-ROM
MMC1+4040
EVENT 256K PRG, 8K CHR-RAM, 8K W-RAM
MMC3+161
QJ 512K PRG, 256K CHR-ROM
MIMIC-1
80004 * 128K PRG, 64K CHR-ROM, 2K V-RAM
80030 * 128K PRG, 64K CHR-ROM
RAMBO-1
80032 128K PRG, 128K CHR-ROM
BF9093
BIC-43 * 256K PRG, 8K CHR-RAM
BF9096
BIC-48 * 256K PRG, 8K CHR-RAM
BF9097
BIC-62 128K PRG, 8K CHR-RAM
LS377
BC6 * 128K PRG, 128K CHR ROM
50282 * 128K PRG, 128K CHR ROM
LS138+LS175
NINA-06 * 64K PRG, 64K CHR-ROM
Impossible Mission II
NINA-001 * 64K PRG, 64K CHR-ROM, 8K W-RAM
Maxi-15
D-1012 1MB PRG, 1MB CHR-ROM
Caltron 6-in-1
?
Cheetah Men II + Action 52
?
Super Mario Bros./Tetris/Nintendo World Cup
?
After Burner
80042 ?
The benefits of this system are many. First, we will have more accurate emulation by ridding ourselves of the hated iNES mapper. Second, we can concentrate on emulating unique board hardware rather than emulating every single board variation, for many games come on more than one. Third, with the possibility of new CopyNESs, we can redump many boards that may have been hacked to use another mapper. Fourth, PRG and CHR are separated foreasy hacking and dumping. By peeking into the archive we can discover the size of the ROMs we will need. Fifth, we can keep game saves separate from our ROMs. Sixth, the system is flexible enough to add Famicom mappers. Seventh, the system will help people identify donor boards. Eighth, the system will eliminate the need for headers. The only possible way the ROM could go wrong is if the mirroring is set wrong. Ninth, these boards designate the maximum ROM sizes that the hardware can handle, tying them to reality.