[SEGA Saturn] Дебаг меню для Riglordsaga 2, Shiroki Majo: Mouhitotsu no Eiyuu Densetsu и Magic Knight Rayearth
В этой статье описываются хаки отладочного (дебаг) меню для трёх RPG на SEGA Saturn:
Riglordsaga 2
Shiroki Majo: Mouhitotsu no Eiyuu Densetsu
Magic Knight Rayearth
Меню позволяют изменять параметры игры и телепортироваться в произвольные области, так что вы можете попасть в разные части игры для интереса.
Если вы заинтересованы в переводе Riglordsaga 2 или Shiroki Majo, эти меню, несомненно, будут полезными помощниками. Начнём!
Riglordsaga 2
Режим отладки. Флаг, который управляет им, находится по адресу памяти 06091484. Установите его в 01, и вы получите дополнительные пункты меню, координаты на экране и возможность выходить за пределы карты.
(Слева: До установки флага отладки. Справа: После его установки.)
(Слева: До установки флага отладки. Справа: После его установки.)
В этой игре есть несколько тестовых уровней со специальными меню, которые позволяют просматривать игровые сцены:
(Перемещение на тестовую карту BOOT3.)
В дебаг меню можно переключать флаг отладки с помощью кнопки Start. Код работает как этот псевдо-Python:
Для финальной версии игры значение debug_toggle_button установлено на 0, поэтому это не работает. Мы можем восстановить его следующим образом:
Патч образа диска с этими изменениями на SegaXtreme.
Shiroki Majo: Mouhitotsu no Eiyuu Densetsu
В этой игре есть код кнопок для активации отладочного меню с множеством опций.
После экрана Hudson, во время анимации падающего снега, нажмите A; B; а затем C. Затем на титульном экране удерживайте L и R и нажмите Start. После начала геймплея одновременно удерживайте X, Y и Z, чтобы вызвать отладочное меню.
Функция по адресу проверяет оба шага. Вот моя аннотация декомпиляции Ghidra первого шага:
(Маска кнопки A - 0x0400; маска кнопки B - 0x0100; маска кнопки C - 0x0200.)
И второй шаг:
(Маска кнопки Start - 0x0800, маска кнопки R - 0x0080, а маска кнопки L - 0x0008. Вместе они дают 0x0888.)
Флаг отладки, который здесь включается, находится по адресу 060793a8.
Перевод пунктов меню верхнего уровня:
С помощью опции MAP вы можете телепортироваться в разные места, хотя иногда нужно будет настроить начальную позицию, чтобы оказаться где-то осмысленно.
Magic Knight Rayearth
INITMENU в Magic Knight Rayearth позволяет телепортироваться в произвольные точки игры с помощью опции ROUND. В меню также есть опции для тестирования видео (CINEPACK) и звука.
Активация этого меню требует небольшого взлома. Четыре байта по адресу 060a13cc определяют, в какой режим переключится игра. Тот, который нам нужен, - 00000004, это отладочное меню.
Первое переключение режима выглядит так:
Нужно изменить значение, которое загружается в последней инструкции. Но нет хорошего места, чтобы сделать это, так как значение r11 используется в других местах. Освободим место, убрав инструкцию extu.b: она расширяет знак значения r0 - хорошая практика, поскольку выполняем с ним математические операции. Но это излишне, поскольку в этой точке выполнения значение всегда оказывается положительным.
Убрав эту инструкцию, у нас будет место для загрузки непосредственного значения 4 и запуска игры прямо в отладочном меню.
Патч образа диска с этими изменениями на SegaXtreme.