RPCS3 / rpcs3

PS3 emulator/debugger
https://rpcs3.net/
GNU General Public License v2.0
14.69k stars 1.86k forks source link

PPU: Discrepancies between Interpreter and Recompiler #2909

Closed MarioSonic2987 closed 5 years ago

MarioSonic2987 commented 7 years ago

List of broken games with PPU recompiler (LLVM):

AniLeo commented 7 years ago

@Zangetsu38 Can you post that game you had with broken graphics on LLVM but not Interpreter?

digitaldude555 commented 7 years ago

LLVM issues. Yakuza 1-2 F {PPU[0x1000000] Thread (main_thread) [0x003194a0]} class std::runtime_error thrown: Unregistered PPU function

Silent Hill Homecoming F {PPU[0x1000000] Thread (main_thread) [0x0004032c]} MEM: Access violation writing location 0x0

Initial D and Batman Arkham Asylum just don't open any windows with LLVM.

Zangetsu38 commented 7 years ago

Burn Zombie, Yes RPCS3.txt

MarioSonic2987 commented 7 years ago

image Fixed by https://github.com/RPCS3/rpcs3/commit/77c4982dd98aa56b40d2bd9d9d39962b84b20f29.

16bitblastprocessing commented 6 years ago

Fallout 4 GOTY Edition only throws out the unregistered PPU function when using PPU LLVM.

·F 0:00:48.967350 {PPU[0x1000005] Thread (Miles Thread) [0x00cd9e14]} class std::runtime_error thrown: Unregistered PPU function

RPCS3.txt

Asinin3 commented 6 years ago

Gauntlet 2 Game displays black screen with LLVM and gives this error: F {PPU[0x1000003] Thread (Thread 0) [0x000d7fb4]} MEM: Access violation reading location 0x8

Dare to Fly! Blackscreen with LLVM

Turok E {PPU[0x1000004] Thread (ThreadedMain) [0x00d4bd80]} 'sys_memory_allocate' failed with 0x80010004 : CELL_ENOMEM [1] F {PPU[0x1000004] Thread (ThreadedMain) [0x00d4bd84]} MEM: Access violation writing location 0x5cd2834

Truck Racer F {PPU[0x1000000] Thread (main_thread) [0x00c2a7a0]} class std::runtime_error thrown: Unregistered PPU function

Derrick the Deathfin F {PPU[0x1000000] Thread (main_thread) [0x00b0b05c]} class std::runtime_error thrown: Unregistered PPU function

Helldivers F {PPU[0x1000000] Thread (main_thread) [0x0002481c]} class std::runtime_error thrown: Unregistered PPU function

Entwined F {PPU[0x1000005] Thread (UnityMain) [0x00d6ea10]} class std::runtime_error thrown: Unregistered PPU function

Never Alone F {PPU[0x1000005] Thread (UnityMain) [0x00cfea9c]} class std::runtime_error thrown: Unregistered PPU function

Stick it To The Man F {PPU[0x1000004] Thread (UnityMain) [0x00c946a4]} class std::runtime_error thrown: Unregistered PPU function

Teslagrad F {PPU[0x1000005] Thread (UnityMain) [0x00d6fef8]} class std::runtime_error thrown: Unregistered PPU function

The Bridge F {PPU[0x1000005] Thread (UnityMain) [0x00cfe160]} class std::runtime_error thrown: Unregistered PPU function

Rain F {PPU[0x1000004] Thread (UnityMain) [0x00961a60]} class std::runtime_error thrown: Unregistered PPU function

Zombeer F {PPU[0x1000004] Thread (UnityMain) [0x00c9c584]} class std::runtime_error thrown: Unregistered PPU function

ConstantC F {PPU[0x1000005] Thread (UnityMain) [0x00d568ec]} class std::runtime_error thrown: Unregistered PPU function

Malicious F {PPU[0x1000000] Thread (main_thread) [0x011bc310]} class std::runtime_error thrown: Unregistered PPU function

Fuse (Both are nothing but atleast Interpreter opens a game window.) LLVM: F {PPU[0x1000000] Thread (main_thread) [0x0055f7f8]} class std::runtime_error thrown: Trap! (0x55f7f8) Interpreter (fast): F {PPU[0x1000000] Thread (main_thread) [0x0055f7f8]} class std::runtime_error thrown: Trap! (in file C:\rpcs3\rpcs3\Emu\Cell\PPUInterpreter.cpp:3093)

Mhmmm commented 6 years ago

Game works good with Interpreter, but is not working with LLVM

Tales from Space: About a Blob (Playable Demo) NPEB00388 F {PPU[0x1000000] Thread (main_thread) [0x007c24e0]} class std::runtime_error thrown: Unregistered PPU function

jjsat commented 6 years ago

Deus Ex Human Revolution Directors Cut (BLES01928) has some broken graphics with LLVM. It is not present with the fast or precise interpreter. Some characters are drawn horizontally and vertices are messed up when characters talk.

grafik grafik

zekesonxx commented 6 years ago

Fallout 3 (BLUS30185) also affected, loads and mostly functional on either of the PPU interpreters, but crashes on the LLVM recompiler:

{PPU[0x1000005] Thread (Miles Thread) [0x010a9bd8]} St13runtime_error thrown: Unregistered PPU function

RPCS3.log.gz

Nezarn commented 6 years ago

Initial D Extreme Stage (BLJM60055)

If loading savegame: F {PPU[0x1000022] Thread (load_data) [0x0032ba60]} MEM: Access violation reading location 0x40fe007c If starting new game: F {PPU[0x1000000] Thread (main_thread) [0x0032ba60]} MEM: Access violation reading location 0x552a422e

D8174 commented 6 years ago

Civilization Revolution (BLES00238)

After intro video with PPU recompiler: F {PPU[0x100000a] Thread (Miles Thread) [0x00f6678c]} class std::runtime_error thrown: Unregistered PPU function

Gets further with interpreter but After selecting a civilization: F {PPU[0x1000000] Thread (main_thread) [0x00ab6088]} MEM: Access violation reading location 0x0

unk0wn-u53r commented 6 years ago

Tom Clancy's Splinter Cell Triology HD Part 1 working but Pandora Tomorrow and Chaos Theory bring the same Error: MEM: Access violation writing location 0xd0128ff0 ... Game is broken in EUR Version

D8174 commented 6 years ago

Update to Civilization Revolution (BLES00238): With interpreter it gets in game (past choosing a civ) but still no change with recompiler.

Subarasheese commented 6 years ago

Daytona USA (NPUB30493) also has problems on LLVM. It has flickering textures, regardless of GPU settings. The graphics are perfect on Interpreter, though.

new

If the game is paused, the graphics are rendered correctly:

new

JackTerok commented 6 years ago

Portal 2 also doesn't work on LLVM.

E PPU: LLVM: [0x1825d0] Unsupported relocation(11) in 'tier0_ps3.sprx'. Please report.

Zangetsu38 commented 6 years ago

no forget problem alkso with Infamous serie on llvm, texture glitched, but fine in ppu fast

MarioSonic2987 commented 6 years ago

Batman: Arkham Asylum has broken animations with PPU recompiler (LLVM).

PPU interpreter (fast): image

PPU recompiler (LLVM): image

LukeUkk commented 6 years ago

Jak and dexter collection E {PPU[0x1000007] Thread (fios mediathread 2) [0x0172c090]} 'sys_fs_open' failed with 0x80010006 : CELL_ENOENT, “/dev_bdvd/PS3_GAME/USRDIR/data/Jak2/jak2/game/dgo1/iso.txt” [1]

F {PPU[0x100000d] Thread (GOAL) [0x0001858c]} class std::runtime_error thrown: Unregistered PPU function

Oh just changed the PPU it works but is laggy

paxsyr commented 6 years ago

4732 Fixed the Infamous 1 (and probably Infamous 2) textures.

Before:

infamous before

After:

infamous after
Xcedf commented 6 years ago

Not listed in this issue but this PR also fixed Saints Row II with LLVM before: 5

after: 4

and Metro Last Light LLVM broken graphic and crash fixed before: 6 after: 12

JayDi85 commented 5 years ago

Metal Gear Solid: Peace Walker HD errors (black screen on start with ppu LLVM, works fine with fast interpreter):

Main error: E {PPU[0x1000000] Thread (main_thread) [0x00c83160]} PPU: Unregistered function called (LR=0xc4b644)

Other errors:

