mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-10-13 23:37:54 -04:00
316c02f70a
Matrix interpolation cannot cover SKIN_LIMB_TYPE_ANIMATED limbs: their vertices are deformed on the CPU and referenced through gSPSegment(0x08, ...) without any recorded matrix, so recorded matrix interpolation never moves them. Record each skinned limb's pose (double-buffered, keyed by the vertex entry) and blend the previous and current poses for every displayed frame, right before the graphics commands are run. Ties the blend to a logical-frame counter so a limb that was skipped for a frame falls back to its exact pose instead of blending against a stale one.