RPCS3 / rpcs3

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

PPU: MFVSCR exception #1480

Closed AniLeo closed 7 years ago

AniLeo commented 8 years ago

MFVSCR instruction missing F {PPU[0x70000000] Thread (main_thread) [0x0025e2cc]} class std::logic_error thrown: MFVSCR instruction at 0x25e2cc (NPEA00007)

List of games affected:

tambry commented 8 years ago

@MyaniPT It ain't implemented on PPU Interpreter 2, but it should be fine on Interpreter 1.

AniLeo commented 8 years ago

Gotcha, with PPU Interpreter 1 it opens the GSFrame and goes (there's already an issue about it so I won't prolong myself)

{PPU Thread[0xc9] (HDD Game setup)[0x002f57d8]} HLE: Last function: cellHddGameCheck (0x9117df20) {PPU Thread[0xc9] (HDD Game setup)[0x002f57d8]} Exception: invalid map<K, T> key Please report this to the developers.

tambry commented 8 years ago

It also happens on GTA V.

zCrystal94 commented 8 years ago

PPU Interpreter 1 was broken by @Nekotekina merge And show this: {PPU[0x120] Thread ([RAGE] Dependency) [0x00a40ed4]} class std::runtime_error thrown: MFVSCR (in file C:\rpcs3\rpcs3\Emu\Cell\PPUInterpreter.cpp:182) {PPU[0x6] Thread (main_thread) [0x00a42bf8]} class std::runtime_error thrown: MFVSCR (in file C:\rpcs3\rpcs3\Emu\Cell\PPUInterpreter.cpp:182) Original posts: http://www.emunewz.net/forum/showthread.php?tid=156673&pid=231118#pid231118

Nekotekina commented 8 years ago

Precise interpreter has been removed with a TODO to restore it. If someone wishes to do it, it shouldn't be hard to restore all instructions using SAT flag (and MFVSCR as well) from the history and put them into ppu_interpreter_precise "namespace" (actually a struct). It just cannot be copied blindly from the history, it needs accurate porting. I didn't do it myself because most games don't use MFVSCR and I don't care about GTA V.

AniLeo commented 8 years ago

Also happens on:

(Will fill in more games when I find them)

MarioSonic2987 commented 8 years ago

Tested in https://github.com/RPCS3/rpcs3/commit/74fec275c71eaa4118bdca3eee3068c31f99c8be

{PPU[0x70] Thread ([RAGE] netThreadPool 1) [0x00b6bb34]} class std::runtime_error thrown: MFVSCR
(in file C:\rpcs3\rpcs3\Emu\Cell\PPUInterpreter.cpp:272)
{PPU[0x2] Thread (main_thread) [0x0001b358]} class std::runtime_error thrown: MFVSCR
(in file C:\rpcs3\rpcs3\Emu\Cell\PPUInterpreter.cpp:272)
AniLeo commented 7 years ago

Updated with current known list of affected games

dbz400 commented 7 years ago

Fixed by https://github.com/RPCS3/rpcs3/pull/2289 . Tested with Tori-Emaki

AniLeo commented 7 years ago

It's still not implemented but not crashing games anymore and already added to the roadmap so those listed above should be good to progress a little further