Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия

Статус
В этой теме нельзя размещать новые ответы.

murlakatamenka

Новичок
никак не могу понять, почему выдаёт
жму батником:
Код:
arc.exe create -ep1 -dsernp --dirs -s; -lc- -di -i2 -r -w=.\ -m=lzma:a1:d512m:mfbt4:fb273:mc1000:lc8 nmc-small.bin Data\*
pause
Код:
[External compressor:lzma]
header = 0
packcmd   = lzma64 e lzma{:option} $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = lzma64 d lzma{:option} $$arcpackedfile$$.tmp $$arcdatafile$$.tmp
;packcmd   = lzma64 e lzma{:option} $$arcdatafile$$.tmp   - <stdout>
;unpackcmd = lzma64 d lzma{:option} $$arcpackedfile$$.tmp - <stdout>
;packcmd   = lzma64 e lzma{:option} <stdin> - $$arcpackedfile$$.tmp
;unpackcmd = lzma64 d lzma{:option} <stdin> - $$arcdatafile$$.tmp
;packcmd   = lzma64 e lzma{:option} <stdin> <stdout>
;unpackcmd = lzma64 d lzma{:option} <stdin> <stdout>
lzma64.exe - это всего лишь переименованный FreeArc-LZMA-x64.exe, взят из ...\Addons\LZMA-x64 FreeArc'а :)
ОЗУ 8 Гб, из них ~5800 Мб на упаковку.
после запуска файлы группируется и сортируются, создаётся папка для временных файлов арка и файл $$arcdatafile$$.tmp в ней, но упаковка не идёт :(
что не так?
------------------------------------
и в догонку вопрос. lzma-x64 так хитро прописан external compressor'ом (lzma), чтобы потом при распаковке этот самый lzma64.exe (у меня) не надо был?
 
Последнее редактирование:

Булат Зиганшин

Developer
Модератор
1. потому что в памяти у тебя и джругие проги находятся. у меня тоже 16 гиг озу, однако с 1гб словарём не так просто упаковать
2. да, вся фишка ведь именно в том, чтобы не тащить с собой внешние exe. хотя на 64-битной винде lzma64 может распаковывать и побыстрее
 

murlakatamenka

Новичок
1. потому что в памяти у тебя и джругие проги находятся. у меня тоже 16 гиг озу, однако с 1гб словарём не так просто упаковать
2. да, вся фишка ведь именно в том, чтобы не тащить с собой внешние exe. хотя на 64-битной винде lzma64 может распаковывать и побыстрее
1. дело в том, что чуть ранее я в ГУЙной версии арка те же данные упаковал тем же lzma64 (процесс кушал положенные ему 5+ Гб ОЗУ), даже выиграл ~10 Мб :) а вот через консольный пока не получилось. в процессах lzma64.exe даже не появляется. поэтому странно и вряд ли, что не хватает памяти (в таких случаях что-то типа "cannot allocate memory..." выдаётся).
2. ясно, значит, я правильно предполагал, "просёк фишку", как говорится :). так действительно ничего дополнительно понадобится.

Добавлено через 43 минуты

[HR][/HR]
[tab]
а теперь и консолька :)

[HR][/HR]
почти 1 Мб выиграл за счёт разных сортировок (-dses vs ernp: -dses вин). надо будет про них поговорить, а теперь можно довольным ложиться спать :)
закомментил секцию с lzma в arc.ini, распаковалось без проблем. т.е. это работает)
 
Последнее редактирование:

vudi

Новичок
я решил попробывать создать репак игры и при распаковке архивов когда доходит до распаковки архива запакованного прекомпом то вылазит ошибка "консольным приложением не был создан файл (путь распаковки)/setup-1.7z Возможно ошибка или неверный формат pcf-файла" что делать помогите
 

AntiAngel

Новичок
Что здесь дописать, чтобы при ошибке всё что успело установиться, удалилось?

if (CurStep=ssPostInstall) and ISDoneError then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
end;
 
Последнее редактирование:

murlakatamenka

Новичок
AntiAngel,
 

vudi

Новичок
вот код посмотрите что не так проблема описанна выше
Код:
          if not ISArcExtract ( 0, 0, ExpandConstant('{src}\SETUP-1.arc'), ExpandConstant('{app}\'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
          if not ISSRepExtract   ( 0, 0, ExpandConstant('{app}\SETUP-1.srp'), ExpandConstant('{app}\SETUP-1.pcf'), true) then break;
          if not ISPrecompExtract( 0, 0, ExpandConstant('{app}\SETUP-1.pcf'), ExpandConstant('{app}\SETUP-1.7z'), true) then break;
          if not IS7ZipExtract   ( 0, 0, ExpandConstant('{app}\SETUP-1.7z'), ExpandConstant('{app}\'), true, '') then break;

          if not ISArcExtract ( 0, 0, ExpandConstant('{src}\SETUP-2.arc'), ExpandConstant('{app}\'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
          if not ISSRepExtract   ( 0, 0, ExpandConstant('{app}\SETUP-2.srp'), ExpandConstant('{app}\SETUP-2.pcf'), true) then break;
          if not ISPrecompExtract( 0, 0, ExpandConstant('{app}\SETUP-2.pcf'), ExpandConstant('{app}\SETUP-2.7z'), true) then break;
          if not IS7ZipExtract   ( 0, 0, ExpandConstant('{app}\SETUP-2.7z'), ExpandConstant('{app}\'), true, '') then break;
 
Последнее редактирование:

vint56

Ветеран
Проверенный
vudi в самом верху надо указывать версию прикомпа который ты использовал
;#define precomp "0.42" раскаментируй и укажи версию которой ты использовал при сжатий
 

vudi

Новичок
vudi в самом верху надо указывать версию прикомпа который ты использовал
;#define precomp "0.42" раскаментируй и укажи версию которой ты использовал при сжатий
я раскоментировал все, а использовал версию 042, вот посмотри скрипт и поправь там если что не так
 

Вложения

vint56

Ветеран
Проверенный
vudi скрипт работает попробуй из exe_for_PrecomInside поменять файл precomp042
 
Последнее редактирование:

stalqer

Новичок
Может кто-то выложить bikunpack.exe, или знаете где можно скачать?
 

stalqer

Новичок
А кто автор?[MOD="Gnom"]Элементарно. Тот, кто делал репак с этим анпакером, стопудово знает, кто автор. Почему ты не спросил у него? Или ты не в курсе, чей репак качал?[/MOD]
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху