Gfx GX Fn GXSetTevIndRepeat - wowjinxy/libPorpoise GitHub Wiki

GXSetTevIndRepeat

  • Category: Indirect Texturing
  • Matrix Status: Implemented
  • Matrix Notes: Parity-checked helper that reuses previous-stage indirect texture coordinates via canonical GXSetTevIndirect repeat settings.
  • Matrix Link: Gfx-GX-API-Matrix

Official SDK (Reference)

  • Manual page: reference/man/gfx/gx/Indirect/GXSetTevIndRepeat.html
  • SDK source: reference/gx/GXBump.c (GXSetTevIndRepeat, around lines 589+)
  • Verified SDK behavior:
    • Convenience helper that forwards to GXSetTevIndirect with:
      • ind_stage = GX_INDTEXSTAGE0
      • format = GX_ITF_8
      • bias_sel = GX_ITB_NONE
      • matrix_sel = GX_ITM_OFF
      • wrap_s = GX_ITW_0, wrap_t = GX_ITW_0
      • add_prev = TRUE
      • utc_lod = FALSE
      • alpha_sel = GX_ITBA_OFF
    • Uses CHECK_IN_BGN semantics via wrapper/callee path.

libPorpoise Implementation

  • Runtime implementation area: src/gx
  • Public API surface: include/dolphin/gx
  • Current implementation:
    • src/gx/pc_gx.c: GXSetTevIndRepeat forwards with the same canonical parameter tuple as SDK.
    • Begin-safe behavior is inherited from GXSetTevIndirect.

SDK vs Porpoise Diff

  • Signature parity:
    • SDK: void GXSetTevIndRepeat(GXTevStageID tev_stage)
    • Porpoise: same
  • Behavioral parity:
    • SDK and Porpoise helper behavior matches.
  • Known divergence:
    • None for this helper wrapper.

Validation Checklist

  • GX demo coverage checked (repeat helper path)
  • Pikmin usage path checked (indirect helper forwarding path)
  • Matrix status updated if needed
  • Notes updated with concrete file/function references

Working Notes

  • No runtime patch required for this function; implementation already matched SDK helper behavior.