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.