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

Извлечение мультимедиа (звук, видео, музыка) данных из игр CD/DVD приставок

<< < (94/101) > >>

Ogr:

--- Цитата: kytattoo от 16 Октябрь 2020, 14:13:42 ---в этом же видео показывают много артов, которые есть в менюшках и наравне с ними - пару (а может даже один), которого нет. Вероятность стремится к 100 процентам.
--- Конец цитаты ---
ну и что, есть они в ресурсах?

Sharpnull:

--- Цитата: mad_le_zisell от 18 Октябрь 2020, 17:21:10 ---Да, тоже не фонтан, но всяко лучше чем оригинальные картинки.
--- Конец цитаты ---
Нет. Оригинал лучше, намного. Здесь можно только немного артефакты убрать; увеличивать на x2 и выше безумие, если только немного. Лучше вообще перерисовать или найти в других источниках: гайды, журналы, пресса и т. п.

--- Цитата: Ogr от 19 Октябрь 2020, 07:41:05 ---ну и что, есть они в ресурсах?

--- Конец цитаты ---
Мужик из тюрьмы из видео есть, в моём архиве это MISCRES.STR_06.png.

Ogr:

--- Цитата: Sharpnull от 19 Октябрь 2020, 14:30:39 ---Нет. Оригинал лучше, намного. Здесь можно только немного артефакты убрать; увеличивать на x2 и выше безумие, если только немного.
--- Конец цитаты ---
:facepalm:

оригинала:


увеличеный в 2х:


frezer:
Ребят кто может открыть отредактировать и обратно сконвертировать этот файл:

Rockman Z:
Какими утилитами можно выдергивать изображения/текстуры с образов игр PlayStation 2, помимо интеграции TexMod через эмулятор?

metalslayer:
Всем привет! Как извлечь звуки из X-Men - Mutant Academy 2  (PS1)

Sharpnull:

--- Цитата: metalslayer от 18 Январь 2021, 19:43:27 ---Как извлечь звуки из X-Men - Mutant Academy 2  (PS1)
--- Конец цитаты ---
Использовал USA версию.
Голоса в DATA/SOUND, в стандартном формате .XA.
Звуки в DATA/WAD.WAD хранятся как стандартный Sony PSX ADPCM он же VAG. Формат там, вероятно, как в Mortal Kombat Shaolin Monks и распаковывается с помощью QuickBMS (скрипт: Mksm Ewdf . Mortal Kombat Shaolin Monks EWDF (script 0.1.6) . ewdf . deflate . EWDF . wad и т. д.). Только куча файлов нам мало что даёт.
Ленивые могли бы использовать PSound (есть в наборе Psx Hack Tools, нужно выбрать совместимость с XP), который автоматически сканирует, но, за исключением 24 файлов, он будет использовать стандартную частоту дискретизации (ЧД), а подбирать на слух для 635 файлов утомительно.
24 файла имеют магическое число VAGp, поэтому их легко найти, остальные имеют такой же заголовок, но с нулями, кроме ЧД и размера, поэтому пришлось искать по байтам ЧД + нули. Я предполагаю, что это стандартный VAG, там размер заголовка 0x30 и остальная часть равна размеру в заголовке (смещение 0x10: 4 байта Big-Endian). Я добавлял VAGp в начало для распознания. Проблема в том, что там используются не только стандартные ЧД, поэтому искал конец файлов VAG, так как часто они идут подряд, чтобы узнать используемые ЧД (конец файла + смещение ЧД в заголовке следующего). Я мог пропустить мало используемые ЧД, тогда придётся разбирать формат .WAD полностью. Кстати, Sony PSX ADPCM имеет похожую структуру (UPD: в смысле узнаваемую структуру, если смотреть в HEX-редакторе), в данных каждые 16 байт равны нулю, а в конце обычно много семёрок, здесь для многих это 07 00 77 77 77 77 77 77 77 77 77 77 77 77 77 77, но могут быть 07 07 07 ... .

Короче
Я написал скрипт, который извлекает .vag файлы и конвертирует. PSound нашёл 659, у меня 668, вроде все воспроизводятся и ложных файлов не было.
1. Установить Python 3, последнюю версию для Windows 8+, а 3.8.7 для Windows 7.
2. Для конвертирования можно использовать ffmpeg, но лучше думаю vgmstream. Поэтому скачать test.zip. Рядом с файлом WAD.WAD создать папку vgmstream, в которую положить файлы из test.zip.
3. Скачать мой скрипт extract_vag.py и положить его рядом с WAD.WAD. Запустить.
Если всё правильно, в WAD_unpack будет 1 336 файлов, .vag.wav - WAV и .vag. Если не найден vgmstream, то 668 файлов .vag. В корне WAD_unpack 24 файла, которые были с заголовком VAGp, остальные в папках разложены по частотам: 11025, 22050 и т. п.

metalslayer:
Жесть. Спасибо.

dedok179:
Спасибо за интересные мысли. Это помогло мне некоторые вещи понять которые не мог понять раньше, когда читал только сухую документацию.

Sharpnull:
dedok179, хотя я ничего нового не сказал. Немного отредактировал своё сообщение, чтобы было чуть понятнее. Интересно как PSound распознаёт Sony PSX ADPCM, и почему он не нашёл все, для этого придётся формат разбирать.
--- Цитата: metalslayer от 20 Январь 2021, 17:21:39 ---Жесть.
--- Конец цитаты ---
Это довольно просто, повезло, что были "пустые заголовки", у некоторых игр нет стандартных заголовков, а отдельная таблица со смещениями, размерами и частотами дискретизации (например, [PS2] RE4 файл title.snd).

dedok179:

--- Цитата: Sharpnull от 20 Январь 2021, 20:55:21 ---Немного отредактировал своё сообщение, чтобы было чуть понятнее. Интересно как PSound распознаёт Sony PSX ADPCM, и почему он не нашёл все, для этого придётся формат разбирать.
--- Конец цитаты ---
С Vigilante 8 тоже есть местами такая фигня. В архиве объявлено 8 звуков, а программа только 5 читает.

dedok179:

--- Цитата: Sharpnull от 20 Январь 2021, 20:55:21 ---у некоторых игр нет стандартных заголовков, а отдельная таблица со смещениями, размерами и частотами дискретизации (например, [PS2] RE4 файл title.snd).
--- Конец цитаты ---
В таком случае мы сами формируем vag заголовок из полученных данных? К примеру есть архив, в начале указано к-во звуков и его размер, дальше идут друг за другом инфо о звуках - 4 байта (частота семплирования и тд), после них идут друг за другом через сигнальную последовательность байт данные звука (пусть будет последовательность 10 байт нулей).

Sharpnull:

--- Цитата: dedok179 от 21 Январь 2021, 14:07:42 ---В таком случае мы сами формируем vag заголовок из полученных данных?
--- Конец цитаты ---
Заголовок и расширение .vag нужны только для распознания программой vgmstream или ffmpeg, у вас может быть свой конвертер, который принимает сырые данные с передачей частоты дискретизации и размером, который и так равен размеру файлу без заголовка для стандартного моно, например через аргументы командной строки. По исходному коду vgmstream можно понять, что бывают нестандартные типы или расширения для PS2, но кажется для PSX, за исключением The Simpsons Wrestling и версии 0x20, используется только стандартный моно заголовок (4 байта - VAGp, 4b BE - версия [для PSX нули], 4b - нули, 4b BE - размер без заголовка, 4b BE - частота дискретизации, 12b - нули [в X-Men какие-то доп. данные или мусор], 16b - имя трека; это всё видно в коде vgmstream).
--- Цитата: dedok179 от 21 Январь 2021, 14:07:42 ---через сигнальную последовательность байт данные звука (пусть будет последовательность 10 байт нулей)
--- Конец цитаты ---
Я не сказал, что у Sony PSX ADPCM в данных в начале 16 нулей похоже всегда.
Ещё VGMToolbox умеет извлекать: Misc. Tools > Extraction Tools > Streams > Sony ADPCM Extractor, но он работает медленнее, много ложных срабатываний (1107 файлов для WAD.WAD) и может обрезать начальные 16 нулей.

dedok179:

--- Цитата: Sharpnull от 21 Январь 2021, 15:28:57 ---у вас может быть свой конвертер
--- Конец цитаты ---
Мне проще будет заголовок присобачить, чем пересобирать чужой конвертер или свой писать. Не разбираюсь увы в конвертировании звука как таковой.

Nik Pi:
PSX                                                                                                                                                                                                                               
MK trilogy                                                                                                                                                                                                                       
Как можно добавить новые треки (для арен из МК1), и изменить старые (хочу поменять музыку из опций и титров)?

Sharpnull:
Mortal Kombat Trilogy [PSX]

--- Цитата: Nik Pi от 02 Февраль 2021, 12:36:10 ---Как можно добавить новые треки (для арен из МК1)
--- Конец цитаты ---
Явно придётся разбирать и писать код, этот вопрос к опытным ромхакерах.

--- Цитата: Nik Pi от 02 Февраль 2021, 12:36:10 ---изменить старые (хочу поменять музыку из опций и титров)
--- Конец цитаты ---
1. Если длина треков останется такой же, то всё просто. Музыка хранится как CD-DA (обычный Audio CD), которая имеет характеристики 44100 Hz, 16-bit, Little-Endian, Stereo.
1a. При редактировании "CUE + несколько BIN" как redump образ, то аудио - все треки, кроме 1-го (с 02 до 30). Можно открыть в Audacity: Файл > Импорт > Raw-данные > Signed 16-bit PCM, Little-endian, 2 канала (стерео). В начале всегда 2 секунды тишины. После редактирования, которое не изменит длину трека (смотреть на количество сэмплов), выделить наш трек, Файл > Экспорт > Экспорт выделенного аудио..., сохранить как там указано (RAW, Signed 16-bit PCM). ffmpeg тоже может сконвертировать в CD-DA как-то так:

--- Код: ---ffmpeg -i Awaken.mp3 -f s16le -ar 44100 -ac 2 -c:a pcm_s16le Track22.raw
--- Конец кода ---
Но всё равно придётся добавлять тишину и обрезать.
1b. При редактировании "CUE + один BIN" (после сохранения в CDmage, например) нужно будет вставлять через HEX-редактор. Извлечь и прослушать трек можно с помощью CDmage, изменяем как делали выше, потом поиск по данных из оригинального трека в HEX-редакторе и вставка поверх нового трека. Найти начало и конец трека можно по-другому, в CUE у нужного трека смотрим:

--- Код: ---  TRACK 22 AUDIO
    INDEX 00 43:33:08
    INDEX 01 43:35:08
--- Конец кода ---
0-й индекс начало с тишиной, 1-й начало музыки, поэтому можно вставлять сразу с позиции музыки. Здесь указаны минута:секунда:сектор(frame), в одной секунде 75 секторов, а один сектор 2352 байта, поэтому ((43 * 60 + 33) * 75 + 8) * 2352 = 460952016 байт (0x1b7991d0) начало 22-го трека, а концом будет 0-й индекс следующего трека минус 1.
Есть программы для работы с Audio CD, но я их не смотрел.

