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


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

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


LOADING... 43%
 
DrWhoСообщение # 422 Суббота, 20.07.2013, 21:57
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
steeldragon, какая-то странная структура файлов тогда.

 
aleksusklimСообщение # 423 Воскресенье, 21.07.2013, 01:28
Аватар aleksusklim
фдулыгылдшь
Редактор
«1060»
Где: Не в городе Драконов
Ух-ты, оказывается, моя программа делает гораздо больше, чем я задумывал…
Она вытаскивает модели миров не только их всех уровней и подуровней, сценок, фрагментов из титров и заставок, но она ещё и без труда была перенесена на 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Сообщение # 424 Воскресенье, 21.07.2013, 01:55
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов

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




Сообщение отредактировал DrWho - Понедельник, 22.07.2013, 01:14
 
aleksusklimСообщение # 425 Понедельник, 22.07.2013, 01:05
Аватар aleksusklim
фдулыгылдшь
Редактор
«1060»
Где: Не в городе Драконов
Цитата (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Сообщение # 426 Понедельник, 22.07.2013, 01:15
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (aleksusklim)
напишу скрипт, который будет сам и через прокси-сервера открывать мою заглавную страницу (и кликать на рекламу…) один раз каждый день – Ucoz тогда успокоится?

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

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

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

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


 
steeldragonСообщение # 427 Понедельник, 22.07.2013, 11:14
Аватар steeldragon
Старейшина Драконов
Редактор
«412»
Где: Не в городе Драконов
Цитата (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-х битные не больше.


LOADING... 43%

Сообщение отредактировал steeldragon - Понедельник, 22.07.2013, 14:10
 
aleksusklimСообщение # 428 Суббота, 27.07.2013, 23:41
Аватар aleksusklim
фдулыгылдшь
Редактор
«1060»
Где: Не в городе Драконов
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
 
MrModezСообщение # 429 Понедельник, 29.07.2013, 01:34
Аватар MrModez
Дракон Подросток
Житель Города
«611»
Где: Не в городе Драконов
aleksusklim, ко всему, что ты написал.
Мне больше нечего добавить:



I'm MrModez
Мои новые треки в стиле Спайро:
Desolate Forest Skate Park - Spyro Custom Track
Lofty Farms - Spyro Custom Track
Gleaming Coast - Spyro Custom Track


Сообщение отредактировал MrModez - Понедельник, 29.07.2013, 01:37
 
aleksusklimСообщение # 430 Вторник, 06.08.2013, 02:24
Аватар aleksusklim
фдулыгылдшь
Редактор
«1060»
Где: Не в городе Драконов
*спущено сверху*


Цитата (aleksusklim)
Вот их я и выгрузил в 1024х1024 – все 256 штук, хотя ещё не видел, чтобы хоть в каком-то уровне даже половина использовалась.


…Блин, точно. Индексов не 256, а лишь 128 – старший бит не используется (но в Spyro3 часто установлен…)

Возможно поменяю весь тайл на 512*256 и 1024*512.

«Пачка небосводов» есть и в Spyro2, субфайл 006. Структура идентична, но там в каждой группе по сравнению со Spyro3 отсутствует один элемент; небо снова в конце каждой.

Двойную высоту всё-таки решил оставить двойной. Ибо уровень выглядит весьма убогим, если будет сплющен.

Вьювер научил загружать любые модели по выбору пользователя в трёх форматах: как цветную модель земли, как текстурированную модель (до неё придётся сперва загрузить соответствующую «цветную» со светотенями, а после – сам bmp текстурный тайл, можно даже тот, который из 64*64), или как «небо». Ну можно и всё спутать, загрузив реальное небо как модель земли – оно откроется в нестоящем обличии; или же вместо неба загрузить землю, но она просто распластается в одном участке фона. Вместо цветной модели текстурированная даст красно-жёлто-зелёные прямоугольники (словно vertex colors map как дефалтная карта в 3DsMax до рендера), а вместо текстурированной цветная размажет пиксели, но по большей части останется чёрная.
Совсем любые obj-модели не загрузятся – прога с лёгкостью вылетит.

Ха, придумал, что можно сделать с небом в 3DsMax, чтобы звёзды оказались на внутренней стороне:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_62.jpg
Выделить основной купол (все соседние полигоны, начиная с номера первого) и чуть-чуть равномерно отмасштабировать, увеличив его объём:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_63.jpg

Автоматизировать не буду, при надобности не сложно раздуть сферу вручную, а Game Maker и так нормально отображает.

Кстати, сравнил цвета «моего» смешивания и идеального.
Должно быть так:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_64.jpg
А у меня в программе смотрится вот так:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_65.jpg
Ну разве что неяркая лава, а все остальные различия ничтожны.

Уже совсем всё готово, остались финальные краш-тексты (хочу проверить ещё и на японском Spyro2). У всей методики есть серьёзное требование – много места на жёстком диске. Все текстуры в .bmp, модели в текстовые .obj (всё в среднем по полмегабайта), а три (пять, включая японские) игры со всеми уровнями, подуровнями (а для Spyro3 и подуровней пришлось копировать небо и текстуру, ведь мой вьювер рассчитывает на то, что один уровень состоит ровно из шести файлов: низкополигональная модель, цветная, светотеневая, текстурная, модель неба и тайловый паззл – подуровни выгружаются как уровни с копией неба и тайлов), сценками, заставками и титрами уже чуть ли не гигабайт требуют; да плюс мой вьювер кеширует очередные открываемые модели, «распаковывая» их на десятки временных файлов в своём формате (а он ох какой неоптимальный…), так что если открыть каждую-каждую модель и не чистить кеш-папку, то и до трёх гигов можно докатиться…
Зато однажды открытая модель грузится в мгновение ока! (первое открытие – задержка около трёх секунд; меньше если без текстуры или если небо уже сконверчено)

Обнаружился глюк для Spyro2: из-за шрифта некоторые тайлы текстур имеют размер не 32*32, а 32*31 пиксель. Решение – сдублировал ряд пикселей (полоска во Vram: 512<=x<= 575, y= 255)

И для Spyro3: если текстура используется только в подуровне, то она не существует во Vram до входа в него, и её нет в первом суб-субфайле (и она естественно не выгружается!). Хорошо, что только для 64*64, а маленькие текстурки всегда присутствуют.

P.S.
MrModez, что за.. англичане появились? Рано!! Я ж ещё не закончил…







До чего круто. Извлекается для Spyro3, для GH, для Платины, для Spyro2, для Spyro2 японского, для Spyro1, для Spyro1 японского и для всех трёх игр на моём пиратском сборнике…

Хм, пожалуй ещё попробую испытать на тех двух демках Spyro1, которые нашёл nihonjin…

Единственный недостаток моего вьювера – неверное отображение воды. А также льда, стекла, паутины и всех других прозрачных поверхностей. И дело не в том, что ватерлиния никогда не совпадает с водяной плоскостью (ну поймёте, когда увидите), а лишь в способе альфа-смешивания.
У текстуры воды (иногда и лавы) прозрачным считается не чисто чёрный цвет, а любой чёрный оттенок. То есть маска прозрачности – монохром в RGB. И я бы запросто реализовал его в Game Maker, если бы тот нормально работал с полупрозрачностью в 3D-режиме. А так – ужас, «hidden» почти что игнорируется, и за прозрачными полигонами может что-то рисоваться, а может и нет – зависит не от расположения предметов, а только от последовательности отрисовки, которую нельзя изменить.

Так что вода останется чёрная. Зато абсолютный чёрный я по умолчанию сделал абсолютно прозрачным (это реально используется в игре!)
Даже в 3DsMax без проблем визуализируется: поставьте ту же текстуру на «карту непрозрачности», но помножьте на что-то запредельное, например на 100 или 256. Тогда все не-абсолютно-чёрные цвета станут абсолютно белыми, а чёрный останется чёрным, и в итоге выйдет монохромная двухцветная маска непрозрачности:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_66.jpg
(свет, текстуры, небо – прелесть!)
Флаг. Видите у него в низу угол? Так это не вершина полигона, это лишь текстура. На модели флаг – ровный прямоугольник. А видите чёрные пиксели у нижнего края? Это разработчики так неаккуратно наложили чёрный цвет, кое-где смазав его (как на японском плоском шрифте в Spyro1).
Кстати, интерполировать текстуры при визуализации (в 3DsMax ли, где ещё – везде) нельзя! Там же тайл, а при сглаживании все крайние пиксели внутренних текстур смажутся с другими текстурами, и вы получите жирные швы на всех поверхностях.
Но антиалиазинг финального кадра спасает положение. А Game Maker? Да ну его, там и цвета-то не идеальные, пусть уж текстуры будут немного «пиксельные». Зато добавил опцию загрузки большого тайла с 64*64 (который теперь 1024*512 – приемлемый размер). Теперь вот думаю, не сделать ли текстурную модель моделью по умолчанию, а также и небо изначально включённым.

А как насчёт того, чтобы в нашем проекте перевода-модификации ещё и исправить ВСЕ ошибки/недоделки разработчиков по части моделей и текстур?
Например – Spyro3, Icy Peak, подуровень с ворами:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_67.jpg
Как вам треугольничек с неверно повёрнутой текстурой? (а я-то испугался, что моя программа неправильно выгружает…)

Ну а для Spyro2 в Summer Forest мне так и хочется добавить полигончик в эту дырку между деревьями:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_66.jpg

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

А пока что я рассмотрел модельки из Spyro2 повнимательнее:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_69.jpg

Замечаете что-то странное?

Должно быть так:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_70.jpg
А оно вот так:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_71.jpg

!!
Это модель из сценок. И да – в ней для Рипто вместо коридора такая же труба, как для двух других боссов.
Похоже сначала планировалась «труба втартарары», а «коридор вникуда» придумали потом, когда сценки уже были смонтированы.

Там, кстати, и небо немного неаккуратное:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_72.jpg
Кажется, камера на него не смотрит. Должно быть:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_73.jpg

Проверил последовательность титров, и:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_74.jpg
Подозрения? Ладно, это наверно было известно и раньше:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_75.jpg

Но одно дело перекрасить небо, и другое – полностью поменять:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_76.jpg
Эти из титров. А как в самом уровне? Да там всё в тумане:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_77.jpg
(Часть неба видна вверху)

Также наспех сравнил модели обычной и японской версий Spyro2.
О-о-очень мало различий, я обнаружил лишь два:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_18s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_18j.jpg
Это только на LOD-модели. На остальных повёрнуто так, как на японской (второй скрин), так что похоже – это исправление ошибки, а не модификация.

И небо в другом туманном уровне:
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_19s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/jap_19j.jpg
Перекрасили. Но я не понимаю, зачем…




Ucoz, вроде бы, завершил переезд. И двухмесячный «карантин» тоже закончился. И мой старый сайт ещё жив. На нём реклама (что-то новенькое, но код я уже исследовал и в пару кликов смогу ещё убрать), на нём можно даже зарегистрироваться (через «безопасный вход» в uId системе) и слать личные сообщения. Похоже, с ним всё в порядке и он работает. Так может… мне рискнуть и нажать-таки кнопку «Войти»?







Отличия в демках (попарно, первым оригинал)

Tabloid Version:

http://klimaleksus2.ucoz.ru/Files/SWIM/demo_1s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/demo_1m.jpg

http://klimaleksus2.ucoz.ru/Files/SWIM/demo_2s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/demo_2m.jpg

http://klimaleksus2.ucoz.ru/Files/SWIM/demo_3s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/demo_3m.jpg

http://klimaleksus2.ucoz.ru/Files/SWIM/demo_4s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/demo_4m.jpg

Foil Version:

http://klimaleksus2.ucoz.ru/Files/SWIM/demo_5s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/demo_5m.jpg

http://klimaleksus2.ucoz.ru/Files/SWIM/demo_6s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/demo_6m.jpg

http://klimaleksus2.ucoz.ru/Files/SWIM/demo_7s.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/demo_7m.jpg

Обнаружил, что небо в первом спидвее это перекрашенное и приукрашенное небо городской площади:

http://klimaleksus2.ucoz.ru/Files/SWIM/sky_11.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_12.jpg

http://klimaleksus2.ucoz.ru/Files/SWIM/sky_21.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_22.jpg

http://klimaleksus2.ucoz.ru/Files/SWIM/sky_31.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_32.jpg

А вообще небо первого мира Spyro3 – это почти полная копия неба первого мира Spyro1:

(первый – из Spyro1, второй из Spyro3)
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_41.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_42.jpg

http://klimaleksus2.ucoz.ru/Files/SWIM/sky_51.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_52.jpg

http://klimaleksus2.ucoz.ru/Files/SWIM/sky_61.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_62.jpg

С увеличенным углом обзора изменённая часть:
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_71.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_72.jpg

Небосвод по-другому ориентирован, из-за чего сравнение нечёткое. Совместил по шву оба неба в 3DsMax:

http://klimaleksus2.ucoz.ru/Files/SWIM/sky_01.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_02.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_03.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/sky_04.jpg

И обнаружил ошибку в Delphi!
Код:

«repeat … until true;»

и код

«repeat … break;until false;»

– это разные вещи! Во втором, и только во втором случае «continue» внутри цикла заставит его повториться. Это мне чуть было всё не испортило…

Зато нашёл хвост у дракона:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_78.jpg

Вы видите хвост?

Он там есть:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_79.jpg

Видите? НО ОН ТАМ ЕСТЬ:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_80.jpg
!!

Полигон ориентирован изнанкой не в ту сторону. Хей, это ОДИН БИТ. Давайте исправим здесь, а заодно везде где найдём такие ошибки!




Ну-с, всё работает. Осталось лишь справку написать…

Добавлено (05.08.2013, 00:01)
---------------------------------------------
Game Maker опять чудит. Какой-то дурацкий глюк…
Когда гружу текстуру, приходится создавать сурфейс. При создании рушиться 3D-режим, но в справке сказано, что его нужно просто отключить и включить заново. Также я меняю режим смешивания (чтобы предумножить на 1.3), а в справке сказано, что это может вызвать тормоза на старых машинах. А сам сурфейс может испортиться при изменениях в видео-памяти (например при смене разрешения экрана).
Но я при загрузке текстуры просто создаю новый сурфейс, рисую на нём, выгружаю фон и тут же освобождаю память. И всё в порядке…
Но я случайно обнаружил глюк, который происходит очень редко, непонятно почему но известно когда – если я загружаю малую текстуру, потом большую, потом переключаюсь на нетекстурированную модель, а потом снова гружу малую. И только при такой последовательности всё портится.
Ну например, должно быть так:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_81.jpg
А получается вот так:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_82.jpg
Или так:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_83.jpg
И даже вот так:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_84.jpg
А иногда и так:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_85.jpg

Ясно же, там что-то отрисовывается… Какие-то части моделей, плюс по экрану полоски пробегают.
Короче, мучил-мучил его, но так и не нашёл ни причины, ни способа отследить ошибку (чтобы просто перезагрузить текстуру ещё раз).
Зато если отрубить полностью рисование на экране за шаг (1 FPS) до создания текстуры, то вероятность ошибки значительно снижается, а если она и происходит, то текстура уже не разукрашивается в радугу, а остаётся прозрачной. Модель исчезает, но достаточно лишь перейти к большой текстуре и обратно, чтобы всё восстановилось.




Сравнил пачку небосводов (006 для Spyro2 и 097 для Spyro3 – назвал их SkyPack!) между GH и Платиной, и между простым и японским Spyro2.
Ноль различий…

Даже небо для Шейлы, которое на портале дублирует небо Виллы (только в Платине показывается правильное) – не различается в пачках. Значит изменено не само небо, а его индекс.

Да и вообще, получается «сделать небо» – очень сложная работа для художников-моделёров. Я даже не представляю, как именно они его создавали.
Им везде было легче полностью скопировать или слегка изменить (в Spyro1 встречаются не просто купола, а полные шары – так некоторые из них с обрезанным низом используются в Spyro3!) уже имеющееся небо, чем создавать новое. Жалко…
Но небосводы, всё-таки, удивительно красивые. Аж прям хочется найти современных художников, которые могут ТАК рисовать, да полюбоваться на их работы. Но похоже, что ТАК уже никто не рисует. Как-нибудь потом надо будет попробовать создать программу, с помощью которой можно будет делать похожие небеса.




И ещё кое-что. Ко мне уже обратились несколько англоязычных программистов-спайрофанов, которых заинтересовали извлечённые мной модели. Я хочу описать (кроме программ и методов) ещё и вкратце весь процесс проекта перевода по всем аспектам. В общем всё то, чем мы тут занимается.
Наш же иногда просили «в шапке темы» отражать текущий прогресс, и вообще писать, что мы делаем в данный момент, что уже сделано, и где результаты…

Так вот, я хочу создать отдельную тему, где можно будет отписывать полученные сведения и собирать ссылки на все статьи/программы/патчи, которые сейчас у нас разбросаны в нашей куче мусора.
И там же надо будет перевести всё это на английский язык, чтобы иностранцы тоже понимали, над чем идёт работа (как помните мы беседовали с польским ромхакером, который уже давно не показывался…)

Они говорят, что Гугль-Переводчик ужасно переводит русский на английский. Ну не знаю, я попробовал перевести пару своих постов – да ни-чё, читать можно!

Добавлено (06.08.2013, 02:24)
---------------------------------------------
Так-так-так-так, кажись, я всё выложил.
Эй, кто-то должен это проверить и убедиться, что всё работает:

http://klimaleksus2.ucoz.ru/Files/S/SpyroWorld.rar




А так, я ещё раз удостоверился, что режим плоской карты может быть реально полезен или хотя бы интересен:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_86.jpg

Забавно, зачем нужен вон тот полукруг из рёбер на правой части:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_87.jpg

Сравнил арены первой и второй битв с Колдуньей:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_88.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_89.jpg

Эй, да это то же самое место! Разве что горы и окружение немного опустили.
Всё-таки, текстуры неправильно отображаются. Особенно цвет лавы, должен быть такой:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_90.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_91.jpg

Ну а последнее, что я сделал – режим отмены смешивания текстуры со светотенью (и она не умножается), чтобы увидеть чистую текстуру:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_92.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/world_93.jpg

Иногда в таком сравнении светлых поверхностей проявляются баги обрезки цветов некорректным умножением. Особенно в Cloud Spires, да так сильно, что мне стыдно их показывать…
А ещё глюк, из-за которого надписи статистики в таком режиме без смешивания отображаются всегда только белым цветом. Эх, ну его, не буду исправлять!


but nobody came

Сообщение отредактировал aleksusklim - Пятница, 16.08.2013, 01:09
 
steeldragonСообщение # 431 Вторник, 06.08.2013, 13:16
Аватар steeldragon
Старейшина Драконов
Редактор
«412»
Где: Не в городе Драконов
aleksusklim,
Наконец-то мы все можем не только любоваться скриншотами.
Цитата (aleksusklim)
Эй, кто-то должен это проверить и убедиться, что всё работает:

Проверил. На S3-gh вроде всё работает отлично, но...
А что с водой? Сверху на ней текстура непонятного чёрно-синего цвета. И местами выше, чем надо:
https://dl.dropboxusercontent.com/u....ug1.jpg
https://dl.dropboxusercontent.com/u....ug3.jpg
https://dl.dropboxusercontent.com/u....ug4.jpg
Вероятно, чёрный цвет текстуры для PSX всегда равен прозрачному.

EDIT: Протестировал Spyro1-Jap, кроме вышеупомянутых проблем, ничего такого нет. (+ отсутствует проблема с неправильной текстурой выше воды.)
EDIT2: Посмотрел демо Spyro2. Оба уровня выгружаются нормально (в смысле, новых ошибок не появилось).

P.S. aleksusklim, если не затруднит, посмотрите третьи субфайлы уровней. Скорее всего, там золотые буквы и есть (по крайней мере, в Spyro1-Jap в этих суб-субфайлах есть запятые. Не знаю, действительно ли они используются игрой...). Также такой же формат модели, возможно, используется и разными объектами на спидвеях.


LOADING... 43%

Сообщение отредактировал steeldragon - Вторник, 06.08.2013, 14:08
 
nihonjinСообщение # 432 Вторник, 06.08.2013, 15:04
Аватар nihonjin
Дракон Подросток
Редактор
«298»
Где: Не в городе Драконов
すばらしい!

Йей, это прям за гранью мечты! Серьёзно, я давно о таком мечтал, но до сих пор лучшее, что у меня было это взлом Z-координаты (и то только в eng версиях).

Прошёлся немного по уровням Spyro1Jap. Пока что проблем не обнаружил. Однако, почему вы по умолчанию не задали экстракцию уровней из субфайлов 5-8(4-7яп.)?
Меня они почему-то удивили. Вот стартовая локация, где появляется надпись "жмите старт" и т.п.:
http://nihonjinryuu.narod.ru/SWV/subfile5j.jpg
Мне почему-то казалось, что там водопад должен быть больше...

Потом, прикольно сделана локация для интро:
http://nihonjinryuu.narod.ru/SWV/subfile6j.jpg
Ну естественно, разработчики бы не стали делать локации отдельно для Гнасти и инервью с драконами.

И пока последнее, я открыл для себя, что эпилоговая локация это фрагмент Lofty Castle!
http://nihonjinryuu.narod.ru/SWV/subfile8j.jpg
http://nihonjinryuu.narod.ru/SWV/subfile76j.jpg
как бы их поровнее сравнить
Почему мне казалось, что в эпилоге место действия это Gnasty's Loot?!

Ну вот разве что ещё один незначительный недочёт(или так надо?), что нумерация извлечённых уровней в японской версии такая же как и у американской, а ведь они отличаются.

Хм, интересно, а можно ли ещё добавить на карты интерактивные объекты(драконы, кристаллы, сундуки, вазы, враги, вихри, таблички и т.д.). Даже не обязательно их модели, а например, метки. Ведь благодаря взлому вихря известно, где хранятся координаты таких объектов.

О, ещё было интересно посмотреть текстурки. В своё время я пытался их вручную вот-так склеить... А теперь собрал паззл Гнасти:
http://nihonjinryuu.narod.ru/himitsu/GnastyG.bmp
Даже думал его на аватарку поставить...

P.S.: не знаю когда вернусь к активности на сайте, т.к. пытаюсь улучшить свой японский. Ещё одну игру перевёл...



①Прогресс перевода и взлома японской версии Spyro 1 смотрите в «плавающем сообщении» и его дубле.
②Сводки по Spyro 2! http://nihonjinryuu.narod.ru/Spyro2/gaikatsu.html.
③Кратко о прогрессе перевода и взлома Spyro 3GH в «сообщении №258», а сборки перевода найдёте в «сообщении №512».
④Проект перевода в vk - «spyro3rus».
~Русская wiki по Спайро~.
~Японская история Спайро~.
 
aleksusklimСообщение # 433 Вторник, 06.08.2013, 21:23
Аватар aleksusklim
фдулыгылдшь
Редактор
«1060»
Где: Не в городе Драконов
Цитата (steeldragon)
aleksusklim, +1!


…А зачем на этом «1!» лишняя триангуляция четырёхугольных полигонов?

Цитата (steeldragon)
Наконец-то мы все можем не только любоваться скриншотами.


А что, были сомнения, что я выложу исходники? ))

Цитата (steeldragon)
Проверил. На S3-gh вроде всё работает отлично, но...
А что с водой?


Сказал же:

Цитата (aleksusklim)
Единственный недостаток моего вьювера – неверное отображение воды. А также льда, стекла, паутины и всех других прозрачных поверхностей. И дело не в том, что ватерлиния никогда не совпадает с водяной плоскостью (ну поймёте, когда увидите), а лишь в способе альфа-смешивания.
У текстуры воды (иногда и лавы) прозрачным считается не чисто чёрный цвет, а любой чёрный оттенок. То есть маска прозрачности – монохром в RGB.


Как видно на заставке к моей программе – в портале моя аватарка вода на ближнем фоне визуализирована более-менее правдоподобно. Но сцена сделана через 3DsMax, и она постановочная – я ещё и небо повернул, чтобы солнце было в более привлекательной позиции.

Цитата (steeldragon)
Сверху на ней текстура непонятного чёрно-синего цвета.


Сама текстура такая.

Цитата (steeldragon)
И местами выше, чем надо:


Объяснимо. Вода в игре движется, немного покачивается вверх и вниз. То есть её координаты задаются во время выполнения, и игре по сути всё равно, какая высота будет изначально. Но вообще странно, что она не совпадает с нормальной высотой.

