-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Can not save if load a savestate which saved before the savedata. #7244
Comments
That's a game protection(kind of pointless through:P), it just stores hash of previously made save in memory and compares it to the save before allowing to overwrite existing save. Some of the games which do this, allow saving when you delete your current save, dunno about patapon, but MH does not, so it has to be hacked(already did via cw cheat on the forum). I don't think you can do anything emulator side to universally avoid this issue. |
Delete the save folder,it's not saving.but it allow saving when delete SECURE.BIN. |
The only way I can think of to do this is by including the savedata in the savestate and overwriting it when you load state (or otherwise pretending and committing it on write, which would be complicated), I think. I would not like this, personally... -[Unknown] |
@daniel229 If you're interested in solving this via hacks as I mentioned already existing on the forums for some MH games, I just made one for Patapon 3 as well, it's pretty easy since this game doesn't even generate any hash, it just counts numbers of times saved and compares that. I have UCUS-98751 version so the address will likely be different on your version, but you should be able to find it easily by searching for integer value which increases by 1 every successful save(ie using Cheat Engine for example), then set a breakpoint at the address(using ppsspp disassembly) to check what reads it when you try to save. It should break at something looking like this: it changes "beq s0,s2,0x08A23C74" to "beq zero,zero,0x08A23C74"(or "b 0x08A23C74" as it shows in disassembly:3) which makes it always branch like the save was correct, it does not check it for any important reason anyway, probably it was done to stop people from saving over their different saves when swapping memory sticks, certainly they did not made it predicting savestate abuse in emulators:]. Hacks like that must be done per game, but in the end activating simple cw cheat is not a big deal comparing to including saves within a savestate. I prefer them as it's now, keept separately. |
@LunaMoo Thanks for your tutorial,Is the address need to be converted,It does not break anything. |
Got it. 2.search 0 between 3000 (or whatever value that is large enough) PPSSPP address = the address in the list 0xZZZZZZZZ - 0x03020000 _S UCAS-40318 |
@daniel229 Oh sorry yeah I did not write what to do with CE itself, the way to actually calculate the address without doing anything extra would be checking ppsspp log when you run first game after starting ppsspp, as one of the first things it'll show where psp memory was allocated, it'll look alike:
(different for you ofc) But it's not the only way, so yeah, glad you figured it out.:3 Happy new year!^_^ |
Thanks for your explain,that make much clear about the ram address and psp address and happy new year. |
Another option might be to check when loading a state if the savedata has been modified since the savestate was made (maybe with a contained timestamp or...), and prompt the user to let them know this problem may occur due to the way games are programmed. That may be the best option. -[Unknown] |
edit:read again the post,I don't think need my information. |
Could you guys create a video for this? I'm little bit confused... |
There's nothing a video would help in here. The problem is simple, some games have features that doesn't allow the user to write a new savedata over savedata they don't recognize as previously made one. All you can do after it already happens is restart emulation and reload the game from actual savedata remembering to never jump back in time with savestates again this will fix everything by itself. If such exist you could also use a cwcheat hack like few shared on the forums or the patapon ones above which intentionally break this game feature to allow saving over unrecognized savedata. Sometimes just deleting existing savedata can also work, but unfortunately those features can be weird and some games will never allow you to save from in-game unless they recognize previously made savedata or notice that existing savedata is actually corrupted. |
There's now a warning shown when you (probably) get into this situation. You can also use "undo last load" to revert the load state and regain the ability to save when you see the warning. If people can confirm that this warning shows and undo works to regain saving in games, that'd be really useful. If anyone sees the warning in a really normal use case that'd be interesting too. -[Unknown] |
Hi there, you can help me with "Monster Hunter Freedom Unite" (EUR) [ULES01213_1.01], i am using PPSSPP 1.10.3 (because the superior versions i can't play with friends because can connect but nobodys appears on the lobby except me) . Well my point is on some point i load state, and i am try to save the game normally, but show me the message the "Memory Stick is not inserted", i want to use the memory hacks to force the overwrite of savegame because i had a lot of hours played from that (near 300 hours of gameplay from the error). But i don't understand the screenshot and how i should write the code on the PPSSPP emulator for make this ? |
Thank you very much for the link |
It seems like people still hit this sometimes, despite the warning added in #14434. That either means people are ignoring it, disabling it, or there's a bug and they're not seeing it. Is anyone able to confirm that they always see this message when they get themselves into this situation? I'm considering if we want to add something in the header so we can show more obtrusive UI for this (maybe we could have a flag per game where we know the game doesn't care to hide the UI, though, especially for games that autosave.) Would that help? -[Unknown] |
Thinking about #16444, I wonder if a component of this is the file modification time of files when you use save states or fast forward. Currently, if you start a game on 2022-12-15, and then play for 4 hours and create a save state, any savedata you create will also be marked 2022-12-15. But then if you later load that save state on 2022-12-16, time within emulation will correctly still be 2022-12-15. But if you update savedata, the modification time will be 2022-12-16 (the future, scary.) It can go the opposite way using fast-forward, where recently created savedata could be stuck well in the past. If you fast-forwarded on a desktop for an hour, you could easily be at 2024-01-01 within emulated time, but new savedata would still be created with a modification time in 2022. Maybe discrepancies in savedata time vs "current time" are causing games to reject savedata sometimes. -[Unknown] |
A few games affected,Monster Hunter series,Patapon series.
![01](https://cloud.githubusercontent.com/assets/3481559/5585958/20147a0a-90f8-11e4-9dc8-e7ecb42151e7.png)
Make a savestate
Make a savedata
![02](https://cloud.githubusercontent.com/assets/3481559/5585959/248f4ec0-90f8-11e4-9fa6-bb7989a6be70.png)
Load the savestate previous make
![04](https://cloud.githubusercontent.com/assets/3481559/5585964/5c7c95fe-90f8-11e4-8c18-01136b0591cc.png)
Unable to save
![03](https://cloud.githubusercontent.com/assets/3481559/5585965/61c0bcd4-90f8-11e4-8ca4-029266dcaf17.png)
The text was updated successfully, but these errors were encountered: