Files
libretroadmin 6e735366e8 GIF: the GIF unit in C89
Gif_Unit.c is the GIF unit -- the three paths' packet buffers, GIF tag
parsing, the A+D writes the GIF acts on, path arbitration, the VU1
thread's path 1 queue and the savestate handler -- in C89. Gif_Path and
Gif_Unit are plain structs with the saved state's layout; the methods
are gif_path_* and gif_unit_* functions, the GS thread is reached
through mtgs_wait_gs and Gif_AddCompletedGSPacket, and the path buffers
are allocated with the VM (gif_unit_init, gif_unit_shutdown) instead of
by a static constructor at load. The MTGS, MTVU, GS, FIFO, VU
interpreter and both VU recompilers' XGKICKs call the C entry points.

tests/eegifunit feeds all three paths seeded GIF packets as DMA,
DIRECT, DIRECTHL, XGKICK and FIFO data, with the VU1 thread on and off,
through arbitration, PATH3 masking, SIGNALs, resets, savestates and
packets that outgrow their buffer, and checks it against the previous
C++. tests/ee/hwgslabel scores the C unit's SIGNAL and LABEL merges.
2026-11-09 18:51:07 +01:00
..
2026-11-09 18:51:07 +01:00