Большой пост про мой перевод Front Mission 2089: Border Of Madness на русский + отчёт по прогрессу
Всем привет! За тот небольшой период времени, прошедший с последней новости, произошло множество событий, о которых я вам сейчас и расскажу.
Начнём с того, что я активно сотрудничаю с командой английского перевода. Недавно к их дискорд-каналу присоединились ромхакер New Gba XL и переводчик Wanwanderer88.
Работа возобновилась и мы стали выполнять накопившиеся за долгое время задачи. У нас была проблема с графикой игры, часть которой (названия миссий) была сжата, но нуждалась в переводе. Поэтому New Gba XL (а именно такой ник у ромхакера) предложил использовать Tinke — программу для распаковки игр для Nintendo DS.
(Сам я для обработки графики использовал NitroPaint)
Проблемы со спрайтами названий миссий это не решило, но оказалось, что (как я думал) сжатые сплэш-скрины прекрасно открывались в Tinke:
Небольшое отступление №1. Как именно работает графика на Nintendo DS?
Каждый спрайт разделён на 4 файла:
*.NCLR (Nitro CoLor Resource) - палитра (4-х битная)
Графика на DS использует систему тайлов (разделение спрайтов на части для ускорения рендеринга) для показа изображений:
*.NCBR (Nitro Char Graphics Resource) - тайлы в чистом виде/тайлсет:
*.NCER (Nitro CEll Resource) - данные спрайта:
*.NANR (Nitro ANimation Resource) - данные анимации:
Первым же делом, как только у меня появилась возможность менять сплэш-скрины, я сделал это:
Всё протестировав, я начал их по-настоящему переводить:
Но тут меня ждала ещё одна подлянка: у всех спрайтов был лимит в 16 цветов (который я не учёл), и поэтому мне пришлось вручную их перекрашивать.
Зато теперь всё работает:
Цветные буквы!
Недавно я нашёл редактор сохранений для Front Mission 2089 и решил немного с ним поиграться. Выдав себе самый сильный мех, я зашёл в игру, начал бой и получил такое сообщение:
До этого предполагалось, что в игре цветного текста вообще не было, поэтому я сразу пошёл проверять файлы игры.
В итоге я обнаружил строки, которые отвечают за это сообщение:
{EE A0 84 04}{EE A3 B8 D3}{93 1C}{EE A3 B7 EE}Information{EE A3 B9 EE} {EE A0 85 0C}状態異常の為、行動できません。
Небольшое отступление №2. Системные коды FM2089
Они выглядят примерно так: {EE A0 81 00} (ссылка на имя главного героя).
Эти коды могут ссылаться на значение в системе, выполнять определённое действие или быть предназначены для форматирования текста.
Мне захотелось узнать, какой из кодов меняет цвет текста. Поэтому я решил тестировать каждый код отдельно.
Оказалось, что {EE A0 84 04} проигрывает звук ошибки:
Дальше я стал экспериментировать с кодами {EE A3 B8 D3}{93 1C}, пытаясь понять какой из них меняет цвет текста (спойлер: ни один из них).
Удалив {93 1C}, у меня получилось убрать знак предупреждения, но вместо него появился странный японский иероглиф. Отдельно знак вывести не получалось.
Спустя несколько неудачных попыток я наконец-то понял, что отвечает за смену цвета:
{EE A3 B7 EE}
Именно этот код окрашивал слово "Information" в жёлтый.
А чуть позже я смог самостоятельно задать цвет текста:
B# в {EE A3 B7 EE} означает номер цвета:
То есть можно перевести это сообщение в список команд:
{EE A0 84 04} - проиграть звук ошибки.
{EE A3 B8 D3}{93 1C} - создать иконку "внимание" с определённым цветом (синим).
{EE A3 B7 EE} - сменить цвет текста на жёлтый.
Текст "Information".
{EE A3 B9 EE} - сменить цвет текста на белый.
{EE A0 85 0C} - большой отступ.
Текст "状態異常の為、行動できません。".
Но почему-то при использовании код обрезает первые два символа, поэтому для корректного отображения нужно писать:
"В {EE A3 B7 EE} [Штаб]{EE A3 B9 EE}"
Отчёт по прогрессу
Было переведено 3 миссии:
4A - "Удар по вражескому отряду":
4B - "Снайперская операция":
5A - "Преследование":
В процессе перевода:
Миссия 5B - "Перекрытие линий снабжения".
Миссия 06 - "Оборона арсенала".
Миссия 07 - "Охота".
Всем спасибо за поддержку!
P.S. Примерно так я представляю реакцию на этот пост...