Repository: linuslin0/ACST Branch: master Commit: 2f99145c6311 Files: 3 Total size: 7.2 KB Directory structure: gitextract_4a9ggfa0/ ├── Changelog.md ├── FAQ.md └── README.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: Changelog.md ================================================ # ACSaveTool Changelog ## v2.6.0 - Added support for the AC:Shadows - Added support for CLI mode - GUI: Fixed the dark mode and switched to use the native theme on Windows 11 ## v2.5.0 - Added support for AC:Mirage - Extended the capability for game title auto detection - Decryption/Encryption ID detection is now supported for AC:Revelations - GUI: Allow test save file drag & drop to Encryption ID text field - GUI: Open save button now locates a possible path for the selected game - GUI: New option on Preferences to switch Account ID for save path detection - GUI: New option on Preferences to enable verbose log - Misc. code refactoring and fixup ## v2.4.3 - Added option on Preferences to keep the current save format - Added support for loading certain non-standard saves - Applied workaround to prevent crashes on platforms with Hardware-enforced Stack Protection enabled ## v2.4.2 - Fixed issue when processing certain non-standard saves - GUI: Added dark mode support - GUI: Added Preferences panel (Ctrl-P, for specific use only) ## v2.4.1 - Added support for Immortals Fenyx Rising - Improved compatibility for some old saves - Fixed broken input validation for certain game titles - Added more tooltips to GUI ## v2.4.0 - Added support for ACValhalla - Added input validation for Encryption/Decryption ID fields - Minor GUI tweaks ## v2.3.1 - Added support to convert ACLHD save to ACLRM (choose ACLHD & double click `Encryption ID` label) - Show output file name if different from the original file - Adjusted release package structure ## v2.3.0 - Added support for loading certain non-standard saves (*.sav) - Moved backup save location to separate `acst_backup` folder - Fixed test save file processing logic - Performance optimization - Miscellaneous GUI issue fixup ## v2.2.0 - Disable detection feature if the game title is ACR - Added support for Steep saves - Changed default file open path to user profile directory - Reduced release package size - Some cleanup and minor GUI issue fixes ## v2.1.1 - Additional checking for the test save path to prevent a folder or file with the same name being used as test save - Relaxed filtering for decryption/encryption ID input to allow underscores (_) and dots (.) ## v2.1.0 - Added support for detecting decryption key from test save file - Fixed issue on GUI stopping processing saves when decryption and encryption key are both given - Added showing execution time on GUI - Added extra checking for valid save detection ## v2.0.0 - First public release ================================================ FILE: FAQ.md ================================================ # Frequently Asked Questions ## Failed to load save file This tool only supports standard format saves generated from legitimate game copies. If you enconter this error during the save conversion, consider using alternative tools or manually hex editing the saves by restoring the correct save header - usually the first 0x228 bytes as observed in a standard format save. If you still need help, please refer to [this issue](https://github.com/linuslin0/ACST/issues/96) ## 7z SFX error during launch The packed executable might be flagged by some antivirus software as a false positive. Try these steps to run the actual executable instead: 1. Rename the packed executable file extension from `.exe` to `.7z`. 2. Extract it using 7-Zip or another extraction tool. 3. Run the main executable inside the extracted `ACST` folder. ## How to use this tool from the command line? First, extract the actual executable by following the steps mentioned above 👆. Then, launch the main executable from a terminal window using the `--no-gui` along with other necessary parameters. Example: ``` powershell .\ACSaveTool.exe --no-gui -d="foo" -e="bar" ``` To check all available parameters, use the `-h` option. Tip: You can find the game title index on the GUI by selecting a game and hovering the cursor over the game title. ## Where is the Preferences dialog? `CTRL + P` ## Converted saves not working? Ensure that the original saves are not corrupted, as this tool does not alter the actual save data. If you are not using the auto-detection feature, verify that the Encryption/Decryption ID is correct. This tool has basic format checking and decryption validation enabled by default to help prevent incorrect IDs from being used. Additionally, for certain games, you may not be able to load a save generated from a higher version of the game. ## How does the save "encryption" work? AC game save only performs an XOR in ECB mode: 1. Compute the MD5 hash of your account ID. 2. Create the encryption key from the 16-byte MD5 hash: take the first and last bytes, followed by the remaining 14 bytes in reverse order. 3. Determine the rotation offset based on the save data size: `size % 16`, then perform a right rotation on the key. 4. XOR the key with the save data. Note: Other games may use different encryption methods for their saves, which are not supported by this tool. ================================================ FILE: README.md ================================================ ACST ==== Public releases for ACSaveTool For downloads, please go to the [Release](https://github.com/linuslin0/ACST/releases) page. ## Features - Convert saves between different encryption IDs. - Support for various game saves. - Process multiple files simultaneously. - Auto-detect game titles and decryption/encryption keys for certain saves. - Automatically lookup save paths for supported titles. ## Usage 1. Open save files by clicking the `Open` button or drag and drop saves into the app window. 2. Select the appropriate game title, or leave it as `[Auto Detect]` (only works for certain game saves). 3. Input the `Decryption ID` for the loaded saves, or check the `Detect` box. 4. Input the `Encryption ID` for the new saves, or click the button on the right to open a test save for encryption key detection. 5. Click the `Convert` button. The original saves will be backed up in the `acst_backup` folder. 6. Copy the converted saves to the corresponding game save location. You may need to temporarily disable cloud save sync before launching the game. Refer to [FAQ](FAQ.md) for common issues and tips. ## Supported Games Supported game saves and their decryption/encryption ID type: ``` Assassin's Creed Shadows // Account ID Assassin's Creed Mirage // Account ID Assassin's Creed Valhalla // Account ID Assassin's Creed Odyssey // Account ID Assassin's Creed Origins // Account ID Assassin's Creed Syndicate // Account ID Assassin's Creed Rogue // Game key Assassin's Creed Unity // Account ID Assassin's Creed Liberation HD // Game key Assassin's Creed IV Black Flag // Game key Assassin's Creed III Remastered // Account ID Assassin's Creed III // Game key Assassin's Creed Revelations // Account (legacy) username Immortals Fenyx Rising // Account ID ``` Note: Use `Account ID` and `Account (legacy) username` in lowercase; `Game key` in uppercase. ## Requirements Windows 10 or later (64-bit). ## Disclaimer This software is provided "AS IS" for research purposes only. Commercial use is prohibited. The author is not liable for any save data corruption or loss that may occur from using this software. ## Credits - [Ubisoft](https://www.ubisoft.com/) for all the fun. - [Linus L.](https://github.com/linuslin0) for writing this tool. - machine4578 for testing and feedback.