Суббота | 05.07.2025 |23:00
Приветствую Вас Гость Мира Спайро | RSS
Результаты поиска
aleksusklimСообщение # 331 | Тема: Перевод Spyro 3: Текст Воскресенье, 14.07.2013, 18:15
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата (steeldragon)
Мой браузер, например, не так уж и виснет на загрузках базы, секунды три, не больше...


На "gh.txt" !?
 
aleksusklimСообщение # 332 | Тема: Перевод Spyro 3: Взлом и программы Понедельник, 15.07.2013, 00:21
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Гляньте-ка, вам это ничего не напоминает? Оу да, это оно!

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

UPD:

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


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

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

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

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

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

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

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

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




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

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


Да нет ещё.




UPD:

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

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

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

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

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

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

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


but nobody came

Сообщение отредактировал aleksusklim - Вторник, 16.07.2013, 19:07
 
aleksusklimСообщение # 333 | Тема: Перевод Spyro 3: Взлом и программы Среда, 17.07.2013, 00:16
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата (aleksusklim)
С основной моделью уровня новая проблема. Она перекрашивается!


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

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

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


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

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

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

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

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

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

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

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

Awesome!

UPD:

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

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




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


but nobody came

Сообщение отредактировал aleksusklim - Четверг, 18.07.2013, 00:50
 
aleksusklimСообщение # 334 | Тема: Перевод Spyro 3: Текст Четверг, 18.07.2013, 00:52
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Рецензия на прошлые тексты:




Цитата (alteya)
Привет Спайро! Когда я делаю вот так:


Мы уверены, что больше ни одна фея не «сохраняет»? Charmed Ridge, Frozen Altars…

Может следует оставить «фея» («Когда фея делает вот так:») ?

Цитата (alteya)
О-ё-ёй! О-ё-ёй! Ты можешь нам помочь?


Начало в оригинале смотрится и звучит лучше. Надо бы чуток сократить, до:
«Ой, о-ё-ёй!»
??

Цитата (alteya)
Полчища злых носорогов


Вернём «ferocious» = «свирепых» ? А то просто «злых»…

Цитата (alteya)
Those pesky rhynocs are back again, but I'm sure you'll soon sort them out.
Эти вредные носороги снова вернулись, но я уверен, что ты скоро с ними разберешься.


Заменим конец на «… ты быстренько с ними управишься.» ?

Цитата (alteya)
Ему, в отличие от Агента 9, ничего не мешает сказать это «нехорошее слово»!


Может дело в интонации мартышки…

Цитата (alteya)
Сейчас я отдышусь, и дам пинка тому парню.


Запятую бы надо убрать.

А вместо «и дам пинка» я бы поставил «и сам навяляю»!

Цитата (alteya)
We showed those two bullies. If they hadn't outnumbered me two to one, I'd have finished them off ages ago.
Мы проучили этих хулиганов. Не будь их двое, я бы давно их прикончил.


…Мне не даёт покоя логическая ошибка: «не будь их двое, я бы их прикончил»
А сколько он хотел? Троих или десять? Явно не «одного», ведь он собирался прикончить «их», а не «его».
Но поставить «его» будет языковой ошибкой, ибо местоимение неопределенно.

Ну «outnumbered» это как бы численный перевес. А «two to one» это «два на одного».
Здесь даже не столько плохо, что их было двое – главное, что у них численное превосходство = что не было напарника, чтобы биться «двое на двое» на равных.

В итоге что-то вроде «А не напали бы вдвоём на меня одного – я б уже год назад их прикончил». (хоть там и «ages» = век/эра, по-русски «год назад» распространённее чем «в прошлом веке» или даже «сто лет назад»)

Цитата (alteya)
Благодарю тебя за спасение моего города.


«Тебя» можно опустить. Он проговаривает «thank you» в одно слово, без хоть какой-то важности «you».

Цитата (alteya)
я награждаю тебя одним из знаменитейших


А не слишком ли заумное слово?

