rainwarrior wrote:
Hmm, I had always presumed that this project was basically the exact same ROM just with different headers and the banks duplicated different numbers of times, i.e. all banks would be more or less the same content but with just a bank number changed.
Another difference is that the
last bank has an additional flag set.
rainwarrior wrote:
Like I thought it was just "put this ROM on a cartridge and it will tell you what board it's on". I guess it's not that, but that's what I had assumed. Sorry.
It is that. It's just that I don't want tests to incorrectly pass or crash when an unsupported mapper is used. Examples of unsupported mappers whose behaviors I had to take into account include
mapper 31, which is why the
WB code is repeated at 4K intervals. (See "Place wrong bank code into all 4K banks".) What makes you think it isn't?
rainwarrior wrote:
My error was further misled by this description:
Code:
WB Wrong bank at startup. INL's versions of the ASIC mappers
guarantee that the LAST 4 KiB of the cart is swapped into
$F000-$FFFF at power on. Discrete may not be so lucky.
I agree that this description is misleading. It has been fixed in the description that I will upload to GitHub after having finished making the promised changes and having answered follow-up posts.
rainwarrior wrote:
From what you're saying it sounds like the problem isn't "didn't start up in last bank", but rather "could not switch to last bank, thus not able to start up"?
Yes, as I have clarified in the description that I will upload to GitHub after having finished making the promised changes and having answered follow-up posts.
rainwarrior wrote:
What I was really looking for was a quick way to get a ROM that would test mapper 0 for PRG-RAM and CHR-RAM. My first attempt to just change the header of the M0 test failed at this (crash).
I took
M0_P32K_C8K_V.nes and changed its header as follows, and it worked.
Code:
4E 45 53 1A 02 00 01 08 00 00 00 07 00 00 00 00
The purpose of the
07 is described in
section "Byte 11 (Video RAM Size)" of article "NES 2.0". What emulator are you using, and what header did you use?
rainwarrior wrote:
What exactly is in the other 3 banks anyway?
Whatever
make_roms.py puts there.
Less flippantly: I don't remember all the decisions that I made four years ago when I originally made this. To answer your question rigorously, I would have to look in
make_roms.py. How urgently are you expecting the answer?
rainwarrior wrote:
Why wouldn't they all be usable as "startup" banks?
I don't duplicate the entire test into all 4K banks because I don't want to have to fit absolutely everything into 4K in case there's a desire to support mapper 31 in the future.