PCSX2 / pcsx2

PCSX2 - The Playstation 2 Emulator
https://pcsx2.net
GNU General Public License v3.0
11.31k stars 1.58k forks source link

[BUG]: Jonny Moseley Mad Trix - several issues that persist in software renderer #6636

Open SlyCooperReloadCoded opened 2 years ago

SlyCooperReloadCoded commented 2 years ago

Describe the Bug

The game Jonny Moseley Mad Trix has three notable graphical inaccuracies which persist when using the software renderer but render fine on realhw.

  1. The crowd textures, and only the crowd textures, render with a gray outline with some colorful pixels not seen on realhw. About 20 or so updates ago, this was a pink outline. This becomes more apparent when dumping the texture and loading a custom one, where an outline of colorful pixels not seen in the custom texture appear: default textures

custom textures

This texture does not have an extra outline on realhw. This is the only texture in the game affected by this issue.

  1. The game's prerendered FMVs appear only on the bottom half of the screen when running with any hardware renderer, as well as rapidly flashing, making it a serious seizure risk. When using the software renderer, it uses the top half of the screen, and stretches out along the bottom half, and does not flicker as seen below:

FMV

Here's what they should look like:

FMV ps2

It's important to note that this game's FMVs did work perfectly for a very long time, then one of the early Qt builds made it just display as a black screen, and a few updates later this started. It's been over a month and is has not been fixed yet.

  1. This one won't affect 99% of people who play the game, but it is an inaccuracy, so I need to report it. The game has debugging functions built-in, one of which is a wireframe view. The actual wireframe does not render properly on any renderer, even software. This is in stark contrast to realhw where it renders perfectly, the difference is night and day:

wireframe pcsx2

wireframe ps2

Reproduction Steps

Issue 1: Load into any course with a crowd.

Issue 2: Boot up the game and let the FMVs play

Issue 3: Use the game's documented pnach cheat file, open the debug menu, and change Patch Method to Wire.

Expected Behavior

Issue 1: Crowd texture should not have any outline or any colorful pixels.

Issue 2: FMVs should render properly.

Issue 3: The wireframe view should appear as it does in the second screenshot.

PCSX2 Revision

v1.7.3073

Operating System

Windows 10 (64bit)

If Linux - Specify Distro

No response

CPU

Intel Core i9-10900K

GPU

NVIDIA RTX 2080 SUPER

GS Settings

Show Overscan disabled. Doesn't affect any of the issues above but fixes the screen being too tall.

Emulation Settings

No response

GS Window Screenshots

No response

Logs & Dumps

GS dump for Issue 1: gs_20220715072528_Jonny Moseley - Mad Trix_SLUS-20229.zip

GS dump for Issue 2: gs_20220715072441_Jonny Moseley - Mad Trix_SLUS-20229.zip

GS dump for Issue 3: gs_20220715072541_Jonny Moseley - Mad Trix_SLUS-20229.zip

SlyCooperReloadCoded commented 2 years ago

Wanted to add something to this - the way FMV videos look actually changes depending on renderer. On Software they look like the screenshot I already posted. On Vulkan and Direct3D12 they only take up the bottom half of the screen and flash rapidly. On OpenGL and Direct3D11 they're duplicated, one on the top half of the screen, one of the bottom half of the screen, and the bottom one flashes rapidly.

Additionally, enabling interlacing detection prevents FMVs from rendering at all, causing them to be just a black screen.

ps1freak26 commented 2 years ago

Here's my findings

GS Dump 1: Fixed with screen offsets

GS Dump2: Fixed with opengl and vulkan with 4x res or higher. Pink with textures in DirectX 11 and 12. Fog goes away with high blending or higher I don't know if this is more accurate or not.

GS Dump3: Black void couldn't do anything about it.

Notes: Show overscan shows more of the game. There is missing information without it.

SlyCooperReloadCoded commented 2 years ago

These options make no change for me, they're all still there. Believe me I've tried everything. The thing is, they exist in software mode, which is supposed to be hardware-accurate.

Mrlinkwii commented 2 years ago

can you re-post a GS dump of that first issue , it looks like the GS dump you posted for it isnt the correct one :slightly_smiling_face:

refractionpcsx2 commented 2 years ago

Videos are fine for me (even without screen offsets)

image

The crowd issue is just something that happens if you upscale or use Anisotropic Filtering, not a bug, but a restriction in upscaling.

No clue about the debug mode.

refractionpcsx2 commented 2 years ago

Can confirm the dump 3 with the lines works on real hardware

image

ps1freak26 commented 2 years ago

For GS dump 2 turning off anisotropic filtering did work and high blending looks more like software mode.

SlyCooperReloadCoded commented 2 years ago

Here's the thing - none of these GS dumps have Anisotropic Filtering enabled. I've never had it on for this game, yet I have that problem. Also, videos are not fine for me. Screenshots with the different renderers:

Software with Screen Offsets disabled: software

OpenGL with Screen Offsets disabled: opengl

Vulkan with Screen Offsets disabled: vulkan

Vulkan with Screen Offsets enabled: vulkan screen offsets

Software and OpenGL with Screen Offsets enabled, still incorrect as they should fill the screen, but they're cropped weirdly here: softwareopengl

Additionally, as I showed in that first screenshot which uses Software mode (native res, no Anisotropic filtering) the crowd texture issue is there.

I should also mention that all of these issues exist back in 1.6.0 as well, with Software mode even. Additionally, the wireframe used to render differently on earlier 1.7.0 builds, where in the distance everything is shaded yellow but not close to the player.

Mrlinkwii commented 2 years ago

Here's the thing - none of these GS dumps have Anisotropic Filtering enabled. I've never had it on for this game, yet I have that problem. Also, videos are not fine for me. Screenshots with the different renderers:

A gs dump save 0 config settings , A GS dump is an export of instructions sent from the PS2 core to the "Graphics Synthesizer"

SlyCooperReloadCoded commented 2 years ago

Well then if the bug is caused by anisotropic filtering and upscaling, why is it happening with no anisotropic filtering or upscaling?

Either way, something is working differently for us:

refractionpcsx2 commented 2 years ago

@SlyCooperReloadCoded what version of PCSX2 are you running? can you check the exact version

SlyCooperReloadCoded commented 2 years ago

1.7.3212. I've updated many times between now and opening this issue. What's weird is that 1.4.0/1.5.0 always rendered the FMVs correctly regardless of settings, but starting at 1.6.0 and onwards, all these issues are present.

refractionpcsx2 commented 2 years ago

The crowd is broken when upscaling/aniso because of the way it's rendered, it's incompatible with those things. You can try to mitigate it with upscaling hacks, but I hold no promises.

Okay well the FMV is fine for me, are you using some sort of No interlacing patch or something?

SlyCooperReloadCoded commented 2 years ago

The game itself is not interlaced, so I have De-Interlacing set to none. It's been confirmed game doesn't use it at all, as without any no-interlacing patches, setting it to None causes no visual difference and no screen shaking. That setting does affect this which is weird but the game itself is not interlaced.

refractionpcsx2 commented 2 years ago

Don't set your deinterlacing to none, that will break it. leave it on auto. if the game is not interlaced it will automatically not interlace it.

Setting it to none kind of tries to massage it for no-interlacing patches and it will likely break it.

SlyCooperReloadCoded commented 2 years ago

Okay, I set it back to Automatic and videos are still completely broken for me on all renderers. They're now completely black.

refractionpcsx2 commented 2 years ago

Cool, well I dunno what to tell you then, it's fine here and setting deinterlacing to "none" breaks the videos exactly how you describe.

SlyCooperReloadCoded commented 2 years ago

Interlacing on: black screen with audio Interlacing off: all renderers display videos but they're either constantly flashing or cut off

I've adjusted literally every possible setting and I cannot fix this.

Vulkan renderer, interlacing option set to Automatic, no de-interlacing patches:

unknown

Strangely, software renderer now works better with these settings but is still stretched horizontally:

image

refractionpcsx2 commented 2 years ago

Please show all your settings, I'm pretty sure this is user error. Also please check both the per game (view->properties) and global (settings) versions of your graphics settings.

SlyCooperReloadCoded commented 2 years ago

Per-game: Capture Capture2

Globals: Capture3 4

I've tested changing all of these settings, one at a time, and none of them make a difference. Change one setting, launch game, close game, undo that change and change another setting, launch game, etc. I cannot find a combination of settings that works.

refractionpcsx2 commented 2 years ago

Why is your deinterlacing back to none?

SlyCooperReloadCoded commented 2 years ago

It's on automatic in the per-game config.

refractionpcsx2 commented 2 years ago

At this point, I'd just delete your main inis and your per game configs and start again, you've just made an absolute mess of everything.

SlyCooperReloadCoded commented 2 years ago

Okay, I nuked all my inis and custom configs, then set everything to the settings you recommended. FMVs are still unchanged, just a black screen. Also, same as before, if I set Interlacing to none, they render but incorrectly. Could this be a driver bug?

refractionpcsx2 commented 2 years ago

Could be, dunno, it works perfectly here. wouldn't hurt to update your drivers.

SlyCooperReloadCoded commented 2 years ago

I should mention that all other obviously interlaced games in my library still render their FMVs perfectly fine with De-Interlacing set to any of the options, even None. It's only this game. From 1.6.0 to now.

refractionpcsx2 commented 2 years ago

Okay, but No DeInterlacing has changed since 1.6 and is mainly designed for no-interlacing patches trying to trick the system in to thinking it's full 448 height when the PS2 could only do 240 (on analogue, without the 480p mode), so it's not really designed for general use, and it automatically uses it when a no-interlacing patch is enabled.

RedPanda4552 commented 2 years ago

Item 1 cannot reproduce (defaults, Vulkan 8x native) image

Item 2 cannot reproduce (defaults, Vulkan 8x native) image

Item 3 can reproduce (defaults, Vulkan 8x native) image

Worth noting replaying item 3 on a PS2 does produce the wireframes, however for some reason my PS2 is making everything pink: PXL_20220816_175737960 - Copy

refractionpcsx2 commented 2 years ago

@RedPanda4552 the pink is because you need to change between RGB and YPbPr

JordanTheToaster commented 2 years ago

Nothing here.

1: image

2: image

3: image

SlyCooperReloadCoded commented 2 years ago

I did a clean driver install. FMVs in this game and ONLY in this game are still completely bugged and unwatchable. I genuinely don't understand what the heck could possibly be going on here. Other people I've talked to that have tried this game have also reported FMVs being broken in the same exact way, so it's not just me, but how is it normal for so many people with the exact same settings?

I smell an edge case.

refractionpcsx2 commented 2 years ago

Are you all running custom patches or something? Have you verified your dump with redump?

Honestly, I have no answers for you, it works fine for all of us, so either your dump is bad, or you're using some patch which completely breaks the game.

SlyCooperReloadCoded commented 2 years ago

Everyone I've talked to before this reports the same thing as me. I've tried redumping it and the issue persists, disc is not scratched at all. Other people have redumped theirs and also reported no change. I've tried it across many different comptuers with wildly different hardware and dozens upon dozens upon dozens of different settings combinations and the issue persists. These few screenshots are the first times I've seen them work correctly!

refractionpcsx2 commented 2 years ago

Well I dunno what to tell you, not a single one of these "everyone" people you spoke to has reported it to us before now, it used to be patched on 1.6 but is no longer required (I know because I fixed the damn game).

So, I don't have an answer for you. Pixies did it, i guess.

SlyCooperReloadCoded commented 2 years ago

Interesting development. I went back to 1.4.0 stable where multiple people have told me it works perfectly, and it no longer works there.

SlyCooperReloadCoded commented 1 year ago

Small update on the wireframe not rendering properly - an old issue has returned which may shed some light on it. If you set LOD very low, then wireframe causes distant objects to become solid yellow:

image

Another screenshot of this:

image

Any idea what the issue could be seeing this?

Edit: a short clip of me moving the camera forwards, if it helps:

https://user-images.githubusercontent.com/58268914/194765431-2a9674ee-ae29-42a9-86ac-01e8c429ad26.mp4

SlyCooperReloadCoded commented 7 months ago

Wireframe still doesn't render in either software or hardware renderers as of v1.7.5500. Capture