Воскресенье | 09.08.2026 |12:18
Приветствую Вас Гость Мира Спайро | 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
 
MrModezСообщение # 421 Понедельник, 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Сообщение # 422 Вторник, 06.08.2013, 02:24
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
*спущено сверху*


Цитата (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Сообщение # 423 Вторник, 06.08.2013, 13:16
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
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 в этих суб-субфайлах есть запятые. Не знаю, действительно ли они используются игрой...). Также такой же формат модели, возможно, используется и разными объектами на спидвеях.


Сообщение отредактировал steeldragon - Вторник, 06.08.2013, 14:08
 
nihonjinСообщение # 424 Вторник, 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Сообщение # 425 Вторник, 06.08.2013, 21:23
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата (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Сообщение # 426 Вторник, 06.08.2013, 22:35
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата (aleksusklim)
…А зачем на этом «1!» лишняя триангуляция четырёхугольных полигонов?

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

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

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

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

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

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

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

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

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

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

Стабильно 60.
 
aleksusklimСообщение # 427 Среда, 07.08.2013, 00:15
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Нашёл указатель на адрес загрузки суб-субфайла.
В дампе: 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
 
nihonjinСообщение # 428 Среда, 07.08.2013, 00:22
Аватар nihonjin
Дракон Подросток
Редактор
«298»
Где: Не в городе Драконов
Цитата (aleksusklim)
А как сам интерфейс и управление? Необходимо ли полностью читать справку, или можно просто посмотреть список кнопок, а до тонкостей полёта самому допереть?

С этим я довольно быстро освоился. Помимо основнjго(мышь+стрелки) я мало чего использовал. Это вид сверху, открывание меню с уровнями, отключение осей, да переключение на "HD" текстуры.

Цитата (aleksusklim)
Ну и главное – как моя система движения в пространстве?

Так-то всё как надо, но у меня левая рука интуитивно тянется не на стрелки, а на WASD.

Цитата (aleksusklim)
И ничего подобного, у меня всё извлекается. Просто префикс имён другой.

Уфф, да, сплоховал. Теперь вижу, что там индексы 1- нормальные уровни, 2- из сценок, 3- из титров.

Цитата (aleksusklim)
Да, но я думал, что это часть какого-то уровня.

В принципе она сделана в стиле 3го мира(Magic Crafters Home), но как я посмотрю не заимствованна из какого-либо уровня, как в случае с эпилогом, хотя...

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

Мм... что?

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

О, а я не догадался. Странно, в некоторых парах заметна инверсия небольших кусочков. Например в 57,71,75,77j покоцаны решётки. Похоже, что больше всего различий/поворотов(в S1jap) в 73/98.

Цитата (aleksusklim)
И что, он реально не может «бурить» под водой!?

Да уж, это одна из особенностей... Надо объяснять почему так сделали?

Цитата (aleksusklim)
А что за слова постоянно подсвечиваются зелёным в диалогах?

Ключевые жеж. Разве в оригинале не так же? Нет... но ведь где-то там они используются и помимо сделок с обучалками. Ладно, сейчас переведу что-нибудь для примера. А, чего далеко ходить, возьмём первый же разговор с Зоей. Кстати, только не падайте, но в яп. версии её зовут Пэк(если транслитом, то Паккуру). Я так понял это отсылка к:
http://ru.wikipedia.org/wiki....%D1%8F)
Кхм, ну я отвлёкся. Перевожу это(а заодно и сравниваю с оригиналом):
http://nihonjinryuu.narod.ru/Spyro2/pakkuru.jpg
Я рада познакомиться с тобой, Спайро! Я фея и меня меня зовут Пэк. Элора попросила меня помочь тебе в путешествии.

Продолжение:
http://nihonjinryuu.narod.ru/Spyro2/pakkuru2.jpg (в яп. версии не убралась первая строчка)
Испугался? Ну прости за это! Этот электрический удар записывает твоё состояние. Даже если ты где-нибудь потерпишь неудачу, то вернёшься сюда. Понятно? ...ну, трудись изо всех сил!

Перевод недословен, иначе был бы абзац(в переносном смысле). Вообщем, уже один этот монолог должен прояснить, что и в текстах между европейской и японской частями есть определённая разница. Зоя так официальничает... вы бы знали! Я уж не говорю о сравнении шрифтов... но давайте пока не устраивать дискуссий.

Цитата (aleksusklim)
И с интро-сценками в уровни я не врубился, что и зачем там говорят. Звучит имя «спайро», но они же явно не к дракону обращаются, да и вообще не сами персонажи разговаривают.

Эх, а вам всё досрочно раскрой. Ну, как я понял, в этих сценках за кадром болтают Спайро, Хантер, Элора и Спаркс, которые обсуждают то, что происходит на экране. Я мало что там понимаю, но одно мне запомнилось хорошо. При покидании уровня Robotica Farms в сценке есть разговор типа:
Спайро: Ага, получайте! Так и надо с жучьём поганым! (когда осы-монстры поджариваются на электроловушке)
Спаркс: Эй!
Спайро: Ой, извини Спаркс! Ты совсем не такой как они ...и т.д.

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

Камера исправляется в меню паузы:
http://nihonjinryuu.narod.ru/Spyro2/pause.jpg
Через настройки(вторые снизу). И там:
http://nihonjinryuu.narod.ru/Spyro2/hyoujun.jpg
http://nihonjinryuu.narod.ru/Spyro2/ekisupaato.jpg
Первое - японская, второе оригинальная. Хех, а они называют их "стандартная" и "экспертная".

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

Да, уменьшил вдвое для вас удобства.

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

А у меня при подгруженных "HD" текстурках во время движения иногда немного провисает.



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

Всё возможно. Только вот как вы определите, что вода, а что - нет?

Сравнил уровни демо-версии Spyro 2 с обычными. В Skelos Badlands отличий нет, в Sunny Beach нашёл два:
1) https://dl.dropboxusercontent.com/u....2-1.jpg (нормальный)
https://dl.dropboxusercontent.com/u....-d1.jpg (демо)

2) https://dl.dropboxusercontent.com/u....2-2.jpg
https://dl.dropboxusercontent.com/u....-d2.jpg
 
MrModezСообщение # 430 Среда, 07.08.2013, 12:22
Аватар MrModez
Дракон Подросток
Житель Города
«611»
Где: Не в городе Драконов
Цитата (aleksusklim)
P.S. MrModez, что за.. англичане появились? Рано!! Я ж ещё не закончил…
Ну, вообще то это был фин финляндец.

Цитата (aleksusklim)
Ко мне уже обратились несколько англоязычных программистов-спайрофанов, которых заинтересовали извлечённые мной модели.
Ну как я не могу поделиться такой новостью с другими спайрофанами :D

Окей, я протестил эту замечательную прогу, и всё работает превосходно! Вот только вода немного смущает.
Короче, я выложил видео про эту прогу на ютуб:
http://www.youtube.com/watch?v=THkI6FJ2jDc
И, похоже, всем она нравится :)


I'm MrModez
Мои новые треки в стиле Спайро:
Desolate Forest Skate Park - Spyro Custom Track
Lofty Farms - Spyro Custom Track
Gleaming Coast - Spyro Custom Track
 
aleksusklimСообщение # 431 Пятница, 09.08.2013, 17:54
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
*без ответов*

С неверной высотой воды проблема решена, я нашёл флаг, который за неё отвечает.
В заголовке одного кусочка модели есть количества: вершин, цветов и полигонов как для LOD, так и для основной модели + непонятный байт, который для LOD равен нулю и ни на что не влияет, а для модели равен непонятно чему, и при любом изменении происходит взрыв и зависание.
Так вот оказалось, что для всех «движущихся» (не текстуры а вершин) поверхностей этот байт (последний перед квартетом 0xFF) равен нулю. Его изменение точно так же продуцирует взрыв, поэтому всё что я могу – считывать его, вроде бы нулевой действительно только для воды (но не для всякой, а лишь для «колыхающейся», плоской горизонтальной).
Если нулевой, то первые два бита Z-координаты каждой вершины этого кусочка нужно сдвинуть (проще говоря, разделить локальную высоту на 4). Однако во время выполнения они изменяются вместе со всеми, я не смог однозначно понять за что они отвечают (любое изменение тут же затирается самой игрой на «колыхание»), но предполагаю, что это кратные доли пикселя – четвертинки (fixed-point). Чтобы уровень воды мог изменяется на очень малые доли. Выгружать не стал, хочу чтобы все числа оставались целыми – плюс-минус один пиксель ничего не решает.

Почитал SDK по поводу вершин, полигонов, текстуры и прозрачности.
Первая важная инфа – VRAM делится на текстурные страницы – квадраты 256*256, причём по горизонтали они могут пересекаться на сдвиги, кратные 64. Это именно то, что я вычислил эмпирически, поэтому окончательно беру свои слова назад насчёт того, что игра, якобы, может натянуть весь VRAM на один полигон. Нет, не может. Максимум – область 256*256 пикселей. Для вывода всего юзабельного VRAM нужно 4 полигона))
Второе: флаг полупрозрачности – этот тот самый холостой бит, который 16-й в определении 15 bpp цвета. Ну тот, который белый на DIB у PGG. Ну который мы игнорировали…
Короче, расклад такой. Если цвет абсолютно чёрный, а высший бит НЕ установлен, то цвет становится абсолютно прозрачным; если полигон должен быть полупрозрачный, то он будет полупрозрачным только на тех цветах, где высший бит установлен, но на остальных всё равно непрозрачный); а если полигон непрозрачный, то он останется непрозрачным независимо от высшего бита, но при этом если цвет абсолютно чёрный, а высший бит установлен, то цвет будет ЧЁРНЫЙ.
Выписка:
http://klimaleksus2.ucoz.ru/Files/SWIM/ref_1.png
Получается, что делать прозрачным нужно не абсолютно чёрный цвет, а только тот, который не имеет высшего бита. А до этого момента я его просто игнорировал…
Если 256 или 16 цветов, то высший бит берётся из палитры (что значит, что палитра для воды будет белая на DIB файле от PGG)
Имплементировать элементарно – если цвет RGB(0,0,0) то проверить старший бит, и если он установлен, то сделать цвет, скажем RGB(1,1,1) – это тоже практически чёрный, но уже не абсолютно чёрный (в любом случае следующий же цвет после конвертирования 15 bpp в 32 bpp – это RGB(8,8,8) так что совпадений и близко не будет)

Попробовал снять флаг прозрачности текстуры воды: (на одном полигоне вторая «вода»)
http://klimaleksus2.ucoz.ru/Files/SWIM/world_96.jpg
И да, это абсолютно так, как отображается у меня – с дырками. Странно, учитывая что высший бит должен быть установлен, а он делает чёрный непрозрачным. Надо проверить PVV… Ну разве что может быть что все кроме чёрного цвета в палитре с установленным старшим битом. А иначе все сказанное выше не работает, и бит можно игнорить дальше…
Если попробовать поставить любую другую текстуру и установить прозрачность полигона, то он останется непрозрачным – скорее всего потому, что в его палитре нет старшего бита. Следствие – может существовать вода или субстанция, текстура которой будет иметь одновременно и полностью прозрачные пиксели, и полупрозрачные пиксели, и совсем непрозрачные пиксели. Надеюсь, что таких ни в одной игре нет, иначе выгружать придётся ещё и монохромную маску непрозрачности текстуры, а я даже не представляю, что же дальше надо будет с ней делать …

