blargg's test ROMs need updating?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
blargg's test ROMs need updating?
by on (#16094)
Nestopia doesn't emulate the CMC'80s Demo correctly because of what Marty has determined to be a VBL power-up timing bug (link). As I stated in that thread, I couldn't seem to find a test by blargg that is specifically for this issue. Does blargg need to update his tests?

by on (#16187)
blargg doesn't NEED to do anything. If you want him to update his test, you should at least say please. 8)

by on (#16188)
his test pass on an nes, so they shouldnt be wrong.

perhaps blargg could mkae more test ? i am patiently waiting.

soon as i figure out how to remove the chips from a game a and burn an eprom, ill test it myself.

matt

by on (#16190)
motivation = benefit / cost

by on (#16193)
Code:
if ( apologyNeeded( ) )
{
    cout << "I'm sorry I didn't say please right from the start. I didn't";
    cout << " know this would be treated as a request.";
}
else
{
    brain_gpf( ); // :roll: Oops, smilies don't work inside a code tag
}

Well... my point is that I need some clarification on whether any of blargg's tests are specifically for "VBL power-up timing." I might have forgotten something when I was originally writing this thread. After that is answered, we can let this thread die.

by on (#16196)
I think my tests never became conclusive enough on the issue. I wanted to determine all power-up behavior but it proved to be more complex than I was willing to probe. The most recent test code I have from October 2005 is commented with this: "The VBL flag ($2002 bit 7) is set at power-up and clear at reset. It is next set about 27384 clocks later." I probably posted about this in another thread last year when I was testing it.

by on (#16197)
I know Disch's "hack" about the VBlank flag on startup to get Cobra Triangle working. However, on my side, I *had* to keep the VBlank flag raised on power up. No annoyances on homebrew/test ROMs as far as I know.

by on (#16256)
Oops, I should have realized that ! apologyNeeded( ) was pretty much a given... :wink:

I think some of you might be making this too complicated:
On the Nestopia forums, Marty wrote:
The bug was simply a coding typo. To be specific, line 653 in NstPpu.cpp:
if (phase != &Ppu::WarmUp || stage < WARM_UP_FRAMES)
should really just be:
if (phase != &Ppu::WarmUp)
(link)
I haven't read the Nestopia source code, nor am I a NES technical expert.