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

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


Темы - perfect_genius

Страницы: [1]
1
Ром редактируется особым образом и пользователь проверяет в эмуляторе на нужное ему изменение. Если оно не появилось, то ром восстанавливается и изменяется в другом месте. Если нужное находится, то начинается удаление лишних изменений.

Два инструмента для разных задач:

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

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

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


ПЕРЕСТАВЛЯТЕЛЬ ресурсов
Ищет массивы указателей, которые могут указывать на что угодно: изображения, звуки, состояния анимаций, уровни, порядок объектов, код поведения и т.д.
В отличие от предыдущего инструмента, при поиске надо искать не конечный желаемый результат, а изменение нужного элемента.
Например, в Cannon Fodder надо, чтобы при выстреле вылетали не пули, а ракеты. При поиске можно увидеть, как вместо пуль начали вылетать вертолёты - нужный элемент (пули) затронут и найдены указатели на пулю и вертолёты. Скорее всего, рядом с ними в массиве есть и указатели на другие объекты, среди которых могут быть ракеты. Далее Переставлятель начинает подставлять все эти соседние указатели вместо указателя пули, чтобы вы могли видеть что происходит в игре при вылете пули и дать этому название. В таком массиве именованных указателей будет легко ориентироваться и переставлять объекты местами.

Примеры того, что я нашёл не выискивая что-то конкретное, просто по пути:



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

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

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

Цитата: Один великий человек
Я не боюсь того, кто выучил сотню приёмов хакинга. Я боюсь того, кто выучился сотне нажатий в Глитчере

Антивирус Win10/Win11 сразу удаляет новые неизвестные ему исполнительные файлы, скачанные из интернета, поэтому перед скачиванием придётся его выключить.

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]