mirror of
https://github.com/ARMSX2/ARMSX3.git
synced 2026-08-24 16:58:52 -07:00
0.7 introduced corruption in several games that were fine on 0.6 -- flashing and flickering in Sonic Unleashed and Dragon Ball among others. Emu/RSX is returned to its 0.6 state in full; everything outside the renderer is kept. The main cause was vertex cache retention. On 0.6 the attribute ring was too small for retention to engage, so raising the ring to 192M did not add a code path, it switched an existing one on in every game at once, and reusing stale vertex data is what the flashing was. Bisecting also showed the render pass work was not responsible: reverting it alone changed nothing. It can come back, but on its own and with testing behind it rather than as part of a batch. Kept from 0.7: the ARM64 PPU float to integer fix, the PPU cache build identity, the SPU checksum and block state fixes, Oboe, ADPF, and the crash and stability ports. Sonic Unleashed does not render FMV cutscenes. That reproduces with the 0.6 renderer as well, so it is not from any of this and is still open.