Понедельник | 23.12.2024 |06:54
Приветствую Вас Гость Мира Спайро | RSS
Модератор форума: nihonjin, aleksusklim, alteya, Томас  
Перевод Spyro 3: Взлом и программы
aleksusklimСообщение # 1 Воскресенье, 26.06.2011, 14:19
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Работа с текстовой частью перевода введётся на code.google.com/p/spyro3-rus, обсуждение перевода (а не взлома) В темеПеревод Spyro 3: Текст
В этой теме происходит обсуждение перевода, а также создание софта для потрошения игры.
Важные сообщения: Структура WAD-файлов Спец. символы и File Paint 1 | Извлечение и добавление текста | О звуке | В продолжение о звуке | Вариант перевода Buzz's Dungeon и Midday Gardens


Сообщение отредактировал aleksusklim - Среда, 29.04.2015, 19:51
 
DrWhoСообщение # 406 Четверг, 11.07.2013, 18:31
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (aleksusklim)
Что хочу сказать – Платину можно взломать. Но я пока не стану этим заниматься. Когда дойдём до перевода Платины – вернусь к взлому. Либо если кому интересно, можете сами попробовать снять libcrypt, или хотя бы проверить гипотезу о полном удалении ксора отовсюду.

Взломать можно, но уже смысла нет, ибо выпилена эта самая проверка со всеми последствиями и теперь платиновая версия проходима, хоть конвертируй в ISO или в MDF/MDS. Кто выпилил - сами знаете/узнаете кто.

Цитата (aleksusklim)
Откуда берётся Зоя при загрузке подставной сохранёнки с карты памяти? Ещё не знаю, но во-первых я не уверен что это вообще связано с libcrypt, а во-вторых я не буду убирать Зою, мы же хотим в ней послание оставить!

Зоя, которая говорит, что у тебя неправильно-хакнутая версия?

Продублирую два вопроса, что выше оставил:

Цитата (steeldragon)
Во всех субфайлах хранится информация и помимо этой. (Окружение уровня, текстуры, и так далее. Подробнее: Энциклопедия - Структура субфайлов WAD).

А в котором можно шрифт извлечь и вставить в GH? Я хочу просто потестировать этот момент в атласе, меню пауза? субтитрах и катсценах.
И чем, я пробовал тайловым (как-то там) штукой сделать - но там даже эксешника нет - а расписанный метод я не понял совсем.
Ну и вопрос на засыпку: чем можно поковырять STR файл? Хочу попробовать озвучку перенести от Вектора в STR от GH.


 
steeldragonСообщение # 407 Четверг, 11.07.2013, 19:14
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата (aleksusklim)
А можно полную ссылку на источник? По тексту я нашёл лишь: http://badtaste.free.fr/psx/outils/cours.html
Вообще-то, в заголовке цитаты есть ссылка на сайт...
Раз уж спросили, всё, что мне известно по данному вопросу:
http://consolecopyworld.com/psx/psx_libcrypt_tutorial.shtml
http://redump.org/guide/libcrypt/
...
Цитата (aleksusklim)
В итоге есть три способа обойти libcrypt на Платине:
Libcrypt в Платине выпилил brill. Вот SCUS, с оригиналом в архиве: https://dl.dropboxusercontent.com/u....z
Могу выложить остальное, если надо.
...
Цитата DrWhoА в котором можно шрифт извлечь и вставить в GH?В любом_001_субфайле_субфайла_уровня.wad. Шрифт Атласа в 180 субфайле основного WAD.
...
Цитата
Ну и вопрос на засыпку: чем можно поковырять STR файл?
 Вилкой  Тут где-то рядом есть алгоритмы и программы для извлечения/записи звука. В Энциклопедии, например. А в недавнем мега-тексте - программа для нахождения треков.
 
DrWhoСообщение # 408 Четверг, 11.07.2013, 19:26
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (steeldragon)
В любом_001_субфайле_субфайла_уровня.wad. Шрифт Атласа в 180 субфайле основного WAD.

Ок, только чем извлекать и заменять?
Цитата (DrWho)
я пробовал тайловым (как-то там) штукой сделать - но там даже эксешника нет - а расписанный там метод я не понял совсем.


 
steeldragonСообщение # 409 Четверг, 11.07.2013, 19:35
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата (DrWho)
Ок, только чем извлекать и заменять?
PGG2. Ссылка - https://dl.dropboxusercontent.com/u....GG2.rar
Инструкция где-то рядом...
 
DrWhoСообщение # 410 Четверг, 11.07.2013, 22:11
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (steeldragon)

Буду пробовать. Благодарю за ссылку.

Цитата (steeldragon)
Инструкция где-то рядом...

Глянем.




Сообщение отредактировал DrWho - Четверг, 11.07.2013, 22:13
 
aleksusklimСообщение # 411 Суббота, 13.07.2013, 19:23
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата (DrWho)
Взломать можно, но уже смысла нет, ибо выпилена эта самая проверка со всеми последствиями и теперь платиновая версия проходима, хоть конвертируй в ISO или в MDF/MDS.


Неужели!? Что ж, я этого не знал. Сам Yams просил меня когда-нибудь её взломать…

Цитата (DrWho)
Зоя, которая говорит, что у тебя неправильно-хакнутая версия?


Да, система защиты отключена, но не удалена из GH, поэтому её можно заставить включится, причём для этого не нужно воздействие извне – достаточно загрузить игру с особой сохранёнки с карты памяти через игровое меню. В чём «особенность» сохранёнки я пока не выяснил, но у меня таковая есть, и глюков она плодит сразу массу, исключая лишь псевдоуровни четвёртого мира, вечнозелёного Спаркса и главный вылет на Колдунье. Зойка + нелепый Толстосум продающий несуществующих животных + пустые таблички на порталах присутствуют!

Цитата (DrWho)
А в котором можно шрифт извлечь и вставить в GH? Я хочу просто потестировать этот момент в атласе, меню пауза? субтитрах и катсценах.


Не путайте игровой шрифт и шрифт в атласе. Второй пока не взломан, и лично я его не исследовал и в глаза через PVV не видал…

Цитата (DrWho)
И чем, я пробовал тайловым (как-то там) штукой сделать - но там даже эксешника нет - а расписанный метод я не понял совсем.


Ну чувак…

Это JAVA, а её можно двойным щелчком запускать!

Попробуйте либо этот BAT либо этот EXE:
http://klimaleksus2.ucoz.ru/Files/2/TmExe.rar
Основной JAR файл переименуйте в «tm.jar»

Цитата (DrWho)
Ну и вопрос на засыпку: чем можно поковырять STR файл? Хочу попробовать озвучку перенести от Вектора в STR от GH.


Если LBA не совпадают, то вам придётся долго мучиться…

В любом случае, НЕ конвертируйте в XA те MP3, который вам выдал jPSXdec.

Цитата (steeldragon)
Вообще-то, в заголовке цитаты есть ссылка на сайт...


Поэтому я и предусмотрительно сказал «А можно полную ссылку на источник?»

Цитата (steeldragon)
Раз уж спросили, всё, что мне известно по данному вопросу:


Да, всё то же, ничего нового. Но по второй ссылке советуют-таки эмулировать субканал, а не взламывать код.

Цитата (steeldragon)
Libcrypt в Платине выпилил brill.


А он рассказал, КАК это сделал? Наверное нет – вполне в его стиле – ни тебе исходного кода, ни описаний…

Цитата (steeldragon)
Вот SCUS, с оригиналом в архиве:
https://dl.dropboxusercontent.com/u....z


Хм… А на кой он ужал его через UPX !? Типа чтоб никто не докопался до самих изменений?

Цитата (steeldragon)
Могу выложить остальное, если надо.


Хе-хе, нет уж, это я выложу остальное.

Итак, вначале я решил сэмулировать фикс и посмотреть, реально ли он работает. Да!
Тогда я сдампил память и восстановил из него несжатый EXE.
Поскольку тот забит мусором, я сравнивал его с оригинальным и подчистил структуру.
Даже заголовок оставил:
http://klimaleksus2.ucoz.ru/Files/REPEAT/lib_01.png

Файл по сути отличался лишь в двух местах, и вот второе:
http://klimaleksus2.ucoz.ru/Files/REPEAT/lib_02.png

Я потестил и оказалось, что даже без этих изменений защита не активируется. Тогда я срезал и копирайт из заголовка, и вот эту ерунду в конце. Осталось всего 24 различных байта…

Дизассемблировал и посмотрел, что же там за код:
http://klimaleksus2.ucoz.ru/Files/REPEAT/lib_03.png

На самом деле это шифровка! На скриншоте показан алгоритм, который её расшифровывает. Видите огромные синие цифры выше строки «80067b3c»? Это не код, это полный бред. Код начинается ниже, и в нём:

В «t0» загружается указатель на начало (точку входа) шифрованной функции.
В «v0» загружается ключ для шифрования.
В «v1» загружается некое число, служащее вторым ключом.
В «t6» загружается адрес, с которого нужно расшифровывать.
В «t7» заносится размер шифрованной области в квартетах (размер в байтах делённый на 4).

Далее (выделено красным слева) начинается процедура расшифровки:
В «t2» считывается квартет по «t6».
Из «t7» вычитается единица.
«t2» ксорится с ключом «v0» (t2=t2 xor v0)
«t2» сохраняется по «t6».
К «t6» прибавляется четыре (один квартет).
(Далее две строки меняются местами из-за запоздалого прыжка)
«v0» приравнивается разности «v1» и «v0» (v0=v1-v0), то есть изменяется сам ключ, вычитаясь из неизменного вторичного ключа.
Если «t7» не равно нулю, то процедура расшифровки повторяется.
Иначе происходит прыжок в «t0».

Чтобы увидеть, что на самом деле скрывается в шифрованной функции и что там изменил brill, мне пришлось дословно повторить процедуру расшифровки функции:



Получается, что XOR шифрует сразу двумя ключами, которые через раз чередуются. Но в итоге я получил расшифрованную функцию:
http://klimaleksus2.ucoz.ru/Files/REPEAT/lib_04.png

…Знаете, это самый красивый ассемблер, который я видел.

Что делается в самом верху не так важно. Видите выделенную строку? Это прыжок обратно в функцию расшифровки!!
Перед ним лишь меняется значение «t0» – прыжка выхода.

Другими словами, после расшифровки кода система прыгает в только что раскодированную функцию, исполняет её, потом выбирает дальнейший адрес выхода (а это регистр «ra», скорее всего в нём значение PC, которое было перед первым прыжком, как если бы вместо «jr t0» было «jr ra») и ещё раз исполняет функцию расшифровки! Которая теперь, естественно, закодирует секретную функцию обратно. И как будто ничего не было!

…Это просто гениально. Секретная функция невидима, не дизассемблируема, и даже если вы сдампите память игры в любой момент – вы её всё равно не найдёте и не дизассемблируете. Потому что она расшифровывается, выполняется и тут же зашифровывается обратно…

Вот так в двоичном виде выглядит то, что поменял brill:
http://klimaleksus2.ucoz.ru/Files/REPEAT/lib_05.png

Бред? Конечно, она же зашифрована. Но если раскодировать, то:
http://klimaleksus2.ucoz.ru/Files/REPEAT/lib_06.png

Ха, видали? Банальное зануление…
Но давайте выясним, что там был за код:
http://klimaleksus2.ucoz.ru/Files/REPEAT/lib_07.png

Три прыжка после выделенной строки. Все ведут на нижнюю сроку с меткой. Все три ветки перепрыгивают через такой код:
Считать один байт в «a0» по адресу «a1».
Загрузить в верхнюю часть «a2» константу «1f00».
Сложить «a2» с «a0» (хоть там и «or», это просто сложение).

А вот что brill сделал с кодом:
http://klimaleksus2.ucoz.ru/Files/REPEAT/lib_08.png

Прыжков нет! «a0» всегда загружается из «a1», но и эту строчку можно было удалить, ибо значение «a0» просто игнорируется – он явно прописал в «a2» не просто «1f000000 + xxxx», а константу «1f00dd11». Видимо в ней и кроется результат проверки диска libCrypt, и это число обозначает что диск лицензионный.

Другой же вопрос, как он к этому пришёл и как выудил это значение…
А что сам код – так его можно было переписать тысячью способов, например не удалять прыжки, а просто направить их ближе или вообще загружать магическую константу ниже по коду.

В самих прыжках сравниваются некоторые биты в нескольких регистрах, определённые должны быть единичными, другие нулевыми. Без тотального изучения этой функции, а также всех, что вызывает она и вызывают её, я не могу сказать ничего больше, и главное – как же именно работает LibCrypt.

Но функция явно очень странная:
http://klimaleksus2.ucoz.ru/Files/REPEAT/lib_09.png

Она вызывает некую процедуру «60698» подряд несколько раз с разными аргументами. Причём возврат из неё происходит не через «ra» (возможно чтобы не использовать стек вовсе), а явно через другой регистр, обозначающий точку входа в продолжение этой же функции (выделен красным).

И да, здесь есть загадочная команда «mtc0», о которой говорилось в статье, которую показал steeldragon:
http://klimaleksus2.ucoz.ru/Files/REPEAT/lib_10.png

Ну почему я никак не могу найти справку по всем ключевым словам дизассемблера!? Я же вообще не в курсе, что дает «mtc0 a1, EntryLo1» или «mfc0 a0,Count» – я даже не соображу, это присваивание регистров или их выгрузка …

Ну всё, анализ закончен. Не дало пока ничего практического, то есть я ещё не смогу сходу взломать LibCrypt любой другой игры…
Единственное, что я пока понял – надо всегда искать подозрительный XOR !

Выкладываю все версии файлов, которые я получил:
http://klimaleksus2.ucoz.ru/Files/2/xor.rar

Там в «SCES_028.35\» :
«Original» – оригинальный файл;
«Brill» – тот, который вы мне дали (был ужат через UPX);
«Decoded» – он же, но уже распакованный и подогнанный под оригинал, но ещё с копирайтом хакера и непонятной модификацией в конце.
«Clean» – оригинальный файл, в который встроены только нужные изменения 24 байт шифрованной функции. Именно это главное – его надо прожигать!
«Original_xor» – оригинальный файл с расшифрованной функцией (для исследований, прожигать бесполезно!)
«Clean_xor» – изменённый файл с расшифрованной функцией.

В папке «xor\» есть программа «platinum.exe» – перетащите на неё оригинальный или изменённый (но не ужатый UPX !) файл, и получите вместо него версию с расшифрованной функцией (*_xor). Перетащите ещё раз, и она закодирует её обратно.
Все параметры (ключи, смещения и алгоритм) я захардкорил, так что ни для чего другого её использовать не получится, но зато рядом есть исходный код!

Эй, а полноценный патч нужен? И не так как с Вихрем, а чтобы все контрольные суммы соблюдались!
Так я же могу сделать:
http://klimaleksus2.ucoz.ru/Files/2/LibCrack.rar

Там всё, инструкция внутри. Quick&Smart патчеры + возможность патчить только SCES.
Сделано для конечного юзера, полученный образ можно без ошибок эмулировать на виртуальных дисководах или даже прожечь на PlayStation!

Цитата (steeldragon)


Надеюсь это не точная копия моего архива? А то ведь ещё заплатка нужна…

Цитата (steeldragon)
Инструкция где-то рядом...


Ух-ты, может в перевод и это вставим? Поближе к Агенту9 или Хантеру с овцами на НЛО ! «Яйца где-то рядом…» – ну не круто ли?


but nobody came
 
steeldragonСообщение # 412 Суббота, 13.07.2013, 19:54
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата (aleksusklim)
главный вылет на Колдунье.
Который срабатывает, когда я роюсь в WAD 001 (конечно, не заметить потерю 50 килобайтов из 100-килобайтного файла сложно...)

Цитата (aleksusklim)
А он рассказал, КАК это сделал? Наверное нет – вполне в его стиле – ни тебе исходного кода, ни описаний…
В точку.

Цитата (aleksusklim)
загадочная команда «mtc0»
Цитата (aleksusklim)
Ну почему я никак не могу найти справку по всем ключевым словам дизассемблера!?
Ну не знаю...
Отсюда: http://vhouten.home.xs4all.nl/mipsel/r3000-isa.html
"mfc0 - Move from coprocessor register"
#EDIT: Извиняюсь, нужна была информация про "mtc0"...
#EDIT2:
Теперь отсюда: http://cgi.cse.unsw.edu.au/~cs3231/10s1/os161/man/sys161/mips.html
"The MIPS-161 has 10 supervisor registers in coprocessor 0. These may be accessed with the MFC0 (move from coprocessor 0) and MTC0 instruction, as follows:
mfc0 $4, $12loads the contents of supervisor register 12 (STATUS) into general-purpose register 4 (a0), and mtc0 $4, $12
does the reverse."
По-простому, mtc0 загружает содержимое основного регистра в регистр сопроцессора, а mfc0, с которым я это ключевое слово перепутал - наоборот, из регистра сопроцессора в основной.
Цитата
Надеюсь это не точная копия моего архива? А то ведь ещё заплатка нужна…
Заплатка в архиве.


Сообщение отредактировал steeldragon - Суббота, 13.07.2013, 21:04
 
DrWhoСообщение # 413 Воскресенье, 14.07.2013, 12:34
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (aleksusklim)
Эй, а полноценный патч нужен? И не так как с Вихрем, а чтобы все контрольные суммы соблюдались!

Конечно нужен, вихрь так будет не только эксклюзивом GH, но и платиновой версии.

Цитата (aleksusklim)
Если LBA не совпадают, то вам придётся долго мучиться…

Они вряд ли совпадают там, просто хотел поэксперементировать и реплики от Вектора в GH засунуть попробовать. Жаль все-таки никто из пиратов за GH не брался, потому что если бы хоть кто-то из студий выпустили перевод полноценный в GH, вот тогда проблем меньше было бы. И можно было бы задействовать вихрь уже в русской версии.

Цитата (aleksusklim)
Неужели!? Что ж, я этого не знал. Сам Yams просил меня когда-нибудь её взломать…

Ну как, я сначала попросил brill'а выпилить защиту, он отказался. Потом ему SquareFun объяснил ситуацию и в итоге он убрал защиту из игры.

Добавлено (14.07.2013, 12:34)
---------------------------------------------

Цитата (aleksusklim)
Зойка + нелепый Толстосум продающий несуществующих животных + пустые таблички на порталах присутствуют!

Крайне желательно оставить только Зою, ибо есть вероятность случайно задеть яйца, которые начнут пропадать, в том числе и недобор камней драгоценных.
Вы когда-то пытались с вихрем эксперимент провести, а можно сделать клон Зои и ее расположить ближе к началу уровня (только не там, где стоит зоя, говорящая об управлении)?




Сообщение отредактировал DrWho - Суббота, 13.07.2013, 20:01
 
aleksusklimСообщение # 414 Понедельник, 15.07.2013, 00:21
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Гляньте-ка, вам это ничего не напоминает? Оу да, это оно!

(Дело за масштабом по высоте…)

UPD:

Цитата (DrWho)
Это откуда? Платиновая версия? По-подробнее, если можно.


Что откуда что?

Откуда арена -- Dino Mines, скрытый подуровень, есть везде.

Откуда первый скрин? Ну так это я вытащил модель мира себе в 3DsMax...
Пока криво, но уже многообещающе!

Выяснил угол обзора игровой камеры:
http://klimaleksus2.ucoz.ru/Files/REPEAT/mod_01.png
И он примерно 70 градусов:
http://klimaleksus2.ucoz.ru/Files/REPEAT/mod_02.png
(а это очень много, стандартный угол – 45, как в Контре)
Потом сделаю более точное сравнение. Плюс, я так до сих пор не понимаю, какая должна быть высота (у меня два варианта, и один вдвое больше другого).

На самом деле в уровне две разных модели – одна для близких ракурсов с текстурой, другая – LOD для видов издалека и без текстуры. Ни одна не имеет нормалей, только цвета вершин. Причём на LOD версии они сближены с реальными цветами уровня, а на модели крупного плана без наложения нужных текстур (верхний скрин) расцветка неестественная.

Цвета, кстати, могут быть какие угодно:
http://klimaleksus2.ucoz.ru/Files/REPEAT/mod_03.jpg
3DsMax:
http://klimaleksus2.ucoz.ru/Files/REPEAT/mod_04.jpg
(а здесь вдвое растянуто по высоте, и камера 45 градусов, LOD модель)

Обе модели мира различаются в кодировке полигонов, с моделью близкого ракурса у меня пока проблемы…

Скоро закончу, выложу программу и распишу формат данных! А пока:
http://klimaleksus2.ucoz.ru/Files/REPEAT/mod_05.jpg
Ну не круто ли?




P.S Да что ж такое, Ucoz так и норовит удалить мой сайт!! Обещают только через 40 дней, но ведь и месяца не прошло!

Цитата (DrWho)
Босса хотите создать?


Да нет ещё.




UPD:

Да, забыл сказать, что уровни – не цельные модели!
http://klimaleksus2.ucoz.ru/Files/SWIM/world_01.jpg
Они состоят из многих кусочков, логически никак не связанных:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_02.jpg

Без привычной расцветки его даже не всегда можно узнать:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_03.jpg
В этом, например, было аж 154 кусочка!
http://klimaleksus2.ucoz.ru/Files/SWIM/world_04.jpg

Нормальную высоту подобрать не могу…
http://klimaleksus2.ucoz.ru/Files/SWIM/world_05.jpg
Первый вариант:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_06.jpg
И второй…
http://klimaleksus2.ucoz.ru/Files/SWIM/world_07.jpg

Один явно больше, а другой чуть-чуть недотягивает!
Угол камеры, кажется, реально 70 градусов:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_08.jpg
Высота не верна, но горизонт идеален:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_09.jpg
Но низкая действительно ниже:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_10.jpg
С углом 45 точка обзора была бы другая, как и панорама:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_11.jpg

…Что с высотой делать ума не приложу – либо такая, либо вдвое выше. Но нужна средняя.. не думаю, что игра бы стала просто так умножать на 1,25 или 1,5…

С основной моделью уровня новая проблема. Она перекрашивается!
Подборка скринов, цвета: синий – LOD модель, красный – основной цвет главной модели, зелёный (кроме уголочка, а которому приближаюсь, тот должен быть красным) – «далёкий» цвет близкой модели:
http://klimaleksus2.ucoz.ru/Files/SWIM/swim_1.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/swim_2.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/swim_3.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/swim_4.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/swim_5.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/swim_6.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/swim_7.jpg

И что теперь делать, три модели что-ль выгружать!?


but nobody came

Сообщение отредактировал aleksusklim - Вторник, 16.07.2013, 19:07
 
DrWhoСообщение # 415 Понедельник, 15.07.2013, 01:18
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (aleksusklim)
Гляньте-ка, вам это ничего не напоминат?

Это откуда? Платиновая версия? По-подробнее, если можно.

Добавлено (15.07.2013, 01:18)
---------------------------------------------

Цитата (aleksusklim)
Откуда арена -- Dino Mines, скрытый подуровень, есть везде.

Я знаю что это за арена, просто дизайн арены по-другому построен был, отсюда и спросил.

Цитата (aleksusklim)
Ну так это я вытащил модель мира себе в 3DsMax...
Пока криво, но уже многообещающе!

Босса хотите создать?


 
aleksusklimСообщение # 416 Среда, 17.07.2013, 00:16
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата (aleksusklim)
С основной моделью уровня новая проблема. Она перекрашивается!


В этом, оказывается, и была вся загвоздка. У меня ячейка с кол-во цветов занимает 1 байт. Но при этом под цвета отдано вдвое больше памяти, чем там указано.
Ну я тупо множил на два и высчитывал.

Логической ошибки нет, но на некоторых моделях этот байт был больше 127 (а общее количество цветов больше 255, что тоже логически невозможно, поскольку индекс использования также однобайтовый), и тогда результат моего умножения уже не помещался в один байт и обрезался по модулю 256, и из-за чего прога отсчитывала намного меньше данных и не оттуда читала полигоны…

Цитата (aleksusklim)
И что теперь делать, три модели что-ль выгружать!?


Реально пришлось выгружать три модели, и стало ясно, почему указано вдвое меньше цветов. Каждый цвет высокополигональной версии модели плавно перетекал в цвет низкополигональной версии по мере того, как исчезает текстура. А поскольку кол-во вершин в обычной и LOD моделей разное, разработчикам пришлось явно сдублировать цвета на высокополигональную модель, и они указываются подряд (если «10» цветов – то реально будет двадцать: первый десяток это освещение для текстур, а второй – фоновый цвет).

Масштаб по высоте пока остаётся загадкой…

Пока ковырял Midday Gardens, был удивлён льдом:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_12.jpg

Оказывается «отражение» – это не отражение, а просто сдублированный потолок! То-то я думаю, почему в нём только пещера и отражается… А по игре так просто не скажешь:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_13.jpg

Но «подо льдом» даже можно ходить! Это наверно не новость, но я не знал и был поражён:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_14.jpg

А во льду-то не всё отражается! Вампирский огонь:
http://klimaleksus2.ucoz.ru/Files/SWIM/sparx.jpg
И Спаркс, как видно, без своего «свечения».

Мало того, он ещё и рассинхронизирован по фазе горизонтальных колебаний. Анимация верная, координаты верные, но колебания «из стороны в сторону» у них одинаковые, а должны быть противоположными:
http://klimaleksus2.ucoz.ru/Files/SWIM/sparx.3gp
Это две разные стрекозы! И уж наверное, совсем другой объект.

А что до моделей миров – всё готово!
Карта светотени:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_15.jpg
Основная палитра:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_16.jpg
Модель низкого качества:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_17.jpg

Awesome!

UPD:

Всё-таки открытие реально потрясающее! Оказалось я взломал даже больше, чем задумывал:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_18.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_19.jpg
С фоном и повышенным до 110 градусов углом обзора, фронтальный ракурс:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_20.jpg
Это повод временно поменять аватарку…

Завтра выложу саму прогу!




Не похоже, чтобы где-то рядом были золотые буквы. Хотя я даже листинг координат текстур не нашёл. Индексы есть, а распиновки на них нет…


but nobody came

Сообщение отредактировал aleksusklim - Четверг, 18.07.2013, 00:50
 
steeldragonСообщение # 417 Среда, 17.07.2013, 10:45
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата (aleksusklim)
Карта светотени: http://klimaleksus2.ucoz.ru/Files/SWIM/world_15.jpg
Основная палитра:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_16.jpg
Модель низкого качества:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_17.jpg

Awesome!
Действительно - здорово! aleksusklim, а моделей букв вы не встречали во вторых субфайлах уровня?
Просто с этими моделями всё не так просто. Я пересмотрел почти все субфайлы, но не в одном из них букв нет. Могут эти буквы быть, как и двумерный шрифт, в каждом файле уровня?
 
DrWhoСообщение # 418 Среда, 17.07.2013, 13:12
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (steeldragon)
Могут эти буквы быть, как и двумерный шрифт, в каждом файле уровня?

Поскольку там же находится шрифт текста (по идее), видимо там и золотые буквы должны быть. Либо надо проверять домашние миры, ибо буквы могут быть там.


 
steeldragonСообщение # 419 Пятница, 19.07.2013, 22:58
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата (DrWho)
Поскольку там же находится шрифт текста (по идее), видимо там и золотые буквы должны быть. Либо надо проверять домашние миры, ибо буквы могут быть там.
Я тоже так думаю. Проблема в том, что искать их там сложновато...

...
aleksusklim, я тут подготовил небольшой справочник по инструкциям r3000-ассемблера (примерно на сотню инструкций), надеюсь, будет полезен:
https://dl.dropboxusercontent.com/u....ons.rar (xls и ods таблица)
Также рекомендую посмотреть эти ссылки, может быть, найдёте что-то нужное:
http://gfaq.ru/publ....-0-1937
http://gfaq.ru/publ....-0-1938
http://gfaq.ru/publ....-0-1939
http://gfaq.ru/publ....-0-1941
http://gfaq.ru/publ....-0-1942

Это ну очень большая статья об устройстве приставки (аж в четырёх пяти частях). Если верить этой статье, то всего доступно 120 инструкций, то есть, моя таблица почти полная...
...
Плюс я почти закончил конвертер OBJ в модели букв Spyro 1, но это совсем другая история...


Сообщение отредактировал steeldragon - Суббота, 20.07.2013, 08:10
 
DrWhoСообщение # 420 Суббота, 20.07.2013, 15:27
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (steeldragon)
Проблема в том, что искать их там сложновато...

Кстати, а в 1м Спайро как, также структура устроена золотых букв на порталах?


 
Поиск:

Кто нас сегодня посетил

Для добавления необходима авторизация