Автор Тема: RTHextion - новый hex-редактор для ромхакинга и переводов  (Прочитано 14716 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
Ну ты монстр :)
Я такой редактр планировал сделать через год-два, а теперь смогу пользоваться уже сейчас :thumbup:
:blush:
Ну главное, чтобы продукт был востребован  :biggrin:

Я сейчас ковыряю логотипы Марио и других игр, и мне приходилось всё долго рисовать в Пэйнте:


А теперь всё легко:

А разве нет редакторов Марио на все случаи жизни?..
Выглядит так, как будто возможность добавлять отступы все ещё нужна. В этой итерации я не осилил, еле заставил работать переносы, но я вернусь к вопросу.

Джвацать лет ждал такой редактр :ohmy:
Если когда-нибудь в будущем кончатса идеи на редактр, то представь, што справа не кракозябры, а тайлы, и они образуют картинку. Т.е. можно составить таблицу не только относительную и не только на иероглифы, но и на тайлы.
У меня есть тестовая ветка, где я добавил просмотр графики. Но там даже не знаю... сложность и так уже все красные линии перешла, я так-то хотел просто редактор с автоматическим апдейтом указателей сделать)
В общем, в целом, можно попробовать историю развить, но я боюсь усложнить до невозможности и код и интерфейс.

revert не сбрасывает всё это. Или как сбросить всё это форматирование?
Отдельные переходы удаляются интуитивно (как мне казалось) – бэкспейсом.
При переносе первого байта ничего не происходит, т.к. визуально менять нечего. Можно, в целом, проверять, первый ли он и добавлять два переноса, но, если расширить количество колонок, все станет весьма странным.
Удалить все форматирование можно либо выделив нужный фрагмент и кликнуть на соответствующий пункт контекстного меню:
311845-0
Либо из меню Edit (Редактирование).

Оффлайн Беларус

  • Модератор
  • Сообщений: 1518
    • ВКонтакте
    • Steam
    • Просмотр профиля
Ну главное, чтобы продукт был востребован
В ближайшые месяцы точно буду активно использовать, мне надо изучить много игр.

разве нет редакторов Марио на все случаи жизни?
Есть, я делаю редактр графики универсальный, а не конкретно для Марио.

возможность добавлять отступы все ещё нужна
Это не так важно, как переносы.

Отдельные переходы удаляются интуитивно (как мне казалось) – бэкспейсом.
Так и есть, я им и пользовался.
Удалить все форматирование можно либо выделив нужный фрагмент
Ага, помогло.
При переносе первого байта ничего не происходит, т.к. визуально менять нечего.
Т.е. ты не ожыдаеш, што должна появитса пустая строка? :debile:
Я понимаю, што код ставит на новую строку, хотя левый байт итак на новой строке. Но ведь по визуальной логике всё, начиная с этово байта, должно опуститса ниже, не?

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
Т.е. ты не ожыдаеш, што должна появитса пустая строка?
Это стандартное поведение при переносе строки, когда длина совпадает с шириной окна. Так себя ведет любой текстовый редактор.
Если сделать, как я сказал, то при изменении ширины области отображения там внезапно образуется два переноса, вместо ожидаемого одного.
Из двух зол я выбрал предсказуемое.

Есть, я делаю редактр графики универсальный, а не конкретно для Марио.
Мультплатформенный? Ссылка на гит?

Оффлайн Беларус

  • Модератор
  • Сообщений: 1518
    • ВКонтакте
    • Steam
    • Просмотр профиля
Мультплатформенный? Ссылка на гит?
Нет, для Винды. Пока не готов, нужно ещё несколько месяцев.

Удалить все форматирование можно либо выделив нужный фрагмент
Это удаление удалило оформление и из проекта, даже когда при выходе я выбрал не сохранять.
А ещё - нижние окна не сохраняют своё состояние? Я их закрываю, но они появляютса при каждом запуске.
« Последнее редактирование: 06 Апрель 2026, 23:33:19 от Беларус »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2919
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
road_t, о! а ты случаем дизассемблер не прикрутишь к своему редактору?

