Правила форума

Правила, действующие в этом форуме и всех его подфорумах:

1) Запрещена реклама в любых её проявлениях (сразу бан без предупреждения)!
2) Мат тоже не приветствуется на форуме, но иногда можно выразить свои чувства ( лучше заменяйте матные слова точками, пробелами, другими буквами)!
3) Категорически запрещается унижать, посылать, издеваться над участниками форума! Мы здесь все - одна большая и дружная семья! Поэтому за нарушение этого правила автоматически будем банить!
4) Разрешены ссылки на информацию, которые относятся к тому или иному разделу форума!
5) Ссылки не в тему будут удаляться и пользователь получит предупреждение или будет забанен!
6) Пользователям разрешено задавать любые вопросы относящиеся к теме, а мы все дружно ответим на эти вопросы. А также отвечать на вопросы и высказывать своё мнение.
7) Повторные темы, которые будут создаваться, будут удалены! Создавайте темы, удостоверившись, что такой темы нет на форуме!
8) Запрещён флуд во всех его проявлениях, сообщения не по теме, сообщения состоящие из одного или нескольких смайликов без текста, сообщения типа - Вах!, Рулез!, Круто! и т.п. Пользуйтесь пожалуйста кнопкой [EDIT], не плодите бессодержательные сообщения.
9) Использование смайликов разрешается не более 3-х подряд!

Добро пожаловать на наш форум!



Ответить на тему  [ Сообщений: 19 ] 
Структура 3DO файлов подробно 
Автор Сообщение
Аватара пользователя
Я консольный бог
Я консольный бог

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

Хочу в этой теме начать обсуждение не торопясь, "за чаем". По форуму разбросаны различные описания, но все они неструктурированы и, зачастую, сложны для понимания. В одной теме вскользь обсуждается звук, в другой графика, применительно к конкретной ситуации. Вот и захотелось весь этот "бардак" оформить. Уверен, что многие новички (как я) не знают даже как подступиться к незнакомым символам. Всем это будет полезно. Файлы, в которые запиханы различные ресурсы, пока рассматривать не будем.
Т.к. продолжил "пилить" свою софтину, для написания алгоритма нужны конкретные данные. Начну с того, что понял я.

Рассмотрим отдельно:

Файл IMAG
Пусто


Файл CEL
Начинается с CCB заголовка (различного размера?). После него Могут встречаться XTRA, PLUT(палитра?). Данные непосредственно картинки - после PDAT.
CEL
//*** CCB structure for CEL
FLAGS: integer; /// 4 bytes /Assorted 1-bit flags. This is the first word read.
NEXTPTR: integer;/// 3 bytes / Address of next CCB to process.
SOURCEPTR: integer; /// 3 bytes / Address of image data to be rendered.
PLUTPTR: integer; ///3 bytes / Address of PLUT to be loaded.
XPOS: integer;/// 4 bytes / Horizontal source position of cel in bitmap (in 16.16 or 17.15 format)
YPOS: integer;/// 4 bytes / Vertical source position of cel in bitmap (in 16.16 or 17.15 format)
///// Ниже приведены опциональные (необязательные) параметры CCB
HDX: integer; /// 4 bytes / Starting horizontal offset X value (in 12.20 format)
HDY: integer; /// 4 bytes / Starting horizontal offset Y value (in 12.20 format)
VDX: integer; /// 4 bytes / Vertical offset x value (in 16.16 format)
VDY: integer; /// 4 bytes / Vertical offset y value (in 16.16 format)
HDDX: integer; /// 4 bytes / Change in HDX offset value (in 12.20 format)
HDDY: integer; /// 4 bytes / Change in HDY offset value (in 12.20 format)
PIXC: integer; /// 4 bytes / Pixel processor control word.
PRE0: integer; /// 4 bytes / Possible first preamble word
PRE1: integer; /// 4 bytes / Possible second preamble word


Файл ANIM.
Заголовок ANIM, далее (через определенное количество байт? Каких?) идет CCB заголовок. Явно, что он неодинаков для всех файлов (из чего он состоит?). После него Могут встречаться XTRA, PLUT (палитра?) и, собственно, PDAT (данные непосредственно самого изображения). Далее CCB и прочее не повторяется, то есть, можно взять данные от CCB (включительно) и до первого PDAT и приписать в начале перед каждой секцией PDAT. Мы получим из ANIM файла столько картинок, сколько вхождений PDAT имеем.


Файл??? Добавляйте свои мысли, описания, наработки. Только прошу, пишите понятным языком. Буду обновлять первый пост. По мере возможностей буду копаться сам.

Последний раз редактировалось Versus 31 июл 2014, 10:32, всего редактировалось 1 раз.

Причина: Обновлено


_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


29 июл 2014, 15:22
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

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

Давайте вообще соберем все заголовки форматов данных.

`IMAG'| /* Image Control chunk */
`CCB ` | /* CEL Control chunk */
`PDAT' | /* Pixel Data chunk */
`PLUT' | /* PLUT (Pixel Lookup Table) chunk*/
`ANIM' | /* Animation Info*
`VDL ` | /* VDL (Video Display List) chunk */
`CPYR' | /* Copyright Notice */
`DESC' | /* Text description of image */
`KWRD' | /* Text Keywords for image*/
`CRDT' /* Text credits associated with image */


А какие есть еще?

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


30 июл 2014, 16:20
Профиль
Аватара пользователя
Специалист
Специалист

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

AIFF - музыка
AIFC - звуковые эффекты
На приставке 3DO у многих файлов вообще нет расширений и это может быть всё что угодно. Чаще всего это исполняемые файлы или видео (поправьте если ошибаюсь, но по-моему у видео действительно на ставят расширения)
В CEL заголовок CCB всегда 80 байт (0x50). С PLUT непонятка - почти везде размер 76 байт (0x4C), но изредка встречаются исключения. Точно не скажу. PDAT - данные, размер всегда разный.

_______________________________________
Мой список начатых и пройденных игр (начиная с 26.11.2013): http://www.howlongtobeat.com/user.php?n ... c=list_all


30 июл 2014, 17:09
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

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

aliast писал(а):
PDAT - данные, размер всегда разный.

Ведь это как раз непосредственно данные изображений?

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


30 июл 2014, 17:31
Профиль
Аватара пользователя
Специалист
Специалист

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

aliast писал(а):
PDAT - данные, размер всегда разный.

Ведь это как раз непосредственно данные изображений?

Ага.

_______________________________________
Мой список начатых и пройденных игр (начиная с 26.11.2013): http://www.howlongtobeat.com/user.php?n ... c=list_all


30 июл 2014, 20:54
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

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

Еще метки:
SHDR
CTRL
SYNC
FILM
FHDR
FRME
SNDS
FILL

Какого их назначение? Взято из видеоролика DeathKeep.

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


31 июл 2014, 09:46
Профиль
Аватара пользователя
Приставочник
Приставочник

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

Из того, что мне известно:

CEL
//*** CCB structure for CEL
  FLAGS: integer; /// 4 bytes /Assorted 1-bit flags. This is the first word read.
  NEXTPTR: integer;/// 3 bytes / Address of next CCB to process.
  SOURCEPTR: integer; /// 3 bytes / Address of image data to be rendered.
  PLUTPTR: integer; ///3 bytes / Address of PLUT to be loaded.
  XPOS: integer;/// 4 bytes / Horizontal source position of cel in bitmap (in 16.16 or 17.15 format)
  YPOS: integer;/// 4 bytes / Vertical source position of cel in bitmap (in 16.16 or 17.15 format)
    ///// Ниже приведены опциональные (необязательные) параметры CCB
  HDX: integer; /// 4 bytes / Starting horizontal offset X value (in 12.20 format)
  HDY: integer; /// 4 bytes / Starting horizontal offset Y value (in 12.20 format)
  VDX: integer; /// 4 bytes / Vertical offset x value (in 16.16 format)
  VDY: integer; /// 4 bytes / Vertical offset y value (in 16.16 format)
  HDDX: integer; /// 4 bytes / Change in HDX offset value (in 12.20 format)
  HDDY: integer; /// 4 bytes / Change in HDY offset value (in 12.20 format)
  PIXC: integer; /// 4 bytes / Pixel processor control word.
  PRE0: integer; /// 4 bytes / Possible first preamble word
  PRE1: integer; /// 4 bytes / Possible second preamble word


////// формат заголовка IMAG после размера
PixHeight: integer;  // высота изображения
 PixWidth: integer;  // ширина изображения
 BytesPerRow: integer; // число байт на один ряд изображения
 BitsPerPixel: byte; //бит на пиксел 8\16\24
 NumComponents: byte;   //
 NumPlanes: byte;  //  /*1 => chunky;  3=> planar
 ColorSpace: byte;  // 0 => RGB, 1 => YCrCb
 CompType: byte;//  compression type; 0 => uncompressed 1=Cel bit packed
 hvformat: byte; /// /*0 => 0555; 1=> 0554h; 2=> 0554v; 3=> v554h
 pixelorder: byte;// *0 => (0,0), (1,0), (2,0)  (x,y) is (row,column)
                  // *1 => (0,0), (0,1), (1,0), (1,1)  Sherrie LRform  */
                  // *2 => (0,1), (0,0), (1,1), (1,0)  UGO LRform
 version: byte;//


EZFL - чанк видео файла - файл с этими чанками может быть обработан 3DO SDK утилитой Weaver.

FILL - блок-пустышка всегда заполненный нулями, видимо служит для заполнения пустот, где нет данных, но они требуются.

FILLxxxx - 8 байт - обозначение чанка+размер-смещение

SHDR
///---------- ПЕРЕМЕННЫЕ ДЛЯ СУБ-ЧАНКА SHDR -------------------------------
    /// - все поля размером 4 байта
    version: integer;
    numbuffers: integer;  //// для плейера - сколько буферов надо разместить -- игнорируем
    initAmplitude: integer;  /////  начальная амплитуда -- 0 = min, 7fff -- max
    initPan: integer;  //// начальный баланс (лево\право)
    dataFormat: string[5];/// формат данных [4] байта, не используется
    sampleSize: integer;   //// размер каждого сэмпла в битах
    sampleRate: integer;   /// частота сэмплов
    numChannels: integer;  /// сколько каналов (1 == моно\2 == стерео)
    CompressionType: string[5]; /// тип компрессии [4] байта
    CompressionRatio: integer;  /// во сколько раз сжато
    SampleCount: integer;     //// количество сэмплов
////

///------------ ПЕРЕМЕННЫЕ ДЛЯ СУБ-ЧАНКА SSMP -----------------------------
////
actSampleSize: integer; - размер сэмпла аудио
data: word; - непосредственно данные
////

CTRL - для потрошения ресурсов мне не пригодился, назначение не знаю, встречается вместе с графическими и аудио данными;
SYNC - используется для синхронизации видео потока и аудио с действиями игрока;

FILM - обозначает наличие видео данных

typedef   struct CinePakHeader {
   //SUBS_CHUNK_COMMON;
long   chunkType;   /* chunk type */
long   chunkSize;   /* chunk size including header */
long   time;      /* position in stream time */
long   channel;      /* logical channel number */
long   subChunkType;   /* data sub-type */
long   version;      /*   0 for this version   */
long   cType;      /*   video compression type*/
long   height;      /*   Height of each frame   */
long   width;      /*   Width of each frame   */
long   scale;      /*   Timescale of Film*/
long   count;      /*   Number of frames*/
} CinePakHeader
///////////////////////

FHDR - Film Header, содержит параметры видео

typedef   struct ShortCinePakHeader {
   //SUBS_CHUNK_COMMON;
   
long   subChunkType;    /* data sub-type */

long   version;      /*0 for this version   */
long   cType;      /*video compression type*/
long   height;      /*Height of each frame   */
long   width;      /*Width of each frame   */
long   scale;      /*Timescale of Film*/
long   count;      /*Number of frames*/
}ShortCinePakHeader
///////////////////////////////////////
FRME - кадр видео

typedef   struct   CinePakFrame {
   //SUBS_CHUNK_COMMON;
 long   chunkType;   /* chunk type */
long   chunkSize;   /* chunk size including header */   
long   time;      /* position in stream time */
long   channel;      /* logical channel number */
long   subChunkType;   /* data sub-type */
long   duration;      /*Duration of this sample*/
long   frameSize;      /*Number of bytes in frame*/
char   frameData[4];   /*compressed frame data...*/
} CinePakFrame

//////////////////////

SNDS - блок аудио данных, соседствует с SSMP

Давно этим всем не занимался, мог что-то упустить и забыть. Когда-то копался в ресурсах Road Rash, там вообще одни нестандартные чанки данных.


31 июл 2014, 09:52
Профиль
Аватара пользователя
Специалист
Специалист

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

Author писал(а):
NEXTPTR: integer;/// 3 bytes / Address of next CCB to process.

Это что? Это как раз и есть та самая шляпа из Killing Time, когда на текстуру стены накладывается текстура трещин. И этот NEXTPTR есть указатель на структуру CCB этой трещины. Если накладывать ничего не нужно, то NEXTPTR = NULL. Но как это всё используется?!

Добавлено спустя 5 минут 51 секунду:
Author писал(а):

SOURCEPTR: integer; /// 3 bytes / Указатель на секцию PDAT
PLUTPTR: integer; ///3 bytes / Указатель на секцию PLUT

