PDA

Просмотр полной версии : fifaFS - составляем русский FAQ + книга жалоб и предложений


вегуд
23.09.2009, 00:10
Сижу в ожидании вопросов, предложений и угроз :)

По совету Pop'а начну писать доку на русском. Прямо тут.

Что такое fifafs, для кого и для чего оно?
Это утилита для корректной работы с "файловой системой фифы", которая находится в каталоге data и состоит из файлов zdata_xx.big, zdata_xx.bh и fifa.fat. А также для работы с простыми .big файлами. Под "работой" подразумевается добавление, замена, извлечение и удаление файлов из .big-ов.
Изначально fifafs создавался для установки РПЛ, поэтому его основное предназначение - это добавление и замена большого количества файлов в zdata_xx.big. fifafs оптимизирован именно для этого и справляется с этим очень быстро.
Для fifafs можно написать скрипт с последовательностью команд, что дает возможность выполнять какие-то нетривиальные задачи.
Соответственно, основная сфера применения - это установка патчей и использование в других программах, которые что-то меняют в фифе. Со временем fifafs оброс дополнительным функционалом, поэтому его можно использовать в каких-то повседневных патчмейкерских нуждах.
fifafs не имеет графического интерфейса, это консольная программа. Это значит, что нет никакого окошечка, где надо тыкать мышкой. Это делает возможным использование fifafs для автоматизации рутинных задач с помощью написания скриптов либо .bat файлов. Например, если вы трудитесь над некими файлами и вам регулярно надо вставлять их в фифу и проверять как они работают, можно 1 раз написать скрипт и потом запускать его, вместо того, чтобы каждый раз открывать File Master, искать и заменять эти файлы.

Чем fifafs не является и чего не умеет?
fifafs не делает футболки, бортики, лица, телеканалы и проч. Не конвертирует форматы и не работает с графикой, звуком, видео и т.п.
Все это вам предстоит сделать самостоятельно, а fifafs может помочь лишь безболезненно установить ваше добро в игру.

Что вообще такое "файловая система фифы" и как fifafs с ней работает
"Файловая система фифы" в дальнейшем - ФС для краткости.
В фифе есть куча файлов, скажем, около 20 тысяч файлов - это всякие лица, футболки и прочее. Они упакованы в последовательно нумерованные zdata_01.big, zdata_02.big, zdata_03.big и т.д. В каждом таком zdata_xx.big по 500 файлов. Это сделано, чтобы 20 тысяч файлов просто так не валялись в каталоге и не создавали проблем :). Чтобы фифе знать, в каком из zdata_xx.big находится нужный ей конкретный файл, существует fifa.fat, где эта информация хранится.
Когда вы указываете fifafs каталог, где находится подобная структура (fifa.fat + zdata_xx), он понимает, что имеет дело с ФС. В этом случае, он работает со всеми 20 тысячами файлов. Если вы попросите заменить некий файл в ФС, fifafs сам найдет, в каком zdata_xx этот файл лежит, заменит его и обновит информацию в fifa.fat.
В этом основное отличие от других утилит, которые просто позволяют поковыряться в одном из zdata_xx.big, а потом запустить процедуру обновления fifa.fat.

Команды для запуска из консоли
В квадратных скобках ([-c]) указан текст, который можно опустить.
"fifadatadir" - это каталог ФС, где лежат файлы zdata_xx.big и fifa.fat.
"file.fsh" - это некий файл для примера, не обязательно fsh.

Запуск скрипта script.txt:
fifaFS.exe script.txt

Добавление файла в ФС (если файл уже есть, будет ошибка):
fifaFS.exe -a[:N] fifadatadir file.fsh [-c]
По умолчанию fifafs добавляет файл в последний из zdata_xx.big. Если в последнем zdata_xx.big становится более 500 файлов, fifafs создает следующий zdata_xx.big и добавляет туда. Однако, иногда фифа не видит файлы, добавленные "в конец". Поэтому можно принудительно указать, в какой zdata_xx.big производить добавление. ":N" - это номер в zdata_N.big.
Например,
fifaFS.exe -a:1 fifadatadir file.fsh
добавит file.fsh в zdata_01.big.

Замена файла в ФС (если такого файла нет, будет ошибка):
fifaFS.exe -r fifadatadir file.fsh [-c]

Добавление или замена файла в ФС:
fifaFS.exe -ar[:N] fifadatadir file.fsh [-c]
Если файла нет - он будет добавлен, если есть, то заменен. ":N" действует также как при добавлении файла.

Вытаскивание файла из ФС:
fifaFS.exe -e fifadatadir infile.fsh outfile.fsh
fifafs поищет infile.fsh в ФС, если он там есть, он его вытащит и запишет в файл с именем outfile.fsh

Удаление файла из ФС:
fifaFS.exe -del fifadatadir file.fsh

Обновить fifa.fat и zdata_xx.bh:
fifaFS.exe -fix fifadatadir
Эта команда обновляет fifa.fat и приводит его в соответствие с содержимым файлов zdata_xx.big.
Если вы поковырялись в одном из zdata_xx.big, какой-либо утилитой, то fifa.fat следует обновить.

Создать ФС:
fifaFS.exe -createfs d:\newfifafs\ d:\myfiles\*.*
Уже не помню, зачем эта функция понадобилась.
В каталоге d:\newfifafs будет создана структура ФС, куда будут запакованы все файлы из каталога d:\myfiles\
Разумеется, имена каталогов просто для примера даны, можете использовать любые.

Распаковать ФС:
fifaFS.exe -depackfs fifadatadir d:\myfiles\
Распакует все файлы из ФС и свалит в каталог d:\myfiles\

Получить список всех файлов ФС:
fifaFS.exe -l fifadatadir list.csv
в list.csv будет записан список файлов и еще кое-какая инфа. В формате CSV (в экселе можно открыть)

...


Использование файловых масок
...


Использование переменных
...


Скрипты
...


fsh-хэширование
...


Консольная и win-версия
...


config.xml
config.xml - XML-файл в котором можно задать некоторые настройки fifafs, такие как: игра по умолчанию, параметры прогресс-бара. Также через него можно добавлять новые переменные (которые могут читаться из реестра).
При запуске fifafs, первым делом загружается config.xml, находящийся в том же каталоге, что и fifafs.exe (если он там есть). Затем загружается config.xml из текущей папки (если есть). Значения из второго config.xml дополняют и перезаписывают значения первого.
Как это можно использовать? Например, если вы работаете с игрой, которая не является игрой по умолчанию (например, FIFA Manager 10), в каталог с fifafs.exe можно положить config.xml следующего содержания:

<?xml version="1.0" encoding="UTF-8"?>
<config>
<defaultgame>fm10</defaultgame>
</config>

Теперь при запуске не нужно каждый раз добавлять "-gametype=fm10".



Прогресс-бар
Выглядит как-то так:
http://fifasoccer.ru/i/pbar.gif
Прогресс-бар призван ответить на вопрос пользователя "а че сейчас происходит-то" при установке больших патчей. Сделан в виде отдельного модуля и находится в файле ffspbar.dll. Следовательно, чтобы прогресс-бар появился, первое условие - это наличие ffspbar.dll в каталоге с fifafs.exe.
Второе условие - его надо включить в config.xml (см. выше что это за файл). В архиве есть пример config.xml с настройками для прогресс-бара. Вот он:

<config>
<progressbar>
<visible>1</visible>
<title>FIFAFS Working...</title>
<sections>
<section>
<codename>parse</codename>
<part>5</part>
<text>Initalizing...</text>
</section>
<section>
<codename>mount</codename>
<part>5</part>
<text>Reading FIFA files...</text>
</section>
<section>
<codename>sort_tasks</codename>
<part>5</part>
<text>Prepairing tasks...</text>
</section>
<section>
<codename>load_files</codename>
<part>15</part>
<text>Loading files...</text>
</section>
<section>
<codename>fsh_hash</codename>
<part>20</part>
<text>Writing FSH hashes...</text>
</section>
<section>
<codename>compress</codename>
<part>20</part>
<text>Compressing files...</text>
</section>
<section>
<codename>big_work</codename>
<part>25</part>
<text>Importing files...</text>
</section>
<section>
<codename>create_fat</codename>
<part>5</part>
<text>Rebuilding fifa.fat &amp;&amp; .bh files...</text>
</section>
</sections>
</progressbar>
</config>

Разберем подробнее:
<visible>1</visible> - означает, что прогресс-бар нужно показывать. "0" - не показывать.
<title>FIFAFS Working...</title> - заголовок окна (он показывается на панели задач).
В тэге <sections> заключены настройки для каждого из этапов работы fifafs.
Всего таких этапов 8 штук: parse, mount, sort_tasks, load_files, fsh_hash, compress, big_work, create_fat.
Какие-то этапы проходят быстрее, какие-то медленнее. Для того, чтобы пользователь видел более-менее равномерно бегущий прогресс-бар, требуется дополнительная подстройка отображения этапов на прогресс-баре для каждого конкретного патча.

<section>
<codename>parse</codename>
<part>5</part>
<text>Initalizing...</text>
</section>

<codename>parse</codename> - ID этапа, менять его нельзя.
<part>5</part> - кол-во "места", отводящееся на этап на прогресс баре (в процентах). Чем больше этап занимает по времени, тем больше ему нужно прописать процентов. Сумма всех <part>...</part> должна составить в итоге 100.
<text>Initalizing...</text> - название этапа, выводится как подпись под прогресс баром.
Патчи все разные, поэтому одного "рецепта" на всех быть не может. Где-то этап fsh_hash вообще не нужен и ему можно смело поставить <part>0</part>. Какие-то патчи исправляют только обычные big-и и не трогают ФС. Тогда этапу create_fat ставится ноль. И т.д.
Да, кстати, XML должен быть валидным. Если fifafs вылетает, проверьте, что все тэги закрыты, а плохие символы экранированы.

Pop
23.09.2009, 18:07
Если будет переведена вся документация (обратно) на русский язык, то уже большая часть недовольных будет удовлетворена :-)
И еще. Дайте подумать.

jiij
23.09.2009, 19:39
Zdrastvuite , izvinite mojet etot vopros gde-to vstrechaetsia no ia vse ravno sproshu , kak menjat dizain formi v fifa , sponsora ,cveta , pod svoio usmotrenie

Virett
23.09.2009, 22:50
Насколько я понял програмку нужно запускать через командную строку, что я и сделал. А далее растерялся) приведите пожалуйста пример какой-нибудь операции с помощью этой программы (я имею ввиду ваши рассуждения о том как бы вы вставляли новую форму в игру или что-то подобное...)

balaban
24.09.2009, 00:13
Есть вопрос-как с помощью fifafs вставлять в игру звуковые файлы? С лицами и формами вроде понятно, но со звуком я так и не разобрался.Выложите пожалуйста пример скрипта для вставки файлов в audio.big и dat.rus.big. Конверчу вставленые аудио файлы саундмастером в hdr и dat,далее убиваю исходный пропатченый аудио биг, пытаюсь вставить той же прогой в свежий(иходный) аудио биг hdr и dat файлы-всё равно на некоторых моментах начинаются вылеты комментов.Заранее огромное спасибо, тому кто откликнется.

вегуд
24.09.2009, 01:37
Zdrastvuite , izvinite mojet etot vopros gde-to vstrechaetsia no ia vse ravno sproshu , kak menjat dizain formi v fifa , sponsora ,cveta , pod svoio usmotrenie

fifafs умеет только вставлять готовый материал в игру. Поэтому для начала, нужно изготовить или где-то взять файлы с формами, спонсорами и т.п. в формате FSH. Далее, файлы должны быть соответствующим образом названы. Например, файл с именем t75__0_0_5.fsh - содержит в себе домашнюю футболку Челси.
Только теперь дело доходит до fifafs.
Запускаете

fifafs.exe -ar $dir_fifa10demo$\data\ t75__0_0_5.fsh

и упомянутая футболка благополучно устанавливается в демку 10-ой фифы (подразумевается, что t75__0_0_5.fsh лежит в папке, откуда запускается приведенная команда).


Добавлено через 4 минуты
Насколько я понял програмку нужно запускать через командную строку, что я и сделал. А далее растерялся) приведите пожалуйста пример какой-нибудь операции с помощью этой программы (я имею ввиду ваши рассуждения о том как бы вы вставляли новую форму в игру или что-то подобное...)
Virett, рассуждения приведены чуть выше.
Запускать программу нужно обязательно с параметрами, иначе она не поймет, зачем ее запустили и тоже растеряется :)

Nuno
24.09.2009, 08:57
Реально ли в fifafs внести функции fshtool'a? Ведь исходники fshtool'a в свободном доступе

вегуд
24.09.2009, 10:47
Есть вопрос-как с помощью fifafs вставлять в игру звуковые файлы? С лицами и формами вроде понятно, но со звуком я так и не разобрался.Выложите пожалуйста пример скрипта для вставки файлов в audio.big и dat.rus.big. Конверчу вставленые аудио файлы саундмастером в hdr и dat,далее убиваю исходный пропатченый аудио биг, пытаюсь вставить той же прогой в свежий(иходный) аудио биг hdr и dat файлы-всё равно на некоторых моментах начинаются вылеты комментов.Заранее огромное спасибо, тому кто откликнется.