2. Если длина треков другая, то уже не получится просто заменить трек, т. к. игра где-то хранит смещения. Проблему можно увидеть, если заменить трек Track 22 на Track 23, что проще сделать с "CUE + несколько BIN", тогда на главном экране будет неправильная музыка, которая идёт позже, из-за уменьшения Track 22.
Я не смог найти смещения через HEX-редактор в Track 01, т. е. по всем данным игры. Я предположил только 3 способа хранения смещения: в байтах, в секторах по 2352 байта, в минута:секунда:сектор. Все способы между собой легко преобразуются. Последний способ используется в PlayStation SDK, страница 670 в PlayStation 1 SDK 4.4\Devrefs\Libref.pdf:

--- Код: ---typedef struct {
  u_char minute; Minute
  u_char second; Second
  u_char sector; Sector
  u_char track; Track number (не используется)
} CdlLOC;
--- Конец кода ---
Эта структура передаётся в CdControl() на странице 673 для команды CdlPlay, которая воспроизводит CD-DA.
Для поиска я использовал точные смещения, хотя они могут быть заданы с отступом. Также меня путает 2 секунды тишины и поле Start Sector в CDmage, которое смещено на ещё 2 секунды (150 секторов). Я пробовал смещать секунды вперёд и назад на 2, всё равно не получилось найти общую таблицу. Это тоже оставим на опытных ромхакеров.

igoryek:
Добрый день.
помогите, пожалуйста, извлечь музыку из игры [XBOX Original] 007: Nightfire.
такие "внутренности":
007 - Nightfire

* driving\ - уровни с вождением; отсутствуют в PC версии
* bond.dat
debug.xfn
mis01.mus - файлы .MUS удалось открыть с помощью ADPCM Player v1.44h. внутри лежат несколько треков (звучащие в уровне я так понимаю), которые можно извлечь в формате .SNG и прослушать в foobar'е. если есть более лучший вариант, то подскажите.
mis01.viv - файлы .VIV удалось открыть VIV Editor для NFS Porsche. там текстуры, анимации  т.д. звуков вроде нет.
mis01en.spe - не удалось найти чем открыть. подозреваю очередной архив с какими-то файлами. HEX показывает .asf файлы. может диалоги?
mis3.mus
mis3.viv
mis3en.spe
mis4.mus
mis4.viv
mis4en.spe
mis11.mus
mis11.viv
mis11en.spe
mis13a.mus
mis13a.viv
mis13aen.spe
mis13b.mus
mis13b.viv
mis13ben.spe
mis13c.mus
mis13c.viv
mis13cen.spe
misc.viv
race.viv
* eurocom\ - здесь похоже и находятся основные файлы игры

