ZStreamChunksReader: выдёргивание и конвертирование 3DO ресурсов
Автор |
Сообщение |
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Данная программа предназначена для проигрывания/просмотра/извлечения/замены ресурсов в играх для приставки 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. ZStreamChunksReader 0.80ZStreamReader082ZStreamReader084ZStreamReader085ZStreamReader096 (Stream to AVI/AVI to 3DO Stream, QuickTime MOV to 3DO Stream)Распаковка игры Casper
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Author 18 июл 2016, 13:46, всего редактировалось 21 раз(а).
|
05 июн 2013, 14:07 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
AuthorНе заморачивайся. Я тебе вечером скину целиком папку CIncludes из MPW. Это установочный файл MPW (25 Mb). В нем все.
|
08 фев 2016, 15:15 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Что-то меня уже терзают смутные сомнения по поводу возможности написания конвертера. Попробовал подпихивать созданный stream в Defcon 5. Чёрный экран на заставке - висяк и 60 кадров в эмуле. Подсунул видос из Total Eclipse. Первая секунда-две звука без изображения и такой же висяк. Может дело не в моём кривом файле, а чём-то другом?
|
09 фев 2016, 16:13 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Ну как в другом? Что ты имеешь в виду? Видимо, у тебя подход другой. Все-таки нужно пробовать компилить существующие исходники из SDK. Нужно время, чтобы разобраться, да. Но зато полностью будет исключена любая ошибка. Я так сделал с исходниками MakeREZ. Они тоже были для старого мака и вообще неизвестно какого компилятора (не MPW, я уточнял у Ребекки). Мне нужно было заменить некоторые функции на виндовские и все. С твоей задачей будет сложнее, но подход, думаю, нужен такой же.
|
09 фев 2016, 16:26 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
В плеерах разных игр. Т.е. подсовывая заведомо рабочий файл я убеждаюсь, что он так же не воспроизводится как и мой. Что даёт повод думать, что с моим файлом всё ОК (ну кроме шума и отсутствия звуковой дорожки). Т.е. есть какие-то более глобальные параметры влияющие на воспроизвдение, так что ли? Может где-то прописано что программа читает блоки видео размером X и ауидо размером Y. Если что-то из этого не сошлось, то висяк. Согласен, так и надо делать. Когда include будут полегче стать должно :) Но всего этого было бы не нужно, если понять что не нравится плеерам даже в "правильных" видюшках.
|
09 фев 2016, 16:31 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Хммм.. Ну я же создал свое видео и использовал плеер Doom-а... Ему было пофигу, что видос не думовский. Добавлено спустя 4 часа 15 минут 1 секунду:Выкладываю инклюды из MPW Shell. Если еще каких-нибудь не хватает, пиши, поищем. Да, один момент. У меня компилятор ругался, что это файлы мака. Решил просто: открыл в WordPad-е и пересохранил.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
|
09 фев 2016, 16:38 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Versus, спасибо. Теперь компилятор отправил меня в ConditionalMacros.h Пишет, что незнакомый компилятор. При том в Define'ах есть Win32 и X86 как раз то, что надо. Я поправил значения с MacOS и PPC CPU на нули, а те на 1. Но ничего не изменилось. У тебя такого не было? На файлы мака ругани не было, хотя как видишь ситуация похожая.
|
10 фев 2016, 10:58 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Такого не помню. Сам этот файл есть? Это в нем так ругается?
|
10 фев 2016, 11:06 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Versus, да, ругается в этом файле. Там куча настроек под разные компиляторы для разных ОС и процов. Начал переделывать его. Может получится завести.
|
10 фев 2016, 11:18 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Author Удачи, пиши, если что понадобится.
|
10 фев 2016, 11:22 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Прогнал ruby.avi.stream через DumpStream. Она киданула такой результат
65536: 'CTRL' 24 0 -- 0 SYNC 65560: 'FILM' 44 150 -- 0 FHDR 65604: 'FILM' 23332 150 -- 0 FRME 88936: 'FILM' 23444 150 -- 0 FRME Warning: following chunk size not a quadbyte multiple: 112380: 'FILM' 23402 150 -- 0 FRME Warning: following chunk size not a quadbyte multiple: 135782: 'FILM' 23390 150 -- 0 FRME
Размер чанка ей не понравился. Типа не делится нацело на 4. В чём проблема мне не очень понятно. Почему размер на 4 делить надо?
|
26 фев 2016, 10:53 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Может, потому что данные в 3DO (значения) идут по 4 байта?
|
26 фев 2016, 13:42 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Versus, фигово, если всё так привязано. Т.к. надежда собрать исходники самых нужных утилит из SDK у меня тает на глазах. В EZQplayer'e привязка к железу 3DO, надо переписывать вывод изображения (как минимум). MovieToStream падает при работе, толи из-за qt библиотеки, то ли из-за косяка в коде при работе файла. Отлаживать консольное приложение очень неудобно.
|
26 фев 2016, 15:16 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
А зачем нам этот плеер? Он только как просмотрщик работает? А если это точками останова отследить? Я так с Makerez делал.
|
29 фев 2016, 21:39 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Думал, вдруг видосы из Snow Job'a покажет. Конвертить вроде не умеет. Отследить это можно по точкам, да. Только как бы его так запустить. Раньше я в консольных приложениях запускаемых через параметры сразу указывал обрабатываемый файл в исходнике, чтобы она стартанула.
|
02 мар 2016, 12:46 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
|
02 мар 2016, 13:43 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Versus
Чтобы попасть в точку останова дальше Main() в консольном приложении типа MovieToStream нужно
1) Чтобы были переданы параметры, иначе консольное приложение в лучшем случае покажет ключи запуска и закроется 2) Я не знаю как передать параметры командной строки во время компиляции в Builder'e, поэтому предположил вписать в исходник строку параметров сразу (как вариант), чтобы приложение запустилось в рабочем режиме и попало в точку останова, где начинается работа с файлом.
|
02 мар 2016, 13:58 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Author А, так в настройках проекта можно задать параметры, с которыми будет запускаться приложение.
|
02 мар 2016, 14:04 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Разобрался с запуском с параметрами. Получилось, что утилита виснет при попытке загрузить файл mov, точнее даже перед тем как загружать делаются какие-то подготовительные работы. А именно вызывается FSMakeFSSpec в
Movie OpenMovie(Str255 MovieName) { OSErr Oops; FSSpec Spec; short resRefNum; Movie theMovie; short resID; Str255 theStr; Boolean dataRefWasChanged; if (Oops = FSMakeFSSpec(0,0,MovieName,&Spec)) { printf("### %d Occurred while FSMakeFSSpec for %P\n", Oops, MovieName); return 0; } if (Oops = OpenMovieFile(&Spec,&resRefNum,0)) { printf("### %d Occurred while opening %P\n", Oops, MovieName); return 0; } resID = 0; if (Oops = NewMovieFromFile(&theMovie,resRefNum,&resID,theStr,0,&dataRefWasChanged)) { printf("### %d Occurred while opening movie in %P\n", Oops, theStr); } Oops = CloseMovieFile(resRefNum); return theMovie; }
Содержимое &Spec ниже { 31211, -112695662, "\x12\0HА\"gљ©\0\0\x02\0\0\00\x18€f\0\0\0\0\b\0\0\00щ\x12\04щ\x12\0PЗ\x14\0Ащ\x12\0БB€fР¦\"gощ\x12\0\0\0\0\0\0\0\0\0љ©\0\0Ydјс\0\0\0\00GЪ\0\0\0\0\0\0щ\x12\0 Џf\x14\0\0\0°y’f\0щ\x12\0\0\0\0\0Ђщ\x12\0ocmi@ъ\x12\0А‰…f©Гќ–юяяяlppaNБЏfР¦\"gощ\x12\0\0\0\0\0\0\0\0\0љ©\0\0Xъ\x12\0Pъ\x12\0ЂHЏ\0\x10ъ\x12\0„$\0f\0\0\0\0яяяяtipsVooMlppaPЗ\x14\0Pъ\x12\0БB€fЙgјсdы\x12\0¬4@\0ЂHЏ\0\0\0\x12\0@ъ\x12\0\0\0\0\0@ЅЏf\0\0\x12\0\0\0\0\0\x10ъ\x12\0q\0" }
Что это и как работает я не знаю пока.
|
02 мар 2016, 16:29 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Author А что именно показывает trace into в этот FSMakeFSSpec? На какую именно строчку натыкается?
|
03 мар 2016, 11:54 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Versus, если trace into это вход в вызываемую процедуру/функцию, то здесь он не работает - просто зависает в ожидании результата. Это внешние вызовы. OpenMovieFile и FSMakeFSSpe описаны в Movies.h и Files.h соответственно.
EXTERN_API( OSErr ) FSMakeFSSpec( short vRefNum, long dirID, ConstStr255Param fileName, FSSpec * spec) TWOWORDINLINE(0x7001, 0xAA52);
EXTERN_API( OSErr ) OpenMovieFile( const FSSpec * fileSpec, short * resRefNum, SInt8 permission) THREEWORDINLINE(0x303C, 0x0192, 0xAAAA);
|
03 мар 2016, 12:18 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
А если этот код перенести в свой cpp файл? Это станет внутренним вызовом? Сорри, если спорол чушь, не совсем в теме.
|
03 мар 2016, 12:25 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Versus, вот описание того, что вызывается.
* OpenMovieFile() * * Availability: * Non-Carbon CFM: in QuickTimeLib 2.5 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 or later * Windows: in qtmlClient.lib 3.0 and later
* FSp traps */ /* * FSMakeFSSpec() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 or later
Т.е. происходит обращение в qtmlClient.Lib. Может проблема в том, что нет этого файла, а есть только qtmlClient.dll??? Хуже другое, FSMakeFSSpec нет версии под OS Windows. Перенос в свой CPP ничего не даст, т.к. там описание только параметров, а сами фукции в той самой либе или dll. Знать бы чего там делается, может и сам бы написал код.
|
03 мар 2016, 12:31 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Вот поэтому, наверное, и я встрял с компиляцией новых утилит Ребекки. Описание добавил, а при компиляции ругается на какие-то неразрешенные символы. Как подключить либу не знаю, да и версий их хоть жопой жри.
|
03 мар 2016, 12:43 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Прошу прощения, qtmlClient.lib и dll у меня есть в проекте, а то бы не запустилось совсем. Две версии, притом на какую-то ругалась, что не в том формате данные внутри. В общем под SDK работать пока верный вариант. Либо понять в как исправить конвертацию в ZStream'e, тогда виндовыми редакторами мастерить видосы хотя бы можно будет. А это может быть ограничение настроек компилятора и его версий. Когда-то поднимал чужой старые проект, вот мне там такого полно писало, но то даже была более умная Visual Studio, а не Builder. Или ругается на либу саму? Тогда алес. Я пробовал конверить в нужный формат lib файлы с помощью coff2omf.exe, ilink32.exe и implib.exe, но они зубы обламали на файле и ничего не смогли обработать. Выдали на выходе 1кб вместо 700кб :))
|
03 мар 2016, 12:47 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Да кто ж ее поймет. Делаю в Visual Studio 2008. Потом приведу лог в теме про Doom, посмотри, может подскажешь чего.
|
03 мар 2016, 13:42 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Я перегнал сначала из stream в avi, потом сделал снова stream из avi. DumpStream на файл не ругалась. Вероятно алгоритм формирования контейнера всё же верный. Но чтобы убедиться нужно проверить читаемость файла хотя бы эмулем. Собрать образ самому пока нет возможности. Versus, нужна твоя помощь. Ссылка на файл stream в архиве. http://www.fayloobmennik.net/5914740Если заработает, я попробую добавлять нули чтобы данные блока делились на 4. p.s. вероятно будет фейл с этим файлом. Второй раз в AVI уже не конвертится. Ошибка вкралась всё же. Возможно мой AVI уже был некорректно собран (отсюда и проблемы воспроизведения везде, кроме QT Player'a)
|
11 мар 2016, 10:09 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Author Проверю дома. PS. Нам в спину дышит FantasyNik с продолжительными роликами. Ролики такой длины без сжатия могут получиться больше 1Гб. Из-за этого не получится сконвертировать под Маком.
|
11 мар 2016, 10:41 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Можно пытаться перебирать версии qtmlClient.dll и ставить разные версии самого QuickTime'a, глядишь продвижки с MovieToStream будут. Хотя бы дальше зависания чтобы проскочило Но мне это кажется совсем неблагодарным занятием.
Конвертора MOV /AVI в Cinepack под Win вообще нет? Самому мне такое не написать без нужной документации. Т.е. готовый MOV / AVI запихнуть в Stream реально, а вот сжать это нужен подробный алгоритм.
|
11 мар 2016, 11:09 |
|
|
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Смутно припоминаю, что конвертировал с помощью Quicktime Pro 7.7.
|
11 мар 2016, 11:29 |
|
|
Author Приставочник
Группа: Разработчики Сообщения: 1211 Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
|
Не знаю как так вышло, что в файле один параметр был запорот во всех фреймах (хотя CelViewer его нормально воспроизвел). Повторная манипуляция дала stream файл с правильными данными, который опять же перегоняется в avi. http://www.fayloobmennik.net/5915204
|
11 мар 2016, 11:40 |
|
|