Автор Тема: Как хакать игры Sega mega drive:менять графику и текст  (Прочитано 3609 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн wto_to

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
Помогите пожалуйста! Расскажите мне как хакнуть текст и графику в любой игре для SMD. Желательно Ultimate mortal kombat 3. Буду очень благодарен.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5005
    • Просмотр профиля
Ultimate mortal kombat 3
Просить компрессор от r57shell, я пытался сам реализовать сжатие, но у него сжимает по максимуму (у меня не хватает несколько байтов). Свою реализацию я забросил на неопределённый срок.

Оффлайн wto_to

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
Просить компрессор от r57shell, я пытался сам реализовать сжатие, но у него сжимает по максимуму (у меня не хватает несколько байтов). Свою реализацию я забросил на неопределённый срок.
что такое компрессор и ка и где спрашивать, и что делать дальше, также ты знаешь ка текст менять?

Оффлайн Марат

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
Просить компрессор от r57shell, я пытался сам реализовать сжатие, но у него сжимает по максимуму (у меня не хватает несколько байтов). Свою реализацию я забросил на неопределённый срок.
А что там за сжатие? Наверняка, какой-нибудь LZSS. Если так, то можно добавить поиск оптимальной строки и будет сжимать лучше оригинала на несколько процентов.

Оффлайн lupus

  • Пользователь
  • Сообщений: 3812
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
Раз по lz речь пошла, есть какие-то универсальные анпакеры?

Оффлайн Марат

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
Не встречал, в основном приходиться писать самому под каждую игру.

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Ну человек хочет UMK3, а там, если мне память не изменяет, повсеместное RNC сжатие.

А по-хорошему для теории я бы советовал научиться делать хаки на Соника, так как для их хакинга даже гайды есть.
После того, как теория будет ясна (соберёшь пару хаков по гайдам), можно уже читать статьи дальше, изучать ассемблер, строение графики, регистров, памяти и прочего.
Это если хочется делать нечто полноценное (вроде добавления персонажей, уровней и т.д.), а не просто поднять число контов с 3 до 999999999999  :lol:
Кто-то с этого и начинал (я например  :cool: ).
Если что вот сурс на инглише:
Гайды: https://info.sonicretro.org/Category:SCHG_How-tos
Общая инфа: https://info.sonicretro.org/Category:Sonic_Community_Hacking_Guide
Сырцы санников: http://info.sonicretro.org/Disassemblies (советую те, что Split and Text)

Добавлено позже:
Либо есть быстрый путь - посмотреть несколько моих стримов, чтобы понять как прям быстро делать хак
И держать на готове справочник по ассемблеру, чтобы яростно его читать во время отладки кода  :lol:

Оффлайн Марат

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
Ну человек хочет UMK3, а там, если мне память не изменяет, повсеместное RNC сжатие.
Мне, кажется, что я где-то тоже читал, что там rnc, но я глянул в спискок игр, в которых используется rnc, выложенный Dr.Mefisto и этой игры там нет - только MK и MK2.

Оффлайн wto_to

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
Ну человек хочет UMK3, а там, если мне память не изменяет, повсеместное RNC сжатие.

А по-хорошему для теории я бы советовал научиться делать хаки на Соника, так как для их хакинга даже гайды есть.
Кто-то с этого и начинал (я например  :cool: ).
Если что вот сурс на инглише:
Гайды: https://info.sonicretro.org/Category:SCHG_How-tos
После того, как теория будет ясна (соберёшь пару хаков по гайдам), можно уже читать статьи дальше, изучать ассемблер, строение графики, регистров, памяти и прочего.
Это если хочется делать нечто полноценное (вроде добавления персонажей, уровней и т.д.), а не просто поднять число контов с 3 до 999999999999  :lol:
Общая инфа: https://info.sonicretro.org/Category:Sonic_Community_Hacking_Guide
Сырцы санников: http://info.sonicretro.org/Disassemblies (советую те, что Split and Text)

Добавлено позже:
Либо есть быстрый путь - посмотреть несколько моих стримов, чтобы понять как прям быстро делать хак
И держать на готове справочник по ассемблеру, чтобы яростно его читать во время отладки кода  :lol:
так санька то я хакать умею вот с комботом проблемы, да и не ультиматум хакать хочу а третий мк! Это опечатка была!

Добавлено позже:
Мне, кажется, что я где-то тоже читал, что там rnc, но я глянул в спискок игр, в которых используется rnc, выложенный Dr.Mefisto и этой игры там нет - только MK и MK2.
незнаю что это за rnc, но это точно не он. Потому-что графон в мк 1 и 2 спокойно смотрится через yy-chr, а вот мк 3, нет

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Да, в UMK3 не RNC. И через YY-CHR ты точно не всю графику в MK1 и 2 можешь смотреть.

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
DrMefistO, дядь, а ну ка подкинь человеку запись твоего стрима, где ты графен доставал.
щас особенно полезно будет  :)

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
wto_to, текст в хекс-редакторе пробовал менять?
Прикол в том, что почти к каждой игре нужны свои инструменты, чего-то общего для всех нет, кроме редакторов тайлов, шестнадцатеричных значений, да звуков-музыки. Упаковщик-распаковщик графики и текста у каждой могут быть свои, достать их у создателей вряд ли получится, поэтому энтузиасты пишут свои.
Но даже этого мало, архивы в роме не всегда имеют заголовок, по которым их можно найти, поэтому энтузиасты изучают ассемблер и используют дебаггеры, чтобы найти в коде указатели на местоположение этих архивов.
Мало того, что картинки запакованы, так они ещё и не цельные, будто пазл недособранный. Т.е. нельзя просто взять и вытащить картинку для перерисовки, приходится его собирать вручную. И эти "координаты" (тайловые карты), где какой кусочек, тоже могут быть запакованы :)
Ещё картинки могут состоять из двух слоёв:
235713-0

