This is probably an extremely n00bish question, but here goes: I can't seem to figure out how to properly conceptualize PRG-RAM. Specifically, where does it go in the traditional iNES file format?
$00000000-0000000F = iNES header
$00000010-0004000F = PRG-ROM
$00040010-0008000F = CHR-ROM / end of file
I know CHR-RAM is plucked from PRG-ROM and assigned to the appropriate place in PPU-RAM. This leads me to believe that PRG-RAM is merely data taken from PRG-ROM and mapped to the CPU's SRAM block at $6000.
But that doesn't explain the multiple banks of PRG-RAM data found in certain mappers, or their seemingly hardwired nature. For example, MMC5 allows for up to eight 8kB banks of PRG-RAM data, mappable to anywhere from $6000 to $DFFF. This sounds like PRG-RAM is special data distinct from the PRG-ROM proper... which brings us back around to where the hell it goes in the iNES setup?
...unless PRG-RAM is basically additional storage space, where PRG-ROM data can be written and maintained until the power goes off. This would allow one to copy eight 8kB banks of PRG-ROM data over to eight respective banks of PRG-RAM (at startup) and swap them in during gameplay to effectively increase total CPU ROMspace to 40kB.
$00000000-0000000F = iNES header
$00000010-0004000F = PRG-ROM
$00040010-0008000F = CHR-ROM / end of file
I know CHR-RAM is plucked from PRG-ROM and assigned to the appropriate place in PPU-RAM. This leads me to believe that PRG-RAM is merely data taken from PRG-ROM and mapped to the CPU's SRAM block at $6000.
But that doesn't explain the multiple banks of PRG-RAM data found in certain mappers, or their seemingly hardwired nature. For example, MMC5 allows for up to eight 8kB banks of PRG-RAM data, mappable to anywhere from $6000 to $DFFF. This sounds like PRG-RAM is special data distinct from the PRG-ROM proper... which brings us back around to where the hell it goes in the iNES setup?
...unless PRG-RAM is basically additional storage space, where PRG-ROM data can be written and maintained until the power goes off. This would allow one to copy eight 8kB banks of PRG-ROM data over to eight respective banks of PRG-RAM (at startup) and swap them in during gameplay to effectively increase total CPU ROMspace to 40kB.