RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.36k stars 1.91k forks source link

Game freezes in Assassin's Creed series #12807

Open Zulthar opened 2 years ago

Zulthar commented 2 years ago

Quick summary

Assassin's creed 3, and 4 all freeze consistently near the beginning of the game, typically after a cutscene ends and gameplay starts

Details

No response

Attach a log file

RPCS3.log

Attach capture files for visual issues

No response

System configuration

No response

Other details

No response

Darkhost1999 commented 2 years ago

In order to play Assassin's Creed Brotherhood through to Rogue you currently need: PPU Interpreter Enable Accurate ppu non-java mode Disable non java mode fixup SPU Xfloat accuracy set to accurate Ordered and atomic FIFO accuracy.

Wetmelon commented 1 year ago

Assassin's Creed 3 (BLUS30991) Crashes with above settings, regardless.

config_BLUS30991.yml

RPCS3.log

Darkhost1999 commented 1 year ago

Assassin's Creed 3 (BLUS30991) Crashes with above settings, regardless.

Double check that the empty folder ASSASSIN_ISO exists inside PS3_GAME\USRDIR. Your game won't play without that directory when your game is a disc.

BLI-zz commented 1 year ago

when i apply those changes the game do not freeze anymore but i get a lot of dropframes instead.

Darkhost1999 commented 1 year ago

when i apply those changes the game do not freeze anymore but i get a lot of dropframes instead.

The settings are accuracy settings. You will experience horrible performance because you are trading the performance for the accuracy required for the game to load without freezing. It can go anywhere from decent 28fps consistency to sub 12 fps frequently.

BLI-zz commented 1 year ago

isn't there any solution or settings to minimize that horrible performance?

Darkhost1999 commented 1 year ago

You are welcome to try implementing Accurate ppu non-java mode for PPU LLVM making a Pull Request and testing the performance difference or we just gotta wait for this issue to be resolved once the specific cause(s) is/are found. It's possible even with Accurate ppu non-java mode for PPU LLVM that it'll still require interpreter.

BLI-zz commented 1 year ago

ok ,thank you for everything ,I really appreciate it.

mityasokolay commented 1 year ago

i also applied those settings, and it still freezes. i have the iso foulder

Darkhost1999 commented 1 year ago

Agreed this needs regression tested. But I'm not going to spend the 8 hours each build that I test playing these games at less than 22fps trying to figure out when the freeze fix settings stopped working to report the regression.

Point is the builds I was using when I made the comment played with no freezes for more than 50% completion on RPCS3 absolutely no issues beyond low performance and that additionally means low shader performance causing visual issues with Assassin's creed Brotherhood, revelations, 3, black flags, and Liberation.

I have the progress in each of these games in RPCS3 but something regressed and it just isn't feasible to test when it happened. It's unfortunate but you can always rollback to the versions of rpcs3 that worked.

mityasokolay commented 1 year ago

oh, thank you very much! do you know in which version of rpcs3 it worked?

mityasokolay commented 1 year ago

really appreciate it! THank you!

Darkhost1999 commented 1 year ago

https://github.com/RPCS3/rpcs3/pull/13917 RPCS3.log using Atomic RSX FIFO Accuracy and Accurate RSX reservation access. Still freezes. But I smell improvement and will be spending time re-evaluating my earlier comment https://github.com/RPCS3/rpcs3/issues/12807#issuecomment-1278125617 after the PR merges.

Darkhost1999 commented 1 year ago

I am testing games as working with only the ppu Interpreter (maybe atomic rsx fifo is needed) but you don't need my other setting suggestions that are old.

Ordinary205 commented 1 year ago

In order to play Assassin's Creed Brotherhood through to Rogue you currently need: PPU Interpreter Enable Accurate ppu non-java mode Disable non java mode fixup SPU Xfloat accuracy set to accurate Ordered and atomic FIFO accuracy.

Since you've marked this comment as outdated, then it needs to be re-edited on the RPCS3 wiki with the new configuration method, or not?

Darkhost1999 commented 1 year ago

I made the edits to the wiki. I made the comment to this github issue. The game's WERE just fine with ppu Interpreter + their ocean fixes. But then amidst the PRs and merge, merge, merge somewhere somehow the games freeze again. And I shouldn't have done anything.

Darkhost1999 commented 11 months ago

RPCS3.log I logged the kernel and found Memory Containers (1) Memory Container 0x3f000000: Used: 0x1000000/0x1000000 (16.00/16.00 MB) Does this have any effect on the freezes?

Darkhost1999 commented 4 weeks ago

To play Assassin's Creed Brotherhood through to Rogue you currently need: PPU Interpreter Enable Accurate ppu non-java mode Disable non-java mode fixup SPU Xfloat accuracy set to accurate Ordered and atomic FIFO accuracy.

I can validate those settings still fix the series random freezes and here is a log without those settings and logging kernel after freeze. RPCS3.log