Разработка и ромхакинг > Ромхакинг
Извлечение мультимедиа (звук, видео, музыка) данных из игр CD/DVD приставок
Sharpnull:
Bigmanjapan, и правда, я видел этот скрипт, но почему-то не подумал, что он распакует текстуры. Но:
* Из PIC.MGF не хватает текстур.
* Он разделил архив без изменения содержания (хотя может это стандартный формат .tex для PS2).
* Запаковывать не умеет.
Плюс конечно, что имена были даны.
denben0487, я обновил свой скрипт, теперь умеет работать с индексированными текстурами в PIC.MGF, но в BG.MGF проблемы. Алгоритм перемешивания (swizzle) оказался стандартный для 8 бит, так что я сделал велосипед.
Так как цвета палитры там RGBA (с прозрачностью), а Photoshop, PIL и многие другие не умеют работать с PNG с индексированным прозрачным цветом (а только с одним прозрачный цветом), пришлось сохранять PNG как полноценный RGBA, а при запаковке я всем цветам раздаю индексы. Если в изображении больше 256 цветом, будет прерывание текущей картинки с сообщением (нужно было сделать выход из программы). Нужно быть осторожным: для прозрачных картинок в Photoshop не поймёшь сколько было использовано цветов, наложил слой на слой и уже доп. цвета.
Пробовал заменять: 55310336.png - логотип Konami, 63481856.png - текст в главном меню (кажется его вы хотели изменить на русский).
Запаковка медленная, так что не забывайте убирать лишние картинки из папки (PIC.MGF_extracted), кроме того одни и те же индексированные изображения будут представлены по-другому из-за другого алгоритма построения.
denben0487:
Sharpnull, ещё раз спасибо за помощь, жму руку...
Ogr:
--- Цитата: Sharpnull от 14 Май 2019, 10:17:51 ---а только с одним прозрачный цветом
--- Конец цитаты ---
потому что не предусмотрено форматами.
--- Цитата: Sharpnull от 14 Май 2019, 10:17:51 ---а при запаковке я всем цветам раздаю индексы
--- Конец цитаты ---
лично я бы предпочёл бы чтобы мне в отдельном текстовом документе писали какие индексы игра считает прозрачными, чтобы при возникновении проблем, можно было вручную проконтролировать правильность обратной индексации.
Sharpnull:
--- Цитата: Ogr от 14 Май 2019, 12:38:37 ---потому что не предусмотрено форматами.
--- Конец цитаты ---
PNG поддерживает индексированные цвета с разной прозрачностью (alpha), это Photoshop не поддерживает: Alpha transparency in indexed-png images. Откройте http://adamhaskell.net/img/gradient1c.png в нормальном просмотрщике (XnView, Firefox, говорят даже IE6) и сравните с открытием в Photoshop (он сразу преобразует в RGB Color).
--------
Кстати, там посоветовали хорошую программку Color quantizer, с помощью неё без проблем можно PNG-24 преобразовать до 256 цветов с альфа-прозрачностью, чтобы вставить в Silent Hill 2 (для моего скрипта нужно выбрать Force RGB в диалоге сохранения).
Ogr:
--- Цитата: Sharpnull от 15 Май 2019, 15:08:20 ---PNG поддерживает индексированные цвета с разной прозрачностью (alpha), это Photoshop не поддерживает: Alpha transparency in indexed-png images
--- Конец цитаты ---
ЕСЛИ БЫ ЭТО БЫЛО БЫ ПРЕДУСМОТРЕНО ФОРМАТОМ, не пришлось бы городить не стандартный огород:
--- Цитата --- Вот снова то же самое изображение, только на этот раз оно было преобразовано в PNG с индексированной альфа-версией с помощью сценария PHP, который я написал:
--- Конец цитаты ---
;)
Добавлено позже:
полагаю, там картинка с индексированными цветами (2-8 битный растр + палитра к нему) и в дополнения к ней самая обыкновенная 8 битная растровая маска, а не "индексированные цвета с разной прозрачностью".
Sharpnull:
Ogr, это предусмотрено спецификаций PNG: 6.2 Alpha representation, 3.1.4 alpha table, а если программы не умеют работать с форматом, это их проблема.
Огород не связан с форматом: человек попытался сконвертировать через GIMP, который не поддерживает, а после скриптом который смог.
Photoshop не предназначен для работы с индексированными цветами, сделано для галочки. Мало кому нужно и пришлось бы перестраивать интерфейс, поэтому и не реализовано, хотя PNG-8+Alpha открылся правильно, но с преобразованием в RGBA.
--------
--- Цитата: Ogr от 15 Май 2019, 16:30:14 ---полагаю, там картинка с индексированными цветами (2-8 битный растр + палитра к нему) и в дополнения к ней самая обыкновенная 8 битная растровая маска, а не "индексированные цвета с разной прозрачностью".
--- Конец цитаты ---
Объяснял чтобы было понятно, это PNG-8 + Alpha table, то есть как обычное индексированное 8 битное изображение, но у каждого цвета в палитре есть своя прозрачность (0 - 255). В общем читайте спецификацию.
Ogr:
--- Цитата: Sharpnull от 15 Май 2019, 17:07:43 ---Photoshop не предназначен для работы с индексированными цветами, сделано для галочки.
--- Конец цитаты ---
все редакторы предназначенные работать исключительно с индексированными цветами (ибо другого не умеют в принципе) что я смотрел, не умеют в степени прозрачности (даже современные для пиксельарта) как и ФШ, могут только 1 цвет в палитре прозрачным назначать. ;) ...видимо они не для этого предназначены, хоть ничего другого и не могут. :lol:
Dwayde:
Народ, помнится в этой теме (по-моему) у кого-то было htm руководство по выдиранию мультимедиа с довольно-таки внушительным списком игр. Если кто понимает о чем я, можете его кинуть в ответном сообщении?
dedok179:
--- Цитата: Dwayde от 19 Август 2019, 09:44:07 ---Народ, помнится в этой теме (по-моему) у кого-то было htm руководство по выдиранию мультимедиа с довольно-таки внушительным списком игр. Если кто понимает о чем я, можете его кинуть в ответном сообщении?
--- Конец цитаты ---
Надеюсь это то что ты искал.
Dwayde:
dedok179, да да. Он самый. Большое спасибо :)
Golk:
Кто-то знает, как извлечь все семплы из рокстаровского Beaterator?
Veshurik:
Ребята, мне нужно извлечь ресурсы из игры на PS2 - https://downloadgameps3.com/hana-to-otome-ni-shukufuku-o-harukaze-no-okurimono-ps2-free/
Можете помочь? Я вообще без понятия, какие программы есть и как их использовать. Спасибо!
Игра весит 5Гб.
Rockman Z:
Что имено нужно? С музыкой будет проще. С голосами/звуками врядли
Veshurik:
Нужны изображения (арты из игры), а также музыку и видеоролики.
Пробовал через Apache, не воспринимает.
Zetper:
--- Цитата: Veshurik от 02 Ноябрь 2019, 13:16:48 ---Ребята, мне нужно извлечь ресурсы из игры на PS2 - https://downloadgameps3.com/hana-to-otome-ni-shukufuku-o-harukaze-no-okurimono-ps2-free/
Можете помочь? Я вообще без понятия, какие программы есть и как их использовать. Спасибо!
Игра весит 5Гб.
--- Конец цитаты ---
Привет я открывал образ прогой UltraISO внутри есть архив CD.BIN Я для него написал распаковщик на Python. Скачиваешь его по ссылке https://www.python.org/ftp/python/3.4.3/python-3.4.3.msi и устанавливаешь его, потом делаешь папку кидаешь туда мой скрипт и файлы SLPM_552.63 и CD.BIN запускаешь срипт, дожидаешься пока появится надпись Закрыть. Рядом появится папка Unpack в ней будут файлы звук(.ahx .ADX), видео(.sfd), не сжатая картинка(.T2), сжатые картинки(.1tex), сжатый файл(.1BIN), остальные файлы не разобранные это(bin).
Скрипт https://yadi.sk/d/k3k5UtqEhBh7Eg
Звуки можно слушать ExtractData_v1.20_English понимает .ahx а PSound 2.0 понимает .ADX (надо правильно выставить частоту звука в настройках программы чтобы правильно игрался звук). Видео можно смотреть VLC media player но будет без звука.
Программы https://dropmefiles.com/wipZY
Если интересно то дополнительная информация.
В файле SLPM_552.63 есть таблица файлов на байте 2405840 размером в 245360 байта,
С начало идёт начало файла оффсет 4 байта номер сектора(*2048) потом 4 байта размер файла, и так для каждого файла, получается 30670 файла. Имён у файлов нет пришлось идентифицировать форматы файлов по заголовкам внутри файлов.
Файлы картинки и файл .1BIN сжаты, потом попытаюсь разобраться со сжатием.
Sharpnull:
Zetper, только хотел написать... Но вы продолжайте, я больше ничего не знаю.
Veshurik, размер игры 1.5 ГБ, на самом деле. Много пустоты.
Извлекаете cd.bin и SLPM_552.63 с помощью 7zip или других программ для работы с ISO. В cd.bin ресурсы, SLPM_552.63 - исполняемый файл. По размеру mpeg2 видео, которое в начале, нашёл в SLPM_552.63 информацию по смещениям и размеру в cd.bin, начиная с 24B5D0 идёт 4 байта - смещение / 2048 байт, потом 4 байта - размер в байтах:
--- Код: ---00 00 00 00 00 B8 DC 05 - первый ролик
97 BB 00 00 00 58 02 05 - второй
E2 5B 01 00 00 30 36 05 - третий
--- Конец кода ---
и так далее, 30670 файлов.
Написал скрипт на Python 3, который всё разделяет на файлы. Скачиваете ПКМ по Raw -> Сохранить объект. Кладёте рядом с теми двумя файлами и запускаете. В папку EXTRACTED всё распакуется. Первые 3 файла переименуйте в .mpg, чтобы запускать через плеер. Но звук может обрываться при промотке, потому что аудио там adpcm_adx. Музыка самая последняя начиная с file0000779846.bin. Чтобы убедиться запускаете ffmpeg:
--- Код: ---ffmpeg -i file0000779846.bin
--- Конец кода ---
Вывод
--- Код: ---Input #0, adx, from 'file0000779846.bin':
Duration: 00:02:05.89, start: 0.000000, bitrate: 432 kb/s
Stream #0:0: Audio: adpcm_adx, 48000 Hz, stereo, s16p, 432 kb/s
--- Конец кода ---
Можете сконвертировать с помощью ffmpeg:
--- Код: ---ffmpeg -i file0000779846.bin output.wav
--- Конец кода ---
Возможно лучше специальной программой https://github.com/losnoco/vgmstream или через GUI - https://sourceforge.net/projects/vgmtoolbox/, или какой-то ещё для работы с adpcm_adx.
Текстуры и звуки должны быть тоже в этих файлах, но это надо изучать. Начальные буквы могут помочь, видел 1tex.
megavolt85:
добавлю пять копеек
sfd видео прекрасно проигрывается через ffplay и так же замечательно конвертируется через ffmpeg
Veshurik:
Ребята, спасибо вам.
У Sharpnall скрипт не работает, и после запуска окошко сразу закрывается. У другого человека, что написал скрипт, всё успешно извлеклось, спасибо!
Попробую переконвертировать видео.
Я в программировании ноль полный, поэтому сам бы точно не разобрался.
Осталось только изображения вытащить, да. Можно было бы ещё игровой текст, но там с этим сложнее, наверное.
Sharpnull:
--- Цитата: Veshurik от 03 Ноябрь 2019, 14:51:25 ---У Sharpnall скрипт не работает, и после запуска окошко сразу закрывается.
--- Конец цитаты ---
Если вы скачали доисторический по ссылке Zetper (https://www.python.org/ftp/python/3.4.3/python-3.4.3.msi), то мой работать не будет, потому что использую интерполяцию строк (https://www.python.org/dev/peps/pep-0498/). Качайте последний, на данный момент https://www.python.org/downloads/release/python-380/, для x64 - https://www.python.org/ftp/python/3.8.0/python-3.8.0-amd64.exe, x86 - https://www.python.org/ftp/python/3.8.0/python-3.8.0.exe.
Чтобы точно узнать проблему, нужно запускать через консоль: Shift + ПКМ в проводнике -> Открыть консоль команд, там набрать имя скрипта и после Enter.
P.S. Но смысла нет в моём скрипте, так как от Zetper делает тоже самое + расставляет расширения файлов.
--------
Ещё про различия скриптов.
Я грузил весь файл в ОЗУ по привычке, так что должно быть свободно 2ГБ ОЗУ.
У Zetper это сработает только под Windows из-за обратных слэшей:
--- Код: ---path = os.path.realpath(os.path.dirname(sys.argv[0]))
f = open(path+"\\"+"SLPM_552.63","rb")
--- Конец кода ---
В Python давно можно указывать / в open под Windows (open(path+"/SLPM_552.63","rb")), но сейчас рекомендуемый способ через pathlib, там всегда можно указывать / и можно написать так:
--- Код: ---from pathlib import Path
path = Path(__file__).resolve().parent
f = open(path / "SLPM_552.63","rb")
# Или
f = open(Path(path, "SLPM_552.63"),"rb")
--- Конец кода ---
Veshurik:
ffmpeg почему-то сжимает качество видео при обработке.
То есть, сначала видео весило 82Мб, а при обработке стало 13Мб, и качество заметно ухудшилось при просмотре.
Что с этим можно сделать?
========
Заметил, что в извлечённых файлах при помощи скрипта от Zetper файлов музыки там нет... То есть, там нет вообще file000...
Просто до 1731166208.ADX
Навигация
Перейти к полной версии