[ Сообщений: 442 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15  След.
ZStreamChunksReader: выдёргивание и конвертирование 3DO ресурсов 
Автор Сообщение
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

Вложение
ZStreamChunksReader 0.83.png
Данная программа предназначена для проигрывания/просмотра/извлечения/замены ресурсов в играх для приставки 3DO Interactive Multiplayer (R.E.A.L).
Музыку можно извлечь из потоковых файлов STREAM, ZStream, видеофайлов, BIN-файлов (бинарные файлы) путём конвертирования сжатых AIFC файлов и извлеченной музыки в формат WAV или AIFF, а так же обратное сжатие WAV/AIFF в AIFC (формат SDX2 моно/стерео) и замена звука в играх. Аудио данные также извлекаются из видеофайлов. Расширения аудио файлов могут быть отличными от Stream, ZStream, weave, AIFC, поэтому экспериментируйте. Поддерживается конвертирование видео из 3DO формата Stream в AVI файлы. Так же возможен просмотр IMAG файлов, извлечение файлов CEL и ANIM из архивных файлов.



ZStream Chunks Reader 0.9.1 - конвертирует 3DO видео в AVI.
Вложение
0

ZStreamChunksReader 0.80
ZStreamReader082
ZStreamReader084
ZStreamReader085
ZStreamReader096 (Stream to AVI/AVI to 3DO Stream, QuickTime MOV to 3DO Stream)


Распаковка игры Casper


У вас нет необходимых прав для просмотра вложений в этом сообщении.

Последний раз редактировалось Author 18 июл 2016, 13:46, всего редактировалось 21 раз(а).



05 июн 2013, 14:07
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Author писал(а):
Если так нужно, могу в отладчике посмотреть, в каком моменте затык по файлу из Doom.

Да, это бы очень помогло! :-):

Добавлено спустя 29 минут 49 секунд:
Author писал(а):
Я переносил код из CelViewer'a в свою утилиту.

Напомни, этот код открыт?


12 апр 2016, 11:21
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

Versus писал(а):
Напомни, этот код открыт?

Исходники CelViewer'a открыты. Есть на сайте Альтмера и у нас. Я доработанную версию исходников выкладывал в соседних темах.

Versus писал(а):
Да, это бы очень помогло!

Тогда пару файликов, пожалуйста на анализ :-):


12 апр 2016, 12:01
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Author писал(а):
Тогда пару файликов, пожалуйста на анализ

https://github.com/Olde-Skuul/doom3do/b ... o/sky1.cel
https://github.com/Olde-Skuul/doom3do/b ... gdoor2.cel
И остальные, если потребуется из этой же папки.
https://github.com/Olde-Skuul/doom3do/t ... ures%203do


12 апр 2016, 12:20
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

А видео формата DUK не проигрывается? Если нет, то вот исходники игры, которая должна уметь их воспроизводить http://sc2.sourceforge.net/downloads.php
Сам ничего не понял, но формат файлов вроде такой же.


12 апр 2016, 12:48
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

aliast писал(а):
А видео формата DUK не проигрывается?

Нет. Только хреновый звук конвертится. Проблема в том, что 3DO DUK какой-то недоделанный ранний вариант более позднего кодека True Motion Video. В Windows нет подходящего декодера этого видео кодека, там есть DUK (Phantasmagoria 2,например), но он отличается. В SC2 как раз более свежий (финальный). Но всё равно спасибо, проверю ссылку, может повезёт.

Добавлено спустя 43 минуты 35 секунд:
Versus писал(а):
https://github.com/Olde-Skuul/doom3do/b ... o/sky1.cel
https://github.com/Olde-Skuul/doom3do/b ... gdoor2.cel


Для обоих файлов одинаково

bits_per_pixel[CEL_PRE0_BPP(CelIm.ccb_chank.pre0)]=8131->3->4
конвертится в bits per pixel = 4

CEL_PRE0_BPP(CelIm.ccb_chank.pre0)=3

по этому числу попадает в проверку CEL_FLAG_PACKED (CelIm.ccb_chank.flags=2145828896) с результатом false (т.е. не запаковано)

Далее выполняется код

for{while} i:=0 to Pred(CelIm.y_res) {i++}
do
begin
k:= ((CelIm.x_res*bpp+31)) shr 5;
k:= (k shl 2)*i;
dec_shift:= 0;
for{while} j:=0 to Pred(CelIm.x_res) {j++}
do
begin
CelIm.image_buf[i*CelIm.x_res+j]:= ConvertPix_PLUT(get_bits((CelIm.pdat_buf[k]),bpp),bpp); --- вероятно здесь не правильно конвертирует т.к. всегда 0
k:= k + (dec_inc);
end;

для рабочего файла 3do.cel из Horde разбор bpp CEL_PRE0_BPP(CelIm.ccb_chank.pre0=15326). bpp=16

CEL_PRE0_BPP(CelIm.ccb_chank.pre0=15326) даёт результат 6 и выбирается другой алгоритм декодирования

bool(CEL_FLAG_PACKED(CelIm.ccb_chank.flags=1193673760))=false

CelIm.image_buf[i*CelIm.x_res+j]:= ConvertPix_16UC(...) здесь правильно набирается буфер картинки

Для Doom cel'ов, как я и писал,по флагам переходит на часть кода, где буфер забивается нулями при обработке PLUT, отсюда чёрный прямоугольник. Более конкретно - ошибка работы функции get_bits, криво переведена в Delphi код из-за сложной работы со сдвигом массива в памяти через указатели, что напрямую из Си невозможно перевести, нужно изменять алгоритм. Мозгов и времени не хватило на тот момент.


12 апр 2016, 13:59
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Спасибо за разбор. Видимо, мне нужно будет скомпилировать CelViewer и уже в отладчике колдовать.

Добавлено спустя 14 минут 11 секунд:
Хм... А я был уверен, что компрессия применялась. Иначе, как можно было получить такой малый размер cel-ки? 16 кб на 256х128 px... :du_ma_et:


12 апр 2016, 16:10
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

Versus писал(а):
Иначе, как можно было получить такой малый размер cel-ки? 16 кб на 256х128 px

А фиг знает, может все эти сдвиги памяти с выборкой битов и дают некий эффект распаковки, но сжатием не считаются. Так-то 32 кб получается должно быть несжатых данных.


13 апр 2016, 11:12
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Author писал(а):
bits_per_pixel[CEL_PRE0_BPP(CelIm.ccb_chank.pre0)]=8131->3->4
конвертится в bits per pixel = 4

128*256 = 32 кб
4 бита на пиксель это полбайта. 32 кб / 2 = 16 кб.


13 апр 2016, 11:33
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

aliast, спасибо, я ступил.

Добавлено спустя 2 часа 2 минуты 25 секунд:
Добавил звук при конвертации из MOV в Stream. Проверил Demo Player'ом. Итог - ни звука, ни изображения. При этом звук рипнулся из обратно из созданного файла правильно. Эх. Наверно надо в разые игры пробовать сунуть эти самопальные видяхи, собирать образ обратно и проверять на них.


13 апр 2016, 11:49
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Хоть дела продвигаются! Чую, что результат близко!


13 апр 2016, 14:29
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

Versus, как бы в 3DO демку запихнуть другой плеер чтобы с ним проверить? Кто делал образ 3DO Demo Player?


13 апр 2016, 14:33
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Уже и не помню, кто. Ты скажи, что именно куда запихнуть, попробуем.


13 апр 2016, 14:48
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

В архиве исполняемые файлы плееров для запуска на 3DO и пробный Stream со звуком и видео полученным из MOV файла. В демке есть файл bscpPlay. Предполагаю, что это сам плеер. Но есть файл bsinit. Как он влияет на работу bscpPlay фиг знает, это описано в lauchme, но его исходников нет и поправить ничего нельзя. По идее вместо bscpPlay можно положить любой из плееров в архиве с таким же именем. Я так пробовал, ничего не запустилось.

Я глянул во внутренности этих bin'ов. У них там какие-то левые заголовки в шапке, а непосредственно программа начинается со строки "E1A00000EB002F74EB00000CEB00003B", такая же строка идёт первой в bscpPlay. Возможно бинарники нужно поправить, обрезав лишнюю шапку.


У вас нет необходимых прав для просмотра вложений в этом сообщении.


13 апр 2016, 15:07
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Скачал, поколдую. Ты используешь образ 3DO Demo Player? Может, попробовать заменять плеер в образе Doom? Попробую.


13 апр 2016, 15:33
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

Versus писал(а):
Может, попробовать заменять плеер в образе Doom?

Вот его-то мне с самого начала проверить хотелось.

Versus писал(а):
Ты используешь образ 3DO Demo Player?

Да, в котором далеко не все нормальные-то файлы работают.

В идеале хорошы бы иметь плеер, который скидывает лог ошибок. Это прям очень помогло бы. Только где же такой взять.


13 апр 2016, 15:49
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Author
Author писал(а):
В идеале хорошы бы иметь плеер, который скидывает лог ошибок. Это прям очень помогло бы. Только где же такой взять.

Взять работоспособный плеер (попробуем выбрать такой), залезть в его исходники, прописать там вывод типа printf, и выводить на экран поверх видео. Это в теории. :nez-nayu:


13 апр 2016, 16:09
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Author писал(а):
У них там какие-то левые заголовки в шапке

Насколько я помню лишние байты появляются при копировании файлов из образов Мака в винду. Вроде бы это даже как-то фиксится, но проще всего ручками вырезать.


13 апр 2016, 17:06
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

aliast, т.е. просто убрать шапку лишнюю и всё? Там просто в конце тоже какая-то левая информация (как мне показалось) или данные в конце не влияют на работу? Примерно как в exe'шниках, если в конец свои стихи дописать прога всё равно будет прекрасно работать.

Versus писал(а):
Взять работоспособный плеер (попробуем выбрать такой), залезть в его исходники, прописать там вывод типа printf

Только пока не вышло ни одного плеера на Win32 собрать. :(


14 апр 2016, 10:44
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Author
Author писал(а):
Только пока не вышло ни одного плеера на Win32 собрать. :(

Буду пробовать собрать под старым маком. Тока пока не могу все сразу успеть.
PS. Я переношу файлы из мака в винду простым перетаскиванием на диск С. Ничего не портится и не дописывается.


14 апр 2016, 10:54
Аватара пользователя
Ужас, летящий на крыльях ночи!
Ужас, летящий на крыльях ночи!

Группа: Разработчики
Сообщения: 9069
Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U

Author
Заметил то, что при выдёргивании музыки из видео стерео каналы местами путаются. Правый становится левым и наоборот.


15 май 2016, 10:10
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

ПАУК,скорее всего звук начинает читаться со смещением, так каналы местами и меняются. Если очень надо, то попробую поправить.


16 май 2016, 12:05
Аватара пользователя
Ужас, летящий на крыльях ночи!
Ужас, летящий на крыльях ночи!

Группа: Разработчики
Сообщения: 9069
Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U

Author писал(а):
Если очень надо, то попробую поправить.
Да ну, как-то не к спеху, в следующем обновление можно поправить.
А так вообще, после смены каналов в стороннем софте звук нормальным становился.


16 май 2016, 16:58
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

aliast писал(а):
Если нет, то вот исходники игры, которая должна уметь их воспроизводить http://sc2.sourceforge.net/downloads.php

Пробую поднять исходники плеера Duk файлов с переводом на Delphi в свою утилиту. Ппц, все кодеры на Сях любители указателей??? Или это такой офигенный прирост в скорости работы даёт, что их очень часто вижу? Работа с файлами там обставлена ого-го как. Но, это же плеер, наверно так и надо. Много запчастей, которые мне для конвертации в общем не нужны, но затрудняют разбор алгоритма. Хотел для начала убедиться, что оно переварит Dukи из Hord'e, но куда файлы кидать для игры Ur-Quan masters не понял. Жаль они плеер отдельно от игры не сделали.


20 май 2016, 15:11
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Помочь бы тебе, да я сам в этих долбаных указателях ни фига не рублю... :-(


20 май 2016, 15:28
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

Versus,да так-то в самом указателе особой сложности нет. По сути это ссылка на область памяти, где лежит значение некой переменной или даже целый массив данных. Си оперирует с указателями как угодно, даже двигать массив данных может влево/вправо только по указателю на область с массивом. Но путаницу это создаёт не слабую в голове.
Мне не понятно,зачем кидать в процедуру/функцию указатель на файл! и там через указатель обращаться к данным. Когда можно сделать глобальную переменную и читай как угодно во всей программе.


20 май 2016, 15:35
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9841
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U

Author
Физический смысл я понимаю, а пользоваться не умею.
Author писал(а):
Когда можно сделать глобальную переменную и читай как угодно во всей программе.

Для меня тоже так проще. :nez-nayu:


20 май 2016, 15:42
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

Задолбался с этими указателями. Код плеера на сях собирать тоже то ещё удовольствие, т.к. отдельного проекта нет. Написал им на форуме Ur-Quan Masters, что если можно, то пусть релизят плеер отдельно, чтобы видяхи с 3DO смотреть. Как можно было сделать плеер для DUK'ов в игре, но не сделать отдельно утилиту? Ещё интереснее, откуда ноги у исходников алгоритма декодирования растут. Явно не сами додумались это просто нереально. Может кто-то из разрабов поделился кодом плеера...эх, в общем тяжело это для моего скилла.


31 май 2016, 14:36
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

Провёл эксперимент. Запихнул по инструкции в Ur-Quan Masters вступительный ролик из Гекса. Всё отлично воспроизвелось. Значит формат DUK именно тот, что нужно.


У вас нет необходимых прав для просмотра вложений в этом сообщении.


01 июн 2016, 14:41
Аватара пользователя
Специалист
Специалист

Группа: Разработчики
Сообщения: 1298
Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет

Там кстати есть исходники движка игры Star Control II на гитхабе и в версии .01 есть утилитка, выдирающая звук в формате raw. Но что с этим raw делать дальше я не понял. В ZStreamReader всё те же шумы, что и раньше (шумы не идентичны).
https://sourceforge.net/p/urquanmasters ... tools/duk/

Последний раз редактировалось aliast 01 июн 2016, 14:48, всего редактировалось 1 раз.



01 июн 2016, 14:44
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J

aliast, да, я исходник даже скачивал unduck.c и unduck.h. Raw файл потом можно во что угодно сконвертить, там (в Raw) по сути несжатый звук хранится после декодирования из файла Duk. В ZStreamReader'e новых правок пока нет.


01 июн 2016, 14:47
На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15  След.
Похожие темы
   Темы   Автор   Ответы   Просмотры   Последнее сообщение 
В этой теме нет новых непрочитанных сообщений. Manual Dumper - ручное выдёргивание ресурсов из файла

Author

5

5193

Author Перейти к последнему сообщению

19 сен 2014, 18:18


© 2008-2024 «3DOPLANET.ru». Создано на основе phpBB® Forum Software © phpBB Group
Designed by ST Software || Русская поддержка phpBB || Time : 0.063s | 20 Queries | GZIP : On