What are the Unanswered Questions?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
What are the Unanswered Questions?
by on (#1168)
So, what are the current "unknowns" in terms of how the base NES hardware works with respect to emulation? (base hardware being non-mapper related)

The one I know if is how sprite memory is accessed during rendering.

My goal is to (if possible) write some test ROMS that test these unknowns and hopefully get a better understanding of how they work (and thus, a more accurate emulator) :D I've asked enough questions of people over the years, I'd like to try to give back to the Nesdev community in some way, and I thought maybe this would be it.


Thanks,


Josh

by on (#1169)
exact times of scroll updates would be great

by on (#1171)
I would love to see some hard evidence of when the HT counter is latched. The popular theory is that it happens at PPU clock cycle 256, but it makes more sense for it to happen at cycle 320 (at least to me). The evidence so far is "It doesn't work right with ROM X if I don't do it this way" which is great, but it'd be better if we could design a test to confirm it. See the discussion of this topic on the old boards here:
http://nesdev.com/cgi-bin/wwwthreads/showpost.pl?Board=NESemdev&Number=1913&page=&view=&mode=flat&sb=
I'm more than willing to help design such a test, though I don't have hardware to test it with which makes it real tough. Where is squeedo? :D

by on (#1173)
BT's "PPU Technical Operation" mentions something about garbage nametable fetches when the sprite patterns are being read, which implied that the HT counter was updated on cycle 256.

by on (#1191)
I'm missing the times of new NES findings popping up... and getting ready for emulation! Ah... good times... ;)

by on (#1193)
I suggest we try every known homebrew ROM on hardware and on an emulator and document what goes wrong on either side. Also tell which commercial ROMs don't work on the newer, more accurate emulators, where the difference isn't one of mapper support. Then we'll know where to look for differences, what to disassemble, etc.