Due to Microsoft shutting down Games for Windows Live (I wish they did it right after they launched and spared everybody the headache), Batman Arkham City has been retooled for Steamworks. This is great, but Batman AC no longer recognizes my save. How can I take my old saves into the bright new era of Steam DRM?
3 Answers
It seems that it's a bit of a kerfuffle.
A forum post that Google found seems to have a solution, though it requires use of a Hex editor. According to that forum post, the solution is to:
- Grab
<profilename>save0.sgd
- Open the file in your hex editor and go to position
0x0184
(a list of Hex editors that may suit your needs) - Delete everything prior to that location
- Overwrite the save (you made a backup first, right?)
- Remove
<profilename>
from the save file, if you have it. - Open the game once, start a new game on the save slot where your game was saved in
- Make sure the game saves at least once
- Quit the game
- Open
C:\Program Files (x86)\Steam\userdata\<userid>\200260\
- Delete
remotecache.vdf
- Enter
C:\Program Files (x86)\Steam\userdata\<userid>\200260\remote
- Start the game and STOP on the loader. Do not click START GAME on the loader.
- Overwrite
sage0.gsd
with your hexedited save file from before - Start the game
-
You would think the publisher would have taken 5 minutes to write a tool to look for your save files, back them up, and migrate them to the new format automatically. I really wish I worked for the publisher this type of thing wouldn't be missed. On another note this is a great answer, the only thing that would make it better is some screenshots, but that would require you have the game.– RamhoundCommented Oct 18, 2013 at 12:08
-
I think work would complain if I downloaded Arkham City... and really, the steps are fairly self-explanatory -- I don't think screen shots would actually make things clearer. I'll try this process tonight and see if I get any issues, though, and update where necessary.– TZHXCommented Oct 18, 2013 at 12:13
-
Its clear to me. But I already know to read hex and navigate around a hex editor. Many people don't know and screenshots would clarify statements like "delete everything prior to the only search hit" by giving an example.– RamhoundCommented Oct 18, 2013 at 12:16
-
Pretty sure these instructions are for Arkham Asylum, not Akrham City - the appid is wrong and there is no 00 00 0E 00 in my AC save.– kotekzotCommented Oct 18, 2013 at 12:46
-
@kotekzot Hi, it seems like the forum post I took the details from was just in the wrong order, had the instructions for AC under Arkham Asylum. I've updated the answer.– TZHXCommented Oct 18, 2013 at 13:09
- Start a new game and make sure the game autosaves, then quit the game.
- Open your Steam folder and navigate to
userdata\######\xxxxx\remote
, where ###### is your Steam ID and xxxxx is either 200260, 57400 or 57419 (depending on which edition of the game you have), and make a copy of your save, namedyyyyy-save0.sgd
, where yyyyy is your nickname. - Download XVI32 or use a different hex editor of your choice.
- Open the copied file with XVI32.
- In the menu, do
Address -> Go to...
, make sure the mode is set to decimal, enter 407 in the input box and hit OK. - In the menu, do
Edit -> Delete to cursor
. - Save the edited file.
- Replace the
save0.sgd
file with the edited save. - Navigate to the parent directory and delete
remotecache.vdf
. - Disable Steam Cloud sync for the game and start. If the save works, exit the game, re-enable Steam Cloud sync and start again, choosing to overwrite cloud saves with local saves if prompted to. If the game does not work, delete the copied save and start again.
If the game considers the savegame to be corrupt, you may need to delete a different number of bytes in step 5. To calculate how many bytes need to be deleted, compare the size of your copied save and the save you created in step 1 as so: right-click both saves individually and hit properties, then subtract the size of the new save in bytes from the size of the old save in bytes. After you have the difference, subtract 1 from it and use it instead of 407 in step 5.
I figured it out, the position of where the required save-game data starts is dynamic. But you have to find 0000 0003 0000 0001. The save file should be starting from exactly that offset. I made the mistake to simply zero out all the previous contents, but "delete" here really means removing the whole section up to the above given byte range. Here is the complete answer (including the answer for Arkam Asylum): http://steamcommunity.com/app/200260/discussions/0/810938810549705289/