Skip to content

GS: Update dirty area in special HW local->local transfers - #14941

Merged
lightningterror merged 2 commits into
masterfrom
gs_pagemovedirty
Sep 14, 2026
Merged

lightningterror merged 2 commits into
masterfrom
gs_pagemovedirty

Conversation

@refractionpcsx2

Copy link
Copy Markdown
Member

Description of Changes

Updates dirty areas that overlap GS local->local transfers for special page/shuffle handling
Also adds local->local hardware transfers to the transfer dumping

Rationale behind Changes

There were conditions where there would be dirty data which later got overwritten by the local->local GS transfer. In the case of Busin 0 - Wizardry Alternative Neo it would upload an entire frame/garbage to 0x3000,. then later copy the real framebuffer to the same address, however as soon as it was used, it was updating the target from GS memory, overwriting the good newer data, which is of course incorrect.

Suggested Testing Steps

Test Busin 0 - Wizardry Alternative Neo and Dark Cloud to make sure the graphics are correct.

Did you use AI to help find, test, or implement this issue or feature?

No

Fixes the death scene in Busin 0 - Wizardry Alternative Neo and the lighting in Dark Cloud in some situations.

Busin 0 - Wizardry Alternative Neo:
Master:
image
PR:
image

Dark Cloud:
Master:
image
PR (This now matches software):
image

@refractionpcsx2 refractionpcsx2 changed the title Gs pagemovedirty GS: Update dirty area in special HW local->local transfers Sep 11, 2026
@Mrlinkwii Mrlinkwii added this to the Release 2.10 milestone Sep 11, 2026
@lightningterror
lightningterror merged commit 489778c into master Sep 14, 2026
31 checks passed
@lightningterror
lightningterror deleted the gs_pagemovedirty branch September 14, 2026 04:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants