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
Savedata issue in Invizimals (discord report) #12608
Comments
Further comment on discord:
Not sure how we could confirm this though, and whether it's possible to work around? |
Additional comments:
|
i just tested invizmals shadow zone, apparently save data affected by mac address 😅 i created a new game save and then try to load it which is working properly, then i tried to change the mac address and try to load again and bam! getting error 80110306 😄 nowonder in the console log i'm seeing it uses |
Haha, so that's how it does it. Well, PPSSPP allows you to set a custom Mac address so... Not a bug, closing. |
You can manually set a MAC? I thought you could only cycle through randomly generated ones. Might be good to add an option in Networking for setting it manually, and then changing the existing option to "generate a random MAC address" |
Oh right... Maybe we didn't make UI for that. But yes, through the ini file will work. |
Btw does PPSSPP able to get the game key? if it can, may be we can create a compatibility-hack to patch the mac stored in the savedata with the new mac (in case we don't know the old mac) on-the-fly or when upgraded, something like in this guide https://youtu.be/Jop20OXdaEk?t=245 PS: different game may store the mac address at different location, but we can always find the location by creating new savedata with known mac (assuming we know how to decrypt/encrypt the savedata using game key) |
I'm trying to import an Invizimals: Shadow Zone (EUR) save that's been downloaded from the internet that has most/all of the monsters captured: https://gamefaqs.gamespot.com/psp/605208-invizimals-shadow-zone/saves ...but the mismatched MAC address between the save file and the console (PPSSPP) it's being loaded on seems to be blocking the save from loading, and thus throwing the 8011036 error. Using the MagicSave plugin doesn't bypass the error either. I used the SED plugin to decrypt the When viewing the file in a hex editor, you can see all the decrypted monster names, which is a good sign, but I still don't see the MAC address anywhere in there. Does anyone know where the save file's MAC address is located within the Invizimals: Shadow Zone save data files? If we can identify where the MAC address is hidden in the save files, we can change the MAC address in PPSSPP (or PSP) to match it, and thus theoretically successfully boot the save. Alternatively, a hacker could find cheat codes to unlock all the monsters in the game. Also copying to Discord. Any help would be appreciated! |
I was doing some research regarding these saves, so I'm sharing some notes in case it's useful: For the record, the decrypted save file you shared has the following MAC address: The save-data also has a hash checksum stored at offset So right now, the only way to load that save is to change the MAC address, because even if you edit the save-data and replace all the mac address you find with another value, the CRC checksum will fail and the game will not start. |
I suppose we could add a special hack that reads the MAC from the save and switches to it temporarily... |
I was doing some additional reversing of the original EBOOT to solve the Invizimals save-game checksum, and by luck I also found that developers left a flag at save-data offset Since I already reversed the custom checksum, I made and tested a simple tool that:
Btw, I checked invizimals titles UCES01411, UCES01525, UCES01581, UCUS98760 and all use the same save-data header structure, wlan mac address at offset On a side note about these locked saves: "SOCOM Fire team Bravo 2" also uses the wlan mac owner check. In FTB2, the mac addr is stored at offset |
Hello, how can I do that change from 1 to 0? In wich file is it write? |
it's the only data file, Users with real PSPs can use Apollo Save Tool homebrew app to hack and unlock Invizimals and SOCOM2 saves directly on the PSP. I didn't test on emulators so no idea if it works or not outside real hardware. If enough people need it, I might create a small checksum-fixer tool for Invizimals, that can be used on a PC |
Yes, I´m talking about real hardware (PSP). |
If you have a PSP and can install and run homebrew apps, as I mentioned just install Apollo Save Tool , https://github.com/bucanero/apollo-psp/releases , then:
that's all, your save will be unlocked to be used on any PSP system, even emulators. Just in case, remember to make a backup of your Invizimal save before doing any changes, for safety. Edit: here's the small PC tool I made to fix Invizimals save checksums and disable the copy-lock: https://github.com/bucanero/save-decrypters/tree/master/invizimals-checksum-fixer |
I really didn't understand how to fix it and what happens if I play on PSP Vita? psp games |
This is amazing. Unfortunately it only works for Shadow Zone and Lost Tribes, but not for the original Invizimals. There is no issue with using psp save files on the emulator, but save files from emulator won't work on PSP. It gives the same error message as the other games. Will you help with that too? |
I don't own the game so if you can provide some decrypted save data files from the game, and the title-id of this Invizimals edition, I can take a look at some point and see if they're using a similar protection or not. You can use the emulator to get decrypted save data. (On real hardware you'll need Apollo save tool and the key dumper plugin) |
Here you go. Title-id is UCES01241. Thanks for the help! |
I have reversed the custom checksum for this title (it's similar to the checksum in UCES01411 but uses a different magic value If I have a chance I'll take another look, but at least on my tests with PPSSPP I could swap saves and inject save-data from other users with no issues. Also changing the mac address in the emulator had no effect on the game loading. (for example, if you changed the emulator mac-addr on Lost Tribes you'll get an error message) |
I checked if there was another version of the rom and it turns out I got Invizimals (europe) v2 on the emulator. I searched another rom without v2 and tried to load the save on that one. It won't load, so I guess it is caused by different save-game data version. Unfortunately I made a back up of the wrong save, so now I am stuck with broken save file. |
Thanks for the feedback, that explains the issue then. It's not a copy-lock protection, but a save-game version check. From the game code I reversed, the v2 game should be able to load an older "v1"/"v0" save, but of course the old game v1 won't load any save from a higher version (v2, v3, etc). (save version value seems to be at offset With the custom checksum fixer, you could in theory change the version value in the header to make the save "older", and then update checksum so the game loads it anyway, but I feel that you'll end up crashing the game or get weird results as the save data could be in a different structure than what the game expects. I'll later update my checksum fixer to support UCES01241, in case someone needs it in the future. |
I tried to import save file from the second rom (without any "v") from emulator to PSP and I got different error. This time game tells me that this file is corrupted on loading screen before I even try to load it, when the previous error was displayed after I try to load it, so I am kinda lost. If you provide the updated checksum fixer I will gladly try it, even if it may break some stuff. In the meantime I will try to find what is the issue this time. Thank you for the help. |
The updated checksum fixer can be found here. (Source code only) |
Thank you for your help! Last question and I won't bother you anymore. I'm not an IT guy, as you might have guessed, so how do I update checksum fixer? Should I patiently wait for the next apollo update or should I do what readme file suggests? (./invizimals-checksum-fixer 0 and put that into root folder or apollo folder?) Thanks in advance. |
It's only the source code, you'd have to build the application with a GCC compiler, and then run The checksum fix can be added easily to Apollo: if your PSP can connect online, go to "Settings", then "Update application data", the app should try to connect and download new patch files, including the Invizimals fix. If that didn't work, just download this |
Btw, you have build.yml and build-win.yml on your repo, right? why not builds the invizimal-checksum-fixer from those workflows too? |
TheDarkAron reports:
The text was updated successfully, but these errors were encountered: