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


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

Переход по темам
<< Пред. След. >>
Единственная страница этой темы

 
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
 

Переход по темам
<< Пред. След. >>
Единственная страница этой темы


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