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

Gran Turismo Improvements #13917

Merged
merged 15 commits into from
Jun 2, 2023
Merged

Gran Turismo Improvements #13917

merged 15 commits into from
Jun 2, 2023

Conversation

elad335
Copy link
Contributor

@elad335 elad335 commented May 24, 2023

I've been laying low lately because I've been working on imprvements to Gran Turismo 5' stability. After many hours debugging and head-racking here are all the fixes to make GT5 not freeze anymore, enjoy.

One thing to not is that you need RSX FIFO Accuracy set to Atomic and enable Accurate RSX reservation access.
Fixes #10882

@@ -267,7 +267,8 @@ error_code _sys_timer_start(ppu_thread& ppu, u32 timer_id, u64 base_time, u64 pe
{
std::lock_guard lock(timer.mutex);

if (!lv2_obj::check(timer.port))
// LV2: Simple nullptr check, nothing complex (do not use lv2_obj::check here)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment can be improved by explaining why lv2_obj::check is incorrect here or if maybe it's just unnecessary.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better explained.

Copy link
Contributor

@kd-11 kd-11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm. Will wait for neko's review.

@@ -3754,7 +3761,7 @@ bool ppu_initialize(const ppu_module& info, bool check_only)
settings += ppu_settings::accurate_nj_mode, settings -= ppu_settings::fixup_nj_denormals, fmt::throw_exception("NJ Not implemented");

// Write version, hash, CPU, settings
fmt::append(obj_name, "v5-kusa-%s-%s-%s.obj", fmt::base57(output, 16), fmt::base57(settings), jit_compiler::cpu(g_cfg.core.llvm_cpu));
fmt::append(obj_name, "v5-kusa-gt-%s-%s-%s.obj", fmt::base57(output, 16), fmt::base57(settings), jit_compiler::cpu(g_cfg.core.llvm_cpu));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why gt?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be just for the test, before merge this should become just v6 I'm guessing

static_cast<ppu_thread*>(cpu)->gpr[3] = CELL_EBUSY;
}

if (mode == 1)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (mode == 1)
else if (mode == 1)

@ghost
Copy link

ghost commented May 24, 2023

@elad335 Will this also affect GT5 Prologue and GT6?

@Satan86
Copy link

Satan86 commented May 24, 2023

@elad335 Will this also affect GT5 Prologue and GT6?

Yes.

@readywer
Copy link

readywer commented May 26, 2023

The audio "desync"(audio cut out) still happens sometimes. The easyest way that works for me is to trigger is to start World Compact Car Race/ Cape ring two times in a row.

@hoholee12
Copy link

this pr has eliminated GT6 desyncs for good. this is amazing.

@AniLeo
Copy link
Member

AniLeo commented Jun 2, 2023

Use support platforms if you need support, don't ping further in this PR

https://github.com/RPCS3/rpcs3/wiki/How-to-ask-for-Support

@RPCS3 RPCS3 locked as resolved and limited conversation to collaborators Jun 2, 2023
@RPCS3 RPCS3 deleted a comment from possiblyRZ Jun 2, 2023
@RPCS3 RPCS3 deleted a comment from possiblyRZ Jun 2, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bug: Gran Turismo 5/6 desyncs
9 participants