Среда | 24.04.2024 |13:40
Приветствую Вас Гость Мира Спайро | 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
 
nihonjinСообщение # 436 Среда, 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Сообщение # 437 Среда, 07.08.2013, 11:43
Аватар steeldragon
Старейшина Драконов
Редактор
«412»
Где: Не в городе Драконов
Цитата (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


LOADING... 57%
 
MrModezСообщение # 438 Среда, 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Сообщение # 439 Пятница, 09.08.2013, 17:54
Аватар aleksusklim
фдулыгылдшь
Редактор
«1060»
Где: Не в городе Драконов
*без ответов*

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

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


 
steeldragonСообщение # 441 Пятница, 09.08.2013, 19:14
Аватар steeldragon
Старейшина Драконов
Редактор
«412»
Где: Не в городе Драконов
Цитата (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, т.е. чем правее разряд, тем больше его значение.
Наверное, стоит глубже сравнить эти форматы.
...


LOADING... 57%
 
aleksusklimСообщение # 442 Суббота, 10.08.2013, 19:14
Аватар aleksusklim
фдулыгылдшь
Редактор
«1060»
Где: Не в городе Драконов
Цитата (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Сообщение # 443 Суббота, 10.08.2013, 19:40
Аватар steeldragon
Старейшина Драконов
Редактор
«412»
Где: Не в городе Драконов
Цитата (aleksusklim)
Я в смысле что в них разве не из первого мира заходить надо? Там вообще домашний мир есть?

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

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

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

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

Бывает...

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


LOADING... 57%

Сообщение отредактировал steeldragon - Воскресенье, 11.08.2013, 11:49
 
SoulСообщение # 444 Воскресенье, 11.08.2013, 17:39
Стрекоза
Новопоселенец
«0»
Где: Не в городе Драконов
Возможно глупость,но всё же:
имея нынешние наработки, возможно стоит сделать некую модификацию (вроде проекта http://omnicide.legacy-of-kain.ru/ru/)
т.е. модифицировать ныне существующий SpyroWorldViewer v1.1.exe таким образом,что
1) при запуске он попросит образы оригинальных дисков спайро 1,2,3
2) извлечет модели всего,что только ему потребуется (возможно,пересохранит в свой формат), как минимум уровней
3) запустит игру, используя эти модели

конечно придется повозиться еще со многим, но модели уровней будут готовы
что это даст:
1) спайро все 3 части  в 1 игре, как целая история,причем компилировать для различных платформ
2) возможность добавить совершенно новые фанатские главы
3) совершенно новые фишки (мб даже игра вдвоем на 1 пк)

главное указать,что это модификация оригинальных игр, все права не наши и тд и тп, как сделали http://omnicide.legacy-of-kain.ru/ru/


Сообщение отредактировал Soul - Воскресенье, 11.08.2013, 17:40
 
steeldragonСообщение # 445 Воскресенье, 11.08.2013, 17:55
Аватар steeldragon
Старейшина Драконов
Редактор
«412»
Где: Не в городе Драконов
Цитата (Soul)
возможно стоит сделать некую модификацию

На модификацию это не тянет, да и производительность будет ниже плинтуса. Легче, наверное, с нуля написать, и не на GML.

Цитата (Soul)
2) извлечет модели всего,что только ему потребуется (возможно,пересохранит в свой формат), как минимум уровней

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

Я не говорю, что это невозможно, Soul, просто нужно взломать еще столько всего...
Вы можете нам с этим помочь, или так, идею предлагаете?


LOADING... 57%
 
