Правила, действующие в этом форуме и всех его подфорумах:
1) Запрещена реклама в любых её проявлениях (сразу бан без предупреждения)! 2) Мат тоже не приветствуется на форуме, но иногда можно выразить свои чувства ( лучше заменяйте матные слова точками, пробелами, другими буквами)! 3) Категорически запрещается унижать, посылать, издеваться над участниками форума! Мы здесь все - одна большая и дружная семья! Поэтому за нарушение этого правила автоматически будем банить! 4) Разрешены ссылки на информацию, которые относятся к тому или иному разделу форума! 5) Ссылки не в тему будут удаляться и пользователь получит предупреждение или будет забанен! 6) Пользователям разрешено задавать любые вопросы относящиеся к теме, а мы все дружно ответим на эти вопросы. А также отвечать на вопросы и высказывать своё мнение. 7) Повторные темы, которые будут создаваться, будут удалены! Создавайте темы, удостоверившись, что такой темы нет на форуме! 8) Запрещён флуд во всех его проявлениях, сообщения не по теме, сообщения состоящие из одного или нескольких смайликов без текста, сообщения типа - Вах!, Рулез!, Круто! и т.п. Пользуйтесь пожалуйста кнопкой [EDIT], не плодите бессодержательные сообщения. 9) Использование смайликов разрешается не более 3-х подряд!
Всё, текстуры походу найдены! Предварительная инфа: представляют собой набор cel-картинок размером 32х32, запихнутых в контейнер CARY. В настоящий момент нет просмотрщика\конвертера из CARY в CEL, но сам формат на первый взгляд несложен. Вот одна из картинок, распакованных руками в HEX-редакторе.
Выше полностью распакованный один из файлов ARY, содержащий эти три картинки. Угадайте что это и откуда? Я сам не понимаю)) Также любопытно почему эти три кадра упакованы в один файл CARY, что это значит?..
Последний раз редактировалось aliast 02 июн 2013, 12:35, всего редактировалось 2 раз(а).
1) В некоторых CARY-файлах имелась секция PDAT, но почему-то не во всех... сначала было подумал что там может быть что угодно, не только картинки, но видимо это не так 2) Поиск строк внутри KTшного launchMe, там я нашёл строку ошибки, мол, файл не имеет заголовка "CARY (CelArray)". CelArray! Изучил функцию, в которой встречается эта ошибка. Там просто смещения считывались всякие. Дальше начал смотреть на имеющиеся cel-картинки, почитал в 3DO SDK про флаги, флаги устанавливали, в частности, для каждого файла наличие секции PLUT. Она обычно имеет размер 4Ch (считая заголовок), а одно из смещений в CARY (то что это смещение я уже понял, но не мог понять на что оно указывает) как раз и имело размер 40h (+ 4 байта заголовок, +4 байта размер заголовка, итого 48h, не хватиало ещё 4 байт). Сделал догадку что первое смещение указывает на секцию PDAT. Открыл HEX-редактор, создал заголовки CCB, PDAT, PLUT, оформил всё как положено, открыл в 3doresexplorer.. сначала был набор точек. Это потому что я PLUT не сразу правильно нашёл. Потом вдруг всё получилось)) Распаковал руками пару файлов, и вот уже нашлись розовые стены из лабиринта! А те текстуры выше хрен поймешь откуда(( 3) Ну и помимо всего прочего на том новом сайте 3до юкоз тоже высказали догадку про графический формат файла.
Благодарю за развернутый ответ! А по какому принципу делать заголовки CCB, PDAT, PLUT и где? Неплохо было бы, если бы ты оформил это дело как пошаговый мануал. Думаю, тут найдется народ, который хочет пощупать это руками.
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
А по какому принципу делать заголовки CCB, PDAT, PLUT и где? Неплохо было бы, если бы ты оформил это дело как пошаговый мануал.
Немного путано получилось, может ещё одно видео снять?
Файлы ARY
Массив из нескольких CEL-картинок с текстурами с порезанными заголовками CCB, PDAT, PLUT. Этот формат скорее всего изучен полностью. typedef struct ARY { string CARY; //сигнатура файла CelARraY int32 start_offset; //смещение к началу первой секции CCB int32 file_size; //размер файла ARY минус 4 байта int32 zero1; //нули int32 offset1; //смещение к началу первой секции CCB int32 offset2 //смещение к началу второй секции CCB ... int32 zero2; //нули - обозначают конец таблицы оффсетов };
Далее идёт секция CCB первой картинки, но заголовок CCB обрезан, нужно восстановить его самим написав вначале: 43 43 42 20 00 00 00 50 00 00 00 00 Здесь 43 43 42 20 = "CCB " 00 00 00 50 = неизменный размер секции в 80 байт (0x50) 00 00 00 00 = нули Далее идут 68 байт (0x44) из файла ARY, начиная со смещения offset1 до offset2 (должно быть offset2 - offset1 = 0x44) Секция CCB имеет следующий вид (для дальнейшей распаковки нам понадобятся offset_PDAT и offset_PLUT): typedef struct CCB { string CCB ; //сигнатура секции "CCB " (с пробелом в конце) int32 CCB_size; //размер секции, всегда равен 0x50 int32 zero1; //нули int32 flags; //спец. флаги (за подробностями читаем 3DO SDK, а пока просто копируем данные из ARY) int32 zero2; //нули int32 offset_PDAT //смещение к секции PDAT применительно к файлу ARY int32 offset_PLUT //смещение к секции PLUT применительно к файлу ARY ... //дальше лень расписывать, просто копируем данные }; Сразу после секции CCB идёт секция PDAT, заголовок тоже обычно обрезан. Восстанавливается дописыванием байт: 50 44 41 54 размер_секции_PDAT Здесь 50 44 41 54 = "PDAT" размер_секции_PDAT = размер секции PDAT = смещение_к_следующей_секции_PDAT - смещение_к_предыдущей_секции_PDAT Далее копируем данные из ARY, начиная со смещения offset_PDAT и до смещения offset_PDAT из заголовка CCB следующего файла. Ну и по аналогии восстанавливаем секцию PLUT, дописав вначале секции: 50 4C 55 54 00 00 00 4C 00 00 00 20 Здесь 50 4C 55 54 = "PLUT" 00 00 00 4C = размер секции PLUT, всегда 0x4C 00 00 00 20 = неизвестный байт 0x20. Скорее всего он всегда равен 0x20 во всех картинках Копируем данные из ARY, начиная со смещения offset_PLUT и до смещения offset_PLUT из заголовка CCB следующего файла. Всё - первая картинка распакована. Переходим ко второй.
Тестовая версия распаковщика ARY в CEL. Некоторые файлы выходят битые, это потому что у них размер нестандартный - разбираюсь как с ними быть. http://rusfolder.com/40331224 Тестировал на 58.ary - берёзки из стартовой зоны распаковались на ура :) PS: нежданчик! Из файла 64.ary достались те же самые текустурки что и в 58.ary, но с разрешением 128х128 против
13chuck13 писал(а):
Это блошиный цирк с ярмарки!
32х32 Вот вам для сравнения: и 32x32 128x128 Интересно, нафига нужные мелкашки?! Видимо превьюшки, но для чего?
Нашёл в Artmoney MaxYLook и MinYLook - ограничители угла просмотра: вниз 150, вверх 6. Вроде бы значения 200 и 1 должны помочь, или ещё поэкспериментируй как лучше. http://yadi.sk/d/NawV6LgP5Nz1L
Ура вид стал опускаться полностью в низ а значит остается принскринить куски и тупо объединять их ,спасибо. Теперь работы будет гораздо меньше. Один вопрос DEADMAN517 ты еще работаешь над портом или как?
_______________________________________ Знание – главный инструмент управления. (Билл Гейтс)
По поводу распаковки текстур эта тема подходит лучше, чем тема про выбор движка для портирования :) В общем, похоже я был прав. В игре очень много похожих друг на друга текстур, отличающихся либо по цвету, либо дополнительными трещинами, лианами, орнаментом - текстура стены та же, но добавили лианы. В ARY-файлах текстуры стены хранятся отдельно от накладываемых элементов (трещины, лианы). А вот должны они распаковываться отдельно или с наложением непонятно. Возможно наложением занимается сам движок игры? Я не могу сообразить как их при распаковке надожить :( Пробовал пихать их в один заголовок PDAT, на выходе голая стена без наложения. Пробовал удалять байты 00BF - картинка вообще портится, т.е. не надо удалять. Создавал несколько секций PDAT в одном файле, опять не то... Но то что байты 00BF отделяют основную текстуру от дополнительной это факт!
Получается вручную. А автоматизировать хз как. Кроме того недавно понял что 00BF это вовсе не байты разделения текстур, а скорее что-то вроде чёрного фона. Так что не вариант по ним файлы делить. Нужно по другому... составить список всех смещений к секциям PDAT, сортировать их по увеличению и уже по ним определять где кончается одна текстура и начинается другая. Эти смещения в файле идут вразброс, скорее всего согласно схеме наложения. Часто повторяются (видимо когда одна текстура разных оттенков). В общем, каша полная. Вручную распаковать проще, но задолбаешься. Автоматизировать не получится пока досконально не разберешься.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения