Просмотр сообщений

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


Темы - perfect_genius

Страницы: [1]
1
Программа редактирует ром особым образом и пользователь проверяет, появилось ли нужное ему изменение. Если не появилось, то ром восстанавливается и изменяется в другом месте. Если нужное находится, то начинается удаление лишних изменений.
Сейчас программа ищет только логику типа "включилось/выключилось", "есть/нет", "случилось/не случилось", "равно/не равно" (инструкции BEQ и BNE) и переключает их в друг друга. Т.е. вряд ли найдёт скорость, цвет, параметры, координаты и т.д. Не ищет и логику "больше/меньше".
Примеры того, что удалось сделать таким способом (в скобках - количество попыток):

Что не удалось:

Можете предложить мне свои идеи хаков для проверки.
Как видно, поиск требует не так много времени - не более 300 попыток, каждая занимает секунд 5 или меньше.
За всё время разработки я ни разу не заглянул в отладчик, т.к. мне было интересно попробовать добиться нужного принципиально только таким способом.

   Как пользоваться
—сохраняетесь перед условием, которое хотите изменить. В моём случае с секретными меню UMK3 и пунктами в опциях SoR я сохранился на предыдущем экране, чтобы код рисовал-обновлял нужный экран. Если сохраниться прямо на нужном экране, то каждый раз будет загружаться только этот сохранённый экран, без нужных дополнительных пунктов.
Если же нужное вам может появляться на экране в любой момент при определённом условии, тогда можно и сохраняться в любой момент - как только Глитчер переключит это условие, нужное появится сразу после загрузки сохранения.
—закидываете ром на иконку программы и открываете его в эмуляторе, загружаете сохранение, смотрите результат и выбираете подходящий пункт меню в Глитчере. Перезагружаете ром, перезагружаете сохранение, смотрите, выбираете пункт меню и так повторяете.
—при закрытии Глитчера ром восстанавливается до первоначального состояния, а поиск сохраняется, чтобы можно было продолжить потом. При этом отменяется последний выбранный пункт - это аналог Ctrl+Z для случая, если ошибочно нажали не ту клавишу. Т.е. достаточно перезапустить программу.
—если при поиске нашли что-то интересное, не связанное с основной целью, то есть два варианта:
1) сделать бэкап файла [поиск на паузе], чтобы искать потом;
2) выбрать пункт 3 и искать нужную инструкцию сейчас - этот пункт создаёт [поиск на паузе] сразу и даст вернуться к основному поиску, если в конце ничего не нажмёте и выйдете из программы.

   Подробнее про пункты интерфейса
1   баги мешают увидеть есть ли нужное изменение
2   баги не мешают увидеть, что нужного изменения нет
3   баги не мешают увидеть, что нужное изменение есть. Далее начинается удаление багов

   Как можно ускорить поиск

Програмка создана в Win11, VS2022 и запакована в zip без сторонних программ самой же ОС. Но, при попытке скачивания архива из интернета, Винда ругается на вирусы и удаляет файл - приходится выключать антивирус :debile: :crazy:
Как назвать такое позорище Мелкомягких приличными словами - у меня не хватает фантазии  :facepalm: :neznayu:
Если кто-то боится, то исходный код могу дать в личку

2
3dnews.ru/1090501/intel-predstavila-apx-rasshireniya-arhitekturi-x8664-kotorie-uskoryat-lyuboe-po

-удвоение (с 16 до 32) числа регистров общего назначения
-добавление трёхоперандного формата большинству существующих целочисленных инструкций
-добавление дополнительных условных инструкций для облегчения предсказания переходов
-новая 64-битная инструкция безусловного перехода

Типа, программы достаточно перекомпилировать новыми компиляторами, чтобы получить ускорение.

Сколько десятилетий уже хоронят x86, а оно вон всё брыкается и хочет активно жить и развиваться :lol:
Костыль на костыле, но работает же. Обратная совместимость, как обычно, решает.
Если это взлетит, то на этот раз уже очередь AMD реализовывать у себя идею конкурента.