Вылеты могут происходить из-за кривизны вставляемых HDR и DAT. fifafs с этим помочь не сможет, к сожалению.

DAT лежат в dat_rus.big, а HDR в hdr_rus.big, который находится внутри audio.big.

Соответственно, чтобы вставить DAT в dat_rus.big скрипт такой:

mountbig $dir_fifa09$\data\audio\dat_rus.big, dat_rus
-ar *, *.dat, dat_rus

или из командной строки (вставит все DAT файлы в текущем каталоге)

fifafs.exe -ar $dir_fifa09$\data\audio\dat_rus.big *.dat


Теперь HDR. hdr_rus.big сначала нужно вынуть из audio.big:

fifafs.exe -e $dir_fifa09$\data\audio\audio.big hdr_rus.big .


Вставить туда HDR'ы и засунуть обратно

fifafs.exe -ar hdr_rus.big *.hdr
fifafs.exe -ar $dir_fifa09$\data\audio\audio.big hdr_rus.big



Добавлено через 2 минуты
Реально ли в fifafs внести функции fshtool'a? Ведь исходники fshtool'a в свободном доступе

Лучше сделать отдельную утилиту для этого. Все-таки функция fifafs - работа с "файловой системой фифы". Хотя, хм, fsh хэши он поправляет :)

SOKOLoff
25.09.2009, 22:58
вегуд, БОЛЬШОЕ спасибо тебе за эту твою работу. Особенно хочу отметить запись про вставку озвучек фамилий. Я еще не пробывал всунуть фамилии, но думаю, что будет все нормально. А то я пробовал и не получалось.

Cyxo
26.09.2009, 12:52
А вот если я хочу вставить несколько форм мне нужно будет прописовать в инсталл.тхт
-ar $dir_fifa09$\data\ t75__2_0_38.fsh | t75__1_0_38.fsh? Верно или я ошибаюсь?

вегуд
26.09.2009, 13:18
А вот если я хочу вставить несколько форм мне нужно будет прописовать в инсталл.тхт
-ar $dir_fifa09$\data\ t75__2_0_38.fsh | t75__1_0_38.fsh? Верно или я ошибаюсь?

Можно эти несколько форм сложить в один каталог, например, d:\kits, и в инсталл.тхт прописать:

gametype fifa09
mountfs $dir_fifa09$\data\
-ar *, d:\kits\*.*


или можно просто запустить fifafs с такими параметрами

fifafs.exe -ar $dir_fifa09$\data\ d:\kits\*.* -gametype=fifa09

Cyxo
26.09.2009, 14:30
Не много не допонял!
Эт создаю я например папку на раб столе... kits кидаю туда формы формата t75__0_0_38.fsh создаю инстал.тхт прописываю в нем
gametype fifa09
mountfs $dir_fifa09$\data\
-ar *, d:\kits\*.* сохраняю.
Дальше создаю еще раз инстал ток называю его i.bat(в ней прописываю fifaFS.exe install.txt) затем кидаю в эту же папку kits файл fifafs Запускаю i.bat но не чего не происходит. Всплывает только черный экран на 1 секунду и все... там написано что то но я не успеваю прочитать (((

Извеняюсь за столь длиный вопрос!

вегуд
26.09.2009, 15:20
Не много не допонял!
Эт создаю я например папку на раб столе... kits кидаю туда формы формата t75__0_0_38.fsh создаю инстал.тхт прописываю в нем
gametype fifa09
mountfs $dir_fifa09$\data\
-ar *, d:\kits\*.* сохраняю.
Дальше создаю еще раз инстал ток называю его i.bat(в ней прописываю fifaFS.exe install.txt) затем кидаю в эту же папку kits файл fifafs Запускаю i.bat но не чего не происходит. Всплывает только черный экран на 1 секунду и все... там написано что то но я не успеваю прочитать (((

Извеняюсь за столь длиный вопрос!

Каталог "d:\kits\" для примера был приведен.
надо указывать свою папку с футболками
однако, если i.bat лежит в том же каталоге, где и футболки, то полный путь указывать вообще не надо.
вот так:

gametype fifa09
mountfs $dir_fifa09$\data\
-ar *, *.fsh


*.fsh - значит все файлы с расширением fsh в текущем каталоге.

Cyxo
26.09.2009, 17:04
Каталог "d:\kits\" для примера был приведен.
надо указывать свою папку с футболками
однако, если i.bat лежит в том же каталоге, где и футболки, то полный путь указывать вообще не надо.
вот так:


*.fsh - значит все файлы с расширением fsh в текущем каталоге.

Спс большое Вроде получилось!


Добавлено через 1 минуту
Да а так же и с щитами можно сделать?

wl
26.09.2009, 21:02
Спс большое Вроде получилось!


Добавлено через 1 минуту
Да а так же и с щитами можно сделать?

да со всем чем угодно :)

SOKOLoff
26.09.2009, 21:19
вегуд, такой вопрос. Я хотел добавить форму Марселю (в zdata_4) и вот такое прописал:
fifafs.exe -ar:4 D:\Games\FIFA 10 Demo Repacked Edition\data\ t75__0_0_219.fsh
все лежит в одной папке. Но в 4 здату не добавляется
(у меня нету в пуске почему-то фифы 10, так что прописывал полный адрес

wl
26.09.2009, 21:47
вегуд, такой вопрос. Я хотел добавить форму Марселю (в zdata_4) и вот такое прописал:

fifafs.exe -ar:4 D:\Games\FIFA 10 Demo Repacked Edition\data\ t75__0_0_219.fsh

все лежит в одной папке. Но в 4 здату не добавляется
(у меня нету в пуске почему-то фифы 10, так что прописывал полный адрес

fifafs.exe -ar:4 "D:\Games\FIFA 10 Demo Repacked Edition\data\" t75__0_0_219.fsh

DARRIX
22.10.2009, 23:00
Программа просто великолепна, но у меня возникло 2 вопроса:
1. что нужно прописать в txt, чтобы отразить прогресс бар?
2. что нужно прописать в txt, чтобы отражался текст, например "Now install kits"?

С первым вопросом разобрался, на второй получается уже можно и не отвечать
Можете удалить это сообщение за ненадобностью!

Pop
06.11.2009, 18:22
Программа просто великолепна, но у меня возникло 2 вопроса:
1. что нужно прописать в txt, чтобы отразить прогресс бар?
2. что нужно прописать в txt, чтобы отражался текст, например "Now install kits"?

С первым вопросом разобрался, на второй получается уже можно и не отвечать
Можете удалить это сообщение за ненадобностью!
Разобрался сам - помоги разобраться другим :-)

Goal
08.11.2009, 19:58
А FIFA Manager 08 не поддерживается что ли ?

SOKOLoff
09.11.2009, 13:40
Goal, я не проверял, но тебе лучше взять FIFAfs для FIFA08

Goal
09.11.2009, 18:22
Ну вооще то для FIFA 08 конкретно нет, есть просто FIFAfs куда каждый год добавляли поддержку новых игр, поддержка старых оставалась. А вот поддержку FIFA Manager 08 добавить как я понимаю забыли.

Такой скрипт:

gametype fm08
mountfs $dir_fm08$\data\
-ar|32 *|c, pitch\*.*

не работает, пишет такой игры нет, а если зменить на 07 или 09 все работает. Только мне для 08 нужно.

вегуд
09.11.2009, 18:44
Ну вооще то для FIFA 08 конкретно нет, есть просто FIFAfs куда каждый год добавляли поддержку новых игр, поддержка старых оставалась. А вот поддержку FIFA Manager 08 добавить как я понимаю забыли.


Так и есть. Но это дело поправимое. Для этого нужен человек с 10-ю минутами свободного времени, свежим инсталлом FIFA Manager 08 на диске и моим номером в асе :-)

Goal
09.11.2009, 19:04
Я готов, только аси нету твоей. :)

вегуд
09.11.2009, 19:39
Разобрался сам - помоги разобраться другим :-)

Добавил в мануал про прогресс-бар.

4everchelsea
04.01.2010, 20:31
вегуд помоги

Надо вкинуть в игру много лиц (фифа.фат материца если через СМ10)
лица лежат в отдельных папках(дрогба фейс и т.д.) в о бщей папке (папка).

Напиши плиз как всё это импортировать в фифа, заранее Благодарен.

SLameN
25.04.2010, 13:12
С появлением прогресс-бара столкнулся с такой проблемой, когда был батник, чтобы удалить папку (где хранятся .fsh файлики) я в нем писал:

RD /S/Q temp (temp - папка где хранятся .fsh)

Теперь батник не нужен, т.к. есть прогресс-бар. Каким образом мне теперь удалить папку "temp"? Возможно нужно что-то написать в "config.xml", но вот только что, заранее благодарен ;)