Gfx GX Fn GXLoadNrmMtxImm3x3 - wowjinxy/libPorpoise GitHub Wiki
GXLoadNrmMtxImm3x3
- Category:
Transformation and Matrix
- Matrix Status:
Implemented
- Matrix Notes: Added missing API and verified direct 3x3 normal-matrix load path.
- Matrix Link: Gfx-GX-API-Matrix
Official SDK (Reference)
- Manual root:
reference/rvlsdk/man/en_US/gx
- Primary SDK source area:
demos/PikminDemo/src/gx (GC-style Dolphin GX source)
- Notes:
libPorpoise Implementation
- Runtime implementation area:
src/gx
- Public API surface:
include/dolphin/gx
- Notes:
SDK vs Porpoise Diff
- Signature parity:
- Behavioral parity:
-
Known divergence:
Validation Checklist
Working Notes
- Docs checked against
reference/man/gfx/gx/Transform/GXLoadNrmMtxImm3x3.html and SDK source in reference/gx/GXTransform.c.
- Runtime checked in
src/gx/pc_gx.c:
- Accepts direct 3x3 input matrix and copies all 9 elements into the destination normal-matrix slot.
- Marks modelview state dirty so subsequent draws consume updated normal matrix.
- Uses
GXPosNrmMtx-style slot mapping/validation for destination id.
- Safe no-op on null input or out-of-range slot mapping.
- Result: function-level parity is correct for direct 3x3 normal-matrix load semantics; no runtime code changes needed.