Оффлайн Беларус

  • Модератор
  • Сообщений: 1518
    • ВКонтакте
    • Steam
    • Просмотр профиля
SeregaZ, ImHex чем не угодил?

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
road_t, о! а ты случаем дизассемблер не прикрутишь к своему редактору?
Если честно, я об этом думал, но превращать хекс-редактор в IDA – это, как будто, перебор. Плюс получается, что нужна поддержка модулей/плагинов, т.к. реализовать поддержку всех возможных платформ – это будет ппц, мягко говоря.

Это удаление удалило оформление и из проекта, даже когда при выходе я выбрал не сохранять.
А ещё - нижние окна не сохраняют своё состояние?
Это поправил. Пока не удалось побороть баг с неправильным сохранением положения курсора – он какой-то плавающий: то работает, то нет.
Ну и еще кое-что починил по мелочи.

Скачать RTHextion 2.0.1

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2919
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
рассказываю: это должен быть софт мечты, то есть и хекс редактор и дизассемблер и ассемблер и эмулятор со всеми возможными окнами дебагов (оперативка, видеопамять, регистры, палитры) в одном флаконе. чтобы все происходило в оперативке, без создания внешних файлов. сейчас же херня творится: сначала дизассемблер создает асм файл, после ассемблер создает ром файл, после эмулятор загружает этот ром, после смотришь эти окна дебагов с дичайше неудобным интерфейсом жопой деланные и опять сохраняются файлы трассеров к примеру на диске, находишь мутные места, правишь, повторить с начала. я конечно понимаю что сообщество ромхакеров это сообщество мазохистов, но не на столько-же! в наш век, когда всякие артемиды бороздят просторы вселенной и мотаются автостопом к Луне и обратно уж можно было бы придумать что-то адекватное и современное, а не эти все калечные инструменты.

Добавлено позже:
и кстаааати! про калеченный софт... никто не знает в шелловском моде эмулятора Gens есть ли возможность как-то в коносоли для запуска эмуля указать название для файла "trace.log"? а то каждый раз он перезаписывается. точнее дописывается в существующий. хочу задавать внешне название для файла трассера.

Добавлено позже:
гыгы... а кто сказал что ромхачить можно только ромы? эмулятор тоже можно. заменил в хекс редакторе trace.log на trac1.log и вроде работает :) костыль, но мне сойдет.

Добавлено позже:
не долго музыка играла. почему-то при подобном старте трассер съедает начальные команды и пишет откуда-то с середины  >:( а ежели мышкой ром на эмулятор скинуть, то тогда нормально - пишет с начала. пойду думать как пофиксить. видимо нужна задержка перед стартом.

Добавлено позже:
ну все. наши победили. логика по итогу будет такая:
запускатор берет свое имя - RambR.exe - читает это самое имя RambR
сносит файл имя.log, то есть в данном случае RambR.log
запускает эмулятор RambR.exe из папки Emul (в этом эмуле вшито название файла RambR.log как имя файла для трассера и dmpR.bin для файла дампа памяти)
запускатор дожидается окна эмуля, выдает ему флаг "поверх всех окон", а так-же посылает нажатие клавишь ctrl + shift + ? - включение записи трассера
запускатор еще чуток ждет, и "скидывает" в окно эмулятора файл рома, который опять таки формируется исходя из названия самого запускатора RambR + ".bin".

костыли? костыли!  :lol: но а что делать...
« Последнее редактирование: 08 Апрель 2026, 09:49:08 от SeregaZ »

Оффлайн Беларус

  • Модератор
  • Сообщений: 1518
    • ВКонтакте
    • Steam
    • Просмотр профиля
реализовать поддержку всех возможных платформ – это будет ппц, мягко говоря
Упомянутый мной выше редактр просто использует Capstone - он поддержывает все архитектуры. Очень простая для подключения библиотека.
Но зачем делать очередной обычный хекс-редактр? Лучше искать уникальные фичи, выделятса. Вот твой уже выделяетса, поддержывая Enter.
Тебе надо бы это отметить на ГитХабе как первый в мире такой хекс-редактр :)

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
Да ладно, неужели никто не догадался еще?.. покурю capstone, но разве редактор графики не важнее будет?..

