Ром (игра) изменяетса особым образом и пользователь проверяет в эмулятре, есть ли нужное ему изменение. Если нет, то ром восстанавливаетса и изменяетса в другом месте. Если есть, то начинаетса удаление лишних изменений.
Результат не гарантирован, но зато проверка не требует знаний и особых усилий.
Два инструмента для разных задач:
ИНВЕРТР логики
Мой вариант ищет только логику типа "есть/нет", "включилось/выключилось", "случилось/не случилось", "равно/не равно" (инструкцыы BEQ и BNE) и инвертирует её. Т.е. не ищет скорость, цвет, параметры, координаты и т.д.
Примеры тово, што можно сделать таким способом (в скобках примерное количество требуемых шагов/нажатий):
Contra
Не надо набирать код Конами на 30 жызней (22)
Teenage Mutant Ninja Turtles - Tournament Fighters (NES)
Хотхэд против Хотхэда (13)
Ultimate Mortal Kombat 3 (USA)
Секретные меню изначально, без ввода комбинацыы. Оказалось, што инструкцый понадобитса две - одна отображает эти пункты меню (56), другая даёт по ним ходить (34). Обнаружылась ещё одна альтернативная, активирующая эти меню при нажатии "вниз" (127), будто набрана полная комбинацыя AC↑B↑BA↓
Streets of Rage (W) (REV00) [!]
Секретное меню выбора уровня (19)
Возможность выбрать одинаковых персонажей (48)
Streets of Rage 2 (USA)
Секретное меню выбора уровня, три инструкцыы: отображение пункта меню (83), доступ к нему сверху (156) и доступ снизу (45). Можно было ограничитса только одной стороной или вообще без отображения, но хотелось сделать красиво
Streets of Rage 3 (USA)
На этот раз аж 5 инструкцый: доступ сверху (60), доступ снизу (43), а отображение - уже комбинацыя инструкцый: нет номера уровня и пункта Exit (18) + есть номер и Exit (46) + ещё одна инструкцыя. Последнюю нашёл только предварительно изменив первые 2 инструкцыы в роме, т.к. она сама по себе, без сочетания с остальными, не находима - визуально ничево не меняет в игре
Contra - Hard Corps (USA, Korea) (En)
Выбор одинаковых персонажей - 2 инструкцыы: для нажатия "вверх"/"влево" (114) и "вниз"/"вправо" (217)
Што не удалось:
Contra - Hard Corps (USA, Korea) (En)
Бесконечные прыжки у Брауни. Ожыдал инвертировать логику типа "если персонаж прыгнул в первый раз, то прыгнуть снова" в "если персонаж прыгнул не в первый раз, то прыгнуть снова", но там што-то другое.
Зато неожыданно нашёл неуязвимость для первово игрока, хотя всегда думал, што там только логика "если получен урон, то игрок умирает", которая инвертируетса в "если не получен урон, то игрок умирает", што обычно и происходило - игрок быстро умирал
RoboCop Versus The Terminator (USA)
Не показывать количество очков во время игры. Удалось только отключить весь интрфэйс и сломать счётчик, штобы всегда оставались нули
Battletoads (World) [SMD]
Тоже не показывать количество очков во время игры. Однажды эти цыфры выровнялись по левой стороне
В случае с последними двумя играми позже дошло, што в них отображение очков никогда не включаетса/отключаетса отдельно от остальново интрфэйса, поэтому шансы были близки к нулю. Тут нужен другой подход и Инвертр для этово не подходит.
Как видно, поиск простых вещей типа хака меню требует не так много времени - около 300 шагов, каждая занимает секунд 5 или меньше. С большым шансом можно получать неуязвимость, разблокировывать што-то в меню, включать встроенные читы. Большая выгода по времени, если искать по пути сразу несколько вещей.
pav13 сделал свои версии для
Сеги и
NES, избавляющих от лишних действий (надо лиш нажымать одну из двух кнопок/клавиш) и это сильно ускоряет поиск. Также у ево вариантов есть выбор из нескольких групп инструкцый, если хочетса поэкспериментировать.
Мой вариант потребует ручного переключения между эмулятром и програмой и дополнительных действий в самой игре, но есть и преимущества: автообновление, свобода выбора эмулятра и сохранение изменений в роме (SMD).
У
версии для игр NES от
AnyZero тоже есть выбор из нескольких групп инструкцый.
ПЕРЕСТАВЛЯТЕЛЬ ресурсов [только SMD]
Ищет массивы указателей, которые могут указывать на што угодно: изображения, звуки, состояния анимацый, уровни, порядок обйектов, код поведения и т.д.
В отличии от предыдущево инструмента, при поиске надо искать не конечный желаемый результат, а изменение нужново элемента.
Например, в Cannon Fodder надо, штобы при выстреле вылетали не пули, а ракеты. При поиске можно увидеть, как вместо пуль начали вылетать вертолёты, значит нужный элемент (пули) затронут и найдены указатели на пулю и вертолёты. Скорее всево, рядом с ними в массиве есть и указатели на другие обйекты, среди которых могут быть ракеты. Далее Переставлятель начинает подставлять все эти соседние указатели вместо указателя пули, штобы вы могли видеть што происходит в игре при вылете пули и дать этому название. В таком массиве именованных указателей будет легко ориентироватса и переставлять обйекты местами.
Примеры тово, што я нашёл не выискивая што-то конкретное, просто по пути:
Ultimate Mortal Kombat 3 (USA)спрайты имён бойцов внутри полоски здоровья:
(позицыя в массиве, указатель, количество ево копий, название)
1 270000 42 A
2 10002 25 B
3 30004 18 C
4 50006 8 E
5 70008 50 G
6 9000a 9 H
7 b000c 8 I
8 d000e 9 M
9 f0010 8 L
10 110012 9 часть буквы
11 130014 8 пробел
12 150016 4 пробел, вариант 2
13 170018 8 O
14 19001a 6 R
15 1b001c 9 T
16 1d001e 7 часть буквы или кавычки
17 1f0020 8 середина M?
18 210022 7 часть буквы
19 230024 5 Y
фоны и арены:
1 4f1c2 витраж
2 4f80c портал
3 4f312 мост
4 4f49c космос
5 4f58c картинка - башня Шао Кана
6 4f614 картинка - крышы
7 4f66e серый одноцветный фон
8 4f758 логотип
9 4f866 пустыня
10 4f974 трон Шао Кана
11 4f9f2 ад
12 4fa70 арена у реки (MK3?)
13 4f6c8 экран выбора столбца
14 4f722 экран выбора столбца 2
15 4f7b2 логотип копия
некоторые персонажы:
1 346c2 Кано
2 3594e Соня
3 36b9a Джакс
4 37e30 Ночной Волк
5 39268 Саб зиро старшый
6 3a488 Страйкер
7 3b6c4 2 Синдел
8 3cabc 3 Сектор
9 3cabc 3 Сектор
10 3e310 Кун Лао
11 3f4c8 Кабал
приёмы, заканчивающиеся на:
1 1a840 2 ?
2 1caf4 X
3 1cb64 A
4 1cbd4 B
5 1cc44 Z
6 1ccb4 C
7 1ca84 Y
8 1cd24 вверх
9 1cd94 ?
10 1ce04 ?
(неизвестные надо бы проверить на превращениях Шан Цуна)
?:
1 e0482 Кано - подножка
2 10c0aa Соня - удары
3 13d6f2 Джакс - удары
4 16e700 Ночной Волк
5 19a864 Саб Зиро старшый
6 1be08a Страйкер - бег
7 1ec624 Синдел - прыжок
8 226da4 Сектор - падение на спину
9 252ba2 Кун Лао - пинок с разворота
10 286dc2 Кабал - пинок с разворота
Соня:
1 367fa бег
2 36a86 падение на спину
3 36a7e испуг
4 367a6 захват ногами
5 369fe велосипед
6 36a9e Фаталити с огненным шаром
7 36b52 полёт вперёд
8 36af6 плазменный шар от Фаталити
9 36b4a остатки противника после Фаталити?
Contra - Hard Corps (USA, Korea) (En)массив 81: диалоги и уровни
массив 48: элементы экрана выбора персонажа: кадры анимацыы морфинга портретов и символы дисплэя
состояние спрайтов персонажей, только часть: нет ходьбы, направлений оружыя, подката, висения:
1 146ba Рэй кручение в прыжке
2 14ace 2 Шына (стр.2)
3 15426 Фэнг
4 14e86 2 Брауни джетпак (стр.4)
5 147de 3 Рэй ожыдание (стр.5)
6 14bf2 3 Шына (стр.6)
7 15540 3 Фэнг (стр.7)
8 14f7a Брауни ожыдает, пушка вперёд
9 147de 3 Рэй ожыдание (стр.5)
10 14bf2 3 Шына (стр.6)
11 15540 3 Фэнг (стр.7)
12 14f94 2 Брауни ожыдает, пушка вверх
13 146b6 Рэй кручение в прыжке (копия?)
14 14aca Шына
15 15422 Фэнг
16 14e7e Брауни
17 146d0 Рэй получает урон в спину перед падением вперёд
18 14ae4 Шына
19 1543c Фэнг
20 14e94 3 Брауни взрываетса (стр.20)
21 148e6 Рэй получает урон спереди перед падением на спину
22 14cfa Шына
23 15648 Фэнг
24 14e94 3 Брауни взрываетса (стр.20)
25 147a8 Рэй карабкаетса вверх
26 14bbc 2 Шына
27 1550a 2 Фэнг
28 14f44 2 Брауни
29 146dc Рэй смерть
30 14af0 Шына
31 15444 Фэнг
32 14e9c 3 Брауни электро (стр.32)
33 146f4 Рэй откинулся волчком
34 14b08 Шына
35 1545c Фэнг
36 14e94 3 Брауни взрываетса (стр.20)
37 14712 Рэй лежыт
38 14b26 Шына
39 15474 Фэнг
40 14e9c 3 Брауни электро (стр.32)
другие массивы:
25 - состояние игры: демонстрацыя, экран выбора, брифинг, экран после смерти...
16 - спрайты боссов
Вообще не удалось найти музыку и звуки

