Inno Setup Reflate+Srep (500 рублей)

Edison007

Ветеран
Модератор
что то я сомневаюсь что там именно CLS...
cls там


что можно как то использовать
хотя возникает вопрос -- в каком виде хранится reflate дата? (ведь это набор мелких файлов)
вот именно, только cls ничего не даст
 

Edison007

Ветеран
Модератор
Заняться мне больше нечем... картинки рисовать. Я могу также и любой файл переименовать и кинуть :)
 

Shegorat

Lord of Madness
Администратор
как что? если это то о чем я думаю, то получается что все операции происходят в памяти, без каких либо временных файлов, а это уже что то, что можно как то использовать
Ну не совсем в памяти. Для больших файлов всё равно требуются временные файлы.
Только cls-фильтр ничего не даст. Там только обратное восстановление реализовано.

хотя возникает вопрос -- в каком виде хранится reflate дата? (ведь это набор мелких файлов)
что то я сомневаюсь что там именно CLS...
Ну и что, что набор мелких файлов. Это не особо мешает.
 

toolame

Старожил
Проверенный
Ну не совсем в памяти. Для больших файлов всё равно требуются временные файлы.
но ведь это большой такой временный файл, да? всяко лучше кучи мелких
Ну и что, что набор мелких файлов. Это не особо мешает.
как не мешает? нужно же их уместить в один блок, иначе как фриарк их распакует
 

dixen18

Ветеран
Я понимаю что поздно пишу, вы возможно в курсе, Но никаких мелких файлов в готовом архиве созданном последней версией Reflate нету...Я имею ввиду, если архив упакованный Reflate+ARC открыть Фриарком то там будут только игровые (сжимаемые) файлы..А мелкие были в старой версии...и, кстати, CLS фильтр тоже имеется обновленный, заточенный под ISDone..Я его даже с Installer Creator подружил)) Вещь хорошая, иногда даже лучше прекомпа но уж больно долго распаковка идет...
 

vint56

Ветеран
Проверенный
С другого форума Reflate (Compatible with ISDone) от автора Razor12911
Here's reflate that is compatible with Inno Setup, it shows correct progress during decompression (optional), very few bugs with it. This does not deploy a large number of files during decompression so that a bonus.

Жаль только
Limitations
2GB Max input


Compression files:
raw2hif.exe
rawdet.exe
reflate.exe

Decompression files:
raw2hif.exe
reflate.exe

Compression command line:
reflate -process input output

Decompression command lines:
reflate -restore input output
reflate -restore - - //for stdin and stdout

Код:
[External compressor:reflate]
header = 0
packcmd   = reflate -process $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = reflate -restore - - <stdin> <stdout>
//unpackcmd = reflate -restore $$arcpackedfile$$.tmp $$arcdatafile$$.tmp
Скачать reflate_upd3
http://rghost.ru/7NbNwkJl2

Скачать ZLibCheck
http://rghost.ru/8QVQKJQzH

Скачать reflate _ultraarc_example
http://rghost.ru/84brgfHyt
 

Вложения

Последнее редактирование:

Mickey1s

Ветеран
Модератор
По-моему это фигня, а не CLS, ограничение в 2 ГБ, нет мультипоточности при запаковке\распаковке, нет настройки уровня сжатия. Автор сказал что паблик версию он больше допиливать не будет.
А R.G. Revenants конечно никогда не выложит свои утилиты, либо тогда, когда репаки уже будут не нужны, и то не факт, а жаль.
 

dixen18

Ветеран
Mickey1s, Да по поводу 2 гб ограничения - неудобно..
Хочу, пользуясь моментом, спросить вот что...Как во время установки заставить PackZIP (тот что 7z консольный) упаковывать файлы в архив не с указанной папки а ее содержимое? Чтоб было понятно - подробнее...
Есть распакованные iwd архивы игры Call of duty 2 (с оригинальными архивами делать репак смысла никакого нету, так как разница между установленной игрой и репаком вообще несущественная, прекомп и рифлейт тут плохо помогают). Прописываю в ISDone cледующее -
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\tmp\iw_00\*'), ExpandConstant('{app}\Main\iw_oo.iwd'), 2, false ) then break;
Но в сам iw_00.iwd лезут не файлы из папки iw_00 а сама папка оказывается в корне архива..Что как раз и не нужно..В общем как сделать чтоб в корне архива были файлы из временной папки iw_00? Спасибо заранее
Подобную запаковку *.iwd можно увидеть в антологии от Механиков..Но как там это реализовано - у меня опыта нету чтоб понять
 
Последнее редактирование:

vint56

Ветеран
Проверенный
dixen18,
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_00\*'), ExpandConstant('{app}\Main\iw_00.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_01\*'), ExpandConstant('{app}\Main\iw_01.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_02\*'), ExpandConstant('{app}\Main\iw_02.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_03\*'), ExpandConstant('{app}\Main\iw_03.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_04\*'), ExpandConstant('{app}\Main\iw_04.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_05\*'), ExpandConstant('{app}\Main\iw_05.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_06\*'), ExpandConstant('{app}\Main\iw_06.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_07\*'), ExpandConstant('{app}\Main\iw_07.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_08\*'), ExpandConstant('{app}\Main\iw_08.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_09\*'), ExpandConstant('{app}\Main\iw_09.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_10\*'), ExpandConstant('{app}\Main\iw_10.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_11\*'), ExpandConstant('{app}\Main\iw_11.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_12\*'), ExpandConstant('{app}\Main\iw_12.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_13\*'), ExpandConstant('{app}\Main\iw_13.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_14\*'), ExpandConstant('{app}\Main\iw_14.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_15\*'), ExpandConstant('{app}\Main\iw_15.iwd'), 1, true ) then break;