Если подумать – многие объекты мира меняются с течением времени. Фонари в Spooky Swamp зажигаются, замок в Зефире и Тернистых Холмах разрушается (причём первый в ресурсах в разобранном состоянии, а второй собран), выдвигаются разные мосты и двери. Чего стоят движущиеся меха в Cloud Spires! Да вы посмотрите на модель – на текстурную, а потом на светотеневую и снова на текстурную. Как это возможно!? Да просто – невидимая текстура – включите контуры, и всё встанет на свои места. Вопрос в другом, зачем игре это нужно?

Кстати, «течение» воды задаётся изменением координаты текстурного квадрата во VRAM – вода на самом деле это вертикальная полоска.

Неплохо было бы научиться извлекать модели из дампа памяти эмулятора – тогда они будут точно в таком состоянии, в каком они в игре, и поверхность воды будет на ватерлинии.

Цитата (steeldragon)
Вероятно, чёрный цвет текстуры для PSX всегда равен прозрачному.


Нет! В смысле, да. Но ЧИСТО чёрный. Поэтому текстуры воды ещё и «дырявые».
И вода в игре не прозрачная, она полупрозрачная. И роль альфа канала выполняет монохром (возможно удвоенный или сложенный, или умноженный на светотень… надо просто подобрать нормальный фильтр в 3DsMax, основываясь на скриншоте из эмулятора).
И да, это задаётся конкретно в определении полигона или его текстуры (для Spyro2/3 – в текстуре, для Spyro1 есть у LOD, а у обычной модели я не нашёл, но он используется – например лава-кислота в последнем бонусном уровне). В принципе, можно бы и этот флаг вытащить, но я не пойму какой с него будет прок, если вода всё равно не на своём месте и её вручную в 3DsMax придётся опускать.

Кстати, мои .dpr-исходники кто-нить читал? Я там форматы описал. Даже с рисунками…
Но всё равно я хочу ещё отдельным комментарием весь взлом расписать.

Цитата (steeldragon)
EDIT: Протестировал Spyro1-Jap, кроме вышеупомянутых проблем, ничего такого нет. (+ отсутствует проблема с неправильной текстурой выше воды.)


Да есть она там… Где-то я видал стеклянное окно. Ну и лава в сокровищнице.

Цитата (steeldragon)
EDIT2: Посмотрел демо Spyro2. Оба уровня выгружаются нормально (в смысле, новых ошибок не появилось).


О-о, кульно! А один-в-один сравнивали? Есть отличия от обычной версии?

Я вижу скриншотили вы в 1280*1024? (Средствами самого вьювера?)
Ну и скажите, как там ваш неслабый комп – сколько FPS? С небом, с текстурой но без контуров на модели средней сложности?

И координатную систему не отключили? Честно говоря, я её для себя делал… Меня всегда пугало компьютерное пространство без ориентиров (как электросвера в AceCombat3). Во многих играх мне было очень неприятно оказываться в «глюках» и падать сквозь пол или выходить за рамки уровня, где НИЧЕГО нет.
И во вьювере также… Мне так.. ужасно видеть пустое пространство, пытаясь найти в нём модель. А с координатной системой – огляделся – и вот он здоровенный цветной родимый куб! Всё в порядке…