Добавлено позже:
рассказываю: это должен быть софт мечты, то есть и хекс редактор и дизассемблер и ассемблер и эмулятор со всеми возможными окнами дебагов (оперативка, видеопамять, регистры, палитры) в одном флаконе. чтобы все происходило в оперативке, без создания внешних файлов. сейчас же херня творится: сначала дизассемблер создает асм файл, после ассемблер создает ром файл, после эмулятор загружает этот ром, после смотришь эти окна дебагов с дичайше неудобным интерфейсом жопой деланные и опять сохраняются файлы трассеров к примеру на диске, находишь мутные места, правишь, повторить с начала. я конечно понимаю что сообщество ромхакеров это сообщество мазохистов, но не на столько-же! в наш век, когда всякие артемиды бороздят просторы вселенной и мотаются автостопом к Луне и обратно уж можно было бы придумать что-то адекватное и современное, а не эти все калечные инструменты.
Звучит, конечно п-то, но это явно работа не для одного человека. Это уже тянет на очень коммерческий продукт.

Добавлено 10 апреля 2026 года:
Посоны, сделал базовую поддержку секций. Пока только работает как подсветка и навигация, но дальше будет больше.



RTHextion 2.1
« Последнее редактирование: 12 Апрель 2026, 15:18:55 от ghostdog3 »

Оффлайн Chaotix

  • Пользователь
  • Сообщений: 1742
  • Пол: Мужской
    • Просмотр профиля
А как включить "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 байт например.

« Последнее редактирование: 11 Апрель 2026, 11:34:37 от Chaotix »

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
А как включить "Mini Map", как на скрине? В смысле, узкую полосочку предпросмотра возле прокрутки слева.
Она не отображается. Вроде бы была когда-то в первых версиях, после этого больше никогда не видел. Как включить не понял, на View -> Maps не реагирует.
Ты о которой? Их там две: карта изменений и карта поинтеров. Первая отображается, если включить отображение изменений в доке изменений. А вторая, если есть найденные поинтеры. Но можно выключить через View->Dock.

Ещё настройки, они сохраняются в реестре. Можно сделать портативно, что бы сохранялись в settings.json в директорию к самой программе? Ну или в ini, смотря что удобнее заинклюдить.
Это должно быть просто сделать, просто подключить либу и перенести эти настройки в конфиг. json просто подключается, одним инклюдом.
Почему в реестр? Обычно никто не любит, когда проги пишут в реестр (еще со времён ePSXe), потому что удаляешь прогу, а в реестре остаётся мусор и относительно сложно вычистить или забэкапить. Было бы даже лучше и правильно ложить конфиг в Appdata.
Приложение мультиплатформенное, построено на Qt. Соответствено, сохранение настроек унифицировано. Реестр – это дефолтный способ хранить настройки в винде. Во времена, когда я виндой пользовался, 99% приложений их там и хранило. А в чем суть проблемы? Настройки не редактируются через окно настроек? Для пользователя разницы, как хранятся настройки, быть не должно вообще.

"базовая поддержку секций" - удобно. Но разделяется абзацами, было бы лучше что бы это можно было опционально включать/выключать. Не понял, как это сделать. Иногда удобнее посмотреть монолитным кодом, иногда когда разделено. Но, лучше бы был выбор. В смысле, что бы цветами сохранялось выделение, но отображалось как обычно, пока не включишь разделение.
Виртуальные переносы можно удалить бэкспейсом. Думал вынести запрос на добавление виртуальных переносов при добавлении секции, но решил, что еще одно окно ни к чему, а они чаще нужны. В противном случае, можно удалить вручную.

