Разработка и ромхакинг > Инструменты
RTHextion - новый hex-редактор для ромхакинга и переводов
Chaotix:
А как включить "Mini Map", как на скрине? В смысле, узкую полосочку предпросмотра возле прокрутки слева.
Она не отображается. Вроде бы была когда-то в первых версиях, после этого больше никогда не видел. Как включить не понял, на View -> Maps не реагирует.
Ещё настройки, они сохраняются в реестре. Можно сделать портативно, что бы сохранялись в settings.json в директорию к самой программе? Ну или в ini, смотря что удобнее заинклюдить.
Это должно быть просто сделать, просто подключить либу и перенести эти настройки в конфиг. json просто подключается, одним инклюдом.
Почему в реестр? Обычно никто не любит, когда проги пишут в реестр (еще со времён ePSXe), потому что удаляешь прогу, а в реестре остаётся мусор и относительно сложно вычистить или забэкапить. Было бы даже лучше и правильно ложить конфиг в Appdata.
%APPDATA%\<AppName> (Roaming) для пользовательских настроек и %LOCALAPPDATA%\<AppName> для кэша/больших данных по стандарту же.
"базовая поддержку секций" - удобно. Но разделяется абзацами, было бы лучше что бы это можно было опционально включать/выключать. Не понял, как это сделать. Иногда удобнее посмотреть монолитным кодом, иногда когда разделено. Но, лучше бы был выбор. В смысле, что бы цветами сохранялось выделение, но отображалось как обычно, пока не включишь разделение.
Еще как пользоваться "Virtually Format" не разобрался. Вроде бы, вообще ничего не делает. Точно не то, чего от этого ждешь. Я думал, что это "Fill Selection", но нет. Например, в HxD просто выделяешь, нажимаешь правой мышкой и выбираешь "Fill Selection", пишешь каким кодом заполнить, например FF и заполняет эту область, удобно.
Здесь "Virtually Format".. Может лучше бы было назвать тоже "Fill Selection"? Это было бы логично. Что такое это "виртуальное форматирование"? Указываешь количество линий. Ставлю 8, Hex, Character = FF, жму Ok. Ничего не делает, ничего не меняется, просто курсор прыгает куда-то вниз.
Хотелось бы просто Fill области, которой выделил, как в HxD. В линиях непонятно как считать. Ну или по оффсету хотя бы от 1E7C485 и до 1E7C4EA допустим или в байтах, 66 байт например.
road_t:
--- Цитата: Chaotix от 11 Апреля 2026, 10:59:32 ---А как включить "Mini Map", как на скрине? В смысле, узкую полосочку предпросмотра возле прокрутки слева.
Она не отображается. Вроде бы была когда-то в первых версиях, после этого больше никогда не видел. Как включить не понял, на View -> Maps не реагирует.
--- Конец цитаты ---
Ты о которой? Их там две: карта изменений и карта поинтеров. Первая отображается, если включить отображение изменений в доке изменений. А вторая, если есть найденные поинтеры. Но можно выключить через View->Dock.
--- Цитата: Chaotix от 11 Апреля 2026, 10:59:32 ---Ещё настройки, они сохраняются в реестре. Можно сделать портативно, что бы сохранялись в settings.json в директорию к самой программе? Ну или в ini, смотря что удобнее заинклюдить.
Это должно быть просто сделать, просто подключить либу и перенести эти настройки в конфиг. json просто подключается, одним инклюдом.
Почему в реестр? Обычно никто не любит, когда проги пишут в реестр (еще со времён ePSXe), потому что удаляешь прогу, а в реестре остаётся мусор и относительно сложно вычистить или забэкапить. Было бы даже лучше и правильно ложить конфиг в Appdata.
--- Конец цитаты ---
Приложение мультиплатформенное, построено на Qt. Соответствено, сохранение настроек унифицировано. Реестр – это дефолтный способ хранить настройки в винде. Во времена, когда я виндой пользовался, 99% приложений их там и хранило. А в чем суть проблемы? Настройки не редактируются через окно настроек? Для пользователя разницы, как хранятся настройки, быть не должно вообще.
--- Цитата: Chaotix от 11 Апреля 2026, 10:59:32 ---"базовая поддержку секций" - удобно. Но разделяется абзацами, было бы лучше что бы это можно было опционально включать/выключать. Не понял, как это сделать. Иногда удобнее посмотреть монолитным кодом, иногда когда разделено. Но, лучше бы был выбор. В смысле, что бы цветами сохранялось выделение, но отображалось как обычно, пока не включишь разделение.
--- Конец цитаты ---
Виртуальные переносы можно удалить бэкспейсом. Думал вынести запрос на добавление виртуальных переносов при добавлении секции, но решил, что еще одно окно ни к чему, а они чаще нужны. В противном случае, можно удалить вручную.
--- Цитата: Chaotix от 11 Апреля 2026, 10:59:32 ---Еще как пользоваться "Virtually Format" не разобрался. Вроде бы, вообще ничего не делает. Точно не то, чего от этого ждешь. Я думал, что это "Fill Selection", но нет. Например, в HxD просто выделяешь, нажимаешь правой мышкой и выбираешь "Fill Selection", пишешь каким кодом заполнить, например FF и заполняет эту область, удобно.
Здесь "Virtually Format".. Может лучше бы было назвать тоже "Fill Selection"? Это было бы логично. Что такое это "виртуальное форматирование"? Указываешь количество линий. Ставлю 8, Hex, Character = FF, жму Ok. Ничего не делает, ничего не меняется, просто курсор прыгает куда-то вниз.
Хотелось бы просто Fill области, которой выделил, как в HxD. В линиях непонятно как считать. Ну или по оффсету хотя бы от 1E7C485 и до 1E7C4EA допустим или в байтах, 66 байт например.
--- Конец цитаты ---
Блин, сорян) это вообще другое.
Ты ищешь 'Fill with':
А виртуальное форматирование – это автоматическое добавление виртуальных переносов с разбиением по определенному символу. Количество строк – это количество добавляемых переносов.
Выделяем фрагмент, кликаем правой кнопкой:
Выбираем virtually format:
Результат:
З.Ы. Прикладывай по возможности скрины: не факт, что баг проявляется у меня и мы можем просто не понять друг друга без картинки.
Chaotix:
--- Цитата: road_t от 12 Апреля 2026, 21:11:02 ---Реестр – это дефолтный способ хранить настройки в винде. Во времена, когда я виндой пользовался, 99% приложений их там и хранило.
--- Конец цитаты ---
Ну как бы объяснить.. Не веришь мне, послушай Claude Sonnet 4.6 (просто я сам задолбаюсь пруфы искать в гайдлайнах и писать то же самое; не нейрослопа ради):
"Microsoft официально не запрещает такой подход. Но это не значит, что это лучшая практика в 2025–2026 году.
Это была практика эпохи Windows XP/7. Современные приложения — VS Code, Sublime Text, Notepad++, Obsidian, mpv, VLC — все используют %APPDATA% или портативные конфиги. Реестр сегодня — это в основном системный софт, COM-регистрация, автозапуск и т.п.
Современный стандарт де-факто
Для десктопных приложений в 2026 году:
Windows: %APPDATA%\AppName\config.json (или .ini)
Linux: ~/.config/AppName/ (XDG Base Directory Specification)
macOS: ~/Library/Application Support/AppName/
Qt это поддерживает нативно, без сторонних библиотек:
--- Код: ---// Вместо дефолтного QSettings (реестр на Windows)
QSettings settings(
QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)
+ "/settings.ini",
QSettings::IniFormat
);
--- Конец кода ---
QStandardPaths::AppConfigLocation сам вернёт нужный путь под каждую платформу. Одна строчка решает проблему кроссплатформенности.
Хексовый редактор используют разработчики и ромхакеры. Эти люди ожидают найти конфиг в виде читаемого файла, а не искать в реестре. Это часть UX для данной аудитории.
Кроме того, Microsoft активно продвигает:
MSIX/AppX пакеты — изолированное хранилище, без мусора в реестре
WinUI 3 guidelines — рекомендуют ApplicationData (аналог %APPDATA%)
Windows Subsystem for Linux — продвигает XDG-совместимые пути
Реестр как хранилище пользовательских настроек приложений — это легаси, которое Microsoft сама постепенно уходит от.
Правила простые:
Настройки (preferences, конфиг) → %APPDATA%\YourApp\
C:\Users\Name\AppData\Roaming\YourApp\settings.ini
Кэш, логи, большие данные → %LOCALAPPDATA%\YourApp\
C:\Users\Name\AppData\Local\YourApp\cache\
C:\Users\Name\AppData\Local\YourApp\logs\
В Qt это выглядит так
--- Код: ---// Настройки → %APPDATA%
QString configPath = QStandardPaths::writableLocation(
QStandardPaths::AppConfigLocation // или AppDataLocation
);
// Кэш → %LOCALAPPDATA%
QString cachePath = QStandardPaths::writableLocation(
QStandardPaths::CacheLocation
);
--- Конец кода ---
QStandardPaths автоматически вернёт нужный путь под Windows, Linux и macOS — ничего дополнительно делать не нужно.
Для обычного десктопного приложения (не MSIX) в 2026 рекомендации:
Что хранитьКудаПеременнаяНастройки пользователяAppData\Roaming\AppName\%APPDATA%Кэш, логи, большие данныеAppData\Local\AppName\%LOCALAPPDATA%Данные с низкими правамиAppData\LocalLow\AppName\нет переменной, только через API
Roaming в актуальных гайдлайнах не рекомендуется, но это касается в первую очередь Store-приложений и MSIX, где Microsoft вообще даёт изолированное хранилище и сама управляет путями. Для классического Win32/Qt приложения %APPDATA% для настроек — всё ещё нормальная и общепринятая практика.
Когда используешь QSettings вот так:
--- Код: ---// Самый простой способ, который все пишут по туториалам
QSettings settings("MyCompany", "MyApp");
Qt сам выбирает формат под платформу:
--- Конец кода ---
ПлатформаЧто делает Qt по умолчаниюWindowsПишет в реестр HKEY_CURRENT_USER\Software\MyCompany\MyAppmacOSПишет в ~/Library/Preferences/ в .plist файлLinuxПишет в ~/.config/MyCompany/MyApp.conf
Если просто писать QSettings settings(...) и на этом всё — Qt будет писать в реестр на Windows.
Чтобы этого избежать — нужно явно указать формат
--- Код: ---// Явно указать IniFormat — тогда на всех платформах будет файл
QSettings settings(
QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)
+ "/settings.ini",
QSettings::IniFormat // ← вот этого по умолчанию нет
);
--- Конец кода ---
Никто не запрещает, но это как бы не найс. Но, я не настаиваю, просто говорю что легаси.
Вот в 010 Editor (который многие называют "лучшим") все настройки профиля хранятся в "%APPDATA%\Sweetscape\010 Editor 14", к примеру.
wxMEdit хранит в "%APPDATA%\wxMEdit".
То есть, RTHextion это единственный кто пишет в реестр настройки (из актуальных гексовых редакторов), разве нет? :neznayu:
--- Цитата ---А в чем суть проблемы? Настройки не редактируются через окно настроек? Для пользователя разницы, как хранятся настройки, быть не должно вообще.
--- Конец цитаты ---
Да, там есть баг.
Суть проблемы:
"Если зайти в File -> Preferences -> Themes и переключится на любую тему, то настройка цветов слетает и всё становится серым.
И сбросить настройки на дефолт я не нашёл как. Ты говорил что можно, но где это, загадка. Нету такой кнопки. Хочется просто кнопку: "Сбросить Настройки" (Default // Reset setting to default). Её нету, либо так запрятано, что без чтения мануалов найти нельзя.
Мне не мешает (я отследил куда прога записывает настройки в реестр и эту ветку удаляю). Но, я сумневаюсь что простой юзер будет знать, что переключать темы оформления принесёт сюрпризов и необходимость чистки реестра. Обычно юзер пойдет в AppData, искать настройки там. Но в AppData ничего нету, тут аля WinXP.
Qt6 и 64бита, но зато пишем только в реестр.. Ну тогда стоило компилить 32бит, через GCC для ХРюши и на wxWidgets, что бы по канону.. А так оно онли Win10-11, но при этом такой олдскул. :neznayu: Мухи вместе с коклетами, короче.
--- Цитата ---Приложение мультиплатформенное, построено на Qt. Соответствено, сохранение настроек унифицировано.
--- Конец цитаты ---
Я не эксперт по Qt, но в чём проблема заюзать QStandardPaths? Звучит просто. Просто подставляешь встроенный в Qt класс, который подставляет стандартный путь в зависимости от ОС. Разве не все так делают?
Там работы наверное на пять минут.
На Linux собственно, никто не запрещает настройки сохранять куда угодно. Можно же и проверки сделать аля: "если Винда и если рядом с бинарём есть setting.json то юзать его, потом лезть в %AppData%". Тогда было бы портебл. А портебл это более кошерно, кого хочешь спроси. :)
Даже DuckStation умеет быть портебл.
--- Цитата ---Прикладывай по возможности скрины: не факт, что баг проявляется у меня
--- Конец цитаты ---
Понял, оно работает. Просто не всегда хорошо видно на чёрном и настройки вроде нету.
А с "Virtually Format" понятно. Ну мануала же нету и F1 не работает, поэтому RTFM тут не катит. Что понятно автору, не всегда очевидно со стороны, особенно когда нету никакой справки и описания ключевых фич и как ими пользоваться
Беларус:
При удалении мусор останетса ведь и в AppData, какая разница?
Интересно, а в чём проблема хранить настройки рядом с програмой?🤔
Я вот собираюсь хранить настройки вообще внутри самой програмы, т.е. даже без отдельново файла настроек :)
Guyver(X.B.M.):
Я пользуюсь программой одной, которую кидаю в разные папки с проектами. В каждом проекте у неё получаются свои настройки. Мне так удобнее. Может, и тут будет так удобно? :neznayu: В портативных версиях программ это очень удобно...
Ещё и разные версии я использую в каждом из случаев, так как кое-где удобнее пользоваться старой версией, а в новой кое-какого функционала уже нет, его переиначили и мне он не подходит в некоторых случаях...
SeregaZ:
ини файл рядом с ехешкой. каждому проекту свое получается. но можно и переключатель - типа "использовать глобальные настройки" - копии программы лезут в реестр в одно и то-же место и читают настройки оттуда, а можно переключатель поставить на "свои настройки" - тогда ини файл рядом с инишкой. типа три проекта лежат и используют глобальные, а два типа свои отдельные каждый свой. и парни сыты и девки целы как говорится. и типа для работы можно будет друг другу такую инишку пересылать. нооооо это всего-лишь мое мимопроходилинг диванно-икспердное мнение :)
road_t:
--- Цитата: Chaotix от 13 Апреля 2026, 00:53:49 ---Ну как бы объяснить.. Не веришь мне, послушай Claude Sonnet 4.6
--- Конец цитаты ---
Послушал, добавил в плейлист :crazy:
--- Цитата: Chaotix от 13 Апреля 2026, 00:53:49 ---Это была практика эпохи Windows XP/7
--- Конец цитаты ---
Примерно на этом моменте моя эпоха разработки под винду закончилась, а на восьмерке и использование.
--- Цитата: Chaotix от 13 Апреля 2026, 00:53:49 ---Суть проблемы:
"Если зайти в File -> Preferences -> Themes и переключится на любую тему, то настройка цветов слетает и всё становится серым.
И сбросить настройки на дефолт я не нашёл как. Ты говорил что можно, но где это, загадка. Нету такой кнопки. Хочется просто кнопку: "Сбросить Настройки" (Default // Reset setting to default). Её нету, либо так запрятано, что без чтения мануалов найти нельзя.
--- Конец цитаты ---
М?..
--- Цитата: Chaotix от 13 Апреля 2026, 00:53:49 ---Понял, оно работает. Просто не всегда хорошо видно на чёрном и настройки вроде нету.
--- Конец цитаты ---
Цвет на карте совпадает с цветом подсветки сущности – иначе будет совсем непонятно. Цвета все настраиваются.
--- Цитата: Chaotix от 13 Апреля 2026, 00:53:49 ---Ну мануала же нету и F1 не работает, поэтому RTFM тут не катит. Что понятно автору, не всегда очевидно со стороны, особенно когда нету никакой справки и описания ключевых фич и как ими пользоваться
--- Конец цитаты ---
Два мужика встречаются:
– Привет. Че, как дела?
– Привет, да хорошо, вот стартап открыл.
– О! Круто, какой?
– Сексуальные услуги.
– Фига! И чё почём?
– Оральный $100, анальный $200.
– Хм... а вагинальный?..
– Не, ну это ж стартап, я пока один работаю.
Я уже понял, что без доков не обойтись. Начиналось-то всё мирно :wacko:
--- Цитата: Guyver(X.B.M.) от 13 Апреля 2026, 04:12:26 ---Я пользуюсь программой одной, которую кидаю в разные папки с проектами. В каждом проекте у неё получаются свои настройки. Мне так удобнее. Может, и тут будет так удобно? :neznayu: В портативных версиях программ это очень удобно...
Ещё и разные версии я использую в каждом из случаев, так как кое-где удобнее пользоваться старой версией, а в новой кое-какого функционала уже нет, его переиначили и мне он не подходит в некоторых случаях...
--- Конец цитаты ---
А сохранять настройки проекта в проект не лучше?
--- Цитата: SeregaZ от 13 Апреля 2026, 08:20:18 ---ини файл рядом с ехешкой. каждому проекту свое получается. но можно и переключатель - типа "использовать глобальные настройки" - копии программы лезут в реестр в одно и то-же место и читают настройки оттуда, а можно переключатель поставить на "свои настройки" - тогда ини файл рядом с инишкой. типа три проекта лежат и используют глобальные, а два типа свои отдельные каждый свой. и парни сыты и девки целы как говорится. и типа для работы можно будет друг другу такую инишку пересылать. нооооо это всего-лишь мое мимопроходилинг диванно-икспердное мнение :)
--- Конец цитаты ---
Ну ini – это что-то вообще из 1995 года.
Но я вас услышал, сделаю тогда YAML (как проект). Пока не знаю, как это в макоси реализовать, чтобы в этом был смысл. Но, на худой конец, сложу в APPDATA в винде, а на остальных системах оставлю как есть.
Сейчас работаю над автообновлением, чтобы эту историю упростить.
SeregaZ:
я использовал гитхаб для этого. программа запускается, лезет на маленький файл на гитхабе, в котором размер файла и срс. ну и номер версии. если у юзверя они не совпадают - качает архив с новой версией. тоже с гитхаба. а чтобы перезаписать саму себя - придется видимо две ехешки содержать. одна сама программа, вторая обновлялка. преланчер так сказать. обновлялка причем перед запуском чтоб сначала проверяла - а не запущена ли основная программа, если запущена, то предлагала бы сохранить текущие результаты и закрыть.
Беларус:
Можно и один экзешник: при обновлении перемещает себя в temp (Винда не даёт удалить запущенную програму, но можно переименовывать и перемещать), а обнову качает на своё место. Если Мак и Линукс дают удалить, то ещё проще.
Chaotix:
--- Цитата: road_t от 13 Апреля 2026, 10:45:02 ---Ну ini – это что-то вообще из 1995 года.
--- Конец цитаты ---
ini для портебл это не легаси, это хорошо себя зарекомендовавший способ хранить конфиги.
Потому что формат хорошо читаем и не требует вообще зависимостей.
Просто на винде исторически сложилось, что проги часто портебл, маленькие и их можно держать в разных папках и переносить легко на другие компы. Это основная фишка винды. В Linux мутузятся с гигабайтными флатпаками и прочим, пытаясь повторить фокус, но получается плохо. Даже маленькие проги ~10Mb, тянут за собой пол системы и весят гигабайты.
Это одна из причин, почему еще не уходят окончательно на Мак или Линух. У тебя лежит прога и она просто работает, например. На других системах она может быть несовместима с новыми версиями библиотек, её уберут из репо или ещё какие приколы.
Вот 010 Editor обновили на линухах, у меня там тему в нем перекосило на последнем KDE. Откатится к предыдущей версии нельзя, убрали рабочие. Чем пользоваться? Ну остается wxMEdit, этот требует старую либу и отказывается работать. Ищешь либу.. Такооой геммор. Проще виртуалку с Виндой 7 поднять. Тут тебе любая старая версия 010 Editor, держи какие хочешь и сколько хочешь, хоть каждый билд.
То есть я понимаю, что на Маках этот принцип непонятен, потому что там этого нет.
Но, на Винде делать портебл проги с простыми ini конфигами это считается хорошим тоном и практично.
А YAML или JSON в большинстве случаев это оверкилл, если можно обойтись простыми парами "ключ-значение".
Ну кому как, но обычно берут по потребностям. Сначала ini, если не нужно много параметров и просто "ключ-значение". Если не хватает, то json. Потом разные YAML оверкилл и прочие XML. Сразу "палить из пушки, если летают только воробьи", ну не очень прагматично.
ini это всегда будет актуально. Можно назвать его cfg, что бы никто не догадался, что это ini. :)
cfg это как бы общее название для конфигов, без привязки к формату, тогда не будет напоминать про 1995 год.
Тут ведь еще такое, что гексовый редактор это обычно для людей немного прошаренных. То есть, у аудитории стандарты выше. Нужно что бы максимально гибко, если не хочешь, что бы потом хексили как Gens, что бы поменять имя логов.
--- Цитата ---Сейчас работаю над автообновлением, чтобы эту историю упростить.
--- Конец цитаты ---
Автообновление на винде это вообще страшно. После того как взломали Notepad++ и автообновление качало троянов. А сейчас недавно взломали сервер CPUID и качало тоже троянов.
По сути, делаешь ещё одну дыру в систему. Автообновления не нужно, имхо. Если ты про такого типа обновления, а не про тулчейн.
Наверное, ещё и антивирусы будут триггерить проги, которые хотят скачать что-то из интернета. Будет больше геммора с поддержкой.
road_t:
--- Цитата: SeregaZ от 13 Апреля 2026, 12:59:26 ---я использовал гитхаб для этого. программа запускается, лезет на маленький файл на гитхабе, в котором размер файла и срс. ну и номер версии. если у юзверя они не совпадают - качает архив с новой версией. тоже с гитхаба. а чтобы перезаписать саму себя - придется видимо две ехешки содержать. одна сама программа, вторая обновлялка. преланчер так сказать. обновлялка причем перед запуском чтоб сначала проверяла - а не запущена ли основная программа, если запущена, то предлагала бы сохранить текущие результаты и закрыть.
--- Конец цитаты ---
Мне не очень нравится идея скачивания, запуска и подмены себя же, я пока сделаю по-бичевому: проверка на новую версию и открытие браузера, чтобы скачать.
--- Цитата: Chaotix от 13 Апреля 2026, 13:36:25 ---ini для портебл это не легаси, это хорошо себя зарекомендовавший способ хранить конфиги.
Потому что формат хорошо читаем и не требует вообще зависимостей.
А YAML или JSON в большинстве случаев это оверкилл, если можно обойтись простыми парами "ключ-значение".
--- Конец цитаты ---
ini в контексте винды я воспринимаю как легаси, в контексте *nix – норм тема. Но, в данном случае, я предпочту YAML – таки-более современное решение.
Добавлено позже:
--- Цитата: Chaotix от 13 Апреля 2026, 14:26:33 ---То есть, автор форка взял opensource проект, добавил полезных фичей и не выложил исходный код?
--- Конец цитаты ---
Скотина.
road_t:
Беларус, Chaotix, SeregaZ, налетайте RTHextion 3.0 alpha
Меня конкретно понесло, но...
Работа с секциями серьезно улучшена, появились группы и, главное, типы секций:
Текст с возможностью указать таблицу
Дизассемблер (пока лучше всего работает для Megadrive, но работа продолжается.
Несжатая графика:
Аудио в разных форматах:
Как всегда, жду ваши комментарии. Только не судите строго, это-таки альфа, даже не бета.
Guyver(X.B.M.):
Жесть, как тебя понесло :lol:
lupus:
Кажется, я скоро скачаю этот комбайн)
SeregaZ:
блиииин... понимаешь, я когда писал что хорошо бы дизассемблер - потихоньку работал над своим, и внезапно преисполнился, что надо возможность загружать трассер файл, который из эмулятора. чтобы дизассемблер читал адреса из трассера и предлагал юзверю пойти в... эти адреса и жмакнуть там дизассемблер. то есть точнее при загрузке трассера - сравнивал, а необработаны ли какие-то адреса из трассера? то есть там сортировка происходит и сравнивание. сортировка, ибо в трассере одни и те-же адреса повторяются. вот чтоб сравнительные процедуры не делать лишние разы - он сначала выкидывает повторы, и только потом сравнивает. второй момент - подсветка кода, который точно засветился в трассере. то есть те строчки, которые были в трассере - подсвечиваются, чтобы юзверь понимал, что данные строки точно в трассере были и это точно код. третий момент - делается ли код для дизассемблера совместимым со старым ASM68K.exe? в идеале конечно свой ассемблер бы прикрутить, чтобы не скакать по граблям старого ASM68K.exe... но это я уже забегаю далеко вперед, и если совсем уж упоротся в небеса - то нужно сразу прикрутить и эмулятор в один флакон. то есть прошелся дизассемблером, получил асм код, собрал этот код опять в ром, сравнил с оригинальным ромом, подсветил где несоответствия, запустил в эмуляторе. и все чтоб делалось в оперативной памяти, без создания файлов на жестком диске. сейчас каждый инструмент создает свой файл. это не совсем неудобно. и если будет эмулятор, то тогда и трассер чтобы он как бы не создавал файл, а общался напрямую с дизассемблером, посылая в него адреса, которые использует 68К.
для меня затык в запиливании своего собственного ассемблера - формулы. если обычные типа move.w a1, d2 проблем не вызывают, то вот всякие move.w (a1+100-1000)/2, d2 - я просто не представляю как отлавливать.
Добавлено позже:
эм... а как дизасм то стартануть? вот я встал на нужный адрес. буковка С не работает :) что нажать? (win 10x64)
Добавлено позже:
диалог сохранения изменений - кнопка "нет" не переведена на русский. discard.
road_t:
SeregaZ, ну ты не торопись. Я и так уже функционала навернул, нужно заставить его четко и стабильно работать для начала.
Мне бы связь пооперативнее, группу в тележке или типа того.
Дизассемблер запускать не надо, это просто вид для секции. Можно поменять вид для всего файла:
Лучше распарсить файл (пока работает кривовато, полирую):
А там уже секцию можно отображать как хочешь:
lupus, давай-давай, я там проверку обновлений добавил. Пока, правда, в стиле Bambulab Studio, когда качать нужно самому, но это как-то безопаснее.
Guyver(X.B.M.), сам в шоке. Я ваще хотел просто перевод фанкотрона доделать, а то скоро 25 лет будет, как я начал.
SeregaZ:
не, не шмогла я не шмогла как говорится. пытался сунуть своего Рэмбу в дизасм - не распознает тип рома как-то так сообщение выскакивает.
я так понимаю начиная со второго лонга (причем там порядок байт задом наперед), парсит код, доходит до ссылок - добавляет в рекурсию, доходит до конца функции останавливается? сам заголовок будет разбит на секции с комментариями? типа тут название, тут чек сумма, тут размер рома... что-то типа пресета для разбивки заголовка для сеговских ромов. сам дизасм делаешь свой с нуля или используешь что-то готовое? если свой - там повешаться можно из-за этих бит что где за что отвечает, сколько байт читать после опкода, и прочий зубодробительный экшн (вместо Б в этом слове там надо читать Ч).
road_t:
Не, там, в основном, CapeStone. А что за рэмбо-то? На какую платформу?
SeregaZ:
над Rambo III для Мегадрайва работаю. ну как работаю... точнее придумываю велосипеды, как работать с ромами. вот он не хочет грузится в RTHextion. или скорей всего я что-то делаю не то.
road_t:
SeregaZ, напиши в телегу, ник такой же, как тут. У меня нормально дизасмится.
Навигация
Перейти к полной версии