Разработка и ромхакинг > Ромхакинг

Вопросы новичков

(1/21) > >>

Беларус учит русский:
Тема для вопросов по ромхакингу, для которых создание отдельной темы кажетса излишним.
Самые частые вопросы новичков:

Какой програмой взламываютса игры (ромы)?
Общее, что есть внутри игр - это текст на английском языке. Если он не сжат, то находитса поиском в хекс-редактре.
Несжатую графику в ромах можно найти редактром тайлов, но для этово уже надо будет правильно указать платформу и проходить по внутренностям вручную, искать на глаз. На некоторых платформах с этим легче, там графика лежыт в известном месте (NES).
Некоторые игры могут использовать популярные алгоритмы сжатия с заголовком, и тогда достаточно найти в роме только эти заголовки архивов и распаковать.

Нет одной универсальной програмы для всех игр, т.к. внутреннее устройство каждой отличаетса и поэтому для каждой нужно искать свои инструменты. Бывает, что внутренности похожы у игр одной серии или одново разработчика, и тогда один инструмент может поддержывать сразу их все.
Если инструментов нет, то для их создания изучаетса код игры с помощью отладчиков в эмулятрах и дизасэмблеров типа MESEN, Ghidra и IDA.

При запуске игры для Сеги на приставке или эмулятре показываетса только красный/зелёный/синий/чёрный экран
С большой вероятностью это действие защиты игры от изменений: игра видит, что изменена, и отказываетса запускатса. Если это не хак/перевод игры, то ром может быть просто повреждённым.
В настройках эмулятров можно включить обход этой защиты ("исправление контрольной суммы", "fix checksum"), а для приставки понадобитса исправить ром спецыальными програмами - ищутса по "sega fix checksum".

NightHard:
Не раз встречал подобные хаки на romhacking, но для чего они делаются? И что именно это даёт самой игре?

SeregaZ:
предположил бы что для совместимости, чтоб запускать на всяких перезаписываемых картриджах, на которых не все прикручено.

Sharpnull:

--- Цитата: SeregaZ от 01 Март 2020, 15:48:18 ---совместимости
--- Конец цитаты ---
Я других причин тоже не знаю. Иногда конвертирует из редких мапперов, которые мало кто поддерживает, как было не так давно с Super Gun (Caltron - 9-in-1); это может быть связано с попыткой защиты от копирования (Metal Storm (2019)). Бывают также хаки выпускаемые на картриджах (то есть пиратские) с неоригинальными мапперами, их тоже возвращают.

Cyneprepou4uk:
http://www.romhacking.net/forum/index.php?topic=29960.0

Sharpnull:

--- Цитата: Cyneprepou4uk от 01 Март 2020, 16:50:14 ---http://www.romhacking.net/forum/index.php?topic=29960.0

--- Конец цитаты ---
Значит вторая цель - расширить возможности связанные с ограничениями маппера (лучше графика, больше памяти, аудио и т. п.).

supremacy:
В основном, чтобы изготовить репродукцию на имеющемся доноре.
Если вопрос про конкретного персонажа который игры на mmc5 переделывает, то человек просто тренируется, а выкладывает в общий доступ чтобы все знали, что он это может 8)

ALXR:
Могу еще предложить вариант: Для расширения свободного пространства для увеличения размера уровней. Как пример - редактор конвертирует из CNROM в MMC3, благодаря чему стало возможным добавить уйму новой графики в игру и добавить еще вагон уровней.

Беларус учит русский:
Есть ли простой способ вытащить палитру, например из VDP-просмотрщика эмулятра, и загрузить ево в какой-то из тайловых редакторов?
И есть какой-то общий способ найти палитру в роме или в отладчике?
У меня куча редактров, но у каждово свой формат палитры, похоже. Дамп с Генса не подошёл ни к одному.

