Воскресенье | 09.08.2026 |11:26
Приветствую Вас Гость Мира Спайро | 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
 
aleksusklimСообщение # 406 Понедельник, 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Сообщение # 407 Понедельник, 15.07.2013, 01:18
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (aleksusklim)
Гляньте-ка, вам это ничего не напоминат?

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

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

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

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

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

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


 
aleksusklimСообщение # 408 Среда, 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Сообщение # 409 Среда, 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Сообщение # 410 Среда, 17.07.2013, 13:12
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (steeldragon)
Могут эти буквы быть, как и двумерный шрифт, в каждом файле уровня?

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


 
steeldragonСообщение # 411 Пятница, 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Сообщение # 412 Суббота, 20.07.2013, 15:27
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (steeldragon)
Проблема в том, что искать их там сложновато...

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


 
steeldragonСообщение # 413 Суббота, 20.07.2013, 18:41
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата (DrWho)
Кстати, а в 1м Спайро как, также структура устроена золотых букв на порталах?
Именно, что нет! Иначе давно бы поиском по файлу нашли... (сами модели, на мой взгляд, ничуть не изменились)

Цитата (aleksusklim)
Не похоже, чтобы где-то рядом были золотые буквы. Хотя я даже листинг координат текстур не нашёл. Индексы есть, а распиновки на них нет…
Плохо. И где же их искать...
 
DrWhoСообщение # 414 Суббота, 20.07.2013, 21:57
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
steeldragon, какая-то странная структура файлов тогда.

 
aleksusklimСообщение # 415 Воскресенье, 21.07.2013, 01:28
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Ух-ты, оказывается, моя программа делает гораздо больше, чем я задумывал…
Она вытаскивает модели миров не только их всех уровней и подуровней, сценок, фрагментов из титров и заставок, но она ещё и без труда была перенесена на Spyro2 !

Потестил, проверял триангуляцию полигонов:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_21.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_22.jpg
Следите за дверью вдали? Меняется полоса освещения. Более явно выглядит так:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_23.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_24.jpg
(прямоугольник на бордюре, не смотрите на разноцветные треугольники!)

На Spyro1 (включая японскую версию) тоже удалось перенести, но там во-первых LOD полигоны задаются немного по-другому:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_25.jpg
Там добавлена прозрачность:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_26.jpg
И перенасыщенное смешивание:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_27.jpg
(пришлось игнорить… хотя вряд ли она в реальности хоть где-то используется)
Во-вторых нет проблемы с двойной высотой, а в-третьих небольшие расхождения в побочных параметрах (инвертирование лицевой стороны и индекс текстуры) – сделал опцию специально под Spyro1.

Кстати, текстуры тоже попытался взломать (они описываются во втором суб-субфайле непосредственно перед моделями, которые я извлекаю), но они жестоко аппроксимируются! Там не просто координаты:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_28.jpg
(следите за рисунком на стене) А чуть ближе:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_29.jpg
!! Полигон поделился на четыре угла, и за каждый отвечает по 8 байт (и ещё 8 за большой полигон). Но это цветочки:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_30.jpg
Ещё ближе – и эти же (кажется) 8 байт будут показывать ещё раз по четыре подтекстуры:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_31.jpg
Я без понятия как это выгрузить, даже если найду концы – там не просто XYWH, там задан и поворот (да не один), глубина цвета и координаты палитры в VRAM… (то есть я не смогу сохранить модель ни в один формат, ибо 3D требует одной или нескольких текстур, а каждая вершина будет иметь координаты в ней; а в нашем случае каждый полигон может использовать уникальную (да хоть за счёт той же смены палитры!) текстуру – так мне что, каждый полигончик в свою собственную текстуру заворачивать?)

И (чтоб так сказать, плоды моей работы могли наблюдать все желающие, а не только те, у кого есть Блендер или Макс) последнее что я сделал – программу 3D просмотрщик моделей.
…и не такой как прошлый раз, а классный.

Навигация в нём лучше и удобнее любого 3D моделёра, ибо предназначен он для свободного «полёта» по модели. Спасибо Википедии («#Матрица поворота вокруг произвольной оси») за формулу вращения точки по вектора в пространстве…
Делает неплохие скрины, но размер напрямую зависит от разрешения экрана:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_32.jpg
Spyro1, какие кристаллы!
http://klimaleksus2.ucoz.ru/Files/SWIM/world_33.jpg
Кстати, сделал «режим карты» – практический ортогональный (есть незначительная погрешность) просмотр сверху:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_34.jpg
Реально карты можно делать! Угадайте, откуда:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_35.jpg
А иногда карты даже информативными получаются:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_36.jpg
Spyro2:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_37.jpg
Башенки акварии! Раз, два три.. четыре пять… шесть! Все на месте:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_38.jpg
А это как устрашающе:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_39.jpg

Честно говоря, я потратил больше времени летая по мирам и изучая модели. Это так интересно!
А что я искал? Что-нибудь скрытое. Какой-нибудь знак от разработчиков… Полигон вдалеке, невидимый из игры остров, что-нибудь интересное «за спиной» у камеры в сценках…

И мои надежды оправдались!! Это в Spyro1, кажется, финальное видео:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_40.jpg
Я не хакер, если это Спайро.

(с освещением иногда весело, особенно в «туманных» уровнях, где LOD вообще нет, а основной фоновый цвет серо-голубой).

Пытался найти лучшую модель «замка» (понятно какого, который на аватарке!) между Spyro2 и Spyro3. Нашёл две практически одинаковые копии, отличающиеся лишь триангуляцией:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_41.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_42.jpg

…Но вообще-то я хочу ещё взломать небо. А так на простой фон смотреть:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_43.jpg
как-то не то.


but nobody came

Сообщение отредактировал aleksusklim - Понедельник, 22.07.2013, 00:55
 
DrWhoСообщение # 416 Воскресенье, 21.07.2013, 01:55
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов

Точка пропущена. Скрин не работает из-за этого.




Сообщение отредактировал DrWho - Понедельник, 22.07.2013, 01:14
 
aleksusklimСообщение # 417 Понедельник, 22.07.2013, 01:05
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата (aleksusklim)
так мне что, каждый полигончик в свою собственную текстуру заворачивать?


И почему это «каждый»? Там всего 256 потенциальных индексов! Если выдернуть их хотя бы в 128*128, то общий размер текстуры будет 2048*2048, а это вполне приемлемо.

Цитата (aleksusklim)
Но вообще-то я хочу ещё взломать небо


Я его нашёл! В том же втором суб-субфайле, ближе к концу, видимых навскидку указателей на себя не имеет.
Обнаружил, заменяя файлы уровней – сначала поменял Sunrise Spring и Sunny Villa между собой. Небо осталось родное, а вот музыка в уровнях тоже поменялась, а значит список треков на уровни не хранится в самих уровнях, а записан отдельно. Частично подтверждена теория «бонусной ракеты» псевдо-Базза (о том, что она летит в СуперБонус, хотя он не предназначен для транспортный средств) – вот эта ракета летит в Sunny Villa:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_44.jpg

Подменив весь второй субфайл небо тоже поменялось, я всё перерыл и нашёл его:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_45.jpg
Отвратительный формат! На рисунке – ОДИН полигон: первая вершина красная, вторая зелёная (общая для всех), третья синяя, четвёртая белая, потом чёрная, розовая и пошло по кругу до светло серой, последняя – тёмно серая. Зависимостей ещё больше чем у LOD или двумя расцветками основного мира – здесь первая вершина хранится отдельно от двух других, причём три цвета рядом с ней + число от 0 до 7 – дополнительное кол-во вершин и их цветов, которые надо считать. Все данные следуют сплошным потоком без всяких разделителей, и стоит изменить одно число, как сдвигается вся последовательность, а на небе происходит термоядерный взрыв…

Раскусить формат оказалось лишь половиной задачи, ибо я смог-таки выгрузить всё небо так как оно лежит в ресурсах (ну с точностью до масштаба по осям, поворота или отражения).
Но собрать этот паззл у меня никак не получается… Ни один скриншот не покажет всей 3D сути, так что вот видео:
http://klimaleksus2.ucoz.ru/Files/SWIM/villa.avi
(ставьте на паузу, чтобы рассмотреть повнимательней)

И что с этим делать!? Его словно вывернули наизнанку…
Я всё надеюсь что-то вычесть или знак поменять, помножить на что-нибудь или развернуть, чтобы все осколочки чудесным образом собрались в ровненький купол, но пока лучшее, что получилось – это то, что на видео.
И бесполезно выбирать точку обзора, менять поле зрения камеры или пытаться увеличить сферу до бесконечности… Хуже всего то, что я использовал абсолютно все данные, которые относятся к модели, то есть для меня нет неразгаданных областей. Осталось правильно интерпретировать имеющееся…

steeldragon, у вас здорово получается находить в интернете полезную информацию, может капнёте что-нить про небо? Вдруг где-то будет объясняться, как делалось небо в разных играх на PlayStation.
Это же модель. Я например, знаю только два вида неба – сферическая текстура (неплохая панорама, но на полюсах вверху и внизу словно «пупок» растёт…), шеститекстурный SkyCube (который, типа, даёт хороший обзор, но сколько я его видел – так везде это реальный куб, все углы напоказ, как в Контре…), однако это не помешало мне для YoyoSpyrO сделать своё небо – огромная икосаэдрическая сфера, которую я размалевал разными цветами без текстуры – и на мой взгляд, это было самое красивое и правдоподобное небо, хотя без детализации и весьма расплывчатое. Но облака и солнце я хотел накладывать поверх…




Ucoz, похоже, возненавидел мой сайт и всё стремится его во что бы то не стало уничтожить! Его не волнует что файлы скачиваются, даже наоборот – я сам качал файл со своего сайта, так на 98% закачка оборвалась с ошибкой «файл отсутствует на сервере». Снова пришлось кликать по ссылке на почте.
Кажется, всё реально наоборот. Чем больше скачивается файлов, тем быстрее сгорает время жизни сайта. Им обязательно нужно, чтобы посещалась основная страница (наверное). А если я на бесплатном хостинге с поддержкой PHP (а такие есть) напишу скрипт, который будет сам и через прокси-сервера открывать мою заглавную страницу (и кликать на рекламу…) один раз каждый день – Ucoz тогда успокоится?

Цитата (DrWho)
Точка пропущена. Скрин не работает из-за этого.


Спасибо.
И вам обратный совет: чтобы ссылки в цитатах нормально интерпретировались, ставьте пробелы после и перед ними.


but nobody came
 
DrWhoСообщение # 418 Понедельник, 22.07.2013, 01:15
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (aleksusklim)
напишу скрипт, который будет сам и через прокси-сервера открывать мою заглавную страницу (и кликать на рекламу…) один раз каждый день – Ucoz тогда успокоится?

Может, проще попробовать альтернативный вариант? К примеру на яндекс. диск залить файлы. Или хотя бы забэкапить куда-нибудь файлы с сайта. А то потерять столько добра жалко будет.

Добавлено (22.07.2013, 01:15)
---------------------------------------------

Цитата (aleksusklim)
И вам обратный совет: чтобы ссылки в цитатах нормально интерпретировались, ставьте пробелы после и перед ними.

Ну, это не принципиально, но можно.


 
steeldragonСообщение # 419 Понедельник, 22.07.2013, 11:14
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата (aleksusklim)
steeldragon, у вас здорово получается находить в интернете полезную информацию, может капнёте что-нить про небо? Вдруг где-то будет объясняться, как делалось небо в разных играх на PlayStation.
Это бесполезно. (по большинству запросов о взломе игр Spyro1-3 выводит обратно к нам, про небо же не объясняется ровным счётом ничего по любому запросу, который я могу придумать.)

В ходе поисков вспомнил про опцию графического плагина Line Mode. Оказывается, вы просто неудачно выбрали уровень... У Sunny Villa небо не сфера, а что-то, близкое к этому вашему "термоядерному взрыву":
1) https://dl.dropboxusercontent.com/u....pg
Кусок сферы (снаружи). Середина маскируется под солнце.
2) https://dl.dropboxusercontent.com/u....pg
Какая-то непонятная конструкция.

А вот у Sunrise Spring - нормальная сфера:
https://dl.dropboxusercontent.com/u....pg

Цитата (aleksusklim)
Если выдернуть их хотя бы в 128*128
8-битные текстуры по 32x32, 4-х битные не больше.


Сообщение отредактировал steeldragon - Понедельник, 22.07.2013, 14:10
 
aleksusklimСообщение # 420 Суббота, 27.07.2013, 23:41
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
steeldragon, отбой, уже не нужно. Я и сам допёр, что с небом делать…

Просто там странная математика: к локальным координатам вершин в кусочке по иксу надо прибавлять глобальные координаты самого кусочка, а по игреку и зет – вычитать их! Так и думал, что мой любимый метод написания кода – наугад – работает и работает.

А насчёт многоугольных полигонов оказалось, что общая точка, к которой сходятся все новые треугольники, может меняться прямо по ходу определения этих треугольников:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_46.jpg
Это по-прежнему ОДИН полигон.

Теперь все кусочки неба:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_47.jpg
извлекаются идеально:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_48.jpg
Разве что я не следил за лицевой стороной, ибо игра визуализирует обе (то есть «снаружи» небо такое же видимое, как и изнутри)

А с учётом умения собирать паззл в полусферу имею грандиозный купол:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_49.jpg
Небо взломано! Любое:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_50.jpg

Фоновый цвет земли (низа неба) лежит прямо там же, так что всё почти готово. Может-таки ломануть ещё и текстурки? Хотя бы на «средней дальности» – в нормальном качестве (4 по углам), но без второго учетверения…

Цитата (steeldragon)
8-битные текстуры по 32x32, 4-х битные не больше.


Проблема в том, что игра может выхватить из VRAM хоть его целиком (512*512) и напялить это на огромный квадрат, причём качество будет соответствующее. И даже мой 128*128 его ухудшит, не говоря уже об 32*32.
Но обратно же, игра может один пиксель точно так же растянуть во всю землю, но его качество будет отстойным в любом случае, хоть даже я его в 1024*1024 выгружу…
Я же не буду замерять площадь всех полигонов, на которые нацеплена каждая из 256 текстур (и они не обязательно уникальные, одна может содержать другую или быть отражена/наклонена – так что резать VRAM тоже не выход, тайлы надо именно вытаскивать из него по координатам), ведь полигоны бывают ещё и треугольные и чёрти как растянутые…

Добавлено (25.07.2013, 00:48)
---------------------------------------------
О, ну наконец-то я приручил небо как следует. К сожалению у небес неустранимый дефект – звёзды, планеты и прочие прелести, которые есть на некоторых небосводах, оказывается, накладываются не изнутри сферы, а снаружи. Она как бы вывернута наизнанку.
Поэтому сделать хорошую визуализацию через 3DsMax не получится, но зато снаружи смотрится прикольно.

Зато Game Maker с его ущербным 3D движком поддерживает-таки «hidden» флаг, определяющий, надо ли не рисовать что-то, если оно загораживается чем-то другим. Проще говоря, если я сначала рисую стену, а потом стол за ней, то стол, естественно, нарисован не будет, хотя в последовательности рисования он идёт после него и должен как бы замазать стену. Так работает обычная 3D графика.

А небо в Spyro отрисовывается в любом случае и в первую очередь.

Небо не может загородить ни один объект (а вы думали оно какого размера? Сам уровень в несколько раз больше небосвода, но всегда рисуется поверх него), а «само себя загородить» может: сначала вырисовывается общая сфера, а в конце – все украшательства вроде звёзд. И они накладываются поверх, несмотря на то, что физически расположены с другой стороны.

К счастью, Game Maker с выключенным «hidden» поступает точно так же, и просто затирает звёздами часть основной сферы, и небо у меня выглядит 1:1 как в самой игре.

Кстати, небо Spyro1 функционально отличается от небес Spyro2 и 3, где полигоны многоугольные. Здесь же все полигоны исключительно треугольные и гораздо проще устроены. Зато индексы вершин и цветов двухбайтовые, да и по размеру всё это больше места занимает. Но я так понял, что во времена Spyro1 не было нужны особо экономить свободное пространство, да и на LOD моделях они неплохо отыгрались – те значительнее отличаются по количеству полигонов от основных моделей, чем в Spyro3, где LOD зачастую практически совпадает с моделью для текстур.

…у меня в файлах теперь бардак какой-то. Сначала это была одна программа, которая конвертировала предварительно извлечённые данные модели уровня в obj формат. Потом я нашёл LOD и нетекстурированную модель, поэтому сделал опции командной строки – какую именно модель выгружать.
Потом я стал подгонять это под Spyro1, и (поскольку различия были небольшие, но зато почти везде…) весь код превратился в условия, опрашивающие эти опции – короче, код забыдлокодился окончательно, и никто кроме меня в нём бы не разобрался (я и сам с трудом).
Дальше я вбухал туда поисковик моделей, который двумя способами ищет их – по указателям и просто так пропарсивая весь файл по косвенным условиям (типа «ищи FFFFFFFF, но при этом чтобы смещение делилось на 4 без остатка, а в ближайших 32 байтах впереди не было FFFFFFFF …», только сложнее) если по указателям ничего не найдено (только ради Icy Peak + всех его подуровней, а также для нескольких из Spyro2)
Затем я приплюсовал код, извлекающий заданный субфайл, чтобы обрабатывать сразу WAD, а не отдельно передавать предварительно извлечённые субфайлы.

Ну а теперь я могу вытаскивать небо (и не одно! По крайней мере в Spyro1 в домашних мирах целых 6 моделей небосводов – для порталов…), и делается это совершенно не так, как модель уровня, да ещё и для Spyro1 всё по-другому. А я ведь даже текстуры не извлёк…
Короче, разгромил весь код, и состряпал из него несколько отдельных программ – одна ищет модели, пропарсивая WAD или субфайл уровня, выдаёт землю и небо (можно только основное, можно все небеса сразу; если доберусь до текстур в моделях – будет и их извлекать), другая конвертирует землю в три модели (а с текстурами будет четыре…), а третья – только небо (фоновый цвет передаю элементарно – огромная пирамида из 4 треугольников, которая содержит в себе извлечённое небо и раскрашена в фоновый цвет – изнутри и не догадаться!)

Ещё раз переделал просмотрщик на Game Maker, который теперь воспринимает небо автоматически (особое имя файла… Жаль нельзя будет открывать любые модели по желанию. А только те, что лежат в правильной папке под правильным именем…)
Скорость FPS значительно упала (ничего себе! Да по сложности и полигональности небосвод сравним с самим уровнем!), поэтому небо отключено (как и полигональная сетка) по умолчанию.

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

Да! Сравнил визуально все модели уровней между обычным и японским Spyro1.
Отличий много, но они незначительные. По большей части это упрощения игры – увеличение уступов, островков, дверей. Наверное из-за ихней камеры, которая сокращала шансы на выживание в узких местах. Вот места и сделали шире!
Правда некоторые изменения мне непонятны – которые затрагивают лишь декорации.

Скриншоты смотреть попарно:

Купол – раз, шарики на входе в лабиринт вдали – два:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_01s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_01j.jpg

Башни-близнецы + увеличенный ободок слева у стартовой площадки:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_02s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_02j.jpg

Распухший проход:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_03s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_03j.jpg

Удлинённый край:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_04s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_04j.jpg

А вот это.. весьма странно:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_05s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_05j.jpg

Поднятая арочка!
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_06s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_06j.jpg

Расширенная дверь:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_07s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_07j.jpg

Ещё пара арок:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_08s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_08j.jpg

Край. Почти вдвое просторнее!
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_09s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_09j.jpg

Наконец хоть что-то они опустили:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_10s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_10j.jpg

