Подскажите, существуют ли какие-либо стандартные, наиболее оптимальные настройки 7-zip для максимальной компрессии РОМов для МАМЕ. Перепробовал множество различных параметров памяти (64М - 1536М) и словарей (64 - 273) с LZMA/LZMA2, но результат получается разный и при Batch рекомпрессии из zip в 7z сложно найти оптимальное решение для всех РОМов сразу.
Супероптимальных, конечно же, нет.
А так, то можно создавать BAT-файлы с прописаными командами запаковки. (Pea Zip, например, позволяет копировать сгенерированные скрипты, после чего их можно комбинировать в BAT). Причем, важно, чтобы путь к файлам не был сильно перегружен, но это легко исправить перемещением в папку, находящуюся прямо на диске C:, D:, и т. п.
Вообще, обсуждать это "на словах" бессмысленно. На практике в этом легче разбираться, как по мне. Я лично занимаюсь этими "играми" с настройками и ключами архивации, и могу на 99 % утверждать, что консольная версия 7-Zip, как правило, уделывает остальные варианты. Но для этого следует перепробовать все возможные способы.
Примерный идеал: с сортировкой файлов или без нее, + к этому учитывать запаковку через консольный 7z.exe + LZMA2-сжатие (хотя, судя по описанию 7z-архива, можно и LZMA потестить для лучшего сжатия в некоторых случаях) - всего 4 способа для одного архива (с учетом вариаций). Словарь на всевозможный максимум (у меня 128M предел, но многие паковались и на пиковой точке 1536M), слово тоже в максимум (273), непрерывное сжатие.
Все вариации загоняем в BAT. Запускаем, ждем конца архивации. При нехватке памяти сбрасываем размер словаря. Рекомендуется делать все это на довольно мощных компах, обладателях слабых, возможно, придется юзать интерфейсный 7zG.exe.
А принцип работы любого архиватора прост. Архиватор определяет какую пиковую точку словаря ему достаточно потянуть на максимуме (в методе сжатия готового архива обычно указывается число, при этом нередко так бывает, что хватает словаря на 192, например, а не весь доступный максимум 1536), минимум выбирается в настройках. К этому минимуму любой GUI-архиватор и будет стремится, циклично сбрасывая размер словаря по заранее вшитым значением при нехватке памяти; консольная версия, напротив, позволить себе этого не может - просто выдаст ошибку (у 7z значения словаря - 1536; 1024; 768; 512; 384... и так вплоть до минимума, который задает система, например, 64).
Затем выбираем минимальный архив, перемещаем к MAME, сканируем и, убедившись, что все шикарно, спокойно рубимся.
Но для таких идеалов, конечно же, нужно время.