Line 36: |
Line 36: |
| ==Matrix unit== | | ==Matrix unit== |
| | | |
− | There are two matrix units, one at +0x200, and the other one at +0x300, possibly one for each axis (X and Y) | + | There are two matrix units, one at +0x200 for vertical (Y) scaling, and the other one at +0x300 for horizontal (X) scaling. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 76: |
Line 76: |
| |- | | |- |
| | 0 | | | 0 |
− | | Enable bit | + | | Enable bit (?) |
| |- | | |- |
| | 1 | | | 1 |
− | | ??? set after init sequence | + | | Enable vertical matrix |
| |- | | |- |
| | 2 | | | 2 |
− | | ??? set after init sequence | + | | Enable horizontal matrix |
| |- | | |- |
− | | 3 | + | | 4 |
| | ??? | | | ??? |
| |- | | |- |
− | | 4 | + | | 5 |
| | ??? | | | ??? |
| |- | | |- |
Line 94: |
Line 94: |
| |- | | |- |
| | 10-11 | | | 10-11 |
− | | Output pixel mode? Same enum as above. | + | | Output framebuffer rotation: 0 = normal, 1 = 90° CW (right), 2 = 180° CW (upside down, not mirrored), 3 = 270° CW (left) |
| |- | | |- |
| | 12 | | | 12 |
− | | ??? initialized to 0, but if set then requires the output width and height to be multiples of 8 | + | | Output tiling for use with the GPU. When set, the output width and height must be a multiple of 8. |
| |- | | |- |
| | 15 | | | 15 |
− | | ??? set after init sequence | + | | Interrupt enable (?) |
| |- | | |- |
| | 16 | | | 16 |
− | | ??? not yet inited bit ??? | + | | Data still available flag (?) |
| |- | | |- |
| |} | | |} |
Line 114: |
Line 114: |
| |- | | |- |
| | 0-8 | | | 0-8 |
− | | Output framebuffer width - 1 is written here | + | | Output framebuffer width - 1 is written here, 1 <= width <= 512 |
| |- | | |- |
| | 16-25 | | | 16-25 |
− | | Output framebuffer height - 1 is written here | + | | Output framebuffer height - 1 is written here, 1 <= height <= 512 |
| |- | | |- |
| |} | | |} |