GamePacker

GamePacker 4.6.0 Release no redist

Нет прав для скачивания
Добавлена возможность запуска анализа перед упаковкой (в таком случае упаковка начнёться автоматически после завершения анализа)
Разширения файлов в разном регистре теперь щитаються одним разсширением (например .wav и .WAV)
Исправлен баг, из за которого DirectX и Microsoft Games for Windows Live интегрировались, даже если не были отмечены флажком
Алгоритм Oodle заменён на 32-х битную версию (для совместимости со старыми компъютерами) и включён в цепочку xprecomp (для уменьшения времени анализа)
Алгоритм precomp версии 0.4.3 заменён на версию 0.4.7 (используеться cls-precompmt), благодаря чему скорость даного алгоритма возросла в разы.
Исправил ложноотрицательное определение NVidia PhysX
Исправил ложноположительное определение дополнительного софта
Добавил возможность править интегрируемый дополнительный софт (Если программа не обнаружила какой то софт, но вы уверены, что он нужен, вы можете вручную выбрать его)
Добавлен анализ необходимого дополнительного софта и последующая интеграция его в скрипт установки (не всегда может определить весь необходимый софт, так как система работает на чтении exe, dll файлов в разделе Import, а некоторые библиотеки могут подгружаться динамически)
Переместил на файлообменник, так как этот сайт не позволяет размещать настолько большие файлы
Добавлена справка на английском языке
За перевод спасибо Nemko
Программа умеет:
  • Анализировать файлы и подбирать оптимальную цепочку сжатия
  • Сканировать указаную папку с игрой и выводить список сжимаемых файлов(поддерживает Drag&drop)
  • Анализировать файлы и определять приблизительный сжатый размер
  • Создавать множество freearc архивов с приблизительно одинаковым размером
  • Возобновлять работу с места остановки в случае закрытия консольного окна freearc-a
  • Генерировать скрипт установки ISDone

Анализ выполняется посредством сжатия каждого файла по отдельности и опредления размера архива для каждой цепочки алгоритмов. Он не обязателен, однако проведя анализ вы сможете более плотно сжать игру.

Перед началом вам нужно настроить алгоритмы под себя (см. Настройка программы). А также подготовить скрипт ISDone для работы с программой:
  1. Удалить из папок скрипта все файлы связанные с ISDone кроме english.ini, russian.ini, ISDone.dll
  2. В скрипте, если они есть, удалить все константы, которые определяют финальный размер игры (NeedSize, NeedSizeMB)
  3. Если есть, удалить рядок в секции Setup с параметром ExtraDiskSpaceRequired
  4. В секции Files удалить все файлы касающиеся ISDone кроме указанных в пункте 1 и файла records.inf (см. справку по ISDone)
  5. В секции code после объявления функций ISDone добавить код: #include "install.iss"
  6. Если у вас в скрипте отображаются имена, файлов, которые распаковываются, то в функции ProgressCallback перед использованием переменной CurrentFile добавить «DirInsertFileName +» (Должно получиться так: «DirInsertFileName + CurrentFile»
  7. В функции отмены установки, после вызова процедуры SuspendProc (Или вопроса, подтверждения отмены) добавить вызов процедуры CancelExtract
  8. В месте распаковки файлов в временную папку удалить все файлы касающиеся ISDone кроме файлов указанных в пункте 1, и файла records.inf и добавить на их место вызов процедуры ExtractFiles
  9. Весь код по распаковке архивов заменить на «if not ExtractArchives() then break;»
  10. В месте, где обрабатываются ошибки ISDone перед вызовом деинсталлятора добавить вызов процедуры CancelExtract;
После указанных действий скрипт автоматически будет подтягивать информацию сгенерированною программой

Использование программы очень просто:
  1. Запускаете программу
  2. Выбираете Файл->Сканировать игровую папку (или перетажить ее на окно)
  3. Вы можете проанализировать файлы по пути Архив->Анализ.
  4. Идёте по пути Архив->Упаковка, указываете имя архивов, их максимальный размер, пароль на архивы и нажимаете Упаковать
Требования:
  • Microsoft .NET Framework 4.6
  • 64-битная операционная система не ниже Windows 7

Настройка программы:
Окно настроек находиться по пути: Файл -> Настройки. В главном окне настроек вы можете настроить язык, открыть настройки алгоритма, группы, или анализа. Настройки каждого алгоритма индивидуальны и здесь описываться не будут (для детального ознакомления с ними обращайтесь к справке соответственного алгоритма)

Настройки групп:
Вы можете добавить группу нажав кнопку «Добавить». Вы можете удалить группу выделив её и нажав кнопку «Удалить». Для настройки группы вы должны выделить её и нажать кнопку «Настроить». Настройки групп включают: имя, алгоритмы предварительной обработки (препроцессоры), алгоритмы предварительного сжатия (прекомпрессоры), алгоритм финального сжатия, и маски файлов.

Настройки предварительной обработки, и предварительного сжатия:
Для добавления нового алгоритма в очередь, вы должны выбрать этот алгоритм в правой стороне окна «Очередь алгоритмов» и нажать кнопку «стрелка в лево», соответственно кнопка «стрелка в право» удаляет выбраный алгоритм из очереди. Кнопки «стрелка в верх» и «стрелка в низ» перемещают выбранный алгоритм в очереди вверх и вниз соответственно.

Настройки масок файлов:
Для изменения маски вы должны выбрать её, и в текстовом поле ниже ввести новое имя, а за тем нажать кнопку «Сохранить». Чтобы добавить маску нужно проделать ту же процедуру, но без выделения старых масок (для снятия выделения нажмите на выделенную маску с нажатой клавишей «Ctrl»). Кнопка «Удалить» позволяет удалить выбранные маски из группы.

Настройки анализа:
Вы должны выбрать с помощью флажков те цепочки, которые будут проверяться для всех файлов, масок которых, нет в группах. Если цепочка обозначена серым квадратиком, значит связанная с ней группа была удалена.
Программа умеет:
  • Анализировать файлы и подбирать оптимальную цепочку сжатия
  • Сканировать указаную папку с игрой и выводить список сжимаемых файлов(поддерживает Drag and drop)
  • Анализировать файлы и определять приблизительный сжатый размер
  • Создавать множество freearc архивов с приблизительно одинаковым размером
  • Возобновлять работу с места остановки в случае закрытия консольного окна freearc-a
  • Генерировать скрипт установки ISDone
Анализ выполняется посредством сжатия каждого файла по отдельности и опредления размера архива для каждой цепочки алгоритмов. Он не обязателен, однако проведя анализ вы сможете более плотно сжать игру.
Для использования вам необходимо собрать свою сборку программы:
  1. В корне архива все папки кроме gpp нужны программе
  2. В папке gpp находятся плагины дополняющие работу программы:
    • big files rar partition - плагин который поможет разбить слишком большие файлы на многотомные rar архивы
    • bink - плагин добавляющий алгоритм для сжатия bik файлов
    • lolz - плагин заменяет стандартный алгоритм lzma на lolz
    • lzma2 - плагин заменяет стандартный алгоритм lzma на lzma2 из 7-zip
    • media stream compressor - плагин добавляющий алгоритм который сжимает mp3, raw, wav аудиоsrep - плагин добавляющий препроцессор super rep
    • oggre - Плагин добаляющий алгоритм oggre для сжатия ogg файлов (ВНИМАНИЕ!!! Не гарантируется корректная работа, дело в самом алгоритме а не плагине)
    • unpack zip archives - Плагин для распаковки zip архивов для последующего сжатия
    • xprecomp - плагин добавляющий препроцессор xtool
  3. Выбрав необходимые плагины вы из папок этих плагинов перемещаете в папку программы папки plugins и tools. В папке unpack находятся инструменты для распаковки алгоритма добавляемого этим плагином(если папки нет - тогда для распаковки ничего не нужно)
  4. Пользуйтесь))

Использование программы очень просто:
  1. Запускаете программу
  2. Выбираете Файл->Сканировать игровую папку (или перетажить ее на окно)
  3. Если хотите распаковать zip архивы Нажмите: Предварительная обработка->Распаковка zip архивов
  4. Если хотите разделить большие файлы на части нажмите: Предварительная обработка->Разбить большие файлы указывайте размер и нажмите кнопку Разбить
  5. Вы также можете настроить (правильная настройка может существенно меньшить время анализа) цепочки сжатия по пути Архив->Настройки сжатия (подробнее будет написано ниже)
  6. Вы так же можете настроить сортировку файлов в архиве по пути Архив->Настройка сортировки файлов
  7. Вы можете проанализировать файлы по пути Архив->Анализ.Затем вам нужно отметить нужные (остальные будут пропущены) алгоритмы галочкой и нажать кнопку Анализ
Для работы программы должен быть установлен пакет Microsoft .NET Framework
Для упаковки файлов в архив нажмите: Архив->Упаковка Укжите имя и разширение архивов, максимальный размер архивов а также пароль.
Обновление 3.6.6:
  1. Уменьшено количество проходов при упаковке
  2. Вернул старый lolz (по скольку с новым были проблемы) Для того кто хочет испытать судьбу вы всегда можете использовать версию плагина из 3.6.5 (они совместимы)
ВНИМАНИЕ!!!:
После изменений старые плагины больше не являются совместимыми из новой версией. Для портирования старых алгоритмов (и для добавления новых) обращайтесь ко мне

Графическая версия программы, в которой гораздо удобнее работать нежели в консоли
ПРОГРАММА НАПИСАНА С НУЛЯ И ПРЕДЫДУЩИЙ ФУНКЦИОНАЛ ПОКА НЕ РЕАЛИЗОВАН!!!
Программа умеет:

  • Сканировать уазаную папку с игрой и выводить список сжымаемых файлов
  • Анализировать файлы и определять приблезительный сжатый размер
  • Создавать множество freearc архивов с заданым алгоритмом сжатия
  • Резервное копирование игровых файлов в временную папку (которая очищаеться после завершения программы)
  • Выбирает конфигурацию (arc-1.ini, ..., arc-n.ini) до тех пор пока не будет успешно создан архив (можно использовать алгоритмы которые в некоторых играх выдают ошибку сжатия, тогда программа просто повторит сжатие файлов с следующим конфигом)
  • Сохраняет предыдущие настройки в реестре, благодаря чему не нужно постоянно изменять их
  • Подсчитывает размер игры и примерное количество архивов
Анализ выполняется посредством сжатия каждого файла по отдельности и определения размера архива. Он не обязателен, однако, в больших играх, способен значительно уменьшить количество проходов (в малых играх, лучше не использовать - только потеряете время)

Использование программы очень просто:
  1. Запустить exe-шник
  2. В диалоговом окне выберите папку с игрой
  3. Настройте параметры программы (Имя архива, размер, и тп)
  4. Нажмите кнопку анализ файлов (опционально, если игра должна поместится в один архив, тогда анализ - впустую потраченое время)
  5. Нажмите кнопку упаковка
  6. Закройте программу и заберите архивы из папки out
ОБНОВЛЕНИЕ 2.0.1 RC
Изменения:

  • Добавлена возможность сгенерировать скрипт распаковки Inno Setup ISDone, скрипт можно включить в ваш скипт инсталятора директивой:
    Код:
    #include "unpack.iss"
    в месте где прописывается распаковка архивов

  • Заменена иконка (Спасибо пользователю Nemko)
Программа предназначена для упаковки директории игры в архив freearc с указанными параметрами.
Файлы которые нужны программе:
  1. installpack.exe Непосредственно сама программа
  2. arc.exe консольная версия архиватора freearc, с помощью которой и происходит упаковка
  3. arc-1.ini Конфиг для freearc'а
  4. config.ini Конфиг для gamepacker'a
  5. nbtdata.dll DLL библиотека для сохранения и загрузки данных
  6. packZIP.exe - Нужно заменить на ту версию которая используется у вас в ISDone (Программа для упаковки ZIP архивов)
  7. 7z.exe - консольная версия 7zip архиватора, используется для распаковки zip архивов
  8. 7z.dll - Нужен для работы 7z.exe
  9. Rar.exe - консольная версия WinRar архиватора, для разбиения больших файлов на части
  10. xdelta3.exe - Служит для патчей zip архивов для уверенности что восстановление файлов произойдет bit to bit