+палитра отдельная, тоже надо найти где-то в роме.

Те времена были суровые, экономили каждый байт ужимая всё что могли.
Все эти сложности интересно преодолевать только если горишь всем этим, или если есть реально интересная идея модификации.
Некоторые не делятся инструментами, потому что становится слишком легко понаделать "говнохаки".

Оффлайн Марат

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
А что там за сжатие? Наверняка, какой-нибудь LZSS. Если так, то можно добавить поиск оптимальной строки и будет сжимать лучше оригинала на несколько процентов.
LZ+RLE+SEQ. Ничего сверхъестественного. Просто несколько режимов сжатия (5). Можно, попробовать добавить оптимальный поиск строки.

Некоторые не делятся инструментами, потому что становится слишком легко понаделать "говнохаки".
Ну, и пусть делают. Одним больше, одним меньше.

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1592
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
UMK3CODEC.zip
Ура! Теперь ждём от умельцев играбельного Пикачу и +56 пеоплов. :lol:

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
Определённо, Эму Ленд просто взорвётся от потока хаков, держитесь :lol:

Вот тоже внесу свою лепту, адреса архивов:
236127-0

Подписи могут быть неточными, т.к. серьёзно всё это разбирать пока ещё не брался.
"map" - карты тайлов.

Самый любопытный архив тут для меня сейчас по адресу 0x3EE47A. Весит он почти 13 килобайт, и он... не используется. Внутри какие-то иконки, просматривается Шива. Удалил его из рома и в игре никаких изменений не заметил. В будущем подробнее изучу.

Оффлайн Марат

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
Улучшил сжатие за счёт оптимального разбора словаря.
Добавил консольный вариант и lua- скрипт для генса для извлечения адресов.

Добавлено позже:
Самый любопытный архив тут для меня сейчас по адресу 0x3EE47A. Весит он почти 13 килобайт, и он... не используется. Внутри какие-то иконки, просматривается Шива. Удалил его из рома и в игре никаких изменений не заметил. В будущем подробнее изучу.
« Последнее редактирование: 08 Апрель 2021, 15:28:53 от Марат »

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
Марат, точно, теперь вспомнил что увидел эти знакомые иконки и решил, что нашёл иконки главного меню, но их изменение не повлияло на него.
13 килобайт мусора оставлять - многовато, когда чуть ли не каждый байт на счету.
Похоже, остались с MK3.