if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw00\*'), ExpandConstant('{app}\Main\localized_russian_iw00.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw01\*'), ExpandConstant('{app}\Main\localized_russian_iw01.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw02\*'), ExpandConstant('{app}\Main\localized_russian_iw02.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw03\*'), ExpandConstant('{app}\Main\localized_russian_iw03.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw04\*'), ExpandConstant('{app}\Main\localized_russian_iw04.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw05\*'), ExpandConstant('{app}\Main\localized_russian_iw05.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw06\*'), ExpandConstant('{app}\Main\localized_russian_iw06.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw07\*'), ExpandConstant('{app}\Main\localized_russian_iw07.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw08\*'), ExpandConstant('{app}\Main\localized_russian_iw08.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw09\*'), ExpandConstant('{app}\Main\localized_russian_iw09.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw10\*'), ExpandConstant('{app}\Main\localized_russian_iw10.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw11\*'), ExpandConstant('{app}\Main\localized_russian_iw11.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw12\*'), ExpandConstant('{app}\Main\localized_russian_iw12.iwd'), 1, true ) then break;
 

dixen18

Ветеран
vint56, Как все просто))) Спасибо, попробую..Правда есть опасения что игра откажется читать архивы с чужим хешем
 

vint56

Ветеран
Проверенный
dixen18, если сделаешь все правильно будет работать
 

dixen18

Ветеран
vint56, Да уже пробую)) Правда не знаю пока как PackZIP подружить с Installer Creator...Буду мозговать
 

Timick

Старожил
dixen18,
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_00\*'), ExpandConstant('{app}\Main\iw_00.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_01\*'), ExpandConstant('{app}\Main\iw_01.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_02\*'), ExpandConstant('{app}\Main\iw_02.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_03\*'), ExpandConstant('{app}\Main\iw_03.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_04\*'), ExpandConstant('{app}\Main\iw_04.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_05\*'), ExpandConstant('{app}\Main\iw_05.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_06\*'), ExpandConstant('{app}\Main\iw_06.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_07\*'), ExpandConstant('{app}\Main\iw_07.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_08\*'), ExpandConstant('{app}\Main\iw_08.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_09\*'), ExpandConstant('{app}\Main\iw_09.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_10\*'), ExpandConstant('{app}\Main\iw_10.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_11\*'), ExpandConstant('{app}\Main\iw_11.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_12\*'), ExpandConstant('{app}\Main\iw_12.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_13\*'), ExpandConstant('{app}\Main\iw_13.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_14\*'), ExpandConstant('{app}\Main\iw_14.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\iw_15\*'), ExpandConstant('{app}\Main\iw_15.iwd'), 1, true ) then break;

if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw00\*'), ExpandConstant('{app}\Main\localized_russian_iw00.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw01\*'), ExpandConstant('{app}\Main\localized_russian_iw01.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw02\*'), ExpandConstant('{app}\Main\localized_russian_iw02.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw03\*'), ExpandConstant('{app}\Main\localized_russian_iw03.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw04\*'), ExpandConstant('{app}\Main\localized_russian_iw04.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw05\*'), ExpandConstant('{app}\Main\localized_russian_iw05.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw06\*'), ExpandConstant('{app}\Main\localized_russian_iw06.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw07\*'), ExpandConstant('{app}\Main\localized_russian_iw07.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw08\*'), ExpandConstant('{app}\Main\localized_russian_iw08.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw09\*'), ExpandConstant('{app}\Main\localized_russian_iw09.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw10\*'), ExpandConstant('{app}\Main\localized_russian_iw10.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw11\*'), ExpandConstant('{app}\Main\localized_russian_iw11.iwd'), 1, true ) then break;
if not ISPackZIP( 0, 0, ExpandConstant('{app}\Main\localized_russian_iw12\*'), ExpandConstant('{app}\Main\localized_russian_iw12.iwd'), 1, true ) then break;
А можно ли как-то сохранить оригинальную хеш сумму файлов, при подобном методе запаковки?
 

dixen18

Ветеран
Timick, хеш сумма тут совершенно не причем...важнее метод deflate...Я вчера пробовал подсунуть игре несжатые архивы с заменой crc32 на оригинальные (PED с плагинами Вам в помощь) - посыпались ошибки..
Но это не самое ужасное) Я поставил себе задачу сделать выбор сочетания между текстом и озвучкой - и таки нашел метод, но это требует большого внимания к правке строк, отвечающих за работу PackZIP в ISDone.iss. в частности в секции Компонентов
 
Последнее редактирование:

Mickey1s

Ветеран
Модератор
Timick, если только патчить xdeltoй до оригинального состояния, после запаковки через PackZIP.
 

dixen18

Ветеран
Кстати парни, а как можно реализовать установку доп софта (DirectX, VC Redist и тд) через веб? ТО есть чтоб инсталлятор скачивал указанное приложение по прямой ссылке и устанавливал его? Похожее я видел у FitGirl...Считаю это весьма удобным, особенно для ангиологий - не кидать же в каждую часть игры одинаковые сетапники))
 
Сверху