Правила, действующие в этом форуме и всех его подфорумах:
1) Запрещена реклама в любых её проявлениях (сразу бан без предупреждения)! 2) Мат тоже не приветствуется на форуме, но иногда можно выразить свои чувства ( лучше заменяйте матные слова точками, пробелами, другими буквами)! 3) Категорически запрещается унижать, посылать, издеваться над участниками форума! Мы здесь все - одна большая и дружная семья! Поэтому за нарушение этого правила автоматически будем банить! 4) Разрешены ссылки на информацию, которые относятся к тому или иному разделу форума! 5) Ссылки не в тему будут удаляться и пользователь получит предупреждение или будет забанен! 6) Пользователям разрешено задавать любые вопросы относящиеся к теме, а мы все дружно ответим на эти вопросы. А также отвечать на вопросы и высказывать своё мнение. 7) Повторные темы, которые будут создаваться, будут удалены! Создавайте темы, удостоверившись, что такой темы нет на форуме! 8) Запрещён флуд во всех его проявлениях, сообщения не по теме, сообщения состоящие из одного или нескольких смайликов без текста, сообщения типа - Вах!, Рулез!, Круто! и т.п. Пользуйтесь пожалуйста кнопкой [EDIT], не плодите бессодержательные сообщения. 9) Использование смайликов разрешается не более 3-х подряд!
Гляньте, что я нашел: http://www.burgerbecky.com/burgerlib/docs/class_burger_1_1_rez_file.htm Вроде как описание формата файла REZFILE и, как и у нас, с заголовком BRGR! Burger то есть. Правда я там ничего не понимаю. Можно ли эту инфу как-нибудь использовать для распаковки нашего rezfile?
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
Versus, я бы сказал это не описание формата файла, а описание всей библиотеки BurgerLib с её функциями, процедурами и переменными. Как я понял там можно скачать SDK этой библиотеки и соответственно собрав её копаться в файлах REZFILE. Круто!
aliast, по идее должно хватить и версии для Винды. Главное чтобы структуры те же были.
......
В общем глянул, что в архиве. А там библиотеки в файлах lib, которые можно цеплять к проекту на C++ через файлы header'ов "*.h", "*.hpp". Получается нужно разбираться в работе библиотеки, используя руководство выложенное на том же сайте, чтобы в итоге написать утилиту распаковки/запаковки REZFILE'ов.
Кто хорошо владеет C? Надо проверить, что данные описанные ниже действительно стыкуются с форматом заголовка REZ файла из 3DO'шного Дума/ -----------------------------
typedef struct RezHeader_t { /* Master entry to the resource manager */ void (BURGER_API *DecompPtrs[3])(Word8 *,Word8 *,Word32,Word32); /* Decompressors */ Word32 Count; /* Number of resource groups */ Word32 RezNameCount; /* Number of resource names */ void *fp; /* Open file reference */ struct RezGroup_t **GroupHandle; /* First entry */ struct RezName_t **RezNames; /* Handle to resource names if present */ Word Flags; /* Flags on how to handle resources */ } RezHeader_t;
---------------------------
Последний раз редактировалось Author 31 июл 2014, 12:49, всего редактировалось 1 раз.
Versus, не знаю. Но, если не использовать весь функционал библиотеки, что наверное так и есть, то при хороших навыках это не должно слишком затянуться. Единственное, что меня смущает, это дружба библиотеки с DirectX9, наличие связи с OGG форматом...может различия серьёзные какие есть по сравнению с 3DO версией??
Есть ещё вариант. Написать по адресу becky@burgerbecky.com и попросить версию библиотеки для 3DO. Обращаться видимо надо к Rebecca Ann Heineman, главная программистка.
по идее должно хватить и версии для Винды. Главное чтобы структуры те же были.
СТОП! А разве в PC-версии Killing Time не такой же формат REZ-файла?! Для KT есть распаковщик: http://www.ctpax-x.org/?goto=files&show=123 только в PC-версии байты перевернутые. Исходники там есть, надо просто добавить перевертыш байтов. Вот только исходники на асме :)
У меня нет думовского Rez'a под рукой, а за утилиту спасибо!
Добавил файл с изменённым исходником на Delphi, скомпиленным obj файлом в FASM'e и готовым exe'шником. Можно поиграться, но думаю, что остальные данные тоже должны быть обработаны свапом. А там они читаются через указатели в память. В общем если потратить время, то можно полный свап данных сделать, а пока должно вытягивать файлы правильных размеров, но не читаемые (неправильный endian) их редакторами/плеерами.
aliast, интересно зачем они свопят BRGR??? В дельфёвой части ничего такого нет. Ох, блин. А какие вообще результаты? Хоть что-то генерит на выходе, нет? А без моих правок, оригинальной утилитой пробовал?
Author Да он выдаёт ошибку wrong archive, а исходя из исходников это происходит из-за несовпадения первых 4 байт со строкой 'BRGR' Может я что-то не так делаю. Оригинал KILLTIME.REZ распаковывает.
0x0 string[4] 'BRGR' 0x4 4 байта - версия файла? 0x8 4 байта - длина таблицы оффсетов 0xC 4 байта - единица хз что такое 0x10 4 байта - ещё одна единица хз что такое 0x14 4 байта - количество файлов внутри REZfile Далее пошла таблица оффсетов 0x18 4 байта - смещение к началу файла 0x1C 4 байта - размер файла 0x20 4 байта нулей (NULL) Длина этой таблицы оффсетов указана выше по смещению 0x8 Сразу после таблицы и до самого конца идут собственно данные.
Но есть кое-какие нюансы пока мной неизученные. Например, смещение к началу первого файла выглядит так: 80 00 16 44. Файл должен начинаться со смещения 16 44, а что такое 80 00 загадка. В Killing time та же шляпа, только там 20 00 вместо 80 00. Может какие-то флаги сжатия данных?
У меня в Думовском REZ там написано 00 00 01 D9 . Берем виндовый калькулятор, вводим в HEX-режиме 1D9, получаем в 10-ом виде число 473. 473 файла в архиве. А что было непонятно?
У меня в Думовском REZ там написано 00 00 01 D9. 473 файла в архиве
А с 00 00 19 CC начинаются адреса начальных точек этих файлов, которые лежат друг на дружке как бургер Пока непонятно для чего там между ними местами находятся всякие типа 00 00 10 C0 или просто 00 00 00 00
_______________________________________
MUTHAFUCKASSSSCAN'TSTOPPPMEEEEEEEEEEE!!!!!!!!!!! Все мы живём в Царствии Небесном, просто слепы и не видим этого.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения