Перейти к содержимому
Zone of Games Forum
7ytbfdr56nu

Распаковка и запаковка ресурсов игр для 3DO

Рекомендованные сообщения

3DO это ретро приставка из 1993 года, идея создания которой принадлежит основателю EA Games.
3DO как и Sega Saturn  не выдержали конкуренцию с Playstation, во многом из-за высокой цены.
Игры для 3DO выпускали на CD

Решил поделится своим недавним опытом по русификации(озвучки) игр для 3DO на примере игры Shockwave 2: Beyond the Gate 
Озвучка не простая, а закадровая, сгенерированная переводчиком видео от яндекса.

Дальнейшее описание структуры диска и форматов файлов справедливо для Shockwave 2: Beyond the Gate
Другие игры 3DO могут иметь другую структуру и использовать другие типы файлов с другими форматами сжатия и т.д.

Весь звук игры находится в stream файлах в папке ShockWave2\FrontEnd\Streams
и в файлах миссий без разширения в папке ShockWave2\ (их я буду называть m-файлы)

На первом диске находятся данные для 1,2,3,4,7,8 уровней:
m1a, m1b, m1c это файлы миссий первого уровня
m2a, m2b это файлы миссий второго уровня
и т.д.
На втором диске для 1,5,6,7,8 уровней

Эти файлы что-то вроде архива, внутри которого находятся файлы для уровня
ANIM CEL stream и какие-то еще

Форматы файлов:
Файлы stream внутри содержат SNDS и FILM - звук и видео, соответственно
ANIM - это группа CEL кадров и возможно что-то еще
CEL - это текстура(картинка)

Для озвучки нас интересуют SNDS файлы
внутри stream находится один аудио файл
внутри m-файлов находится несколько stream файлов, внутри которых по одному аудио-файлу
для нас удобней будет не распаковывать m-файлы

Инструменты, которые я использовал:
bin2iso для конвертации образа из bin/cue в ISO 2048
unCD-ROM для распаковки файлов из ISO образа
quickBMS универсальный инструмент для распаковки и запаковки игровых файлов
ffmpeg мультимедиа-фрейморк для разных конвертаций(aifc в wav, в основном)
ZStreamChunksReader специальный инструмент для файлов приставки 3DO
audacity аудио-редактор для "монтажа" звука

Процесс состоит из 3 этапов:
1.Извлечь аудио файлы
2.Озвучить
3.Запаковать аудио файлы обратно, сначала в файл stream или m-файл, а потом и в ISO

 

 
Скрытый текст

 

0. Конвертируем образ в ISO. Извлекаем файлы в папку

bin2iso первой строчкой ожидает увидеть путь к bin файлу, поэтому
открываем cue файл блокнотом и удаляем первую строку с нолями, если они там есть
в командной строке пишем



bin2iso disc1.cue disc1.iso

извлекаем файлы



uncd-rom disc1.iso

1.Достаём аудио в понятном формате из m-файлов и stream
Для этого можно использовать ZStreamChunksReader.
На вкладке Audio Convertation(1) жмём на кнопку Add Files(2)
и выбираем все нужные нам файлы. Они появятся в списке справа
UW1cXuCvK
На вкладке Audio Data Ripper(3) жмём Search Audio(4)
Программа создаст MAP файлы, в которых содержится информация о расположении аудио и других файлов внутри
SBrRSvGNa
Снова заполняем список(2) m-файлами и stream. Теперь жмём Extract Audio(5)
Мы получили аудио данные в сыром виде(sound), без заголовка и сжатые методом SDX2
Для конвертации в wav нужна информация о частоте дискретизации(22050Hz) и количестве каналов(моно, стерео)
Узнать информацию о конкретном файле можно при сканировании одного файла(не списком) кнопкой Search Audio

У Shockwave 2: Beyond the Gate всё аудио в 22050 Hz
Стерео:
I1_1 - начальная заставка
CD - фразы "вставьте диск 1 или 2"
cv - архив записей
ev - катсцены между уровнями
Моно:
всё остальное, в том числе m-файлы

Опять заполняем список на вкладке Audio Convertation(1), но на этот раз полученными sound файлами
Выбираем соответствующие свойства 22050 Hz и моно или стерео. Не забудьте поставить 0 в поле Header lenght to cut
Жмём на кнопку SDX2 to WAV
В итоге, мы получили исходный звук из игры в формате PCM 16-bit без сжатия и с заголовком wav файла

В процессе работы заметил, что ZStreamChunksReader не точно вырезает-конвертирует файлы.
В конце волны бывают артефакты, которые звучат как щелчок.
Поэтому, для распаковки написал bms скрипт SHDRv2.bms
Он достаёт sound файлы из чего угодно(даже из ISO) и сохраняет их в виде sound и aifc файлов
aifc файлы содержат заголовок с информацией, необходимой для конвертации в wav
извлекаем из file (в командной строке)



quickbms SHDRv2.bms file


конвертируем в wav (в командной строке)



ffmpeg -i file.aifc -filter:a "volume=-10dB" file.wav


тут я сразу уменьшаю громкость оригинала на -10db для удобства наложения озвучки


для автоматизации процесса использую bat файл



for %%a in (m*) do quickbms SHDRv2.bms "%%a"

for %%a in (*.aifc) do ffmpeg -i %%a -filter:a "volume=-10dB" %%~na.wav

del *.aifc
@pause


он извлекает всё аудио из m-файлов (m*)(для stream файлов заменить на (*.stream) )
конвертирует все aifc файлы в wav и удаляет aifc файлы(они нам больше не понадобятся)

В теории, этим скриптом можно извлечь всё аудио из ISO образа без распаковки(не проверял).

 

Скрытый текст

 

Для получения перевода с озвучкой, я использовал rutube и расширение tampermonkey
со скриптом Voice Over Translation

Скрипт поддерживает много разных хостингов видео. Я выбрал рутюб

1. Склеил wav и создал видео-файлы из картинки+звук для заливки на rutube
создать txt с именами файлов в папке (в командной строке)



dir /b /a /-p /o:gen >files.txt


склеить файлы в один wav (в командной строке)



ffmpeg -f concat -i concat.txt -c copy cv.wav


внутри concat.txt такая структура



file 'CV1A_1.wav'
file 'CV1A_2.wav'
file 'CV1A_3.wav'
file 'CV1C2_1.wav'


и т.д.
создать видео со звуком из картинки (в командной строке)



ffmpeg -loop 1 -i shock-wave-2-beyond-the-gate-logo.jpg -i cv.wav -c:v libx264 -c:a mp3 -strict -2 -pix_fmt yuv420p -shortest cv.avi


где cv.wav это имя файла из склеенных wav
Получили cv.avi для заливки на rutube

2. Получаем озвучку
Залил файлы на rutube и в скрипте после озвучки скачал чистый mp3 с озвучкой
V5p6z9hxJ
Видео доступные по ссылке не могут быть обработаны скриптом

3. Миксуем озвучку с оригинальным звуком из игры
Я делал в audacity. Можно использовать любой удобный вам аудио-редактор
Длительность аудио не может быть больше чем в оригинале.
Если фраза на русском длиннее оригинала, менял темп в редакторе
На выходе у нас должна получиться куча wav файлов PCM 16-bit 22050Hz с соответствующими оригиналу количеством каналов и длиной,
готовых к запаковке обратно

 

Скрытый текст

 

1. Конвертируем wav обратно в голый SDX2
В ZStreamChunksReader загружаем готовые wav файлы в список(2)
Жмём Pack to SDX2
Получили кучу aifc файлов. Это наш звук, пожатый алгоритмом SDX2 с заголовком aifc и хвостом
Для вставки аудио обратно в stream или m-файл нужно голое аудио без заголовка
Вот тут я то ли не понял, то ли ZStreamChunksReader не работает как надо:
ZStreamChunksReader версии 0.8.2 содержит в архиве инструкцию по работе с программой. Там написано 
"сделать из него “сырой” файл выполнив операции Search Audio и Extract Audio в итоге получив .SOUND файл."
Вот это не работает. Пишет No Data Extracted

2.Обрезаем заголовок и хвост у aifc файлов
помещаем quickbms и скрипт SSNDstrip.bms для него в папку с aifc файлами
и в командной строке пишем



for %f in (*.aifc) do quickbms SSNDstrip.bms "%a"


Получили кучку SSND файлов, готовых к вставке обратно в stream и m-файлы

3.Вставляем аудио обратно
Убедитесь, что MAP файлы лежат рядом с соответствующими stream и m-файлами
В ZStreamChunksReader на вкладке Audio Data Insert жмём кнопку Insert Audio
Сначала выбираем куда вставлять(stream или m-файл), затем - что вставлять (SSND файл)

С m-файлами на этом этапе есть нюанс. Помните, мы не стали распаковывать m-файлы?
Нужно предварительно склеить SSND файлы из конкретного m-файла для вставки в этот m-файл
Нюанс заключается в том, что m-файл, в отличии от stream, содержит несколько аудио файлов,
а ZStreamChunksReader вставляет только один аудио файл

Для склейки используем команду (на примере m4a m-файла)



copy /b m4a*.SSND m4a.SSND


Важно! Файлы для склейки должны быть пронумерованы в правильном порядке,
таком же, в котором они извлекались из m-файла. Нужно добавить 0 к одноциферным SSND
0>00 1>01 2>02 и т.д.

4. Запаковываем файлы в ISO
Я использовал скрипт iso2files.bms для quickbms
Он читает данные из unCD-ROM.log (его создает unCD-ROM при распаковке) и заменяет файлы внутри ISO
Таким образом, нет необходимости пересобирать весь диск и переподписывать его.
С unCD-ROM.log есть нюанс: скрипт iso2files.bms еще сырой, поэтому, нужно подправить файл unCD-ROM.log блокнотом,
чтобы все пробелы после "PosInFile:" и "Size:" были нолями. Вот так:
было "PosInFile:   71800  Size:    25858" стало "PosInFile:00071800  Size:000025858"

В папке с ISO должен находится подправленный файл unCD-ROM.log и quickbms, а файлы на замену  - рядом в папке с названием как у ISO 
Например, если образ disс1.iso, то в папке disc1 должны лежать stream и m-файлы,
которые вы хотите вставить, но БЕЗ папок ShockWave2\FrontEnd\Streams или ShockWave2\
Команда



quickbms -r -w iso2files.bms disс1.iso


запишет файлы из папки disс1 в образ disс1.iso

Готово!

 

 

Изменено пользователем 7ytbfdr56nu
  • Лайк (+1) 1
  • +1 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Продвигаемые темы

  • Последние сообщения

    • На вкус и цвет товарищей нет. Кому-то нравиться окультуреная версия, кому-то оригинал. Это как аниме: в оригиналагах тян-чан. В нормальных русских переводах это убрано и смотреть привычней. Кому-то заходят тяны-чаны на субтитрах. 
    • @Dontaz Буквально вчера вечером установил игру и накатил ваш русификатор из Steam. Несколько наиприятнейших вечеров обеспечены. Низкий вам поклон вам за перевод.
    • Что-то дернуло меня на аниме (снова). Посмотрел несколько фильмецов и сериал. Из “Аниматрицы” только несколько серий по-настоящему понравились. Остальное слишком аморфно для понимания “Многоцветье” тоже особо “вау” не вызвала, хотя комментарии под фильмом были очень уж побуждающие к просмотру. А вот “Агент Вексилл” для меня стала прям открытием, маленький шедевр. Очень советую, крепкий фантастический фильмец с отсылками на нашу современную жизнь.
    • А я тебе очень советую не особо откладывать прохождение. Игруха просто улетная. Вернула мне желание играть снова, вроде так сейчас выражаются С удовольствием 10 часов с лишним в ней провёл и не жалею — 10 лет ожиданий того стоили.
    • Много озвучек это хорошо, но на месте этих мелких “студий” я бы занялся тем проектом, которым никто не занимается и заниматься не будет. А так работа по большей части будет недооценена, т.к. все будут качать от проф студии.
    • @edifiei Little Nightmares 2 неплохая, Hazel Sky средненькая адвенчура, но тоже неплохая, а вот Call For Heroes — тот еще трэш. У нас эту игру в 2007-м выпускала Акелла.
    • Ну так, скорей потому что что-то купить надо было, ведь распродажа, а не потому что прям хотелось (хотя кое-что и хотелось, игру от разраба Шороха например, ASYLUM которая). Ну а фиг ли, сейчас то не продается что-то, то я уже на всякий случай купил сразу, и часто в итоге на распродаже тех же ААА-шных игры и нет почти, то цена не нравится. 

      Восхождение на трон: Валькирия  /  Planet Alcatraz 2  /  Forgotten Hill Mementoes  /  Paper Memories - Comics from Finding Paradise & To the Moon  /  [Platypus Comic Strips+] To the Moon, too!  /  Serious Sam 4  /  Serious Sam: Siberian Mayhem  / Crysis Remastered  /  Crysis 2 Remastered  / Crysis 3 Remastered  /  GRIS  /  ASYLUM  / Twelve Minutes  / Felvidek  / No Case Should Remain Unsolved  /  HIVESWAP: ACT 2

      Ну а это мне подарили за то что я существую в определенном отрезке вечности, потому что мы любим наблюдать за падающими песчинками и обратным отсчетом. Но это только как комп новый будет, не хочу на средних играть. Тоже засчитываем как приобретенное на распродаже, тем не менее.  Black Myth: Wukong
    • Обновил в руководстве инструкции к установке, обновлению и замене русификатора. Инструкция к установке через автоматический установщик Скачиваете файл по ссылке из секции «Ссылка на скачивание [версия ****] → Автоматический установщик» с желаемого источника (рекомендую яндекс диск и гугл диск, там всегда самая новая версия); Запускаете .exe файл; Снизу окна программы нажмите «Далее»; Если установщик неправильно указал путь к вашей игре — нажмите «Обзор» справа от строки с путём к игре и укажите путь к вашей игре; После того, как в строке будет указан правильный путь к вашей игре, нажмите снизу «Далее»; Нажмите снизу окна «Установить»; Русификатор установлен, можете нажать кнопку «Завершить» снизу окна.     Инструкция к установке вручную из архива Скачиваете архив по ссылке из секции «Ссылка на скачивание [версия ****] → Архив для установки вручную» с желаемого источника (рекомендую яндекс диск и гугл диск, там всегда самая новая версия); Переносите папку «TheMidnightWalk» из архива в папку с игрой по пути «...\steamapps\common\The Midnight Walk».     Инструкция к обновлению или замене русификатора (перевода) Если у вас мой перевод и вы хотите его обновить: Если устанавливаете новую версию с помощью автоматического установщика: Скачиваете автоматический установщик с новой версией по ссылкам выше (из раздела «Ссылка на скачивание [версия ****]»; Выполняете по пунктам инструкцию по установке через автоматический установщик (секция «Инструкция к установке через автоматический установщик»); Автоматический установщик сам заменит старую версию новой. Если устанавливаете новую версию вручную из архива: Перенесите папку «TheMidnightWalk» из архива в папку с игрой по пути «...\steamapps\common\The Midnight Walk»; Выполните копирование с заменой новым файлом. Если вы хотите заменить русификатор от другого переводчика моим переводом: Если ставите мой перевод автоматическим установщиком, то у него присутствует встроенное удаление перевода от Chillstream при его нахождении в папке с игрой, если у вас перевод от других переводчиков — смотрите ниже ↓ Выполнить удаление другого перевода по инструкции переводчика этого перевода или ↓ Перейти в папку «Paks» по пути «\steamapps\common\The Midnight Walk\TheMidnightWalk\Content\» и удалить оттуда все файлы и папки КРОМЕ файла «TheMidnightWalk-Windows.pak» (который весит около 16.5 ГБ); Выбрать желаемый способ установки моего перевода (через автоматический установщик или вручную архивом) и следовать инструкции этого способа. Если вы хотите заменить мой русификатор (перевод) другим от других переводчиков: Удалить мой перевод по инструкции из секции «Удаление перевода» (1 и 2 пункты); Установить перевод от других переводчиков по их инструкции.     Удаление перевода У вас мой перевод, который вы установили ручным способом (архивом): Перейти в папку «Paks» по пути «\steamapps\common\The Midnight Walk\TheMidnightWalk\Content\» и удалить оттуда файл «RussianLanguage_P.pak» У вас мой перевод, который вы установили через автоматический установщик: Перейти в папку «Удаление русификатора», которая находится в корневой папке с игрой «\steamapps\common\The Midnight Walk\» и запустить файл «unins000.exe» У вас установлен русификатор от других переводчиков: Перейти в папку «Paks» по пути «\steamapps\common\The Midnight Walk\TheMidnightWalk\Content\» и удалить оттуда все файлы и папки КРОМЕ файла «TheMidnightWalk-Windows.pak» (который весит ~16.5 ГБ)
  • Изменения статусов

    • Дмитрий Соснов  »  Tirniel

      Привет! ты разбираешься в компьютерном железе, сможешь помочь с советом по апгрейду старого компа?
      · 1 ответ
    • SHAMAH

      Куда вход на сайт убрали и ЗАЧЕМ? Хотел файл скачать, там только медленная загрузка и “зарегистрируйтесь”. Все. Пришлось вручную страницу входа прописывать.
      · 0 ответов
    • Nosferatu  »  behar

      Добрый вечер.
      Подскажите пожалуйста, у вас не осталось случайно исходников для фикса на широкоформатные мониторы для игры Vampire The Masquerade Redemption?
      Если да, то не могли бы вы ими поделиться, а если нет, то прошу прощенья что побеспокоил.
      Заранее спасибо.
      · 0 ответов
    • AlcoKolyic  »  makc_ar

      Здраствуйте! Извините, а можно попросить ссылку на место где можно взять перевод (патч или образ игры с переводом) El Shaddai: Ascension of the Metatron для ps3, пожалуйста? А то в теме к этой игре у меня не получилось найти работающие ссылки… Первая ведет в группу в которой удалены большинство постов, а пост с этой игрой ведет на сайт https://psnext.ru который сейчас не имеет отношения к видеоиграм. 
      · 0 ответов
    • oleg72  »  Boor

      https://www.skidrowcodex.net/fate-reawakened-goldberg/
      · 0 ответов
  • Лучшие авторы


Zone of Games © 2003–2025 | Реклама на сайте.

×