Третье – нашёл формулу, как игра рассчитывает цвет полупрозрачных поверхностей:
http://klimaleksus2.ucoz.ru/Files/SWIM/ref_2.png
Коэффициенты могут принимать одну из четырёх комбинаций:
http://klimaleksus2.ucoz.ru/Files/SWIM/ref_3.png
Прозрачность «аддитивная» (есть такой вид и в 3DsMax, для Game Maker надо поискать/подшаманить что-то похожее)
Попробовал применить, но перемноженные цвета и текстуру пришлось ещё раз умножить на 2 (притом что для смешивания я уже один раз на 2 умножил!) :
http://klimaleksus2.ucoz.ru/Files/SWIM/world_97.jpg
Очень похоже на то, как отображается в игре:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_98.jpg

Странно, но мне кажется, что это не везде будет работать. Особенно если вода раскрашена чёрным цветом на светотеневой модели. Как, например, в сценке с замком в драконьем мире (заставка к SpyroWorldViewer или в моей текущей подписи). Если она чёрная, то никакая аддитивная прозрачность не поможет, и всё просто станет прозрачным:
http://klimaleksus2.ucoz.ru/Files/SWIM/ref_4.png
Другой формулы нет, только удвоенное перемножение. Хотя с другой стороны, возможно именно там вода чёрная лишь потому, что она ни разу не попадает в кадр (чтобы визуализировать, вместо перемножения текстуры и цвета я их сложил).

Ну ладно, теперь нужно просто выгрузить отдельно прозрачные куски модели (воду, стекло, лёд, паутину…) и отдельно всё остальное причём оба дважды – с текстурой и с цветами.
Перелопатить код вьвера, чтобы текстурная модель теперь состояла из двух файлов – «земля» и «вода». Кажется, понадобится ещё и горячая клавиша загрузки воды – F4.
А ещё хочу добавить «Hold Space» – переместиться в начало координат. И возможно, «Hold Alt + Hold Space» – вкл/выкл прозрачности воды (если вообще будет…).
А также сделаю «Ctrl + Alt + Space» эквивалентным «Alt + Space» а не «Ctrl + Space».

Добавлено (09.08.2013, 17:54)
---------------------------------------------

Цитата (nihonjin)
Это вид сверху


Это же так круто! Как можно было им не пользоваться?

Цитата (nihonjin)
Так-то всё как надо, но у меня левая рука интуитивно тянется не на стрелки, а на WASD.


Ну хорошо, сдублирую управление (там есть маппинг клавиш, так что ни строчки не придётся изменять!)

Цитата (nihonjin)
Мм... что?


Ну мой же скрин:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_40.jpg

Цитата (nihonjin)
О, а я не догадался. Странно, в некоторых парах заметна инверсия небольших кусочков.


О чём я и говорил: в игре они так же покоцаны. Надо найти и все исправить!

Цитата (nihonjin)
Да уж, это одна из особенностей... Надо объяснять почему так сделали?


Ну как-бэ понятно, что «чтобы игрок там плавал, а не валил всех подряд без разбору»…

Цитата (nihonjin)
Кстати, только не падайте, но в яп. версии её зовут Пэк(если транслитом, то Паккуру).


Ну японцы…
Я фигею над ними, они даже для MLP:FiM нарисовали (!) свою заставку, перевели (и переврали наверно) интро-песню + придумали ещё две расширенные её версии…

Цитата (nihonjin)
Я так понял это отсылка к:


А просто «Зоуи» (Zoe) что-нить значит?

Цитата (nihonjin)
электрический удар записывает


Это как-то странно выделено. Нелогично…

Цитата (nihonjin)
Эх, а вам всё досрочно раскрой.


Сюрприз готовили? (долго тянули…)

Цитата (nihonjin)
Ну, как я понял, в этих сценках за кадром болтают Спайро, Хантер, Элора и Спаркс, которые обсуждают то, что происходит на экране.


Они, типа, это «видят»? В стиле «как кино» или они там присутствуют?

