Автор Тема: [ALL] Вопросы новичков  (Прочитано 19772 раз)

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

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« : 18 Январь 2021, 23:36:12 »
SMD
Есть ли простой способ вытащить палитру, например из VDP-просмотрщика эмулятора, и загрузить его в какой-то из тайловых редакторов?
И есть какой-то общий способ найти палитру в роме или в дебаггере?
У меня куча редакторов, но у каждого свой формат палитры, похоже. Дамп с Генса не подошёл ни к одному.
« Последнее редактирование: 10 Сентябрь 2021, 15:34:43 от perfect_genius »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4993
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #1 : 19 Январь 2021, 00:17:51 »
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.
« Последнее редактирование: 19 Январь 2021, 00:51:19 от Sharpnull »

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

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #2 : 19 Январь 2021, 00:51:41 »
Есть ли простой способ вытащить палитру, например из VDP-просмотрщика эмулятора, и загрузить его в какой-то из тайловых редакторов?
Gens r57Shell mod может сохранять палитру в формате RGB. Которую можно загрузить в любой графический редактор. Либо можно эту палитру загружать в тайловый редактор YY-CHR, Djinn Tile Mapper. Это и есть самый простой способ.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #3 : 19 Январь 2021, 01:15:41 »
В той же генсиде есть кнопка YY-CHR Pal для того, чтобы выгрузить палитру в формате YY-CHR.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #4 : 19 Январь 2021, 22:46:27 »
Спасибо за ответы. Конкретно, я хочу изменить фон иконки ЧелСмоука в хаке UMK3 на такой:

Дампил с Gens r57Shell mod, и в bin и в pal. Djinn Tile Mapper'у вообще на всё плевать, даже пробовал обрезать до 128 байт, как писал Sharpnull - всегда ошибка.
YY-CHR грузит, но цвета не те. Да и как из каши тайлов собрать целую картинку я не нашёл. Хочется-то отрисовать в графредакторе и просто вставить в тайловый редактор, естественно.
Был EmuHawk, решил посмотреть что у него есть - палитру сохраняет только в PNG. Но вдруг заметил жуткую вещь:
232973-1
Т.е. в UMK3 иконки формируются наложением двух слоёв?! 0_0
Но, как тут видно, добавленные ЧелСмоук и Шива формируются из одного слоя.
Значит, надо создать второй слой со своей палитрой?
(кстати, у иконки ЧелСмоука можно увидеть мои пробы цветов на фоне).

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

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

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #5 : 20 Январь 2021, 12:40:16 »
Djinn Tile Mapper'у вообще на всё плевать
Djinn Tile Mapper надо брать на сайте chief-net'a. Или на на форуме chief-net'a. Djinn Tile Mapper alex edition. Или на форуме chief-net есть моя версия Djinn Tile Mapper. Они поддерживают загрузку палитры.
YY-CHR грузит, но цвета не те.
Ты, видимо, что-то неправильно делаешь. Там есть два режима палитры. Надо выбирать Pal Set(RGB Palette + Table).
Т.е. в UMK3 иконки формируются наложением двух слоёв?!
Да, когда конвертят картинку из 32 цветов, то делят её на два слоя. Так как велика вероятность, что на одном тайле будут присутствовать более 16 цветов.
Ну и раз уж зашла тема про экран персонажей, то в роме есть большой архив со всеми иконками персонажей, и его изменение ни к чему не приводит. Более того, его удаление из рома ни на что не влияет
Видимо, хакер раньше с этого места использовал иконки без сжатия. А потом сжал и переместил в другое место, а здесь не стал удалять или забыл.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #6 : 21 Январь 2021, 00:29:58 »
Ого, Djinn Tile Mapper активно развивается тобой :thumbup:
Всё работает, спасибо.
Нашёл палитру в роме сверив с дампом. Где удобно подобрать нужные цвета? В сети есть палитры с хекс-значениями. Или Djinn Tile Mapper как-то покажет? И как выбрать прозрачный цвет? Выбрал белый - а он оказался действительно белым.

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

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

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #7 : 21 Январь 2021, 01:09:58 »
Где удобно подобрать нужные цвета? В сети есть палитры с хекс-значениями.
Там обычные цвета. Интенсивность красного, синего и зеленого от 0 до 240. Но они хранятся сдвинутыми на 4 бита вправо. Всего 12 бит.
R - 4 бита, B - 4 бита и G - 4 бита. Почитай в документациях.
И как выбрать прозрачный цвет? Выбрал белый - а он оказался действительно белым.
Первый цвет всегда прозрачный будет в игре независимо от того, какого он цвета.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
Re: [ALL] Вопросы новичков
« Ответ #8 : 21 Январь 2021, 01:37:56 »
Доку читал, слишком сложно на ходу вникнуть : )
Обычно изучаю и пробую, просто на этот раз срочно надо.
Т.е. простого способа получить строку в хекс-формате и вставить его в ром - нет? Наверно, можно сохранить в .pal и выковыривать нужно оттуда?

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

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

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #9 : 21 Январь 2021, 01:44:33 »
А в палитре окна тайла почему ходит какая-то белая рамка по каждым четырём цветам? Это как-то связано с количеством бит на цвет?
Там выделено то количество цветов, которое тебе доступно для рисования в тайле. Это набор цветов для тайла. Если выделено только 4, значит ты редактируешь тайл в формате 2 bpp.
Доки никакой нет, к сожалению.
В палитре Джина 64 цвета, первые - это самые левые, да?
Да
Т.е. простого способа получить строку в хекс-формате и вставить его в ром - нет?
Ну, есть всякие конвертеры. Искать надо.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #10 : 30 Январь 2021, 00:22:33 »
SMD
Есть ли какие-то общие способы найти карту тайлов? Например, просмотрщик VDP может как-то подскажет? Может даже в каком-то эмуляторе в VDP можно ставить бряк?
Я правильно понимаю, что тайлы распаковываются в память, из памяти копируются в видеопамять, а оттуда уже с помощью карты тайлов строится итоговая картинка на Plane A и Plane B, и спрайты?
+карта ещё и может быть запакована?

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #11 : 30 Январь 2021, 00:40:55 »
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
« Последнее редактирование: 30 Январь 2021, 00:47:11 от DrMefistO »

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #12 : 30 Январь 2021, 10:52:25 »
Ну, DrMefistO, как обычно уж, посылает к своим видео :)
По первой ссылке видео посмотрел - про таблицу тайлов ничего, только поиск пожатой графики (как и называется видео).
Другие видео вообще про реверс, не увидел ничего про графику.
Может, я по незнанию объяснился не так, термины попутал?
У меня уже есть разжатая графика в видеопамяти, мне надо подловить момент, когда игра копирует с видеопамяти на экран. Т.е. из этой каши тайлов собирает конечную картинку.

