Description
As Gamemulatorer pointed out in #9018 (comment) , these games have weird rendering techniques in common.
All except MegaMind (and it seems MX vs ATV: On The Edge) render a very complicated striped post-processing effect, that doesn't actually seems to do very much (EDIT: it applies textured depth fog).
The details seem to vary a bit from game to game but all have in common copying the screen in small stripes to a temporary and doing strange processing there, involving depth texturing and reinterpret between 16 and 32-bit formats. I created this common issue where I'll write up any progress and link PRs to.
We are currently very unsuccessful emulating this, but I think it's not quite as hard as it looks.
Features I think we need to implement for this to work:
- Reimplement framebuffer reinterpret on the new color copy framework #15892
- Detect use of a framebuffer living in the "stride gap" of another one and adjust its width accordingly (and make sure it doesn't get detected as the same texture as the big one)
- Probably smarter interactions between block copies and framebuffers, taking the new sequence numbers into account etc. In the end, we might to share framebuffer match detection logic between block copies, textures and framebuffers...
- 32-bit<->16-bit format reinterpret: Reinterpret between 32 and 16 bit texture formats #15907
Still will likely not perform very well, but better than nothing.
Details are in the various sub-issues: