Перейти к содержимому


Фотография

[WIP] TXD_2048 v0.2


Сообщений в теме: 87

#41 SILENT_Pavel

SILENT_Pavel

    Активный участник

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 06 August 2011 - 22:42

SILENT_Pavel, не знаю. главная задача - трилогия GTA. скинь TXD (или файл с TXD) я посмотрю.
если архивы принципиально отичаются, то я вряд ли буду писать код под эту игру.
если TXD открываются прогой от steve-m, то с вероятностью 99% должно и у меня открываться.
я бы хотел открыть ещё Warriors, но не знаю структуру их архива.


Есть! Оказывается эти txd файлы silent hill origins идентичны, при условии если распаковать их из zlib'а после операции извлечения из *.ARC архива экспертом!

ИзображениеИзображениеИзображение

Правда их разбирали уже эксклюзивцы, но у них был самописный приватный софт.

#42 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 07 August 2011 - 09:15

SILENT_Pavel, спасибо, но файл ничем принципиальным не отличается, разве что в нём используются какие-то особые флаги, так что функция Replace(замена) по-любому должна работать.
Версия RW тут 0x1C020065.

если получится, попробуй найти в ресурсах текстуру 16,32 или 24 бита - вот это было бы очень круто.

касательно прогресса: уже добавлен импорт/экспорт swizzled/unswizzled TIM2 и RW Section. правда, пока немного грубовато, 8-битные поддерживаются полностью.

а структура TIM2 более гибкая чем я думал. там не зря есть поле "размер заголовка" - заголовок бывает переменной длины и с этим я поначалу долго тупил.

Сообщение отредактировал Lego: 07 August 2011 - 09:15


#43 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 09 August 2011 - 17:02

есть хорошие новости.

struct rw_raw_info_block {
	DWORD block_id;
	DWORD data[3];
};

struct rw_raw_info {
	DWORD blocks;
	DWORD info[3];
	DWORD padding[2];
	rw_raw_info_block block[3];
	DWORD unknown[2];
};

это мой приблизительный код для тех 80-ти байт, которые есть перед каждой текстурой или палитрой. (не хватает методов класса, которые всё инициализируют).
по сути, эти 80 байт - это константы. для палитры вообще существует чуть ли не 2 значения (swizzled и unswizzled), но я ещё не разобрал что к чему.

что интересно, третий блок отвечает за размер данных следующих далее (палитры или растра - не важно). размер указан в 16-байтовых блоках.

но легче определить, есть ли swizzling или нет - сравнить разрешение в блоке информации (64 байта) и в первом блоке здесь. для swizzled-текстур значение здесь меньше в два раза, а для unswizzled - сходится.

далеко не факт, что это - единственное отличие, но теперь я могу сам определять, когда нужен swizzling, а когда нет при просмотре.

также в GTA3 есть около 10 текстур другой RW-версии, которые, на данный момент, нормально нигде не открываются. возможно, они не открываются и в игре - я пока не проверял.

Сообщение отредактировал Lego: 17 August 2011 - 12:58


#44 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 10 August 2011 - 23:14

Собственно, я разобрался с 4 битами:
Изображение

идея была проста как день - я просто поправил код 8-битного swizzling'а под 4-битный растр и всё.

алсо, авто-режим swizzling'а неплохо себя показывает - мне пока что не встретилась ни одна левая текстура. в теории, можно будет попробовать сохранять unsizzled 8-bit.

проблема пока только с маленькими 4-битными текстурами 16xN, хотя, я думаю, я решу эту проблему.

кстати да, на скрине видна картинка из Warriors - они тоже будут поддерживаться, как, скорее всего, и все остальные игры на движке RW 3.xxx.

Сообщение отредактировал Lego: 10 August 2011 - 23:33


#45 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 11 August 2011 - 04:46

Хороший прогресс, молодец).
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#46 SILENT_Pavel

SILENT_Pavel

    Активный участник

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 11 August 2011 - 05:44

Lego
О, крайне занятно, внимательно слежу за прогрессом :)

#47 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 22 August 2011 - 08:18

давно не отписывался тут. частично сделал поддержку мипмап-текстур. в сан-андреасе PS2 такая одна bones.txd. плюс у меня есть текстура из RW SDK, которую я тоже разобрал. осталось разобрать формат без 80-байтовых заголовков из GTA3 (по всей видимости, старый формат; например, GANG13.TXD) и попробовать разобрать флаги, которых ещё много. сейчас пока отдыхаю

#48 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 11 November 2011 - 19:43

я ещё не забросил прогу, как вы, наверное, думаете. untitled.png собственно, добавлена поддержка несжатых PC-текстур. зачем? для того чтобы вы могли пользоваться своим любимым TXD-редактором, а потом просто сконвертить TXD-файл(ы) в формат PS2 одним кликом. и наоборот, чтобы преобразовать ваши PS2-файлы в PC-шный формат (4-битные текстуры будут преобразованы в 8-битные, такие дела). на скрине виден побочный эффект - открыт GTA III PC файл. P.S. так-то просто по учёбе либо нет времени, либо просто неохота этим заниматься, если время появляется.

Сообщение отредактировал Lego: 11 November 2011 - 19:45


#49 SILENT_Pavel

SILENT_Pavel

    Активный участник

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 11 November 2011 - 20:43

Здорово, а я так понимаю релиза гуи версии не будет до достижения определенного уровня работы?... Или как?

#50 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 11 November 2011 - 23:17

ну на данный момент программа нормально работает только как просмотрщик (просмотр, переименование, экспорт, удаление, смена версии RW). не думаю, что это кого-то заинтересует, т.к. есть аналог от steve-m. баги сейчас, в основном, при импорте и иногда при замене. даже если всё вроде верно - игра не идёт или не рендерит текстуру. определённым уровнем можно считать нормальный импорт или хотя бы стабильную замену.

#51 SILENT_Pavel

SILENT_Pavel

    Активный участник

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 12 November 2011 - 22:31

Lego
А почему консольная версия не открывает большой корректный txd архив из оригинса, в то время как его читает утилита от Стива? (скрин первый)

апд: драг.н.дропом без батника утилита постоянно крашась на каждой второй функции все-таки что-то извлекла 128 из 223, но к концу фатально скрашилась снова... (а я понял она скрашилась как дошла до глюченной текстуры с глюченной битностью, такое часто в архивах сх, значить проблема тут не только стива - скрин 3 - вот эта гадина в центре txd) но конечные файлы кажись битые, не открываются tm2 редактором (скрин два и четыре приклепейтед)

Или Оригинс поддерживаться не будет в принципе никакие технические вопросы с ним не будешь разбирать? Я пооткрывал после анзелиба тысячи оригинсовых текстур корректно, но есть и очень интересные смешанные контейнеры где присутствует текстура + какой-то контент и сам файл без расширения...

Прикрепленные изображения

  • Снимок.JPG
  • Снимогрпапок.PNG
  • Сни34344444мок.JPG
  • Сни65капмок.JPG
  • Untitled_1.png

Сообщение отредактировал SILENT_Pavel: 12 November 2011 - 23:22


#52 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 13 November 2011 - 12:40

там в консольной вроде поддерживались только 8-битные текстуры. плюс там были проверки на совпадение равзмера файла с размером корневой секции + размер заголовка. т.е. если дописать в конец нули - файл не открывался. в текущей версии поддерживаются текстуры любой глубины цвета (4,8,16,32) глюк есть только в маленьких 4-битных, но я знаю как его исправить P.S. отправил тебе в личку текущий билд проги в качестве бонуса ^_^ а то играешься с совсем уж глючной консольной версией. если будет выдавать ошибки на какие-то библиотеки, то это скорее всего MS Visual C (или C++) Redistributable Package. если с этим будут проблемы - напиши.

Сообщение отредактировал Lego: 13 November 2011 - 12:44


#53 SILENT_Pavel

SILENT_Pavel

    Активный участник

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 30 December 2011 - 01:18

Значить все это дело еще и поддерживает Silent Hill: Shattered Memories. Нагуглил относительно свежий bms скрипт для открытия архивов на всех версиях шатереда троих консолек (если надо в лс скину), и в пс2 версии некоторые TXD'шки через пятую точку, но очень частично открылись, и только через утилиту стива, потому что она не крашится если начало и конец файла "коруптед инвалид" так сказать. (наверно, предполагаю лишь) Собственно пруфы приклепейтед, жаль что утилита Лего крашится на всех без исключения текстурах, в отличии от старенькой, но до сих пор удаленькой Стива. п.с. вы зипе выкладываю образец txd шатереда, если кто-нибудь захочет глянуть/разобрать/добавить поддержку. Можно считать как бамп темке. Тема актуальна все-таки, просто до конца не изучена, вообще в такхи играх как эти два последних сх на пс2 текстуры крайне хорошие, они часто состоят из 10-30 частей образуя хай рез текстуры в игре скрепляясь вместе, очень интересная система и шикарная оптимизация при замечательной картинке, климаксы свой хлеб не зря получали.

Прикрепленные изображения

  • Безымянный.jpg
  • 1.JPG
  • Безынененмянный.png

Прикрепленные файлы


Сообщение отредактировал SILENT_Pavel: 30 December 2011 - 01:34


#54 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 02 January 2012 - 15:02

