Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Вы владелец небоскреба! Стройте этажи, управляйте магазинами и работниками!

Небоскреб Мечты

Казуальные, Симуляторы, 2D

Играть

Топ прошлой недели

  • Oskanov Oskanov 9 постов
  • Animalrescueed Animalrescueed 46 постов
  • AlexKud AlexKud 33 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
108
1000Sons
1000Sons
9 лет назад
Лига Геймеров

Ромхакинг for fun. #2⁠⁠

Теперь как же изменить графику? Вся графика на NES/Dendy это "тайлы" квадратные , они хранятся в роме и загружаются в видеопамять приставки и оттуда уже по нужным адресам отрисовываются + еще добавляется нужная палитра. Например облака и кусты в Super Mario  состоят из одних и тех же тайлов только с разной палитрой, или например Марио сожравший  гриб , Марио сожравший цветок или марио большой на втором уровне это одини и те же тайлы только с другой палитрой.


Можно посмотреть какие тайты сейчас загружены в видеопамять через эмулятор с помощью PPU Viewer ( в эмуляторе FCEUX). NES по моему может одновременно держать в памяти только 256 разных тайлов , по этому в большинстве игр графика это повторяющиеся элементы. Таблицы этих тайлов конечно же меняются в зависимости от уровня и тд.

Например мы захотели поменять надпись BATMAN на надпись PIKABU в игре Batman на Dendy (кэп), благо количество  букв совпадает. Кстати у этой надписи 2 состояния , если у Бэтмана нет оружия она будет синей , а если есть то в оранжевых тонах и тайлы отличаются. По этому мы можем сделать так что когда нет оружия написано BATMAN , а когда оружие есть то будет написано PIKABU.

Для этого нам понадобиться тайловый редактор,их очень много, даже под DOS есть, я скачал RomArtist. Интерфейс у него состоит из пары окон , в главном окне все тайлы из игры + окно палитры+ окно редактирования.


Открываем наш ром в нем и находим ( от непривычки в глазах будет рябить) те тайлы которые мы хотим изменить. Тайл это по сути квадрат с графикой и не факт что каждая буква будет в одном тайле ( тут такой случай)и при этом тайлы не идут по порядку , может так получиться что в 2 тайла влазят 1 буква и 2 части от других, это по началу покажется сложным, но разобраться можно, да и никто не запрещает редактировать, запускать игру и проверять результат и потом редактировать опять.


Я нашел нужные мне тайлы и начал их перерисовывать.....

....путем проб и ошибок мне удалось перерисовать , вполне прилично.Пол буквы нарисовал запустил игру проверил и так по кругу. Если приглядеться то увидите что именно я перерисовал. ( Не забываем сохранить ром в Rom Artist).

Собственно вот сам результат в виде гифки. Изначально у нас надпись BATMAN , а после того как мы подбираем патроны  она меняется на PIKABU.

Эмулятор - http://www.fceux.com/web/home.html
RomArtist - http://shedevr.org.ru/cgi-bin/utilz.cgi?n=2
Показать полностью 5
Ромхакинг NES Dendy Бэтмен Гифка Длиннопост
17
22
1000Sons
1000Sons
9 лет назад
Лига Геймеров

Ромхакинг for fun. #1⁠⁠

Многие в детстве видели игры для "Dendy" типа Super Mario Bros с бесконечными жизнями или где Марио мог одним прыжком долететь до финиша, или "Черный плащ 2" (!) который был хаком Super C с измененными тайлами. В 90х мало кто мог сам "хакнуть" игру, а теперь есть куча инструментов для этого и можно попробовать сделать это самому.


Для этого нам понадобится эмулятор FCEUX 2.2.2 ( в этом эмуляторе полно инструментов типа встроенного хекс редактора, дебагера , просмоторщика тайлов которые в данный момент в видеопямати и тд) и ром игры, например Super Mario Bros.


Запустим Марио в эмуляторе запустим игру и зайдем в поиску в памяти ( RAM Search)

Например мы хотим бесконечные жизни. Изначально у нас 3 жизни ( но отсчет идет с 0). Сделаем поиск в памяти как на картинке , и найдем все значения "2". Те значения которые меняются (красные) можно сразу же отсеивать опять делая "Search".

Дальше например добежим до скрытого блока с жизнью о котором все знают, возьмем его и сделаем поиск опять но уже предварительно изменив фильтр , выставим "Greater Than" (больше чем) и "Previous Value" (предыдущее значение). У нас останется один адрес  где хранится количество жизней

Дальше кликаем правой кнопкой на адресе и откроется хексредактор с уже помеченным значением в памяти приставки , кликаем на него правой кнопкой и выбираем "Add Write Breakpoint".

Теперь откроется дебагер и он будет эмуляцию ставить на паузу каждый раз когда в ячейку жизней будет происходить запись (чтоб продолжить эмуляцию жмем Run) и будет показывать команды процессора которые выполняются при этом.

Вернемся в игру не закрывая ничего пока. И спрыгнем в пропасть потратив 1 жизнь. И сразу увидим что сработал наш "breakpoint" фильтр в дебагере. И в этой строке видно что происходит уменьшение (DEC)  значения по адресу 075A и слева так же показана эта функция в хекс виде , а не в виде опкода процессора NES. Скопируем "CE 5A 07" .

Откроем окно с хекс редактором и выберем отображение содержимого рома, а не содержимого памяти приставки и сделаем поиск по "CE 5A 07".

Изменим "5A 07" на "00 00" и сохраним ром File -> Save Rom . Закроем эмулятор и все окна уже нам ненужные и запустим этот ром опять. И теперь при смерти у нас не будут отниматься жизни, тк вместо адреса значение которого должно уменьшаться у нас стоят нули.Это конечно все очень поверхностно и очень уж простой пример. Не все игры или параметры игры получиться так легко хакнуть без знания процессора 6502, но ради развлечения сойдет.


Хотел еще показать как графику можно поменять, но слишком длинно получается и сделаю другой пост .

Эмулятор - http://www.fceux.com/web/home.html

Опкоды NES процессора и их описание - http://www.thealmightyguru.com/Games/Hacking/Wiki/index.php?...

Ромы - http://www.emu-russia.net , http://www.emu-land.net

Показать полностью 8
Игры Ромхакинг NES Dendy Super Mario Brother Длиннопост
25
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии