GS/HW: Add NativePaletteDraw upscaling fix #8524
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Changes
Required for Crash Bandicoot: The Wrath of Cortex.
It constructs a new P8 texture in local memory based on the depth buffer, by reinterpreting it as C8, then draws a bunch of tiny sprites to C32, then reinterprets this as P8. Any single pixel being off breaks the effect, which is why it didn't work with upscaling before.
So, this PR adds a new upscaling hack to force these palette texture draws to native resolution instead. WoC looks fairly good, the edges are still a bit rubbish, but they are at native in the software renderer too. The effect just.. isn't fantastic.
Before:
After:
It also helps Driv3r's glitched out text (similar method to draw), punting that to the CPU would be ideal, but that introduces other issues.
Rationale behind Changes
Closes #2380.
Closes #6006.
Suggested Testing Steps
Test Crash WoC.