Цитата (nihonjin)
Хех, а они называют их "стандартная" и "экспертная".


Так может их так и надо в меню моего патча назвать? (я даже не помню чем там всё закончилось: я поставил тот текст, который вы мен предложили, или так и нет?)

Цитата (nihonjin)
А у меня при подгруженных "HD" текстурках во время движения иногда немного провисает.


Я там скорость движения (перемещения) повязал на коэффициенте FPS, поэтому при «тормозах» видимая скорость движения сохраняется, просто не все кадры прорисовываются (отрывочность), зато само движение не становится медленнее.
Но это относится только к принудительному перемещению, а всё остальное (чувствительность мыши, время на зажимания клавиш (типа «Hold Ctrl + Hold Right»), анимационные перелёты) тормозит стандартным образом.

Цитата (steeldragon)
Всё возможно. Только вот как вы определите, что вода, а что - нет?


Всё готово.
(Ну игра сама же определяет! Значит и я определю)

Цитата (steeldragon)
Сравнил уровни демо-версии Spyro 2 с обычными.


Круто. А что, демо-уровни – это не из первого мира локации?

Цитата (MrModez)
Ну, вообще то это был финн финляндец.


Ага, он мне уже сказал…

Цитата (MrModez)
Ну как я не могу поделиться такой новостью с другими спайрофанами :D


Это ж была тестовая версия!!
Фух, хорошо что она работает…

Цитата (MrModez)
Вот только вода немного смущает.


Решено уже; можете сообщить «туда же», что скоро будет новая версия.

Цитата (MrModez)
Короче, я выложил видео про эту прогу на ютуб:


Блин. Название – «SpyroWorld», в одно слово! Это типа существительное…
Обозначает «Мир Спайро», но не «World of Spyro» и не «Spyro’s world», а как более нарицательное и общее выражение.
«Viewer» можно отдельно (но лучше не через пробел, а просто на следующей строке), а «SpyroWorld» – весь пакует программ.

Цитата (MrModez)
И, похоже, всем она нравится :)


Здорово, здорово. Правда я не понял комментарий про вирус и про Вихрь.




Ну всё, вода покорена. А так же стекло, лёд и паутина.

Сначала я заставил игру вывести все четыре режима смешивания:
http://klimaleksus2.ucoz.ru/Files/SWIM/world_99.jpg

И наш – второй, и он игрой задаётся тоже как второй, а это просто «фон + цвет».
Кажется, три оставшихся типа нигде игрой не используются, так что сам тип я просто игнорирую (считая что на всех полупрозрачных поверхностях он второй).

Невероятно, но в Game Maker как раз есть «bm_one» (и он тоже «второй», но уже из одиннадцати) режим смешивания.
Установив draw_set_blend_mode_ext(bm_one,bm_one) получаю абсолютно идертичную игре прозрачность:

http://klimaleksus2.ucoz.ru/Files/SWIM/water_01.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/water_02.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/water_03.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/water_04.jpg
Ватерлиния уже исправлена, вот гриб:
http://klimaleksus2.ucoz.ru/Files/SWIM/water_05.jpg
Лёд:
http://klimaleksus2.ucoz.ru/Files/SWIM/water_06.jpg
Icy Peak, прелесть:
http://klimaleksus2.ucoz.ru/Files/SWIM/water_07.jpg
Мой Spooky Swamp.. ради него старался:
http://klimaleksus2.ucoz.ru/Files/SWIM/water_08.jpg
Водопадик:
http://klimaleksus2.ucoz.ru/Files/SWIM/water_09.jpg
Стёкла:
http://klimaleksus2.ucoz.ru/Files/SWIM/water_10.jpg
Паутина:
http://klimaleksus2.ucoz.ru/Files/SWIM/water_11.jpg
Озеро:
http://klimaleksus2.ucoz.ru/Files/SWIM/water_12.jpg
Кислота:
http://klimaleksus2.ucoz.ru/Files/SWIM/water_13.jpg
Всё как в игре!
http://klimaleksus2.ucoz.ru/Files/SWIM/water_14.jpg
http://klimaleksus2.ucoz.ru/Files/SWIM/water_15.jpg

