Всем привет!
Готовлю русский перевод
Centurion: Defender of Rome для Sega Mega Drive / Genesis. Работа идёт не быстро. Наконец была решена проблема которая в принципе сделала этот перевод возможным, но об этом ниже. Да и летом решил начать делать Чингисхана 2 от Koei и этот проект остановился в текущем состоянии.
Что уже сделано:- Добавлена кириллица в основной игровой шрифт. Латинские буквы сохранены, поэтому оставшийся английский текст не превращается в нечитаемый набор символов.
- Переведена значительная часть меню, команд и сообщений о легионах и флотах.
- Переведены названия провинций, многие имена командиров и правителей.
- Добавлен перевод некоторых дипломатических реплик, диалогов с Клеопатрой, результатов морских сражений и части случайных событий.
- Переведены вступление и часть текста завершения игры.
- Перерисовал главную заставку игры. Вроде как получилось в одном стиле.
- Во многих местах поработал с указателями. Текст теперь читается красивее и понятнее. Но там еще работы дофига, процесс медленный.
- Понял как работать с сжатыми данными в игре. Дипломатические реплики с противниками одни из них.
Проблема которую смог решить только в начале этого годаПосле изменения ROM обнаружилась неприятная проблема: при запуске игра останавливалась на тёмном экране.
Оказалось, что Centurion использует не только стандартную контрольную сумму в заголовке Sega, но и собственную внутреннюю проверку целостности. При загрузке она рассчитывает 32-битное значение по определённым областям ROM и сравнивает его с фиксированной константой, записанной в коде.
У оригинала ожидаемое значение — 0x3A18B046. После изменения текстов и расширения ROM результат стал другим. Обычная контрольная сумма в заголовке была пересчитана, но этого оказалось недостаточно: внутренняя проверка не проходила, и программа уходила в бесконечный цикл вместо продолжения загрузки.
Проверку отключать не стал. Воспроизвёл её алгоритм, пересчитал значение для изменённого ROM и обновил ожидаемую константу. Затем заново пересчитал стандартную контрольную сумму. После этого запуск восстановился и это был мой триумф, ибо на этой проблеме было сломано столько копей.
Теперь при каждой новой сборке проверяются обе суммы, чтобы не повторить эту ошибку.
Текущая стадияПеревод находится на стадии частичной тестовой русификации. Основной интерфейс и многие игровые сообщения уже читаются по-русски, но итоговая статистика, титры и отдельные блоки текста ещё требуют доработки. Текст еще просит форматирования и изменения а так же работы с указателями. Я думал будет быстрее, но очень много текста в игре оказалось.
Полностью переведённой и проверенной версией сборку пока нет: нужно пройти больше событий и проверить текст в разных игровых ситуациях.
Если есть желание протестировать, пишите. Но не ждите что буду давать сборку всем без разбора. В открытый доступ точно выкладывать не хочу, ибо тут встречаются изредка товарищи готовые засрать любой труд.