ACF Toolkit
Текущая версия: 1.00-beta2
Описание:
Данная утилита является дальнейшим развитием
"SteamApps Backup Preparer" и призвана полностью разрешить проблемы, связанные с использованием в
Cracked Steam (либо
GreenLuma) игр нового формата, ACF/Manifest. По функционалу утилита аналогична
"CFToolbox" для GCF/NCF-файлов (устаревший формат игр) или
"TinCft" (имеющей множество недоработок и ошибок); в частности, имеет дополнительные фичи, полезные в работе с играми формата ACF.
Список функций на момент выхода версии:
- Проверка актуальности версии установленной на диске копии игры;
- Проверка целостности (верификация, валидация) игрового контента;
- Корректировка кэша игры (удаление недокачанных и неправильных файлов);
- Удаление контента, непрописанного в манифестах игры (пользовательские файлы, дампы);
- Создание точной архивной копии кэша игры для шаринга (выкладывание на скачивание) или бэкапа;
- Создание файлов описания версии игры для возможности применения загруженных обновлений;
- Создание обновлений (патчей) на основе имеющихся файлов о прошлой версии (см. выше);
- Применение обновлений, ранее созданных данной утилитой и выложенных для скачивания;
- Защита ACF-файлов и контента игры от принудительного обновления в Steam/Cracked Steam;
- Сжатие игрового контента средствами файловой системы NTFS (экономия места на диске);
- Операции, обратные последним двум.
Работа с утилитой:
Интерфейс утилиты консольный, поэтому для той или иной операции необходимо вводить вручную номер операции или оговорённую в меню команду.
Для выбора необходимой нам игры, при запуске утилиты необходимо ввести номер её
AppId (например, "240" для CS:S), либо, не запуская, перетащить на
Bat-файл утилиты основной ACF-файл игры (для CS:S это "appmanifest_240.acf"). После этого откроется меню со списком доступных операций. Ниже приведено описание основных из них.

Создание архивной копии игрового кэша
Выберите операцию "Make app's archive copy for sharing" в главном меню и следуйте инструкциям на экране. По окончании работы вы получите "чистые" (только с оригинальными файлами Steam-версии) архивные копии кэшей игры по адресу "CookedApps\%Название-игры% (%дата-обновления%)\". Название кэшей имеет формат "[%AppId-кэша%] %Название-согласно-AppInfo% (%дата-последнего-обновления%).7z". Полученными кэшами можно поделиться в сети (например, в теме на форуме "[ACF] Делимся файлами"), либо сохранить себе на диск или в облачном хранилище. Сами же архивы, после распаковки в 95% случаев корректно работают в Cracked Steam в независимости от версии. Архивация производится напрямую без дублирования контента по папкам Depot'ов (что снижает нагрузку на диск, экономит время и место). 
Создание информационных файлов о версии кэша (.version)
Данные файлы необходимы в создании патчей-обновлений (файлов .update) с устаревшей версии игры до актуальной. Выберите операцию "Make .version definition file" в главном меню и дождитесь окончания работы программы. При отсутствии ошибок, рядом с ACF-файлом игры вы получите файл "appmanifest_%AppID% (%дата-версии%).version", содержащий данные о наборе кэшей, списке их файлов и их хэш-суммах, которые соответствуют данной версии. При выходе новой версии игры и её обновлении в Steam/Cracked Steam, по созданному нами ранее файлу с данными о прежней версии можно создать патч-обновление (*.update), содержащее только изменённые в новой версии (относительно старой) файлы. Такой патч впоследствии может быть передан пользователям Cracked Steam, если та или иная игра недоступна для скачивания или обновления. В свою очередь, чтобы иметь возможность заполучить обновление с вашей устаревшей версии до актуальной, необходимо предоставить созданный .version-файл, чтобы пользователи, имеющие последнюю версию игры, смогли сделать из него *.update и поделиться им в сети. Для данных операций обмена существует тема на форуме, "[ACF] Обновления". Скачанный .update-файл кладётся в папку "SteamApps", то есть, рядом с ACF-файлом игры. 
Создание патча-обновления (.update) из .version-файла
Как уже сказано выше, данные файлы необходимы для поддержания игры в Cracked Steam "up-to-date" в случае, если её скачивание или обновление запрещено защитой в Steam. Выберите операцию "Make .update from desired version" в главном меню утилиты. При наличии в папке "SteamApps" (т.е. рядом с ACF) одного или нескольких файлов .version-файлов, вам предложат выбрать один, с которого и будет создаваться обновление. В ходе работы программы будет сгенерирован актуальный .version-файл, после чего, различия между обоими .version-файлами будут записаны в файл формата "%Название-игры% (%дата-старой-версии% to %дата-аткуальной-версии%).update" в папке "SteamApps", который, по сути, представляет собой 7zip-архив с упакованными обновлёнными файлами, ACF-файлом игры и .manifest'ами из папки "Steam\depotcache\". При необходимости поделиться, данный файл выкладывается в сеть (тема на форуме: "[ACF] Обновления"), после чего вторая сторона загружает его и применяет к своей устаревшей версии игры, получая таким образом актуальную.
Важно!
- При создании обновления утилита берёт информацию об актуальной версии из файла "appcache\AppInfo.vdf" (аналог CDR) в Steam, поэтому если Steam долго не запускался - данные в этом файле могут быть устаревшими! Чтобы иметь свежую версию файла, необходимо, чтобы Steam был запущен как можно ближе к моменту создания обновления, иначе есть риск получить обновление до уже неактуальной версии.
- На момент создания обновления кэш игры должен быть полностью докачанным и валидным, в противном случае программа выдаст предупредительное сообщение.
- Поскольку .update-файлы являются 7zip-архивами, паковать данные файлы в архивы перед заливкой на файлообменники не нужно.

Применение обновлений (.update-файлов) к играм
Созданные операцией выше и выложенные в сеть .update-файлы обновлений, необходимо после скачивания поместить в папку Steam "SteamApps". Далее, в запущенной для требуемой игры утилите, выбирается операция "Apply selected .update file", после чего, из списка имеющихся для игры .update-файлов (если их несколько) выбирается загруженный нами ранее. Утилита произведёт распаковку содержимого .update-файла по нужному адресу, после чего, игру можно считать обновлённой. Важно: Убедитесь, что перед применением обновления у вас не запущен Steam.
Примечание:
Обновления формата *.update можно применять и без использования утилиты - для этого откройте файл архиватором 7-zip и просто извлеките содержимое в корневую папку Steam/Cracked Steam с заменой имеющихся файлов.
Другой способ - перетащить файл апдейта на bat-файл утилиты и дождаться окончания распаковки. Нет ничего проще %)

Защита файлов игры от принудительного обновления
При наличии на серверах Steam обновления для игры, Steam автоматически изменяет данные ACF-файла игры так, чтобы при запуске игры начиналось скачивание обновления. Поскольку практически все игры формата ACF защищены от скачивания в Cracked Steam, такие действия можно считать вредоносными, так как поиграть в такую игру больше не получится (без применения обновления или коррекции ACF). При выборе операции "Protect app from deletion/changing by Steam", утилита применяет атрибут "только чтение" на ACF-файл, либо на сам игровой контент (в подменю доступен выбор компонентов), что не даёт Steam'у изменить данные в ACF, позволяя запускать игру устаревшей версии.
Защита файлов игрового кэша от записи, в свою очередь, полезна при очистке игры от мусора (операция утилиты "Delete unreferenced content") в случае, если игра имеет папку, общую для нескольких игр сразу (пример: все игры серии "Half-Life 2" устанавливаются в общую папку "Half-Life 2"). Чтобы файлы сообщающейся игры не были удалены, будучи расцененными программой как мусор, их нужно так же защитить с помощью этой операции. Проделать её нужно со всеми сообщающимися играми серии, и только потом приступать к очистке от мусора желаемой игры.
Опция утилиты "Make app editable/writable for Steam (rev.)" выполняет действия, обратные описанным выше.
Предупреждение:
- Форматы версий и обновлений НЕ совместимы с аналогичными в TinCft.
- Крайне желательно отключать Steam при выполнении операций утилитой.
Ограничения текущей версии:
- Отсутствует поддержка функционала "SharedDepots". Это значит, что в играх, использующих общие кэши с общими папками (как, например, "Counter-Strike 1.6", использующая папку "Half-Life" и её ресурсы), будут обрабатываться только уникальные для этих игр кэши. Для работы с недостающими общими кэшами, необходимо запускать утилиту отдельно для общей игры, использующей эти кэши. PS: Данное ограничение накладывает сторонняя утилита (ACF Verifier), входящая в состав программы. Как только оно будет снято, я выпущу обновление.
- Утилита не будет работать с играми, установленными в стороннюю библиотеку Steam'а (Steam Library) - поддерживается только работа с играми, установленными по пути по-умолчанию ("<Папка Steam>\SteamApps\Common\<Папка игры>"). Возможно, в будущем и это будет исправлено.
- Возможны некоторые ошибки в работе, так как утилита писалась и тестировалась в одиночку. При случае, пишите о них.
- При архивировании контента нельзя выбрать только желаемые кэши (будет исправлено в следующей версии) - архивируется только весь, входящий в игру, набор.
- Если игра содержит более 20 000 файлов, работа утилиты при создании .update-файлов может быть медленной.
- Нельзя работать с двумя и более играми одновременно, и нельзя выполнять несколько операций сразу.
Установка:
Распакуйте содержимое приложенного архива в папку
"<Ваша папка со Steam>\SteamApps\", либо (с версии 0.98) в произвольное место на диске - программа автоматически определит расположение файлов Steam.
Путь распаковки не должен содержать символы кириллицы.
Информация:
Тема, в которой можно поделиться сделанным обновлением или запросить нужное:
[ACF] Обновления.
Тема, в которой можно поделиться архивной копией игры для Steam/Cracked Steam:
[ACF] Делимся файлами.
Темы с готовыми играми/инструментами для Cracked Steam:
[ACF] Скачать игры Valve,
Скачать Steam-игры.

Сторонние приложения, включенные в утилиту
- ACF Verifier command line tool (v1.2);
- 7-zip command line version;
- Swiss File Knife file processor;
- Sha1 command line tool.

История версий (Changelog)
1.00.0-beta (15.11.2013)
- Корректировка кода: теперь утилита совместима с командной строкой с отключенными расширениями.
- Корректировка кода: теперь утилита поддерживает прямой запуск из командной строки с сохранением исходного состояния последней при выходе.
- Корректировка кода: мелкие оптимизации в целях совместимости.
- Добавлена новая операция ("2e") - скачивание обновлений для игр/приложений с серверов Steam (только для доступных игр).
- Улучшение интерфейса: все диалоговые сообщения теперь выводятся в отдельный GUI-элемент (т.е. не требуется ручной ввод в консоль).
- Добавлено отображение корневой папки со Steam в предварительном меню.
- Исправлена (надеюсь, полностью) несовместимость утилиты с игровыми файлами, использующими не-латинские символы (юникод).
- Добавлена автозамена значения нового ACF-параметра "AutoUpdateBehavior" в "1", что отключает автоматическое обновление игры в Steam.
- Исправлена ошибка в коде, которая приводила к очистке всего листинга manifest-файлов при наличии дубликатов и строк с пробелами.
- Исправлена ошибка в коде, делающая невозможным повторный вывод сводки по версиям игр по команде 'status'.
- Добавлена проверка версии AppInfo.vdf перед операциями, требующими актуальной сводки о контенте (status, 1a, 2a, 2c).
- Если при создании .version включена опция добавления некорректного пользовательского контента, то теперь его список выводится в консоль.
- Исправлен сбой программы, когда, при создании .update-файлов, различия в контенте между разными версиями отсутствовали.
- Удалена зависимость вложения пользовательского контента в .update от параметра "AskForAttachInvalids", вместо этого теперь выдается запрос.
- Добавлен диалог для быстрого удаления .update-файла c жесткого диска после его успешного применения.
- Добавлен вывод диалогового окна, если при применении .update запущен Steam (вам предложат закрыть его, так как он блокирует ACF-файлы).
- Исправлены другие мелкие недочёты.
0.99.6-beta (19.10.2013)
- Добавлена функция вывода статуса по всем установленным играм/приложениям. Для вызова необходимо
запустить программу без аргументов и ввести "status".
- Добавлена начальная поддержка многозадачности (Внимание: не запускайте вторую копию, когда идет проверка контента!).
- Доработана операция удаления неиспользуемого контента при применении .update-патчей.
- Разблокировано выполнение операций 1a, 1d, 2b, 3b, 4b при параметре "StateFlags" не равном "4" (неполная установка).
0.99.5-beta (15.10.2013)
- Исправлена ошибка в скрипте, приводящая к сбою работы скрипта в случае наличия скобок в именах папок.
0.99.4-beta (08.10.2013)
- Значительное ускорение работы при создании .update для игр с большим (от 20к и выше) числом файлов (спасибо Unit#0).
- Обновления (.update) при их применении теперь не только изменяют и добавляют файлы, но и удаляют неиспользуемые от прошлых версий [beta].
- Исправлена ошибка, при которой названия папок, содержащие "точки" обрезались и приводили к сбою программы.
- Исправлена ошибка определения папки Steam в случае, если используется альтернативное, непрописанное в реестре расположение.
0.99.2-beta (09.09.2013)
- Добавлено автоудаление нового параметра "LastOwner" из ACF-файла после недавних изменений в Steam.
- Исправлен баг "cannot read file status ..." в операции "3b".
- Архивы с итоговым размером более 2 ГБ теперь разбиваются на многотомные для лучшей совместимости.
0.99 (09.07.2013):
- Исправлена несовместимость с ОС Windows XP 32-bit ввиду ограничений программы ACF Verifyer (перекомплиирована).
- Изменён приотритет определения папки Steam: если утилита лежит в папке SteamApps, то папкой Steam будет "..\".
- Обновлен входящий в состав утилиты текстовый процессор, SFK, до версии 1.67 (небольшой прирост производительности).
- В создаваемых .version-файлах поля "StateFlags" и "UpdateResult" в ACF теперь всегда имеют значения по умолчанию.
0.98 (01.07.2013):
- Добавлено автоопределение пути к Steam, теперь утилита независима от её местоположения (drag'n'drop сохраняется).
- Изменения в файловой системе утилиты: все приложения и временные файлы помещаются теперь в папку "Resources".
- Папка с бэкапом игры теперь датируется временем обновления игры, а не временем создания бэкапа.
- Настройки утилиты теперь считываются из внешнего ini-файла, что позволит настраивать её более гибко.
- Изменен шрифт консоли по умолчанию на "Lucida Console". Для принятия эффекта нужно перезапустить утилиту после первого запуска.
- Добавлена возможность включать список недокачанных/некорректных файлов при создании .version-файлов (в т.ч. и при совпадении дат).
Теперь, при дальнейшем создании .update-патча из такого .version-файла, в него могут быть включены и данные файлы.
Функция может быть полезна тем, кто хочет исправить свою копию игры без перекачивания всего кэша.
- При создании .update, .version-файлы теперь не генерируются автоматически (но можно вернуть через "MakeVersionWithUpdate=1").
- Добавлена возможность отключать верификацию контента перед созданием архивных копий (параметр "ValidateAppOnBackup" [=0/1]).
- Исправлена ошибка в процедуре NTFS-компрессии, при которой нарушалась работа с путями, имеющими пробелы и спец-символы.
- Улучшение коррекции ошибок при создании .update и .version файлов.
- Небольшие изменения интерфейса программы.
0.95 (29.06.2013)
- Изменения в формате .version - теперь, помимо оглавления, он включает в себя и acf/manifest файлы.
Формат больше несовместим с предыдущими версиями утилиты (но будет совместим со всеми последующими)!
- Запрет на создание обновлений в случае, если версия выбранного .version-файла совпадает с текущей версией игры.
0.93 (28.06.2013)
- Добавлена фильтрация дубликатов для устранения ошибок при архивировании контента и создании .update файлов.
- Небольшие изменения интерфейса программы.
0.92 (28.06.2013)
- Исправлены некоторые ошибки в интерфейсе.
- Добавлена возможность возврата в главное меню со страниц "2с", "2d", "3a" и "3b".
- Ожидание в несколько секунд на странице "1a" заменено на паузу.
- Вместе с названием кэша и статусом в "1a" выводится теперь и его дата.
0.9 (25/06/2013):
- При архивации игр или создании обновлений оригинальный ACF теперь не модифицируется (изменяется только архивный).
- Оптимизация файловой системы: при работе утилиты все временые файлы помещаются во временную папку, а не в текущую.
- Обновления (.update-файлы) теперь можно применять, просто перетаскивая их на Bat-файл утилиты.
- Корректное имя для архивируемых Depot'ов теперь задаётся сразу, а не после запаковки путем переименования.
- Добавлена проверка файла "AppInfo.vdf" при запуске и проверка его последнего обновления при создании .update-файлов.
- Небольшие оптимизации кода и интерфейса программы.
0.81 (24/06/2013):
- Добавлена проверка наличия всех требуемых программой инструментов (при запуске).
0.8 (23/06/2013):
Благодарность: test2006, unit#0, stahlworks и всем заинтересованным...
У вас нет необходимых прав для просмотра вложений в этом сообщении.