open-goal / jak-project

Reviving the language that brought us the Jak & Daxter Series
https://opengoal.dev
ISC License
2.8k stars 170 forks source link

Port `bones.gc` math to GOAL #3425

Closed water111 closed 6 months ago

water111 commented 6 months ago

Reverse engineer the skinning matrix calculation and port to GOAL. This is about 3x faster than the MIPS2c version.

As usual, there is a *use-new-bones* flag to go back to the old version.

Fix for a bug in the compiler's .div.vf implementation (only happens if src/dst are the same), and fix for a typo in the register allocator that would sometimes cause it not to consider xmm8-xmm15.