_______________________________________
Мой список начатых и пройденных игр (начиная с 26.11.2013): http://www.howlongtobeat.com/user.php?n ... c=list_all


31 июл 2014, 12:38
Профиль
Аватара пользователя
Приставочник
Приставочник

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

aliast

Я понимаю так, сначала нужно разобрать секцию FLAGS (описана в 3DO SDK), ориентируясь по ней мы узнаем, должны ли читать только NEXTPTR и SOURCEPTR или за ними ещё расположен указатель на PLUT (хотя подозреваю он есть всегда только может быть NULL, как ты заметил). В зависимости от флагов могут добавляться опциональные (необязательные) параметры CCB, которые либо прописаны, либо отстутствуют. Как всё это используется не знаю.


31 июл 2014, 13:11
Профиль
Аватара пользователя
Приставочник
Приставочник

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

В 3DO SDK (файл MovieToSream.c одноимённой утилиты) нашёл зачем точно нужен FILL.

"Write out a chunk of type 'FILL' for the remaining block data. This is done when no other block is small enough to fit in the remaining space."
Т.е. как и предполагалось - для забивания пустот, которые должны быть для обработчиков даных, но их нечем заполнять. В данном случае, нет подходящего размера блока с видео данными в оставшемся пространстве (видимо есть некий "шаг"/обязательный размер данных/ у декодера видео).


07 окт 2014, 12:54
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

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

В принципе, логично.

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


07 окт 2014, 14:32
Профиль
Аватара пользователя
Приставочник
Приставочник

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

aliast, помоги пожалуйста разобраться с этим куском файла ZStream из Killing Time в котором лежит CARY.

"4A4F494E00001FB8000927CA0000040A4A4152594A484452000061B8000000000000000000001F90434152590000006C000061B4000000000000006C000000B0000000F4000001380000017C000001C000000204000002480000028C000002D000000314000003580000039C000003E00000042400000468000004AC000004F00000053400000578000005BC00000600000000007FE6C220"

текстовый вид

"JOIN......'.....JARYJHDR..a.............CARY...l..a........l...........8...|...........H...............X...........$...h...........4...x............... "

Твой разбор CARY
Файлы ARY
Массив из нескольких CEL-картинок с текстурами с порезанными заголовками CCB, PDAT, PLUT.
typedef struct ARY
{
string CARY; //сигнатура файла CelARraY
int32 start_offset; //смещение к началу первого файла
int32 file_size; //размер файла ARY минус 4 байта
int32 zero1; //нули
int32 offset1; //смещение к началу первой текстуры
int32 offset2; //смещение к началу второй текстуры
...
int32 offsetN; //смещение к началу N-ой (последней) текстуры
int32 zero2; //нули - обозначают конец таблицы оффсетов
};

Далее идёт секция CCB первой картинки, но заголовок CCB обрезан, нужно восстановить его самим написав вначале: 43 43 42 20 00 00 00 50 00 00 00 00
Здесь 43 43 42 20 = "CCB "
00 00 00 50 = неизменный размер секции в 80 байт (0x50)
00 00 00 00 = нули
Далее идут 68 байт (0x44) из файла ARY, начиная со смещения offset1 до offset2 (должно быть offset2 - offset1 = 0x44)
Секция CCB имеет следующий вид (для дальнейшей распаковки нам понадобятся offset_PDAT и offset_PLUT):
typedef struct CCB
{
string CCB ; //сигнатура секции "CCB " (с пробелом в конце)
int32 CCB_size; //размер секции, всегда равен 0x50
int32 zero1; //нули
int32 flags; //спец. флаги (за подробностями читаем 3DO SDK, а пока просто копируем данные из ARY)
int32 zero2; //нули
int32 offset_PDAT //смещение к секции PDAT применительно к файлу ARY
int32 offset_PLUT //смещение к секции PLUT применительно к файлу ARY
... //дальше лень расписывать, просто копируем данные
};
Сразу после секции CCB идёт секция PDAT, заголовок тоже обычно обрезан. Восстанавливается дописыванием байт: 50 44 41 54 размер_секции_PDAT
Здесь 50 44 41 54 = "PDAT"
размер_секции_PDAT = размер секции PDAT = смещение_к_следующей_секции_PDAT - смещение_к_предыдущей_секции_PDAT
Далее копируем данные из ARY, начиная со смещения offset_PDAT и до смещения offset_PDAT из заголовка CCB следующего файла.
Ну и по аналогии восстанавливаем секцию PLUT, дописав вначале секции: 50 4C 55 54 00 00 00 4C 00 00 00 20
Здесь 50 4C 55 54 = "PLUT"
00 00 00 4C = размер секции PLUT, всегда 0x4C
00 00 00 20 = неизвестный байт 0x20. Скорее всего он всегда равен 0x20 во всех картинках
Копируем данные из ARY, начиная со смещения offset_PLUT и до смещения offset_PLUT из заголовка CCB следующего файла.


