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:40] David |
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 is 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>]'' | ||