Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pcsx2: mBit Synchronization Improvement #3181

Closed
wants to merge 2 commits into from

Conversation

lightningterror
Copy link
Contributor

@lightningterror lightningterror commented Dec 21, 2019

Slightly improves mbit sensitive games, but still not perfect.

Here's the status on the known games:
Totally Spies - Less shit but still spikey,
Mike Tyson Heavyweight - The characters now have animation but they're
all black and spikey,
My Street - You can now see the characters but they are a bit spikey,
but probably playable.

All credits go to Refraction.

Description: This PR will improve synchronisation which gets done between COP2 and VU0 when hitting m-Bit flags on VU0 micro programs. Currently the microVU recompiler massively overshoots these, this PR serves to resolve this.

@ghost ghost added the COP2/VU0 Sync - Mbit Issues related to Mbit problems in PCSX2. label Dec 21, 2019
@refractionpcsx2
Copy link
Member

Just to note, although these games aren't perfect, it's probably the closest they're going to get on PCSX2 without completely overhauling COP2/VU0/EE synchronisation, which isn't going to happen.

Slightly improves mbit sensitive games, but still not perfect.

Here's the status on the known games:
Totally Spies - Less shit but still spikey,
Mike Tyson Heavyweight - The characters now have animation but they're
all black and spikey,
My Street - You can now see the characters but they are a bit spikey,
but probably playable.
@lightningterror
Copy link
Contributor Author

lightningterror commented Jan 14, 2020

It breaks Tri-Ace games so we will close this.
Maybe reopen it if a better solution is found.

@lightningterror lightningterror deleted the mbit-improvements branch January 14, 2020 20:29
@ghost
Copy link

ghost commented Feb 24, 2020

Sorry for reviving that PR, but maybe is something worth to think about.

https://i.imgur.com/LpYuG5f.jpg

Maybe this can be added as gamefix? That way it won't break anything cause it can be enabled only while game that need it is loaded. I compiled version for test purposes, and things seems to work fine. Basically creating gamefix from this is as simple as adding interface/setting itself, and minor change to @refractionpcsx2 code in microVU_Compile.inl to check for this setting while processing mbit. As a example change made to recompiler code:

			else if (mVUup.mBit && !mVUup.eBit && !mVUinfo.isEOB && CHECK_MBITHACK) {
				mVUsetupRange(mVU, xPC, false);
				incPC(2);
				mVUendProgram(mVU, &mFC, 0);
				incPC(-2);
				goto perf_and_return;
			}
		}

There are fixes for 1 game like FFX ipu one or, TLB preload for Goemon, or Scarface. So adding fix that get few games to work as playable, and few others to near to playable seems to be worth it.

Games that goes to playable are:

24 The Game - require additional 2 lines pnach, and correct rounding, fix massive slowdown
Gift - Fix in game FPS (game show 60 fps, but is not even close without mbit handling)
Woody Woodpecker - same as above. Even more noticeable.
My street - Almost perfect on mbit branch with additional pnach.
Probably other Eko Software games.

Games that work better, but not 100% fixed:

Mike Tyson Heavyweight - require additional 3 lines pnach
Totally Spies - Less shit but still spikey.

I'm aware this isn't perfect solution. Some testing is required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
COP2/VU0 Sync - Mbit Issues related to Mbit problems in PCSX2. Core Needs testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants