mirror of
https://github.com/open-goal/jak-project.git
synced 2024-11-24 06:39:51 +00:00
d5951c2b11
Normally, when they allocate a VagCmd, they do a bunch of stuff to clear all the status bits and reset things in particular the InitVAGCmd function does a lot ![image](https://github.com/open-goal/jak-project/assets/48171810/9b355020-ad37-496c-9438-2f8d34f24e0a) but for the stereo command, they do a lot less: ![image](https://github.com/open-goal/jak-project/assets/48171810/12a36712-0e68-4377-a6be-3bde82c2aa15) Which means that the new_stereo_command can just have random status bits left over from whatever the last user had. we seem to end up in a state where byte21 is set, and this causes everything else to be wrong and off-by-one dma transfer. My guess is that the original game avoided this bug due to lucky timing that I don't understand. I think the fix of just clearing byte21 is ok because there's no way that the old value of the byte is useful after the command is repurposed. |
||
---|---|---|
.. | ||
jak1_tpage_dir.cpp | ||
jak1_tpage_dir.h | ||
jak2_tpage_dir.cpp | ||
jak2_tpage_dir.h | ||
TextureConverter.cpp | ||
TextureConverter.h | ||
TexturePool.cpp | ||
TexturePool.h |