krocki Опубликовано 1 ноября, 2014 Поделиться Опубликовано 1 ноября, 2014 В общем я решил по настроению сделать пошаговую инструкцию для новичков по взлому игр Dendy, NES и Nintendo. И так приступим... 1: Скачиваем с интернета эмулятор FCEUX v2.2.22: Запускаем эмулятор и открываем с помощью него игру, например - Contra (U) [!].nes.3: Начинаем играть в игру и видим две жизни у нашего героя.4: В меню эмуляторе нажимаем на Tools > Cheats, появится окно поиска адресов.5: В этом окне жмём на кнопку Reset, справа появится адреса и их значения.6: Далее вводим значение 02 где 0x 00 и жмём на кнопку Known Value.7: Переходим обратно в игру и теряем одну жизнь и опять переходим в окно Cheats Search.8: Вводим значение 01, где 0x 02 и жмём опять на кнопку Known Value.8: Так проделываем пока не будет один адрес: 0032 это и есть адрес наших жизней.9: Далее в меню эмулятора нажмите на Debug > Degugger появится большое окно отладчика.10: Справа с верху есть три кнопки две из-них не активны и одна кнопка с названием Add нажмите на неё.11: Появится окно Add BreakPoint, вводим в поле где адрес, наш адрес жизней 0032 - 0032 и ставим галочку где Write и жмём ОК.12: Переходим обратно в игру и теряем ещё одну жизнь, сразу должен сработать бряк в отладчике и он покажет в самом верху слева нашу инструкцию уменьшения жизней 07:DA03:D6 32 DEC $32,X @ $0032 = #$0213: Подводим к этой инструкции курсор мышки, в самом низу отладчика будет отображаться информация.Информация: CPU Address 07:DA03, Offset 0x01DA13 in file "Contra (U) [!].nes" (NL file: 7)14: Далее в меню эмулятора нажмите на Debug > Game Genie Decoder/Encoder появится окно создания кодов.15: Вводим в поле Address - DA03, в поле Compare вводим значение в НЕХ'е D6, а где Value вводим значение НЕХ'е 60, справа верху появится наш Game Genie код ATEIUZVI. Вот мы и сделали свой Game Genie код на вечные жизни. Пояснение:DA03 - Это адрес где сработал наш бряк на уменьшение жизней.D6 - Это первый байт нашей инструкции (07:DA03:D6 32 DEC $32,X @ $0032 = #$02).60 - Это байт инструкции RTS, которая затирает наш оригинальный байт D6, что бы жизни в игре не уменьшались. Как вшить этот чит-код в игру на вечные жизни, что бы больше не париться для его ввода? 1: Скачиваем с интернета программу WinHEX желательно русскую, не забудьте ввести ключ продукта для активации, а лучше скачивайте крякнутую или портейбл версию, ну или любой другой НЕХ-Редактор.2: Запускаем программу WinHEX и перетаскиваем в неё туда файл игры Contra (U) [!].nes.3: Появится много чисел и букв, это называется НЕХ-Кодами.4: Далее в меню программы жмём Навигация > Перейти к смещению, появится окно.5: Вводим в поле наше смещение 01DA13 и жмём ОК (Это смещение выдал наш отладчик в информации или где мы создавали Game Genie код, там он тоже отображался пока игра была запущена).6: И мы сразу перейдём на наше смещение и увидим знакомый нам код инструкции D6 32.7: Заменяем D6 на 60 и жмём в программе WinHEX сохранить, то есть жмём на дискетку с изображением верхнем в левом углу программы.Вот и всё, закрываем программу WinHEX, запускаем эмулятор с игрой и наслаждаемся. 5 Ссылка на комментарий Поделиться на другие сайты Поделиться
A1t0r Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 В общем я решил по настроению сделать пошаговую инструкцию для новичков по взлому игр Dendy, NES и Nintendo. И так приступим... 1: Скачиваем с интернета эмулятор FCEUX v2.2.2 Осталось научиться писать трейнеры в нём же (на Lua с iup) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 2 ноября, 2014 Автор Поделиться Опубликовано 2 ноября, 2014 Осталось научиться писать трейнеры в нём же (на Lua с iup) Кстати в этом эмуляторе есть какая та поддержка LUA. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 Напиши пожалуйста как сделать чтобы в Adventure Island в любой части перескочить на другой уровень ? Ссылка на комментарий Поделиться на другие сайты Поделиться
A1t0r Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 Итак, Adventure Island, первая часть. так и не прошёл в детстве, хоть сейчас отыграюсь)))Проходим до конца уровня и сохраняемся. Открываем RAM Search и ищем единичку(первый уровень). Проходим на 2-й и ищем двойку. Нету. Хм. Попробуем на 1-м уровне поискать ноль, а на втором единицу. Находится десяток адресов, но интересный первый 0038. Ставим в Debugger'e бряк на запись по этому адресу, вываливаемся по адресу 815B:00:815B:E6 38 INC $0038 = #$00 это увеличение номера round'а. Запомнили место, пригодится если надо будет прыгнуть на следующий уровень.Идем ниже по коду. В 0037 номер area, запомнили. Идём дальше. Вот он прыжок на начало уровня:00:816F:4C 9A 80 JMP $809AТеперь можно писать скрипт. Напишем функцию обратного вызова для нажатия на кнопку перехода:cheats = { --название таблицы с функциями обратного вызова, пока только одна функция пусть будет "toLevel" ["toLevel"] = function(...) --в функцию передаются некоторые параметры local val, area, round = {...}, nil, nil --пишем их в таблицу val, а также заведём локальные переменные area и round area, round = tonumber(val[1]), tonumber(val[2]) --переписываем параметры в соответствующие переменные ---------------------------------- --если переход запускается из меню memory.writebyte(0x003F, 3) --устанавливаем кол-во жизней memory.writebyte(0x0076, 10) --сытость memory.writebyte(0x0528, 10) --сытость memory.writebyte(0x0077, 0xFF) --сытость --------------------------------- if (area == 0) or (round == 0) then --если любой аргумент равен 0 будем прыгать на след. уровень memory.setregister("pc", 0x815B) --прыгаем на место увеличения round, дальше игра сама разберётся print("Jumped to next level") --печатаем в консоль else --если переход на конкретный уровень memory.writebyte(0x0037, area-1) --записываем в area и round значения memory.writebyte(0x0038, round-1) --на 1 меньшие memory.setregister("pc", 0x809A) -- и прыгаем на начало уровня print("Jumped to area "..area..", round "..round) --печатаем для отладки end end}Теперь напишем интерфейс и зададим функцию обратного вызова для кнопки:function winDraw() -- переход на уровень levelSpinArea = iup.text{ --спиннер для area spinmin = 0, --ограничиваем значения spinmax = 8, --от 0 до 8 spin = "YES", readonly = "YES" --только чтение(от шаловливых ручек) } levelSpinRound = iup.text{--спиннер для round spinmin = 0, spinmax = 4, spin = "YES", readonly = "YES" } levelButton = iup.button{ title = "GO", --надпись на кнопке action = function(self) --функция обработки для кнопки, передаём два параметра cheats["toLevel"](levelSpinArea.spinvalue, levelSpinRound.spinvalue) end } levelLabel = iup.label{ --надпись с пояснением как пользоваться title = "if (area or round) = 0 then jump to next level" } level = iup.frame{ --пространство обведённое рамочкой title = "To area(1-8) round(1-4)", iup.vbox{ --вертикальный контейнер для элементов iup.hbox{ --внутри горизонтальный контейнер для элементов levelSpinArea, --пихаем спиннер для area levelSpinRound, --пихаем спиннер для round levelButton --кнопку }, levelLabel --ну и надпись ниже }, size = "85X20" --размер фрейма } dialogs = dialogs + 1 --увеличиваем на 1 диалог для обработки handles[dialogs] = iup.dialog{ --и создаём его title="Adventure Island Trainer +1 by A1t0r", --заголовок окна resize = "NO", --без ресайза size = "220X50", --размер окна iup.hbox{ iup.vbox{ level --и вставляем наш level jump } } } handles[dialogs]:show() --показываем окноendwinDraw() --выполнить функцию вышеwhile (true) do FCEU.frameadvance() --нарисовать кадр игрыendТеперь скрипт полностью. Когда напишу (если напишу) полный трейнер, выложу в Файлы. Или drs36 напишет для практики)--[[Адреса игровых значений:0x0037 - area0x0038 - roundИнтересные места в коде игры:0x815B - увеличение уровня на 10x809A - начало уровня]]--require("auxlib")--таблица обратных вызовов(callback)cheats = {["toLevel"] = function(...)local val, area, round = {...}, nil, nilarea, round = tonumber(val[1]), tonumber(val[2])memory.writebyte(0x003F, 3)memory.writebyte(0x0076, 10)memory.writebyte(0x0528, 10)memory.writebyte(0x0077, 0xFF)if (area == 0) or (round == 0) thenmemory.setregister("pc", 0x815B)print("Jumped to next level")elsememory.writebyte(0x0037, area-1)memory.writebyte(0x0038, round-1)memory.setregister("pc", 0x809A)print("Jumped to area "..area..", round "..round)endend}function winDraw()--ПОДГОТОВКА ЭЛЕМЕНТОВ ИНТЕРФЕЙСА И ЛОГИКИ-------------------------------------------- переход на уровеньlevelSpinArea = iup.text{spinmin = 0,spinmax = 8,spin = "YES",readonly = "YES"}levelSpinRound = iup.text{spinmin = 0,spinmax = 4,spin = "YES",readonly = "YES"}levelButton = iup.button{title = "GO",action = function(self)cheats["toLevel"](levelSpinArea.spinvalue, levelSpinRound.spinvalue)end}levelLabel = iup.label{title = "if (area or round) = 0 then jump to next level"}level = iup.frame{title = "To area(1-8) round(1-4)",iup.vbox{iup.hbox{levelSpinArea,levelSpinRound,levelButton},levelLabel},size = "85X20"}dialogs = dialogs + 1handles[dialogs] = iup.dialog{title="Adventure Island Trainer +1 by A1t0r",resize = "NO",size = "220X50",iup.hbox{iup.vbox{level}}}handles[dialogs]:show()endwinDraw()while (true) doFCEU.frameadvance()end 4 Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 (изменено) С уровнями разобрался(кодами),но когда начинаю уровень и заканчиваю его опять он по новой начинается ? Изменено 2 ноября, 2014 пользователем drs36 Ссылка на комментарий Поделиться на другие сайты Поделиться
A1t0r Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 (изменено) С уровнями разобрался(кодами),но когда начинаю уровень и заканчиваю его опять он по новой начинается ? С таким не сталкивался. Если у тебя так получилось, то может ты заморозил значение уровня, либо не увеличил текущее. Обнаружил другой баг, сейчас исправим. Поправил скрипт на случай перехода на др. уровень из меню. Изменено 2 ноября, 2014 пользователем A1t0r 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 (изменено) Итак, Adventure Island, первая часть. так и не прошёл в детстве, хоть сейчас отыграюсь)))Проходим до конца уровня и сохраняемся. Открываем RAM Search и ищем единичку(первый уровень). Проходим на 2-й и ищем двойку. Нету. Хм. Попробуем на 1-м уровне поискать ноль, а на втором единицу. Находится десяток адресов, но интересный первый 0038. Ставим в Debugger'e бряк на запись по этому адресу, вываливаемся по адресу 815B:Мне скрипт не нужен я нашел код нужного мне уровня прописал его в cheats но запускается 1-й уровень ? Изменено 3 ноября, 2014 пользователем Xipho Не нужно цитировать большие сообщения целиком. Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 2 ноября, 2014 Автор Поделиться Опубликовано 2 ноября, 2014 Адрес хоть правильный нашёл?Пробовал изменить его значение на 2 + заморозить и перезапустить игру... 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 Адрес хоть правильный нашёл?Пробовал изменить его значение на 2 + заморозить и перезапустить игру...Пробывал все. Ссылка на комментарий Поделиться на другие сайты Поделиться
A1t0r Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 Адрес хоть правильный нашёл?Пробовал изменить его значение на 2 + заморозить и перезапустить игру... Адрес-то правильный, просто чит замораживает значение по адресу. drs36, если хочешь чтобы работало нормально, то активируй и сразу же деактивируй чит с нужным значением уровня. Тактика активировал и забыл хороша для жизней, патронов и т. д. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 2 ноября, 2014 Автор Поделиться Опубликовано 2 ноября, 2014 Щас попробую скачать эту игрушку и взломать на уровни. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 (изменено) Щас попробую скачать эту игрушку и взломать на уровни. Я разобрался в коды надо вводить номер зоны,а номер уровня не надо. Изменено 2 ноября, 2014 пользователем drs36 Ссылка на комментарий Поделиться на другие сайты Поделиться
A1t0r Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 Я разобрался в коды надо вводить номер зоны,а номер уровня не надо.Вообще там 2 байта подряд - area и round. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 2 ноября, 2014 Автор Поделиться Опубликовано 2 ноября, 2014 Бл......Это же марио китайский! Помню его на приставке денди - макинтош ещё играл.Ностальгия! Так я её и не прошёл, где то завис на каком то уровне. Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 Взломал Adventure Island 3 и нашел интересный код на уровни если запороть начальный уровень,то идет перемещение к уровню с боссом. Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 2 ноября, 2014 Поделиться Опубликовано 2 ноября, 2014 krocki и A1t0rМолодцы ребята! Очень интересная статья и lua-код, продолжайте в том же духе, лично от меня - плюсы вам! 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 3 ноября, 2014 Поделиться Опубликовано 3 ноября, 2014 Как сделать чтобы в Adventure Island 3 перескочить на другой уровень ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 3 ноября, 2014 Поделиться Опубликовано 3 ноября, 2014 Как сделать чтобы в Adventure Island 3 перескочить на другой уровень ?Тебе писали о том, как это сделать в первой части. Делай по аналогии. Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 4 ноября, 2014 Автор Поделиться Опубликовано 4 ноября, 2014 Взломал я эту игру Hudson's Adventure Island! Читы я вшил в игру на:Бессмертие.Вечные жизни.Вечное время.Не терять время при ударе об булыжник.Не терять оружие. Начать игру с максимальным оружием и скейтбордом.Начать игру с 9-жизнями.Ангел улетает, но эффект остаётся.Скачать взломанную игру Hudson's Adventure Island. Если кому надо, я так-же русифицировал эмулятор FCEUX v2.2.2. Скачать эмулятор FCEUX-RU. 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 4 ноября, 2014 Поделиться Опубликовано 4 ноября, 2014 Взломал я эту игру Hudson's Adventure Island! Читы я вшил в игру на:Бессмертие.Вечные жизни.Вечное время.Не терять время при ударе об булыжник.Не терять оружие. Начать игру с максимальным оружием и скейтбордом.Начать игру с 9-жизнями.Ангел улетает, но эффект остаётся.Скачать взломанную игру Hudson's Adventure Island. Если кому надо, я так-же русифицировал эмулятор FCEUX v2.2.2.Скачать эмулятор FCEUX-RU.А как высокий прыжок сделать ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 4 ноября, 2014 Поделиться Опубликовано 4 ноября, 2014 Искать координату, которая меняется при прыжке, или таймер прыжка. Как это делать - прыгать и искать меняющееся значение. Как именно - не скажу, попробуй уже сам немного мозги размять. Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 4 ноября, 2014 Автор Поделиться Опубликовано 4 ноября, 2014 Интересно! И куда же ты так хочешь высоко запрыгнуть? Попробуй сам взломать на прыжки как сказал Xipho.Я больше по взлому жизней, оружия и т.д. чем делать высокие прыжки и выбор уровней. Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 23 ноября, 2014 Автор Поделиться Опубликовано 23 ноября, 2014 На днях взломал игру Contra Force. Читы я вшил в игру на:Бессмертие.Вечные жизни.Начать игру с 99 жизнями.Вечные ящики.Не терять ящики.Максимальный дроп ящиков.Не терять оружие.Яростная стрельба.Вечное время компаньона.Авто-респавн компаньона.Фикс - после убийства босса, режим паузы ещё работает, до победной музыки.P.S - Рекомендую отключать напарника когда завалите боссака или до победной музыки.Скачать взломанную игру CONTRA FORCE 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 28 ноября, 2014 Автор Поделиться Опубликовано 28 ноября, 2014 Взломал ещё две игры. Читы вшиты в ромы: Super Mario Bros. Бессмертие.Вечные жизни.Не терять большого-белого Mario.Начать игру с большим белым Mario.Начать игру с 9 жизнями.Выбор уровней в меню игры нажатием кнопки A.Скачать взломанную игру Super Mario Bros. Teenage Mutant Ninja Turtles 3: The Manhattan Project Бессмертие.Вечные жизни.Доступны опции: Выбор уровней, сложности, жизней в игре и тест звуков.Скачать взломанную игру Teenage Mutant Ninja Turtles 3: The Manhattan Project 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения