This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
f3dex [2018/05/02 13:08] trenavix [BE: G_CULLDL] |
f3dex [2024/02/27 04:57] (current) BanjoFreak64 [F2: G_SETTILESIZE] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Fast3DEX Display List Commands ====== | ====== Fast3DEX Display List Commands ====== | ||
- | The Fast3DEX display list commands are microcode that are passed to the RSP for rendering. The are all 8 bytes long. | + | The Fast3DEX display list commands are microcode that are passed to the RSP for rendering. They are all 8 bytes long. |
===== Fast3DEX Commands ===== | ===== Fast3DEX Commands ===== | ||
==== 00: G_SPNOOP ==== | ==== 00: G_SPNOOP ==== | ||
- | No operation. This should only be used for debugging purposes. | + | Stalls the signal processor (the RSP), and as a consequence, the RDP too. This should only be used for debugging purposes. |
''00 00 00 00 00 00 00 00'' | ''00 00 00 00 00 00 00 00'' | ||
Line 26: | Line 26: | ||
01 00 00 40 00 21 3D B8 | 01 00 00 40 00 21 3D B8 | ||
+ | ---- | ||
==== 03: G_MOVEMEM ==== | ==== 03: G_MOVEMEM ==== | ||
Takes a block of memory from an address and puts it in the location pointed to by an index and an offset. | Takes a block of memory from an address and puts it in the location pointed to by an index and an offset. | ||
Line 190: | Line 191: | ||
This opcode sets the higher half of the generic RDP word. | This opcode sets the higher half of the generic RDP word. | ||
- | ''E1 00 00 00 [<color #22b14c>hh hh hh hh</color>]'' | + | ''B4 00 00 00 [<color #22b14c>hh hh hh hh</color>]'' |
| <color #22b14c>h</color> | New value of high word | | | <color #22b14c>h</color> | New value of high word | | ||
Line 285: | Line 286: | ||
Modifies various bits of the lower half of the RDP Other Modes word. | Modifies various bits of the lower half of the RDP Other Modes word. | ||
- | ''B9 00 [<color #ed1c24>ss</color>] [<color #22b14c>nn</color>] [<color #00a2e8>dd dd dd dd</color>]'' | + | ''BA 00 [<color #ed1c24>ss</color>] [<color #22b14c>nn</color>] [<color #00a2e8>dd dd dd dd</color>]'' |
| <color #ed1c24>s</color> | Amount mode-bits are shifted by, or number of LSb of mode bits to be changed | | | <color #ed1c24>s</color> | Amount mode-bits are shifted by, or number of LSb of mode bits to be changed | | ||
Line 334: | Line 335: | ||
BB 00 00 01 FF FF FF FF : Standard - at start for extremely close to 1 scaling enabled on tile desc 0. | BB 00 00 01 FF FF FF FF : Standard - at start for extremely close to 1 scaling enabled on tile desc 0. | ||
BB 00 00 01 80 00 80 00 : Standard - at start for 0.5 scaling enabled on tile desc 0. | BB 00 00 01 80 00 80 00 : Standard - at start for 0.5 scaling enabled on tile desc 0. | ||
- | BB 00 00 01 0F 80 07 C0 : Scale for environment mapping 64x32 (Metal mario) and enable tile desc 0. | + | BB 00 00 01 0F 80 07 C0 : Scale for environment mapping 64x32 and enable tile desc 0. |
BB 00 00 00 FF FF FF FF : Disable tile descriptor 0 (end of DL). | BB 00 00 00 FF FF FF FF : Disable tile descriptor 0 (end of DL). | ||
Line 342: | Line 343: | ||
Loads a new 32-bit value data to the location specified by index and offset. | Loads a new 32-bit value data to the location specified by index and offset. | ||
- | ''DB <color #00a2e8>ii</color> <color #22b14c>oo oo</color> <color #A946F2>dd dd dd dd</color>'' | + | ''BC <color #22b14c>oo oo</color> <color #00a2e8>ii</color> <color #A946F2>dd dd dd dd</color>'' |
- | | <color #00a2e8>i</color> | Index into DMEM pointer table(?) | | + | | <color #22b14c>o</color> | Offset from the indexed base address | |
- | | <color #22b14c>o</color> | Offset from the indexed base address(?) | | + | | <color #00a2e8>i</color> | Index into DMEM pointer table | |
| <color #A946F2>d</color> | New 32-bit value | | | <color #A946F2>d</color> | New 32-bit value | | ||
Line 364: | Line 365: | ||
Pops num matrices from the stack specified by modelview matrix stack. | Pops num matrices from the stack specified by modelview matrix stack. | ||
- | ''D8380002 <color #00a2e8>aaaaaaaa</color>'' | + | ''BD380002 <color #00a2e8>aaaaaaaa</color>'' |
| <color #00a2e8>a</color> | The number of matrices to pop | | | <color #00a2e8>a</color> | The number of matrices to pop | | ||
Line 398: | Line 399: | ||
==== C0: G_NOOP ==== | ==== C0: G_NOOP ==== | ||
- | Does nothing. Seemingly different from 00; this opcode may stall the RDP instead of the RSP, or the other way around, though nothing has been really confirmed. (Judging by gbi.h from F3DEX) | + | Does nothing. Seemingly different from 00; judging by the names and position of this opcode and 00, this opcode stalls the RDP, whereas the other stalls the RSP. |
''C0 00 00 00 00 00 00 00'' | ''C0 00 00 00 00 00 00 00'' | ||
Line 407: | Line 408: | ||
''E4 [<color darkred>xx x</color>][<color darkgreen>y yy</color>] 0[<color darkblue>I</color>] [<color red>XX X</color>][<color green>Y YY</color>]''\\ | ''E4 [<color darkred>xx x</color>][<color darkgreen>y yy</color>] 0[<color darkblue>I</color>] [<color red>XX X</color>][<color green>Y YY</color>]''\\ | ||
- | ''B3 00 00 00 [<color #BF9F00>SS SS</color>] [<color #8F3F10>TT TT</color>]''\\ | + | ''B4 00 00 00 [<color #BF9F00>SS SS</color>] [<color #8F3F10>TT TT</color>]''\\ |
- | ''B2 00 00 00 [<color #3F3FFF>DD DD</color>] [<color darkcyan>EE EE</color>]'' | + | ''B3 00 00 00 [<color #3F3FFF>DD DD</color>] [<color darkcyan>EE EE</color>]'' |
| <color darkred>xxx</color> | Lower-right corner X coordinate | | | <color darkred>xxx</color> | Lower-right corner X coordinate | | ||
Line 426: | Line 427: | ||
''E5 [<color darkred>xx x</color>][<color darkgreen>y yy</color>] 0[<color darkblue>I</color>] [<color red>XX X</color>][<color green>Y YY</color>]''\\ | ''E5 [<color darkred>xx x</color>][<color darkgreen>y yy</color>] 0[<color darkblue>I</color>] [<color red>XX X</color>][<color green>Y YY</color>]''\\ | ||
- | ''B3 00 00 00 [<color #BF9F00>SS SS</color>] [<color #8F3F10>TT TT</color>]''\\ | + | ''B4 00 00 00 [<color #BF9F00>SS SS</color>] [<color #8F3F10>TT TT</color>]''\\ |
- | ''B2 00 00 00 [<color #3F3FFF>DD DD</color>] [<color darkcyan>EE EE</color>]'' | + | ''B3 00 00 00 [<color #3F3FFF>DD DD</color>] [<color darkcyan>EE EE</color>]'' |
| <color darkred>xxx</color> | Lower-right corner X coordinate | | | <color darkred>xxx</color> | Lower-right corner X coordinate | | ||
Line 524: | Line 525: | ||
Sets the scissoring rectangle. | Sets the scissoring rectangle. | ||
- | ''ED [<color #00a2e8>xx x</color>][<color #22b14c>y yy</color>] [<color #ff7f27>m</color>]0 [<color #ed1c24>vv v</color>][<color #B755FF>w ww</color>]'' | + | ''ED [<color #00a2e8>xx x</color>][<color #22b14c>y yy</color>] 0[<color #ff7f27>m</color>] [<color #ed1c24>vv v</color>][<color #B755FF>w ww</color>]'' |
| <color #00a2e8>x</color> | Upper-left X coordinate of rectangle | | | <color #00a2e8>x</color> | Upper-left X coordinate of rectangle | | ||
Line 580: | Line 581: | ||
Sets the texture coordinates and size | Sets the texture coordinates and size | ||
- | ''F2 00 00 00 00 [<color darkred>WW W</color>][<color darkgreen>H HH</color>]'' | + | ''F2 [<color darkred>SS S</color>][<color darkgreen>T TT</color>] 0[<color #00a2e8>I</color>] [<color purple>WW W</color>][<color darkcyan>H HH</color>]'' |
+ | |||
+ | | <color darkred>SSS</color> | Upper-left corner of texture to load, S-axis | | ||
+ | | <color darkgreen>TTT</color> | Upper-left corner of texture to load, T-axis | | ||
+ | | <color #00a2e8>I</color> | Tile descriptor to load into | | ||
+ | | <color purple>W</color> | (width - 1) << 2 | | ||
+ | | <color darkcyan>H</color> | (height - 1) << 2 | | ||
- | | <color darkred>W</color> | (width - 1) << 2 | | ||
- | | <color darkgreen>H</color> | (hieght - 1) << 2 | | ||
Examples: | Examples: |