Остальные файлы программе не нужны, они используются в качестве препроцессоров freearc'а.
Программа умеет:
  1. Создавать архивы приблизительно одинакового размера
  2. Распаковывать zip архивы (Детект zip архивов происходит по первым 4 байтам)
  3. Делить большие файлы на части с помощью многотомных rar архивов
  4. Генерировать скрипт для распаковки в ISDone(т.е. вы просто копируете команды из файла unpack.iss и вставляете их в свой скрипт)
  5. Возобновлять работу в случае преждевременного прекращения работы(например случайно нажали на крестик)
Конфиг программы:
  • clearMasks - маски временных файлов, которые могут появится в папке с программой
  • arc.ini - указывает расположение arc.ini, который используется при распаковке (например: {tmp}\\arc.ini)
  • compress - секция настроек сжатия freearc'ом
    • compressLevel - уровень сжатия (значение подставляется в аргумент -m)
    • compressMetaLevel - уровень сжатия (значение подставляется в аргумент -dm)
    • archiveName - имя архивов (в конце будет добавлен номер архива)
    • archivePassword - пароль который нужно установить на архив
    • archiveExt - расширение архива
    • archiveSize - максимальный размер архива (в мегабайтах)
  • rarpartition - секция настроек разбиения больших файлов
    • enable - если true - тогда использовать разбиение иначе - нет
    • size - размер тома в мегабайтах (если 0 - тогда используется значение из archiveSize
  • zipunpack - секция настроек распаковки zip архивов
    • enable - если true - тогда распаковывать zip архивы иначе - нет
    • crcFix - если true - тогда после распаковки будет создан xdelta патч для восстановления исходного файла
    • compressLevel - уровень сжатия файлов zip архива (который задается для создания архива в ISDone)
  • precompress - секция настроек прекомпрессоров
    • все команды сортируются по ASCII таблице (сравнивается каждый символ ключа)
    • синтаксис команд:ключ=команда|команда распаковки в ISDone №1|...|команда распаковки в ISDone №n
      • Команда может иметь следующие переменные
        • $outfile$ - выходной файл
        • $infile$ - входной файл
      • Команда распаковки может иметь следующие переменные
        • $outpath$ - выходной каталог (относительно пути установки)
        • $infile$ - входной файл
        • $outfile$ - выходной файл
    • для указания в команде символа ';' нужно его экранировать ('\;')
    • для указания в команде символа '\' нужно его экранировать ('\\')
Программа действует за следующим алгоритмом:
  1. Ищет файл save.dat
  2. если файл существует - загружает данные из него
  3. если файл не существует программа начинает собирать данные
    1. Сканирует папку с игрой
    2. для каждой папки выполняет шаг 1
    3. анализирует каждый файл
    4. если файл zip архив тогда распаковать, если нет то перейти к шагу 8
    5. создает zip архив из распакованных данных
    6. создает патч разницы между оригиналом и упакованным архивом
    7. для папки распакованного архива выполняет шаг 1
    8. проверяет размер каждого файла
    9. если размер больше заданого в конфиге то создать многотомный архив
    10. каждый проанализированный файл (кроме zip архива и не разбитого файла) заносит в список
    11. каждую пустую папку заносит в список
  4. Сортирует список по размеру в обратном порядке (первый файл - самый больший)
  5. После сбора данных начинается упаковка
    1. Создает список сжимаемых файлов
    2. добавляет в список все файлы пока их общий размер не будет максимально близкий к указаному в конфиге
    3. если в конфиге заданы прекомпрессоры тогда создает временный файл
    4. пропускает временный файл через все прекомпрессоры
    5. создает архив с конфигом arc-1.ini
    6. если не удалось, создает архив с конфигом arc-....ini
    7. если не удалось, создает архив с конфигом arc-n.ini
    8. берет размер созданого архива
    9. добавляет к списку файлы общего размера разницы размера указаного в конфиге и размера архива
    10. если в архив все еще можно вместить файлы возвращается к шагу 3
  6. Генерирует скрипт распаковки

!!!ВНИМАНИЕ!!! не закрывайте программу в промежутки когда появилась надпись Saving data... и пока не появится надпись Save complete, Если вы это сделаете тогда файл save.dat будет поврежден и упаковку нельзя будет возобновить
Упаковка игры делается с помощью перетаскивания папки с игрой на exe-шник программы или задания пути к папке с игрой с помощью первого аргумента командной строки (installpack.exe "d:\games\age of empires iii") пути с пробелами нужно указывать в кавычках, программа не должна лежать по пути который имеет в себе пробелы.
Возобновление сжатия также возможно
Программа умеет:
  • Анализировать файлы и подбирать оптимальную цепочку сжатия
  • Сканировать указаную папку с игрой и выводить список сжимаемых файлов(поддерживает Drag and drop)
  • Анализировать файлы и определять приблизительный сжатый размер
  • Создавать множество freearc архивов с приблизительно одинаковым размером
  • Возобновлять работу с места остановки в случае закрытия консольного окна freearc-a
  • Генерировать скрипт установки ISDone
Анализ выполняется посредством сжатия каждого файла по отдельности и опредления размера архива для каждой цепочки алгоритмов. Он не обязателен, однако проведя анализ вы сможете более плотно сжать игру.
Для использования вам необходимо собрать свою сборку программы:
  1. В корне архива все папки кроме gpp нужны программе
  2. В папке gpp находятся плагины дополняющие работу программы:
    • big files rar partition - плагин который поможет разбить слишком большие файлы на многотомные rar архивы
    • bink - плагин добавляющий алгоритм для сжатия bik файлов
    • lolz - плагин заменяет стандартный алгоритм lzma на lolz
    • lzma2 - плагин заменяет стандартный алгоритм lzma на lzma2 из 7-zip
    • media stream compressor - плагин добавляющий алгоритм который сжимает mp3, raw, wav аудиоsrep - плагин добавляющий препроцессор super rep
    • oggre - Плагин добаляющий алгоритм oggre для сжатия ogg файлов (ВНИМАНИЕ!!! Не гарантируется корректная работа, дело в самом алгоритме а не плагине)
    • unpack zip archives - Плагин для распаковки zip архивов для последующего сжатия
    • xprecomp - плагин добавляющий препроцессор xtool
  3. Выбрав необходимые плагины вы из папок этих плагинов перемещаете в папку программы папки plugins и tools. В папке unpack находятся инструменты для распаковки алгоритма добавляемого этим плагином(если папки нет - тогда для распаковки ничего не нужно)
  4. Пользуйтесь))