aleksusklimСообщение # 446 Понедельник, 12.08.2013, 00:36
Аватар aleksusklim
фдулыгылдшь
Редактор
«1060»
Где: Не в городе Драконов
Всё вышло весьма неплохо.
Однако моё «недоумножение» никак не давало мне покоя. 1.3*1.3= 1.7, а мне нужно 2.0!
Если переложить множитель на цвета светотени, то страдают блики, которые уже монотонно застилают модель, становится плоско и некрасиво.
Если же переложить нагрузку на текстуру, то теряются все почти белые её цвета, становясь абсолютно белыми, и Cloud Spires выглядит совсем ужасно.
Я чуть было не решил выделить правильный множитель не для всей текстуры, а для отдельных тайлов в ней (для этого мне пришлось бы обрабатывать цвета палитры из VRAM, прикинуть максимальный цвет, домножить его так, чтобы получился белый, потом разделить двойку на этот коэффициент, чтобы получить множитель для светотени; хотя можно и не к двойке идти, а хотя б к 1.8, но работы не меньше, а как побочный эффект – невозможность применения чужой текстуры и возможно даже неспособность загружать текстурированные модели вручную; да и не исправит это глюк, а лишь смягчит его…), а всё потому, что игра может белую текстуру налепить на тёмную поверхность, или тёмную текстуру на белую поверхность – в итоге при удвоенном перемножении выглядеть они будут одинаково и впишутся в 0..255, а вот если предумножить каждую на что-нибудь заранее и срезать к 0..255, мы в обоих случаях теряем кучу оттенков.

Ура, я нашёл простое решение, но был вынужден дорого за него заплатить. В итоге все оттенки всех моделей в текстурированном виде теперь отображаются абсолютно так, как в игре. И облака с завитушками, и лава жгуче-рыжая.
А цена… двойная отрисовка всей модели. Ну я просто вообще ничего ни на что не домнажал, и сначала рисую модель с одинарным перемножением светотени и текстуры. Она тёмная, её нужно просто умножить на 2. Но Game Maker этого не может! Зато может сложить с какими-нибудь цветами, если я снова «bm_one» как режим смешивания поставлю. Ну я и рисую повторно ту же самую модель – он складывает её саму с собой и получаются удвоенные цвета. Но модель рисуется дважды, и это значительно снижает FPS.

Как побочный эффект открываются новые ошибки в игровых моделях. А именно дважды нарисованные или пересекающиеся полигоны. Кажется, они у меня умножаются на 4, и начинаются светиться.
Но каждый из них я проверил в игре, и там они тоже отображаются ненормально, хотя и не так вопиюще.
Подборочка:

http://klimaleksus2.ucoz.ru/Files/NEXT/next_01.jpg
Треугольники пересекаются. Чтобы показать в эмуляторе, пришлось снять видео (в Epsxe кнопка «цифра 7» записывает видео с экрана в папку «DEMO\» на софтовом плагине, F7 для переключения)
http://klimaleksus2.ucoz.ru/Files/S/triangle.3gp
Зелёным овалом показал нужную часть, после поворота камеры смотрите на текстуру.

Треугольник в уголке:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_02.jpg
В игре видны сразу оба, текстура неправильно повёрнута:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_03.jpg

Тоже что-то лишнее:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_04.jpg
В игре они пронизывают друг друга:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_05.jpg
(передний план справа)

http://klimaleksus2.ucoz.ru/Files/NEXT/next_06.jpg
Из-за того, что текстура слишком однообразная, просто так на скрине ошибки не видно, поэтому скрина два, при сравнении можно увидеть изменения рисунка в правом углу:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_07.jpg
http://klimaleksus2.ucoz.ru/Files/NEXT/next_08.jpg

На скале вдали:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_09.jpg
Там явно огромный лишний треугольник:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_10.jpg
Причём текстура уж очень странно его облегает, как будто это один разрез…

Тут зачем-то двойное дно:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_11.jpg
В игре отображается без глюков, но только одна из двух текстур, и по-моему, не та:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_12.jpg

В дополнение нашёл ещё подборку треугольников с неправильным ориентированием текстуры или порядка вершин:

Вон там на дне, неправильно окрашен:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_13.jpg
Надо же, но в и игре так:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_14.jpg

На горе – скала вместо снега:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_15.jpg
Можно заметить, если захотеть:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_16.jpg

Вторая битва с колдуньей:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_17.jpg
В игре проверять не стал, всё равно так близко не подлететь.

А тут вообще два рядом с неверными индексами текстур:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_18.jpg

И то, о чём я уже не раз упоминал:
http://klimaleksus2.ucoz.ru/Files/S/lava.3gp
Течёт не в ту сторону!

Продолжаю утверждать, что все эти ошибки можно и нужно исправить. И для этого нам даже не потребуются обратные конверторы моделей, всё реально сделать в RAW виде через WinHex.

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

Программа готова, осталось только внести изменения в справку…




Цитата (nihonjin)
Перевод недословен, иначе был бы абзац


Шутку оценил!

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


…А я вот до сих пор не знаю: что лучше – JPG, который маленького размера зато с низким сжатием и высоким качеством; или же JPG, который большого разрешения, но и с более сильными потерями качества – если они оба одинакового веса?

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


Чую, вряд ли что-то можно найти, основываясь только на данных и в особенности, LOD. Скорее всего, других таких моделей в игре нет вообще, но даже если есть – ставить косвенные условия почти невозможно, ввиду того, что все байты активно используются. Ну разве что цвета оканчиваются на «00», а всё остальное может быть каким угодно случайным.

Цитата (steeldragon)
А почему бы и нет? Тем более я уже нашёл, где это добро хранится - данные с началом от j4.


А мне кажется, что не только там

Цитата (steeldragon)
Поменял половину немного данных (после исправления извлекателя получилось 169 КБ чистого веса) на FF - теперь носороги в Sunny Villa бегают сквозь стены, а Спайро через пол проваливается.


А толку? Надо ж взломать, а не найти.
Вы могли испортить один байт в заголовке – и вообще запороть всю физику.
А могли сдвинуть координату одной вершины (если там вообще вершины…)

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

Но начало неплохое. Попробуйте определить конкретные границы потенциальной области для какого-нибудь уровня.
А потом сужать их…

Цитата (Soul)
Возможно глупость, но всё же:


Смешно, смешно.

Цитата (Soul)
1) при запуске он попросит образы оригинальных дисков спайро 1,2,3


ОК

Цитата (Soul)
2) извлечет модели всего, что только ему потребуется (возможно, пересохранит в свой формат), как минимум уровней


да без вопросов

Цитата (Soul)
3) запустит игру


Сюрприз!

О, это мне напомнило, как я искал компилятор для ActionScript – «создание игр на Flash» / «Flash game development». Суть была такова:

1) Скачайте нашу библиотеку (Flixel)
– Легко! Пара мегабайт.
2) Скачайте редактор кода с подсветкой синтаксиса (FlashDevelop)
– В пределах 20 Мб… Да ну их, я и в Блокноте писать могу. Хотя…
3) А ещё вам понадобится дебаггерный флеш-плеер, скачайте с офсайта Adobe.
– Ну раз нужен, скачаю. Подумаешь, не больше десяти метров.
4) Всё это распакуйте, установите, бла-бла-бла, и о да, не забудьте скачать пакет Adobe Flex тоже с официального сайта, и всё готово!
– Oh, c’mon… Это ж 350 Мб !! Блин, они раньше не могли сказать!? Ага, так, мимолётом. Конечно, 350 метров качнуть, прекрасно.
(Ну на самом деле проблема в том, что во Flex входит вся документация на всех языках, исходный код и бинарники под все известные платформы. А то что нужно мне (сам компилятор!!) весит лишь 8Мб, и получил я его случайно вместе с программой Stencyl (которая была больше пятидесяти…), а ещё саму EXE’шку пришлось искать отдельно, ибо там одни JAR’ы без всяких инструкций; да и конфигурировать всё надо было вручную. Пока две проблемы: FlashDevelop не обнаруживает мой инвалидский Flex (какого-то XML не хватает, тщетно пытался скачать…) и компилятор в консоль выдаёт иероглифы вместо русского текста, не пойму как на английский его переключить…) Дракон грозно, но с надеждой смотрел мне в глаза, а я умолял пони потерпеть ещё немного…

Цитата (Soul)
1) спайро все 3 части в 1 игре, как целая история


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

Цитата (Soul)
причем компилировать для различных платформ


*Ещё смешнее*

Цитата (Soul)
2) возможность добавить совершенно новые фанатские главы


Тут главное вовремя остановится, иначе не остановитесь никогда))

Цитата (Soul)
главное указать, что это модификация оригинальных игр, все права не наши и тд и тп


Да это последнее, что будет волновать.

Цитата (steeldragon)
производительность будет ниже плинтуса. Легче, наверное, с нуля написать, и не на GML.


А секёте фишку!