Цитата (alteya)
Whoo I'm dizzy.
Ооохх! У меня кружится голова.


{-15} !! Честно, оно того не стоит. Предлагаю короче и проще:
«Оох, мне дурно.»

Цитата (alteya)
Тебе не попадались огромные курочки? Носороги пытались их всех слопать.


Конец классный, а начало слишком похоже на
Цитата (alteya)
Тебе огромные курочки не встречались?

В одном случае неплохо бы сменить падеж, вроде «огромных курочек» перефразировать.

Цитата (alteya)
To Whom it May Concern: Sheila the Kangaroo is currently otherwise detained -- by me. Please return in a few years.\ -The Sorceress
Тем, Кто Интересуется: Кенгуру Шейла сейчас заперта -- у меня. Возвращайтесь через несколько лет.\ -Колдунья


Каков дословный перевод «otherwise detained»? На «в заключении» похоже больше, тем более что «return in a few years» намекает на тюремное заключение с осуждением на определённых срок.
Эй, а может дерзнём:
«Тем, Кто Интересуется: Кенгуру Шейла уже приговорена мной и мотает срок. Возвращайтесь через пару лет.\ -Колдунья»

Цитата (alteya)
Подожди! Марко послал тебя сюда? У меня есть приказ на его задержание.


Какая-то растянутая фраза…
«Постой! Марко послал тебя сюда? А у меня приказ на его задержание.»
Но «послал тебя сюда» и «задержание» всё равно тя-а-анут! Ещё:
«Постой! Тебя прислал Марко? А у меня есть приказ на его арест.»
(Да, вернул «арест» – он чётко завершает реплику, а не как «за-дер-жа-ни-е»)

Цитата (alteya)
If you see Marco please tell him I've moved out.
Если увидишь Марко, скажи ему что я переехала.


В упор не понимаю смысла этой фразы…
У «moved out» точно нет ещё значений?

Цитата (alteya)
Эй Спайро, тут повсюду носороги. Может, я смогу побыть в тишине и покое на вершине той башни...


Во-первых, я бы убрал запятую после «может», а во-вторых, вряд ли башня вот так видна из их комнатки – лучше исключить слово «той». `той` - это не игрушка, а междометие! А работа не волк, а `ворк`!

Цитата (alteya)
Marco Марко


Так Флин?

Цитата (alteya)
Увы, я потерял свою любимую, ее охраняют злые носороги на вершине вон той башни. Ты можешь ее для меня вызволить?


Нам явно понадобится программа, которая выловит все Ё-шки))

Цитата (alteya)
Внимание дракон: если ты хочешь еще хоть когда-нибудь увидать своего дружка паршивого кота, тебе лучше сразу уйти отсюда!\ -Колдунья


«… то лучше сразу иди отсюда!» – ??

А «дружка-паршивого-кота» или что-то подобное, я точно помню, что когда-то кому-то предлагал… Главное, чтобы потом не совпало:
«I've got your slow-witted furball friend in a cage, and you're going to be next!»

Цитата (alteya)
Здорово, Спайро. Я отыскал арену гладиаторов…


Коли хотим Хантера «упростить», напишем «Здарова»?

Цитата (alteya)
…Just come back here when you're up for a challenge.
…Приходи, когда подготовишься получше.


«Созреешь для реального дела» – ?

Цитата (alteya)
{аж -24}


О, кстати, существует метод безболезненно и более-менее быстро ДЕЛИТЬ нашу {Разницу} между всеми текстами одного персонажа-объекта. То есть если в одной фразе {+5}, а в других {-2} и {-3}, то всё пучком.
Какие фразы принадлежат каким объектам можно выяснить здесь:
http://spyro3-rus.googlecode.com/svn....ish.txt

Цитата (alteya)
catch all the lizards without wiping out and before time runs out


Ещё раз, что обозначает «wiping out»? Упасть со скейта?
Тогда как понимать «Score as many points as you can until the timer expires or you wipe out.»
К чему здесь относится «or»?

«Набирай очки пока не выйдет время, ИНАЧЕ случится wipe out»
v.s.
«Набирай очки пока не выйдет время ИЛИ пока не случится wipe out»

А ведь ещё «…I had almost pulled it off when I suddenly ran smack into this dragon egg and wiped out! OK, I made that up…»
Ну и?

Цитата (alteya)
Точное время уточнить в игре!


Три минуты. (2:59:59)

Цитата (alteya)
Go get'em, Spyro!
Поймай их, Спайро! / Давай, Спайро!
Оба варианта неплохи, первый ближе по смыслу, второй «более русский»


Первый! Он ещё идеально эквиритмичен.

Цитата (alteya)
Оой, как жаль...
Ох, отстой...


Вначале поменять междометия местами. А потом видно, что «ой» рифмуется с «отстой»!

Цитата (alteya)
You can go for the course record now, if you want. Whenever you hop on a skateboard, a timer will start. Score as many points as you can until the timer expires or you wipe out. Good luck


Сразу переводите дважды. Интонация там разная:
http://klimaleksus2.ucoz.ru/Files/SOUNDS/source/hunter_123.mp3
http://klimaleksus2.ucoz.ru/Files/SOUNDS/source/hunter_138.mp3
(но вы наверно знаете)

Цитата (Washington)
1. "К ферме раков" - здесь будет лучше звучать "НА ферму раков"


Бесполезно мутузить ФермуРаков, ибо это неутверждённое название.

Цитата (Washington)
"Король Рак" - так не пойдёт. Либо правильно оформить приложение ("Король-Рак", через дефис), либо указать, чей он король ("Король Раков").


Crawdad King не лучше самого уровня.. ждём голосования, а пока лучше через дефис.

Цитата (Washington)
(да, меня укусил Клименко)


Хи-хи-хи.

Цитата (Washington)
Если ты пройдешь в любую арку наподобие этой


Чем эти воротца похожи на арку?

Цитата (Washington)
"Сэр" и обращение на "ты" допустимо только в том случае, если разговаривают два знакомых между собой рыцаря.


))

Цитата (Washington)
Я думаю, что-то отнимает магию у этого мира. Говорят, что с того момента, как драконы ушли отсюда тысячу лет назад, становится только хуже.


Перенести: «как тысячу лет назад драконы ушли отсюда». А то было, будто «тысячу лет назад» это ответ на вопрос «ушли КУДА?»

Цитата (Washington)
Несколько вольный перевод от меня. Решайте, чей лучше.


У нас уже больше пяти этих переводов, их бы в одном месте собрать…

Цитата (Washington)
Это просто подарок судьбы


Договорились же, что в «paid a fortune» нет никакой «судьбы»…

Цитата (Washington)
Четверг жы. Вторник - "Tuesday".


LOL !




+ несколько мыслишек:

А если Хантеру к «Здарова» и «тя» добавить «-нить» вместо «-нибудь»? Если конечно хоть раз понадобится…

«Sleepy head» = «соня» в прямом переводе. Это для яйца в Spooky Swamp.
Кстати, как будем переводить список яиц и их имена? Вместе с текстами или потом отдельно?

И ещё, по поводу змеиного хвоста, о котором идут споры в теме Озвучивания:
http://www.spyropedia.ru/w...._02.jpg
Подпись Спайропедии:
«Сбывается страшное проклятие хвоста-змеи.»

Цитата (alteya)
rhynoc - это как и byrd?


НосорЫги?


but nobody came

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

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

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

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

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

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

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

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

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

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

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


but nobody came

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


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

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


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

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

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

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

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




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

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


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


but nobody came
 
aleksusklimСообщение # 337 | Тема: Перевод игр о Спайро – озвучивание. Понедельник, 22.07.2013, 16:52
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
!! Братан.
И нас не двое, вот отрывок репортажа канала Россия24:
http://klimaleksus2.ucoz.ru/Files/2/manoeuvre.mp3

Вашингтон, я согласен, что правила русского языка по части ударений уже давно не совпадают с реальной речью, но мой вопрос в другом: с чего вы взяли, что «манЕвренный» употребляется хоть сколько-нибудь чаще, чем «манЁвренный»? Я всегда слышал только через Ё. И все так говорят…
У вас есть какие-то доказательства того факта, что вариант с Ё устаревает и в общественной речи применяется редко?
 
aleksusklimСообщение # 338 | Тема: Перевод Spyro 3: Обсуждения Четверг, 25.07.2013, 01:38
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата (alteya)
Откуда вообще взята эта концепция «прилагательное + существительное»? Из оригинальных названий? Но ведь структура английского языка отличается от нашего, у них одно и то же слово может быть и прилагательным, и существительным, и глаголом, и чем хочешь.


Эх.. знаем-знаем. «Twilight Sparkle».
Причём имя здесь Twilight, а Sparkle что-то вроде фамилии.
При переводе «Сумеречная Искорка» существительное естественно становится именем Искорка, а роль фамилии или характеристики играет Сумеречная.

В результате имеем «Twilight = Искорка» (по всем диалогам, ибо по фамилии её величают сравнительно редко)

В оригинале же её полное имя – «Искрящиеся Сумерки». Но в переводе явный косяк, что «Сумерки» не женского и вообще никакого пола, а множественное число. Ну или Искрящийся Сумрак, но это мужское имя.
Либо же все обращаются к ней «Сумеречная», что в русском языке звучит скорее как титул или просто шутливое прозвище. Но не как нормальное имя…

(Кажется, с «Rainbow Dash» дела обстоят не лучше, и «Rainbow» тоже прилагательное)

Короче…

Откуда концепция прил+сущ? Из оригинальных названий, из метода построения оригинальных названий. Приоритет концепции идёт наравне с «Xxx Yyy Home» или «Xxx’s Yyy», временами года для Spyro2 и суток для Spyro3.

Вы так настаиваете на том, чтобы убрать это правило? Первым была Солле Вилла как исключение, но вы хотите явно спасти ещё и её, сделав правило по Пеклу Вулкана?
Тогда уже встанут под сомнение другие наши концепции, дойдёт и до того, что Ранняя Весна станет подходить…

Мой вердикт: если вы сделаете «Пекло Вулкана», то убьете глобальную концепцию прил+сущ, и впредь на неё уже не нужно будет ориентироваться. Даже наоборот – придётся ставить разномастные названия, чтобы размыть концепцию сильнее (чтоб это самое Пекло не обернулось белой вороной)

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

Ладно, если хотите снести прил+сущ, то делайте это сейчас и быстро. А не то поздно будет.

Берёте грех?
 
aleksusklimСообщение # 339 | Тема: Перевод Spyro 3: Взлом и программы Суббота, 27.07.2013, 23:41
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
steeldragon, отбой, уже не нужно. Я и сам допёр, что с небом делать…

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




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







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

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

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

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

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




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

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

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


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





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


Сообщение отредактировал aleksusklim - Воскресенье, 04.08.2013, 02:10
 
aleksusklimСообщение # 340 | Тема: Перевод Spyro 3: Взлом и программы Вторник, 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
 
aleksusklimСообщение # 341 | Тема: Перевод Spyro 3: Взлом и программы Вторник, 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
 
aleksusklimСообщение # 342 | Тема: Перевод Spyro 3: Взлом и программы Среда, 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
 
aleksusklimСообщение # 343 | Тема: Перевод Spyro 3: Взлом и программы Пятница, 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
 
aleksusklimСообщение # 344 | Тема: Перевод Spyro 3: Взлом и программы Суббота, 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
 
aleksusklimСообщение # 345 | Тема: Перевод Spyro 3: Взлом и программы Понедельник, 12.08.2013, 00:36
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Всё вышло весьма неплохо.
Однако моё «недоумножение» никак не давало мне покоя. 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
 
Поиск:

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

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