Confirm documented side effects (register/state updates)
Confirm special behavior and edge cases from manual
libPorpoise Implementation
Runtime implementation area: src/gx
Public API surface: include/dolphin/gx
Notes:
Confirm API signature matches SDK
Confirm state writes match SDK semantics
Confirm backend behavior in PC renderer path
SDK vs Porpoise Diff
Signature parity:
SDK:
Porpoise:
Behavioral parity:
SDK:
Porpoise:
Known divergence:
Validation Checklist
GX demo coverage checked
Pikmin usage path checked
Matrix status updated if needed
Notes updated with concrete file/function references
Working Notes
Docs checked against reference/man/gfx/gx/Transform/GXSetViewportv.html and SDK header/source in reference/gx/GXTransform.h and reference/gx/GXTransform.c.
SDK behavior:
GXSetViewportv is an inline wrapper that directly calls GXSetViewport(vp[0], ..., vp[5]).
SDK notes explicitly state it does not check for NULL pointers.
Runtime parity update in src/gx/pc_gx.c:
Removed defensive if (!vp) return; from GXSetViewportv.
Function now matches SDK call-through semantics exactly.