Цитата (steeldragon)
Там ещё ну очень много данных нужно. Как минимум, модели персонажей и информация о их действиях, плюс различные собираемые штучки...


Да кажись, проще будет всё сымитировать. Но тогда и оригинальные образы не нужны!

Цитата (steeldragon)
Я не говорю, что это невозможно, Soul, просто нужно взломать еще столько всего...


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

И да, насчёт вьювера и воды – мне выкладывать так, или проэкспериментировать над Spyro1 и там тоже полупрозрачность взломать?


but nobody came
 
steeldragonСообщение # 447 Понедельник, 12.08.2013, 11:52
Аватар steeldragon
Старейшина Драконов
Редактор
«412»
Где: Не в городе Драконов
Цитата (aleksusklim)
А мне кажется, что не только там…

Возможно. Но по другим неисследованным jump-ам данных ощутимо меньше.

Цитата (aleksusklim)
Вы могли испортить один байт в заголовке – и вообще запороть всю физику.
Моё стирание данных подействовало только на участок поверхности. (Хотя я уже ничему не удивляюсь, после того, как неправильная S3M-модель испортила вообще все текстуры на уровне)

Цитата (aleksusklim)
И да, насчёт вьювера и воды – мне выкладывать так, или проэкспериментировать над Spyro1 и там тоже полупрозрачность взломать?

Давайте выкладывайте. Полупрозрачность в Spyro 1 никуда не убежит, верно?

Цитата (Soul)
http://omnicide.legacy-of-kain.ru/ru/

А интересное у них FAQ:
Цитата
Q: Когда выйдет полная версия игры?
A: О выходе полной версии игры не заявлялось, возможно, это будет в отдаленном будущем, на данный момент работы сконцентрированы на создании версии 0.1. Следите за новостями проекта.

EDIT: Кажется, тогда я действительно попал курсором в заголовок. Нашёл область, действительно отвечающую за физповерхности (забавно получилось, кстати: враг стоящий на яме не отображается на экране, но удары наносит исправно). Возможно, здесь же где-то игра хранит и данные о размещении объектов на уровне.
EDIT2: По смещению j2 хранятся какие-то данные об отображении участков земли. Зануление приводит к исчезновению этих участков с экрана, но поверхности остаются на месте. По j3 вообще 40 байт непонятно чего.


LOADING... 57%

Сообщение отредактировал steeldragon - Понедельник, 12.08.2013, 20:10
 
nihonjinСообщение # 448 Понедельник, 12.08.2013, 23:27
Аватар nihonjin
Дракон Подросток
Редактор
«298»
Где: Не в городе Драконов
Цитата (aleksusklim)
Ну мой же скрин

Ммм?.. Пришлось постараться чтобы понять и заметить.

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

Исправить вручную?.. Но как это лучше осуществить? Допустим, я исправлю все извлечённые SWV'ом текстурки. В таком случае получится ли именно их внедренить обратно? Т.е. есть ли уже или будут ли инструменты для внедрения изменений в субфайлы? Или же всё это надо/лучше делать в raw-файлах(через TileMolester, PGG)? Кстати, во 2й части я нашёл более-менее значительную погрешность лишь в 040.

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

Да нет... вы прикалываетесь? Нет, вообще-то я не исключаю ваш вариант, но я подразумевал, что причина это объяснённый мной ранее "motion sickness".

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

Значить-то значит, но вот что до тайного смысла... Вообщем, имя Zoe имеет греческое происхождение, где означало "жизнь":
http://en.wikipedia.org/wiki/Zoe_(name)
На русском тоже есть статья:
http://ru.wikipedia.org/wiki/%D0%97%D0%BE%D1%8F
которая как бы говорит нам, что русский аналог для "Zoe" это "Зоя". Это может стать аргументом в пользу того, что так и надо переводить, а, например, не как "Зои".

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

Нелогично потому что в оригинале(яп) по-другому или сама фраза/перевод странная?

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

Просто... я ещё не говорил? Мне не очень нравится когда в теме по одной части обсуждают особенности другой (учитывая, что это необязательно). Это вот как то, что вы описывали взломы(хоть и по звуку) в теме озвучивания. Да, я понимаю вашу логику "мол тут и там одна тема", но на мой взгляд это был двойной вред. Во-первых вы нагружали актёров ненужной им мозговыносящей информацией, а во-вторых усложняете поиск этой информации тем немногочисленным, кому она нужна. И раз уж пошли жалобы... то я скажу, что сомневаюсь в необходимости "Перевод игр о Спайро – графика + общие вопросы". Ведь всем этим можно было заниматься и тут, а предназначение(подпись) - "Сборы художников, а также место для любых советов или идей" как-то идилична и могла бы быть воплощена в... остальных темах.

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

Видят. Что значит присутствуют? Если в сценках, то нет. Это типа как закадровое комментирование.

Цитата (aleksusklim)
Так может их так и надо в меню моего патча назвать?

Эээ нет, ведь "стандартной" она будет именно для японцев, а не для нас. Вот поменять названия местами - над этим ещё можно подумать.

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

Не помню, чтобы вы переделывали патч с камерой. Была только одна версия.

Так, я ещё полетал в SWV по первой и немного по второй частям.

Интересно было узнать, что:
1. У маяков спидвеев не хватает частей:
http://nihonjinryuu.narod.ru/SWV/Speedway.jpg
понятно, это же динамический объект.

2. "Дерево жизни" в Beast Makers Home кончается разветвлением:
http://nihonjinryuu.narod.ru/SWV/seimeinoki.jpg
там же рассмотрел и мелкие постройки поодаль от берега.

3. В Dark Passege кривое небо!
http://nihonjinryuu.narod.ru/SWV/DarkP.jpg
в игре так же. Что же это баг или фишка?

Так, теперь вопросы по взлому.
I. Программу MegaTextRip из сообщения #399 можно настроить на экстракцию текста из Spyro2(в т.ч. jap)? Там столько матов батов, что я потонул...

II. Более важное. Когда вы расскажете о методике расширения субфайлов? Скажите хотя бы насколько это будет сложно. Просто SWV конечно здорово, но для практики мне нужнее расширение(для внедрения всех 3D букв, хоть они и не готовы).



①Прогресс перевода и взлома японской версии Spyro 1 смотрите в «плавающем сообщении» и его дубле.
②Сводки по Spyro 2! http://nihonjinryuu.narod.ru/Spyro2/gaikatsu.html.
③Кратко о прогрессе перевода и взлома Spyro 3GH в «сообщении №258», а сборки перевода найдёте в «сообщении №512».
④Проект перевода в vk - «spyro3rus».
~Русская wiki по Спайро~.
~Японская история Спайро~.
 
aleksusklimСообщение # 449 Вторник, 13.08.2013, 00:46
Аватар aleksusklim
фдулыгылдшь
Редактор
«1060»
Где: Не в городе Драконов
Испытал на Spyro2. Иногда с водой кажущиеся проблемы:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_19.jpg
Невероятно, но они и в игре тоже:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_20.jpg

Иногда неверный цвет раскраски:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_21.jpg
Если захотеть, то всё можно увидеть:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_22.jpg
(мало того, так там ещё на одном полигоне она «течёт» вверх!)

На спидвеях странные цвета:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_23.jpg
Тёмные и светлые участки как будто это тени, но тенями их назвать сложно:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_24.jpg
(Кстати да, на светотеневой модели без текстур «вода» теперь отображается полупрозрачно. И это просто альфа = 0.5 без всяких смешиваний, обычная прозрачность)

Иногда с водой чего-то перемудрили:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_25.jpg
Но и в игре так – тусклые и яркие участки + выпадающие треугольники:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_26.jpg

Ещё немного перекрывающихся полигончиков:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_27.jpg
http://klimaleksus2.ucoz.ru/Files/NEXT/next_28.jpg
Неверная раскраска:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_29.jpg

Spyro1, неверная текстура:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_30.jpg
И перекрывающиеся тоже есть:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_31.jpg

С водой из сценки замка вообще интересно получилось: для Spyro2 она полупрозрачная и нормально выглядит, а для Spyro3 она осталась такой же чёрной, как в первой версии программы.
Но в Spyro2-таки это вода:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_32.jpg