* 30_fps - видеоролики в формате .XMV проигрываются в MPC. если подскажите как извлечь из них аудио дорожки - будет неплохо.
* config.txt
filesys.d00 - не удалось найти способа чем извлечь файлы  :(
filesys.d01
filesys.d02
filesys.d03
filesys.d04
filesys.d05
filesys.d06
filesys.d07
filesys.d08
filesys.d09
filesys.d10default.xbe
Driving.xbe

Sharpnull:

--- Цитата: igoryek от 17 Февраль 2021, 01:07:22 ---mis01.mus - файлы .MUS удалось открыть с помощью ADPCM Player v1.44h. внутри лежат несколько треков (звучащие в уровне я так понимаю), которые можно извлечь в формате .SNG и прослушать в foobar'е. если есть более лучший вариант, то подскажите.
mis01.viv - файлы .VIV удалось открыть VIV Editor для NFS Porsche. там текстуры, анимации  т.д. звуков вроде нет.
mis01en.spe - не удалось найти чем открыть. подозреваю очередной архив с какими-то файлами. HEX показывает .asf файлы. может диалоги?
--- Конец цитаты ---
Все эти файлы в одном типе контейнера - BIGF/VIV, это видно и по "BIG" байтам в начале файла. Я использую quickbms для распаковки, подходит как Electronic Arts BIG4/BIGF archives (*.big), так и Need for speed Underground 2 (VIV), но там кода меньше, наверно меньше поддерживает. В любом случае оба скрипта распаковывают в файлы с названием, у MUS и SPE - это ASF, в первом случае музыка, во втором голос. В ASF аудио adpcm_ea_r1, как показывает ffmpeg -i file.asf, т. е. один из Electronics Arts ADPCM.
Сконвертировать аудио и видео, а также достать аудио из видео, можете с помощью ffmpeg. Ещё аудио можете сконвертировать через foobar2000 или через vgmstream, который специально сделали для декодирования игровых аудио.

Часть информации подходит от "James Bond 007: From Russia With Love" из ripkit.chm (нужно разблокировать файл для отображения), который в этой теме часто указывали, но достаточно только распаковки файлов и ffmpeg.
--------
Кстати, в MPC нужно отключать Normalize для настроек аудио при воспроизведении XMV и после конвертирования тоже, иначе звук скачет. Пробовал: просто в MPC; ffmpeg -i 1.xmv -c copy 1.mkv (в mkv контейнере для удобства); ffmpeg -i 1.xmv 1.mp4. Может у меня что-то со звуком.

igoryek:

--- Цитата: Sharpnull от 17 Февраль 2021, 02:29:45 ---Все эти файлы в одном типе контейнера - BIGF/VIV, это видно и по "BIG" байтам в начале файла. Я использую quickbms для распаковки, подходит как Electronic Arts BIG4/BIGF archives (*.big), так и Need for speed Underground 2 (VIV), но там кода меньше, наверно меньше поддерживает. В любом случае оба скрипта распаковывают в файлы с названием, у MUS и SPE - это ASF, в первом случае музыка, во втором голос. В ASF аудио adpcm_ea_r1, как показывает ffmpeg -i file.asf, т. е. один из Electronics Arts ADPCM.
Сконвертировать аудио и видео, а также достать аудио из видео, можете с помощью ffmpeg. Ещё аудио можете сконвертировать через foobar2000 или через vgmstream, который специально сделали для декодирования игровых аудио.

Часть информации подходит от "James Bond 007: From Russia With Love" из ripkit.chm (нужно разблокировать файл для отображения), который в этой теме часто указывали, но достаточно только распаковки файлов и ffmpeg.
--------
Кстати, в MPC нужно отключать Normalize для настроек аудио при воспроизведении XMV и после конвертирования тоже, иначе звук скачет. Пробовал: просто в MPC; ffmpeg -i 1.xmv -c copy 1.mkv (в mkv контейнере для удобства); ffmpeg -i 1.xmv 1.mp4. Может у меня что-то со звуком.

--- Конец цитаты ---
спасибо за ответ. я попробую. но эти все действия для папки 'driving', а это пара уровней с вождением машины. я так понимаю основные файлы игры лежат в 'eurocom' и запакованы в d00, d01 и т.д. попробовал этот https://fileext.info/extension/d00 VirtualDrive - видит файл d00, но при монтировании пишет 'Invalid file'.

Sharpnull:

--- Цитата: igoryek от 17 Февраль 2021, 14:31:41 ---попробовал этот https://fileext.info/extension/d00 VirtualDrive - видит файл d00, но при монтировании пишет 'Invalid file'.

--- Конец цитаты ---
Эти дурацкие сайты редко пишут что-то полезное, точно не для игровых форматов. По названию filesys.d00 понятно, что там файловая система, а ещё очевидно, что там сжатые данные. Возможно для сжатия используется "стандартное" сжатие для Xbox, в QuickBMS оно встроено, скрипты с использованием можно найти по метке xmemdecompress, но вызывать распаковку нужно из скрипта, а структура не ясна (у первого .d00 сжатые файлы начинаются там, где появляются на вид случайные байты). Я не разбираюсь в чудном синтаксисе QuickBMS, если поймёте как распаковывать сырой файл и будете файл уменьшать на 1 байт для проверки, то возможно получится распаковать или узнать, что сжатие не это :)

Навигация

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

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

[*] Предыдущая страница

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