SDK source: reference/gx/GXBump.c (GXSetIndTexOrder, around lines 299+)
Verified SDK behavior:
Accepts indirect stage id GX_INDTEXSTAGE0..3.
Treats GX_TEXMAP_NULL as GX_TEXMAP0.
Treats GX_TEXCOORD_NULL as GX_TEXCOORD0.
Validates texmap/texcoord ranges and marks indirect state dirty.
libPorpoise Implementation
Runtime implementation area: src/gx
Public API surface: include/dolphin/gx
Current implementation:
src/gx/pc_gx.c: GXSetIndTexOrder now flushes pending begin state, maps null texmap/texcoord to stage 0, validates ranges, then writes indirect stage mapping.
Runtime upload path maps this state into u_ind_tc_src[] and indirect sampler bindings.