Batman: Arkham City – Game of the Year Edition Guide

Batman: Arkham City: Fixing Bad Steam Cloud Saves (MacOS) [~WIP] for Batman: Arkham City GOTY

Batman: Arkham City: Fixing Bad Steam Cloud Saves (MacOS) [~WIP]

Overview

Unable to proceed beyond the title screen on MacOS without crashing? Nothing else helping? This may help you.

The Cause

Steam Cloud, for some reason, will sometimes just return a semi-corrupt remote cache file where the fields for all of the files are zeroed out.

To view the remote cache of your saves, open Terminal (you can find it under the Utilities Folder in Applications) and do the following

  1. Type
    open /Library/Application Support/Steam/

    (This will open the folder Steam uses to store all of your games and the data associated with it in Finder.)

  2. Go into the userdata folder. Find the folder associated with your account. Due to everything being numeric, this could take a while, so if you know you are the only owner of Batman: Arkham City just look for the folder that contains another folder labeled ‘200260’.
  3. Once you locate it, it will contain a file labeled ‘remotecache.vdf’. Open it in TextEdit, and you should see one or more entries corresponding to game saves.
Normal File
Semi-Corrupt File
“macosx_Save0.sgd”
{
“root” “0”
“size” “294912”
“localtime” “1452373202”
“time” “1452373201”
“remotetime” “0”
“sha” “9b57759fc6ae228de03111f436f00b1627848896”
“syncstate” “3”
“persiststate” “0”
“platformstosync2” “-1”
}
“macosx_Save0.sgd”
{
“root” “0”
“size” “0”
“localtime” “0”
“time” “0”
“remotetime” “0”
“sha” “0000000000000000000000000000000000000000”
“syncstate” “2”
“persiststate” “0”
“platformstosync2” “-1”
}

Note the zeroed-out fields in the corrupted cache.

Now, normally, this would merely cause you to lose all your files, which would be devastating but not irrecoverable. Unfortunately, the empty files cause Steam to never quite get around to creating a folder for your saves, which triggers another bug, the one that causes the crash.

See, for the game to work properly, it needs to know where the saves are. However, because Steam never got around to making a remote folder, it does not provide a valid path to those saves. This causes no problems… until Arkham City itself tries to load the saves. Because the saves do not exist, it accesses something it does not have access to (it likely dereferences a null) and the OS kills it before things get out of hand and indicates a segmentation fault.

The Fix

So how do we fix this?

Honestly, there are two actions I take in this guide, because one of them fixed it for me. If anyone finds one of these unneeded, please respond in the comments and I’ll make the appropriate changes.

Here are the actions this guide takes:

  • Upload a working remote configuration to the Steam Cloud
  • Point the game to this new remote configuration

But first…

1. Navigate to

2. Delete everything in it.

This avoids a completely unrelated crash related to a corrupted log file stored within there after crashes like the one we are trying to fix.

Uploading a working save file to the Steam Cloud

1. If you have no preexisting saves, you can download a fresh Arkham City save here.[s000.tinyupload.com]

If you’re feeling paranoid about the file, you can check the shasum of the file by typing

shasum ~/Downloads/macosx_Save0.sgd

into the Terminal. (You should get “a2d5146161af4b1b5e36b77bb899cbacafa76582”. Be very suspicious if you get anything else. )

2. In the directory containing the corrupted cache file, create a new folder titled “remote”, if one does not exist already. Drop whatever saves you have here. For each save, type the following into Terminal:

touch <path to save>

If you are having trouble determining a path, just drag and drop the file into the Terminal.

What we are doing here is ensuring that our saves will be seen as the most recent compared to the corrupted files in the Steam Cloud.

3. Now comes the tedious part: we have to enter every save into the “remotecache.vdf” file we put into the remote folder. Open “remotecache.vdf” in TextEdit. Delete everything but the first two lines and the last line. For every save we must now create an appropriate entry.

An example entry for the empty file linked above:

“macosx_Save0.sgd” { “root” “0” “size” “294912” “localtime” “1502247171” “time” “1502247170” “remotetime” “0” “sha” “a2d5146161af4b1b5e36b77bb899cbacafa76582” “syncstate” “3” “persiststate” “0” “platformstosync2” “-1” }

Formatting Note: One tab must come before the first, second, and last line of an entry, and two must come before those. Between a field name and its value are two more tabs.

Field Name
What to Enter
“root”
“0”
“size”
“294912”
“localtime”
The output of the terminal command

stat -f “%m” <path to save file>

in quotes.

“time”
localtime – 1
“remotetime”
“0”
“sha”
The output of the terminal command

shasum <path to save file> | cut -c1-40

in quotes

“syncstate”
“3”
“persiststate”
“0”
“platformstosync2”
“-1”

Once you’ve entered everything in, congratulations, you now have a working remote setup.

Pointing the game at the new save folder

1. Control-/right-click on the remote folder. Select Make Alias.
2. Rename the new alias “Steam Saves (<UserID>)” Your UserID is the name of the folder two levels above the remote folder.
3. In the Terminal, type

open ~/Library/Application Support/Feral Interactive/Batman Arkham City GOTY/”

Keep the old Finder window pointing at the save game alias; you will need it for the final step.
4. Drop the alias into the “SaveData” folder.

After this, you should be done.

Questions, Problems, Suggestions, Info?

Please tell me in the comments below. For the more common questions I may create a FAQ section for this. (Don’t just use my choice of OS to bash me. I like my native PS3 controller support, thank you very much.)

If this fixed your game, please leave a comment. This bug took me over a month to figure out, and I expect this to be a rather niche guide anyway, so knowing it helped somebody experience Batman: Arkham City who would have otherwise been out of luck would warm my heart.

If it did not, look around harder on Google. Chances are someone has fixed whatever problem you’ve run into. Otherwise, contact Feral Interactive Support. They still support this game on MacOS.

I hope this guide helped you in some way, and good luck!

SteamSolo.com