Gfx GX Fn GXLoadPosMtxImm - wowjinxy/libPorpoise GitHub Wiki
GXLoadPosMtxImm
- Category:
Transformation and Matrix
- Matrix Status:
Implemented
- Matrix Notes: Verified 3x4 row-major load into PN matrix slot; tightened to documented
GXPosNrmMtx IDs.
- 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/GXLoadPosMtxImm.html and SDK source in reference/gx/GXTransform.c.
- Runtime checked in
src/gx/pc_gx.c:
- Accepts
mtx pointer + matrix id, then copies 12 floats (3x4 row-major) into the selected position matrix slot.
- Marks modelview state dirty so subsequent draws consume updated matrix.
- Uses slot mapping for
GXPosNrmMtx IDs (GX_PNMTX0..GX_PNMTX9 style IDs).
- Note on SDK nuance:
- SDK source comments indicate custom IDs may be used in hardware register space, but manual/API names accepted IDs via
GXPosNrmMtx.
- Current PC backend intentionally tracks the documented PN matrix set only (10 slots), which matches common game/demo usage.