|
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
|
|
|