Еще как пользоваться "Virtually Format" не разобрался. Вроде бы, вообще ничего не делает. Точно не то, чего от этого ждешь. Я думал, что это "Fill Selection", но нет. Например, в HxD просто выделяешь, нажимаешь правой мышкой и выбираешь "Fill Selection", пишешь каким кодом заполнить, например FF и заполняет эту область, удобно.

Здесь "Virtually Format".. Может лучше бы было назвать тоже "Fill Selection"? Это было бы логично. Что такое это "виртуальное форматирование"? Указываешь количество линий. Ставлю 8, Hex, Character = FF, жму Ok. Ничего не делает, ничего не меняется, просто курсор прыгает куда-то вниз.
Хотелось бы просто Fill области, которой выделил, как в HxD. В линиях непонятно как считать. Ну или по оффсету хотя бы от 1E7C485 и до 1E7C4EA допустим или в байтах, 66 байт например.
Блин, сорян) это вообще другое.

Ты ищешь 'Fill with':
312289-0

А виртуальное форматирование – это автоматическое добавление виртуальных переносов с разбиением по определенному символу. Количество строк – это количество добавляемых переносов.

Выделяем фрагмент, кликаем правой кнопкой:
312291-1

Выбираем virtually format:
312293-2

Результат:
312295-3




З.Ы. Прикладывай по возможности скрины: не факт, что баг проявляется у меня и мы можем просто не понять друг друга без картинки.

Оффлайн Chaotix

  • Пользователь
  • Сообщений: 1742
  • Пол: Мужской
    • Просмотр профиля
Реестр – это дефолтный способ хранить настройки в винде. Во времена, когда я виндой пользовался, 99% приложений их там и хранило.
Ну как бы объяснить.. Не веришь мне, послушай Claude Sonnet 4.6 (просто я сам задолбаюсь пруфы искать в гайдлайнах и писать то же самое; не нейрослопа ради):


Никто не запрещает, но это как бы не найс. Но, я не настаиваю, просто говорю что легаси.
Вот в 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 тут не катит. Что понятно автору, не всегда очевидно со стороны, особенно когда нету никакой справки и описания ключевых фич и как ими пользоваться
« Последнее редактирование: 13 Апрель 2026, 02:41:12 от Chaotix »

Оффлайн Беларус

  • Модератор
  • Сообщений: 1518
    • ВКонтакте
    • Steam
    • Просмотр профиля
При удалении мусор останетса ведь и в AppData, какая разница?
Интересно, а в чём проблема хранить настройки рядом с програмой?🤔
Я вот собираюсь хранить настройки вообще внутри самой програмы, т.е. даже без отдельново файла настроек :)

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2731
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Я пользуюсь программой одной, которую кидаю в разные папки с проектами. В каждом проекте у неё получаются свои настройки. Мне так удобнее. Может, и тут будет так удобно? :neznayu: В портативных версиях программ это очень удобно...

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

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2919
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
ини файл рядом с ехешкой. каждому проекту свое получается. но можно и переключатель - типа "использовать глобальные настройки" - копии программы лезут в реестр в одно и то-же место и читают настройки оттуда, а можно переключатель поставить на "свои настройки" - тогда ини файл рядом с инишкой. типа три проекта лежат и используют глобальные, а два типа свои отдельные каждый свой. и парни сыты и девки целы как говорится. и типа для работы можно будет друг другу такую инишку пересылать. нооооо это всего-лишь мое мимопроходилинг диванно-икспердное мнение :)

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
Ну как бы объяснить.. Не веришь мне, послушай Claude Sonnet 4.6
Послушал, добавил в плейлист  :crazy:

