Code Monkey home page Code Monkey logo

mgsv_savetranslator's Introduction

Release Version License: MIT Visual Studio 2022 dotNET7

⚙️ MGSV_SaveTranslator - What is it ⁉️

Logo

This app can decrypt and encrypt SaveData files from the Metal Gear Solid V: The Phantom Pain & Ground Zeroes games. It is useful during changing the region of the SaveData or porting it to another gaming platform.

Game Title Tested Version
MGSV:TPP 1.0.15.3
MGSV:GZ* 1.0.0.5

* No cross-platform compatibility.

Supported formats
PC
PS4 (decrypted saves)*

* SaveData files on consoles are additionally packed with a method specific to a given console. This tool doesn't support any of these methods.

🤯 Why was it created ⁉️

I just wanted to continue playing on SteamDeck from where I left off on the PS4 console.

😱 Is it safe?

No. You can corrupt your SaveData files and lose your progress or get banned from playing online if you unreasonably modify your file.

Remember to always make a backup of the files you are about to modify.

With that being said, let's continue to the next chapter where you will learn about the features of this tool.

📜 How to use this tool

TranslatorPage

Let's assume you want to translate SaveData files from PS4 to PC and you have a decrypted and unpacked PS4 save archive.

List of filenames you can expect:

  • MGO_GAME_DATA0
  • MGO_GAME_DATA1
  • PERSONAL_DATA0
  • PERSONAL_DATA1
  • TPP_CONFIG_DATA0
  • TPP_CONFIG_DATA1
  • TPP_GAME_DATA0
  • TPP_GAME_DATA1

First, you have to fill in the TextBox (1) by dragging and dropping the file on it, pasting the path to that file, or selecting the file using the FilePicker by clicking on the button (2).

Once done, you can click the (3) button to analyze the file and automatically detect which of the already defined profiles (4) should match that case. If the file is already decrypted it should work with any profile. It is possible that a suitable profile would not get found. In that case, you could try to use the Research Page to find the decryption key, but more on that later. If everything went well, button (5) will be unlocked. Now all that's left to do is click on the unlocked button, change the profile to "[PC] <name_of_the_file_you're_working_on>", and click the button again to encrypt the file.

If checkbox (6) is checked, after each operation a backup will be created with the extensions ".bakencr" for the encrypted file and ".bakdecr" for decrypted one.

Button (7) does exactly what its name says.

ResearchPage

Now, let's assume the decrypted PS4 SaveData files come from an encrypted archive called "MGSVTPPSaveDataJP". There is no such profile out of the box, so you have to find a decryption key that will unlock all the files inside it.

First, in the Research tab, fill in the TextBox (1) by dragging and dropping the file on it, pasting the path to that file, or selecting the file using the FilePicker by clicking on the button (2).

Now there are 2 possible ways. The key to the files is the first 4 bytes of the MD5 checksum calculated from the file name or the name of the parent archive. If you spelled it right and it's its real name a (5) button should generate a proper key super duper fast. Otherwise, you can use the brute-force method under the (6) button, which will go through all possible combinations (4,294,967,295) to find the one that matches. If none of the above methods work, it means that the encryption method has changed.

However, if you were successful, you can add your find to the list of profiles. Replace "PLATFORM_NAME" inside the (3) field with the name of the platform from which the analyzed file comes and click on button (7) to add and button (10) to save changes. Button (9) reloads the last saved profile list. Button (8) removes the currently picked profile (3) from the profile list.

Location of the PC SaveData files

On the PC platform saves lives there:

<Steam_Installation_Folder>\userdata\<YOUR_STEAM_ID_32>\287700\local

and

<Steam_Installation_Folder>\userdata\<YOUR_STEAM_ID_32>\311340\remote

🔥 Issues

All the problems I've encountered during my tests have been fixed on the go. If you find any other issue (hope you won't) then please, feel free to report it there.

⭐ Sources

mgsv_savetranslator's People

Contributors

mi5hmash avatar

Stargazers

 avatar  avatar

Watchers

 avatar

mgsv_savetranslator's Issues

Works with Ground Zeroes?

Does this work with Ground Zeroes save format at all? (mgsv_gz_save_data_gl_en0), Just tried running it with that and opening it with NP++, it seemed to still be decrypted even after running it, but not sure if it decrypts that properly, though maybe I just don't know what to look out for there. Using a PC save for reference.

PS3 decrypt key

Just in case you want to add support for it, I was recently working on MGS5 saves on PS3 / PS4, and reversed the key for PS3: 0x1FBAB234 (532329012)
This key is for the ps3 digital US version NPUB31594, other ps3 versions could require other keys.

I was also doing some bruteforcing to find keys, this is the python script I made:
https://github.com/bucanero/save-decrypters/blob/master/mgs5-tpp-decrypter/samples/findxor.py

my bruteforce solution was to try to find the init value so I could XOR the 4 bytes at offset 0x10 and get the value SVCS.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.