Line 2: |
Line 2: |
| | | |
| ==Writing to XF registers== | | ==Writing to XF registers== |
− |
| |
| Writing to XF registers is done by writing values to the FIFO, as shown below: | | Writing to XF registers is done by writing values to the FIFO, as shown below: |
| | | |
Line 19: |
Line 18: |
| * write the values to write to each register (32-bit each) | | * write the values to write to each register (32-bit each) |
| Where n is the number of registers to write. | | Where n is the number of registers to write. |
| + | |
| | | |
| ==XF registers== | | ==XF registers== |
− |
| |
− |
| |
| ===XF viewport registers=== | | ===XF viewport registers=== |
| | | |
Line 48: |
Line 46: |
| | | |
| | | |
− | {{regsimple | GX_XF_VIEWPORT_F | addr=0x101F | bits=32 | access = R/W}} | + | {{regsimple | GX_XF_VIEWPORT_FP | addr=0x101F | bits=32 | access = R/W}} |
| * 0x101F: This register defines the far plane of the viewport. | | * 0x101F: This register defines the far plane of the viewport. |
| | | |
Line 57: |
Line 55: |
| * GX_XF_VIEWPORT_X1 = (viewport_x + (viewport_width / 2)) + 342 | | * GX_XF_VIEWPORT_X1 = (viewport_x + (viewport_width / 2)) + 342 |
| * GX_XF_VIEWPORT_Y1 = (viewport_y + (viewport_height / 2)) + 342 | | * GX_XF_VIEWPORT_Y1 = (viewport_y + (viewport_height / 2)) + 342 |
− | * GX_XF_VIEWPORT_F = (viewport_farplane * 16777215) | + | * GX_XF_VIEWPORT_FP = (viewport_farplane * 16777215) |
| * GX_XF_VIEWPORT_Z = (viewport_farplane - viewport_nearplane) * 16777215 | | * GX_XF_VIEWPORT_Z = (viewport_farplane - viewport_nearplane) * 16777215 |
− | ''Note: These formulas are taken from the libogc fucntion GX_SetViewportJitter().'' | + | ''Note: These formulas are taken from the libogc function GX_SetViewportJitter().'' |
| + | |
| + | GX_XF_VIEWPORT_FP and GX_XF_VIEWPORT_Z are 24-bit fixed-point values ranging between 0 and 16777215. These values respectively represent 0.0 and 1.0 in floating-point. |
| + | All the other viewport registers are 32-bit floating-point values. |