mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-14 15:00:30 +02:00
The software renderer has the real contents of what a replay drew, and a recorded framebuffer texture can be stale or run over other buffers at its recorded size. So a copy leaves out the areas the replay's draws could reach (region and scissor, or the vertex bounds of a 2D draw), instead of skipping it only when it starts at a drawn buffer: - Princess Maker 5 textures from the right half of its 1024 wide framebuffer, and the copy blanked the whole frame. - Rainbow Six (ULUS10206) copies its 512x512 frame texture, which covers its display buffer, before each strip it draws into that buffer. - Burnout keeps a texture beside its frame in columns 480-511, which still comes through. - Depth writes count as whole rows in 8-row bands, since the PSP stores depth swizzled (SOCOM UCUS98649's frame texture copy ran into its depth buffer's columns 480-511). Copies also stop at the end of VRAM, and flush the software renderer's queued draws before writing. Memsets were also never applied with the software renderer, which leaves them to the caller. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>