GPU/External Registers: Difference between revisions

Mrrraou (talk | contribs)
MarcusD (talk | contribs)
Line 140: Line 140:
! Name
! Name
! Comments
! Comments
|-
| 0x00
| 4
| Pixel timer (not pixel clock)
| Higher values are slower, min. 0x1C1, bitmask 0xFFF
|-
| 0x04
| 4
| VScanStart(?)
| Values 0xD1-0x1C1 inclusive are valid (except 2DS bottom screen)
min. 0xD1, bitmask 0xFFF
|-
| 0x08
| 4
| ?
|
|-
| 0x0C
| 4
| ?
|
|-
| 0x10
| 4
| VAdjustGranule
or
HAdjust(2DS bottom screen)
| Finetune vertical pixel offset, 0x1C2 max = half pixel
or
offset the bottom screen (0 to kill 2DS top screen, 0x1C2 max on bottom screen)
|-
| 0x14
| 4
| HEndOffset(?) (poor 2DS emulation)
| Moves the frame left/right(after some conditions are met)
default value is 0xCF
|-
| 0x18
| 4
| ???
|
|-
| 0x20
| 4
| ?
| ??? the screen gets vertically offset with wrap-around
horizontal timing gets messed up
|-
| 0x24
| 4
| HSync timer?
|
|-
| 0x28
| 4
| VStart(?)
|
|-
| 0x30
| 4
| VTotal
| Total amount of vertical scanlines
|-
| 0x34
| 4
| VDisp
| Total amonut of vertical scanlines displayed
|-
| 0x44
| 4
| ???
| similar functionality to 0x10
|-
| 0x4C
| 4
| Overscan filler color
|
|-
| 0x50
| 4
| Vertical scanline counter
| read-only
|-
| 0x54
| 4
| Horizontal scanline counter
| read-only
|-
|-
| 0x5C
| 0x5C
| 4
| 4
| Framebuffer width & height
| ???
| Lower 16 bits: width, upper 16 bits: height
| low u16: framebuffer width
high u16: framebuffer height??? (seems to be unused)
|-
| 0x60
| 4
| ???
| low u16: timing data(?)
high u16: framebuffer total width (amount of pixels blitted regardless of framebuffer width)
|-
| 0x64
| 4
| ???
| low u16: unknown
high u16: framebuffer total height (amount of scanlines blitted regardless of framebuffer height)
|-
|-
| 0x68
| 0x68