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:15] madsiur [CGRAM Data Read] |
ff3:ff3us:doc:snes:register [2019/08/10 03:42] (current) madsiur [PPU1 Status and Version Number] |
||
---|---|---|---|
Line 67: | Line 67: | ||
|VRAM Data Read (High) | |VRAM Data Read (High) | ||
|CGRAM Data Read | [[register# | |CGRAM Data Read | [[register# | ||
- | |Scanline Location Registers (Horizontal) | + | |Horizontal |
- | |Scanline Location Registers (Vertical) | + | |Vertical |
- | |PPU Status | + | |PPU1 Status |
- | |PPU Status | + | |PPU2 Status |
|APU IO Registers | |APU IO Registers | ||
|APU IO Registers | |APU IO Registers | ||
Line 814: | Line 814: | ||
[[register# | [[register# | ||
+ | |||
+ | ===== Counter Latch ===== | ||
+ | < | ||
+ | $213C r w++++ OPHCT - Horizontal Counter Latch | ||
+ | $213D r w++++ OPVCT - Vertical Counter Latch | ||
+ | uuuuuuux xxxxxxxx | ||
+ | uuuuuuu | ||
+ | xxxxxxxxx = Scanline Location | ||
+ | </ | ||
+ | |||
+ | 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) | ||
+ | </ | ||
+ | |||
+ |