Разработка и ромхакинг > Ромхакинг и программирование
RNC Pro Pack с чем его едят?
(1/2) > >>
SPOT:
RNC Pro Pack Cобственно говоря интересует что это за фрукт и с чем его едят. Интересует то как с его помощью разжимать графику, уже всё перепробовал. Увидел я его вот на этом сайте: http://romhacking.net.ru/load/29-1-0-49
Кто может помогите, подскажите.
GManiac:
Внутри лежат 2 исполняемых файла: архиватор RNC для амиги и для PC. А в папках - асмовые исходники процедуры декомпрессии для разных процессоров. Я скомпилил "RNC_1C.S - MC68000 Method 1 Compact Version (consoles)" и полученный код полностью совпал с процедурами разжатия RNC в сеговских играх (игры от Virgin, например, Aladdin, и многие другие).
Архиватором пользоваться очень просто - как и всеми остальными архиваторами. Архив начинается с "RNC", поэтому чтобы разжать графику, надо её сначала правильно вытащить в файл.

Добавлено позже:
Да, я кажется, пробовал то ли распаковать график из MK2, то ли наоборот, поменять её, и возникли проблемы. Может, ты тоже с МК2 пробовал? Попробуй на Аладдине, на нём работает.
SPOT:
Конечно спасибо за стол разъясняющий ответ, но я всё-таки так и не понял, что за архив RNC и как его вытащить из игры. Если можно разъясни на примере Aladdin. Буду очень благодарен.
Smoke:
Сначала ром надо в винхексе открыть, потом найти слово "RNC". Если нашлось, то возможно нашелся архив графический. Там после букв RNC идут размеры сжатого файла и несжатого, по этим цифрам ориентируемся, копируем байты архива из рома в новый файл, сохраняем, распаковываем, просматриваем графику в yy-chr например. Я из мк2 вытаскивал и заменял - там как раз такой формат используется.
Вот здесь два бат-файла сразу чтобы распаковавать без командной строки: http://www.sendspace.com/file/2gve3o. Файлы, которые пакуем или распаковываем нужно называть 1.bin
SPOT:
Куда уж детальнее можно объяснить, но я всё-таки так и не смог разжать графику даже в  Aladdin. Кстати Smoke спасибо за твой распаковщик.
Вроде бы я делал как ты и написал, выдрал данные из рома, назвал их 1.bin, но к моему несчастью RNCunpack выдаёт “NOT AN RNC PACKET FILE”.
Мои действия:
Нахожу в роме Disney's Aladdin (U) [!].gen как мне кажется первый RNC по адресу $12A660
После букв RNC идут байты “01 00 00 0E 00 00 00 02” как я понял 01 00 00 это размер пака, а 0E 00 00 00 02 это размер распакованного пака. Потом я копировал всё, что идёт за этими байтами до следующего пака RNC, забил эти данные в новый файл и назвал его 1.bin. Но почему-то unpack не хочет его распаковывать.
Что я делаю не так???
GManiac:
Копировать надо, НАЧИНАЯ cо слова RNC, т.е. вместе с ним. Вот и вся проблема.
Следующий байт 01 - относится к заголовку, т.е. заголовок пишется как "RNC\x01", этот байт всегда 01. Игры его тоже проверяют. Тут где-то писали, что в играх, возможно, есть проверка, что если заголовок RNC не найден, то данные по этому адресу расцениваются как несжатая графика. Но может случиться так, что несжатая графика будет начинаться байтами "RNC" :) Вероятность низкая, но видимо, чтобы её снизить, ещё добавили байт 01 :)
Следующие 4 байта после заголовка - размер несжатого файла, записанный как dword в big-endian формате, т.е. в твоём случае 00 00 0E 00 читается как 00000E00 = 3584 байта.
MetalliC:
копировать надо было начиная с RNC а не "всё, что идёт за этими байтами"
а в самом заголовке RNC 01 - идентификатор, 00 00 0E 00 - размер сжатых данных, 00 00 02 72 - размер распакованых данных, как обычно на моторолах - старшие байты первыми.

ЗЫ: RNC-cruncher  был оч популярен на Amiga, не думал что он ещё и на приставках использовался. там же, на Амиге, была классная программка (точнее набор библиотек) XFDDecrunch. оно умело сканировать файл на предмет известных компрессоров и пофайлово сохранять найденное. на PC наверно подобного нету...

PPS попздал с ответом  немного :)
SPOT:
GManiac, MetalliC спасибо! На этот раз всё заработало, но опять не корректно. Почему-то в конце работы программ оно пищит не 100 процентов, а 75, 85 или что-то другое. И после открытия в тайловом редакторе графика отображается как-то не корректно как бы через байт (полосками), смещёние не помогает. В чём ожжет быть причина? 

Добавлено позже:
Так кое в чём разобрался, но так и не понял, почему в некоторых случаях оно разжимает, а в других нет? Поясните, кто знает.
Smoke:

--- Цитата: SPOT ---На этот раз всё заработало, но опять не корректно. Почему-то в конце работы программ оно пищит не 100 процентов, а 75, 85 или что-то другое.
--- Конец цитаты ---
Это показывается степень сжатия.

--- Цитата: SPOT ---Так кое в чём разобрался, но так и не понял, почему в некоторых случаях оно разжимает, а в других нет? Поясните, кто знает.
--- Конец цитаты ---
По идее, если распаковываешь архив RNC, то он должен всегда распаковываться. По крайней мере у меня так.
SPOT:
Так мне и не стало понятно, почему в некоторых случаях оно разжимает графику, а в некоторых нет. В игре Disney's Aladdin (U) [!].gen первый RNC начинается с $12A8E4, вот почему-то RNCunpack распаковывает его так, как на скрине. Подскажите, что я делаю не так или почему так происходит. 
Марат:
Ну, потому что, кроме графики, есть еще карта тайлов по которой можно собрать картинку.
Smoke:
Кстати да, Марат правильно сказал, я про это забыл. Таким сжатием не только графика сжимается, но и конфиги построения
SPOT:
Спасибо, вот теперь всё стало на свои места.
Мне вот интересно, а есть ли ещё подобные утилиты для других форматов сжатия, может кто поделиться самописными?
Megaplex:
Как пользоваться программой через WinXP,?
Я: запускаю cmd.exe,
перетаскиваю exe программы,
пишу " u d ",
затем перетаскиваю файл архива, и жму enter.
в итоге пишет, что найдено 0 файлов,.. 
 :(:(:(:(
Segaman:
если не ошибаюсь, то существует README.TXT
worm:
Smoke, у тебя не осталось этих батников?)

--- Цитата ---Вот здесь два бат-файла сразу чтобы распаковавать без командной строки: http://www.sendspace.com/file/2gve3o SaveFrom.net. Файлы, которые пакуем или распаковываем нужно называть 1.bin
--- Конец цитаты ---
Smoke:
Пользуйся =)
worm:
Smoke, спасибо большое)
DrMefistO:
Извиняюсь за некропостинг, но, меня интересует один вопрос: есть два варианта RNC ProPack. Как для Сеги, так и для всех остальных платформ. Так вот, какой метод используется в тех ехешниках, что распространяются через Aminet, ну, либо если точнее, то какой метод в играх на сегу?

Просто хочу зарелизить нормальную версию, которая бы запускалась везде, а не только на x86.
GManiac:
Там вроде один "полный", другой "короткий и/или быстрый". ЕМНИП, сеговский короткий вариант давал косяки при распаковке, а используется, как правило, полная версия байт в байт. Иногда с маленькими отличиями. Можешь тупо взять двоичный кусок из Аладдина.
Вот в этом посте есть код на асме с моими комментами, посмотри, я, похоже полную версию брал.
http://www.emu-land.net/forum/index.php/topic,25669.msg367062.html#msg367062
Вот сам файлик
http://www.emu-land.net/forum/index.php?action=dlattach;topic=25669.0;attach=16564
Навигация
Главная страница сообщений
Следующая страница

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