Понедельник | 14.10.2024 |04:42
Приветствую Вас Гость Мира Спайро | RSS
  • Страница 1 из 1
  • 1
Модератор форума: nihonjin, aleksusklim, alteya, Томас  
Перевод Спайро 1: Взлом и программы
ТомасСообщение # 1 Суббота, 24.10.2020, 20:00
Аватар Томас
Яйцо
Редактор
«352»
Где: Не в городе Драконов
(Здесь будут главные ссылки)

Сообщение отредактировал Томас - Суббота, 24.10.2020, 20:11
 
ТомасСообщение # 2 Суббота, 24.10.2020, 20:02
Аватар Томас
Яйцо
Редактор
«352»
Где: Не в городе Драконов
Цитата steeldragon ()
В чём проявляется то, что модель работает некорректно, из памяти не выгружается и т.д.? Допустим, я могу добавить одну новую букву под любым номером. Поставил, побегал по уровням, работает - вот и думаю, а почему не должно-то работать? Номер её не входит в 426+26 и вообще может быть любым (сейчас - 300-какой-то).


Цитата Serlutin ()
https://drive.google.com/file/d/1SJosSs_LrOqT936i8HVNY050JIup90ZT/view?usp=sharing


Цитата steeldragon ()
В общем, я сломал счётчик букв и теперь в меню паузы и в текстах balloonist-ов можно хоть всеми символами от 0x41 до 0x7f воспользоваться. В теории. За порталы отвечает какая-то другая функция, не нашёл пока, так что там только 27 знакомест доступно. Но начало многообещающее.


Цитата Serlutin ()
Это не начало, это конец. Peace Keepers меня убил. Он начинает глючить так, что ты ни одну букву поставить не можешь. Модельки будут пропадать, потому что после 426 + 26, начинаются модели именно этого уровня


Цитата steeldragon ()
А если сдвинуть номера букв подальше? Пробовали?


Цитата Serlutin ()
С помощью проги Алексея, я распаковал все уровни. Собрал номера всех моделей. Нашёл кусок незанятых. Поместил туда буквы... зашёл в Peace Keaper и получил вылет на всех порталах, и на подходе к опеределенному дракону. Эти номера были ответственны за звуки... после номера 512 использовать тоже нельзя, игра перестаёт даже загружаться

Если использовать занятый номер модели, то при загрузке уровня моделька буквы пропадёт и больше не загрузится


Цитата steeldragon ()
А я вручную в radare-cutter шпарю... в общем. Если не трогать порталы, игра работает вполне стабильно. Кажется. Попробовал и порталы подключить - зависает сразу же, как в поле зрения попадает надпись на портале с "невлезающей" буквой. Надо будет потом исходник той программы глянуть, да...


Цитата Serlutin ()
Это декомпилятор? Я этим всем пользоваться не умею. Ну а как их не трогать? Если переводить, то нормально, а не кое-как. Чтоб 32 буквы были


Цитата steeldragon ()
Дизассемблер, наподобие ps2dis или IDA Pro. Как будто бы я всем этим пользоваться умею! Но приходится... Ну-у, можно и в 27 букв попробовать втиснуться. На первое время. А потом уже - найти решение... если оно вообще есть.


Цитата Serlutin ()
Так если буква совпадёт с моделью, она пропадёт и из меню. Ну вот в моем скрине, там буквы 426 + 33. В Артисанс все отлично работает, но в Peace Keapers буква из меню исчезает. Просто пробел. Потому что ее вытеснила модель уровня


Сообщение отредактировал Томас - Суббота, 24.10.2020, 20:27
 
steeldragonСообщение # 3 Воскресенье, 25.10.2020, 14:52
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Вот мои наработки по взлому.
В архиве много чего, но не думаю, что он будет прямо вот так сразу полезен и понятен.
Поэтому прикладываю патч - чтобы эти же наработки были в более доступной форме.

---устарело---
Хорошо бы, кстати говоря, проверить этот патч. Он переопределяет буквы с A по F на новые номера - поэтому в игровых текстах много пробелов. Это не баг, просто неаккуратный взлом. Что нужно - пройтись по всем уровням, поговорить со всеми драконами и убедиться в том, что надпись в меню паузы "ABCDEF" не портится (после загрузки нового уровня) и игра не зависает (либо на меню паузы, либо на разговоре с драконами).
----

P.S. Дополнение: про отрисовку строк в меню паузы.
Смещения строк на экране, похоже, заданы прямо в коде. Если посмотреть в дизассемблере, где упоминается "INVENTORY", то находится вот эта функция.
Выделенное значение - смещение строки на экране по горизонтали. Похоже, для остальных строк это значения регистров, которые ниже в коде упоминаются в "sw _регистр_, 0x(var_128h)". Меняя "0xbf" здесь, можно подвигать строку по экрану.
...к сожалению, именно это значение применяется ещё и на "QUIT GAME", поэтому эти две надписи двигаются друг за другом.

=UPD (26-10-2020)=
Сделать так, чтобы порталы перестали заменять "лишние" буквы на запятые, несложно. Проблема кроется в этом самом совпадении номера буквы и номера модели. Даже цифры совпадают с уже существующими номерами моделей! (поэтому, похоже, порталы заменяют на запятые и их). Каким-то образом нужно найти 6 номеров, которые ничем не заняты...

P.P.S. А, да, и вся "таблица соответствия" шрифта в Spyro 1 - это прибавление 0x169 (361) ко значению символа - получается номер модели с буквой. Например, "A" = 0x41 = 65. 65+361 = 426.


Сообщение отредактировал steeldragon - Суббота, 07.11.2020, 14:47
 
ТомасСообщение # 4 Понедельник, 02.11.2020, 22:27
Аватар Томас
Яйцо
Редактор
«352»
Где: Не в городе Драконов
Цитата Томас ()
Товарищи хакеры, а что насчёт европейки? Звук, конечно, в моно. Но там есть пара лишних умляутов?


Цитата steeldragon ()
Вроде как есть - 5 штук...


Цитата Томас ()
Если это считается как-то раздельно, буквы ф, ъ, э, ю – для порталов не нужны


Цитата steeldragon ()
Да нет, эти 5 рисуются и на порталах. Только там какая-то дополнительная штука, рисующая эти 5 символов поверх предыдущего. А так - да, раздельно, для порталов и для всего остального текста - две разные функции-обработчики.


Цитата Томас ()
А что если ненужные для порталов буквы поставить в конец списка моделей? Это поможет?


Цитата steeldragon ()
Не совсем понимаю, что это вообще должно дать...

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


Цитата Томас ()
Так понимаю, если выйти за 26 номер, то меню не парится, но парятся порталы. А так буквы для порталов будут на приятных игре местах


Цитата steeldragon ()
Верно, но 32 - 4 = 28. А два нужных, но не влезающих символа поставить на место дополнительных?


Цитата Томас ()
Например да. На крайняк, умляуты разумляутить.

Два невлезающих поставить вместо точки и запятой. А те – пихнуть ещё дальше по списку, потому что они для меню


Цитата steeldragon ()
Проверил - точка тоже занята, увы. Придётся с умляутами возиться.


Цитата Томас ()
В американке вроде ещё было двоеточие


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


Цитата Томас ()
Ещё можно пожертвовать буквой «ц». «Сокровищница Гнасти» – наверняка и на портал не влезет.

Букву «ё» сделать через умляут, прям по назначению. А шапку «й» поставить тоже диакритикой, вместо надстрочной тильды.


Цитата Serlutin ()
На портал влезло. А вот в инвентарь ну совсем никак. Уменьшал как мог, остальные почти влезли.
 
steeldragonСообщение # 5 Четверг, 05.11.2020, 19:09
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Подготовил пробный комплект программ для перевода.
Архив распаковать в пустую папку.

Порядок работы с комплектом:
Прежде всего нужно скопировать образ диска европейской версии игры в папку и переименовать его в spyro.bin.
Также нужно установить Python 3:
64-бит версия: https://www.python.org/ftp/python/3.7.9/python-3.7.9-amd64.exe
32-бит версия: https://www.python.org/ftp/python/3.7.9/python-3.7.9.exe

Если у вас 64-битная система - установите 64-бит версию. Если 32-х или вы не знаете - 32-бит версию.
При установке отметьте флажок "Add Python 3.7 to PATH".

В папке files - исходные файлы перевода. Сейчас это:
папка goldfont с 3-д буквами,
файл exe-text.txt, в котором содержится текст перевода,
symbols.cfg, в котором задана таблица соответствия,
и text-map.cfg, в котором хранятся данные о тексте.

Примеры файлов поставляются с комплектом.

Для того, чтобы получить образ диска с переводом, запустите сначала clean.bat, а потом apply-all.bat если у вас Windows, или apply-all.sh если Unix.
Новый образ диска будет назван test-spyro1.bin.

Теперь что делать с файлами:

В goldfont нужно скопировать сконвертированные модели букв.
Называть файлы нужно как номер.bin, где номера
365-369: Надстрочные знаки,
426-451: Основные буквы, которые можно использовать на порталах,
452-456: Дополнительные буквы, которые нельзя использовать на порталах.

exe-text.txt и text-map.cfg зависят друг от друга.
В text-map.cfg нужно писать адреса и размеры строк. Находятся они с помощью hex-редактора вроде WinHex или wxHexEditor. Сначала распакуйте образ диска (ниже пояснено, как), затем откройте hex-редактором файл SCES_014.38. Размеры строк кратны 4, нули тоже считаются.
Пример

В exe-text.txt - пишется перевод строк под оригинальными.

После того, как вы заполните text-map.cfg, текст извлекается так:
1) Откройте командную строку.
2) Перейдите в папку с переводом:
cd /D Z:\\путь\до\папки\перевода
3) Распакуйте файлы из образа диска командой:
python .\tools\cd-unpack.py spyro.bin
4) Выполните команду:
python .\tools\nts-editor.py .\cdroot\SCES_014.38 .\files\text-map.cfg .\files\exe-text.txt extract

Если все сделано правильно, exe-text.txt должен обновиться.

В symbols.cfg задана таблица соответствия:
буква=байты
Байты задаются в hex виде:
41-5A: основные буквы,
5B-5F: дополнительные буквы,
61-65: надстрочные знаки.


Сообщение отредактировал steeldragon - Понедельник, 16.11.2020, 08:25
 
steeldragonСообщение # 6 Понедельник, 09.11.2020, 17:50
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Как работать с 3д - шрифтом:

Буквы в формате .obj находятся в папке .\files\goldfont-src\obj

Сначала нужно сконвертировать буквы в формат ply.
1) Откройте командную строку.
2) Перейдите в папку с переводом:
cd /D Z:\\путь\до\папки\перевода
3) Выполните команду:
python .\tools\obj2ply.py .\путь\до\.obj имя_нового_файла.ply

Потом - сконвертировать в игровой формат:
4) Выполните команду:
python .\tools\3d\goldfont-import.py .\путь\до\.ply имя_нового_файла.bin масштаб

Для букв в комплекте подходит масштаб около 1.55.

Ну и в конце концов, нужно переименовать получившийся .bin файл в "номер_нужной_буквы.bin" и переместить его в папку .\files\goldfont.

[UPD: 10-11-2020]:
Весь текст из exe-файла.


Сообщение отредактировал steeldragon - Понедельник, 16.11.2020, 08:19
 
affzmasterСообщение # 7 Воскресенье, 15.11.2020, 17:33
Стрекоза
Новопоселенец
«0»
Где: Не в городе Драконов
Hello, I'm Brazilian and I'm working in the spyro the dragon translate.
I'm here to ask you for help, i saw the spyro 2 translate and its awesome.
I don't have anyone tool or something seem.
I you have any information that can be handy, please help us.
I want find the font 3d to create something.
Thank very much!
"Привет, я бразилец и работаю над переводом (Spyro the Dragon).
Я здесь, чтобы попросить вас о помощи, я видел перевод Spyro 2, и это потрясающе.
У меня нет ни у кого инструмента или чего-то вроде.
Если у вас есть любая информация, которая может быть полезна, пожалуйста, помогите нам.
Я хочу найти шрифт 3d, чтобы что-нибудь создать.
Спасибо большое!"


Я люблю трудизир PSX(Amo traduzir jogos de PSX)!
 
steeldragonСообщение # 8 Понедельник, 16.11.2020, 08:22
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
affzmaster, use this toolset to translate this game.
Instructions how to use it can be found there and there, sorry, it is only on Russian.

affzmaster, используйте этот набор, чтобы переводить игру.
Инструкции по его использованию можно найти тут и тут, извините, но они только на русском.
 
affzmasterСообщение # 9 Вторник, 17.11.2020, 22:48
Стрекоза
Новопоселенец
«0»
Где: Не в городе Драконов
Thank you very much, this can be helpful ^^

Большое спасибо, это может быть полезно ^^


Я люблю трудизир PSX(Amo traduzir jogos de PSX)!
 
ViToTiVСообщение # 10 Воскресенье, 20.03.2022, 16:56
Новорожденный Дракон
Житель Города
«22»
Где: Не в городе Драконов
нашёл у себя прогу, которую делал для себя пару лет назад для "Spyro the Dragon"- распаковщик WAD (понятное дело что у вас он давно сделан) но с функцией автоматической конвертации всех диалогов в WAV и обратно   Скачать




Сообщение отредактировал ViToTiV - Воскресенье, 20.03.2022, 16:57
 
steeldragonСообщение # 11 Пятница, 21.07.2023, 19:26
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Опубликую тут некоторые смещения для текста, чтобы не потерять потом.
(см. предыдущую иллюстрацию)

Исправления для перевода меню паузы.
Есть два типа значений - 1) горизонтальная позиция строки, здесь всё понятно, и 2) количество букв в ней, влияет на то, сколько букв будет двигаться при выделении. Если это значение больше, чем есть букв, выделение залезает на другие буквы и символы.



>> (Serlutin) Peace Keapers буква из меню исчезает. Просто пробел. Потому что ее вытеснила модель уровня
26+2 вроде бы работает в Peace Keepers, 26+3 уже исчезает. В Beast Makers не работает уже и 26+2, так что такой хак становится почти что бесполезен.

-------------------
Может пригодится:
Проект декомпиляции Spyro 1
Исходники SpyroEdit


Сообщение отредактировал steeldragon - Среда, 24.04.2024, 13:47
 
  • Страница 1 из 1
  • 1
Поиск:

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

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