Теперь буду исправлять кучу побочных багов, которые я успел наделать; перепишу все .bat, чтобы передавать новые аргументы конверторам; а также добавлю что-нибудь небольшое для распаковки WAD, чтобы прога работала навсех-навсех версиях игры (возможно сделаю mad-mode, где скрипт попытается отконвертить каждый субфайл как будто это уровень – надо выяснить, к чему это может привести…)


but nobody came
 
DrWhoСообщение # 432 Пятница, 09.08.2013, 18:42
Аватар DrWho
Мудрый Дракон
Почетный Житель
«1371»
Где: Не в городе Драконов
Цитата (aleksusklim)
Теперь буду исправлять кучу побочных багов, которые я успел наделать; перепишу все .bat, чтобы передавать новые аргументы конверторам; а также добавлю что-нибудь небольшое для распаковки WAD, чтобы прога работала навсех-навсех версиях игры (возможно сделаю mad-mode, где скрипт попытается отконвертить каждый субфайл как будто это уровень – надо выяснить, к чему это может привести…)

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


 
steeldragonСообщение # 433 Пятница, 09.08.2013, 19:14
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата (aleksusklim)
А что, демо-уровни – это не из первого мира локации?

Sunny Beach из первого, а Skelos Badlands - со второго.

Цитата (aleksusklim)
(возможно сделаю mad-mode, где скрипт попытается отконвертить каждый субфайл как будто это уровень – надо выяснить, к чему это может привести…)

На субфайле 009 Spyro3-gh проверьте, если сделаете. Определённо именно там игра хранит декорации меню.

Цитата (aleksusklim)
Кстати, мои .dpr-исходники кто-нить читал? Я там форматы описал. Даже с рисунками…

Прочитал. Написал конвертер для кусков LOD-моделей. А с глобальными координатами что делать (т.е. как эти кусочки склеивать)?
...
WAD. Не самое распространённое название формата. Интересно, а может ли наш WAD быть изменённым DOOM-овским WAD?
Сравнил заголовки (+ есть в Spyro WAD-формате, - нет):
Код
----Doom WAD---
- 12-байтовый заголовок (identification, numlumps, infotableofs (указатель на директорию с данными) [все по 4 байта])
  ===>Directory
  +[4 bytes] filepos
  +[4 bytes] size
  -[8 bytes] name (ASCII text)

Примечательный факт: порядок 4-х байтовых значений и там и тут little endian, т.е. чем правее разряд, тем больше его значение.
Наверное, стоит глубже сравнить эти форматы.
...
 
aleksusklimСообщение # 434 Суббота, 10.08.2013, 19:14
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата (DrWho)
+ можно каких-нибудь бонусов добавить в игру (хотя зачем оно, можно реализовать, то что я раньше предлагал), если я правильно понял о чем тут все писали последние две страницы.


Уж очень странную вы выбрали цитату для такой реплики.

Цитата (steeldragon)
Sunny Beach из первого, а Skelos Badlands - со второго.


Я в смысле что в них разве не из первого мира заходить надо? Там вообще домашний мир есть?

Цитата (steeldragon)
На субфайле 009 Spyro3-gh проверьте, если сделаете. Определённо именно там игра хранит декорации меню.


Не-а, это не тот субфайл. Сценки состоят из трёх субфайлов: первый имеет структуру как уровень – четыре суб-субфайла, VRAM, модели (земля-небо), «что-то» (где в уровнях есть названия яиц), живые объекты; второй – как «следующий» для уровня (зашифрован XOR, и там код); а третий – сама скриптовая сценка с музыкой и анимацией. Причём этот третий субфайл подгружается динамически по кусочкам.
Для меню «007» с моделями, «008» вообще пустой, а «010» хранит первую анимацию (таблички и Спайро) и звук бега и криков (ну понятно уже о чём я).
Для Spyro2 всё идентично, но скриптовая сценка хранится отдельно от соответствующего файла с моделями.

Цитата (steeldragon)
Прочитал. Написал конвертер для кусков LOD-моделей.


Конвертер из чего в чего? Из OBJ в LOD?

Цитата (steeldragon)
А с глобальными координатами что делать (т.е. как эти кусочки склеивать)?


хм, даже не знаю… а мой код читать не пробовали?


Да просто приплюсовать локальные координаты вершины к глобальным координатам куска:
z:=((((vertex_ground2.b1 ) or ((vertex_ground2.b2 and 3) shl 8)) shl 1)+header_ground2.z);
y:=(((vertex_ground2.b2 shr 2) or ((vertex_ground2.b3 and 31) shl 6))+header_ground2.y);
x:=(((vertex_ground2.b3 shr 5) or ((vertex_ground2.b4) shl 3))+header_ground2.x);
Ну локальную высоту ещё удвоить (а для колыхающейся воды наоборот сократить до четверти).

Цитата (steeldragon)
WAD. Не самое распространённое название формата.


Да это вообще не формат, а просто набор указателей, и по большому счёту, размеры файлов там абсолютно не нужны.

Когда ломал FTL, очень захотелось распотрошить ресурсы и вытащить всю музыку. Открыл основной BIN, так там просто сказка: 4 байта – кол-во субфайлов, за ним четырёхбайтовые указатели на них, по каждому указателю первые четыре байта – размер файла, затем ещё 4 байта – кол-во символов в названии (и полном пути) файла, дальше само название (без разделителя и даже не выровнено по mod4) голой строкой, и следом снова без разделителей (даже нуля) весь субфайл! Да я за 10 минут свой распаковщик написал…

Цитата (steeldragon)
Примечательный факт: порядок 4-х байтовых значений и там и тут little endian, т.е. чем правее разряд, тем больше его значение.


steeldragon у вас ржавеет в смысле эй парень да что с тобой сегодня?

Вообще-то данный порядок байт абсолютно везде. Я вам отвечаю, ВЕЗДЕ!!
Единственный в жизни раз, где я встретил Big-Endian – числа в заголовке VAG звукового файла.

Цитата (steeldragon)
Наверное, стоит глубже сравнить эти форматы.


Даже не тратьте на это время.

…Я ж всё AWM никак не допереработаю. Зациклился на моделях.

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


but nobody came
 
steeldragonСообщение # 435 Суббота, 10.08.2013, 19:40
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата (aleksusklim)
Я в смысле что в них разве не из первого мира заходить надо? Там вообще домашний мир есть?

Ну если так... Нет, там две подписанные картинки уровней в качестве меню и всё.

Цитата (aleksusklim)
Конвертер из чего в чего? Из OBJ в LOD?

Наоборот (упрощённый LOD в OBJ (только вершины/полигоны)). Хочу понять формат и написать поисковик для подобных файлов (наподобие S3MeXtractor в японской теме). В этом деле главное уменьшить кол-во извлекаемого мусора и при этом не отсеять заодно и нужные файлы...

Цитата (aleksusklim)
эй парень да что с тобой сегодня?

Бывает...

EDIT:
Цитата (aleksusklim)
Кстати, если хотите реально взломать что-то нереальное, то попробуйте ломануть физические поверхности игры – пол и стены.
А почему бы и нет? Тем более я уже нашёл, где это добро хранится - данные с началом от j4. Поменял половину немного данных (после исправления извлекателя получилось 169 КБ чистого веса) на FF - теперь носороги в Sunny Villa бегают сквозь стены, а Спайро через пол проваливается.


Сообщение отредактировал steeldragon - Воскресенье, 11.08.2013, 11:49
 
Поиск:

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

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