mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04: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. |
||
---|---|---|
.. | ||
CommonOceanRenderer.cpp | ||
CommonOceanRenderer.h | ||
OceanMid.cpp | ||
OceanMid.h | ||
OceanMid_PS2.cpp | ||
OceanMidAndFar.cpp | ||
OceanMidAndFar.h | ||
OceanNear.cpp | ||
OceanNear.h | ||
OceanNear_PS2.cpp | ||
OceanTexture.cpp | ||
OceanTexture.h | ||
OceanTexture_PC.cpp |