GamePacker

GamePacker 4.6.0 Release no redist

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

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

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

  • Сканировать уазаную папку с игрой и выводить список сжымаемых файлов
  • Анализировать файлы и определять приблезительный сжатый размер
  • Создавать множество 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.2:
  1. Теперь программа умеет сохранять настройки
  2. Алгоритм сортировки переработан для более плогного сжатия
  3. Изменено окно настройки цепочек сжатия (стало проще настраивать)
ВНИМАНИЕ!!!:
После изменений старые плагины больше не являются совместимыми из новой версией. Для портирования старых алгоритмов (и для добавления новых) обращайтесь ко мне

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

  • Сканировать уазаную папку с игрой и выводить список сжымаемых файлов
  • Анализировать файлы и определять приблезительный сжатый размер
  • Создавать множество 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") пути с пробелами нужно указывать в кавычках, программа не должна лежать по пути который имеет в себе пробелы.
Возобновление сжатия также возможно
ОБНОВЛЕНИЕ Gamepacker 3.5.9 Release
Изменения:

  1. Исправлен интерфейс (языковые ошибки и несоответствие столбцов)
  2. Исправлен вылет программы при добавлении/удалении алгоритмов при невыбраной группе
Программа умеет:
  • Анализировать файлы и подбирать оптимальную цепочку сжатия
  • Сканировать указаную папку с игрой и выводить список сжимаемых файлов(поддерживает Drag and drop)
  • Анализировать файлы и определять приблизительный сжатый размер
  • Создавать множество freearc архивов с приблизительно одинаковым размером
  • Возобновлять работу с места остановки в случае закрытия консольного окна freearc-a
  • Генерировать скрипт установки ISDone
Анализ выполняется посредством сжатия каждого файла по отдельности и опредления размера архива для каждой цепочки алгоритмов. Он не обязателен, однако проведя анализ вы сможете более плотно сжать игру.
Для использования вам необходимо собрать свою сборку программы:
  1. В корне архива все папки кроме gpp нужны программе
  2. В папке gpp находятся плагины дополняющие работу программы:
    • anvil - плагин добавляющий препроцессор который обрабатывает forge файлы (к примеру assassin's creed)
    • big files rar partition - плагин который поможет разбить слишком большие файлы на многотомные rar архивы
    • bink - плагин добавляющий алгоритм для сжатия bik файлов
    • lolz - плагин заменяет стандартный алгоритм lzma на lolz
    • lzma2 - плагин заменяет стандартный алгоритм lzma на lzma2 из 7-zip
    • media stream compressor - плагин добавляющий алгоритм который сжимает mp3, raw, wav аудио
    • plz4 - плагин добавляющий препроцессор plz4 (алгоритм находится в бета версии по этому с ним могут быть проблемы)
    • plzo - плагин добавляющий препроцессор plzo (алгоритм находится в бета версии по этому с ним могут быть проблемы)
    • precomp - плагин добавляющий препроцессор precomp
    • pzlib - плагин добавляющий препроцессор pzlib (алгоритм находится в бета версии по этому с ним могут быть проблемы)
    • pzstd - плагин добавляющий препроцессор pzstd (алгоритм находится в альфа версии по этому с ним могут быть проблемы)
    • srep - плагин добавляющий препроцессор super rep
    • uelr - плагин добавляющий препроцессор uelr для игр созданых на движке Unreal Engine
    • unpack zip archives - Плагин для распаковки zip архивов для последующего сжатия
    • xprecomp - плагин добавляющий препроцессор xtool
  3. Выбрав необходимые плагины вы из папок этих плагинов перемещаете в папку программы папки plugins и tools. В папке unpack находятся инструменты для распаковки алгоритма добавляемого этим плагином(если папки нет - тогда для распаковки ничего не нужно)
  4. Пользуйтесь))

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

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

  • Сканировать уазаную папку с игрой и выводить список сжымаемых файлов
  • Анализировать файлы и определять приблезительный сжатый размер
  • Создавать множество 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") пути с пробелами нужно указывать в кавычках, программа не должна лежать по пути который имеет в себе пробелы.
Возобновление сжатия также возможно по даблклику по программе (нужен файл save.dat, для загрузки даных)
Для работы программы должен быть установлен пакет Microsoft Visual C++ 2015 Redistributable Pack, скачать его можно от сюда
  • Like
Реакции: ffmla и vint56
Добавлена возможность сгенерировать скрипт распаковки Inno Setup ISDone, скрипт можно включить в ваш скипт инсталятора директивой:
Код:
#include "unpack.iss"
Заменена иконка (Спасибо пользователю Nemko)
Графическая версия программы, в которой гораздо удобнее работать нежели в консоли
ПРОГРАММА НАПИСАНА С НУЛЯ И ПРЕДЫДУЩИЙ ФУНКЦИОНАЛ ПОКА НЕ РЕАЛИЗОВАН!!!
Программа умеет:

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

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