notes for future gbi extension

This commit is contained in:
PeachyPeachSM64 2025-11-13 19:55:45 +01:00
parent 15a67ed261
commit 520404a4c0

View file

@ -1,9 +1,52 @@
#pragma once
//
// GFX COMMANDS FREE SLOTS
//
// The following op codes are free to use for G_ commands.
// For RSP commands, use incrementing numbers starting from 00.
// For RDP commands, use decrementing numbers starting from ff.
// Please update the following table when implementing a new command.
//
// RSP -> 09 0a 0b 0c 0d 0e 0f
// 10 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
// 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
// 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
// 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
// 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
// 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
// 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f
// 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f
// 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f
// a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af
// b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf
// c0 c1 c2 c3 c4 c5 c6 c7
// d0 <- RDP
//
//
///////////////////////
// G_SETGEOMETRYMODE //
///////////////////////
//
// GEOMETRY MODES FREE FLAGS
//
// The following flags are free to use for geometry modes.
// Please remove the corresponding flag from the list below when implementing a new geometry mode.
// Note: geometry mode flags have only 24 bits, the 8 upper bits cannot be used.
//
// 0x00000002
// 0x00000008
// 0x00000010
// 0x00000020
// 0x00001000
// 0x00002000
// 0x00008000
// 0x00080000 // G_TEXTURE_GEN_LINEAR, but not implemented
// 0x00100000 // G_LOD, but not implemented
// 0x00800000 // G_CLIPPING, but not implemented
#define G_LIGHT_MAP_EXT 0x00000800
#define G_LIGHTING_ENGINE_EXT 0x00004000
#define G_PACKED_NORMALS_EXT 0x00000080
@ -97,10 +140,14 @@
#define gDPSetTextureClippingDjui(pkt, x1, y1, x2, y2) gSetClippingDjui(pkt, G_TEXCLIP_DJUI, x1, y1, x2, y2)
#define gDPSetTextureOverrideDjui(pkt, texture, w, h, bitSize) gSetOverrideDjui(pkt, G_TEXOVERRIDE_DJUI, texture, w, h, bitSize)
////////////////////
// RDP commands //
////////////////////
/////////////////
// G_SETENVRGB //
/////////////////
#define G_SETENVRGB 0xd1
#define gDPSetEnvRGB(pkt, r, g, b) \
DPRGBColor(pkt, G_SETENVRGB, r,g,b,255)
#define gsDPSetEnvRGB(r, g, b) \
sDPRGBColor(G_SETENVRGB, r,g,b,255)
@ -129,9 +176,9 @@
((2 * ((part) + 1)) + 1 + offset) \
}}
////////////////////
//// G_MOVEWORD ////
////////////////////
////////////////
// G_MOVEWORD //
////////////////
#define G_MW_FX 0x00 /* replaces G_MW_MATRIX which is no longer supported */
#define G_MWO_FRESNEL 0x0C