Окно Hex Editor

Вернуться на главную страницу

Содержание

Описание окна

Окно открывается в эмуляторе FCEUX в Debug -> Hex Editor (или горячей клавишей). Если ROM не запущен в эмуляторе, окно открыть не получится.

Окно автоматически закрывается при закрытии ROM'а.

По умолчанию открыто View -> NES Memory, где отображена память процессора. Hex Editor отображает данные игры на текущий момент. Обновление происходит ежекадрово в конце кадра.

Данные дополнительно будут обновляться каждый раз, когда Debugger ставит эмулятор на паузу, например после срабатывания брейкпоинта или при нажатии в нем определенных кнопок.

Исключением ежекадрового обновления является область View -> ROM File. Она обновляется только при взаимодействии пользователя с окном Hex Editor.

Содержимое окна

Выбери опцию для отображения информации по содержимому окна.

Адреса

Слева находятся начальные адреса строки.

В середине в каждой строке по 16 адресов, в каждом адресе 1 байт.

Байты

Переменные в адресах при запуске ROM'а зависят от опции эмулятора Config -> RAM Init.

Байт, который после обновления окна изменил свое значение относительно предыдущего значения, имеет цветную подсветку. Это помогает отследить любые изменения, в частности при просмотре адресов RAM.

Подсветку байтов можно настроить во вкладке Highlighting.

Если эмулятор стоит на паузе, можно сбросить текущую подсветку байтов, если прокрутить содержимое окна вверх/вниз колесом мыши или ползунком справа.

Так как окно обновляется лишь 1 раз за кадр, ты не увидишь всех возможных изменений байта, происходяших на протяжении кадра, а только самое последнее. А если байт был изменен, но под конец кадра игра записала точно такой же байт, какой был на предыдущем кадре, подсветки и вовсе не будет.

Байты можно выделять и копировать/вставлять через Ctrl + C/Ctrl + V (или через вкладку Edit). Также байты можно изменять вручную, это приведет к различным последсвтиям, которые будут описаны в подразделах вкладки View.

Если ввести только 1 символ байта, это не изменит байт в адресе. Отменить такой ввод нельзя, даже кликнув по другому адресу, и он будет висеть до тех пор, пока ты не введешь второй символ. Если переключиться на другой адрес и ввести второй символ, то байт запишется в этот самый адрес, а не в тот, куда ты собирался записать его изначально.

Копирование слишком большого количества байтов может привести к временному подвисанию эмулятора.

Кодировка

Справа отображена кодировка байтов, по умолчанию ASCII. Выбранный адрес подсвечивается черным и в кодировке справа.

Кодировку можно изменить, подготовив .tbl файл и подгрузив его через File -> Load *.TBL File.

Символы кодировки можно копировать из кодировки, а также вставлять символы в эту область.

Если вставить символы кодировки в область с адресами, это будет расценено как вставка байтов, и лишние символы будут удалены.

Копировать символы кириллицы из этой области нужно со включенной русской раскладкой клавиатуры, иначе будут скопированы кракозябры. Отправил багрепорт разработчику.

Информация в названии окна

Выбранный адрес отображается в названии окна (без лишних нулей слева и с префиксом 0x). Также указан тип памяти этого адреса, в зависимости от режима вкладки View и самого адреса.

При выделении мышкой сразу нескольких адресов, в названии окна будет указан выделенный диапазон адресов, а в скобках - количество выделенных адресов в системе счисления HEX.

Количество выделенных адресов можно использовать для определения байта, который нужно записать в качестве операнда у инструкции условного перехода.