Автор: iddqd. Редактор: live_4_ever. Дата создания статьи: 04.08.09. Для начало работы нам понадобится: ArtMoney; Fusion 3.61 Rus (после того как скачали настройте его) и игра Mutant Ninja Turtles - The Hyperstone Heist. (После того как скачали игру "дёргаем" оттуда Teenage Mutant Ninja Turtles - The Hyperstone Heist (U) [!] ) Далее запускаем в эмуляторе. В начале уровня сразу ставим на паузу, далее начинаем поиск количества жизней как на скрине: Тип переменной 1 байт целое, перевёрнутый (на Fusion всегда так): Теряем одну жизнь, отсеиваем "Уменьшилось на 1": Получим какое-то количество результатов. Переносим вправо. Если есть значения, которые "гуляют" - смело отбрасывайте их. У меня искомый адрес оказался первый (остальные прыгают 1:0 и т.д.): Ставим туда хотя бы тоже 5, после убийства счётчик жизней обновится (я не замораживал, стало 4). Теперь находим адрес здоровья: Делаем поиск неизвестного значения, перевёрнутое целое 2 байта. Теряем чуть-чуть здоровья - отсеиваем "уменьшилось". В игре чуть-чуть продвигаемся в любом направлении без ранений - отсеиваем "не изменилось". Снова ранение - "уменьшилось". Теряем ещё жизнь - "увеличилось". Если немного результатов, то переносим их вправо, если много - отсеиваешь ещё один-два раза. У меня получилось это: Настройки заморозки делайте всегда такие: Проверяем адрес - верный. Теперь будем делать неуязвимость при мигании. Размораживайте адрес здоровья, теряйте жизнь и сразу ставьте на паузу, как только персонаж замигает и сохраняемся. В ArtMoney делаем такой поиск: Получим кучу результатов. В игре проводим пару мгновений, снова пауза - отсеиваем "уменьшилось". Загружаем сохранение - "увеличилось". В игре дожидаемся, когда перестанет мигать - "уменьшилось". Без мигания продвигаемся чуть-чуть в игре - отсеиваем "не изменилось". У меня после такой процедуры осталось 10 адресов. Переносим их все вправо, оставляем из них только те что "по нулям", и также группу из тех что идут сразу друг за другом без всяких смещений со значениями 0, 4 ,1024 - это могут быть и они =) Я выделил те что надо оставить (у тебя или у вас их может быть больше): В игре теряем ещё жизнь, дожидаемся мигания (это понятно), снова пауза. Смотрим, как изменились значения по тем адресам: Замораживаем первый адрес как на скрине, в игре проверяем эффект. Если мигание и неуязвимость не прекращается - адрес верный. Теперь предпоследний приём - выбор персонажа через принудительное изменение ID. Делаем такой поиск: Перезапускаем игру, на экране выбора персонажа ставим паузу эмуляции клавишей Pause, выбираем крайнего справа: Дожидаемся начала уровня, отсеиваем как на скриншоте: У меня нашлось 4 адреса. Первые два равны 3, то есть, скорее всего ID персонажа идут как 0:3 - проверяй методом "тыка". У меня получилось это: Player select: 0 - Leo 1 - Mike 2 - Don 3 - Raph У тебя или у вас будет то же самое. Заметьте, что при смене ID игрока цвет повязки не меняется - в разных играх по-разному. Что делать дальше - начать игру заново, выбрав игру на двоих игроков, поставить паузу в самом начале, найти адрес количества жизней второго игрока поиском точного значения. Далее сравниваем адреса количества жизней первого и второго игроков - между ними смещение 2h, то есть если к адресу кол-ва жизней 1P добавить 2 в шестнадцатеричном виде, то получится адрес кол-ва жизней второго (если не можем определить смещение "на глаз" - вычтите из большего адреса меньший). Удаляйте адрес жизней второго игрока, выделяйте все адреса параметров первого и делайте команду "копировать выбранные", в поле + пишите смещение 2h и один раз нажмите кнопку плюс (1), потом ОК (2): В описаниях полученных адресов второго игрока поменяйте 1P на 2P, сохраняйте всё это дело: Потом, можно взять из того же архива файл Teenage Mutant Ninja Turtles - Return of the Shredder (J) [!] и проверить с этими адресами - всё должно совпадать. amt-файл назови: Teenage Mutant Ninja Turtles - the Hyperstone Heist (Return of the Shredder).amt и в комментарии напишите то что написано выше (Player select и коды персонажей).
Источник: http://chemax.ru/articles/cheatingemulgames.php |