It is currently Fri Oct 20, 2017 8:08 pm

All times are UTC - 7 hours

Post new topic Reply to topic  [ 2 posts ] 
Author Message
PostPosted: Mon Apr 18, 2005 12:14 am 

Joined: Sat Mar 19, 2005 11:18 am
Posts: 69
The existing PPU documentation is excellent, but there are a few minor aspects that I thought were somewhat unclear.

(1) If the primary object has an X-coordinate in the range (0...7) and the OBJ clip or background clip features (or both) are enabled, will the primary object collision still take place?

(2) The Nesdev Wiki says that "Addresses $3F04/$3F08/$3F0C can contain unique data, though these values are not used by the PPU when rendering". Are these ever used in any fashion, or are writes to them simply ignored completely? My understanding is that, when the background is disabled, the PPU will render the palette entry last accessed by $2006. Apparently, Disch needed to do this to get some Camerica games to run. So, if you ran the following code -

lda $2002 ;clear flipflop
lda #$04
sta $2006
lda #$3f
sta $2006 ;put $3f04 on the PPU bus
lda #$00
sta $2001 ;disable screen

- would this cause the normally-unused palette entry in $3F04 to be rendered as the background color during the blanked lines? Or would the PPU simply display the transparency ($3F00) color instead?

(3) Brad Taylor's PPU documentation indicates that eight pairs of garbage nametable fetches take place during HBlank when the OBJ tile data for the next scanline is being retrieved. Do we know what addresses appear on the PPU bus during these fetches? That could be significant for emulating mappers like MMC3.

(4) Speaking of which, Kevin Horton's documentation on MMC3 conflicts with Brad Taylor's comments. Kevin's documentation says that the IRQ counter is triggered on a rising edge of A12; Brad's documentation says on every 42nd rising edge of A13. Which is more accurate?

Thanks for any assistance in these matters.

 Post subject:
PostPosted: Mon Apr 18, 2005 6:46 am 
User avatar

Joined: Sun Sep 19, 2004 10:59 pm
Posts: 1389
1. No - if sprite 0 is at the left edge of the screen and 'sprite clipping' renders it invisible, it will NOT collide with the background.

2. Yes, it will display the color stored in $3F04, though you need to turn rendering off before doing this (otherwise the address will immediately change). Also, to set the VRAM address to $3F04 you would write #$3F to $2006 first, then #$04, not the other way around (the PPU takes VRAM addresses in BIG endian).

3. The nametable accesses made during this period do not have predictable addresses, other than the fact that they are in $2000-$2FFF, and this is all the MMC3 requires.

4. Kevin Horton's documentation - PPU A13 isn't even connected to the MMC3, so Brad Taylor's comment is nothing more than speculation. Kevin Horton's documentation, on the other hand, was actually verified with a real MMC3.

Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC - 7 hours

Who is online

Users browsing this forum: No registered users and 4 guests

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group