Создание RAW кодов в эмуляторе Nes – часть 1.
Воспользуемся эмулятором Nestopia 1.40. Запускаем в нём ром Moon Crystal (J) [T+Rus] – русский перевод от Шедевра:) Можно любой другой ром этой игры.
На экране две жизни:
Идём в Nestopia – Options – Cheats – Add:
A=0 B=0 то есть пока эти поля не трогаем, ниже оставляем отметку на «None» - получается что мы выполняем просто поиск неизвестного значения.
Далее возвращаемся в игру (кнопку Cancel не нажимаем!). В игре теряем одну жизнь. На экране стало 1. Возвращаемся в меню читов, в поле B впечатываем значение 1 и после этого выбираем условие поиска (фильтр) R0-R1=B:
Поясню – это означает, что значение уменьшилось на единицу. То есть R0 – первое состояние, R1 – второе, B – разница между ними.
Далее слева смотрим – из найденных нам подходят два адреса – 05ED и 0799. Проверяем первый из них (смотрим сверху вниз):
В разделе Raw: Adress 05ED
Value = 7 (можно другое)
Далее жмём кнопку Validate (обязательно!) – слева появится надпись Valid; Description – описание адреса, я вписал Inf. Lifes. Дальше жмём Submit – появится меню, как на скрине внизу. Выделяем чит мышью и жмём OK.
В игре проверяем код – умираем один раз и жизней стало 6:
Значит в памяти значение количества жизней отличается от экранного на единицу больше. Это очень распространённый вариант – жизни кончаются, если умереть когда на экране осталось 0 жизней. Но с этим всё. Теперь можем этот код сохранить – код выделен, жмём кнопку Export:
И сохраняем в файл .xml:
[
Добавлено позже:Найдём некоторые параметры с помощью VirtuaNes 0.97e в игре Super Contra (ром Super C (U) [T+Rus].
На экране количество жизней 2. Делаем быстрое сохранение и далее Tool – Cheat Support:
Количество жизней хранится как 1 байт целое, поэтому оставляем Length – 1 byte. Жмём кнопку Start для начала поиска:
Теряем одну жизнь, отсеиваем на «уменьшилось» - нажимаем кнопку Old>Now:
Без изменения счётчика жизней продвигаемся в игре, отсеиваем на «не изменилось» - Old=Now. Вот и нашли :
Далее Tool – Cheat Code:
Input – вводим код на адрес 0053. Пишется так: Адрес-тип переменной (в байтах – 1, 2 или 4) и значение. Ниже пишем комментарий к чит-коду:
Жмём OK:
В игре стало 4 жизни, которые не уменьшаются при умирании:
Сохраняем код:
Так как жизни хранятся точным значением, можно жизни второго игрока найти элементарно. Нажимаем Start в меню поисковика читов, дальше вводим Data = 2 и жмём Search:
Есть смысл проверить адрес 0054, так как он идёт сразу за адресом жизней первого игрока. Так и есть – это адрес жизней второго игрока:
Идём дальше. Найдём адрес здоровья в игре Moon Crystal. Сохраняемся при начальном уровне здоровья и начинаем поиск с нажатия кнопки Start:
Ранение – отсеиваем кнопкой Old>Now:
Грузим сохранение с полным здоровьем – Old<Now:
В игре без ранений проводим какое-то время – Old=Now:
Адрес 05F0 очень похож на адрес здоровья – так и есть, вот код на него:
Почему я поставил значение больше 3 поймут те кто в эту игру играл – там в дальнейшем добавляется уровень специальным призом.
_____________
Добавлено позже:Поиск PAR кодов средствами эмулятора SMD – часть 1.
Fusion 3.63 – в этом замечательном эмуляторе очень неудобный поисковик кодов, и это серьёзный недостаток. Но некоторые приёмы можно применять без проблем. Рассмотрим пока что два из них.
Запускаем игру Caliber Fifty.
Найдём количество жизней (попыток). На экране 2 жизни. Делаем сохранение и идём в меню GameGenie/PAR:
Далее жмём кнопку CodeFinder:
Жмём кнопку Count. Она предназначена для поиска точного значения:
Жмём Find. У меня нашлось 97 результатов. Жмём OK, в открывшемся новом (старом) окне также OK и возвращаемся в игру. Там теряем одну жизнь, то есть становится 01 на экране – возвращаемся в окно поиска и отсеиваем на значение 1:
Остаётся 7 адресов. Грузим сохранение с 02 жизнями и отсеиваем на 2:
Не теряя и не приобретая новых жизней продвигаемся в игре и снова отсеиваем на 2. Количество результатов не изменилось? Тогда определим нужный адрес перебором.
Пробуем код со значением на адрес FF9968. Вводим адрес:значение, жмём Add code, выделяем код в списке мышью (обязательно!) и жмём OK:
результате получаем бесконечные жизни:)
Примечание: эмулятор Kega Fusion использует для хранения данных перевёрнутый порядок байтов (спасибо разработчикам ArtMoney)у . Поэтому адреса Fusion, в первую очередь те, которые 1 байт целое, могут различаться на 1 байт. То есть в Fusion код на адрес FF9968 – в других эмуляторах (Gens всех видов) надо использовать код на адрес FF9969.
Теперь найдём код на гранаты. На экране 39 гранат. Идём в CodeFinder и в этот раз жмём кнопку Difference («Разница»). Этот вариант подходит для поиска разницы значений или интервала в таймерах – на сколько уменьшилось/увеличилось значение, столько и надо писать в поле Find.
Нас просят запомнить изначальное значение.
Возвращаемся в игру. Бросаем, скажем, две гранаты, стало 37. Вводим разницу 2 и жмём Lower (если бы значение увеличилось – нажали бы Higher):
Получили результаты:
Ну тут уже всё понятно. Добавляем код, не забываем выделить его в списке – иначе он не будет работать:
В результате имеем это: