Форум Emu-Land.net
30 Июля 2010, 02:22:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Правила форума
   
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Чит-коды в эмуляторах  (Прочитано 758 раз)
0 Пользователей и 1 Гость смотрят эту тему.
iddqd

Offline Offline

Пол: Мужской
Сообщений: 3912

Фанат ArtMoney


Просмотр профиля WWW
« : 16 Января 2010, 03:41:25 »

Создание Pro Action Replay кодов в эмуляторе Super Nintendo– часть 1.
В первой статье будет показан самый простой приём – элементарный поиск точного значения. Используется эмулятор ZSNES 1.51 и ром Lethal Enforcers (U).
Поиском точного значения найдём адрес здоровья первого игрока. На экране вверху слева пять блоков со звёздами – ищем в памяти значение 5:
Ставим паузу, делаем быстрое сохранение в любой слот. В меню эмулятора Cheat – Search:
Далее выберем тип переменной целое 1 байт,в  десятичном виде (Decimal) и условие – поиск точного значения (Exact value search):
Нажали старт. Вводим значение 5 и жмём кнопку Search:
Нас просят вернуться в игру, чтобы дождаться изменения значения в игре (в этом случае получить ранение) и тогда можно будет отсеять:
Закрываем окно (X вверху справа – как любое окно в windows). Переходим в игру, снимаем паузу. В нас дважды попадают и здоровья становится 3 блока:
Отсеяли на 3, получаем один результат:
Нажали View:
Теперь жмём Add, в поле Enter new value вводим значение 5 (больше не надо – чтобы глюков не было), в поле Ener Cheat description вводим описание по-английски (бесконечное здоровье первого игрока) и снова жмём Add :
Получаем это:
Смотрим вверху слева направо:
Adress: 7E00B2 – адрес параметра; CV (Current Value) -Текущее значение – равно 5 в десятичном виде; PV (Previous Value) – предыдущее значение было равно 3; TGL – ON – включено, можно нажать кнопку Toggle и тогда сменится на OFF (выключено); Description – описание чита. Код выделен красным, жмём Save, в выбранной в настройках эмулятора директории появится файл .cht:
Теперь всё – можно возвращаться в игру и здоровье не будет уменьшаться=) Можно точно так же найти адрес патронов первого игрока точным значением (при полном магазине в памяти значение 6) – будет так:

Ожидаем - Nes, Genesis/SMD.

* SNES_PAR_1.7z (537.59 Кб - загружено 21 раз.)
« Последнее редактирование: 16 Января 2010, 09:15:26 от iddqd » Записан

iddqd

Offline Offline

Пол: Мужской
Сообщений: 3912

Фанат ArtMoney


Просмотр профиля WWW
« Ответ #1 : 21 Января 2010, 18:34:02 »

Создание RAW кодов в эмуляторе Nes – часть 1.
Воспользуемся эмулятором Nestopia 1.40. Запускаем в нём ром Moon Crystal (J) [T+Rus] – русский перевод от Шедевра:) Можно любой другой ром этой игры.
На экране две жизни:
Идём в Nestopia – Options – Cheats – Add:
A=0 B=0 то есть пока эти поля не трогаем, ниже оставляем отметку на «None» - получается что мы выполняем просто поиск неизвестного значения.
Далее возвращаемся в игру (кнопку Cancel не нажимаем!). В игре теряем одну жизнь. На экране стало 1. Возвращаемся в меню читов, в поле B впечатываем значение 1 и после этого выбираем условие поиска (фильтр) R0-R1=B:
Поясню – это означает, что значение уменьшилось на единицу. То есть R0 – первое состояние, R1 – второе, B – разница между ними.
Далее слева смотрим – из найденных нам подходят два адреса – 05ED и 0799. Проверяем первый из них (смотрим сверху вниз):
В разделе Raw: Adress 05ED
Value = 7 (можно другое)
Далее жмём кнопку Validate (обязательно!) – слева появится надпись Valid; Description – описание адреса, я вписал Inf. Lifes. Дальше жмём Submit – появится меню, как на скрине внизу. Выделяем чит мышью и жмём OK.
В игре проверяем код – умираем один раз и жизней стало 6:
Значит в памяти значение количества жизней отличается от экранного на единицу больше. Это очень распространённый вариант – жизни кончаются, если умереть когда на экране осталось 0 жизней. Но с этим всё. Теперь можем этот код сохранить – код выделен, жмём кнопку Export:
И сохраняем в файл .xml:

Добавлено позже:
Найдём некоторые параметры с помощью VirtuaNes 0.97e в игре Super Contra (ром Super C (U) [T+Rus].
На экране количество жизней 2. Делаем быстрое сохранение и далее Tool – Cheat Support:
Количество жизней хранится как 1 байт целое, поэтому оставляем Length – 1 byte. Жмём кнопку Start для начала поиска:
Теряем одну жизнь, отсеиваем на «уменьшилось» - нажимаем кнопку  Old>Now:
Без изменения счётчика жизней продвигаемся в игре, отсеиваем на «не изменилось» - Old=Now. Вот и нашли :
Далее Tool – Cheat Code:
Input – вводим код на адрес 0053. Пишется так: Адрес-тип переменной (в байтах – 1, 2 или 4) и значение. Ниже пишем комментарий к чит-коду:
Жмём OK:
В игре стало 4 жизни, которые не уменьшаются при умирании:
Сохраняем код:
Так как жизни хранятся точным значением, можно жизни второго игрока найти элементарно. Нажимаем Start в меню поисковика читов, дальше вводим Data = 2 и жмём Search:
Есть смысл проверить адрес 0054, так как он идёт сразу за адресом жизней первого игрока. Так и есть – это адрес жизней второго игрока:

Идём дальше. Найдём адрес здоровья в игре Moon Crystal. Сохраняемся при начальном уровне здоровья и начинаем поиск с нажатия кнопки Start:
Ранение – отсеиваем кнопкой Old>Now:
Грузим сохранение с полным здоровьем – Old<Now:
В игре без ранений проводим какое-то время – Old=Now:
Адрес 05F0 очень похож на адрес здоровья – так и есть, вот код на него:
Почему я поставил значение больше 3 поймут те кто в эту игру играл – там в дальнейшем добавляется уровень специальным призом.


_____________
Добавлено позже:
Поиск PAR кодов средствами эмулятора SMD – часть 1.
Fusion 3.63 – в  этом замечательном эмуляторе очень неудобный поисковик кодов, и это серьёзный недостаток. Но некоторые приёмы можно применять без проблем. Рассмотрим пока что два из них.
Запускаем игру Caliber Fifty.
Найдём количество жизней (попыток). На экране 2 жизни. Делаем сохранение и идём в меню GameGenie/PAR:
Далее жмём кнопку CodeFinder:
Жмём кнопку Count. Она предназначена для поиска точного значения:
Жмём Find. У меня нашлось 97 результатов. Жмём OK, в открывшемся новом (старом) окне также OK и возвращаемся в игру. Там теряем одну жизнь, то есть становится 01 на экране – возвращаемся в окно поиска и отсеиваем на значение 1:
Остаётся 7 адресов. Грузим сохранение с 02 жизнями и отсеиваем на 2:
Не теряя и не приобретая новых жизней продвигаемся в игре и снова отсеиваем на 2. Количество результатов не изменилось? Тогда определим нужный адрес перебором.
Пробуем код со значением на адрес FF9968. Вводим адрес:значение, жмём Add code, выделяем код в списке мышью (обязательно!) и жмём OK:
результате получаем  бесконечные жизни:)
Примечание: эмулятор Kega Fusion использует для хранения данных перевёрнутый порядок байтов (спасибо разработчикам ArtMoney)у . Поэтому адреса Fusion, в первую очередь те, которые 1 байт целое, могут различаться на 1 байт. То есть в  Fusion код на адрес FF9968 – в других эмуляторах (Gens всех видов) надо использовать код на адрес FF9969.
Теперь найдём код на гранаты. На экране 39 гранат. Идём в CodeFinder и в этот раз жмём кнопку Difference («Разница»). Этот вариант подходит для поиска разницы значений или интервала в таймерах – на сколько уменьшилось/увеличилось значение, столько и надо писать в поле Find.
Нас просят запомнить изначальное значение.
Возвращаемся в  игру. Бросаем, скажем, две гранаты, стало 37. Вводим разницу 2 и жмём Lower (если бы значение увеличилось – нажали бы Higher):
Получили результаты:
Ну тут уже всё понятно. Добавляем код, не забываем выделить его в списке – иначе он не будет работать:
В результате имеем это:

* Nintendo_NES_1.7z (112.11 Кб - загружено 14 раз.)
* VirtuaNes_1.7z (1032.13 Кб - загружено 7 раз.)
* Caliber Fifty.7z (826.57 Кб - загружено 13 раз.)
« Последнее редактирование: 30 Января 2010, 15:55:38 от iddqd » Записан

iddqd

Offline Offline

Пол: Мужской
Сообщений: 3912

Фанат ArtMoney


Просмотр профиля WWW
« Ответ #2 : 26 Января 2010, 16:29:43 »

Сделаем неуязвимость в игре Axelay на эмуляторе SNES9X fix 4.
Invincibility – мой любимый приём. Во многих играх существует неуязвимость при мигании, которая появляется после пропущенного удара,  респауна или начала уровня. В памяти по адресу неуязвимости отсчитывается время до её окончания. Этот адрес можно просто найти – по сути это тот же таймер, только скрытый (без экранных значений). Но есть ещё одна фишка – адресов неуязвимости обычно несколько, все они идут друг за другом без всяких смещений и значение предыдущего равно x256 следующего – проверено на практике.
В самом начале игры при мигании ставим паузу, сохраняемся и идём в Cheat – Search for new cheats:
В открывшемся окне поиска задаём нужные условия поиска – Значение больше нуля, тип переменной 4 байта целое, беззнаковое: Greater than – Entered value – 0 – Unsigned – Integer 4 bytes:
Жмём OK, в игре дожидаемся окончания мигания, снова пауза и отсеиваем на «уменьшилось»: Less than – Previous value:
Далее возвращаемся в игру, без мигания проводим какое-то время и отсеиваем на «не изменилось»:
Далее всё сначала – мигание и «увеличилось»: Greater than – Previous value:
Снова «уменьшилось» и т.д. Смотрим те значения что «по нулям» - таких значений 4, и предыдущие значения были как раз x256. Остальные все не подходят – я делаю код на адрес7E0324. Фактически это адрес 1 байт целое, работать с ним проще, так как меньше значение, которое нужно вписать:
Получаем готовый PAR код. Не забудьте проверить что отмечено Apply cheats:
Также смотрим в окне Cheats – GameGenie, Pro Action Replay codes:
Примечание – значение 14 по адресу неуязвимости в этой игре заморозило мигание спрайта в неподходящий момент (когда корабль не видно вообще), поэтому надо поставить другое значение – для начала можно попробовать на единицу больше или меньше, или любое нечётное число:
Вот и всё – враги и их выстрелы проходят сквозь игрока (который не мигает), можно записывать TAS-видео=)

* SNES9X_1.7z (278.61 Кб - загружено 10 раз.)
« Последнее редактирование: 26 Января 2010, 16:33:43 от iddqd » Записан

Phil

Offline Offline

Сообщений: 441



Просмотр профиля
« Ответ #3 : 26 Января 2010, 23:00:08 »

iddqd, а можно ли зная чит-код пофиксить сам ром?
(к примеру Balloon Fight (U).nes: SUNNIZVI - Infinite lives или AENYPPZE - Start with 9 lives; Ice Climber (U).nes: OKEIPGVS - Infinite lives, AEXKTGLE - Start with 9 lives)

А с помощью каких прог, вообще, удобнее менять количество жизней в самих ромах?
(Прост охота в трёх версиях Ice Climber-а (Ice Climber (VS).nes, Ice Climber (U).nes, Ice Climber (VS).fds) сделать по 9 жизней)
« Последнее редактирование: 26 Января 2010, 23:16:31 от Phil » Записан

http://www.emu-land.net/forum/index.php/topic,31623.msg444136.html#msg444136
Без эксцесса нет successа!
Флудить, не дрова рубить!
Флудить, что воду лить!
Флуд — это вода. Вода — это жизнь!
Cначала посмотри, потом говори!
Emu-land — самый поездатый форум в мире!!
iddqd

Offline Offline

Пол: Мужской
Сообщений: 3912

Фанат ArtMoney


Просмотр профиля WWW
« Ответ #4 : 27 Января 2010, 06:38:59 »

Phil, ром фиксят коды GameGenie.  Я работаю только с RAM, к сожалению.. Но здесь есть спецы.
Записан

Марат

Offline Offline

Пол: Мужской
Откуда: Казахстан, Астана
Сообщений: 313



Просмотр профиля
« Ответ #5 : 27 Января 2010, 08:32:03 »

iddqd, а можно ли зная чит-код пофиксить сам ром?
(к примеру Balloon Fight (U).nes: SUNNIZVI - Infinite lives или AENYPPZE - Start with 9 lives; Ice Climber (U).nes: OKEIPGVS - Infinite lives, AEXKTGLE - Start with 9 lives)

А с помощью каких прог, вообще, удобнее менять количество жизней в самих ромах?

С помощью hex редактора, зная место, где находятся жизни.
Записан
r57shell

Offline Offline

Сообщений: 367



Просмотр профиля
« Ответ #6 : 27 Января 2010, 08:58:44 »

Это не развёрнутый ответ!) Правильный ответ то что в самом чите к примеру SUNNIZVI есть информация где, и как менять ром.

Первый же гугл поиск по фразе "Game-Genie to PAR" привёл к http://www.videogamesource.com/genie/create.html

Если ещё получше порыться, то можно и найти как из SUNNIZVI понять что в роме менять(хотя вот в той ссылке вроде это есть). Вот например если пароль Game-Genie в сеге при раскодировке выдаст чото на подобии 0000CDEF:0412 - то первое это оффсет в роме где надо патчить, а второе - чем заменить.
« Последнее редактирование: 27 Января 2010, 09:39:01 от r57shell » Записан
Марат