По первому видео поставил бряк на копирование (Read) из видеопамяти - не срабатывает.
Ещё не понял пока - искать по смещению или же по ID тайла.
Главную доку по приставке почитал - нужное не нашёл, слишком сложно для новичка. Вроде как есть копирование с видеопамяти. Тайл может иметь разные размеры, отзеркаливание, номер... :neznayu: Нужное где-то здесь ведь?

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

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #13 : 30 Январь 2021, 11:50:36 »
По первому видео поставил бряк на копирование (Read) из видеопамяти - не срабатывает.
Ты или путаешь или что?
Из видеопамяти ничего никуда не копируется - это конечная точка. Если у тебя в видеопамяти уже есть карта, то ставь бряк на запись в это место. Таким образом узнаешь откуда в видеопамять пересылаются данные.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #14 : 30 Январь 2021, 13:17:16 »
Марат, как из тайловой каши справа собирается полная картинка слева?
233467-0

Причём, часть идёт на Plain A, и часть на Plain B:
233469-1

Должна же быть карта тайлов (или как это называется?), по которой и собирается, так? Так вот как эту карту найти в роме? VDP как-то может помочь в этом?

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

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #15 : 30 Январь 2021, 14:54:18 »
Ну, вот у тебя есть Plane explorer. На котором можно увидеть адреса этих самых планов. Карта тайлов запиывается либо в  область плана А, либо плана Б.
Это адреса $E000 и $C000. По этим адресам и находится твоя карта тайлов. Надо ставить бряк на запись в эту область. В ида это адрес 0xD0C000,
0xD0E000. Алгоритм такой. Идешь на экран выбора пероснажей, открываешь Plane Explorer. Смотришь адрес 1 тайла у рептилии. Прибавляешь к этому адресу 0xD00000. И ставишь бряк в иде на запись по этому адресу. Когда бряк сработает, там уже анализируешь код.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #16 : 30 Январь 2021, 15:18:35 »
В моих видео есть как раз про установку бряков на запись в конкретное место экрана: как тайлов, так и маппинга.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #17 : 30 Январь 2021, 17:33:20 »
Спасибо большое, очередной раз выручили :thumbup: До видео DrMefistO не знал, что в Иде можно ставить бряки в видеопамять (вообще не думал, что она там есть), искал такое в эмуляторе. А Марат открыл глаза на то, что план А и план Б тоже находятся в видеопамяти вместе с тайлами, а я думал, что это что-то отдельное типа буфера кадра и в них нужно копировать с видеопамяти :blush:

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #18 : 01 Февраль 2021, 22:29:26 »
Nik Pi, попробуй спроси в Извлечение мультимедиа.

Оффлайн Nik Pi

  • Пользователь
  • Сообщений: 146
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #19 : 02 Февраль 2021, 12:33:30 »
Nik Pi, попробуй спроси в Извлечение мультимедиа.
Ок

Оффлайн Svyat

  • Пользователь
  • Сообщений: 20
  • Пол: Мужской
  • Мегадрайв-кун
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #20 : 18 Февраль 2021, 22:01:21 »
SMD

Есть ли какие-нибудь общие признаки, по которым можно определить, имеется ли в игре звуковой драйвер SEGA Sound Source(pre-SMPS по классификации ValleyBell)? Недавняя Mad Stalker: Full Metal Forth изначально была портирована аутсорсинговой компанией Opera House, в продуктах которой, насколько я понимаю, использовался именно такой тип драйвера. Я собираюсь портировать музыку оттуда в формат SMPS Z80 DAC (S3K/S3DB mod.), поэтому меня этот момент очень интересует, так как формат записи нот в обоих драйверах почти одинаков, а значит, это упрощает портирование. На руках крайняя сборка SMPS Research Pack с pre-SMPS Rent-a-Hero (та же версия движка использована в прототипах Street Fighter 2' CE всё от той же Opera House). С какой конкретной рутины лучше начинать поиск? Заранее спасибо.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #21 : 20 Февраль 2021, 19:45:11 »
Ну, я бы начал со вытаскивания драйвера и побайтового сравнения. Список игр с тем же драйвером можно найти здесь: http://gdri.smspower.org/wiki/index.php/Mega_Drive/Genesis_Sound_Engine_List

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #22 : 09 Июнь 2021, 14:48:39 »
Есть ли программы автоматического поиска структур в файле? Внутри рома UMK3 легко просматриваются всякие массивы:
Это особенность ромов старых игр или структуры часто так легко находятся в несжатых файлах?
Знаю про Kaitai Struct, но у него ведь нет автопоиска?

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2347
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #23 : 10 Июнь 2021, 08:34:33 »
С большой натяжкой можно использовать это: http://chief-net.ru/index.php?option=com_content&task=view&id=466&Itemid=55

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #24 : 10 Июнь 2021, 19:54:11 »
Действительно близко. Забавно, какие жёсткие требования к вводу информации, будто поленился или не хотел делать защиты от ошибки.
Не возникало мысли сделать поиск одинаковых отрезков байтов по всему файлу?

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2347
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #25 : 12 Июнь 2021, 02:52:11 »
Я эту поделку делал для перевода одной из игр (легко составить список поинтеров с её помощью из-за особенностей их хранения в роме). А разделение файла на куски попросили добавить. При этом я не программист (поэтому всё работает жутко медленно, нелогично и т.д.). И поэтому защит от ошибок почти не делал, так как знал что и для чего мне нужно. Таким образом я наклонировал примерно 5-6 подобных программ в своё время, каждая со своими функциями, нужными только для одной-двух игр... :neznayu:

Оффлайн firefly23412

  • Пользователь
  • Сообщений: 22
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #26 : 15 Июль 2021, 19:41:54 »
Вот у меня какая загвоздка. Пойнтеры, игра Suikoden 2 и программа Kruptar (6ая версия). Я делал всё по этому гайду - https://magicteam.net/index.php?page=documents&show=Kruptar%20для%20чайников Круптар для чайников от мэджик тим.

Текст у меня программа отображает. Значит разницу смещения я правильно высчитал, так? Или нет?

Но при пересчёте пойнтеров программа выдаёт ошибку (я ничего не менял в тексте). Стало быть я неправильно указал начало-конец блока пойнтеров? (скорее всего) Но в том самом гайде не уточняется ничего про блоки пойнтеров или их местонахождение - и как мне быть? Каким образом их искать? Где они могут быть в файле этой игры?

Можно ли как-нибудь найти пойнтер по offset'у предложения(ий), может быть? Я не знаю...

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #27 : 17 Июль 2021, 12:33:43 »
Не пользовался программой, поэтому зачем пересчитывать пойнтеры/указатели? Не вмещается текст, который не менялся, скорее всего из-за неправильно указанного размера указателей, первого байта/двух байтов (где указана длина строки) или спецсимволов, что видны в тексте на скриншотах. Попробуй для эксперимента поставить у всего что можешь длину в 1 байт. Ну, кроме указателей на начало строк, наверно.
Потом методом половинного деления найдёшь в каком из них была ошибка :)

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2347
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #28 : 17 Июль 2021, 12:58:02 »
По скринам вообще не видно, что подключено место, куда будет вставляться перевод.



Лучше юзать версию круптара 7.1.1.8

Оффлайн firefly23412

  • Пользователь
  • Сообщений: 22
    • Просмотр профиля
[ALL] Вопросы новичков
« Ответ #29 : 20 Июль 2021, 00:56:32 »
perfect_genius, Guyver(X.B.M.), Ура! Я вычислил указатели. По формуле оффсет предложения полученный через дебаггер - оффсет того же предложения из рома. Универсальная цифра 10DC50. Прибавляется к оффсету предложения из рома и последние два байта перевернуть. Хекс-адрес указателей таким образом получается.
Как оказалось в Suikoden 2 четырёх-байтные указатели(длина) и идут они сразу после текста. Я читал итальянский мануал ромхакера Паблито, он пишет, что в первой игре тоже четырёх байтные указатели. (как и в фэнтези стар 4 на мегадрайв, упомянута им также)

Но вопрос. Подскажите пожалуйста. Если указатели идут СРАЗУ после текста и их длина 4 байта, какие параметры надо ставить в Круптаре? Конкретно. Разница смещений - автостарт? Так получается или нет?