-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Save State -> Load state changes in-game mechanics in "Jackass: the Game" #12083
Comments
Can you try the latest git build? It's possible some of the scePower changes (since v1.8.0) could have some impact to this. But also, there was a bug (I thought it was fixed in v1.8.0, but maybe only in git builds) where loading state and resetting emulation would not update the cpu clock properly. If you show the log console (Debug -> Log Console), does it show any red or yellow messages? Especially when loading or saving state? If you change the CPU clock (under System settings) to 100 or 400, does it change any of this behavior? -[Unknown] |
Thanks [Unknown] for your response!
Sure. Do I need to download the latest state of repo, or the latest release (under releases)? I will need to download compiling tools and other things, but I will get you know once I get the results. Also, if this is of any help, I believe the problem dates back to PPSSPP 0.7 era, and I think I remember even back then doing something similar
Heh, aplenty. And all in red. Both 1.7.4 and 1.8.0: When starting the game (to the main menu), it prints,
1.8.0 only: Right before timers glitch out,
Both 1.7.4 and 1.8.0: After the timers glitch out, one or tons of these,
Interestingly, if I try workaround (described in the first post), and it doesn't work out (which is kinda like the old PSP 3000 TIFF jailbreak - it only works when feels like it), the error gets re-printed. Always the same line, with the same value and (I suppose) address Strangely enough, no error messages on:
Not for values about 100 or 400. The video gets either too slow or too fast (too smooth), but the gameplay does not seem to be affected (including the in-game timers). I think I found yet another interesting detail, but it requires a bit of context, There is minigame of "Party boy", and as I mentioned in my post, it is not playable and requires cheating. The minigame is about pressing the right buttons at the right times. It always breaks no matter when do you apply the workaround, but it does so always at one particular place. Anyway, I tried to lower the CPU clock down to the extreme values (~12 MHz) and tried the workaround, and to my own surprise, after I loaded the state the "dancing timeline" slighly progressed off the place it breaks on usually. Not sure what to make out of this. Nothing too exciting in the log window though |
The easiest way is to just download the latest build from here: https://buildbot.orphis.net/ppsspp/ If you want to compile it, you mostly only need Visual Studio 2019 Community, and I'd suggest using a recursive git clone. Otherwise, it's designed to be easy to compile without lots of dependencies or hardcoded paths. That said, I think the prebuilt binaries should work fine. But based on your other answers, I suspect the latest git build won't help after all.
Interesting. This might mean an Atrac 3+ buffer issue or stream error, most likely. In theory, save state / load state should not change the behavior of that, but this might point toward the bug. We do have to reload data into ffmpeg on load state.
It does look like an address, but 0xbebbb1b7 is actually FFmpeg's AVERROR_INVALIDDATA constant. We probably don't return correct-looking data to the game when a packet fails to process through FFmpeg, and the game freaks out. Does "Party boy" also show this error message when things go wrong? -[Unknown] |
@unknownbrackets Again, thanks for your interest. Couldn't respond earlier because life.
Oh cool! I thought I'd need to build on my own. I downloaded and ran the latest build, same behaviour as in the official 1.8.0 release :(
AND
Yes, in "Party boy" there is the same message showing up. I appreciate trying to pinpoint issue, but I think I made the things less clear. Sorry if I repeat myself below. In its core, the issue appears to be that after ~10 seconds of playing any of the mini-games, the majority of in-game timers break. The 'symptoms' of timers breaking are,
So the music breaking up is just one of (possibly) many things breaking. "Party boy" demonstrates the same behaviour. In most if not in all (except from 'party boy') games, if I do the workaround, the timers seem to return to normal. But unlike other minigames, in "Party boy", if I do the workaround and it works, the minigame finishes, and so to pass "Party boy", one'd need to use cheats to change in-game score. Also, unlike in other minigames, the background music resets if minigame resets, which might help find out the root cause of the problem. I think it might be because "Party boy" gameplay mechanics depend on background music, and which is why it is different |
You know, it's been a while, and if I can be of any further help, feel free to ask! |
Party Boy getting stuck this part: |
and here's a log where party boy stucks this part:
|
@Panderner Don't use Direct3D 11 or OpenGL. Use Vulkan or Direct3D 9
PPSSPP 1.16.6 I can confirm that the issue is still present, HOWEVER something is changed, and the game can progress without Save State -> Load State trick. I think old bugs may have been fixed, and new bugs were introduced However, the music is looped incorrectly, as it constantly restarts from the beginning. Previously, it would get stuck in ~2second loop toward where the game would get stuck. So, |
related (though different region, and issue is not necessarily game-specific): #11586
I want to clarify that while the problem is rare, the emulator behaviour (which is what I want to concentrate the issue on) is still very weird (as confirmed by @hrydgard himself)
ROM
Jackass the Game (Europe).iso
PPSSPP
PPSSPP 1.7.4; settings changed
Seemingly the most stable version for this game:
(changed controls, shouldn't affect anything)
Rendering backend:
Direct3D 9: colour glitches, texture glitches, image upside down. Unplayable
Direct3D 11: no buffered parts rendered. Unplayable
OpenGL: best rendering backend in avail
Vulnano: (unable to test out)
Rendering mode (required): Buffered rendering (unbuffered fails on minigames)
PPSSPP 1.8.0;
Now to the game itself.
The set-up I test, if I go to Minigames -> Golf Rally. Play it for 10 seconds (whether doing the moves or not), and notice the game's in-game timer looping incorrectly breaking the gameplay. All the music, gameplay, and moves begin looping incorrectly
Another side effect is, if you now "exit stunt", the game crashes entirely. If you try exiting before the timers break, you should be able to do so.
"Weird workaround"
As I described,
Turns out I slightly misremembered it. What you really need to do, is go to is,
Bypassable state
Bypassable state is the state in which the workaround may work out. Found bypassable and non-Bypassable states are:
Non-bypassable
Bypassable
TL:DR
it seems there is a pattern, which is that,
Strategy
Best strategy is,
The second-best strategy, is not as stable, but useful where early stunt exiting is impossible is
real time clock sync
aka Game Settings -> More settings -> System -> Emulation -> Force real clock sync (slower, less lag)
While testing, the parameter is Disabled (unchecked).
Try with it on (just to test out):
Tick, then reset: Nothing changes
Unsolved issues
Reason is simple: The music, and timers accordingly, reset entirely upon stunt restarting
Workaround:
(Possibly) other stunts of the similar nature may make use of this workaround as well if need be
The text was updated successfully, but these errors were encountered: