Библиотека knigago >> Компьютеры и Интернет >> Хакерство >> Учебник по ромхакингу Sega MegaDrive


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1262, книга: Портрет призрака
автор: Сара Тодд Тейлор

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

СЛУЧАЙНАЯ КНИГА

Его любимая скрипачка. Мишель Смарт
- Его любимая скрипачка

Жанр: Короткие любовные романы

Год издания: 2018

Серия: Harlequin. Любовный роман (Центрполиграф)

Автор неизвестен - Учебник по ромхакингу Sega MegaDrive

Учебник по ромхакингу Sega MegaDrive
Книга - Учебник по ромхакингу Sega MegaDrive.   Автор неизвестен  - прочитать полностью в библиотеке КнигаГо
Название:
Учебник по ромхакингу Sega MegaDrive
Автор неизвестен

Жанр:

Хакерство

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Учебник по ромхакингу Sega MegaDrive"

Аннотация к этой книге отсутствует.

Читаем онлайн "Учебник по ромхакингу Sega MegaDrive". [Страница - 2]

игры, и установить так называемую точку остановки. Почему на титульный

экран? Потому что, находясь на титульном экране игры, процессор ещё не установил стартовые очки здоровья
персонажа.
Итак, выйдем на титульный экран игры, и откроем дебаггер, встроенный в эмулятор. Нажимаем Tools,
M68k Debug:

Далее нужно нажать на кнопку Add, чтобы добавить точку остановки на запись в ячейку памяти по её адресу.
Это означает то, что мы сейчас скажем компьютеру адрес здоровья, чтобы он, при установке очков здоровья,
остановился и показал нам операцию процессора. Нам нужно вписать адрес ячейки памяти где очки здоровья,
который мы нашли ранее, поставить галочку Enable, что означает «включить», поставить галочку «Write», что
означает, что мы просим компьютер остановить игру, когда в этот адрес запишется стартовое значение
здоровья, и нажать ОК:

Нажимаем старт. Игра остановится, и в окошке M68k Debug мы увидим операцию процессора, которая
отвечает за перемещение данных в ячейку памяти здоровья:

Разберем эту инструкцию, которая выделена зеленым цветом на скриншоте. Для этого запомните, что
вы находитесь на 6-ой странице, и перейдите на 10-ую страницу. В 7-ой части изучите 5-ый пример, (а точнее
5.1) и снова вернитесь сюда.
Итак, если вы поняли 5-ый пример седьмой главы, то теперь можно догадаться, что нам нужно
изменить тройку на желаемое нами число.
Теперь, чтобы изменить инструкцию процессора в дампе игры, нам нужно для начала узнать её длину.
Она может состоять из нескольких байтов. Если не знать её длину, то будет непонятно, какой опкод у
инструкции. Для того, чтобы вычислить длину инструкции, мы, из картинки выше, возьмем адрес
инструкции, что идет ниже нашей инструкции записи здоровья, а именно “10CF8”, и вычтем из неё адрес
инструкции, подсвеченной зеленым цветом, а именно 10CF0. Всё это проделаем в калькуляторе, в котором
заранее выбран режим программиста, и нажата кнопка HEX:

Результат оказался равен восьми. Итак, мы вычислили длину инструкции, она оказалась равна восьми
байтам.
Теперь пойдем её изменять. Для этого нужно запустить hex-редактор HxD, открыть файл игры, нажать
«Поиск», «Перейти», вписать адрес 10CF0, который мы нашли ранее, и нажать ОК

Курсор мыши окажется на адресе 10CF0, и мы увидим те самые 8 байт, которые будем изменять:

Итак, мы видим 33 FC 00 03 FF FF 47 B6. Разберем эту команду процессора.
«33 FC» означает запись числа word, «00 03» означает три очка здоровья, «FF FF 47 B6» – это адрес
очков здоровья в RAM памяти.
Давайте изменим эту тройку на тридцать. Так будет намнооого легче играть)). Но не забывайте, что
здесь другая система исчисления, так что 30 это будет не 30, а «1E», мы же не забыли про специальный
калькулятор?

Далее нужно сохранить этот файл с помощью «файл»-«сохранить как», дать название, например «cave
story мод здоровья.gen».

Иногда, получается так, что мод(модификация) не запускается сразу, т.к. вместо игры появляется
красный экран. Чтобы вылечить это, нам нужна программа Fixheadr. В таком случае, тянем на значок этой
программы наш файл мода игры, и получаем рабочий мод. Ссылка на программу будет в конце книги.
Также хочется отметить, что если увеличить здоровье персонажа в игре Cave Story, то при
восстановлении здоровья на «контрольном пункте» оно снова станет неизменным. Это связано с тем, что
игра, дополнительно использует ещё одно значение – значение максимального здоровья персонажа, которого
он достиг в игре. На контрольном пункте, при восстановлении здоровья, игра считывает текущее
максимальное значение очков здоровья, и копирует это значение в ячейку здоровья. Так что, придётся ещё и
вычислить, тем же самым путем, которым мы уже вычисляли, адрес максимального стартового значения
здоровья, и сделать его также равным 30, при старте игры. Подсказка: ram-адрес максимального стартового
значения здоровья FF4814.
Не всегда всё так легко получается при модификации игр, т.к. одна и та же инструкция может
использоваться игрой для разных целей. Например, бывает так: функция уменьшения здоровья персонажа и
здоровья босса использует одну и ту же инструкцию. И, если ты, желая сделать бессмертие в игре, сотрешь
инструкцию, то персонаж станет бессмертным, но и босс тоже, и, при этом, игру будет невозможно пройти. В
таком случае, нужно уметь пользоваться трейсером, понимать команды процессора более глубоко, а
возможно, придется даже писать свой код вместо кода --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.