Народ только-только поголовно перешёл на 64 бита, а теперь вот снова будет переходить на новое железо из-за софта, несовместимого с текущим железом. Сейчас у программ часто есть бессмысленный выбор между 32-х и 64-х битными версиями, но выбор между x86-64 и APX уже реально будет иметь смысл, т.к. будет разница в производительности.

Цитата
Согласно объяснению Intel, код, скомпилированный с помощью Intel APX, на 10% меньше нагружает ядра и на 20% компактнее, чем код, адаптированный под Intel 64. Это означает, что APX-код не только выполняется быстрее, но и имеет меньшее потребление

+ Intel предложила x86S — исконно 64-битный вариант архитектуры x86 для будущих CPU

3
У кого-то получилось всё настроить и скомпилировать свой или чужой код?
Может кто-то и Open PS2 Loader собирал?

4
Разное / Проблемы с Си
« : 31 Март 2021, 18:00:52 »
Спрашиваю тут, т.к. не могу найти ответ в Гугле, даже не знаю как точно сформулировать вопрос.
На специализированных сайтах по программированию регистрироваться не охота, раз на родном Эмуленде есть оффтоп-тема.

1 Как выделить память под определённый тип элемента по ситуации?

Допустим, в одном случае программа выяснит, что потребуется выделить массив типа int, а в следующий раз char. Потом с этим массивом работать.
if'ы на каждый тип считаю дикостью. Вижу только вариант выделить char и "менять" указатель на нужный тип, прыгать по элементам массива через указатель-переменную. Но проблемой будет доставать что-то крупнее char, например для int придётся вытаскивать 4 байта, каждый раз сдвигая его в переменной и прибавляя:
char массив[4];
int a = (((((массив +3) << 8) +массив +2) << 8) +массив +1 << 8) +массив;

да и другие сложности ожидаются, наверно.
Или можно как-то менять указатель или тип массива?

2 Как присвоить динамичный массив в статичный?
Нужен статичный массив, каждый элемент которого - указатель на динамичный массив.

Так не работает:
int массив[100];
массив[0] = new int[10];

Так тоже:
int массив[100];
int* test[10];
массив[0] = &test;


До этого нормально работал с двумерными динамичными массивами и проблем не знал. Опыта с указателями пока нет.

5
SMD
Есть ли простой способ вытащить палитру, например из VDP-просмотрщика эмулятора, и загрузить его в какой-то из тайловых редакторов?
И есть какой-то общий способ найти палитру в роме или в дебаггере?
У меня куча редакторов, но у каждого свой формат палитры, похоже. Дамп с Генса не подошёл ни к одному.

6
Пишете название игры, платформу и версию (лучше по GoodXXXX), описываете что требуется изменить/изучить/написать (распаковщик-упаковщик, редактор...), и назначаете оплату. Не спрашивайте "Сколько это будет стоить?"
После выполнения заказа отпишитесь об этом.
Если исполнитель предлагает цену выше и вы не согласны, то необязательно ему что-то отвечать, или переходите в личку.
Если сами поднимаете оплату, то выложите заказ снова, т.к. изменение в старом комментарии могут не заметить. Если ещё доступно, удалите старый комментарий.

Прошу не писать комментарии типа "Зачем? Игра и так лёгкая/так задумана", "Никто за такую сумму не сделает"и т.д.. Кому надо - сделает или предложит свою сумму, остальным не сложно будет пройти мимо.

7
Идея в том, что компьютер видит повторяющиеся действия и предлагает их автоматизировать:


Подробнее можно почитать здесь, а следить за развитием здесь.

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

8
Показали Nintendo 3DS. Создавать новую тему или тут продолжим? :lol:
Наверно, просто добавят поддержку в Десмуме.

9
Я сам очумел от первых трёх, а жду больше дъявола-плаксу и безбашенные гонки.

Страницы: [1]