Использование программы очень просто:
  1. Запускаете программу
  2. Выбираете Файл->Сканировать игровую папку (или перетажить ее на окно)
  3. Если хотите распаковать zip архивы Нажмите: Предварительная обработка->Распаковка zip архивов
  4. Если хотите разделить большие файлы на части нажмите: Предварительная обработка->Разбить большие файлы указывайте размер и нажмите кнопку Разбить
  5. Вы также можете настроить (правильная настройка может существенно меньшить время анализа) цепочки сжатия по пути Архив->Настройки сжатия (подробнее будет написано ниже)
  6. Вы так же можете настроить сортировку файлов в архиве по пути Архив->Настройка сортировки файлов
  7. Вы можете проанализировать файлы по пути Архив->Анализ.Затем вам нужно отметить нужные (остальные будут пропущены) алгоритмы галочкой и нажать кнопку Анализ
Для работы программы должен быть установлен пакет Microsoft .NET Framework
Для упаковки файлов в архив нажмите: Архив->Упаковка Укжите имя и разширение архивов, максимальный размер архивов а также пароль.
Обновление 3.6.5:
  1. Исправлены баги
  2. Уменьшено количество проходов при упаковке
  3. Если GamePacker не активен, тогда окна создания архива образуются в свернутом виде
  4. Обновлен алгоритм lolz
  5. Переработана конфигурация алгоритма srep (теперь можно указывать для l значения аж по 8192)
ВНИМАНИЕ!!!:
После изменений старые плагины больше не являются совместимыми из новой версией. Для портирования старых алгоритмов (и для добавления новых) обращайтесь ко мне

Графическая версия программы, в которой гораздо удобнее работать нежели в консоли
ПРОГРАММА НАПИСАНА С НУЛЯ И ПРЕДЫДУЩИЙ ФУНКЦИОНАЛ ПОКА НЕ РЕАЛИЗОВАН!!!
Программа умеет:

  • Сканировать уазаную папку с игрой и выводить список сжымаемых файлов
  • Анализировать файлы и определять приблезительный сжатый размер
  • Создавать множество freearc архивов с заданым алгоритмом сжатия
  • Резервное копирование игровых файлов в временную папку (которая очищаеться после завершения программы)
  • Выбирает конфигурацию (arc-1.ini, ..., arc-n.ini) до тех пор пока не будет успешно создан архив (можно использовать алгоритмы которые в некоторых играх выдают ошибку сжатия, тогда программа просто повторит сжатие файлов с следующим конфигом)
  • Сохраняет предыдущие настройки в реестре, благодаря чему не нужно постоянно изменять их
  • Подсчитывает размер игры и примерное количество архивов
Анализ выполняется посредством сжатия каждого файла по отдельности и определения размера архива. Он не обязателен, однако, в больших играх, способен значительно уменьшить количество проходов (в малых играх, лучше не использовать - только потеряете время)

Использование программы очень просто:
  1. Запустить exe-шник
  2. В диалоговом окне выберите папку с игрой
  3. Настройте параметры программы (Имя архива, размер, и тп)
  4. Нажмите кнопку анализ файлов (опционально, если игра должна поместится в один архив, тогда анализ - впустую потраченое время)
  5. Нажмите кнопку упаковка
  6. Закройте программу и заберите архивы из папки out
ОБНОВЛЕНИЕ 2.0.1 RC
Изменения:

  • Добавлена возможность сгенерировать скрипт распаковки Inno Setup ISDone, скрипт можно включить в ваш скипт инсталятора директивой:
    Код:
    #include "unpack.iss"
    в месте где прописывается распаковка архивов

  • Заменена иконка (Спасибо пользователю Nemko)
Программа предназначена для упаковки директории игры в архив freearc с указанными параметрами.
Файлы которые нужны программе:
  1. installpack.exe Непосредственно сама программа
  2. arc.exe консольная версия архиватора freearc, с помощью которой и происходит упаковка
  3. arc-1.ini Конфиг для freearc'а
  4. config.ini Конфиг для gamepacker'a
  5. nbtdata.dll DLL библиотека для сохранения и загрузки данных
  6. packZIP.exe - Нужно заменить на ту версию которая используется у вас в ISDone (Программа для упаковки ZIP архивов)
  7. 7z.exe - консольная версия 7zip архиватора, используется для распаковки zip архивов
  8. 7z.dll - Нужен для работы 7z.exe
  9. Rar.exe - консольная версия WinRar архиватора, для разбиения больших файлов на части
  10. xdelta3.exe - Служит для патчей zip архивов для уверенности что восстановление файлов произойдет bit to bit
Остальные файлы программе не нужны, они используются в качестве препроцессоров freearc'а.
Программа умеет:
  1. Создавать архивы приблизительно одинакового размера
  2. Распаковывать zip архивы (Детект zip архивов происходит по первым 4 байтам)
  3. Делить большие файлы на части с помощью многотомных rar архивов
  4. Генерировать скрипт для распаковки в ISDone(т.е. вы просто копируете команды из файла unpack.iss и вставляете их в свой скрипт)
  5. Возобновлять работу в случае преждевременного прекращения работы(например случайно нажали на крестик)
Конфиг программы:
  • clearMasks - маски временных файлов, которые могут появится в папке с программой
  • arc.ini - указывает расположение arc.ini, который используется при распаковке (например: {tmp}\\arc.ini)
  • compress - секция настроек сжатия freearc'ом
    • compressLevel - уровень сжатия (значение подставляется в аргумент -m)
    • compressMetaLevel - уровень сжатия (значение подставляется в аргумент -dm)
    • archiveName - имя архивов (в конце будет добавлен номер архива)
    • archivePassword - пароль который нужно установить на архив
    • archiveExt - расширение архива
    • archiveSize - максимальный размер архива (в мегабайтах)
  • rarpartition - секция настроек разбиения больших файлов
    • enable - если true - тогда использовать разбиение иначе - нет
    • size - размер тома в мегабайтах (если 0 - тогда используется значение из archiveSize
  • zipunpack - секция настроек распаковки zip архивов
    • enable - если true - тогда распаковывать zip архивы иначе - нет
    • crcFix - если true - тогда после распаковки будет создан xdelta патч для восстановления исходного файла
    • compressLevel - уровень сжатия файлов zip архива (который задается для создания архива в ISDone)
  • precompress - секция настроек прекомпрессоров
    • все команды сортируются по ASCII таблице (сравнивается каждый символ ключа)
    • синтаксис команд:ключ=команда|команда распаковки в ISDone №1|...|команда распаковки в ISDone №n
      • Команда может иметь следующие переменные
        • $outfile$ - выходной файл
        • $infile$ - входной файл
      • Команда распаковки может иметь следующие переменные
        • $outpath$ - выходной каталог (относительно пути установки)
        • $infile$ - входной файл
        • $outfile$ - выходной файл
    • для указания в команде символа ';' нужно его экранировать ('\;')
    • для указания в команде символа '\' нужно его экранировать ('\\')
Программа действует за следующим алгоритмом:
  1. Ищет файл save.dat
  2. если файл существует - загружает данные из него
  3. если файл не существует программа начинает собирать данные
    1. Сканирует папку с игрой
    2. для каждой папки выполняет шаг 1
    3. анализирует каждый файл
    4. если файл zip архив тогда распаковать, если нет то перейти к шагу 8
    5. создает zip архив из распакованных данных
    6. создает патч разницы между оригиналом и упакованным архивом
    7. для папки распакованного архива выполняет шаг 1
    8. проверяет размер каждого файла
    9. если размер больше заданого в конфиге то создать многотомный архив
    10. каждый проанализированный файл (кроме zip архива и не разбитого файла) заносит в список
    11. каждую пустую папку заносит в список
  4. Сортирует список по размеру в обратном порядке (первый файл - самый больший)
  5. После сбора данных начинается упаковка
    1. Создает список сжимаемых файлов
    2. добавляет в список все файлы пока их общий размер не будет максимально близкий к указаному в конфиге
    3. если в конфиге заданы прекомпрессоры тогда создает временный файл
    4. пропускает временный файл через все прекомпрессоры
    5. создает архив с конфигом arc-1.ini
    6. если не удалось, создает архив с конфигом arc-....ini
    7. если не удалось, создает архив с конфигом arc-n.ini
    8. берет размер созданого архива
    9. добавляет к списку файлы общего размера разницы размера указаного в конфиге и размера архива
    10. если в архив все еще можно вместить файлы возвращается к шагу 3
  6. Генерирует скрипт распаковки

!!!ВНИМАНИЕ!!! не закрывайте программу в промежутки когда появилась надпись Saving data... и пока не появится надпись Save complete, Если вы это сделаете тогда файл save.dat будет поврежден и упаковку нельзя будет возобновить
Упаковка игры делается с помощью перетаскивания папки с игрой на exe-шник программы или задания пути к папке с игрой с помощью первого аргумента командной строки (installpack.exe "d:\games\age of empires iii") пути с пробелами нужно указывать в кавычках, программа не должна лежать по пути который имеет в себе пробелы.
Возобновление сжатия также возможно
Сверху