NEStress

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
NEStress
by on (#4435)
What is meant by:

PPU First Read Correct
Mixed adr/Date Write
Use 2002/2005 to set Address
Palette write/read

The text document that comes with NEStress does not explain them at all/clearly.

Be as detailed as you can please. Thanks.

by on (#4439)
You should read first "2C02" reference, and loopy doc too (altought is some cripting).

what i advice you:

Read:

- NesTech.txt complety (altought is old and not actulized) to build a good base.
- NinTech wich is newer.
- 20C2 reference.

If you understand what it says there you will understand what you were asking.
It is not so simple to explain those things if you dont have a previous knowladge on ppu addressing and those things.

Regards.
Reply
by on (#4440)
Ok thanks, ill try that. But in the meantime does anybody else have any information?

by on (#4443)
I found some of NEStress's descriptions a little hard to figure out, so I examined the asm source for some of the tests.

A little meta-explanation... When describing something to someone, there are two main contexts you can use: yours or theirs. Using your context involves describing your model (terminology) and then using it. Using their context involves first examining their question and figuring out their current mental model, then describing things within that model.

Using the other person's model is more time-consuming, but it is much more effective because you are in the position of understanding the material, so can easily alter your explanation of it to fit other people's models. Of course sometimes a person's model needs repair before anything new can be explained.

Summed up, a person's question is the perfect context to answer it concisely and in a way that is understood easily, though sometimes only a long answer will do.

by on (#4453)
??? blargg???

I asked you a question about NEStress and instead you have posted nothing but a complete bunch of garbage!!!

Please lets stick the matter in hand. Please could someone explain to me what it meant by:

1. PPU First Read Correct;

This tests the PPU read "pipe" to see if the first read is just random or the actual value in the "pipe".


Does pipe refer to whatever is stored at (CPU Memory) $2007?


2. Mixed Address/Data Write;

This tests that the PPU address isn't changed before both bytes are written to the address register.


I appear to emulate this but I still get that error message.


3. Use $2002/$2005 to set Address;

No explanation given.


How is it possible to use $2002/$2005 to set the PPU's 16bit address?


4. Palette Write/Read;

No explanation given.


What does this refer to? NO emulator I know seems to support it.


I have read the documents that were recommended to me but they haven't solved my problems. Also, does any of the above require precise timing?

by on (#4455)
Another Guest... wrote:
Please could someone explain to me what it meant by:

1. PPU First Read Correct;

This tests the PPU read "pipe" to see if the first read is just random or the actual value in the "pipe".


Does pipe refer to whatever is stored at (CPU Memory) $2007?

Pretty much. It refers to whatever the PPU last copied to $2007. Remember that the PPU writes to $2007 after you read it, unless you're reading palette memory. There may be ways for the "pipe" to be filled other than through a $2007 read.

Quote:
4. Palette Write/Read;

No explanation given.


What does this refer to? NO emulator I know seems to support it.

You can read and write the palette (PPU$3F00-$3F1F, mirrored up to $3FFF) the same way you read and write the rest of VRAM, and it doesn't have the same 1-byte delay that reading the rest of PPU memory has. Have you tried it in Nintendulator?

by on (#4458)
Quote:
Remember that the PPU writes to $2007 after you read it, unless you're reading palette memory.


I recently tested this on my NES and found that reading from the pallete area still fills the pipe in the usual fashion (reading from VRAM). So reading from $2007 when the current address is $3f00 gives back palette color 0 and also fills the pipe with what's in VRAM at $3f00.

by on (#4461)
blargg wrote:
Quote:
Remember that the PPU writes to $2007 after you read it, unless you're reading palette memory.


I recently tested this on my NES and found that reading from the pallete area still fills the pipe in the usual fashion (reading from VRAM). So reading from $2007 when the current address is $3f00 gives back palette color 0 and also fills the pipe with what's in VRAM at $3f00.


Correct - this is consistent with results from testing performed by Kevin Horton. This is also a reasonably effective way to detect older emulators :).