Содержание
Окно открывается в эмуляторе 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.
Количество выделенных адресов можно использовать для определения байта, который нужно записать в качестве операнда у инструкции условного перехода.