Цитата (steeldragon)
P.S. aleksusklim, если не затруднит, посмотрите третьи субфайлы уровней.


В смысле, суб-субфайлы? А то ведь сценки вроде из трёх файлов состоят…

Цитата (steeldragon)
Скорее всего, там золотые буквы и есть (по крайней мере, в Spyro1-Jap в этих суб-субфайлах есть запятые. Не знаю, действительно ли они используются игрой...).


Там.. какой-то бред. Во-первых, куча разделителей FFh по 16 байт в ряд. А ещё полным-полно областей из «|» (7Ch). И если их повредить, то ничего не случится.
По-моему, я догадываюсь, что же это: анимация. Ну да, все модели объектов ведь анимированные! Я пока не знаю, как игра хранит анимацию. Как-то «повершинно» наверное. Возможно «7C» обозначает «ничего не делать», иначе зачем его такие озёра…

Цитата (nihonjin)
Йей, это прям за гранью мечты! Серьёзно, я давно о таком мечтал, но до сих пор лучшее, что у меня было это взлом Z-координаты (и то только в eng версиях).


А как сам интерфейс и управление? Необходимо ли полностью читать справку, или можно просто посмотреть список кнопок, а до тонкостей полёта самому допереть?

Ну и главное – как моя система движения в пространстве? Пытались отключить притяжение? (Изначально мне это нравилось, но с появлением правильного неба меня аж мутило если земля оказывалась не внизу…)
На мой взгляд, управление великолепное. Я ощущаю себя тем чуваком за пультом из фильма «Дежа Вю», который управлял спутниковой видеокамерой в четырёхмерном пространстве.

Цитата (nihonjin)
Однако, почему вы по умолчанию не задали экстракцию уровней из субфайлов


Что?

Цитата (nihonjin)
5-8(4-7яп.)?


Наоборот.

И ничего подобного, у меня всё извлекается. Просто префикс имён другой.
Я специально расположил их не по номерам, а по логике: сначала уровни, потом сценки, потом титры. То есть сценки находятся ровно в середине списка (после уровней), поэтому к ним придётся мотать все модели (в ту или в другую сторону).
Ну или «Shift+Ctrl+Lclick» чтобы выбрать нужный файл (начинается с «s1-2_*», хотел было расписать маску имён и что что обозначает, но понял – простому спайрофану номер ничего не скажет, а тот кто понимает и сам догадается!)

Цитата (nihonjin)
Меня они почему-то удивили. Вот стартовая локация, где появляется надпись "жмите старт" и т.п.:


Да, но я думал, что это часть какого-то уровня. Было несколько похожих, но только тематикой, а не топологией.

Цитата (nihonjin)
Потом, прикольно сделана локация для интро:


Ага! Чего-чего там говорят? Да вот же он, рядышком!
Кстати, я догадываюсь, зачем фоновый цвет такой яркий и не сочетается с уровнем – чтобы на момент тестирования сценки программисты были уверены, что ни один кусочек фона не попадает в кадр!

Цитата (nihonjin)
Ну естественно, разработчики бы не стали делать локации отдельно для Гнасти и инервью с драконами.


Ещё веселее это выглядит в Spyro2, где Рипто меняет флаги.

Цитата (nihonjin)
И пока последнее, я открыл для себя, что эпилоговая локация это фрагмент Lofty Castle!


Ух-ты, я не заметил.

Цитата (nihonjin)
как бы их поровнее сравнить


Модель-то сильно изменена. И масштаб и текстуры.

Ну а силуэт дракона рассматривали на последней сценке?

Цитата (nihonjin)
Ну вот разве что ещё один незначительный недочёт(или так надо?), что нумерация извлечённых уровней в японской версии такая же как и у американской, а ведь они отличаются.


Специально. Ну чтоб они шли подряд, и можно было легко сравнивать открытые модели! Если бы номер различался, то постоянно приходилось бы крутить между побочными моделями, чтобы найти парную.
Ну можно было ещё один номер справа приписать, но я решил не загромождать маску файлов, да и к тому же «обычный» номер уровня из привычного списка человеку узнать и запомнить гораздо легче.
А ещё при извлечении в консольном окне в скобках показывается реальный номер извлекаемого субфайла.

Цитата (nihonjin)
Хм, интересно, а можно ли ещё добавить на карты интерактивные объекты(драконы, кристаллы, сундуки, вазы, враги, вихри, таблички и т.д.). Даже не обязательно их модели, а например, метки. Ведь благодаря взлому вихря известно, где хранятся координаты таких объектов.


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

Цитата (nihonjin)
О, ещё было интересно посмотреть текстурки.


Сравнивали маленькие с большими? Можно даже «Программой просмотра изображений и факсов», если сделать окошко меньше 512*512, чтобы большая текстура масштабировалась, и не менялся размер.

Цитата (nihonjin)
В своё время я пытался их вручную вот-так склеить... А теперь собрал паззл Гнасти:


Здорово.

Цитата (nihonjin)
пытаюсь улучшить свой японский. Ещё одну игру перевёл...


И ещё одну переведёте:

Потестил японского Spyro2. И что, он реально не может «бурить» под водой!?
…Вот Зоя заколебала со своим «Спайро-сан!», а Толстосум с «Аригато-гузаймассы!»
А что за слова постоянно подсвечиваются зелёным в диалогах (и ещё выделены иногда жирными, а иногда прозрачными кавычками) ?
И с интро-сценками в уровни я не врубился, что и зачем там говорят. Звучит имя «спайро», но они же явно не к дракону обращаются, да и вообще не сами персонажи разговаривают.

А с камерой там та же история, или её через стандартное меню исправить можно?

P.S Что это – 640*512 ? Вы их уменьшили или у вас экран такой?


but nobody came
 
steeldragonСообщение # 434 Вторник, 06.08.2013, 22:35
Аватар steeldragon
Старейшина Драконов
Редактор
«412»
Где: Не в городе Драконов
Цитата (aleksusklim)
…А зачем на этом «1!» лишняя триангуляция четырёхугольных полигонов?

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

Цитата (aleksusklim)
Сказал же:

Мда. Какой же я всё-таки рассеянный: про лаву увидел, а про воду - нет.

Цитата (aleksusklim)
Неплохо было бы научиться извлекать модели из дампа памяти эмулятора – тогда они будут точно в таком состоянии, в каком они в игре, и поверхность воды будет на ватерлинии.

А есть программа, снимающая модели с вывода DirectX, 3D Ripper DX называется.

Цитата (aleksusklim)
Я вижу скриншотили вы в 1280*1024? (Средствами самого вьювера?)

Alt+PrintScreen и Paint.NET (там можно настроить качество JPG).

Цитата (aleksusklim)
О-о, кульно! А один-в-один сравнивали? Есть отличия от обычной версии?

Сравню. Завтра...

Цитата (aleksusklim)
Ну и скажите, как там ваш неслабый комп – сколько FPS? С небом, с текстурой но без контуров на модели средней сложности?

Стабильно 60.


LOADING... 43%
 
aleksusklimСообщение # 435 Среда, 07.08.2013, 00:15
Аватар aleksusklim
фдулыгылдшь
Редактор
«1060»
Где: Не в городе Драконов
Нашёл указатель на адрес загрузки суб-субфайла.
В дампе: 467872 (десятичный)
В эмуляторе: 9BE3C0h

Четыре байта – адрес со вторым суб-субфайлом, следующие четыре байта – с третьим вне подуровней и с пятым (седьмым, девятым) в подуровнях.

По адресу можно вытащить как текстурную страницу, так и модель земли (с небом пока не ясно).

Я-то думал, что водичка будет лежать ровненько-ровненько…

Вот, к примеру, Sunny Villa:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_94.jpg
А вот так оно сдампилось:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_95.jpg

…Ну да, я подозревал, что вода двигается, но не настолько же!
Кажется, это просто неверный масштаб по высоте. Эй, может её просто не нужно умножать на 2? И может тогда она даже и сама встанет на своё место?




Цитата (steeldragon)
А есть программа, снимающая модели с вывода DirectX, 3D Ripper DX называется.


Ну что-что, а это нам точно не нужно.

Цитата (steeldragon)
Alt+PrintScreen и Paint.NET (там можно настроить качество JPG).


Влом было Enter нажать? ))

Цитата (steeldragon)
Стабильно 60.


'Натуре!? Блин, а у меня выше 30 теперь не поднимается…


but nobody came
 
Форум Spyro Realms » Самый нужный раздел » Союз крылатых переводчиков » Перевод Spyro 3: Взлом и программы (Обсужедния взлома игра, программ и прочих проблем)
Поиск:

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

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