pcsx2 icon indicating copy to clipboard operation
pcsx2 copied to clipboard

[BUG]: Awful mode missing noodles effect when using the hardware renderers in PaRappa the Rapper 2

Open Roboguy420 opened this issue 2 years ago • 1 comments

Describe the Bug

When using a hardware renderer, on some of the stages in the game (stages 1, 3, 4, 5, and 6) the noodle effects around the border disappear completely when entering awful mode.

Reproduction Steps

Choose any of the hardware renderers. Go to stage 1, 3, 4, 5, or 6. Perform poorly enough that you enter awful mode.

Expected Behavior

There should be noodle effects around the border (See, for example, IcedTeaGaming's video of PaRappa 2's stage 1 awful mode running on original PS2 hardware)

PCSX2 Revision

v1.7.4225

Operating System

Windows 10 (64bit)

If Linux - Specify Distro

No response

CPU

i3-12100F

GPU

RTX 3060

GS Settings

Renderer is OpenGL (although the issue occurs when using any of the renderers apart from software) VSync is enabled Internal resolution is 3x native (issue also occurs on native) Dithering is scaled (issue also occurs on unscaled) Blending accuracy is full (issue also occurs on high and maximum)

Emulation Settings

No response

GS Window Screenshots

PaRappa the Rapper 2_SCES-50408_20230313152059

Logs & Dumps

https://drive.google.com/file/d/1d5GTojusCptevFloa1TwDJJIAyBCq_Br/view?usp=sharing

Roboguy420 avatar Mar 13 '23 15:03 Roboguy420

Interesting, ticking "Disable depth emulation" in the hw fixes seems to bring it back.

Alright thanks.

refractionpcsx2 avatar Mar 13 '23 15:03 refractionpcsx2

Interesting, ticking "Disable depth emulation" in the hw fixes seems to bring it back.

Alright thanks.

This is true. Unfortunately, disabling depth emulation introduces many other rendering issues. I haven't looked at the full GS dump, but the animated background is probably modifying the depth buffer (clearing) in a way that doesn't work on the hardware renderers.

Interestingly, the issue does not occur on Stage 7 of the game. For convenience, I have attached a GS dump. PaRappa the Rapper 2_SCPS-15017_20230516210046.zip

cuckydev avatar May 17 '23 01:05 cuckydev

As well, the title screen and opening sequence uses the same effect of the waving noodle background and the foreground circle of noodles. PaRappa the Rapper 2_SCPS-15017_20230516210531.zip

I should add that no game properties other than Disable Depth Emulation address this issue. It is likely a core issue with the hardware renderers and how they handle depth commands.

cuckydev avatar May 17 '23 01:05 cuckydev

Game draws the noodle things to a 256x80 target at 0x1400 with a BW of 10 (who knows why..). Then it draws something to depth at 0x1400 to the right of it. It breaks because we don't transfer the valid area, and it doesn't download. But fixing that creates another issue - the round trip from C32->Z32->Download results in a loss of precision, and the effect has incorrect colours (because it later uses 3DED as a texture).

CPU sprite render BW of 10 works, but breaks other parts of the game as expected. Could CRC hack it, but that's pretty gross.

stenzek avatar Jul 11 '23 12:07 stenzek

So this is a fundamental problem with the hardware renderers then? I wonder why this game in particular has so many weird things going on.

cuckydev avatar Jul 11 '23 18:07 cuckydev

It's not an unusual case :P You have to think, that GS memory is not linear, and PS2 developers had free reign to do whatever they liked with it, so they came up with tons of weird and wonderful ways to squeeze extra graphical finesse out of the PS2's limited hardware.

The problem we face is for the hardware renderer to be fast (and allow for upscaling) we have to try and reinterpret everything it does in a linear way. The problem being is a bunch of things can't really be done, or they do things in such a way it looks like they're doing something else, and then that breaks another game which relies on similar behaviour, we spend a lot of time playing cat and mouse with the hardware renderers.

So stens suggestion of a CRC hack (because fixing that breaks other things, surprise lol) isn't uncommon to try and work around strange behaviours.

refractionpcsx2 avatar Jul 11 '23 18:07 refractionpcsx2

It’s amazing how many issues with PTR2 are fixed by disabling depth emulation.

LeWolfYT avatar Sep 26 '23 02:09 LeWolfYT

It’s amazing how many issues with PTR2 are fixed by disabling depth emulation.

with all the other stuff that's broken by it, i don't think it's worth it :P

cuckydev avatar Sep 26 '23 02:09 cuckydev

"Disabling depth emulation" is a terrible name for what it does, it just prevents downloads of depth targets, and them being used as sources. Depth buffers are still absolutely used for testing and writing.

Regardless, it's a complete hack and is not a solution, since for sources you're loading garbage from local memory, or skipping draws instead of the actual target.

stenzek avatar Sep 26 '23 03:09 stenzek