Данный мануал демонстрирует изменение программного кода в PSX играх.
* При копировании материала на другие ресурсы, ссылку на источник указывать обязательно!
Необходимые программы:
1.CDmage
2.SlowR3KA
3.PSIG
4.Notepad++
Обозначения:
$ - адрес в оперативной памяти.
f$ - адрес в исполняемом файле(SLUS_007.47) игры.
Примечание:
Поиск и анализ кода тут не рассматриваются, так как это большая тема, требующая отдельного рассмотрения.
Для примера возьмём Resident Evil DC dual shock. Казалось бы в игре всё гладко, и лезть туда не стоит.
Но тот кто играл в RE4 знает - что круче перезаряжать оружие в самой игре, а не лезть каждый раз в инвентарь.
Предоставим игроку такую возможность в первой части RE.
Сама возможность перезарядки делается очень просто:
Активация перезарядки:
$800414A0 f$31CA0 = 0x3C делаем дополнительную проверку кнопки.
$800415A1 f$31DA1 =0x02 добавляем в проверку кнопки [].
$800447EC f$34FEC =0x00000000 отключаем перезапись патронов в пистолете.
Но если всё вначале очень просто, жди что далее вылезет что-то сложное.
Этого не надо пугаться, просто надо быть готовым к этому.
Дело в том - что перезарядка будет реалистичной, если в заменяемой обойме останутся патроны, то главный герой выкинет эту обойму вместе с ними, и вставит новую.
Поклонники реализма будут рады, возможно до того момента когда патроны закончатся. Игроки со стажем вряд ли будут пользоваться такой перезарядкой.
Модификация кода перезарядки:
В общем, извлекаем исполняемый файл(SLUS_007.47) с кодом игры из образа диска с помощью CDmage.
Анализируем код игры(я это делаю в программе IDA) находим код перезарядки оружия.
Запускаем программу SlowR3KA. Дизассемблируем код перезарядки $800448A8 f$350A8 - $80044938 f$35138.
*Перед дизассемблированием следует установить флаг: PSIG, и указать начальный и конечный адрес кода.
Открываем файл “Gun reload.psig” в Notepad++, и видим готовый для компиляции код.
*Чтобы включить подсветку кода, нужно в выпадающем меню "Синтаксисы" выбрать пункт "PSIG".
Модифицируем код перезарядки как нам нужно.
Сохраняем новый код с именем “New gun reload.psig”.
Компилируем новый код перезарядки и вставляем в исполняемый файл(SLUS_007.47) игры.
Для этого запускаем PSIG, кнопкой “IN” открываем наш файл “ New gun reload.psig ”.
Кнопкой “OUT” открываем исполняемый файл, в который вставится код “ SLUS_007.47”.
*Можно бросить файлы в окно программы. Файлы с расширением psig, asm, txt, грузятся как входящие, остальные как исходящие.
Для того чтобы код прописался по заданному адресу, нужно чтобы галочка “Insert code” была установлена. Жмём кнопку “Compile”.
Вставляем исполняемый файл(SLUS_007.47) игры обратно в образ диска.
Запускаем игру и радуемся!
Видео
|