PCSX2 / pcsx2

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

[VU Rounding Bug] Only backgrounds appear in Sonic Gems Collection - Sonic R's multiplayer modes. #1759

Closed Aced14 closed 7 years ago

Aced14 commented 7 years ago

PCSX2 version: v1.5.0-dev-1777-gb02cc6e (2017-01-09; b02cc6ecbe39f60daa5384fd137096de1b5e7069).

PCSX2 options: Defaults.

Plugins used: Defaults (GSdx32-AVX, LilyPad, SPU2-X, cdvdGigaherz, USBnull, FWnull and DEV9ghzdrk).

Non-default plugin settings:

Description of the issue: In Sonic Gems Collection, Sonic R's multiplayer modes suffer from a GSdx bug that makes them unplayable. The bug is present in all of GSdx's Direct3D11/OpenGL hardware and software renderers.

Specifically, in all levels, only the background appears in both players' viewports. No foreground objects (such as the level's 3D geometry, player characters, HUDs or pause menus) appear. It should be noted that all of them appear properly in single player.

Any chance GSdx's software and hardware modes could be enhanced to resolve this bug?

GS dump: Sonic Gems Collection - Sonic R in v1.5.0-dev-1777-gb02cc6e (OpenGL software)

Screenshots:

How to reproduce the issue:

  1. Launch PCSX2.
  2. Open GSdx's plugin settings and select OpenGL's software renderer.
  3. If a second controller isn't connected, open LilyPad's plugin settings and add a keyboard button mapping to allow player 2 to press X.
  4. Full boot the game (its menus are set to the same language as the PS2's BIOS).
  5. From the title screen, press start, decline both memory card setup screens (if they appear), select "GAMES", "SONIC R", press X at the controls screen, press start at the title screen, select "MULTI-PLAYER", "RACE", Sonic as player 1, Knuckles as player 2 and "RESORT ISLAND" as the level.
  6. Once the level has loaded, look for the level's 3D geometry, player characters and HUDs in both players' viewports.
  7. Press start to pause the game.
  8. Look for a pause menu.
  9. Steps 6 and 8 didn't work as expected. In step 6, only the level's background appeared. In step 8, no pause menu appeared.

Last known version to work:

PC specifications: CPU: Intel Core i7 2600K @ 3.4GHz; GPU: XFX Radeon HD 6970 2GB; GPU driver: Crimson 16.2.1 Beta; OS: Windows 7 SP1.

refractionpcsx2 commented 7 years ago

There's a chance that it might not be a GSDX bug if it happens in all modes. Can you try ZeroGS? We should at least see if there's the track appearing the GS through the GSDump.

trostboot commented 7 years ago

Can confirm it also happens with ZeroGS.

refractionpcsx2 commented 7 years ago

it might potentially be a core issue then. Can you try changing the VU's to SuperVU or playing with the rounding and clamping modes for both EE and VU?

trostboot commented 7 years ago

Fixed with EE round mode Positive or Nearest. Edit: Also fixed with VU round mode either Positive or Nearest independently of EE settings.

Edit: How likely are these to break other things? Given that Sonic R is part of a collection of games on the same disc.

refractionpcsx2 commented 7 years ago

try them and find out ;) If you find a setting that fixes it but not the other games, then we can make a gameDB entry to solve the issue.

I'd prefer the "Nearest" option to Positive, if you can.

Aced14 commented 7 years ago

@refractionpcsx2 What would you prefer between EE and VU round modes (since @trostboot mentioned adjusting either on their own helps)? Is one generally a better/safer bet to adjust than the other?

Regarding using gameDB entries to target specific ELFs in multi-ELF games, just out of curiosity, is there already a precedent for that?

When I skimmed through GameIndex.dbf just now, the following entry was the closest thing I found to a pre-existing example. But it seems to only produce a disc-wide console warning rather than an automatically-applied fix for the specific ELF it's needed for.

Serial = SCED-51657
Name   = Official Playstation Magazine - Demo Disc 33
Region = PAL-Unk
Compat = 5
[patches = 90C0E5F1]
    comment=Must enable FPU Negative Div Hack gamefix for Dakar 2 Demo
[/patches]
refractionpcsx2 commented 7 years ago

I prefer VU if possible, having the VU modified is more likely to cause graphical glitches and less likely to crash :P

interesting how setting either one to nearest fixes it, unless it transfers a value from the EE to the VU's somewhere.

Just concentrate on the main elf files, as you are only going to run those directly and the emulator will ignore any subsequent ones :)

trostboot commented 7 years ago

Just concentrate on the main elf files, as you are only going to run those directly and the emulator will ignore any subsequent ones :)

That's the problem, there's 16 full games in this collection, plus another 13 demos. Testing this will be a nightmare and take a while. I don't have any real experience with any of these games outside of Sonic R (because let's be real, when you can play Sonic R, you don't need other Sonic games :p).

@Aced14 If you have spent any time with any of the other games and want to test them, could you note which ones?

refractionpcsx2 commented 7 years ago

well as long as the games don't look to be freaking out, we can live with it, if there is founding to be a game later on that has problems, whoever is playing it can disable the automatic fixes :P

So just try the vu rounding set to nearest and go quickly through all the games testing each one for about 5 mins and make sure they seem to work okay, we will call it at that.

Aced14 commented 7 years ago

@trostboot I'm pretty much in the same boat as you with regards to Sonic R vs everything else lol.

@refractionpcsx2 Within the coming days, I'll try quickly going over all of the collection's games for a few minutes apiece (probably with a bigger focus on 3D games) to see if anything seems blatantly wrong in any of them with VU rounding on nearest. If things seem ok, I'll send over a PR to update the gameDB.

refractionpcsx2 commented 7 years ago

Awesome, thank you :)

Don't forget any of the other versions of the gems collections (of that's what you have)

Aced14 commented 7 years ago

I ended up testing out VU rounding on nearest in every single game/demo in the NTSC-J version of the collection for a few minutes apiece. Things seemed ok to me.

I did run into a handful of minor graphics bugs in 2-3 games, but they don't appear to have been related to VU rounding. I believe they were bugs in the original games and/or issues with the collection's own emulators (not PCSX2's problem).

@refractionpcsx2 @trostboot Thanks so much for your help :)!

refractionpcsx2 commented 7 years ago

Excellent :) good work! I will go through adding vu rounding to "nearest" tonight :)

It is the sonic gems collection, right?

Aced14 commented 7 years ago

@refractionpcsx2 You definitely already know this by now, but I opened PR #1778 just before posting my previous comment in this issue. The game in question is Sonic Gems Collection.

refractionpcsx2 commented 7 years ago

You are a star, thank you for doing that :)

dizzzy77 commented 5 years ago

@Aced14 , what region is SCED-51657 from? It seems to be a regional OPS2M variant we're trying to find and preserve at redump.org

Aced14 commented 5 years ago

@dizzzy77 Not sure since I don't own that demo disc. I presume it's a regional variant of Official PlayStation 2 Magazine Demo 33.

The only reason I brought it up was because I was looking through GameDB (GameIndex.dbf) for examples of multi-ELF games with patches that appeared to be intended for a specific ELF. The only relevant entry I found was for that demo disc.

Maybe @refractionpcsx2 would know? Looks like he initially added SCED-51657 to the GameDB in commit 42a4c7d3680efae5ca467c87c49452b6e1800c8f.

Aced14 commented 5 years ago

@dizzzy77 Here's the PCSX2 forum thread that lead to commit 42a4c7d3680efae5ca467c87c49452b6e1800c8f: