lidnariq wrote:
Sorry, my mistake for leaving too much implicit.
The NES has two entirely disjoint memory spaces: the CPU's and PPU's. The iNES dump format (.nes) stores the PRG ROM as a multiple of 16 KiB. When I looked at the actual data Neil provided, the first 16 KiB and final 10 KiB were almost all padding. So there's only 6 KiB of actual program code and data the CPU sees. This could have its padding removed by taking the 8172 bytes starting at byte 16400, and then appending the 16 bytes starting at byte 32768, for a total of 8KiB to be burned in an 28C64.
OK very clear.
lidnariq wrote:
The NES can have either RAM or ROM connected to its video generator. Most early games used ROM, because it is simpler. CajoNES uses ROM, and if you look at it, it's 4 KiB of data, followed by 4 KiB of padding. (Additionally, those 4 KiB of data contain 2 KiB of padding inside it, but not in a way that is easy to remove). Then again, it's not exactly easy to find 27C32s or 27C16s any more, so it's not like the CHR optimization is all that worthwhile.
I know I read it somewhere, but can't recall; what is the max of the PPU's memory map, I.E. 8K addressable without bank-switching?
lidnariq wrote:
For games that use CHR RAM, the program will need to upload data to it before it can display anything.
Using MMC1 is orthogonal to the question of RAM or ROM—almost no "mapper chips" require one or the other.
OK, so CHR ram is really a savings to commercial producers, only one mask PROM onto a generic board
lidnariq wrote:
Go ahead and use the two 27C256s. You might consider using an SJROM or SKROM donor instead. Since you don't want to modify the program yet, you can remove the CHRRAM and replace it with ROM.
Since the program is MMC1 compatible, you don't need to remove the MMC1. The MMC1 already provides the logic to enable save RAM at the right time. (That said, since you're using UVEPROMs, do you have an eraser in case something goes wrong?)
After taking a closer look at the SJ/SKROM boards; thanks for the pointer. OK I see, the boards support larger CHR roms. They all have the same MMC, so it's the assignment of the available output bits on the MMC that dictate the usable rom sizes on the different boards. And of course how the code uses them. Cool.
As to my tool chain, yea I'm set. The UV box has been in a drawer mostly since I switched to flash PICs back around 2000. I replaced my old burner with a Williem 5c a couple years ago when I got more active with Atari 2600 stuff ( but then ended up getting a Harmony cart), the old commercial software wasn't supported past Win98.
Thanks so much for your advice, idnariq. Really only just started digging into the NES, and all the help here is speeding up the process!
Yogi