Sharpnull:
perfect_genius, формат CRAM стандартный. В Exodus дамп сохраняется правильно как 128 байт; в Gens r57shell Mod правильно, но в конце лишние байты до 512; в GensKMod каждые 2 байта переставлены, потому что создатель Gens байты вертел для удобства и для дампа приходится назад переставлять (я исправлял в своём форке, но кому это нужно).
Не проблема сконвертировать в каком-нибудь стандартный .pal или .act, где подряд идут цвета, скрипт написать или найти готовые программы. Только цвета можно п-разному интерпретировать, в Retro Graphics Toolkit можно открыть палитру и посмотреть не только с обычным округлением, но и HardwareMan's measured values и наложить Shadow/Highlight. Если ваш редактор не понимает обычные .pal, .act, то придётся адаптировать и для него.
--------
Вот простой скрипт на Python 3 на основе https://segaretro.org/Sega_Mega_Drive/Palettes_and_CRAM, который берёт CRAM дамп и конвертирует в .act (256 цветов всегда, порядок байтов R G B, открывает Photoshop). 1-й аргумент - дамп, 2-й - .act.

Марат:

--- Цитата: perfect_genius от 18 Январь 2021, 23:36:12 ---Есть ли простой способ вытащить палитру, например из VDP-просмотрщика эмулятора, и загрузить его в какой-то из тайловых редакторов?
--- Конец цитаты ---
Gens r57Shell mod может сохранять палитру в формате RGB. Которую можно загрузить в любой графический редактор. Либо можно эту палитру загружать в тайловый редактор YY-CHR, Djinn Tile Mapper. Это и есть самый простой способ.

DrMefistO:
В той же генсиде есть кнопка YY-CHR Pal для того, чтобы выгрузить палитру в формате YY-CHR.

Беларус учит русский:
Спасибо за ответы. Конкретно, я хочу изменить фон иконки ЧелСмоука в хаке UMK3 на такой:

Дампил с Gens r57Shell mod, и в bin и в pal. Djinn Tile Mapper'у вообще на всё плевать, даже пробовал обрезать до 128 байт, как писал Sharpnull - всегда ошибка.
YY-CHR грузит, но цвета не те. Да и как из каши тайлов собрать целую картинку я не нашёл. Хочется-то отрисовать в графредакторе и просто вставить в тайловый редактор, естественно.
Был EmuHawk, решил посмотреть что у него есть - палитру сохраняет только в PNG. Но вдруг заметил жуткую вещь:

Т.е. в UMK3 иконки формируются наложением двух слоёв?! 0_0
Но, как тут видно, добавленные ЧелСмоук и Шива формируются из одного слоя.
Значит, надо создать второй слой со своей палитрой?
(кстати, у иконки ЧелСмоука можно увидеть мои пробы цветов на фоне).

Ну и раз уж зашла тема про экран персонажей, то в роме есть большой архив со всеми иконками персонажей, и его изменение ни к чему не приводит. Более того, его удаление из рома ни на что не влияет o_0
Находится он по адресу 0x3EE47A, весит почти 13 килобайт. Может кто знает что это?

Марат:

--- Цитата: perfect_genius от 19 Январь 2021, 22:46:27 ---Djinn Tile Mapper'у вообще на всё плевать
--- Конец цитаты ---
Djinn Tile Mapper надо брать на сайте chief-net'a. Или на на форуме chief-net'a. Djinn Tile Mapper alex edition. Или на форуме chief-net есть моя версия Djinn Tile Mapper. Они поддерживают загрузку палитры.

--- Цитата: perfect_genius от 19 Январь 2021, 22:46:27 ---YY-CHR грузит, но цвета не те.
--- Конец цитаты ---
Ты, видимо, что-то неправильно делаешь. Там есть два режима палитры. Надо выбирать Pal Set(RGB Palette + Table).

--- Цитата: perfect_genius от 19 Январь 2021, 22:46:27 ---Т.е. в UMK3 иконки формируются наложением двух слоёв?!
--- Конец цитаты ---
Да, когда конвертят картинку из 32 цветов, то делят её на два слоя. Так как велика вероятность, что на одном тайле будут присутствовать более 16 цветов.
--- Цитата: perfect_genius от 19 Январь 2021, 22:46:27 ---Ну и раз уж зашла тема про экран персонажей, то в роме есть большой архив со всеми иконками персонажей, и его изменение ни к чему не приводит. Более того, его удаление из рома ни на что не влияет
--- Конец цитаты ---
Видимо, хакер раньше с этого места использовал иконки без сжатия. А потом сжал и переместил в другое место, а здесь не стал удалять или забыл.

Беларус учит русский:
Ого, Djinn Tile Mapper активно развивается тобой :thumbup:
Всё работает, спасибо.
Нашёл палитру в роме сверив с дампом. Где удобно подобрать нужные цвета? В сети есть палитры с хекс-значениями. Или Djinn Tile Mapper как-то покажет? И как выбрать прозрачный цвет? Выбрал белый - а он оказался действительно белым.

Насчёт архива с иконками - нет, они внутри оригинальной американской версии.

Марат:

--- Цитата: perfect_genius от 21 Январь 2021, 00:29:58 ---Где удобно подобрать нужные цвета? В сети есть палитры с хекс-значениями.
--- Конец цитаты ---
Там обычные цвета. Интенсивность красного, синего и зеленого от 0 до 240. Но они хранятся сдвинутыми на 4 бита вправо. Всего 12 бит.
R - 4 бита, B - 4 бита и G - 4 бита. Почитай в документациях.
--- Цитата: perfect_genius от 21 Январь 2021, 00:29:58 ---И как выбрать прозрачный цвет? Выбрал белый - а он оказался действительно белым.
--- Конец цитаты ---
Первый цвет всегда прозрачный будет в игре независимо от того, какого он цвета.

Беларус учит русский:
Доку читал, слишком сложно на ходу вникнуть : )
Обычно изучаю и пробую, просто на этот раз срочно надо.
Т.е. простого способа получить строку в хекс-формате и вставить его в ром - нет? Наверно, можно сохранить в .pal и выковыривать нужно оттуда?


--- Цитата: Марат от 21 Январь 2021, 01:09:58 ---Первый цвет всегда прозрачный будет в игре независимо от того, какого он цвета.
--- Конец цитаты ---
Генри Форд: "Цвет автомобиля может быть любым, при условии, что он черный" :)
В палитре Джина 64 цвета, первые - это самые левые, да?
А в палитре окна тайла почему ходит какая-то белая рамка по каждым четырём цветам? Это как-то связано с количеством бит на цвет?
Может, есть дока по твоему Джину?

Марат:

--- Цитата: perfect_genius от 21 Январь 2021, 01:37:56 ---А в палитре окна тайла почему ходит какая-то белая рамка по каждым четырём цветам? Это как-то связано с количеством бит на цвет?
--- Конец цитаты ---
Там выделено то количество цветов, которое тебе доступно для рисования в тайле. Это набор цветов для тайла. Если выделено только 4, значит ты редактируешь тайл в формате 2 bpp.
Доки никакой нет, к сожалению.
--- Цитата: perfect_genius от 21 Январь 2021, 01:37:56 ---В палитре Джина 64 цвета, первые - это самые левые, да?
--- Конец цитаты ---
Да
--- Цитата: perfect_genius от 21 Январь 2021, 01:37:56 ---Т.е. простого способа получить строку в хекс-формате и вставить его в ром - нет?
--- Конец цитаты ---
Ну, есть всякие конвертеры. Искать надо.

Беларус учит русский:
SMD
Есть ли какие-то общие способы найти карту тайлов? Например, просмотрщик VDP может как-то подскажет? Может даже в каком-то эмуляторе в VDP можно ставить бряк?
Я правильно понимаю, что тайлы распаковываются в память, из памяти копируются в видеопамять, а оттуда уже с помощью карты тайлов строится итоговая картинка на Plane A и Plane B, и спрайты?
+карта ещё и может быть запакована?

DrMefistO:

--- Цитата: perfect_genius от 30 Январь 2021, 00:22:33 ---SMD
Есть ли какие-то общие способы найти карту тайлов? Например, просмотрщик VDP может как-то подскажет? Может даже в каком-то эмуляторе в VDP можно ставить бряк?
Я правильно понимаю, что тайлы распаковываются в память, из памяти копируются в видеопамять, а оттуда уже с помощью карты тайлов строится итоговая картинка на Plane A и Plane B, и спрайты?
+карта ещё и может быть запакована?

--- Конец цитаты ---
https://www.youtube.com/watch?v=ADUbNv-6G0M

Добавлено позже:
http://www.emu-land.net/forum/index.php/topic,81112.0.html

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии