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 |