Собственно, мне не понятно как размер CARY может быть 61B4, если размер JOIN'a = 1FB8??? Только за счёт вырезанных заголовков?
Куда прицеплять заголовок CCB? Перед "7FE6C220"?


25 дек 2014, 14:18
Профиль
Аватара пользователя
Специалист
Специалист

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

Author писал(а):
Собственно, мне не понятно как размер CARY может быть 61B4, если размер JOIN'a = 1FB8???

Давно это было. Там получается так, что файлы внтури ZSеream как бы дефраментированы - кусок здесь, кусок там. Если размер JOIN не совпадает с размером файла, значит где-то дальше в ZStream должно быть продолжение файла, сопровождаемая сигнатурой JARYJDAT, т.е. JARYJHDR это начало файла, а JARYJDAT это продолжение. Причём совсем не обязательно это продолжение будет в следующем JOIN, оно может быть и через 2-3 джоина.

Добавлено спустя 3 минуты 59 секунд:
Author писал(а):
Куда прицеплять заголовок CCB? Перед "7FE6C220"?

Ну да. Но тут я не до конца понял - в одном ARY находится несколько CEL. Причём там так хитро сделано - текстура стены одна и та же, а на неё накладываются лианы, трещины, орнамент. Получается что все эти лианы и трещины существуют отдельными текстурами, а гладкая стена - отдельно от них. Как это всё правильно распаковать не очень понятно.

_______________________________________
Мой список начатых и пройденных игр (начиная с 26.11.2013): http://www.howlongtobeat.com/user.php?n ... c=list_all


25 дек 2014, 15:04
Профиль
Аватара пользователя
Приставочник
Приставочник

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

aliast, спасибо за пояснение. Весьма запутано, я уже столкнулся с JDAT'ами при вытаскивании звуков. Пока получается фигово, хотя содержимое JOIN'ов анализирую.


25 дек 2014, 15:33
Профиль
Аватара пользователя
Специалист
Специалист

Группа: Администраторы
Сообщения: 8278
Регистрация: 03 дек 2009, 22:32
Откуда: MO/DK
Модель 3DO: Panasonic FZ-1 NTSC-U
Ответить с цитатой

А что делает XTRA ?

_______________________________________
Урча, пухлыми лапами кот вцепился в жидкую шевелюру конферансье и, дико взвыв, в два поворота сорвал голову с полной шеи. Две с половиной тысячи человек в театре вскрикнули как один.


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

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

Есть ещё такие чанки:

GOTO - работает как называется. Переход на заданную позицию после чанка.
STOP - ??
PAUS - ??
ALRM - alarm


Streamed cels (потоковые Cel'ы, видимо видео на основе картинок)
CHAR4LITERAL('S','C','E','L') // any SCEL chunk
CHAR4LITERAL('H','E','A','D') // SCEL header chunk
CHAR4LITERAL('C','L','S','T') // SCEL cel-list chunk (список Cel)

Типы cel списков в SCEL чанке
CHAR4LITERAL('C','L','S','T') // regular cel list (обычный CEL список)
CHAR4LITERAL('D','B','L','V') // Double-Vision cel list


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

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

Интересно. Такую инфу я не встречал. Где нарыл?

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


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

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

Рылся в 3DO docs patents, там есть папка Attic, в ней исходники утилиты ChunkMatcher, в файле ChunkTypes.h нашёл такое.


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

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

aspyd писал(а):
А что делает XTRA ?

Нашел немного инфы. Отсюда:
https://github.com/ewhac/gimp-plugin-3d ... r/3docel.h
#define CHUNK_XTRA   MKID4('X','T','R','A') /* 'XTRA' 3DO Animator creates these */

Намек на то, что это просто следы 3DO Animatora?

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


14 июл 2016, 01:52
Профиль
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ Сообщений: 19 ] 

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
© 2008-2017 «3DOPLANET.ru». Создано на основе phpBB® Forum Software © phpBB Group
Designed by ST Software || Русская поддержка phpBB || Time : 0.055s | 21 Queries | GZIP : On
Valid XHTML 1.0!