This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
f3ddkr [2022/05/20 14:43] David typo |
f3ddkr [2022/11/24 16:49] (current) David [Changes from Fast3D] |
||
---|---|---|---|
Line 9: | Line 9: | ||
- The commands [[super_mario_64:fast3d_display_list_commands#beg_culldl|G_CULLDL]], [[super_mario_64:fast3d_display_list_commands#bfg_tri1|G_TRI1]], and [[super_mario_64:fast3d_display_list_commands#bdg_popmtx|G_POPMTX]] were removed, and are now NOPS (No operations). | - The commands [[super_mario_64:fast3d_display_list_commands#beg_culldl|G_CULLDL]], [[super_mario_64:fast3d_display_list_commands#bfg_tri1|G_TRI1]], and [[super_mario_64:fast3d_display_list_commands#bdg_popmtx|G_POPMTX]] were removed, and are now NOPS (No operations). | ||
- Triangles are drawn in batches; up to 16 triangles per batch. | - Triangles are drawn in batches; up to 16 triangles per batch. | ||
- | - The number of vertices was increased to 24. | + | - The number of vertices was increased from 16 to 24. |
- The vertex structure is smaller, being only 10 bytes per vertex instead of 16. | - The vertex structure is smaller, being only 10 bytes per vertex instead of 16. | ||
- UV coordinates are per-face instead of per-vertex. | - UV coordinates are per-face instead of per-vertex. | ||
- | - The lighting overlay was removed. Dynamic lighting & environment mapping are done on the CPU. | + | - The lighting overlay was removed. Dynamic lighting & environment mapping for objects are calculated on the CPU. |
- | - The matrix stack has been removed; fixed indices are used instead. | + | - The matrix stack has been removed; there are now only 3 matrices at fixed offsets. |
+ | - The number of segment banks has been reduced from 16 to 8 | ||
+ | - Mipmapping cannot be done, due to some changes in the triangle setup routine. | ||
---- | ---- | ||
Line 21: | Line 23: | ||
==== Vertex (10 bytes) ==== | ==== Vertex (10 bytes) ==== | ||
- | ''[<color red>XX XX</color>] [<color green>YY YY</color>] [<color cyan>ZZ ZZ</color>] [<color pink>XR</color>] [<color lightgreen>YG</color>] [<color lightblue>ZB</color>] [<color lightgray>AA</color>]'' | + | ''[<color red>XX XX</color>] [<color green>YY YY</color>] [<color cyan>ZZ ZZ</color>] [<color pink>RR</color>] [<color lightgreen>GG</color>] [<color lightblue>BB</color>] [<color lightgray>AA</color>]'' |
| <color red>XXXX</color> | short | Position on X axis | | | <color red>XXXX</color> | short | Position on X axis | | ||
| <color green>YYYY</color> | short | Position on Y axis | | | <color green>YYYY</color> | short | Position on Y axis | | ||
| <color cyan>ZZZZ</color> | short | Position on Z axis | | | <color cyan>ZZZZ</color> | short | Position on Z axis | | ||
- | | <color pink>XR</color> | byte or ubyte | X unit vector of normal or red color | | + | | <color pink>RR</color> | ubyte | Red color channel | |
- | | <color lightgreen>YG</color> | byte or ubyte | Y unit vector of normal or green color | | + | | <color lightgreen>GG</color> | ubyte | Green color channel | |
- | | <color lightblue>ZB</color> | byte or ubyte | Z unit vector of normal or blue color | | + | | <color lightblue>BB</color> | ubyte | Blue color channel | |
| <color lightgray>AA</color> | ubyte | Alpha (Transparency) | | | <color lightgray>AA</color> | ubyte | Alpha (Transparency) | | ||
Line 61: | Line 63: | ||
==== 04: G_VTX ==== | ==== 04: G_VTX ==== | ||
- | Loads up to 32 vertices from a segment address. | + | Loads up to 24 vertices from a segment address. |
''04 [<color pink>N</color><color lightgreen>O</color>] [<color lightblue>II II</color>] [<color #AA88DD>SS SS SS SS</color>]'' | ''04 [<color pink>N</color><color lightgreen>O</color>] [<color lightblue>II II</color>] [<color #AA88DD>SS SS SS SS</color>]'' | ||
Line 84: | Line 86: | ||
==== 07: G_DMADL ==== | ==== 07: G_DMADL ==== | ||
- | DMA's a fixed-size display list from RDRAM and outputs the commands directly to the RDP. This is used by the game engine to load textures for models. | + | DMAs a fixed-size display list from RDRAM and outputs the commands directly to the RDP. This is used by the game engine to load textures for models. |
''07 [<color pink>NN</color>] [<color lightblue>LL LL</color>] [<color #AA88DD>SS SS SS SS</color>]'' | ''07 [<color pink>NN</color>] [<color lightblue>LL LL</color>] [<color #AA88DD>SS SS SS SS</color>]'' |