Выяснилось, что нулевой байт перед «FF» разделителем в заголовке куска – ещё не окончательный факт того, что данный кусок именно движущаяся поверхность воды, и что ещё высоту надо делить на четыре.
Просто оба туманных уровня из Spyro2 оказались сплющены и разбиты. Так там вообще во всех кусках модели (LOD нет) перед «FF» стояли нули. На уровне из третьего мира есть движущаяся вода, но там тоже был ноль, как и на всей остальной модели.
Получилось, что либо вода будет летать в воздухе, либо два уровня из Spyro2 будут ужасно выглядеть…
Нет уж, беру третий вариант! Ноль перед FF – это лишь подозрение на то, что данный кусок может быть поверхностью воды, и требует дальнейшего исследования. А оно весьма простое: у реальной поверхности воды для всех полигонов четыре байта с девятого по двенадцатый всегда нулевые. Ну полигон задаётся четырьмя квартетами, и если третий совсем нулевой (при том что в заголовке перед FF тоже ноль) для каждого полигона этого кусочка, то тогда да – это поверхность воды. Иначе это обычный кусок модели, и высоту нужно не делить на 4, а умножать на 2.
Модифицировал программу, и всё заработало без проблем.

..Но вода в этом уровне всё равно странная:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_33.jpg
Хорошо что так не везде, а только на втором этаже этого фонтана.

Кстати, хоть Game Maker и отображает прозрачные части модели, он делает это очень неаккуратно (о чём я ранее предупреждал). Когда вы смотрите через стекло (или воду и так далее) на непрозрачную землю или небо – всё отрисовывается нормально. Но стоит поставить камеру так, чтобы через стекло было видимо другое стекло или вода – неизбежны ошибки. Произойдёт одно из трёх: либо (о чудо) всё нарисуется правильно, либо вторая прозрачная поверхность будет не видна (словно вы смотрите через волшебные очки в параллельную реальность), либо ещё хуже – какие-то полигоны будут нарисованы, а какие-то нет.
И с изнаночной стороной тоже ошибки: в игре часто вода видима с обеих сторон. Это флаг на полигоне, разрешающий обе стороны. Я его в OBJ передать не смог, и просто транслирую как два полигона (с теми же цветами и текстурой на тех же вершинах), один из которых лицом в одну сторону, а другой в другую. Всё было чудно, пока не появилась полупрозрачность. Теперь при отключённом «culling» отрисовываются обе стороны обоих полигонов, из-за чего поверхность воды становится вдвое непрозрачнее и следовательно, ярче. Но действует только на «обоюдовидимые» участки воды, поэтому включая и выключая изнанку, будет подсвечиваться не вся вода, а только двойная. Полезный глюк…

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

Заметил в Spyro2 два уровня, небо в который не соответствует указанному на портале:

http://klimaleksus2.ucoz.ru/Files/NEXT/next_34.jpg
http://klimaleksus2.ucoz.ru/Files/NEXT/next_35.jpg
http://klimaleksus2.ucoz.ru/Files/NEXT/next_36.jpg
http://klimaleksus2.ucoz.ru/Files/NEXT/next_37.jpg

И да – это те же самые уровни, небо для которых не совпадало и в сценках. Так, надо бы пачку небосводов тоже проверить…

Mad-извлечение запрограммировал. Пришлось указать обоим SpyroWorld_SpyroX, что если при извлечении чего угодно размер вдруг превысил 16 мегабайт, то надо отменять все операции! А то он чуть ли не весь WAD мне вместо модели копировал.
Ограничение слабое (можно до двух мегабайт сбросить, но тогда лучше сделать отдельную опцию для mad-режима, а новый аргумент вводить в командную сроку по таким пустякам не хочу), но действенное для Spyro1 и Spyro3 – извлекается только то что нужно, ну максимум пару пустых моделей.
Для Spyro2 гораздо хуже, там посерёдке выходит куча мусора, которая как-то прорвалась через ограничения. Выглядит примерно так:
http://klimaleksus2.ucoz.ru/Files/NEXT/next_38.jpg
Ну вряд ли найдутся люди, думающие что это модель из игры? Но всё равно, mad-mode это крайняя мера, если на руках уж очень экзотическая версия Spyro.

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




Цитата (steeldragon)
Давайте выкладывайте. Полупрозрачность в Spyro 1 никуда не убежит, верно?


Хороший аргумент.

Цитата (steeldragon)
EDIT2: По смещению j2 хранятся


У «j2» нет смещения, есть «j1» и «j1+j2», «j1+j2+j3»…
Или вы имеете в виду то место, где задаётся j2?

Цитата (steeldragon)
хранятся какие-то данные об отображении участков земли. Зануление приводит к исчезновению этих участков с экрана, но поверхности остаются на месте.


!?

С «j2» начинается САМА модель, а именно – указатели на части (в файле локальные (0x0000XXXX), в памяти абсолютные (0x800XXXXX)). Вы ещё скажите, что если занулить все, кроме одного, запомнив один из удалённых, а потом вместо последнего вписать запомненный, то появится прежний участок земли?
Ну а при забивании мусором игра вылетает, верно?



Я вам предлагаю исследовать физические поверхности в тот момент, когда мы точно знаем, что и где поменялось. Например после некоторых сделок с Толстосумом.
Или в японской и обычной версиях Spyro1 – там где мы визуально знаем, что именно поменялось. Сравните файлы какого-нибудь уровня, где был отмасштабирован один уступчик (без добавления полигонов – чистое изменение координат вершин).
Потом найдите отличающийся участок (в вашей подозрительной области), и если привести его в обычной к виду как в японской – то в игре уступ тоже должен стать крупнее (дракон будет ходить по воздуху).

Цитата (nihonjin)
Допустим, я исправлю все извлечённые SWV'ом текстурки.


Are you crazy!?

…О чём я толкую, это ОДИН бит в двоичных данных модели, VRAM вообще трогать не придётся!

Цитата (nihonjin)
"motion sickness".


А-а-а)))

Цитата (nihonjin)
Вообщем, имя Zoe имеет греческое происхождение, где означало "жизнь":


А вы знаете, что значит «Z.O.E.», ведь знаете?

Цитата (nihonjin)
И раз уж пошли жалобы... то я скажу, что сомневаюсь в необходимости "Перевод игр о Спайро – графика + общие вопросы". Ведь всем этим можно было заниматься и тут, а предназначение(подпись) - "Сборы художников, а также место для любых советов или идей" как-то идилична и могла бы быть воплощена в... остальных темах.


Если вы серьёзно, то я готов хоть все четыре темы в одну слить. Или разбить каждую ещё на десять. Мне пофиг, где писать.

Цитата (nihonjin)
Видят. Что значит присутствуют? Если в сценках, то нет. Это типа как закадровое комментирование.


А что для них сама сценка?

Цитата (nihonjin)
Была только одна версия.


А мне кажется, было две… По крайней мере на моём сайте два файла, один с приставкой «_beta»

Цитата (nihonjin)
Что же это баг или фишка?


Издеваетесь? Оно такое красивое!


but nobody came
 
steeldragonСообщение # 450 Вторник, 13.08.2013, 10:30
Аватар steeldragon
Старейшина Драконов
Редактор
«412»
Где: Не в городе Драконов
Цитата (aleksusklim)
У «j2» нет смещения, есть «j1» и «j1+j2», «j1+j2+j3»…

Цитата (aleksusklim)
С «j2» начинается САМА модель, а именно – указатели на части

Я имел в виду, по смещению j1+j2.
...
Мой извлекатель файлов работает как-то неправильно... Лучше заново перепишу...

Цитата (aleksusklim)
Я вам предлагаю исследовать физические поверхности в тот момент, когда мы точно знаем, что и где поменялось.

О'кей, так и сделаю.

EDIT: Переписал распаковщик. Эти "подозрительные" данные начинаются там, где перед jump-ом ещё есть "pattern"-ы.
EDIT2: Даже не знаю. В Spyro 2 обыкновенном данные с началом где задаётся j7 и в Spyro 2 японском различаются (И к тому же разного размера!). Пробовал поменять целиком - игра виснет (не эмулятор, а именно игра!). Скопировал небольшой кусочек из обычной версии, по моему мнению, с того же участка, и вставил в японскую. Почти все взаимодействия с поверхностью на этом участке "слетели", но на небольшом кусочке поверхности есть эффект: https://dl.dropboxusercontent.com/u....nd1.jpg
Попробую локализовать.


LOADING... 57%

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

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

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