Это была практика эпохи Windows XP/7
Примерно на этом моменте моя эпоха разработки под винду закончилась, а на восьмерке и использование.

Суть проблемы:
"Если зайти в File -> Preferences -> Themes и переключится на любую тему, то настройка цветов слетает и всё становится серым.

И сбросить настройки на дефолт я не нашёл как. Ты говорил что можно, но где это, загадка. Нету такой кнопки. Хочется просто кнопку: "Сбросить Настройки" (Default // Reset setting to default). Её нету, либо так запрятано, что без чтения мануалов найти нельзя.
312315-0М?..

Понял, оно работает. Просто не всегда хорошо видно на чёрном и настройки вроде нету.
Цвет на карте совпадает с цветом подсветки сущности – иначе будет совсем непонятно. Цвета все настраиваются.

Ну мануала же нету и F1 не работает, поэтому RTFM тут не катит. Что понятно автору, не всегда очевидно со стороны, особенно когда нету никакой справки и описания ключевых фич и как ими пользоваться
Я уже понял, что без доков не обойтись. Начиналось-то всё мирно  :wacko:

Я пользуюсь программой одной, которую кидаю в разные папки с проектами. В каждом проекте у неё получаются свои настройки. Мне так удобнее. Может, и тут будет так удобно? :neznayu: В портативных версиях программ это очень удобно...

Ещё и разные версии я использую в каждом из случаев, так как кое-где удобнее пользоваться старой версией, а в новой кое-какого функционала уже нет, его переиначили и мне он не подходит в некоторых случаях...
А сохранять настройки проекта в проект не лучше?

ини файл рядом с ехешкой. каждому проекту свое получается. но можно и переключатель - типа "использовать глобальные настройки" - копии программы лезут в реестр в одно и то-же место и читают настройки оттуда, а можно переключатель поставить на "свои настройки" - тогда ини файл рядом с инишкой. типа три проекта лежат и используют глобальные, а два типа свои отдельные каждый свой. и парни сыты и девки целы как говорится. и типа для работы можно будет друг другу такую инишку пересылать. нооооо это всего-лишь мое мимопроходилинг диванно-икспердное мнение :)
Ну ini – это что-то вообще из 1995 года.
Но я вас услышал, сделаю тогда YAML (как проект). Пока не знаю, как это в макоси реализовать, чтобы в этом был смысл. Но, на худой конец, сложу в APPDATA в винде, а на остальных системах оставлю как есть.

Сейчас работаю над автообновлением, чтобы эту историю упростить.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2919
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
я использовал гитхаб для этого. программа запускается, лезет на маленький файл на гитхабе, в котором размер файла и срс. ну и номер версии. если у юзверя они не совпадают - качает архив с новой версией. тоже с гитхаба. а чтобы перезаписать саму себя - придется видимо две ехешки содержать. одна сама программа, вторая обновлялка. преланчер так сказать. обновлялка причем перед запуском чтоб сначала проверяла - а не запущена ли основная программа, если запущена, то предлагала бы сохранить текущие результаты и закрыть.

Оффлайн Беларус

  • Модератор
  • Сообщений: 1518
    • ВКонтакте
    • Steam
    • Просмотр профиля
Можно и один экзешник: при обновлении перемещает себя в temp (Винда не даёт удалить запущенную програму, но можно переименовывать и перемещать), а обнову качает на своё место. Если Мак и Линукс дают удалить, то ещё проще.

Оффлайн Chaotix

  • Пользователь
  • Сообщений: 1742
  • Пол: Мужской
    • Просмотр профиля
Ну ini – это что-то вообще из 1995 года.
ini для портебл это не легаси, это хорошо себя зарекомендовавший способ хранить конфиги.
Потому что формат хорошо читаем и не требует вообще зависимостей.

Просто на винде исторически сложилось, что проги часто портебл, маленькие и их можно держать в разных папках и переносить легко на другие компы. Это основная фишка винды. В Linux мутузятся с гигабайтными флатпаками и прочим, пытаясь повторить фокус, но получается плохо. Даже маленькие проги ~10Mb, тянут за собой пол системы и весят гигабайты.

Это одна из причин, почему еще не уходят окончательно на Мак или Линух. У тебя лежит прога и она просто работает, например. На других системах она может быть несовместима с новыми версиями библиотек, её уберут из репо или ещё какие приколы.


ini это всегда будет актуально. Можно назвать его cfg, что бы никто не догадался, что это ini.  :)
cfg это как бы общее название для конфигов, без привязки к формату, тогда не будет напоминать про 1995 год.

Тут ведь еще такое, что гексовый редактор это обычно для людей немного прошаренных. То есть, у аудитории стандарты выше. Нужно что бы максимально гибко, если не хочешь, что бы потом хексили как Gens, что бы поменять имя логов.

Цитата
Сейчас работаю над автообновлением, чтобы эту историю упростить.
Автообновление на винде это вообще страшно. После того как взломали Notepad++ и автообновление качало троянов. А сейчас недавно взломали сервер CPUID и качало тоже троянов.
По сути, делаешь ещё одну дыру в систему. Автообновления не нужно, имхо. Если ты про такого типа обновления, а не про тулчейн.
Наверное, ещё и антивирусы будут триггерить проги, которые хотят скачать что-то из интернета. Будет больше геммора с поддержкой.
« Последнее редактирование: 13 Апрель 2026, 14:13:16 от Chaotix »

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
я использовал гитхаб для этого. программа запускается, лезет на маленький файл на гитхабе, в котором размер файла и срс. ну и номер версии. если у юзверя они не совпадают - качает архив с новой версией. тоже с гитхаба. а чтобы перезаписать саму себя - придется видимо две ехешки содержать. одна сама программа, вторая обновлялка. преланчер так сказать. обновлялка причем перед запуском чтоб сначала проверяла - а не запущена ли основная программа, если запущена, то предлагала бы сохранить текущие результаты и закрыть.
Мне не очень нравится идея скачивания, запуска и подмены себя же, я пока сделаю по-бичевому: проверка на новую версию и открытие браузера, чтобы скачать.

 
ini для портебл это не легаси, это хорошо себя зарекомендовавший способ хранить конфиги.
Потому что формат хорошо читаем и не требует вообще зависимостей.

А YAML или JSON в большинстве случаев это оверкилл, если можно обойтись простыми парами "ключ-значение".
ini в контексте винды я воспринимаю как легаси, в контексте *nix – норм тема. Но, в данном случае, я предпочту YAML – таки-более современное решение.


Добавлено позже:
То есть, автор форка взял opensource проект, добавил полезных фичей и не выложил исходный код?
Скотина.

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
Беларус, Chaotix, SeregaZ, налетайте RTHextion 3.0 alpha

Меня конкретно понесло, но...

Работа с секциями серьезно улучшена, появились группы и, главное, типы секций:

Текст с возможностью указать таблицу


Дизассемблер (пока лучше всего работает для Megadrive, но работа продолжается.


Несжатая графика:


Аудио в разных форматах:


Как всегда, жду ваши комментарии. Только не судите строго, это-таки альфа, даже не бета.

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2731
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Жесть, как тебя понесло  :lol:

Оффлайн lupus

  • Пользователь
  • Сообщений: 3886
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
Кажется, я скоро скачаю этот комбайн)

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2919
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
блиииин... понимаешь, я когда писал что хорошо бы дизассемблер - потихоньку работал над своим, и внезапно преисполнился, что надо возможность загружать трассер файл, который из эмулятора. чтобы дизассемблер читал адреса из трассера и предлагал юзверю пойти в... эти адреса и жмакнуть там дизассемблер. то есть точнее при загрузке трассера - сравнивал, а необработаны ли какие-то адреса из трассера? то есть там сортировка происходит и сравнивание. сортировка, ибо в трассере одни и те-же адреса повторяются. вот чтоб сравнительные процедуры не делать лишние разы - он сначала выкидывает повторы, и только потом сравнивает. второй момент - подсветка кода, который точно засветился в трассере. то есть те строчки, которые были в трассере - подсвечиваются, чтобы юзверь понимал, что данные строки точно в трассере были и это точно код. третий момент - делается ли код для дизассемблера совместимым со старым ASM68K.exe? в идеале конечно свой ассемблер бы прикрутить, чтобы не скакать по граблям старого ASM68K.exe... но это я уже забегаю далеко вперед, и если совсем уж упоротся в небеса - то нужно сразу прикрутить и эмулятор в один флакон. то есть прошелся дизассемблером, получил асм код, собрал этот код опять в ром, сравнил с оригинальным ромом, подсветил где несоответствия, запустил в эмуляторе. и все чтоб делалось в оперативной памяти, без создания файлов на жестком диске. сейчас каждый инструмент создает свой файл. это не совсем неудобно. и если будет эмулятор, то тогда и трассер чтобы он как бы не создавал файл, а общался напрямую с дизассемблером, посылая в него адреса, которые использует 68К.

для меня затык в запиливании своего собственного ассемблера - формулы. если обычные типа move.w a1, d2 проблем не вызывают, то вот всякие move.w (a1+100-1000)/2, d2 - я просто не представляю как отлавливать.

Добавлено позже:
эм... а как дизасм то стартануть? вот я встал на нужный адрес. буковка С не работает :) что нажать? (win 10x64)

Добавлено позже:
диалог сохранения изменений - кнопка "нет" не переведена на русский. discard.
« Последнее редактирование: 24 Апрель 2026, 11:41:37 от SeregaZ »

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
SeregaZ, ну ты не торопись. Я и так уже функционала навернул, нужно заставить его четко и стабильно работать для начала.
Мне бы связь пооперативнее, группу в тележке или типа того.

Дизассемблер запускать не надо, это просто вид для секции. Можно поменять вид для всего файла:
312791-0



Лучше распарсить файл (пока работает кривовато, полирую):
312793-1



А там уже секцию можно отображать как хочешь:
312795-2


lupus, давай-давай, я там проверку обновлений добавил. Пока, правда, в стиле Bambulab Studio, когда качать нужно самому, но это как-то безопаснее.

Guyver(X.B.M.), сам в шоке. Я ваще хотел просто перевод фанкотрона доделать, а то скоро 25 лет будет, как я начал.


Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2919
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
не, не шмогла я не шмогла как говорится. пытался сунуть своего Рэмбу в дизасм - не распознает тип рома как-то так сообщение выскакивает.

я так понимаю начиная со второго лонга (причем там порядок байт задом наперед), парсит код, доходит до ссылок - добавляет в рекурсию, доходит до конца функции останавливается? сам заголовок будет разбит на секции с комментариями? типа тут название, тут чек сумма, тут размер рома... что-то типа пресета для разбивки заголовка для сеговских ромов. сам дизасм делаешь свой с нуля или используешь что-то готовое? если свой - там повешаться можно из-за этих бит что где за что отвечает, сколько байт читать после опкода, и прочий зубодробительный экшн (вместо Б в этом слове там надо читать Ч).

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
Не, там, в основном, CapeStone.  А что за рэмбо-то? На какую платформу?

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2919
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
над Rambo III для Мегадрайва работаю. ну как работаю... точнее придумываю велосипеды, как работать с ромами. вот он не хочет грузится в  RTHextion. или скорей всего я что-то делаю не то.

Оффлайн road_t

  • Пользователь
  • Сообщений: 31
  • Пол: Мужской
    • Просмотр профиля
SeregaZ, напиши в телегу, ник такой же, как тут. У меня нормально дизасмится.