» TeamX (Архив Форума)«


Форум TeamX » Новости » Обновление в разделе "Утилиты" (небольшое, но очень приятное ;))

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 ] Все собщения

 
Tim
Пользователь

Откуда: Санкт-Петербург
Регистрация: Май 2003

Всего: 265 сообщений

Спасибо, все ок... Только как запаковывать в дат?

-----
Ядерному взрыву - да! да! да!
Солнечному миру - нет! нет! нет!

Отправлено: 16:35 - 19 Янв., 2005
Blender
Пользователь

Регистрация: Янв. 2005

Всего: 3 сообщения

2 Tim

Если для Far, то выделяешб директорию date, жмешь shift-F1 выбераешь нужный архиватор и все.

Отправлено: 17:05 - 19 Янв., 2005
Anchorite
Пользователь

Откуда: Не здесь
Регистрация: Янв. 2003

Всего: 283 сообщения

Цитата:

Ага. Кажется понял. При некорректном формате входного файла DAT2 завершается аварийно, но код возврата даёт 0. Что интерпретируется MultiArc как успешное завершение операции, а дальше plugin пытается разобрать диагностическое сообщение в список файлов, на чём и глючит неслабо.



Да, есть такое дело. У себя уже пофиксил. Скоро будет выложена обновленная версия.

Отправлено: 0:30 - 20 Янв., 2005
Raven
Пользователь

Откуда: Владик
Регистрация: Февр. 2004

Всего: 408 сообщений

to Anchorite

Огромное спасибо. А dat-ы фоловские можно как-то отличать от всего остального? По заголовочным байтикам? Судя по описанию из database-а - нет :-( А то даже случайная попытка "распаковать" worldmap.dat приводит к зависанию TC...

to Blender

Тебе тоже :-) Вчера часа два тупил, пытаясь научить TC-шный multiarc правильно Extract делать. А всего-то делов надо было - флажок -p воткнуть :-)


Отправлено: 11:02 - 20 Янв., 2005
Anchorite
Пользователь

Откуда: Не здесь
Регистрация: Янв. 2003

Всего: 283 сообщения

Обновленная версия доступна для скачивания.

2Raven:
Про DAT-ы от первого Фолла ничего говорить не буду - плотно не копал.
По поводу DAT-ов от второго Фолла - 100% способа нет. Косвенно можно попытаться определить по последнему DWORD-у в самом файле. Он должен быть равен длине файла.

Отправлено: 0:33 - 21 Янв., 2005
Alchemist
Модератор

Откуда: Арзамас-17
Регистрация: Дек. 2004

Всего: 298 сообщений

Главные отличия формата первого Fallout это Motorol'овский порядок байтов и  директория, записаная не в конец файла, а в его начало. И ещё кое-какие мелочи. Так что проверить по magic'у тоже не выйдет.

Информация к размышлению (код содержит ошибки).


//========================
//  Fallout 1.0 DAT file
//========================

//  WARNING! Fallout data files use non-Intel byte order, all integer
//  values in directory i.e. offset or length are written in MSB-first
//  format. You should convert them into LSB-first order before use on
//  Intel processor based computers.

typedef struct
  {
       unsigned long flag;   // some kind of flag ?!
       unsigned long offset; // strange, actualy resources are located
       unsigned long length; // at actualoffset=offset+3 from the beginig
  } FalloutDATresindex;  // of file

//  Follout uses non-constant entry length, depending on name length
//  FalloutDATentry loading order:
//   1. Read one first byte of the entry into namelength.
//   2. If you need to process resource name allocate namlength+1 bytes
//      of memory and put pointer you got into name.
//   3. Read next namelength bytes of file into name array and set
//      name[namelength] = '\0'.
//   4. Read sizeof(FalloutDATresindex) bytes from current pos. into index.
//   4.1. Convert offset, length and flags to Intel byte order if needed.
//   5. Now structure is filled corectly. Voila!

typedef struct
  {
       char namelength;          // length of the resource name in bytes
       char far *name;           // here you should put pointer to name string
       FalloutDATresindex index; // structure containig offset, length and flags
  } FalloutDATentry;


-----------------------------------------------------------------------


// Note: name field has variable length, so it is NOT a correct C definition

typedef struct
{
 unsigned long namelength;
 unsigned char name[namelength];
 unsigned char flags[5];
 unsigned long length;
 unsigned long offset;
} Fallout2DATentry;

typdef struct
{
 unsigned long offset;      // dir starts at position=filelength-offset-4l
 unsigned long filelength;  // used as signature, methinks
} Fallout2DATsuffix;



-----
/// What'ya be sain'? Vault 100+? We need nothing o'that!

Отправлено: 14:56 - 22 Янв., 2005
Tim
Пользователь

Откуда: Санкт-Петербург
Регистрация: Май 2003

Всего: 265 сообщений

Я Серафу(тот кто патч неоф. ваяет) кинул дат2... теперь ссылка на Тимх у него на сайте красуется...  

-----
Ядерному взрыву - да! да! да!
Солнечному миру - нет! нет! нет!

Отправлено: 21:21 - 22 Янв., 2005
Alchemist
Модератор

Откуда: Арзамас-17
Регистрация: Дек. 2004

Всего: 298 сообщений

Обновлённая версия утилиты уже выложена, но почему-то об этом не упомянуто. Непорядок.

-----
/// What'ya be sain'? Vault 100+? We need nothing o'that!

Отправлено: 20:06 - 23 Янв., 2005
AO
Пользователь

Откуда: Белгород
Регистрация: Апр. 2003

Всего: 8 сообщений

Anchorite, программа просто чудо, огромное спасибо!

Единственный заменченый глюк следующий: если войти через фар в файле critter.dat в каталог с frm-ками (т.е. в critter.dat\art\critters\) (не заходя до этого в другие dat-файлы) фар вылетает, и при этом пишет следующее:

                Внутренняя ошибка
            Исключительная ситуация:
"Попытка чтения из недоступного адреса 0x1B81254"
      Адрес исключения - 0x482AA4, модуль:
          D:\Program Files\Far\Far.exe
          FAR Manager завершит работу!

Если же до critter.dat зайти, например, в master.dat, то глюка не будет.

При работе через командную строку с файлом critter.dat глюков не замечено.

Отправлено: 21:50 - 24 Янв., 2005
Alchemist
Модератор

Откуда: Арзамас-17
Регистрация: Дек. 2004

Всего: 298 сообщений

Замечу, что на FAR v1.65 ничего подобного не происходит. Это опять глюки нового MultiArc, а вовсе не утилиты.

-----
/// What'ya be sain'? Vault 100+? We need nothing o'that!

Отправлено: 2:10 - 25 Янв., 2005
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 ] Все собщения


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com