Tools for editing script.bin file
version 2.0 by Dmitri
With script.bin editing it’s possible to add new cinematics into the game.
Decompiler: decompiles .bin file to .xml file
Compiler: compiles .xml file to .bin
Command-line options (all are optional):
-i <path> – input file or folder. When not specified – current folder is used
-o <path> – output file or folder. When not specified – current folder is used
-d – write decompressed file (works only when input file is compressed)
-c – compress compiled file
-oldFormat – this option is needed for old games, check the table below
-v (-version) – set the version of compiler/decompiler (default 2, can be set to 1)
Works with:
uint16 version (4)
uint16 numEntries (max = 256)
uint16 numStrings
uint16 padding (0)
–entries–
#for numEntries
uint16 entryNameIndex
uint16 entryIndex
uint16 entryType
uint16 entryVariation
uint16 entryNumChildSections // only first level childs
uint16 allChildSectionsSize ( = totalNumChilds * 12) // including all childs (childs of childs also)
–entry child sections–
#for entryNumChildSections
uint32 sectionType (0,1,10 – info, 100,102,103,104,108,110,111,113,114 – section containers)
#if sectionType = 0 (used only once in “Manager1” script entry)
uint16 sectionParam1 (0)
uint16 sectionParam2 (0)
uint16 sectionParam3 (1)
uint16 sectionParam4 (0)
#elseif sectionType = 1 (animation info)
uint16 sectionAnimNameIndex
uint16 sectionStartTime
uint16 sectionEndTime
uint16 sectionPriority
#elseif sectionType = 10 (camera info)
uint16 sectionParam1 (0,1)
uint16 sectionParam2 (6,20)
uint16 sectionParam3 (0,250)
uint16 sectionParam4 (0)
#else (sections container)
uint32 sectionPriority
uint32 sectionNumChildSections
#endif
#endfor
#endfor
–strings–
#for numStrings
string name (null-terminated)
#endfor
Section Types:
0 – Transition (fade in/out)
1 – Shot (animation info)
10 – TriggerEffect (audio, popups, crowd, scaling and some other effects), used only once in “Manager1” script entry
100+ – Chooser
100 – StraightOrder (simple sequence, type 0)
101 – RandomOrder (randomly shuffled sequence, not used, type 1)
102 – RandomChoice (collection with randomly selected animation, with priorities, type 2)
103 – StadiumChoice (stadium – selects the block with id of current stadium, type 4)
104 – StarChoice (goal celebration, type 5)
105 – DayNightChoice (rain weather check, not used, type 6)
106 – HomeAwayChoice (team side check, not used, type 7)
107 – ManOfMatchChoice (not used, type 8)
108 – MatchIntensityHomeChoice (choice based on match intensity for home team, type 10)
109 – MatchIntensityAwayChoice (choice based on match intensity for away team, type 11)
110 – MatchIntensityChoice (choice based on average match intensity, type 12)
111 – PlayerStanceChoice (choice based on player stance: 0 – stands up, 1 – lays down, type 13)
112 – RandomChoiceNoRepeat (same as RandomChoice but avoids picking the same shot twice, type 3)
113 – PlayerFootChoice (choise based on player’s preferred foot, type 9)
114 – ManagerChoise (randomly selected, but only if team controlled by human male manager, 50% probability, type 14)
Available sections in XML:
Script (root element)
ScriptEntry
Transition (fade in/out)
Shot (animation info)
Effect (audio, popups, crowd, scaling and some other effects)
Choosers:
StraightOrder (simple sequence)
RandomOrder (randomly shuffled sequence)
RandomChoice (collection with randomly selected animation)
StadiumChoice (selects depending on stadium id)
StarChoice (select depending on player id)
DayNightChoice (select depending on day/night)
HomeAwayChoice (select depending on home/away team)
ManOfMatchChoice
MatchIntensityHomeChoice (choice based on match intensity for home team)
MatchIntensityAwayChoice (choice based on match intensity for away team)
MatchIntensityChoice (choice based on average match intensity)
PlayerStanceChoice (choice based on player stance: 0 – stands up, 1 – lays down)
RandomChoiceNoRepeat (same as RandomChoice but avoids picking the same shot twice)
PlayerFootChoice (choise based on player’s preferred foot)
There are also few undocumented chooser types, they are written in such format:
Chooser X
Where X is a chooser ID.
Effect Types:
AUDIO (plays an audio file)
POPUP (displays a popup)
CROWD (crowd noise?)
SCALING (enables/disables scaling hack for fifa 07, make players fat or thin)
ACTION (related to substitutions)
SPECIAL
There are also few undocumented effect types, they are written in such format:
EFFECT_X
Where X is an effect ID.