Косяк сплюснули как-то:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_11s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_11j.jpg

А вот это весело: башню ликвидировали, но арочку лишь повернули:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_12s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_12j.jpg

Наклон уступа теперь в большую сторону:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_13s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_13j.jpg

Маленький островочек стал немного крупнее!
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_14s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_14j.jpg

А вот это вот, чес-говоря, я вообще не могу прокомментировать, пока не узнаю, для чего в уровне служат данные шпили:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_15s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_15j.jpg

Прикольно, взяли кусок стены вытащили:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_16s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_16j.jpg

Хоть скриншоты различаются сильно (бегает пунктир сетки), на деле различия только в трёх горах вдали и на переднем плане:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_17s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_17j.jpg

Пожалуй, мой взлом и формат хранения моделей надо будет обязательно расписать ещё и на английском языке. Раз до меня небо никто не взламывал…

Добавлено (27.07.2013, 23:41)
---------------------------------------------
О-о-о, ну и дорвался я… до текстур.
Это уже сверх-взлом какой-то. Даже не знаю, сколько времени уйдёт на то, чтобы описать всё как следует…

Ломанул Spyro1 и выяснил, как же хранятся текстурные индексы. Потом написал прогу, которая почти как PGG будет вытаскивать текстуры из VRAM (первый суб-субфайл) и сохранять их в тайловый BMP.
И действительно, 32х32 ! На самом деле игра не может натянуть весь экранный буфер на один полигон. Система может, но логика игры запрещает. Да и вообще координаты не так уж и свободны.
Три точки движутся вместе, расстояние меж ними либо 16, либо 32 пикселя (16 есть только у Spyro1 для аппроксимизации). Четвёртая точка может не находится в углу квадрата, тогда текстура на один угол растянется. Но четвёртая точка и не может быть где угодно: видео память логически разбивается на 16 областей (исключая ещё 16 областей в «левой» половине (где рисуются кадры) – обращаться к ним можно, но ни к чему хорошему это не приведёт), и все эти 4 угла должны быть в одной области.
Скажу больше, игра НИКОДА этим не пользуется, и 4 точки всегда образуют квадрат 32х32 пикселя. А уж четыре таких квадрата формируют один высококачественный (есть ещё низкокачественная копия) тайл 64х64. Вот их я и выгрузил в 1024х1024 – все 256 штук, хотя ещё не видел, чтобы хоть в каком-то уровне даже половина использовалась.

И поворот там не такой уж сложный – 90 градусов – во все стороны с любым отражением (8 вариантов). Научился вращать байты в одномерном массиве, ибо игра часто идёт на хитрость, например если текстура полностью симметричная, то вместо всех 4 кусочков используется один и тот же, правильно отражённый.

А вот с «правильным отражением» косяк! Причём не у меня, а у самих разрабов.
Я сличал в 512х512 «LOD» текстурки 32х32 с их высококачественными пазлами в 1024х1024 по 64х64. И часто обнаруживал небольшие несоответствия (цвет, яркость), но иногда куски углов текстур были неправильно ориентированы! И это не моя программа виновата, ведь в игре они тоже выглядят криво.
Ходить далеко не надо: Spyro1, первый же мир:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_51.jpg
Внимательно смотрите: розовая виляющая полоска на стене – вдали выглядит нормально, а вблизи её края перестают состыковываться, а на самой текстуре видны швы. Разработчик просто забыли поставить бит, отвечающий за отражение (для этого даже не пришлось бы менять что-то во VRAM).
Я подумал, что японцы это исправили, но нет – в японской версии всё одинаково.

Быстренько прошёлся по тайлам всех уровней Spyro1 и примерно в каждом четвёртом были ляпы, но проверять их в игре было неохота. Лишь ещё один я точно зафиксировал:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_52.jpg
Смотрите на сетку на мосте. Чуть ближе:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_53.jpg
Чудеса!

И даже в Spyro2 есть подобное (да, я выдернул текстуры и оттуда, несмотря на то, что формат слегка различается), Гавань Бризов:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_54.jpg
Один уголок перекрасился в другой цвет! Это они с координатами напортачили:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_55.jpg

Ну а теперь, когда я имею честь накладывать текстуры поверх соответствующей модели (правильно раскрашенной в первый набор цветов) земли, с режимом смешивания «spotlight» (удвоенное перемножение, «А*В*2» или «(А+А)*В») и устанавливая идеально извлечённое и раскрашенное небо, я могу делать визуализации панорам уровней потрясающего качества:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_56.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_57.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_58.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_59.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_60.jpg

Прорисовка заднего плана выше, чем в самой игре, ведь тут нет сглаживания далёких текстур, поэтому они останутся яркими независимо от расстояния до камеры:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_61.jpg

Да уж, это куда замечательнее, чем созерцать голые модели, хоть и раскрашенные в привычные цвета.




Ну, кажется, всё. Осталось скомпоновать программы для Spyro2 и 3, завершить мой вьювер (чтоб он тоже понимал текстуры), описать форматы ВСЕГО (а это структура WAD и уровней касательно вторых суб-субфайлов, формат моделей земли LOD и общий, формат неба, формат текстур и всё это отдельно для Spyro1 и 2/3 ), и наконец выложить!!







Во, для темы Графики вытащит фото «РОЗЫСК» :
http://klimaleksus2.ucoz.ru/Files/S/wanted.png

Как вставлять обратно пока не задумывался, но перерисовывать можно хоть сейчас! Насчёт палитры – там 256 цветов, но _возможно_ их делят между собой несколько текстур, в любом случае – перерисовывать в максимальном качестве.

Искал небо… небо на порталах в Spyro3.
Как я сказал, у Spyro1 они все в файле домашнего мира. У Spyro3 (и я проверял это подменой субфайлов WAD) портальные небеса не хранятся в уровне, но и не вытаскиваются из других уровней.
Где же они? Есть уникальная сигнатура любого неба – повторяющиеся плотные блоки не меньше чем по 32 байта, причём каждый четвёртый (старший в квартете) байт равен «30h». Это цвета неба, они обязаны кончаться на 48, но только у неба – обычные модели имеют 00h.

Так вот, оказалось, что небесами набит 97-ой субфайл! Он, кстати, большого размера и предшествует всем уровням. Там блоки, разделённые морями нулей. Последней частью каждого блока (есть указатель из шапки соответствующего блока) является небо. Первое – Sunrise Spring, второе – Sunny Villa. Похоже, там все небеса…

Резонный вопрос: зачем было дублировать их отдельно от уровней? Либо вставили бы все используемые небеса во все уровни, либо выгрузили бы совсем все (включая основные) небосводы в этот субфайл. Зачем было дубли разводить…




Проклятый Game Maker не поддерживает перемножения текстуры и цвета, только складывает, вычитает, инвертирует и ещё около ста (всего 11*11) бесполезных методов смешения альфа канала.
Без смешения выгладит ужасно серо, а с дефалтным – тёмно.
…Ладно, схитрил: RGB каналы предумножил на 1.3 (с обрезкой на 255…), текстуру тоже при приёме предумножил (средствами Game Maker!) на 1.3 (с такой же обрезкой) и при дефалтном наложении результат выглядит почти как в игре (или 3DsMax).

Если светлая текстура подсвечивается светлой заливкой, то в идеале она должна аж светится (эффекты освещения в игре), из-за того, что при умножении белого на белый (1*1) и ещё на 2, цвет становится «сверх-белым» и подсвечивается.
А в моём случает он остаётся «так-себе-белым» без особого впечатления. Но хотя бы не серый!
И текстуры передавать вьюверу я решил только 512*512. Game Maker и так страдает, бедненький, нет-нет да вылетит…

Цитата (MrModez)
Мне больше нечего добавить:


…А когда выложу прогу, то каждый спайрофан сам сможет полетать по всем мирам всех трёх игр!





*перенесено ниже*


Сообщение отредактировал aleksusklim - Воскресенье, 04.08.2013, 02:10
 
Поиск:

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

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