| Разработка и ромхакинг > Ромхакинг и программирование |
| Помощь! Чит Mighty Final Fight |
| (1/1) |
| Mumba13:
Всем привет! Я только начинаю познавать ромхакинг, так что прошу помидорами не бросаться. Решил почитирить в игре Mighty Final Fight, опыт и здоровье взломал без проблем. Но этого мне показалось мало и я решил сделать убийство с одного удара. Нашел адреса куда пишутся здоровья врагов их всего два, так как в игре на экране может быть не больше 2х врагов. Поставил брэйпоинт на запись нашел инструкцию которая пишет в адрес значение нового здоровья. Выше нашел как реализовано уменьшение здоровья, но проблема в том что я не могу поставить брэйкпоинт потому что перед адресом инструкции стоит еще цифра с двоеточием 06:86EA, когда я пытаюсь поставить брэйкпоинт на этот адрес, он ставится, но срабатывает на адрес 3:86EA, а там совсем другой код, а в поле адреса для брэйкпоинта можно ввести только 4 символа. Подскажите что я делаю не так или может быть есть другое решение? |
| Sharpnull:
В Mesen отладчик лучше. Можно поставить breakpoint на PRG ROM, также есть условия срабатывания. Добавлено позже: По-моему у вас ещё старый FCEUX, последний здесь: https://ci.appveyor.com/project/zeromus/fceux > Выбрать систему > Artifacts. |
| Mumba13:
Мне кажется тут дело не в отладчике, а в моей не опытности Добавлено позже: --- Цитата: Sharpnull от 15 Сентябрь 2020, 17:43:11 ---По-моему у вас ещё старый FCEUX, последний здесь: https://ci.appveyor.com/project/zeromus/fceux > Выбрать систему > Artifacts. --- Конец цитаты --- FCEUX у меня последней версии 2.2.3, скачанный сегодня с официального сайта |
| Sharpnull:
Mumba13, у вас срабатывание на 3:86EA вместо 06:86EA, потому что breakpoint ставится на адреса CPU, а банки меняются, поэтому если поставить на PRG ROM, то будет срабатывание только в одном месте. Не знаю как сделать такое в FCEUX, я не эксперт. Рекомендую Mesen. --- Цитата: Mumba13 от 15 Сентябрь 2020, 17:48:57 ---FCEUX у меня последней версии 2.2.3, скачанный сегодня с официального сайта --- Конец цитаты --- Это старый. Я дал ссылка на официальный последний. |
| Mumba13:
Это последняя версия 2.2.3, с того сайта точно такая же. А какая последняя версия Mesen? Официальный сайт что то не работает. |
| Sharpnull:
--- Цитата: Mumba13 от 15 Сентябрь 2020, 17:58:24 ---Это последняя версия 2.2.3, с того сайта точно такая же. --- Конец цитаты --- Циферки одинаковые, но версии разные. --- Цитата: Mumba13 от 15 Сентябрь 2020, 17:58:24 ---А какая последняя версия 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:
впиши в condition брикпоинта K==#06 и будет тебе щастье |
| Sharpnull:
Не догадался посмотреть как условия задавать. Mumba13, про другие возможности условий в fceux.chm. |
| Cyneprepou4uk:
Mumba13, если ты имеешь в виду брейкпоинт с типом execute, то удобно будет дважды кликнуть на адрес 86EA в 06:86EA, и в появившемся окне уже будут стоять необходимые условия |
| Mumba13:
--- Цитата: Cyneprepou4uk от 15 Сентябрь 2020, 18:56:37 ---Mumba13, если ты имеешь в виду брейкпоинт с типом execute, то удобно будет дважды кликнуть на адрес 86EA в 06:86EA, и в появившемся окне уже будут стоять необходимые условия --- Конец цитаты --- Спасибо большое, очень помог. |
| Sharpnull:
--- Цитата: Cyneprepou4uk от 15 Сентябрь 2020, 18:56:37 ---Mumba13, если ты имеешь в виду брейкпоинт с типом execute, то удобно будет дважды кликнуть на адрес 86EA в 06:86EA, и в появившемся окне уже будут стоять необходимые условия --- Конец цитаты --- В Mesen это делается одним нажатием слева от адреса. Я раньше не замечал, но он сразу ставит на PRG ROM, а не CPU, хех. Добавлено позже: Правда в Mesen есть интересный прикол, не знаю как в FCEUX. Бывает код исполняется из RAM (самомодификация, все дела) в адресах Эхо (с $0800), я ставлю там breakpoint, а он улетает в адреса $0000-$07FF и естественно ничего не останавливается :) Добавлено позже: Проверил, в FCEUX всё правильно. |
| Mumba13:
Разобрался с Mesen. Не хватает конечно такого же Ram Search. Как вставлять свой код в код игры? Я примерно понимаю, что нужно прыгнуть в неиспользуемую область памяти там написать свой код и потом прыгнуть в следующую инструкцию, но как это сделать если инструкция использует всего 2 байта, а прыжок с адресом занимает 3 байта? |
| Sharpnull:
--- Цитата: Mumba13 от 16 Сентябрь 2020, 13:58:47 ---Не хватает конечно такого же Ram Search. --- Конец цитаты --- Да, в Mesen ограниченный Cheat Finder и он ищет только по $0-7FF. В Mesen есть баги, у меня бывало не изменялся код после вставки. --- Цитата: Mumba13 от 16 Сентябрь 2020, 13:58:47 ---Как вставлять свой код в код игры? --- Конец цитаты --- В Mesen выделить в Debugger участок кода, ПКМ > Edit Selected Code. Правда, если область ещё не использовалась, то в Mesen нельзя будет так сделать. В таком случае можно байты напрямую вставить в Memory Tools, лучше способа не знаю. --- Цитата: Mumba13 от 16 Сентябрь 2020, 13:58:47 ---как это сделать если инструкция использует всего 2 байта, а прыжок с адресом занимает 3 байта? --- Конец цитаты --- Может взять ещё инструкцию и перенести в код куда прыжок. -------- Или перенести код, который мешает, и сделать JSR на него (до или после). Конечно там не должно быть выходящих branch инструкций. |
| Mumba13:
--- Цитата: Sharpnull от 16 Сентябрь 2020, 14:16:45 ---В Mesen выделить в Debugger участок кода, ПКМ > Edit Selected Code. Правда, если область ещё не использовалась, то в Mesen нельзя будет так сделать. В таком случае можно байты напрямую вставить в Memory Tools, лучше способа не знаю. --- Конец цитаты --- Удобненько, а то я все время в HEX редакторе менял. --- Цитата: Sharpnull от 16 Сентябрь 2020, 14:16:45 ---Может взять ещё инструкцию и перенести в код куда прыжок. --- Конец цитаты --- Так я и думал, а остаточные байты заполнять NOP |
| Навигация |
| Главная страница сообщений |