Добавлено позже:
Не думал ещё и поворачивать и зеркалить тайлы для ещё более сильного сжатия? :)

Оффлайн Марат

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
Так я же не придумываю новый вид сжатия.
Если я буду зеркалить тайлы, каким образом игра поймет, что я их отзеркалил?
В оригинальном декомпрессоре нет таких режимов.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
Да, придётся также найти и править в роме параметры этих тайлов, чтобы их обратно поворачивала или отзеркаливала сама игра.
Просто с этой идеей ношусь, хочу попробовать как будет возможность.

Или я неправильно понял про параметры тайлов?

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Зеркалирование задаётся маппингом (биты HF и VF). Если маппинга в сжатых данных нет, нужно искать и править там.

Оффлайн Gilberto Cardoso9

  • Пользователь
  • Сообщений: 30
  • Пол: Мужской
  • Hacker is my love
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Зеркалирование задаётся маппингом (биты HF и VF). Если маппинга в сжатых данных нет, нужно искать и править там.
hello friend, I want to finish shang tsung of the mortal kombat 1 genesis, he is without his powers and without transformations, I want to include the reptile character in his transformations, which is already included in the rom on the selection screen, what should I do from now on to finalize shang tsung? and what tools will i need ??

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
what should I do from now on to finalize shang tsung? and what tools will i need ??
Translate this through Google:
Почти к каждой игре нужны свои инструменты, чего-то общего для всех игр нет, кроме редакторов тайлов, хекс-редакторов и редакторов звуков/музыки. Упаковщик и распаковщик графики и текста у каждой игры может быть свой. Достать их у создателей вряд ли получится, поэтому энтузиасты пишут свои инструменты.
Мало того - архивы в ROM не всегда имеют заголовок, по которым их можно найти, поэтому энтузиасты изучают ассемблер и используют дебаггеры, чтобы найти в коде указатели на местоположение этих архивов.
Мало того, что картинки запакованы, они ещё и не цельные, будто пазл не собранный. Т.е. нельзя просто взять и вытащить картинку для перерисовки, приходится его собирать вручную. И эти "координаты" (тайловые карты, где какой кусочек), тоже могут быть запакованы.
Ещё картинки могут состоять из двух слоёв:
(Ссылка на вложение)

+палитра отдельная, тоже надо найти где-то в ROM.

Те времена были суровые, экономили каждый байт cжимая всё.
Все эти сложности интересно преодолевать только если очень интересно, или если есть реально интересная идея модификации.
Некоторые энтузиасты не делятся инструментами, потому что становится слишком легко делать плохие моды.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2510
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
господа, колитесь каким образом изменить режим экрана с H32 на H40? взял оригинальный ром, увидел подсказку отсюда со скрина с адресами где лежит экран Williams - пересобрал его в H40, пожал этим компрессором, что здесь приложен в теме, вставил вроде бы в нужные места в слабой надежде, что раз игра увидит что размер стал больше - сама переключит режим экрана куда надо :) ноооооо я переоценил возможности игры самостоятельно определить нужный режим экрана :)



я пытался тыркнуть трасер и посмотреть на логи... зная адрес откуда читаются тайловый сет и карта - можно найти эти места в логе трасера, ноооо что-то мне это мало помогло. решил попытаться поискать само переключение режима экрана и вроде бы нашлось что-то похожее... ноооо что с этим дальше то делать? как определить куда оно чего зачем отсылается и как повторить?
строчки с циферками: FFFF8C00 и FFFF8C81
00:023E  51 C9  DBFa    D1,#$FFF8 [01:0238]      A0=00A00000 A1=00A11100 A2=00A11200 A3=00C00000 A4=00C00004 A5=000002B4 A6=00000000 A7=01000000 D0=00000000 D1=0000000C D2=00000000 D3=00000000 D4=00000000 D5=FFFF8C00 D6=00003FFF D7=00000100 xNzvc
00:0238  1A 1D  MOVE.B  (A5)+,D5                 A0=00A00000 A1=00A11100 A2=00A11200 A3=00C00000 A4=00C00004 A5=000002B4 A6=00000000 A7=01000000 D0=00000000 D1=0000000B D2=00000000 D3=00000000 D4=00000000 D5=FFFF8C00 D6=00003FFF D7=00000100 xNzvc
00:023A  38 85  MOVE.W  D5,(A4)                  A0=00A00000 A1=00A11100 A2=00A11200 A3=00C00000 A4=00C00004 A5=000002B5 A6=00000000 A7=01000000 D0=00000000 D1=0000000B D2=00000000 D3=00000000 D4=00000000 D5=FFFF8C81 D6=00003FFF D7=00000100 xNzvc
00:023C  DA 47  ADD.W   D7,D5                    A0=00A00000 A1=00A11100 A2=00A11200 A3=00C00000 A4=00C00004 A5=000002B5 A6=00000000 A7=01000000 D0=00000000 D1=0000000B D2=00000000 D3=00000000 D4=00000000 D5=FFFF8C81 D6=00003FFF D7=00000100 xNzvc


Добавлено позже:
и второй вопрос в догонку... я так понимаю что палитры для подобных экранов тоже пожаты и надо их разжимать? и соответственно тогда наоборот сжимать если было изменение? аааа какой режим сжатия надо выбирать в программе? сжатие тайл сета или сжатие тайловой карты?

и я тайловую карту надписи Sega не могу найти. или она не на экране сделана, а с помощью спрайтов? и поэтому мне надо искать не тайловую карту, а конфигурацию спрайтов?

Оффлайн UltraFatalSlash

  • Пользователь
  • Сообщений: 274
  • Пол: Мужской
  • Уывбин дискаверед!!!! О____О
    • Просмотр профиля
Марат, а как пользоваться UMK3CODEC? Если в папку с ним подложить оригинальный ром UMK3 (U) [!].gen и нажать Decompress.bat, появляется папка Extracted с шестью файлами с расширением .map и одним .chd. Пробовал их сувать в тайловый редактор, но ничего путного не показывается. Что дальше нужно делать, чтоб в конце концов добраться до графики? :) Как юзать адреса из таблицы perfect_genius'a? Раньше никогда не хакал игры для Мегадрайва, кто шарит помогите плз.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
UltraFatalSlash, запусти UMK3CODEC.exe, введи нужный адрес из списка. Например, тебе нужен Джакс, в списке имя архива - "0AB000-0AB38F (jax)", т.е. начальный адрес архива в роме 0xAB000. Вот его и вводишь в поле и нажимаешь Decompress. У тебя появится файл на 2 килобайта - это распакованная графика Джакса, её и редактируешь в тайловом редакторе (выше скриншот Djinn Mapper). Потом сжимаешь обратно (Compress Tiles) и вставляешь в ром по тому же адресу уже в других программах, например, в хекс-редакторе. Твой архив должен быть равен размеру оригинального или меньше.

Оффлайн UltraFatalSlash

  • Пользователь
  • Сообщений: 274
  • Пол: Мужской
  • Уывбин дискаверед!!!! О____О
    • Просмотр профиля
perfect_genius, спасибо! А среди этих архивов есть собственно боевые спрайты (а не только статичные портреты/etc.)? В частности интересуют девушки-ниндзя и Соня.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
Потыкал самые большие из этих файлов и не углядел ничего похожего на кадры бойцов. Надо искать через дебаггер, а это не так просто. Но есть способ попроще и ненадёжный - поискать эти начальные адреса в роме, найти их список и пройтись по этому списку для сверки - или окажутся не все, или рядом с этим списком (до или после) обнаружится другой список. И тогда пробуешь их распаковать и смотреть в редакторе тайлов.
Собирался сделать nude mod что ли? :)

Оффлайн DeadEX

  • Пользователь
  • Сообщений: 1
    • Просмотр профиля
Did you figure out what the compression format is used for the sprites?