PCSX2 / pcsx2

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

Compatibility difference between release and development builds. #2930

Open ghost opened 5 years ago

ghost commented 5 years ago

PCSX2 version: 1.5dev 3044

Description of the issue: Various games goes ingame with development builds while they can't pass the loading screen with release builds.

With development builds:

image

With release builds:

image

Affected games (incomplete):

How to reproduce the issue: Load one of these games with booth the release and development builds and observe the issue.

Not a regression

PC specifications: AMD FX8350 GTX 1060 Gskill 16Gb

lightningterror commented 5 years ago

There is a bunch of code for dev releases only, maybe some can be adjusted to be present for release builds. You'd need to know where to look tho and what the game does, are there any console logs that show anything unusual/useful?

prafullpcsx2 commented 5 years ago

World Series Baseball 2k3 can be added to the list.

ghost commented 5 years ago

In ESPN Major league baseball, Gif Unit - GS packet size exceeded VU memory size! is consistently spamming in the console in release builds and it crash on a VU1 command

Gif Unit - GS packet size exceeded VU memory size! Gif Unit - GS packet size exceeded VU memory size! Gif Unit - GS packet size exceeded VU memory size! microVU1: Cached Prog = [596] [PC=14f8] [List=02] (Cache=5,497%) [3,4mb]

lightningterror commented 5 years ago

Is there a difference between the logs Dev vs Release?

ghost commented 5 years ago

Yes, these Gif Unit - GS packet size exceeded VU memory size! are not on the dev release.

lightningterror commented 5 years ago

Try messing with the IsDevBuild variable. Maybe you'll hit lucky.

https://github.com/PCSX2/pcsx2/blob/2e1db411fa95cf4ac6e65a345014c4753a245d96/pcsx2/Gif_Unit.h

ghost commented 4 years ago

For ESPN major league baseball, and World Series Baseball 2k3 this will be probably that code:

https://github.com/PCSX2/pcsx2/blob/6e22efe790a99d9750b407acd4690cc8b93d34d5/pcsx2/x86/ix86-32/iR5900-32.cpp#L1057 https://github.com/PCSX2/pcsx2/blob/6e22efe790a99d9750b407acd4690cc8b93d34d5/pcsx2/x86/ix86-32/iR5900-32.cpp#L1384

As those games use same engine as Marvel Nemesis: Rise of the Imperfects, and enabling that allow it to goes ingame. https://github.com/PCSX2/pcsx2/issues/1323#issuecomment-590815178

ghost commented 4 years ago

For Wakeboarding Unleashed Featuring Shaun Murray difference is here:

VU1 is not allowed to out of loop early (force exit) on release builds when analyze with mVUtestCycles, that's correct behavior. https://github.com/PCSX2/pcsx2/blob/b5625ad8b08ddfc3158d1d19aa5e616994fce993/pcsx2/x86/microVU_Compile.inl#L359

if other games from list also show message microVU1 Warning: Exiting from Possible Infinite Loop when running on devbuild. Then is the same thing that make difference between builds.

For Wakeboarding Unleashed Featuring Shaun Murray devbuild give better result because game really can't get out of loop without m bit handling. No idea that other games share the same code path.

Also i was really wrong in comment that i made 25feb. I didn't noticed that refraction fixed one of COP2 instructions, and that was what allowed Marvel Nemesis: Rise of the Imperfects goes ingame. I just used latest code then from github, and thought that my change made difference, but it was refraction commit in mean time that fixed it. Sorry for confusion.

MrCK1 commented 1 month ago

I would say R&C no longer crashes, the other 3 games need to be validated here

shaun murray pro skater

ESPN major league baseball

World Series Baseball 2k3