
Как я менял местами персонажей UMK3 на Sega Mega Drive
Mark6 1 минуту назад Как я менял местами персонажей UMK3 на Sega Mega Drive Простой 7 мин 7 Игры и игровые консоли Реверс-инжиниринг * Кейс В этой статье я подробно разбираю последовательные шаги, которые предпринимал...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. Mark6 1 минуту назад Как я менял местами персонажей UMK3 на Sega Mega Drive Простой 7 мин 7 Игры и игровые консоли Реверс-инжиниринг * Кейс В этой статье я подробно разбираю последовательные шаги, которые предпринимал для замены персонажей и их портретов в Ultimate Mortal Kombat 3 на Sega Genesis. Я не профессионал в реверс-инжиниринге и не претендую на исчерпывающую техническую документацию. Напротив, я намеренно оставляю в материале ложные пути и тупиковые ветки исследования — чтобы вы видели реальный процесс поиска, со всеми ошибками и неожиданными поворотами, а не только гладкий финальный результат.
Надеюсь эта статья поможет тем кто незнает с чего начать в решении подобной задачи. ВведениеДля многих, включая меня, Ultimate Mortal Kombat 3 была одной из самых любимых игр детства. Давно хотелось разобраться, как она устроена, но всё никак не доходили руки.
Технические детали
Теперь настал подходящий момент. Я решил начать с чего-то простого и наглядного, а именно поменять местами персонажей, а также их портреты на экране выбора. В статье пошагово опишу методы и приёмы, которые использовал для поиска нужных данных в ROM, редактирования графики и тестирования результатов.
Материал рассчитан на практический интерес — от анализа адресов и структур до вставки собственных изображений в игру. Для работы я буду использовать Американский ром Ultimate Mortal Kombat 3 (USA)Попытка поменять персонажаНа момент подготовки статьи в DataCrystal имелась лишь одна подкатегория — RAM map, поэтому другие разделы, особенно Tutorial, я не использовал. Для начала решил изучить уже известные адреса в игре.
Зашел на датакристал, обнаружил, что у данной игры была только одна подкатегория RAM map. В ней нашёл интересное значение по адресу 126, где хранится информация о текущем выбранном персонаже. P1 Character: 0x00 = Kano 0x01 = Sonya 0x02 = Jax 0x03 = Nightwolf 0x04 = Unmasked Sub-Zero 0x05 = Stryker 0x06 = Sindel 0x07 = Sektor 0x08 = Cyrax 0x09 = Kung Lao 0x0a = Kabal 0x0c = Shang Tsung 0x0d = Liu Kang 0x0e = Smoke 0x0f = Kitana 0x10 = Jade 0x11 = Mileena 0x12 = Scorpion 0x13 = Reptile 0x14 = Ermac 0x15 = Classic Sub-Zero 0x16 = Human Smoke 0x17 = Noob Saibot 0x18 = Rain Сначала я решил попытаться испытать удачу и найти эту последовательность напрямую.
Отраслевые последствия
Для этого я взял изображение с выбором персонажей и составил последовательность, предполагая, что она будет идти слева направо сверху вниз. PlayerSelectЯ взял значение первых 3-х персонажей(18 13 05) и попытался их найти. Ожидаемо, безуспешно.
Тогда решил проверить вариант с 16-битными значениями, предположив, что каждому бойцу выделено по два байта. Поиск по последовательности 00 18 00 13 00 05 дал результат — единственное совпадение по адресу DFC8. SearchResultПосмотрел дальше, и вся остальная последовательность совпадает.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