Streets of Rage 2 (USA)116 - тайлы надписи Stage _ Start, появляющаяся перед каждым уровнем
82 - некоторые персонажы:
1 fa4b4 Макс
2 fad02 Аксель
3 fb6ce Блэйз
4 fbf92 Скейт
5 1eb2c0 3
6 1eb306
7 1eb86a Джек
8 1ebdce Барбон
9 1ec11e
10 1ec340
11 1ee456
12 1ee138 2
13 1ec5c6
14 1ece7e
15 1f0db4 5
16 1ed4f8
17 1ed782
18 1ecbf6 Росомаха
19 1ed2a2 Боксёр
20 1edce2 Рестлер
21 1f0db4 5
22 1f0db4 5
23 1ee778
24 1f0db4 5
25 1eede2 Мистер Икс
26 1ef454 Шыва
...
Можно менять их местами, играть за врагов, но есть глюки
другие массивы:
55 - звуки, порядок совпадает со звуковым тэстом в опцыях
45 - поведение активных и разрушаемых обйектов (+мусорки и столы застывают на последнем кадре: не происходит удаление предмета, предметы вертятса, света в баре нет)
45 - поведение активных предметов: люк взрываетса как граната, одежда босса не исчезает. Количество совпадает с предыдущим пунктом
32 - силы/траектории перекидываний
персонаж Сигнал, поведение:
1 165b2 действие обычное
2 e908 13 после получения удара
3 e7e0 17 умирает
4 e692 15 мерцает
5 e964 14 встаёт с земли
6 ebb0 14 если схвачен спереди
7 ec54 12 если схвачен сзади
8 ec9e 17 падает налево
9 ed46 17 падает направо
10 1639c вбегает справа
11 16958 выпрыгивает
12 f03a 37 удар локтем серия
13 169f2 2 анимацыя перекидывания
14 169f2 2 анимацыя перекидывания
15 16a9c удар локтем сильный
16 16a4c после перекидывания
17 169b0 ?
18 e63e 14 ?
19 16b20 2 ?
(массив 15-ый слева)
направление ножа в руке персонажа игрока:
2 1401f8 вверх
4 140204 неподвижно - вперёд вверх
6 140210 неподвижно - назад
8 14021c назад вниз
10 140228 вниз
12 140234 назад
14 140240 вперёд
16 14024c вперёд верх
(массив 15-ый слева)
массив 9: персонаж Скейт - кадры стояния
палитры уровня 1:
1 10a100 2 "осень"
2 10fc10 2
3 11ad68 2 "темно"
4 1218a0 2
5 125630
6 128f78
7 12fb78
8 131e68 2 "монохром"
9 12001e изначальная палитра ур1
X-Men 2 - Clone Wars (UE) [!]первый массив:
1 5466 2 создание уровня
7 6242 создание игрока 1
8 62e4 создание игрока 2 (при нажатии start. Если записать игрока 1, то он будет пересоздаватса)
10 6584 после смерти переход на экран выбора персонажа? Если вставить элемент 11, то будет переход на следующий уровень
11 6636
Зверь
2118 182932 обычное состояние
2119 182954 атака рукой
2120 18299c напрыг сверху
2121 1829a6 отпрыг от поверхности
2122 1829b2 вертушка
2123 1829be удар вися на стене
2124 1829d0 руки верх перед ударом об землю
2125 1829da промежуточная анимацыя
2126 1829e6 удар руками об землю
2127 1829f0 после удара об землю
1393 11339a Зверь
1394 113496 Ночной Змей
1395 11359a Псайлок
1396 11369a Росомаха
1397 11379a Магнето
1398 113894 Гамбит
1399 11398e Цыклоп
другие массивы:
16 - тайлы логотипа Сега
12 - местоположение ДНК, танков, бомб, место уровня...
11 - спрайты героев, часть логотипа игры
10 - другая часть логотипа игры
7 - состояние танков и других вещей (раздолбанный вид...)
А ещё при просмотре рома в хекс-редакторе обнаружылись строки: CAMERA, ACTOR, memcpy, memset. Похоже, в игре остался отладочный код.
RoboCop Versus The Terminator (USA)Удалось таки убрать счётчик очков с экрана, кроме левово нуля. Оказалось, што он как-то связан со слоем, на котором рисуютса другие обйекты.
Battletoads (World)Не удалось избавитса от счётчика.
Уточнение выбора1 гличи мешают увидеть, што нужное изменение есть/отсутствует
2 гличи не мешают увидеть, што нужное изменение отсутствует
3 гличи не мешают увидеть, што нужное изменение есть. Далее начинаетса удаление гличей
Как пользоватса моим Гличером—в настройках эмулятра [SMD] включите исправление контрольной суммы на всякий случай
—закиньте ром в програму и в эмулятр
—сохранитесь в нужном месте игры. В моём случае с меню
UMK3 и опцыями
SoR я сохранился на предыдущем экране, штобы далее игра рисовала нужный мне экран с будущими секретными пунктами. Если сохранитса прямо на нужном экране, то каждый раз будет загружатса экран в таком же виде, без нужных дополнительных пунктов. Ведь код игры, рисующий их, не был задействован
Если же нужное вам может появлятса в игре в любой момент при определённом условии, тогда можно и сохранятса в любой момент
—смотрите результат и выбирайте подходящий пункт в програме
При закрытии програмы поиск сохраняетса.
Отличие у Переставлятеля - ром не восстанавливаетса при закрытии програмы во время поиска, для этово надо или остановить поиск перед закрытием, или перезапустить програму. Связано это с тем, што Винда даёт 5 секунд для действий после закрытия, чего не хватает для восстановления при многочисленных изменениях рома (самые нижние массивы) даже на SSD
-в конце поиска програма предложыт исправить контрольную сумму [SMD]. Это надо, штобы игра не зависала на приставке или эмулятрах без опцыы исправления
Как можно ускорить поиск—эмулятры реагируют по-разному на сломанный ром: какие-то што-то да покажут или зависнут, другие же вылетят сразу или ещё и вылезет окно ошыбки (BlastEm). Последние замедляют поиск, т.к. требуют дополнительных лишних действий
Лучше использовать неточные эмулятры типа Gens, т.к. они меньше ломаютса и покажут меньше гличей. Есть хаки ромов, которые идут только на таких эмулятрах, отчево Инвертр может пропустить в них некоторые инструкцыы
—важно настроить всё так, штобы свести все лишние действия к минимуму. Найдите эмулятр, который переоткрывает ром одним нажатием. Например, в Fusion такой функцыы не нашёл, а BlastEm по умолчанию делает это на F5. В Gens RR нет переоткрытия, но есть Open Most Recent ROM. В FCEUX это Reload ROM. Не перепутайте жёсткий/мягкий перезапуск игры с перезагрузкой рома в память. Попробуйте запустить ром, переместить/удалить ево и попробовать перезапустить игру в эмулятре. Если он ругнётса, што ром не найден, то это оно
—если эмулятр часто вылетает не выдержав издевательств над ромом, то не перетаскивайте ром на нево, а лучше асоцыыруйте ромы с эмулятром
—переключайте эмулятр на Гличер кнопкой мышки - пусть курсор будет всегда над окном програмы
—эмулятры имеют возможность ускорить эмуляцыю - пользуйтесь этим
Я не боюсь тово, кто выучился сотне приёмов хакинга. Я боюсь тово, кто выучился сотне нажатий в Гличере
В Win10/Win11 некоторые исполнительные файлы, скачанные из интрнэта, удаляютса антивирусом, поэтому перед скачиванием придётса ево выключить - он включитса сам и пакостить передумаетИнвертр (
исходник) или
Инвертр (
исходник)