[Util] ACF Toolkit v1.0 (beta)
- ROY666
- Лейтенант
- Сообщения: 104
- Зарегистрирован: 20.08.2010
- Поблагодарили: 27 раз
- Контактная информация:
Сразу хочу извиниться. Прочел всю тему и все посты, но одного так и не понял.
Суть вопроса вот в чем: Нужно сделать патч для no-steam сборки используя обновленную игру. Возможно ли это сделать? Или утилита создает патчи понятные только ей? Или же есть другие инструменты позволяющее отследить список изминенных файлов вышедших с последним обновлением.
Еще раз извиняюсь за столь глупый (и возможно не к месту) вопрос. :(
Суть вопроса вот в чем: Нужно сделать патч для no-steam сборки используя обновленную игру. Возможно ли это сделать? Или утилита создает патчи понятные только ей? Или же есть другие инструменты позволяющее отследить список изминенных файлов вышедших с последним обновлением.
Еще раз извиняюсь за столь глупый (и возможно не к месту) вопрос. :(
- DRON9RA
- Полковник
- Сообщения: 2233
- Зарегистрирован: 04.02.2009
- Благодарил (а): 1477 раз
- Поблагодарили: 205 раз
- Контактная информация:
Вообще да, не хватает наиполнейшей инофрмации об играх, вплоть до каждого файла и когда он был последний раз изменён. В этой утилите такое не реализовать (вся равно не читаемо будет без ГУИ). А в TINcft этой функции не предвидеться (мне вообще интерфейс старого cf toolbox больше нравился).
Да и стиму доверять нельзя, он нередко качает не всё, или как-нить криво. Нужно проводить проверку кеша обязательно. А для некоторых игр требуется и английская и русская версия последних версий.
То есть, делать патч просто новыми файлами будет проблематично. А имеющийся функционал в ACF Toolkit и TINcft, такой же как в CF Toolbox. Как делать патчи описано в шапках соответствующих тем. После того как Вы обновли полностью игру в стим, проверьте пару раз кеш (чтобы никаких скачиваний а сразу "всё на месте" и для каждого языка) и заранее сделайте файл-архив с информацией об установленной версии. В дальнейшем Вы сможете сделать или установить патч только используя этот файл. Читайте первый пост.
Учтите, что прога несовместима с TINcft.
Да и стиму доверять нельзя, он нередко качает не всё, или как-нить криво. Нужно проводить проверку кеша обязательно. А для некоторых игр требуется и английская и русская версия последних версий.
То есть, делать патч просто новыми файлами будет проблематично. А имеющийся функционал в ACF Toolkit и TINcft, такой же как в CF Toolbox. Как делать патчи описано в шапках соответствующих тем. После того как Вы обновли полностью игру в стим, проверьте пару раз кеш (чтобы никаких скачиваний а сразу "всё на месте" и для каждого языка) и заранее сделайте файл-архив с информацией об установленной версии. В дальнейшем Вы сможете сделать или установить патч только используя этот файл. Читайте первый пост.
Учтите, что прога несовместима с TINcft.
- Psycho-A
- Эксперты no-Steam
- Сообщения: 424
- Зарегистрирован: 28.09.2009
- Благодарил (а): 15 раз
- Поблагодарили: 82 раза
ROY666
1. Возможно. Это функционал для создания .update-файлов.
2. То есть, тебе необходимо самому просмотреть список измененных файлов? Если так, то для этого достаточно просто открыть сделанный .update-файл 7-zip'ом, и просмотреть полученную файловую систему. Помимо обновленных и добавленных файлов, туда также включается список (файл с расширением .del) файлов, которые были удалены Steam'ом с приходом текущего обновления. Его можно открыть блокнотом.
DRON9RA
Ну, чтобы иметь возможность включать файлы для нескольких локализаций одновременно, нужно в первую очередь, чтобы обе версии игры были полностью скачаны, а для этого требуется держать два Стим-клиента сразу. Потому как нередко файлы локализаций могут быть одинаковыми, и перезаписывают друг-друга.
К версии 1.0 я планирую добавить возможность раздельного обновления контента манифестов, т.е. если у нас где-то имеется дополнительная локализация, то можно будет делать патчи-обновления только для нее и для основного контента игры. Тут, однако, есть свой нюанс: ACF-файлы для разных вариаций игр всегда будут отличаться, равно как и их buildid. Т.е., если мы накатим .update с русской локализацией на английскую версию игры, то она автоматически превратится в русскую, причём, состав файлов будет неполным. Так что, думаю, проще реализовать проверку языка локализации между .update-файлом и ACF игры соответственно, и, если они не совпадают, то либо предложить отказаться от обновления, либо обновить только базовый контент игры (с последним будет сложнее, т.к. по имени манифеста не всегда можно вычислить язык, а в AppInfo такие данные не прописаны).
Насчёт проверки кэша перед обновлением - это уже реализовано в программе, и не нужно даже использовать Стим - программа сама покажет, какие файлы не прошли валидацию.
1. Возможно. Это функционал для создания .update-файлов.
2. То есть, тебе необходимо самому просмотреть список измененных файлов? Если так, то для этого достаточно просто открыть сделанный .update-файл 7-zip'ом, и просмотреть полученную файловую систему. Помимо обновленных и добавленных файлов, туда также включается список (файл с расширением .del) файлов, которые были удалены Steam'ом с приходом текущего обновления. Его можно открыть блокнотом.
DRON9RA
Ну, чтобы иметь возможность включать файлы для нескольких локализаций одновременно, нужно в первую очередь, чтобы обе версии игры были полностью скачаны, а для этого требуется держать два Стим-клиента сразу. Потому как нередко файлы локализаций могут быть одинаковыми, и перезаписывают друг-друга.
К версии 1.0 я планирую добавить возможность раздельного обновления контента манифестов, т.е. если у нас где-то имеется дополнительная локализация, то можно будет делать патчи-обновления только для нее и для основного контента игры. Тут, однако, есть свой нюанс: ACF-файлы для разных вариаций игр всегда будут отличаться, равно как и их buildid. Т.е., если мы накатим .update с русской локализацией на английскую версию игры, то она автоматически превратится в русскую, причём, состав файлов будет неполным. Так что, думаю, проще реализовать проверку языка локализации между .update-файлом и ACF игры соответственно, и, если они не совпадают, то либо предложить отказаться от обновления, либо обновить только базовый контент игры (с последним будет сложнее, т.к. по имени манифеста не всегда можно вычислить язык, а в AppInfo такие данные не прописаны).
Насчёт проверки кэша перед обновлением - это уже реализовано в программе, и не нужно даже использовать Стим - программа сама покажет, какие файлы не прошли валидацию.
- ROY666
- Лейтенант
- Сообщения: 104
- Зарегистрирован: 20.08.2010
- Поблагодарили: 27 раз
- Контактная информация:
Psycho-A
Абсолютно точно, именно это мне и нужно. Просто не было возможности провести данную операцию как подобает. Со следующим обновлением буду пробывать. Что бы было понятно остальным, на деле я имею чистую версию Killing Floor, а также идентичную копию no-steam, собственно после обновления я имею update-to-date Steam версию Killing Floor и мне нужно собрать патч (набор обновленных файлов) для no-Steam сборки (конечно же можно дождаться пока патч сделают другие пользователи, но все же нужно и самому руками поработать :D) Psycho-A Спасибо Вам еще раз!
Абсолютно точно, именно это мне и нужно. Просто не было возможности провести данную операцию как подобает. Со следующим обновлением буду пробывать. Что бы было понятно остальным, на деле я имею чистую версию Killing Floor, а также идентичную копию no-steam, собственно после обновления я имею update-to-date Steam версию Killing Floor и мне нужно собрать патч (набор обновленных файлов) для no-Steam сборки (конечно же можно дождаться пока патч сделают другие пользователи, но все же нужно и самому руками поработать :D) Psycho-A Спасибо Вам еще раз!
- Psycho-A
- Эксперты no-Steam
- Сообщения: 424
- Зарегистрирован: 28.09.2009
- Благодарил (а): 15 раз
- Поблагодарили: 82 раза
v1.00-beta2.
Тестовая версия, которую выкладываю по причине нескорого завершения работы над финальной (ввиду недостатка времени) и желания поделиться дополнительными улучшениями уже сейчас.
ChangeLog
Ссылка в шапке.
Тестовая версия, которую выкладываю по причине нескорого завершения работы над финальной (ввиду недостатка времени) и желания поделиться дополнительными улучшениями уже сейчас.
Предлагаю архивировать алгоритмом LZMA2 (многопоточный, автоматически).
Результат сжатия на моем железе Jagged Alliance - Back in Action. Размер 2,57 ГБ (2 769 770 302 байт).
LZMA: Время 11:48, размер 1,60 ГБ (1 724 293 519 байт)
LZMA2 Время 04:54, размер 1,60 ГБ (1 721 696 220 байт)
Нужно найти и заменить на в нескольких местах.
Из установленного 7zip скопировать в папку ..\Resources\Tools\
Возможно какая-то dll лишняя.
Исправить
на
т.е. 7za на 7z
Результат сжатия на моем железе Jagged Alliance - Back in Action. Размер 2,57 ГБ (2 769 770 302 байт).
LZMA: Время 11:48, размер 1,60 ГБ (1 724 293 519 байт)
LZMA2 Время 04:54, размер 1,60 ГБ (1 721 696 220 байт)
Нужно найти
Код: Выделить всё
-mx=9
Код: Выделить всё
-m0=lzma2 -mx=9
Из установленного 7zip скопировать в папку ..\Resources\Tools\
Код: Выделить всё
7z.dll
7-zip.dll
7z.exe
Исправить
Код: Выделить всё
:Tools
set "ArcTool=%~dp0Resources\Tools\7za.exe"
Код: Выделить всё
:Tools
set "ArcTool=%~dp0Resources\Tools\7z.exe"
- Psycho-A
- Эксперты no-Steam
- Сообщения: 424
- Зарегистрирован: 28.09.2009
- Благодарил (а): 15 раз
- Поблагодарили: 82 раза
ArsNG
Программа провалидирует файловую систему твоей игры, и если в ней есть битые или устаревшие файлы - предпримет попытку скачать обновленные файлы с контент-серверов Steam. Само-собой, если какие-то файлы (точнее, манифесты, в которых содержатся листинги файлов) на серверах защищены, то они будут пропускаться. В общем, по аналогии с CFToolbox (если кто-то о ней ещё помнит).
wim95
Если бы всё было так просто, то было бы давно реализовано ;) Проблема в том, что при большом количестве файлов (более 5-10 тыс на игру), LZMA2 весьма неадекватно работает с памятью, вызывая переполнение даже на мощных машинах. А представь, если у человека всего 1 или 2 ГБ? LZMA контролирует её в заданных пределах, поэтому и был выбран.
Ко всем скачавшим версию 1.0-beta2 просьба перекачать файл - исправлена одна непростительная оплошность :).
Программа провалидирует файловую систему твоей игры, и если в ней есть битые или устаревшие файлы - предпримет попытку скачать обновленные файлы с контент-серверов Steam. Само-собой, если какие-то файлы (точнее, манифесты, в которых содержатся листинги файлов) на серверах защищены, то они будут пропускаться. В общем, по аналогии с CFToolbox (если кто-то о ней ещё помнит).
wim95
Если бы всё было так просто, то было бы давно реализовано ;) Проблема в том, что при большом количестве файлов (более 5-10 тыс на игру), LZMA2 весьма неадекватно работает с памятью, вызывая переполнение даже на мощных машинах. А представь, если у человека всего 1 или 2 ГБ? LZMA контролирует её в заданных пределах, поэтому и был выбран.
Ко всем скачавшим версию 1.0-beta2 просьба перекачать файл - исправлена одна непростительная оплошность :).
Ну да из 16 гигов, как минимум 8 съедает, но и все ядра грузит (отсюда уменьшение времени).Psycho-A писал(а): Если бы всё было так просто, то было бы давно реализовано ;)
Желающие могут рискнуть. Когда измерял время упаковки параллельно смотрел сериал и играл в ВОТ (в окошках) ;)
- Psycho-A
- Эксперты no-Steam
- Сообщения: 424
- Зарегистрирован: 28.09.2009
- Благодарил (а): 15 раз
- Поблагодарили: 82 раза
wim95
7za.exe, входящий в набор инструментов программы, итак поддерживает lzma2, - ни к чему производить замены. Возможно, в следующей бете я выведу возможность смены алгоритма сжатия в ini-файл настроек.
Скрытый текст
7za.exe, входящий в набор инструментов программы, итак поддерживает lzma2, - ни к чему производить замены. Возможно, в следующей бете я выведу возможность смены алгоритма сжатия в ini-файл настроек.
-
- Полковник
- Сообщения: 6942
- Зарегистрирован: 03.06.2009
- Благодарил (а): 2390 раз
- Поблагодарили: 2806 раз
- Контактная информация:
если пошла такая пляска, то почему не zip? Вдруг у меня архиватора вообще нет.bugme666 писал(а):Почему сама программа-то распространяется в Rar? Rar sucks же. Давай в 7z. За обнову спасибо.
- Psycho-A
- Эксперты no-Steam
- Сообщения: 424
- Зарегистрирован: 28.09.2009
- Благодарил (а): 15 раз
- Поблагодарили: 82 раза
В использовании 7z, в принципе, есть рациональное звено - ведь все игровые архивы и обновления создаются именно в нем, так что пользователь должен иметь его уже заведомо.
С другой стороны, я мог бы и вовсе паковать программу в какой-нибудь tar.gz, и возразить против этого было бы трудно, так как это автоматом отсеивало бы нубов, неспособных скачать себе нормальный архиватор, который бы это распаковал ;)
С другой стороны, я мог бы и вовсе паковать программу в какой-нибудь tar.gz, и возразить против этого было бы трудно, так как это автоматом отсеивало бы нубов, неспособных скачать себе нормальный архиватор, который бы это распаковал ;)
У меня при использовании lzma2 и 7za выдает вот этоPsycho-A писал(а):wim95
7za.exe, входящий в набор инструментов программы, итак поддерживает lzma2
Я себе lzma2 еще в SteamAppsPreparer поставил и тогда оно с 7za тоже не работало.