E PPU: LLVM: [0x00ca9e28] Error: MTFSF
E PPU: LLVM: [0x00ca9fa0] Error: MFFS
S {PPU[0x1000000] Thread (main_thread)} SPU: SPU Recompiler Runtime (LLVM) initialized...
U {PPU[0x1000000] Thread (main_thread) [0x01c03d8c]} HLE TODO: Unimplemented syscall sys_ss_access_control_engine -> CELL_OK
U {PPU[0x1000000] Thread (main_thread) [0x01c02efc]} sysPrxForUser TODO: sys_prx_load_module_list(count=7, path_list=**0xd0100bfc, flags=0x0, pOpt=*0x0, id_list=*0xd0100bdc)
...
U {PPU[0x1000000] Thread (main_thread) [0x022b41c4]} HLE TODO: Unimplemented syscall sys_ss_access_control_engine -> CELL_OK
...
U {PPU[0x1000000] Thread (main_thread) [0x01ca7d80]} sys_spu TODO: Unimplemented SPU Thread options (0x2) x4
U {PPU[0x1000000] Thread (main_thread) [0x01cade58]} sys_prx TODO: _sys_prx_get_module_id_by_name(name=“cellLibprof”, flags=0, pOpt=*0x0)
E {PPU[0x1000000] Thread (main_thread) [0x01cade58]} 'sys_prx_get_module_id_by_name' failed with 0x8001112e : CELL_PRX_ERROR_UNKNOWN_MODULE [1]
...
E {rsx::thread} RSX: NV3089_IMAGE_IN_SIZE: Invalid blit dimensions passed
U {PPU[0x1000000] Thread (main_thread) [0x00c8a4c8]} cellSysutil TODO: cellVideoOutConfigure(videoOut=0, config=*0x19e4f7c, option=*0x0, waitForEvent=0)
...
E {PPU[0x1000000] Thread (main_thread) [0x00c83160]} PPU: Unregistered function called (LR=0xc4b644)

Full logs dump.

Version and specs:

RPCS3 v0.0.5-7234-21e191111 Alpha | HEAD Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz | 8 Threads | 15.96 GiB RAM | AVX

stride21 commented 5 years ago

Killzone 3: {PPU[0x1000000] Thread (main_thread) [0x00abbc94]} class std::runtime_error thrown: Unregistered PPU function

ghost commented 5 years ago

Singularity [BLUS30296]

Game starts with "Interpreter (fast)", but is not working with LLVM.

{PPU[0x1000000] Thread (main_thread) [0x00b5d508]} class std::runtime_error thrown: Unregistered PPU function

Version: rpcs3-v0.0.5-7498-f4fb5200_win64

RPCS3.log.gz

ghost commented 5 years ago

Teslagrad [BLES02134]

Game starts with "Interpreter (fast)", but is not working with LLVM.

{PPU[0x1000005] Thread (UnityMain) [0x011cfebc]} class std::runtime_error thrown: Unregistered PPU function

Version: rpcs3-v0.0.5-7510-7f1cbb11_win64

RPCS3.log.gz

isshininu commented 5 years ago

The Evil Within [BLES01916] does not return error with SPU LLVM now.

stride21 commented 5 years ago

Beyond Two Souls needs PPU Fast to continue from a save or load chapters.

{SPU[0x2000003] Thread (QDSpursCellSpursKernel3) [0x0451c]} MEM: Access violation reading location 0x3c0 {SPU[0x2000001] Thread (QDSpursCellSpursKernel1) [0x0451c]} MEM: Access violation reading location 0x210 {SPU[0x2000000] Thread (QDSpursCellSpursKernel0) [0x0451c]} MEM: Access violation reading location 0x210 {SPU[0x2000002] Thread (QDSpursCellSpursKernel2) [0x0451c]} MEM: Access violation reading location 0x1f80

toccata10 commented 5 years ago

Sky Force Anniversary [NPUB31813] stops with F {PPU[0x1000005] Thread (UnityMain) [0x0156febc]} St13runtime_error thrown: Unregistered PPU function Another Unity game. Hopefully someone will improve all these games in one nice PR. rpcs3-v0.0.5-7678-52ac0a90_linux64 RPCS3-SkyForce.zip

Krusher97 commented 5 years ago

Dead Nation does not boot in PPU LLVM, stopping with an unregistered PPU function error. rpcs3_2019-01-28_16-02-12 Dead Nation.gz

Krusher97 commented 5 years ago

Add Vessel to the list rpcs3_2019-02-02_17-04-36 RPCS3.log.gz

Krusher97 commented 5 years ago

[NPUB31184] NINJA GAIDEN 3: Razor's Edge Crashes after the Tecmo logo in PPU LLVM Recompiler Goes ingame with Interpreter fast rpcs3_2019-02-03_16-04-31 RPCS3.zip

GreatApo commented 5 years ago

Dead Nation does not boot in PPU LLVM, stopping with an unregistered PPU function error. rpcs3_2019-01-28_16-02-12 Dead Nation.gz

[NPEA00143] Dead Nation (v1.08) Up until loading the first level it works with Interpreter fast/precise

Log with Interpreter precise: Interpreter precise - log.txt

image

uaqlover commented 5 years ago

Pro Evolution Soccer 2014 Pro Evolution Soccer 2015 Pro Evolution Soccer 2016 Pro Evolution Soccer 2017 Pro Evolution Soccer 2018

Game starts with "Interpreter (fast)", but is not working with LLVM. RPCS3 2014.log.gz RPCS3 2015.log.gz RPCS3 2016.log.gz RPCS3 2017.log.gz RPCS3 2018.log.gz

uaqlover commented 5 years ago

CounterSpy™ [NPUA80870]

Game starts with "Interpreter (fast)", but is not working with LLVM.

RPCS3 CounterSpy™ [NPUA80870].log.gz

elad335 commented 5 years ago

Retest with #5749 games which die with "unregistered ppu function" (most of the games here). Also report performance changes compared to interpreter. edit: clear ppu llvm cache first!

digitaldude555 commented 5 years ago

With elad pr cash gun chaos goes ingame now, probably playable.

D8174 commented 5 years ago

With the PR, Sid Meier's Civilization Revolution [BLES00238] now goes ingame with LLVM + OpenGL where it didn't before.

However I get this with LLVM + Vulkan when going ingame: error

LLVM + Vulkan Ingame FPS: 5-14 idling LLVM + OpenGL Ingame FPS: 3-6 idling (5-11 with Lower SPU priority) Interpreter (fast) + OpenGL Ingame FPS: 2-4 idling (3-6 with Lower SPU priority) Interpreter (fast) + Vulkan Ingame FPS: 2-4 idling Interpreter (precise) + Vulkan Ingame FPS: 2-4 idling

legend800 commented 5 years ago

Unfortunately, Splatterhouse mem error with PPU LLVM not impacted. Still get it at the beginning of the levels. You can load a lvl with PPU Inter., save and then load save with PPU LLVM as a workaround.

F {PPU[0x1000000] Thread (main_thread) [0x00df5054]} MEM: Access violation reading location 0x11e

2019-03-20 18_20_26-Window

RPCS3.zip

Zangetsu38 commented 5 years ago

it is fixed for me, Like AMY/Killzone 3/the evil within, rain image

elad335 commented 5 years ago

Initial D Extreme Stage is now fixed in #5749

elad335 commented 5 years ago

I won't bump llvm cache version again so for testing you must delete rpcs3/cache dir contents manually. Can someone test Sonic Unleased issue with my pr? (access violations when hitting fences)

Emulator-Team-2 commented 5 years ago

Now these games work with PPU LLVM. #5749 👍 -Silent Hill: Homecoming
-Initial D Extreme Stage -Way of the Samurai 3

1 2 3

elad335 commented 5 years ago

@legend800 Whats the current status of splatterhouse with the pr?

legend800 commented 5 years ago

@elad335 Thanks for asking. Checked latest build, cleared cache but still no change. :(

RPCS3.zip

Let me know if there's anything else you need.

This game is so close to being playable (PPU Inter. = 10 fps). It's just something screwy at the start of levels. Fingers crossed you can figure out this long standing issue to make this (awesome) game fully playable in this PR.

scribam commented 5 years ago

I would be interested to know if PR https://github.com/RPCS3/rpcs3/pull/5797 also helps some games to run with PPU LLVM. Let me know if you notice any changes.

digitaldude555 commented 5 years ago

@scribam unity games and cash gun chaos are unchanged with your pr.

digitaldude555 commented 5 years ago

Close issue or...?

elad335 commented 5 years ago

Retest and report what has changed, if there are only handful of games left here can close and repopen new issue.

digitaldude555 commented 5 years ago

Alright, I can test mariosonics unchecked games. So far alienspidy, constant c and cosmophony work with LLVM. Hyperballoid also fixed.

MarioSonic2987 commented 5 years ago

Due to there's only a few games which still don't work with PPU LLVM (most of them aren't due to unregistered PPU function error), I'll close this issue and open a new one.