|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Тут как-то за празднованиями Нового Года и Нового Взгляда было незаслуженно забыто замечательное обновление в разделе утилит: F2 DAT-files packer/unpacker от Anchorite (с исходниками). Прога, скажу вам, просто волшебная. Каждый, кто сталкивался с проблемой запаковки дат-файлов оценит её преимущества: она умеет сама сортировать файлы (!) и её легко подружить с плагином MultiArc для FAR, после чего работать с дат-файлами становится не сложнее, чем с любыми другими архивами. Короче... однозначный must have ;).
|
Отправлено: 9:18 - 18 Янв., 2005
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
>и её легко подружить с плагином MultiArc для FAR Вот это просто архиполезно. Заколебало внешние парзеры дописывать. Утянул и пошёл сращивать. (Отредактировал(а) Alchemist - 14:38 - 18 Янв., 2005)
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 14:37 - 18 Янв., 2005
|
|
Tim
Пользователь
Откуда: Санкт-Петербург Регистрация: Май 2003
Всего: 265 сообщений
|
Напишите плиз как его к Фару прикрутить...
----- Ядерному взрыву - да! да! да! Солнечному миру - нет! нет! нет!
|
Отправлено: 16:42 - 18 Янв., 2005
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Если у тебя есть плагин MultiArc, то находишь в его папке Custom.ini и добавляешь туда фрагмент Custom.ini.fragment из архива.
|
Отправлено: 16:44 - 18 Янв., 2005
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
Если FAR старый (как у меня), то нужно будет ещё заменить строчку [Fallout2-DAT] на [Type NN+1]. Где NN - номер в последней перед добавленным фрагментом секции определения типа. Попробовал, порадовала производительность. Однако надо что-то придумать, дабы не все файлы с расширением DAT обрабатывались, а только соответствующие формату. Иначе надолго затыкается, пытаясь разобрать директорию, которой нет. (Отредактировал(а) Alchemist - 17:30 - 18 Янв., 2005) Ага. Кажется понял. При некорректном формате входного файла DAT2 завершается аварийно, но код возврата даёт 0. Что интерпретируется MultiArc как успешное завершение операции, а дальше plugin пытается разобрать диагностическое сообщение в список файлов, на чём и глючит неслабо. (Отредактировал(а) Alchemist - 17:51 - 18 Янв., 2005) (Отредактировал(а) Alchemist - 17:53 - 18 Янв., 2005)
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 17:28 - 18 Янв., 2005
|
|
Tim
Пользователь
Откуда: Санкт-Петербург Регистрация: Май 2003
Всего: 265 сообщений
|
far 1.70 b5 Вырезал содержание из Custom.ini.fragment вставил в Custom.ini... Прогу положил в ...\Far\Plugins\dat2 И что дальше-то... как запаковывать/распаковывать... По F11 в меню его нет... Напишите плиз подробней, я с фаром дел раньше не имел...
----- Ядерному взрыву - да! да! да! Солнечному миру - нет! нет! нет!
|
Отправлено: 21:30 - 18 Янв., 2005
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
dat2.exe и её DLL'ки надо класть в одно из мест, куда указывает переменная PATH. Иначе не запустится. Работоспособность проверяется просто: наводишь курсор, скажем, на critter.dat и нажимаешь Ctrl-PgDwn. Должно появиться окошко считывания списка файлов, потом в панели откроется содержимое самого DAT'а. Дальше как с обычным архивом. Кстати, если ты работал с WC/TC, можешь попробовать качнуть plugin-wrapper и запуститься из под него. Но это я не проверял.
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 22:09 - 18 Янв., 2005
|
|
Tim
Пользователь
Откуда: Санкт-Петербург Регистрация: Май 2003
Всего: 265 сообщений
|
Цитата: dat2.exe и её DLL'ки надо класть в одно из мест, куда указывает переменная PATH. Иначе не запустится
А где путь посмотреть-то?
----- Ядерному взрыву - да! да! да! Солнечному миру - нет! нет! нет!
|
Отправлено: 23:01 - 18 Янв., 2005
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
В консоли PATH напиши и получишь полный список. Или во вклдках "Моего компьютера" найди кнопку "пременные окружения" (не помню точно как в русской винде будет).
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 5:21 - 19 Янв., 2005
|
|
Blender
Пользователь Регистрация: Янв. 2005
Всего: 3 сообщения
|
К Total Commander прикручивается тоже без проблем. Необходимо поставить плагин multiarc (сделанный по аналогии с плагином для Far) и установить этот addon http://thor.prohosting.com/blender1/files/fallout/tc_addon_dat2.zip fallout2.addon можно средствами multiarc внести в настройки или можно добавить вручную содержимое файла в multiarc.ini. (Отредактировал(а) Blender - 13:54 - 19 Янв., 2005)
|
Отправлено: 13:53 - 19 Янв., 2005
|
|
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
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Сходи на http://farmanager.com/updates.asp Там у них есть обновленная версия MultiArc У меня она стоит и все нормально работает.
|
Отправлено: 6:17 - 25 Янв., 2005
|
|
AO
Пользователь
Откуда: Белгород Регистрация: Апр. 2003
Всего: 8 сообщений
|
Да, MultiArc глючил. Спасибо за помощь
|
Отправлено: 2:58 - 26 Янв., 2005
|
|
Raven
Пользователь
Откуда: Владик Регистрация: Февр. 2004
Всего: 408 сообщений
|
А первофоловские dat-ы не парсятся? У меня под рукой нет, проверить не на чем. Если не парсятся: планируется ли доделка, Анхорит?
|
Отправлено: 4:52 - 8 Марта, 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Пока нет. В данный момент я работаю над другим проектом.
|
Отправлено: 9:59 - 8 Марта, 2005
|
|
|