Всем привет! Ребят такой вопрос кто знает как хранится графика в PS1 кроме TIM, хотел попробовать как то русский припилить в игру Clock Tower(фан в детстве был) собсна вопрос есть в игре архивы в них картинки, возможно модели и т.д. Текстуры вижу через тайловый редактор все нормально но если бы был TIM были бы и заголовки формата но их нет как узнать что за формат текстур и как можно распаковать для просмотра? Могу приложить пример архива или псевдоархива! Поможет кто?
Да, поглядеть пример архива с изображениями внутри было бы не кисло.
Если не сложно, просьба выложить куда-нибудь небольшой такой архив (в котором есть изображения) на файловый обменник не требующий регистрации для скачивания.
Я видел на YouTube прохождение какого-то Clock Tower (для SNES, кажется). Вроде бы там текста много и вряд ли это картинки (не знаю как там с версией для PS1). Поэтому, скорее всего, помимо изображений придётся ещё и с форматами шрифта и текста возиться.
Ссылка на файл: https://yadi.sk/d/dZOBgvJU6l5Eug
Посмотреть можно этой прогой: https://yadi.sk/d/d5zmXVSzksieXA
Можно ей и перерисовать но всеже здесь по извлечению ресов
Еще вопрос как ПАЛетку найти на каждую тектуру, я так понял большая часть там 4bpp
Выложенный файл можно распаковать на отдельные составляющие вот так:
binunpak.c
Спасибо будем разбираться правда Си дебри но ниче попробуем а про кристал может не открывать файл если он уже чем то занят т.е. открыт допустим в хекс редакторе и т.д.
Не, там редактор просто не запускается - я его запускаю и тут же получаю сообщение об ошибке, даже до открытия файла добраться не могу. Сама по себе программа криво написана. Теоретически, если поковырять её под отладчиком, то можно попробовать найти в чём там проблема, но время на это жалко.
Незнаю ява мож старая или библиотеки какой нехватает. Просто программа хороша тем что любой файл просматривает как картинку ей легко нахадить в архивах текстуры по крайней мере все пс1 пс2 игры видит четко только с палитрой сложно подбирать))))
Всем привет! Народ ктонить знает можно ли риппером например NinjaRipper рипать модели с эмуляторов PS, DreamCast и т.д.??? Или есть какаянить другая прога??
Я лично не знаю и подозреваю что вряд ли тебе кто-то тут поможет с этой темой, потому что, во-первых, с приставочными играми здесь мало кто имел дело, во-вторых, извлечение 3D моделей само по себе занятие ещё то. Могу посоветовать только https://www.extractor.ru/ipb/index.php?showtopic=1160 (DirectX) и https://www.extractor.ru/ipb/index.php?showtopic=1548#entry13178 (OpenGL) - эмуляторы консолей наверняка какой-то из этих интерфейсов используют, возможно, поможет. Есть ещё https://forum.xentax.com/viewforum.php?f=16 там, вроде бы, модели достают (судя по названиями тем).
Спасибо! Посмотрим будем искать)))
Всем привет! Хочу дополнить тему может кому надо будет)) Вообщем как сказал великий -=CHE@TER=- (огромное спасибо ему правда не пойму как он узнал это без проги по просмотру тайловой графики!) все текстуры хранятся в формате TIG0 после заголовка идет смещение до палитры, в файле несколько картинок т.е. морда, волосы, одежда и т.д., и какой порядок картинки смещается палитра на 32 байта. Т.Е. 1 картинка начало палитры от смещения от заголовка, 2-я картинка +32 байта от начала палитры чет намудрил мож поймет кто))))
Еще раз привет! Знаю уже наглею(надоел) а можно как то пояснить выше приложенный код по разделению архива на файлы TIG0 чет я думал, думал и.....! Ну просто описать какая строка за что отвечает? Как бы знаю основы циклы операторы и т.д.(понимаю как это все работает, никогда небыло опыта работы с файлами) простые программы написать могу а тут чет сложно((( Заранее спасибо)))
Кого обманываю дилетант походу вообщем
Да почему - нормальные вопросы. На Extractor.ru была 15 лет назад https://www.extractor.ru/ipb/index.php?showtopic=117#entry7874, где я написал похожую программу с подробными комментариями. Правда там были архивы .PAK от Quake II, но главное не это, а понимание за что какие команды языка отвечают. Я ту программу недавно переписал, чтобы была более аккуратная и понятная. Думаю как отправная точка для разбора и понимания программы от Clock Tower (она куда проще) - это то что нужно.
А если есть вопросы по программированию, то их лучше http://www.forum.ctpax-x.org/index.php?showtopic=51 задавать (кстати, тоже рекомендую её почитать, а всё что относится к PHP, Assembler и настройке веб-серверов можешь спокойно там пропускать). Если правда этим интересуешься и есть желание разобраться, то тебе с удовольствием ответят.
-=CHE@TER=- а можно извлечение сделать от начала TIG, до начала нового TIG чтобы перед следующим TIG выполнялась распаковка. Т.Е. в архиве найден первый файл(TIG) выделяется все смещение до второго файла(TIG) и экспортируется 1-й файл и т.д. без просчета байтов заголовка и т.д. Просто там видишь есть заголовок TIG все байты доходят до следующ. TIG это один файл с несколькими картинками и т.д. Надеюсь понятно написал(((
Вот это я пролетел. Дичайше извиняюсь - промахнулся с форматом. Я почему-то подумал что размер 16, когда он 32. Исправил свою программу выше - теперь она должна правильно распаковывать:
Огромное спасибо все работает в том числе для всех архивов все четко этот сайт это находка для начинающих. Я до этого вообще не представлял как распаковкой заниматься а теперь подсел на изучение Си потому что язык реально универсален огромное спасибо СТРАХ-Х за помощь в частности -=CHE@TER=-, за ответы на тупые вопросы, за терпение и т.д. и т.п. Люблю ВАШ канал!!!)))
Всем привет!
Ребят поясните что за код понять не могу?! "#pragma pack(push, 1), #pragma pack(pop)"
сама структура эт понятно а вот это?((( в нете тож толковой инфы нет...или мож ищу так((
Заранее спасибо!
Хороший вопрос. Если человек спрашивает, значит пытается разобраться - это здорово!
Но, главное в программировании, да и, наверное, во многих других областях - это внимание к деталям.
Я парой сообщений выше давал ссылку на форум Extractor.ru с примером похожей программы и комментариями, где этот момент был объяснён.
Но я могу объяснить гораздо подробнее и понятнее, с примером, если подобный вопрос, как я уже писал парой сообщений выше, будет задан в другой теме, ссылку на которую я, опять таки, в том же сообщении уже давал.
Вот. Внимание к деталям - это очень важно.
Спасибо!
Да, да я забыл написать о том что читал статью по ссылке не раз перечитывал она в избранном у меня но непонятно было по этим строкам(( щас уже в принципе с указателями хорошо ознакомился синтаксис почти не отличается от шарпа, функции немного путаются "print, sanf, %s,i,d, c" со строками тож сложновато набор символов берешь адрес на первый символ мутишь крутишь))) вообще спасибо что подсадили на СИ нравится изучать его интересный с шарпом не так было))), а вот прагма чет недогоняю поэтому спросил если можно подробнее))) Спасибо!!!
А еще вот эти строки "typedef unsigned char uint8_t;
typedef unsigned int uint32_t;" не описаны но тут попробовал сам догадаться, правильно понял что меняешь просто тип переменной делая ее беззнаковой? и потом указываешь просто uint32 имя переменной; чтобы постоянно не указывать тип unsigned int имя переменной и т.д.? Или как то не так понял? Спасибо еще раз!!))
Сори за флуд
Да всё нормально.
Ещё раз подчёркиваю: я не против помочь и хочу помочь, но я никак не могу понять в чём проблема зайти в нужную тему (ссылку я уже давал не один раз), и написать там вопрос? Нажать на ссылку и перейти в тему, нажать там на кнопку "Ответить", написать вопрос, нажать "Отправить"?
Это же не сложно? Или я чего-то не знаю?
Я правда не могу понять что происходит. В чём проблема-то?
Просто уже целая неделя прошла, за это время можно было 1 раз написать сообщение в нужной теме и проблемы бы не было.
Объясняю свою позицию: я хочу чтобы на форуме всё было более или менее упорядоченно. Чтобы если понадобится что-то найти по программированию, то это всё будет в одной теме. Если по ресурсам - то для этого есть подфорум. По программам - свой подфорум. И так далее. Ну вот в жизни, если хочешь сварить суп и не можешь найти крышку от кастрюли, то ты же не пойдёшь её в спальню или ванную искать, а будешь её искать на кухне, верно?
Ещё раз: я хочу помочь и я готов помочь. Но задай, пожалуйста, вопрос в нужно месте.
Или объясни почему это так сложно задать его именно там?
Я вот свою мотивацию объяснил и аргументировал. В этом тоже нет ничего сложного (на мой взгляд).
Спасибо.