Автор Тема: Помощь! Чит Mighty Final Fight  (Прочитано 1111 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Mumba13

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« : 15 Сентябрь 2020, 17:36:10 »
Всем привет! Я только начинаю познавать ромхакинг, так что прошу помидорами не бросаться. Решил почитирить в игре Mighty Final Fight, опыт и здоровье взломал без проблем. Но этого мне показалось мало и я решил сделать убийство с одного удара. Нашел адреса куда пишутся здоровья врагов их всего два, так как в игре на экране может быть не больше 2х врагов. Поставил брэйпоинт на запись нашел инструкцию которая пишет в адрес значение нового здоровья. Выше нашел как реализовано уменьшение здоровья, но проблема в том что я не могу поставить брэйкпоинт потому что перед адресом инструкции стоит еще цифра с двоеточием 06:86EA, когда я пытаюсь поставить брэйкпоинт на этот адрес, он ставится, но срабатывает на адрес 3:86EA, а там совсем другой код, а в поле адреса для брэйкпоинта можно ввести только 4 символа. Подскажите что я делаю не так или может быть есть другое решение?
228198-0

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5005
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #1 : 15 Сентябрь 2020, 17:43:11 »
В Mesen отладчик лучше. Можно поставить breakpoint на PRG ROM, также есть условия срабатывания.

Добавлено позже:
По-моему у вас ещё старый FCEUX, последний здесь: https://ci.appveyor.com/project/zeromus/fceux > Выбрать систему > Artifacts.

Оффлайн Mumba13

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #2 : 15 Сентябрь 2020, 17:48:57 »
Мне кажется тут дело не в отладчике, а в моей не опытности

Добавлено позже:
По-моему у вас ещё старый FCEUX, последний здесь: https://ci.appveyor.com/project/zeromus/fceux > Выбрать систему > Artifacts.
FCEUX у меня последней версии 2.2.3, скачанный сегодня с официального сайта

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5005
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #3 : 15 Сентябрь 2020, 17:53:28 »
Mumba13, у вас срабатывание на 3:86EA вместо 06:86EA, потому что breakpoint ставится на адреса CPU, а банки меняются, поэтому если поставить на PRG ROM, то будет срабатывание только в одном месте. Не знаю как сделать такое в FCEUX, я не эксперт. Рекомендую Mesen.
FCEUX у меня последней версии 2.2.3, скачанный сегодня с официального сайта
Это старый. Я дал ссылка на официальный последний.

Оффлайн Mumba13

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #4 : 15 Сентябрь 2020, 17:58:24 »
Это последняя версия 2.2.3, с того сайта точно такая же.
А какая последняя версия Mesen? Официальный сайт что то не работает.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5005
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #5 : 15 Сентябрь 2020, 18:11:06 »
Это последняя версия 2.2.3, с того сайта точно такая же.
Циферки одинаковые, но версии разные.
А какая последняя версия Mesen? Официальный сайт что то не работает.
https://mesen.ca. Только хотел сказать, что Россия опять шатает интернет, поэтому заходите через Tor Browser, VPN или другие способы. Проверить сайт на доступность: https://ping-admin.ru/free_ping/. Один из серверов США тоже не сработал, Россию проверял не всю, но которые были недоступно.
--------
Стабильная у Mesen 0.9.9, а последняя вообще https://ci.appveyor.com/project/Sour/mesen/build/artifacts, но её лучше не использовать.

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3588
    • Twitter
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #6 : 15 Сентябрь 2020, 18:14:13 »
впиши в condition брикпоинта K==#06 и будет тебе щастье

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5005
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #7 : 15 Сентябрь 2020, 18:41:34 »
Не догадался посмотреть как условия задавать.
Mumba13, про другие возможности условий в fceux.chm.

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 205
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #8 : 15 Сентябрь 2020, 18:56:37 »
Mumba13, если ты имеешь в виду брейкпоинт с типом execute, то удобно будет дважды кликнуть на адрес 86EA в 06:86EA, и в появившемся окне уже будут стоять необходимые условия

Оффлайн Mumba13

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #9 : 15 Сентябрь 2020, 20:42:12 »
Mumba13, если ты имеешь в виду брейкпоинт с типом execute, то удобно будет дважды кликнуть на адрес 86EA в 06:86EA, и в появившемся окне уже будут стоять необходимые условия
Спасибо большое, очень помог.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5005
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #10 : 15 Сентябрь 2020, 21:37:39 »
Mumba13, если ты имеешь в виду брейкпоинт с типом execute, то удобно будет дважды кликнуть на адрес 86EA в 06:86EA, и в появившемся окне уже будут стоять необходимые условия
В Mesen это делается одним нажатием слева от адреса. Я раньше не замечал, но он сразу ставит на PRG ROM, а не CPU, хех.

Добавлено позже:
Правда в Mesen есть интересный прикол, не знаю как в FCEUX. Бывает код исполняется из RAM (самомодификация, все дела) в адресах Эхо (с $0800), я ставлю там breakpoint, а он улетает в адреса $0000-$07FF и естественно ничего не останавливается :)

Добавлено позже:
Проверил, в FCEUX всё правильно.
« Последнее редактирование: 15 Сентябрь 2020, 21:55:13 от Sharpnull »

Оффлайн Mumba13

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #11 : 16 Сентябрь 2020, 13:58:47 »
Разобрался с Mesen. Не хватает конечно такого же Ram Search. Как вставлять свой код в код игры? Я примерно понимаю, что нужно прыгнуть в неиспользуемую область памяти там написать свой код и потом прыгнуть в следующую инструкцию, но как это сделать если инструкция использует всего 2 байта, а прыжок с адресом занимает 3 байта?

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5005
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #12 : 16 Сентябрь 2020, 14:16:45 »
Не хватает конечно такого же Ram Search.
Да, в Mesen ограниченный Cheat Finder и он ищет только по $0-7FF. В Mesen есть баги, у меня бывало не изменялся код после вставки.
Как вставлять свой код в код игры?
В Mesen выделить в Debugger участок кода, ПКМ > Edit Selected Code. Правда, если область ещё не использовалась, то в Mesen нельзя будет так сделать. В таком случае можно байты напрямую вставить в Memory Tools, лучше способа не знаю.
как это сделать если инструкция использует всего 2 байта, а прыжок с адресом занимает 3 байта?
Может взять ещё инструкцию и перенести в код куда прыжок.
--------
Или перенести код, который мешает, и сделать JSR на него (до или после). Конечно там не должно быть выходящих branch инструкций.
« Последнее редактирование: 16 Сентябрь 2020, 14:32:54 от Sharpnull »

Оффлайн Mumba13

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Помощь! Чит Mighty Final Fight
« Ответ #13 : 16 Сентябрь 2020, 14:32:55 »
В Mesen выделить в Debugger участок кода, ПКМ > Edit Selected Code. Правда, если область ещё не использовалась, то в Mesen нельзя будет так сделать. В таком случае можно байты напрямую вставить в Memory Tools, лучше способа не знаю.
Удобненько, а то я все время в HEX редакторе менял.
Может взять ещё инструкцию и перенести в код куда прыжок.
Так я и думал, а остаточные байты заполнять NOP