Недавно вышедшее обновление самого мощного эмулятора NES принесло ряд интересных фич для ромхакинга.
Встроенный Hex Editor раньше умел только раскрашивать области памяти в зависимости от их назначения (код жёлтым цветом, данные - синим). А теперь ещё появилась фича "Highlight Activity", которая в реальном времени подсвечивает изменяющиеся ячейки памяти, позволяя легко находить нужные адреса (например, сравнивая содержимое двух сэйвов).
Ещё, может, кто помнит такую неудобную особенность всех известных дебаггеров для NES: нельзя было скроллировать дизассемблированный код вверх построчно. Потому что инструкции процессора 6502 могут быть разной длины... короче, забудем об этом.
Самое главное, наконец-то доведена до ума функциональность Символьного Отладчика (Symbolic Debugging). Это очень крутая фича. Она позволяет видеть в окне эмулятора отлично читаемый исходник игры, с именами переменных и меток, и даже комментариями. Естественно, имена придётся придумывать самостоятельно. Щёлкаем правой кнопкой мыши по любому адресу, вводим текст и всё - теперь FCEUX будет заменять этот адрес на указанный текст повсюду - в окошке Debugger, в логах, в заголовке окна Hex Editor. Это всё реально помогает отреверсить игру с удобствами.
Обычно же как бывает, в начале нового проекта перед ромхакером встают необъятные стены ассемблерного кода, и мы начинаем искать определённые адреса в памяти приставки, которые могли бы привести нас к нужному куску кода. Иногда бывает достаточно поставить бряк на какую-нибудь визуальную переменную (например, на координату спрайта или на карту тайлов), но чаще приходится долго и упорно перекапывать игру, на ходу документируя адреса данных (в текстовом файле) и разбирая порядок выполнения кода. Ну а теперь можно забыть про текстовые файлы и просто использовать Symbolic Debug. Скажем, даже когда по внешнему виду дизассемблированной процедуры вы с трудом понимаете, почему вот эта часть кода приводит к прыжку на вот этот адрес, берём и тупо называем этот неисследованный адрес пространным именем типа "ПопадёмСюдаПриКоординате=1F" (да, можно по-русски), и продолжаем читать и комментировать код дальше. Вскоре вы заметите, что ситуация проясняется всё больше и больше. Ведь мы тут фактически восстанавливаем фрагмент исходного кода игры, но не углубляясь в изучение программы целиком, а всего лишь упорядочивая окружающие нас вещи, исключительно в рамках текущей задачи. Восстанавливать исходник всей игры не придётся!
Короче, всем, кто хочет научиться чему-то большему, чем банальное изменение графики в РОМах Денди, рекомендую внимательно прочитать документацию по отладчику FCEUX.
Вообще, там в FCEUX 2.2.2 ещё много всего нового появилось (например, в PPU Viewer можно фильтровать графику с помощью Code/Data Logger). Полный список изменений можно прочитать здесь.
Вы можете посоветовать новость "Вышел FCEUX 2.2.2" из рубрики "Утилиты" своим знакомым, либо обсудить её с остальными пользователями, которые также как и вы интересуются данной темой, оставив своё мнение в комментариях ниже, либо в различных социальных сервисах.
Все-таки в txt файлик лучше записывать важные данные. Только недавно IDA прикончила месяц трудов по поиску и комментированию. Хорошо что разобранный код был не так важен для дальнейшей работы. Данных из txt файла хватило для того чтоб забыть про этот печальный случай.
А вот для таких случаев нужно пользоваться SVN или Git. Бекапы лишними не бывают. Потерять или случайно удалить можно любые файлы - хоть саморучно набранные, хоть автоматически создаваемые (кстати, NL-файлы тоже по сути обычные текстовики, их можно редактировать в Блокноте).
Главное меню Forsaken . При попытки открыть дизасемблированный файл, IDA сообщила что это не её формат. Я посмотрел, внутри файла небыл прописан заголовок, пытался восстановить, но IDA использует сжатие, а его похоже не восстановить. Пробывал подставлять заголовок из других файлов, выдаёт ошибки.
Жалко что во время паузы не подсвечиваются, было бы удобнее работать с Hex Редактором и ещё было бы не плохо что бы при выделение кода указывалось за то этот код отвечает
Translation, Romhacking, ROM hacking utilities, Hacks
эмуляция, скачать ромы, старые игры, ретро-игры, эмуляторные новости
Всё о хакинге игр, всё о модификации игр, всё о мапинге игр
translation, translations, romhacking, ROM, hacking, ROM hacking utilities, documents, hacks, requests
эмуляция, качать ROM-файлы, старые игры, ретро игры, эмуляция