это обычный TXD с мусором перед заголовком. сама текстура находится по адресу 0xC8. т.е. файл выглядит примерно так: <мусор><обычный PS2 TXD><ещё мусор>. моя прога строит дерево RW, и, понятное дело, для того чтобы его построить - нужно указать начало TXD-файла (root-секцию). по ID секции прога проверяет, является ли файл вообще TXD или нет - отсюда и ошибка. по идее, предполагалась такая фича: открыть файл с оффсета (даже с автоматическим поиском), но она не имеет интерфейса в текущем билде. P.S. пробная версия фичи реализована в простейшей проге ниже (с помощью неё я извлёк TXD-ресурсы Warriors). с её помощью, можно извлечь TXD (причём и PS2 и PC и XBOX) из любого несжатого архива по типу gta3.img. P.P.S. прикрепил очищенную от мусора версию текстуры.

Прикрепленные файлы


Сообщение отредактировал Lego: 02 January 2012 - 15:11


#55 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 02 January 2012 - 17:04

Ты не смотрел текстуры с GTA3 для мобильных устройств?)
Если что, то некоторые файлы выкладывали тут.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#56 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 02 January 2012 - 19:32

> Ты не смотрел текстуры с GTA3 для мобильных устройств?) весьма интересно выглядит так, как будто съехали размеры секций, но при этом формат идентичен ПК-шному - единичные текстуры читаются.

#57 SILENT_Pavel

SILENT_Pavel

    Активный участник

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 03 January 2012 - 00:31

Lego
Замена невозможно без написания спец утилит/добавления поддержки в существующие?

Апд: спасибо Лего! Все текстуры сх шм теперь открываются после удаления мусора, правда интересуют два новых вопроса:

Если сх оригинса и сх шм делали одни и те же климаксы, почему в сх0 нет мусора в txd а в сх шм есть?
И второй, как-нибудь автоматизировать процесс удаления мусора можно ли? (или хочешь сказать в этом поможет экстрактор вариорсов?)

Да и еще в версиях для псп и вий тоже фигурирует txd, но другой структуры, псп вроде даже должен открываться после удаления мусора, правда не очень хорошо пока получается, а вот с вий все гораздо иначе... нов целом пофигу на них, пс2 достаточно.
В зипе на всякий выкладываю образцы вий и псп версии если все-таки заинтересует, но сразу говорю не принципиально и в принципе фиолетово :)

Апд2: ох точно! экстрактор варриорсов выдергивает txd корректные из огромных мусорных txd и все работает! двойное спасибо! *о* хоть текстуры переводи теперь

Запихнул все txd в зип архив без сжатия - твоя утилита все нашла ,правда повисла, но при этом доделала все до конца, супер :)

Прикрепленные изображения

  • 6.jpg
  • 5.jpg
  • 3.jpg
  • 2.jpg
  • 1.jpg
  • Снимок.JPG

Прикрепленные файлы


Сообщение отредактировал SILENT_Pavel: 03 January 2012 - 02:19


#58 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 03 January 2012 - 11:29

не забывай только, что обратно импортнуть такие текстуры так просто не получится. я почти уверен, что для импорта такой текстуры обратно в игру весь "мусор" придётся восстановить :) этот мусор может оказаться вполне ещё нужными данными, сам понимаешь. моя "прога" предназначена лишь для быстрого выдирания TXD-шек, но не для обратного их засовывания. собственно, "засовывание" изменённого файла вручную выглядит примерно так: - открываем исходный файл (далее F) с мусором и файл текстуры tex_[АДРЕС].txd (далее T) в HEX-редакторе. - переходим в файле F на [АДРЕС], указанный в имени файла T. - копируем содержимое файла T в файл F начиная с адреса (с заменой старого содиржимого файла F). (при этом важно, чтобы размер файла F был НЕ больше того, что был до его изменения. а желательно - такой же.) - сохраняем и всё ОК.

Сообщение отредактировал Lego: 03 January 2012 - 11:30


#59 SILENT_Pavel

SILENT_Pavel

    Активный участник

  • Пользователи
  • PipPipPip
  • 937 сообщений


Отправлено 04 January 2012 - 12:37

Lego
Ну экспорт рав даты же работает?

По идее можно распакованные текстуры в первоначальном виде упаковать в ЗИП без сжатия, затем заменить модифицированный РАВ контейнер хексом и распаковать зип забить обратно через bms скрипт в образ, не прокатит разве, если текстуры не зашифрованы и не засвизеленные?

Сообщение отредактировал SILENT_Pavel: 04 January 2012 - 12:38


#60 Lego

Lego

    Активный участник

  • Пользователи
  • PipPipPip
  • 343 сообщений
  • Пол:Не определился


Отправлено 26 February 2012 - 22:43

сегодня вот открыл проект, пофиксил "пару строчек", запилил нормальную замену текстур (примеры на скринах). ingame_gta_vc_01.jpg ingame_gta_vc_02.jpg untitled.png так-то реально нет времени (а иногда и желания) заниматься этой прогой, поэтому, думаю выпустить в ближайшее время эдакую демо-версию с немного ограниченным функционалом. даже в этом случае это будет удобная альтернатива TXD Viewer'у от steve-m.

Сообщение отредактировал Lego: 26 February 2012 - 22:52




Ответить



  


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных