Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ff3:ff3us:doc:snes:register [2019/08/08 02:27] madsiur [CGRAM Data Read] |
ff3:ff3us:doc:snes:register [2019/08/10 03:42] (current) madsiur [PPU1 Status and Version Number] |
||
---|---|---|---|
Line 69: | Line 69: | ||
|Horizontal Counter Latch | [[register# | |Horizontal Counter Latch | [[register# | ||
|Vertical Counter Latch | [[register# | |Vertical Counter Latch | [[register# | ||
- | |PPU Status | + | |PPU1 Status |
- | |PPU Status | + | |PPU2 Status |
|APU IO Registers | |APU IO Registers | ||
|APU IO Registers | |APU IO Registers | ||
Line 825: | Line 825: | ||
These values are latched by reading $2137 when bit 7 of $4201 is set, or by clearing-and-setting bit 7 of $4201 either by writing $4201 or by pin 6 of Controller Port 2 (the latch occurs on the 1->0 transition). Note that the value read is only 9 bits: bits 1-7 of the high byte are PPU2 Open Bus. Each register keeps seperate track of whether to return the low or high byte. The high/low selector is reset to ' | These values are latched by reading $2137 when bit 7 of $4201 is set, or by clearing-and-setting bit 7 of $4201 either by writing $4201 or by pin 6 of Controller Port 2 (the latch occurs on the 1->0 transition). Note that the value read is only 9 bits: bits 1-7 of the high byte are PPU2 Open Bus. Each register keeps seperate track of whether to return the low or high byte. The high/low selector is reset to ' | ||
+ | |||
+ | [[register# | ||
+ | |||
+ | ===== PPU1 Status and Version Number ===== | ||
+ | < | ||
+ | $213E r b++++ STAT77 - PPU1 Status and Version Number | ||
+ | trmuvvvv | ||
+ | t = OBJ Time overflow | ||
+ | r = OBJ Range overflow (0=Okay, 1=More than 32 OBJs per scanline) | ||
+ | m = Master/ | ||
+ | u = unused | ||
+ | vvvv = PPU1 5C77 Version Number (only version 1 exists) | ||
+ | </ | ||
+ | |||
+ | Bit t: If more than 34 sprite-tiles (e.g. a 16x16 sprite has 2 sprite-tiles) were encountered on a single line, this flag will be set. The flag is reset at the end of V-Blank but not during forced blank. | ||
+ | |||
+ | Bit r: If more than 32 sprites were encountered on a single line, this flag will be set. The flag is reset at the end of V-Blank but not during forced blank. | ||
+ | |||
+ | Note that the above two flags are set whether or not OBJ are actually enabled at the time (see $212C), at the following times: bit 6 when V=OBJ.YLOC/ | ||
+ | |||
+ | [[register# | ||
+ | |||
+ | ===== PPU2 Status and Version Number ===== | ||
+ | < | ||
+ | $213F r b++++ STAT78 - PPU2 Status and Version Number | ||
+ | flupvvvv | ||
+ | f = Current Interlace-Frame (0=1st, 1=2nd Frame) | ||
+ | l = H/ | ||
+ | u = unused | ||
+ | p = Frame Rate (PPU2.Pin30) | ||
+ | vvvv = PPU2 5C78 Version Number (version 1..3) | ||
+ | </ | ||
+ | |||
+ |