Gfx VI API Matrix - wowjinxy/libPorpoise GitHub Wiki

Gfx - VI API Matrix

Function-by-function tracking list for libPorpoise VI coverage.

Legend:

  • Status: Untriaged / Implemented / Partial / Stub / Missing / Removed
  • Check the box when status + notes are verified against behavior and tests.

Video API

  • VIInit - Status: Implemented - Notes: src/vi/VI.c initializes SDL/GL VI state and retrace alarm; API + behavior reviewed against reference/man/gfx/vi/VIInit.html.
  • VIConfigure - Status: Implemented - Notes: Queues mode/XFB/pan defaults into shadow state and applies via VIFlush on next field; mode format/scan extracted from viTVmode.
  • VIConfigurePan - Status: Partial - Notes: Pan parameters are tracked/latch through VIFlush timing, but PC presenter does not yet apply pan crop/offset in output blit.
  • VISetBlack - Status: Implemented - Notes: Black toggle is shadowed and takes effect only after VIFlush + retrace, matching manual timing.
  • VIFlush - Status: Implemented - Notes: Latches pending VI state (VIConfigure*, VISetNextFrameBuffer, VISetBlack) for application at next retrace as documented.
  • VIWaitForRetrace - Status: Implemented - Notes: Blocks until retrace counter advances; pumps window events while waiting.
  • VISetNextFrameBuffer - Status: Implemented - Notes: Framebuffer switch now follows documented sequencing (VISetNextFrameBuffer -> VIFlush -> next retrace).
  • VIGetRetraceCount - Status: Implemented - Notes: Returns retrace count incremented by retrace emulator alarm.
  • VIGetNextField - Status: Implemented - Notes: Returns toggled field (VI_FIELD_ABOVE/VI_FIELD_BELOW) each retrace.
  • VIPadFrameBufferWidth - Status: Implemented - Notes: Macro in include/dolphin/vi.h pads width to 16-pixel boundary per docs.
  • VIGetTvFormat - Status: Implemented - Notes: Returns active TV format derived from current viTVmode (VIConfigure/__VIInit).
  • VISetPreRetraceCallback - Status: Implemented - Notes: Callback hook works; current header/API returns previous callback pointer even though man page text shows void.
  • VISetPostRetraceCallback - Status: Implemented - Notes: Callback hook works; current header/API returns previous callback pointer even though man page text shows void.

Removed Functions

  • VIConfigureXFrameBuffer - Status: Removed - Notes: Official VI man page states this API was merged into VIConfigure; no standalone symbol expected.
  • VIConfigureTVScreen - Status: Removed - Notes: Official VI man page states this API was merged into VIConfigure; no standalone symbol expected.