Разработка и ромхакинг > Ромхакинг и программирование
Поделитесь IMP! пакером-анпакером
<< < (2/2)
DrMefistO:

--- Цитата: Ti_ ---Потому что в ромах сильнее сжато, чем пересжимает твой пакер.
--- Конец цитаты ---

Уверен? Если так - хреново) Т.к. в структуре IMP!-архива не указывается его размер, поэтому сказать - жмет хуже или лучше не могу.
Добавлено позже:
Проверил - жмет лучше оригинала) Поэтому то что надо!)
Ti_:
Эм, а 0x8 разве не сжатый размер?  У архива Micro Machines (UE) [c][!]_4AA26.bin  он  $1744.
После пересжатия - $1810 , что больше.


--- Код: ---ROM:0004AA26 aImp_0:         dc.b 'IMP!'
ROM:0004AA2A                 dc.l $3146              ; unpacked size
ROM:0004AA2E                 dc.l $1744              ; packed size
--- Конец кода ---
DrMefistO:
Не совсем, но почти:
0x8 = LONG.
Если к нему прибавить 0x32 - получится размер всего архива. И да, вышло, что у меня жмется хуже. Значит, библа гэ. Или она что-то лишнее высирает?
Ti_:

--- Цитата: DrMefistO от 07 Январь 2013, 18:25:47 ---И да, вышло, что у меня жмется хуже. Значит, библа гэ. Или она что-то лишнее высирает?

--- Конец цитаты ---
Потому что в оригинале сжато с рейтом >0.   А у тебя это не пашет или .dll кривая.  Вместо меньшего делает больший размер, докидывая нули.
DrMefistO:
Странно, но в конце оно кидает не нули. Но это ладно. Я ведь всего лишь оболочку сделал к библе.
Плиз, глянь тут: http://testaware.bplaced.net/Toolz/Pictures/fimpdll.htm Может чего подскажешь, что не так.
Я догадываюсь что именно, но не уверен - возвращаемый размер сжатых данных, которые я потом сейваю неправильно возвращается библой.

В частности вот тут:

--- Код: ---D[1] = cmode << 16;
--- Конец кода ---

Может быть компилятор библиотеки хреново кранчмод тут получает. Я к тому, может из-за того, что cmode - int, а D[1] - uint.
Ti_:

--- Цитата: DrMefistO от 07 Январь 2013, 18:32:43 ---Плиз, глянь тут: http://testaware.bplaced.net/Toolz/Pictures/fimpdll.htm Может чего подскажешь, что не так.

--- Конец цитаты ---
Я бы глянул, но в этом не разбираюсь.  :)
Кстати попробовал через winuae оригинальный FIMP, 0-11 там скорее 'режимы' сжатия. Так как больший там не всегда сжимает сильнее.
На том архиве проверил - сильнее всего сжалось с '5', что на 8 байт меньше чем на sega.
DrMefistO:

--- Цитата: Ti_ ---На том архиве проверил - сильнее всего сжалось с '5', что на 8 байт меньше чем на sega.
--- Конец цитаты ---

Вывод - делать цикл с разными режимами - с поиском лучшего. Если жмет оно правильно. А я думаю, что жмет оно правильно)
Ti_:

--- Цитата: DrMefistO от 07 Январь 2013, 19:04:56 ---Вывод - делать цикл с разными режимами - с поиском лучшего. Если жмет оно правильно. А я думаю, что жмет оно правильно)

--- Конец цитаты ---
Там ещё если ничего не указано, то режим не '0',  а 6 или 7, толи тоже как-то подбирается. 
Вот так если паковать без выбора то получается именно то, что в оригинале на sega.
DrMefistO:

--- Цитата: Ti_ ---Вот так если паковать без выбора то получается именно то, что в оригинале на sega.
--- Конец цитаты ---

Так 6 или 7?)
Ti_:

--- Цитата: DrMefistO от 07 Январь 2013, 19:14:11 ---Так 6 или 7?)

--- Конец цитаты ---
6.
DrMefistO:
Т.е. оно жмет все равно хорошо, а не как у меня. Хреново. Режим особо роли не играет. Дело в библиотеке.
Добавлено позже:
Как сам автор пишет - он тестил только cmode = 0. Оно и понятно) Но другого рабочего пакера то и нету под венду без эмуляторов)
Марат:

--- Цитата: GManiac от 05 Ноябрь 2012, 15:41:10 ---В Comix Zone нету его там. Там есть слово WIMP! из сюжетного диалога.

--- Конец цитаты ---
Я так и не понял какой там метод сжатия.
GManiac:
Там - это где? В Comix Zone не используется пакер IMP!, там просто есть фраза:
YA WIMP!  COME ON!
Которая нашлась Тотал Коммандером, когда DrMefistO искал подстроку IMP!, чтобы узнать, в каких играх используется такой пакер.
Ti_:

--- Цитата: GManiac от 14 Январь 2013, 17:31:37 ---Там - это где?
--- Конец цитаты ---
В IMP используется Imp, а что в ComixZone пока никто не разгадал. Так что 'там' это Comix.  :)
DrMefistO:

--- Цитата: Марат ---Я так и не понял какой там метод сжатия.
--- Конец цитаты ---

Если сильно нужен компрессор к Комиксу, могу взяться. Анпакер то уже есть.
Марат:

--- Цитата: GManiac от 14 Январь 2013, 17:31:37 ---Там - это где? В Comix Zone не используется пакер IMP!, там просто есть фраза:
YA WIMP!  COME ON!
Которая нашлась Тотал Коммандером, когда DrMefistO искал подстроку IMP!, чтобы узнать, в каких играх используется такой пакер.

--- Конец цитаты ---
Так я и не говорю, что используется. Я лишь сказал, что не разобрался какой же всё-таки там(в Comix Zone) используется метод сжатия.
Добавлено позже:

--- Цитата: DrMefistO от 15 Январь 2013, 13:20:55 ---
Если сильно нужен компрессор к Комиксу, могу взяться. Анпакер то уже есть.

--- Конец цитаты ---
Мне не нужен готовый компрессор. Меня лишь интересует какой метод сжатия в этой игре? Так как мне не удалось его определить. Если есть исходник распаковщика, то интересно было бы посмотреть.
Марат:
  По поводу Comix Zone http://chiefnet.1bb.ru/index.php?act=ST&f=3&t=649
DrMefistO:

Собственно, переделанный с нуля Imploder. Жмет точно так же как оригинал. Распространяется в виде dll-ки, консольной версии и гуишки.

В ридми экспорты для dll-ки, если захотите заюзать у себя в проекте.

Из возможностей GUI:
 - Распаковка по оффсету;
 - Поиск и извлечение всех архивов;
 - Упаковка выбранным режимом сжатия;
 - Поиск наилучшего режима сжатия для данного архива;
 - Получение режима сжатия выбранного архива (или файла по смещению).

И, проверенный список игр (помеченных [!]), в которых есть данное сжатие:
* Cosmic Spacehead
* Fantastic Dizzy
* Lawnmower Man, The
* Man Overboard! - S.S. Lucifer
* Mega SWIV
* Micro Machines
* Pete Sampras TennisДобавлено позже:
Добавил консольную версию.
DrMefistO:

Переписанная с нуля версия WinImploder идентична коду Imploder-кранчера на Amiga. Для тех, кто не в курсе: нужна для распаковки данных, с тегом IMP!.

Из возможностей GUI:
 - Распаковка по оффсету;
 - Поиск и извлечение всех архивов;
 - Упаковка выбранным режимом сжатия;
 - Поиск наилучшего режима сжатия для данного архива;
 - Получение режима сжатия выбранного архива (или файла по смещению).

И, проверенный список игр (помеченных [!]), в которых есть данное сжатие:
* Cosmic Spacehead
* Fantastic Dizzy
* Lawnmower Man, The
* Man Overboard! - S.S. Lucifer
* Mega SWIV
* Micro Machines
* Pete Sampras Tennis
Изменения в версии 2:

* Полностью переписанный и теперь открытый код библиотеки;
* Исправления в код GUI.
Навигация
Главная страница сообщений
Предыдущая страница

Перейти к полной версии