Offline Offline

Пол: Мужской
Откуда: Казахстан, Астана
Сообщений: 313



Просмотр профиля
« Ответ #7 : 27 Января 2010, 09:27:33 »

Ты сначала вопрос прочитай нормально. Вопрос был "
А с помощью каких прог, вообще, удобнее менять количество жизней в самих ромах?

"
Записан
r57shell

Offline Offline

Сообщений: 367



Просмотр профиля
« Ответ #8 : 27 Января 2010, 09:38:22 »

iddqd, а можно ли зная чит-код пофиксить сам ром?
я на эту часть отвечал, фак... этож не меня спрашивали 
А с помощью каких прог, вообще, удобнее менять количество жизней в самих ромах?
С помощью hex редактора, зная место, где находятся жизни.
вот это пояснил )

Добавлено позже:
можно и на примерах только лень . Ладно сча сделаю :]
И кстати необязательно спомощью хекс редактора... нелюблю в них копаться... можно любым хекс патчером.
Записан
Марат

Offline Offline

Пол: Мужской
Откуда: Казахстан, Астана
Сообщений: 313



Просмотр профиля
« Ответ #9 : 27 Января 2010, 09:38:37 »

А, ну, тогда я извиняюсь.
Записан
r57shell

Offline Offline

Сообщений: 367



Просмотр профиля
« Ответ #10 : 27 Января 2010, 11:26:04 »

Впринципе всё подробно описано в http://www.videogamesource.com/genie/gg/create/nes_6_to_8.html
(ссылка несовсем по теме - она о том как перевести код из 6 букв в 8-сми буквенный) Хотя нет... погорячился ))) Описано всё не по этой теме но зато оттуда можно понять как чо делать Улыбка ну я понял покрайней мере...

но для тех кто инглишь невоспринимает вот какой пример там даётся Улыбка
Megaman 3: NXTKGE  start with infinite energy
tanks.

Это 6-ти буквенный пароль. Вводят в http://www.angelfire.com/games2/codehut/ggconvc.zip Получают 40EC?  :AF и вот эти 2 символа хотят найти в роме, а ищат их так:
Для любых целых i смотрят адресс 40EC+10+i*8000 в роме (все числа шестнадцатиричные - и только 40EC нам надо знать из 6-ти значного пароля), после чего записывают байт который по этому адрессу - все различные записывают. У них полчилось "48,05,00,21,E0,84,90,FF,FC" После чего в эту прогу (ggconvc), в пустое отведённое место, вводят все эти варьянты ("48,05,00,21,E0,84,90,FF,FC") и проверяют каждый код который выдаёт этот конвертер. Если код работает - значит он искомый 8-ми буквенный. Ссылаются ещё на прогу http://www.angelfire.com/games2/codehut/GameGenieDecoder.zip, которую если затестить то видно [картинка прикрепленная], что то что после вопроса(в ggconvc) это compare (с английского сравнить), а после двоеточия это value (с английского значение - логично предположить что это означает чем заменить).

Теперь вывод. Это значит что чтобы 8-ми буквенный применить, нужно взять ввести его (SANNIZVI) в ggconvc и получим 727D?D6:85 после чего найти все D6 по адресам для всех целых i:  727D+10+i*8000 и заменить их на 85.

Сейчас попробую ^^. Только надо ром сначала скачать.

Эмм ошибочка пароль то SUNNIZVI... а я то думаю чоза хрень )).

Добавлено позже:
Пациент скорее мёртв чем жив, короче все коды которые ты хочешь врубить - это рам коды тоесть постоянное изменение данных в памяти.

А те которые в ром можно изменить они должны изменять ром, а не рам.
Вот к примеру проканал код VXVKGAEO для Megaman 3 - удалось пропатчить ром.
Делал как: ввёл VXVKGAEO в ggconvc и получил 40EC?90:AE пробежался по адресам 40FC,C0FC,140FC,1C0FC... до конца рома, по адрессу 3C0FC нашел 90 которое надо заменить на AE.

Заменял http://www.emu-land.net/forum/index.php/topic,2076.msg488086.html#msg488086 а именно вот из этого архива http://www.emu-land.net/forum/index.php?action=dlattach;topic=2076.0;attach=22964 hexpatcher-ом написал "3C0FC,AE" и готово :]

пробегался по адресам вручную в Total Commander жмём F3,3

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


Добавлено позже:
А если хочешь аналогичные коды в других ромах то надо самому искать.


* GameGenieDecoder.PNG (53.71 Кб, 773x703 - просмотрено 28 раз.)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Mail.ru