ppsspp
ppsspp copied to clipboard
Tom Clancy's Splinter Cell - Essentials (USA) Load status issue
(Separate issue from #13035
Save status in-game,
Re-run ppssspp
Load game,load save status
boom (v1.10)

This is a very bad issue , load state freeze , graphical glitch :'(
I cannot reproduce this in v1.11.3 but I can reproduce this again in v1.12.2-9 see ~ https://github.com/hrydgard/ppsspp/issues/15020
edit: can still reproduce since the oldest version.
If you can go to 0881c21c in the debugger or web debugger, and show the code around that address, it might be helpful. I'm wondering if it's an HLE call or a direct memory access.
-[Unknown]
Still hang on the latest build IDK if this log is useful
<<< log_count = 1 >>>
[10-20 22:29:30.235 17805:17805 F/DEBUG]
pid: 15688, tid: 17732, name: Thread-47 >>> org.ppsspp.ppsspp <<<
This might be related to this https://github.com/hrydgard/ppsspp/issues/7244?
v1.13.2-1044-g4b165f9fc
blue screen

@hrydgard @unknownbrackets does we have Jit Invalidation in save and load states ?
I try to use "Interpreter" in save and load still same result
We do have jit invalidation in load/save state. I'm still interested in the code around 0881c21c.
-[Unknown]
This is after load status

I wonder if what's happening is, the game copies some RAM that had executed, and it "happens" to work because the replacement/hack still works. But then save/load state don't clear THAT replacement, because it's unknown to PPSSPP.
If you go to the memory viewer, what does it show for "allocation" and "write" under that address? It'll show a label in the status bar when you click the address, indicating what last allocated of wrote that address.
Anyway, it may also be something earlier and there may be nothing wrong with this replacement. If it says it's from the ELF, it's fine.
-[Unknown]
In "allocation" show ELF,in "write" show ELFload

It's also a bit odd seeing a replacement in a delay slot...
If you set FunctionReplacements = False in ppsspp.ini, does that make save states load fine? Not sure if we could have a bad func detection, maybe? It doesn't seem to have given the function a name.
That said, if it is being detected correctly, it might just be a symptom from somewhere else.
-[Unknown]
Load in FunctionReplacements = True of save states or make a new save states ( FunctionReplacements = False) then load states seem no problem now
@unknownbrackets Can we work around this ? After press load status -> reset game -> force FunctionReplacements = False ->Real load status -> force FunctionReplacements = True ?