ETM – ETS – ITM – ITA MODDING
ETM – ETS – ITM – ITA MODDING
Tools by Son of
Tools by Son of
Persia
Persia
Tutorial
Tutorial
by
by
Mr.
Mr.
Curious
Curious
201
201
Intro!u"tion
Intro!u"tion
When modding RE4UHD we will be dealing with many different file types that are all packed inside the UDAS When modding RE4UHD we will be dealing with many different file types that are all packed inside the UDAS files of the different rooms that are located in the ST folders of the !"#4 directory$ Essentially UDAS files are files of the different rooms that are located in the ST folders of the !"#4 directory$ Essentially UDAS files are container files that ha%e lots of other files inside them$ &any of these files inside the UDAS files are also
container files that ha%e lots of other files inside them$ &any of these files inside the UDAS files are also
container files that ha%e more files inside them$ Son of 'ersia has created tools to open most of these files for container files that ha%e more files inside them$ Son of 'ersia has created tools to open most of these files for (se to eamine the contents of$
(se to eamine the contents of$
The most important file we deal with when stage modding RE4UHD is the UDAS file mentioned abo%e$ This The most important file we deal with when stage modding RE4UHD is the UDAS file mentioned abo%e$ This file (s(ally comes with an
file (s(ally comes with an #$S#$S etension which we can open (sing the etension which we can open (sing the %ui"&'MS Tools%ui"&'MS Tools$ #nce we ha%e$ #nce we ha%e (npacked the
(npacked the #$S#$S o(r o(r (DAS(DAS files are ready to work with$ Using the files are ready to work with$ Using the (DAS tools(DAS tools by Son of 'ersia to etractby Son of 'ersia to etract the UDAS archi%e shows (s a %ariety of files)
the UDAS archi%e shows (s a %ariety of files)
Des"ri)tion of Tutorial *oals
Des"ri)tion of Tutorial *oals
"n this t(torial we will be dealing with the placement of items *keys+ amm(nition+ weapons+ treas(res etc, "n this t(torial we will be dealing with the placement of items *keys+ amm(nition+ weapons+ treas(res etc, thro(gho(t the game+ and the models they may be placed in *breakable - mo%able items,$ .or this t(torial we thro(gho(t the game+ and the models they may be placed in *breakable - mo%able items,$ .or this t(torial we will be dealing with
will be dealing with + ,ain file ty)es-+ ,ain file ty)es- as well as some other types associated with these 4 main types) as well as some other types associated with these 4 main types) ITM
ITM / &odels of items like treas(res+ weapons - amm(nition$ / &odels of items like treas(res+ weapons - amm(nition$ ETM
ETM / &odels of breakable *and mo%able, ob0ects like barrels+ %ases+ boes+ ladders - doors$ / &odels of breakable *and mo%able, ob0ects like barrels+ %ases+ boes+ ladders - doors$ ITA
ITA / .ile responsible for coordinates "T& ob0ects / .ile responsible for coordinates "T& ob0ects ETS
ETS / .ile responsible for coordinates ET& ob0ects *and some lights, / .ile responsible for coordinates ET& ob0ects *and some lights,
$ile Ty)es E)laine!
$ile Ty)es E)laine!
An inte
files$ files$ ITM
ITM - - ETMETM files are containers that are archi%es of model files and tet(res palettes$ files are containers that are archi%es of model files and tet(res palettes$ ITA
ITA - - ETS ETS files are data sets that control the coordinates of these models$files are data sets that control the coordinates of these models$ ITM
ITM / &odels - Tet(re 'alettes 1 / &odels - Tet(re 'alettes 1 ITAITA / 2ocations of the "T& models / 2ocations of the "T& models ETM
ETM / &odels - Tet(re 'alettes 1 / &odels - Tet(re 'alettes 1 ETSETS / 2ocations of the ET& models / 2ocations of the ET& models
ETM
ETM
ETM
ETM items are mostly those that are breakable or mo%able+ s(ch as ladders+ windows+ barrels+ boes etc$$$ items are mostly those that are breakable or mo%able+ s(ch as ladders+ windows+ barrels+ boes etc$$$ almost anything that can be broken or mo%ed by the hand of the player$ There are other ob0ects that the almost anything that can be broken or mo%ed by the hand of the player$ There are other ob0ects that the player interacts with that are not in the
player interacts with that are not in the ETMETM file file tho(gh+ like for tho(gh+ like for eample+ some lockers eample+ some lockers - cabinets+ w- cabinets+ whichhich open with the help of the
open with the help of the AE/AE/ file$ Simply p(t+ file$ Simply p(t+ ETMETM files are what can be destroyed by the 3hand3 of the files are what can be destroyed by the 3hand3 of the player and what
player and what can be mo%ed) rates+ can be mo%ed) rates+ barrels+ eplosi%e barrels+ dr(m cans+ barrels+ eplosi%e barrels+ dr(m cans+ ladders+ window glass+ doors+ladders+ window glass+ doors+ chests+ bl(e coins+ lamps bird5s nest etc$
chests+ bl(e coins+ lamps bird5s nest etc$ As ep
As eplained ablained abo%e+ somo%e+ some files in e files in the UDAthe UDAS areS are ar"ial filesar"ial files+ and the+ and the ETMETM is one of them$ "nside the ET& is one of them$ "nside the ET& archi%e are se%eral types of files)
archi%e are se%eral types of files) 'IN
'IN / model files/ model files TP#
TP# / Tet(re 'alette files / Tet(re 'alette files E$$
E$$ / Effect files / Effect files $C/
$C/ / Animation files / Animation files SE%
SE% / Se6(ence files / Se6(ence files All of th
All of these fileese files work ts work together together to make Eo make ET& models T& models different different from stagfrom stage models$ e models$ These fThese files allow iles allow for ET&for ET& models to be broken+ mo%ed+ and altered or transformed$
models to be broken+ mo%ed+ and altered or transformed$
ETS
ETS
Essentially+ the
Essentially+ the ETS fileETS file is what go%erns whereis what go%erns where ETMETM items are placed in the game$ Some ET& items are items are placed in the game$ Some ET& items are linked to lights+ which can be placed aro(nd a room (sing the
linked to lights+ which can be placed aro(nd a room (sing the ETSETS file+ b(t this will be eplained in another file+ b(t this will be eplained in another t(torial on (sing the
t(torial on (sing the #IT Tool.#IT Tool. Remember+ the relationship of
Remember+ the relationship of ETMETM to to ETSETS is almost eactly that of the relationship of is almost eactly that of the relationship of ITMITM to the to the ITA ITA)) "T& / &odels - Tet(re 'alettes 1 "TA / 2ocations of "T& models
"T& / &odels - Tet(re 'alettes 1 "TA / 2ocations of "T& models ET& / &odels - Tet(re 'alettes 1 ETS / 2ocations of ET& models ET& / &odels - Tet(re 'alettes 1 ETS / 2ocations of ET& models
ITM
ITM
As ep
As eplained ablained abo%e+ somo%e+ some files in e files in the UDAthe UDAS are arcS are archi%al filehi%al files+ and ths+ and thee ITMITM is one of them$ "nside the is one of them$ "nside the ITMITM archi%es are the !"7 models - T'2 files *tet(re palettes, for the items go%erned by the
archi%es are the !"7 models - T'2 files *tet(re palettes, for the items go%erned by the ITA fileITA file+ howe%er this+ howe%er this does not mean that the data of all items are contained$ #nly the item data which is decided to be (sed in the does not mean that the data of all items are contained$ #nly the item data which is decided to be (sed in the room in ad%ance is prepared$
room in ad%ance is prepared$
ITA
ITA
ITA
ITA files manage the coordinates+ amo(nts+ and other %al(es of items can be collected by the player in game$files manage the coordinates+ amo(nts+ and other %al(es of items can be collected by the player in game$ &ost items that are collectable are handled by the
&ost items that are collectable are handled by the ITAITA with the eception of a few items that are handled by with the eception of a few items that are handled by the
the AE/AE/ file$ There is a relationship between file$ There is a relationship between ITAITA other files+ s(ch as other files+ s(ch as ITM- ETM-ITM- ETM- and and ETSETS that will be that will be eplained in this t(torial$ The first thing to (nderstand is what the
eplained in this t(torial$ The first thing to (nderstand is what the ITAITA is responsible for) is responsible for) 8 placement of "T& ob0ects *treas(res+ amm(nition+ weapons+ g(ides+
8 placement of "T& ob0ects *treas(res+ amm(nition+ weapons+ g(ides+ 8 the amo(nt of these "T& ob0ects
8 the amo(nt of these "T& ob0ects 8 the coordinates of these "T& ob0ects 8 the coordinates of these "T& ob0ects
8 the a(ra that s(rro(nds these "T& ob0ects 8 the a(ra that s(rro(nds these "T& ob0ects
7ow that we ha%e defined the file types we are ready to start working with them$ !elow is a short inde of the 7ow that we ha%e defined the file types we are ready to start working with them$ !elow is a short inde of the t(torial chapters)
t(torial chapters) ETM
ETM
1 3or&in* 4it te ETM file 1 3or&in* 4it te ETM file 2 Pre)arin* Tetures
2 Pre)arin* Tetures 5 About ETM E$$ files 5 About ETM E$$ files + E!itin* te ID6 file + E!itin* te ID6 file 7 8e)a"&in* te ETM 7 8e)a"&in* te ETM ETS
ETS
9 3or&in* 4it te ETS file 9 3or&in* 4it te ETS file
: Des"ri)tion of ETS offset alues : Des"ri)tion of ETS offset alues 8e)a"&in* te ETS file
8e)a"&in* te ETS file ITA
ITA
; Intro!u"tion to te ITA file ; Intro!u"tion to te ITA file 10 Definition of ITA alues 10 Definition of ITA alues 11 3or&in* 4it te ITA file 11 3or&in* 4it te ITA file
12 3or&in* 4it te ITA < ETS file to*eter
12 3or&in* 4it te ITA < ETS file to*eter *p(tting items into the ET& models,*p(tting items into the ET& models, ITM
ITM
15 3or&in* 4it te ITM file 15 3or&in* 4it te ITM file
1+ E!itin* < re)a"&in* te ITM ,o!el 1+ E!itin* < re)a"&in* te ITM ,o!el MISC
MISC
17 Creatin* "usto, ITM < ETM ,o!els 17 Creatin* "usto, ITM < ETM ,o!els 19 A note on te =Master= teture file 19 A note on te =Master= teture file 1: ITEM #IST
1: ITEM #IST
1 3or&in* 4it te ETM file
1 3or&in* 4it te ETM file
Working with the ET& is fairly straight forward+ and (ses the same principles o(tlined in Son of 'ersia5s Working with the ET& is fairly straight forward+ and (ses the same principles o(tlined in Son of 'ersia5s &odel "mporter1Eporter toolset$
&odel "mporter1Eporter toolset$
http)11residente%ilmodding$boards$net1thread194:;1re48model8importer8eporter8toolset<page/=
http)11residente%ilmodding$boards$net1thread194:;1re48model8importer8eporter8toolset<page/=
This t(torial sho(ld be read - (nderstood before proceeding with this t(torial as it o(tlines the basic This t(torial sho(ld be read - (nderstood before proceeding with this t(torial as it o(tlines the basic
f(ndamentals of working with !"71T'2 files which are the b(ilding blocks of all RE4UHD models$ Essentially f(ndamentals of working with !"71T'2 files which are the b(ilding blocks of all RE4UHD models$ Essentially we are going to be (npacking - repacking !"71T'2 files after they are modified (sing the ET& tools+ so we are going to be (npacking - repacking !"71T'2 files after they are modified (sing the ET& tools+ so knowledge of this proced(re is needed beforehand$
knowledge of this proced(re is needed beforehand$
Remember+ we only need to edit the ET& file if we are going to) Remember+ we only need to edit the ET& file if we are going to) 8create a new ET& model
8create a new ET& model 8modify an eisting model 8modify an eisting model
8copy an eisting model to another ET& file *in another room, 8copy an eisting model to another ET& file *in another room, 8remo%e an eisting model
8remo%e an eisting model
Ea,)le of ,oin* an ETM ,o!el to
Ea,)le of ,oin* an ETM ,o!el to anoter roo,
anoter roo,
"n this eample we are going to (se the
"n this eample we are going to (se the 8E+(>D?ETM?Tool.ee8E+(>D?ETM?Tool.ee along with the along with the ETM?Etra"t.batETM?Etra"t.bat filefile toto etract the
etract the r=>= ET& file *r=>= ET& file * r=>=?=>$ET& ,r=>=?=>$ET& ,+ find the barrel !"7 model+ T'2 file+ and E.. file+ and then copy+ find the barrel !"7 model+ T'2 file+ and E.. file+ and then copy them o%er to another room ET& file$$ *in this eample room
them o%er to another room ET& file$$ *in this eample room r22"?10r22"?10 ET& file,$ ET& file,$ To do this+ we first na%igate to an etracted R=>= UDAS folder+ then copy
To do this+ we first na%igate to an etracted R=>= UDAS folder+ then copy r=>=?=>$ET&r=>=?=>$ET& and etract itsand etract its contents into a working directory inside the ET& Tool folder$ This folder sho(ld contain
8E+(>D?ETM?Tool.ee
8E+(>D?ETM?Tool.ee and the and the ETM?Etra"t.batETM?Etra"t.bat filefile.. lick on thelick on the ETM?Etra"t.bat ETM?Etra"t.bat and yo( will see thatand yo( will see that a new $
a new $i!i! file file ANDAND a new folder ha%e been created+ in this case the new folder is a new folder ha%e been created+ in this case the new folder is r101?10r101?10$This new folder $This new folder contains all the !"7+ T'2+ E..+ SE@+ - . that we will be working with$
contains all the !"7+ T'2+ E..+ SE@+ - . that we will be working with$
We also do this eact same proced(re as abo%e for the destination room *the new room we want to p(t the We also do this eact same proced(re as abo%e for the destination room *the new room we want to p(t the ET& models into,$ So in this eample we get
ET& models into,$ So in this eample we get r99c?=>$ET&r99c?=>$ET& from an etracted r99c UDAS .ile+ and etract its from an etracted r99c UDAS .ile+ and etract its contents into a working directory inside the ET& Tool folder$ B(st like the process abo%e+ this will create a contents into a working directory inside the ET& Tool folder$ B(st like the process abo%e+ this will create a new folder+ b(t this time its called
new folder+ b(t this time its called r99c?=>r99c?=>$ We will lea%e this directory alone for the time being (ntil we are$ We will lea%e this directory alone for the time being (ntil we are ready to place o(r new files into it and then repack its contents$
ready to place o(r new files into it and then repack its contents$ We now na%igate inside the
We now na%igate inside the r101?10r101?10 folder to obser%e all the ET& files that were etracted)folder to obser%e all the ET& files that were etracted) $ileCount @ 7 $ileCount @ 7 $ile?0?11 @ r101?10et0000.bin $ile?0?11 @ r101?10et0000.bin $ile?1?11 @ r101?10et0000.t)l $ile?1?11 @ r101?10et0000.t)l $ile?2?11 @ r101?10et0001.bin $ile?2?11 @ r101?10et0001.bin $ile?5?; @ r101?10et00.eff $ile?5?; @ r101?10et00.eff $ile?+?12 @ r101?10)l00759.f" $ile?+?12 @ r101?10)l00759.f" $ile?7?12 @ r101?10)l0075:.f" $ile?7?12 @ r101?10)l0075:.f" $ile?9?12 @ r101?10)l0075.f" $ile?9?12 @ r101?10)l0075.f" $ile?:?11 @ r101?10et0100.bin $ile?:?11 @ r101?10et0100.bin $ile??; @ r101?10et01.eff $ile??; @ r101?10et01.eff $ile?;?11 @ r101?10et0200.bin $ile?;?11 @ r101?10et0200.bin $ile?10?; @ r101?10et02.eff $ile?10?; @ r101?10et02.eff $ile?11?11 @ r101?10et0500.bin $ile?11?11 @ r101?10et0500.bin $ile?12?; @ r101?10et05.eff $ile?12?; @ r101?10et05.eff $ile?15?10 @ r101?10ob,2b.eff $ile?15?10 @ r101?10ob,2b.eff $ile?1+?11 @ r101?10et0+00.bin $ile?1+?11 @ r101?10et0+00.bin $ile?17?; @ r101?10et0+.eff $ile?17?; @ r101?10et0+.eff $ile?19?11 @ r101?10et0700.bin $ile?19?11 @ r101?10et0700.bin $ile?1:?; @ r101?10et07.eff $ile?1:?; @ r101?10et07.eff $ile?1?11 @ r101?10et0900.bin $ile?1?11 @ r101?10et0900.bin $ile?1;?11 @ r101?10et0900.t)l $ile?1;?11 @ r101?10et0900.t)l $ile?20?; @ r101?10et09.eff $ile?20?; @ r101?10et09.eff $ile?21?12 @ r101?10)l0001:.f" $ile?21?12 @ r101?10)l0001:.f" $ile?22?12 @ r101?10)l0001.f" $ile?22?12 @ r101?10)l0001.f" $ile?25?12 @ r101?10)l0001;.f" $ile?25?12 @ r101?10)l0001;.f" $ile?2+?12 @ r101?10)l00020.f" $ile?2+?12 @ r101?10)l00020.f" $ile?27?12 @ r101?10)l00021.f" $ile?27?12 @ r101?10)l00021.f" $ile?29?12 @ r101?10et09000.f" $ile?29?12 @ r101?10et09000.f" $ile?2:?12 @ r101?10)l0002+.f" $ile?2:?12 @ r101?10)l0002+.f" $ile?2?12 @ r101?10et09001.f" $ile?2?12 @ r101?10et09001.f" $ile?2;?12 @ r101?10et09002.f" $ile?2;?12 @ r101?10et09002.f" $ile?50?12 @ r101?10)l00027.f" $ile?50?12 @ r101?10)l00027.f" $ile?51?12 @ r101?10et09005.f" $ile?51?12 @ r101?10et09005.f" $ile?52?15 @ r101?10et090000.seB $ile?52?15 @ r101?10et090000.seB $ile?55?15 @ r101?10et090010.seB $ile?55?15 @ r101?10et090010.seB ... an! on ... ... an! on ...
So now what we need to do is locate - identify which !"7 files are the models we wish to (se$ "n this So now what we need to do is locate - identify which !"7 files are the models we wish to (se$ "n this eample we are going to look for the barrel model$ Since we cannot pre%iew !"7 files+ we m(st etract eample we are going to look for the barrel model$ Since we cannot pre%iew !"7 files+ we m(st etract
them first to obser%e which model files they are$ To do this we ha%e to (se the them first to obser%e which model files they are$ To do this we ha%e to (se the 8E+(>D?'IN?Tool?201.ee
8E+(>D?'IN?Tool?201.ee$ The net step is to simply click on the$ The net step is to simply click on the 'IN?Etra"t.bat'IN?Etra"t.bat file to etract A22 file to etract A22 of the bin files$
of the bin files$
#nce this list is complete we will now see that a whole b(nch of new files ha%e been created in the same #nce this list is complete we will now see that a whole b(nch of new files ha%e been created in the same directory+ incl(ding #!B+ S&D and &T2 files$ We can now pre%iew the model files *the
directory+ incl(ding #!B+ S&D and &T2 files$ We can now pre%iew the model files *the SMD SMD oror O'O' files,$ files,$ A good
A good tool to htool to ha%e a 6(a%e a 6(ick look ick look at #!B at #!B - S&D fi- S&D files is 7oeles is 7oesis whsis whic can beic can befo(nd hefo(nd here)re) https)11richwhiteho(se$com1inde$php<content/inc?pro0ects$php
https)11richwhiteho(se$com1inde$php<content/inc?pro0ects$php
#bser%ing the files in this folder we can identify that
#bser%ing the files in this folder we can identify that et1100.binet1100.bin is the model (sed for the breakable barrelis the model (sed for the breakable barrel (sed in r=>=$ This means that we will also (se the
(sed in r=>=$ This means that we will also (se the et11.eff et11.eff later on$later on$ To mo%e this
To mo%e this et1100.binet1100.bin model file to another room is relati%ely easy+ b(t first we ha%e to import themodel file to another room is relati%ely easy+ b(t first we ha%e to import the SMDSMD or
or O'O' file into a CD editing software program to apply new tet(res to it$ "f we simply (se the defa(ltfile into a CD editing software program to apply new tet(res to it$ "f we simply (se the defa(lt tet(re locations for this model+ the game will not load properly and crash$
tet(re locations for this model+ the game will not load properly and crash$
2 Pre)arin* Tetures
2 Pre)arin* Tetures
!efore editing any of the model files in CD software we need to make some preparations with the tet(res$ !efore editing any of the model files in CD software we need to make some preparations with the tet(res$ When dealing with
When dealing with ETMETM - - ITMITM models+ we ha%e to copy the tet(re for the new model file into o(r working models+ we ha%e to copy the tet(re for the new model file into o(r working .)a"&
.)a"& file$ We can not simply lea%e the old T'2 data to call on the original pack file beca(se RE4UHDfile$ We can not simply lea%e the old T'2 data to call on the original pack file beca(se RE4UHD only loads on
only loads on ONE 8OOM PAC $I#E INTO MEMO8 AT ONE 8OOM PAC $I#E INTO MEMO8 AT TIMETIME+ so the new T'2 m(st reference the+ so the new T'2 m(st reference the pack file that is loaded at that time+ which is whate%er room yo( are working on$ The r(le is+ if the ET& pack file that is loaded at that time+ which is whate%er room yo( are working on$ The r(le is+ if the ET& model yo( are working on is
model yo( are working on is r=>9?=>$ET&r=>9?=>$ET& yo( m(st place yo(r tet(re into the pack file that is loadedyo( m(st place yo(r tet(re into the pack file that is loaded with r=>9 *in this case+
with r=>9 *in this case+ ++000102.)a"&F.++000102.)a"&F. "f the ET& file yo( are working on is"f the ET& file yo( are working on is r=>?=>+r=>?=>+ the tet(res m(stthe tet(res m(st be placed in
be placed in ++00010;.)a"&++00010;.)a"& and so on$$ and so on$$
So in this eample+ if we are mo%ing any ET& model files from room
So in this eample+ if we are mo%ing any ET& model files from room r101r101 into into r22"r22"+ we will need the+ we will need the tet(res for the new ET& model to be placed - repacked into the
tet(res for the new ET& model to be placed - repacked into the r22"r22" pack file+ which is pack file+ which is ++00022".)a"&++00022".)a"&$$ The original ET& model tet(res from r=>= can be located in it5s own tet(re pack file which is
The original ET& model tet(res from r=>= can be located in it5s own tet(re pack file which is ++000101.)a"&
++000101.)a"&$ We need to copy the tet(re of the original ET& model to o(r own working directory$ We need to copy the tet(re of the original ET& model to o(r own working directory *r99c,+ rename it in proper n(merical order+ then repack the
*r99c,+ rename it in proper n(merical order+ then repack the ++00022".)a"&++00022".)a"& file (sing thefile (sing the y2 tooly2 tool+ and+ and then replace the
then replace the .)a"&.)a"& file in thefile in the I,a*ePa"&>DHI,a*ePa"&I,a*ePa"&>DHI,a*ePa"& directory in the main !"#4 game directory$directory in the main !"#4 game directory$ &ake s(re that the tet(re yo( ha%e added to the new pack file is in se6(ential order and named properly &ake s(re that the tet(re yo( ha%e added to the new pack file is in se6(ential order and named properly or the F9 tool will not work+ and the game will crash$ "f yo( do not (nderstand this part of the proced(re+ or the F9 tool will not work+ and the game will crash$ "f yo( do not (nderstand this part of the proced(re+ yo( sho(ld pa(se now and re%iew the methods for repacking tet(res that is o(tlined in Son of 'ersia5s yo( sho(ld pa(se now and re%iew the methods for repacking tet(res that is o(tlined in Son of 'ersia5s Model Importer/Exporter toolset tutorial
Model Importer/Exporter toolset tutorial ))
http)11residente%ilmodding$boards$net1thread194:;1re48model8importer8eporter8toolset<page/=
http)11residente%ilmodding$boards$net1thread194:;1re48model8importer8eporter8toolset<page/=
#nce the tet(res ha%e been dealt with+ we can now open o(r CD modeling software and import the
#nce the tet(res ha%e been dealt with+ we can now open o(r CD modeling software and import the SMDSMD or
or O'O' file of the model we wish to (se *in eample file of the model we wish to (se *in eample et1100.binet1100.bin,+ and then assign it the new tet(res from,+ and then assign it the new tet(res from o(r working directory *in this eample we assign the tet(res from 44>>>99c,$
o(r working directory *in this eample we assign the tet(res from 44>>>99c,$
#nce the model has been imported to CD software and the new tet(res ha%e been assigned to it+ we are #nce the model has been imported to CD software and the new tet(res ha%e been assigned to it+ we are ready to eport the new ET& model back into the
ready to eport the new ET& model back into the 'IN Tools'IN Tools directory$ .irst eport the model in S&Ddirectory$ .irst eport the model in S&D format+ making s(re yo(
format+ making s(re yo( &ee) /erte 4ei*ts assi*ne!. &ee) /erte 4ei*ts assi*ne!. Some of these models (seSome of these models (se 'ONE?0'ONE?0 so we so we m(st ha%e this option applied,
m(st ha%e this option applied, .. After e After eporting tporting the S&D+ he S&D+ we then we then eport teport the model he model again in again in #!B file#!B file format to the same directory$ This will create the
format to the same directory$ This will create the .MT#.MT# file we need for the tet(re reference (sed by thefile we need for the tet(re reference (sed by the 8E+(>D?'IN?Tool?201.ee
7ow we na%igate back to the
7ow we na%igate back to the 'IN Tools'IN Tools directory$ Delete the original !"7 - T'2 files and the #!B file$ Alldirectory$ Delete the original !"7 - T'2 files and the #!B file$ All yo( need to create a new !"7 - T'2 file will be the newly eported S&D and &T2 file$ The net step is to yo( need to create a new !"7 - T'2 file will be the newly eported S&D and &T2 file$ The net step is to edit the
edit the 'IN?8e)a"&?ETM.bat'IN?8e)a"&?ETM.bat file to read as follows)file to read as follows) 8E+(>D?'IN?Tool?201.ee
8E+(>D?'IN?Tool?201.ee eeet1100.s,!et1100.s,! et1100.,tlet1100.,tl ++00022"++00022"
This tells the tools to make a !"7 - T'2 (sing the S&D and &T2 file+ pointing to 44>>>99c $pack file$ This tells the tools to make a !"7 - T'2 (sing the S&D and &T2 file+ pointing to 44>>>99c $pack file$ Since the tet(re refference is assigned in the S&D there is no need to enter tet(re ids in this $bat file$ Since the tet(re refference is assigned in the S&D there is no need to enter tet(re ids in this $bat file$ GGNOTENOTEG "f yo(r new ET& file has more than one tet(re be s(re to check the TS file that is generatedG "f yo(r new ET& file has more than one tet(re be s(re to check the TS file that is generated after eec(ting the
after eec(ting the 'IN?8e)a"&?ETM.bat'IN?8e)a"&?ETM.bat file$ "n this eample the TS file sho(ld read)file$ "n this eample the TS file sho(ld read) file =C; / >=C;$dds
file =C; / >=C;$dds
b(t if yo( are (sing more than tet(re it might read) b(t if yo( are (sing more than tet(re it might read) file =C; / >=C$dds
file =C; / >=C$dds file =C / >=C;$dds file =C / >=C;$dds
*this scenario wo(ld apply the tet(res
*this scenario wo(ld apply the tet(res in"orre"tly in"orre"tly,, Abo%e
Abo%e is an eis an eample of teample of tet(res gt(res getting mietting mied (p$ We ed (p$ We can corcan correct this rect this in 9 diffein 9 different wrent ways$ #ne iays$ #ne is tos to simply rename the tet(re files according to how they are named in the TS *so in the case of the abo%e simply rename the tet(re files according to how they are named in the TS *so in the case of the abo%e eample yo( wo(ld rename >=C;$dds to >=C$dds and rename >=C$dds to >=C;$dds and repack $pack eample yo( wo(ld rename >=C;$dds to >=C$dds and rename >=C$dds to >=C;$dds and repack $pack file,
file,
#R$$$$ yo( can simply make s(re that the tet(re order in the &T2 file is in
#R$$$$ yo( can simply make s(re that the tet(re order in the &T2 file is in SE%(ENTIA# O8DE8SE%(ENTIA# O8DE8 beforebefore eec(ting the
eec(ting the 'IN?8e)a"&?ETM.bat'IN?8e)a"&?ETM.bat filefile.. Eample of proper order of tet(res in
Eample of proper order of tet(res in .MT#.MT# file before repacking)file before repacking) J J J et1200.,tl J et1200.,tl J J ne4,tl sto"&.!!s ne4,tl sto"&.!!s illu, 2 illu, 2 ! 0.00000 0.00000 0.00000 ! 0.00000 0.00000 0.00000 a 0.200000 0.200000 0.200000 a 0.200000 0.200000 0.200000 s 0.000000 0.000000 0.000000 s 0.000000 0.000000 0.000000 e 0.000000 0.000000 0.000000 e 0.000000 0.000000 0.000000 Ns 0.000000 Ns 0.000000 ,a)?! 0159.!!s ,a)?! 0159.!!s ne4,tl sto"&2.!!s ne4,tl sto"&2.!!s illu, 2 illu, 2 ! 0.00000 0.00000 0.00000 ! 0.00000 0.00000 0.00000 a 0.200000 0.200000 0.200000 a 0.200000 0.200000 0.200000 s 0.000000 0.000000 0.000000 s 0.000000 0.000000 0.000000 e 0.000000 0.000000 0.000000 e 0.000000 0.000000 0.000000 Ns 0.000000 Ns 0.000000 ,a)?! 015:.!!s ,a)?! 015:.!!s
ne4,tl sto"&+.!!s ne4,tl sto"&+.!!s illu, 2 illu, 2 ! 0.00000 0.00000 0.00000 ! 0.00000 0.00000 0.00000 a 0.200000 0.200000 0.200000 a 0.200000 0.200000 0.200000 s 0.000000 0.000000 0.000000 s 0.000000 0.000000 0.000000 e 0.000000 0.000000 0.000000 e 0.000000 0.000000 0.000000 Ns 0.000000 Ns 0.000000 ,a)?! 015.!!s ,a)?! 015.!!s
&aking s(re yo(r pack file tet(res are in se6(ential order like abo%e will create a proper TS o(tp(t$ &aking s(re yo(r pack file tet(res are in se6(ential order like abo%e will create a proper TS o(tp(t$ So after we ha%e s(ccessf(lly regenerated the ET& model that points to the correct tet(res in o(r new So after we ha%e s(ccessf(lly regenerated the ET& model that points to the correct tet(res in o(r new room+ we m(st then mo%e *or copy, these new !"7 - T'2 files to the working directory of the room we are room+ we m(st then mo%e *or copy, these new !"7 - T'2 files to the working directory of the room we are (sing mentioned at the beginning of this t(torial+
(sing mentioned at the beginning of this t(torial+ r22"?10r22"?10 *or whate%er room yo( are working with as the*or whate%er room yo( are working with as the destination,$ #nce we paste these files into that directory+ the net step is to
destination,$ #nce we paste these files into that directory+ the net step is to edit the $edit the $i!i! file that was file that was generated by the
generated by the 8E+(>D?ETM?Tool.8E+(>D?ETM?Tool.
5 About ETM E$$ files
5 About ETM E$$ files
When we are dealing with breakable ob0ects there are other files that get (sed beside ET& - "TA+ most When we are dealing with breakable ob0ects there are other files that get (sed beside ET& - "TA+ most often this is the E.. file
often this is the E.. file .. When mo%ing an ET& item from one room to another room we m(st consider theWhen mo%ing an ET& item from one room to another room we m(st consider the other files that are associated with the ET& model+ s(ch as animations or effects$ "n this eample we
other files that are associated with the ET& model+ s(ch as animations or effects$ "n this eample we need to edit the
need to edit the E$$ E$$ filefile TP#TP# in order for o(r new model to work properly$ in order for o(r new model to work properly$ The ET& E.. files ha%e
The ET& E.. files ha%e TP#TP# files inside them+ and these E.. T'2 files m(st call the new room pack filefiles inside them+ and these E.. T'2 files m(st call the new room pack file - model tet(re n(mber the same way the !"7 T'2 files do$ Since we do not edit the E.. files the same - model tet(re n(mber the same way the !"7 T'2 files do$ Since we do not edit the E.. files the same way we do with !"7 - T'2 files as shown abo%e+ a new method is re6(ired$ "n order for the E.. T'2 files way we do with !"7 - T'2 files as shown abo%e+ a new method is re6(ired$ "n order for the E.. T'2 files to point to the correct room $pack file - tet(re+ we m(st man(ally edit the E.. T'2 files with HEI editing to point to the correct room $pack file - tet(re+ we m(st man(ally edit the E.. T'2 files with HEI editing software$
software$ Using the
Using the E$$ ToolE$$ Tool pro%ided in the Son of 'ersia Toolkitpro%ided in the Son of 'ersia Toolkit -- we will etract the E.. file that is from o(r ET&we will etract the E.. file that is from o(r ET& file *in this eample+ we are editing
file *in this eample+ we are editing et11.effFet11.effF$$ Using the same method as seen abo%e when etractingUsing the same method as seen abo%e when etracting ET& files+ we etract the ET&
ET& files+ we etract the ET& E$$E$$ file into a new working directory$ file into a new working directory$ #nce etracted+ we will see a new folder called
#nce etracted+ we will see a new folder called et11et11 has been created+ along with a new has been created+ along with a new .i!.i! file *in thisfile *in this case we do not need to add anything to the et== folder+ so we will not edit the
case we do not need to add anything to the et== folder+ so we will not edit the .i!.i! file, "nside thisfile, "nside this et11et11 folder we see that there is a 3
folder we see that there is a 3 Effe"t ,o!elEffe"t ,o!el3 folder that has been created$ "n this Effect model folder we3 folder that has been created$ "n this Effect model folder we will see se%eral
will see se%eral TP#TP# files *and !"7 files,$ These are the T'2 files that we m(st man(ally edit to reference files *and !"7 files,$ These are the T'2 files that we m(st man(ally edit to reference o(r new room pack file - tet(re n(mber in order for the tet(res of the ET& model to display properly$ o(r new room pack file - tet(re n(mber in order for the tet(res of the ET& model to display properly$ Ea,)le of ,anually e!itin* an E$$ TP# file 4it >E6 e!itin* soft4areK
Ea,)le of ,anually e!itin* an E$$ TP# file 4it >E6 e!itin* soft4areK =9 C4 J; : >= >> >> >> > >> >> >> =4 >> >> >> =9 C4 J; : >= >> >> >> > >> >> >> =4 >> >> >> >> >> >> >> :> >> 9> >> >E >> >> >> C: >> >> >> >> >> >> >> :> >> 9> >> >E >> >> >> C: >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> 01 01 00 ++01 01 00 ++ 44 >> >> >> >> >> >>
The %al(e in red is the room pack file n(mber of the original file *in little Endian order,$ The %al(e in green The %al(e in red is the room pack file n(mber of the original file *in little Endian order,$ The %al(e in green is the HEI %al(e of the tet(re n(mber in this pack file$ So in this eample the T'2 points to
is the HEI %al(e of the tet(re n(mber in this pack file$ So in this eample the T'2 points to ++000101++000101
pack file+ tet(re
So if we want o(r new E.. T'2 to point to another room pack file *44>>>>99c in this eample,+ we m(st So if we want o(r new E.. T'2 to point to another room pack file *44>>>>99c in this eample,+ we m(st man(ally edit the T'2)
man(ally edit the T'2)
=9 C4 J; : >= >> >> >> > >> >> >> =4 >> >> >> =9 C4 J; : >= >> >> >> > >> >> >> =4 >> >> >> >> >> >> >> :> >> 9> >> >E >> >> >> C: >> >> >> >> >> >> >> :> >> 9> >> >E >> >> >> C: >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >= >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> 2C 02 00 ++2C 02 00 ++ :::: >> >> >> >> >> >> ** in HEI / in HEI / 159159 in decimal, in decimal,
After w
After we ha%e mae ha%e made the chde the changes to anges to A22 the A22 the T'2 files T'2 files in the Efin the Effect &odefect &odel folder al folder and sa%nd sa%ed+ we m(ed+ we m(st thenst then repack the E.. file with the E.. Tools+ and then copy this newly generated E.. file to o(r
repack the E.. file with the E.. Tools+ and then copy this newly generated E.. file to o(r r22"?10r22"?10
directory to replace the old E.. file of the same name$ 7ow o(r E..+ !"7 - T'2 files ha%e all been directory to replace the old E.. file of the same name$ 7ow o(r E..+ !"7 - T'2 files ha%e all been modified to point to the correct room $pack file+ and we are ready for the final step) the "DI file$ modified to point to the correct room $pack file+ and we are ready for the final step) the "DI file$
ETM 'IN $I#ES 3IT> NO TP# O$
ETM 'IN $I#ES 3IT> NO TP# O$ T>EI8 O3N
T>EI8 O3N
"f o(r ET& model does not ha%e a T'2 file of its own with the same name this means that the
"f o(r ET& model does not ha%e a T'2 file of its own with the same name this means that the E$$ TP#E$$ TP# isis (sed a refference for the !"7 file for the ET& model$ "f we want the correct tet(es to be (sed for ET& (sed a refference for the !"7 file for the ET& model$ "f we want the correct tet(es to be (sed for ET& !"7 files that dont ha%e their own T'2+ we m(st edit the
!"7 files that dont ha%e their own T'2+ we m(st edit the E$$ TP#E$$ TP# to point to the correct tet(re$to point to the correct tet(re$ This is done by etracting the effect with the
This is done by etracting the effect with the E$$ ToolE$$ Tool which will generate a folder called 5which will generate a folder called 5 Effect Model'Effect Model' and inside there are will be a !"7
and inside there are will be a !"7 - T'2 file for the E..ET model+ b(t - T'2 file for the E..ET model+ b(t this T'2 isthis T'2 is also use! by tealso use! by te ,ain ETM 'IN ,o!el
,ain ETM 'IN ,o!el so we m(st (se the so we m(st (se the 8E+(>D?'IN?Tool?201.ee8E+(>D?'IN?Tool?201.ee to etract the !"7 - T'2 filesto etract the !"7 - T'2 files to get an S&D - &T2 file$ #nce we ha%e done this we simply import the S&D into a Cd program+ apply to get an S&D - &T2 file$ #nce we ha%e done this we simply import the S&D into a Cd program+ apply the correct tet(re*s, that points to o(r working pack file+ and then eport the S&D *as well as the #!B file the correct tet(re*s, that points to o(r working pack file+ and then eport the S&D *as well as the #!B file if (sing &ilkShape to create the &T2 file,$ We then (se the
if (sing &ilkShape to create the &T2 file,$ We then (se the 'IN?8e)a"&.bat'IN?8e)a"&.bat filefile to create a new !"7 -to create a new !"7 -T'2 file$ The last step is to repack the
T'2 file$ The last step is to repack the E$$ fileE$$ file with the with the E.. Tool and E.. Tool and then copy the then copy the newly newly generatedgenerated E.. file back into the ET& folder and repack the ET& file with this new E.. file$
E.. file back into the ET& folder and repack the ET& file with this new E.. file$
+ E!itin* te ID6 file
+ E!itin* te ID6 file
A list of
A list of all files all files inside thinside the ET& file e ET& file is geneis generated in trated in thehe .i!.i! file when we etract an ET& file (sing thefile when we etract an ET& file (sing the 8E+?(>D?ETM?Tool
8E+?(>D?ETM?Tool$ This ser%es as an inde of all files in the ET& archi%e+ 0(st like many other$ This ser%es as an inde of all files in the ET& archi%e+ 0(st like many other .i!.i! files+ s(ch as UDAS archi%es$ "f we add new files into o(r etracted
files+ s(ch as UDAS archi%es$ "f we add new files into o(r etracted r99c?=>r99c?=> folder+ we m(st (pdatefolder+ we m(st (pdate the $
the $i!i! file to reflect these changes+ keeping in mind the file to reflect these changes+ keeping in mind the $ileCount$ileCount and the file and the file ty)esty)es$ "f we look at this$ "f we look at this eample of an
eample of an .i!.i! file+ we can notice the different file types)file+ we can notice the different file types) $ileCount
$ileCount / / .ile?>?
.ile?>? 1111 / r99c?=>Ket==>>$ / r99c?=>Ket==>>$t)lt)l .ile?=?
.ile?=? 1111 / r99c?=>Ket==>>$ / r99c?=>Ket==>>$binbin .ile?9?
.ile?9? ;; / r99c?=>Ket==$ / r99c?=>Ket==$eff eff .ile?C?
.ile?C? 1212 / r99c?=>Ket>;>>>$ / r99c?=>Ket>;>>>$f"f" .ile?4?
.ile?4? 1212 / r99c?=>Ket>;>>=$ / r99c?=>Ket>;>>=$f"f" .ile?J?
.ile?J? 1515 / r99c?=>Ket>;>>>>$/ r99c?=>Ket>;>>>>$seBseB .ile?;?
.ile?;? 1515 / r99c?=>Ket>;>>=>$/ r99c?=>Ket>;>>=>$seBseB Abo%e
Abo%e in line = in line = with .ilewith .ile?> we se?> we see thate that 1111 is the type for TP# is the type for TP# files files Abo%e
Abo%e in line 9 in line 9 with .ilewith .ile?= we se?= we see thate that 1111 is A2S# the type for 'IN is A2S# the type for 'IN files files Abo%e
Abo%e in line C in line C with .ilewith .ile?9 we se?9 we see thate that ;; is the type for is the type for E$$E$$ files files and so on$$$$$$
and so on$$$$$$
So when adding new model entries into the
So when adding new model entries into the .i!.i!+ make s(re yo( (se the correct+ make s(re yo( (se the correct ty)ety)e when yo( add them+ when yo( add them+ and also (pdate the
repacked+ and o(r $id file is (pdated$ All that is left is to repack the ET& file with the repacked+ and o(r $id file is (pdated$ All that is left is to repack the ET& file with the
7
7
8e)a"&in*
8e)a"&in* te
te ETM
ETM
We are almost finished now$ All that is left is to repack the
We are almost finished now$ All that is left is to repack the r22"?10r22"?10 folder (sing thefolder (sing the ETM?8e)a"&.batETM?8e)a"&.bat file$file$ #nce this is complete we simply copy the newly generated
#nce this is complete we simply copy the newly generated r22"?10.ETMr22"?10.ETM file and place it in o(r r99cfile and place it in o(r r99c UDAS folder+ replacing the old
UDAS folder+ replacing the old r22"?10.ETMr22"?10.ETM file$ We are not ready to repack the UDAS folder 0(st yet+ asfile$ We are not ready to repack the UDAS folder 0(st yet+ as there is a second file that determines
there is a second file that determines 3>E8E3>E8E o(r new ET& models will be placed in the room when we o(r new ET& models will be placed in the room when we load the game$
load the game$
(stom ET& files canbe read abo(t in chapter
(stom ET& files canbe read abo(t in chapter 17 Creatin* "usto, ITM < ETM ,o!els
17 Creatin* "usto, ITM < ETM ,o!els
9 3or&in* 4it te ETS file
9 3or&in* 4it te ETS file
#nce we ha%e packed all o(r new model - eff files into the ET& *or we are simply dealing with already #nce we ha%e packed all o(r new model - eff files into the ET& *or we are simply dealing with already eisting ET& models that are nati%e to the room,+ we are ready to (se the
eisting ET& models that are nati%e to the room,+ we are ready to (se the ETSETS file to tell the game engine file to tell the game engine where we want these ET& models to be placed$ As eplained abo%e
where we want these ET& models to be placed$ As eplained abo%e -- thethe ETS fileETS file is what go%erns whereis what go%erns where ETM
ETM items are placed in the game$ To place ET& items in the game we (se the Son of 'ersia items are placed in the game$ To place ET& items in the game we (se the Son of 'ersia ETSETS Tools.
Tools.
2ike many of Son of 'ersia5s tools the ETS tool can etract files into 9 working filesL
2ike many of Son of 'ersia5s tools the ETS tool can etract files into 9 working filesL .tt.tt file that is file that is accompanied by an
accompanied by an .obL.obL file that file that we we can can edit in edit in Cds&a$ Cds&a$ TheThe .tt.tt file contains some model data *likefile contains some model data *like position+ rotation+ and which ET& model to (se, while the
position+ rotation+ and which ET& model to (se, while the .obL.obL file handles the placement for their relati%efile handles the placement for their relati%e .tt
.tt file entries$ file entries$
$ile Etra"tion
$ile Etra"tion
To etract an ETS file simply place the file in the same folder as the
To etract an ETS file simply place the file in the same folder as the 8E+(>D?ETS?Tool.ee8E+(>D?ETS?Tool.ee and do(bleand do(ble click on the
click on the ETS?Etra"t.batETS?Etra"t.bat file$ #nce this is complete yo( will see that a new folder has been file$ #nce this is complete yo( will see that a new folder has been generated$ "nside this new working directory are the aforementioned
generated$ "nside this new working directory are the aforementioned .tt.tt file and file and .obL.obL files$ We are now files$ We are now able to
able to edit the parameters edit the parameters in the $tt in the $tt file and1or edit file and1or edit the locations of the locations of $ob0 files$ $ob0 files$ .or more information on.or more information on this part of the process please see read
this part of the process please see read the ‘Understanding the extracted OBJ files’ the ‘Understanding the extracted OBJ files’ section of the section of the (niersal Con"e)ts
(niersal Con"e)ts doc(ment that is pro%ided with this release$ doc(ment that is pro%ided with this release$
Ea,)le of etra"te! ETS .tt file
Ea,)le of etra"te! ETS .tt file
)) EntryCount @ 2 EntryCount @ 2 M Entry > M Entry > Mo!el?ETM?Nu,ber @ 00 Mo!el?ETM?Nu,ber @ 00 Mo!el?ETS?ID@ 00 Mo!el?ETS?ID@ 00 &odelScale?I / =$>>>>>> &odelScale?I / =$>>>>>> &odelScale? / =$>>>>>> &odelScale? / =$>>>>>> &odelScale?F / =$>>>>>> &odelScale?F / =$>>>>>> &odelRotation?I / >$>>>>>> &odelRotation?I / >$>>>>>> &odelRotation? / 8>$>>>>>> &odelRotation? / 8>$>>>>>> &odelRotation?F / >$>>>>>> &odelRotation?F / >$>>>>>> &odelTranslation?I / C:4$9;4>>: &odelTranslation?I / C:4$9;4>>: &odelTranslation? / ;4>J$JC949 &odelTranslation? / ;4>J$JC949 &odelTranslation?F / 49>>$>>>>>> &odelTranslation?F / 49>>$>>>>>>M Entry = M Entry = Mo!el?ETM?Nu,ber @ 011 Mo!el?ETM?Nu,ber @ 011 Mo!el?ETS?ID@ 01 Mo!el?ETS?ID@ 01 Mo!elS"ale?6 @ 1.000000 Mo!elS"ale?6 @ 1.000000 Mo!elS"ale? @ 1.000000 Mo!elS"ale? @ 1.000000 Mo!elS"ale? @ 1.000000 Mo!elS"ale? @ 1.000000 Mo!el8otation?6 @ 0.000000 Mo!el8otation?6 @ 0.000000 Mo!el8otation? @ 0.000000 Mo!el8otation? @ 0.000000 Mo!el8otation? @ 0.000000 Mo!el8otation? @ 0.000000 Mo!elTranslation?6 @ 1::2.05 Mo!elTranslation?6 @ 1::2.05 Mo!elTranslation? @ 57:99.09 Mo!elTranslation? @ 57:99.09 Mo!elTranslation? @ 5:;++.9;; Mo!elTranslation? @ 5:;++.9;;
: Des"ri)tion of ETS offset
: Des"ri)tion of ETS offset alues
alues
*lines with M will not ne read by the toolset and are for reference notes, *lines with M will not ne read by the toolset and are for reference notes, Mo!el?ETM?Nu,ber
Mo!el?ETM?Nu,ber ))
This %al(e is always the first 9 digits or letters of the model file$ .or o(r working eample we know that the This %al(e is always the first 9 digits or letters of the model file$ .or o(r working eample we know that the barrel model is
barrel model is et1100.bin- so our ,o!el is nu,ber isKet1100.bin- so our ,o!el is nu,ber isK 011011
Eamples of other models) Eamples of other models)
&odel?ET&?7(mber / >== / et
&odel?ET&?7(mber / >== / et 1111>>$bin>>$bin &odel?ET&?7(mber / >: / et
&odel?ET&?7(mber / >: / et 00>>$bin>>$bin &odel?ET&?7(mber / >: / et
&odel?ET&?7(mber / >: / et 00>>$bin>>$bin &odel?ET&?7(mber / >=D / et
&odel?ET&?7(mber / >=D / et 1!1!>=$bin>=$bin Mo!el?ETS?ID
Mo!el?ETS?ID
.or e%ery new entry in the ETS
.or e%ery new entry in the ETS .tt.tt file we m(st increase thefile we m(st increase the Mo!el?ETS?IDMo!el?ETS?ID %al(e$%al(e$ The data for these entries are in
The data for these entries are in >E6>E6 %al(es$ This %al(e is sometimes referenced by the "TA file+ b(t more %al(es$ This %al(e is sometimes referenced by the "TA file+ b(t more on this can be read abo(t later in
on this can be read abo(t later in "a)ter 12 "a)ter 12 Working with the ITA ET! file together"Working with the ITA ET! file together" EntryCount
EntryCount
.or e%ery new entry in the ETS
.or e%ery new entry in the ETS .tt.tt file we m(st also increase thefile we m(st also increase the EntryCountEntryCount %al(e at the top of this file$ %al(e at the top of this file$ *0(st like the
*0(st like the .i!.i! file mentioned abo%e,$ The data for this entry is infile mentioned abo%e,$ The data for this entry is in DECIMA#DECIMA# %al(e$ %al(e$ Mo!elS"ale
Mo!elS"ale
.or what e%er reason " was not able to get this f(nction to ha%e any effect$ &odels sho(ld then be scaled .or what e%er reason " was not able to get this f(nction to ha%e any effect$ &odels sho(ld then be scaled accordingly in the Cd editing software$
accordingly in the Cd editing software$ Mo!elTranslation
Mo!elTranslation
This f(nction sho(ld
This f(nction sho(ld onl# $e %sed if we are not %sing the "o$& fileonl# $e %sed if we are not %sing the "o$& file to handle the coordiantes of o(r ET&to handle the coordiantes of o(r ET& model$ &odel Translation is simply the I F coordinates of the model (sed by Cds &AI *or whate%er CD model$ &odel Translation is simply the I F coordinates of the model (sed by Cds &AI *or whate%er CD software yo( are (sing,$ "f the %al(es are set to
software yo( are (sing,$ "f the %al(es are set to 0.0000000.000000+ then this means that the position of the model+ then this means that the position of the model is determined by where it is sa%ed in the Cd application$ "f an
is determined by where it is sa%ed in the Cd application$ "f an ITAITA item is linked to an item is linked to an ETSETS entry+ the $ob0 entry+ the $ob0 file coordaintes or &odel Translation coordinates will point to where the linked item will spawn$
file coordaintes or &odel Translation coordinates will point to where the linked item will spawn$
8e)a"&in* te ETS file
8e)a"&in* te ETS file
So once we ha%e made edited or made any new entries in to the ETS file that point to o(r newly created So once we ha%e made edited or made any new entries in to the ETS file that point to o(r newly created model*s,+ we then ha%e to repack the ETS file (sing the
newly generated ETS file to the working
newly generated ETS file to the working (DAS(DAS directory of o(r new room *in this eampledirectory of o(r new room *in this eample r22" (DASr22" (DAS,$,$ After th
After this we cais we can repack n repack the UDthe UDAS file aAS file and load nd load the game the game to see oto see o(r newly (r newly created created ET& modeET& modelNlN NOTE
NOTE 8 "f an item still does not show (p after all of this it means that there is still another file from the 8 "f an item still does not show (p after all of this it means that there is still another file from the original room that is re6(ired for the model to work$ Rather than simply go thro(gh each one it is often original room that is re6(ired for the model to work$ Rather than simply go thro(gh each one it is often easier to simply copy all the E..+ SE@+ and . files o%er from the original room to o(r new ET& file+ easier to simply copy all the E..+ SE@+ and . files o%er from the original room to o(r new ET& file+ making s(re that we also add their entires to o(r ET& id file as well$
making s(re that we also add their entires to o(r ET& id file as well$
; Intro!u"tion to te ITA file
; Intro!u"tion to te ITA file
As desc
As described aribed abo%e+bo%e+ ITAITA files manage the coordinates+ amo(nts+ and other %al(es offiles manage the coordinates+ amo(nts+ and other %al(es of ite,s- treasures-ite,s- treasures-4ea)ons < a,,unition tat "an be "olle"te! by te )layer in *a,e.
4ea)ons < a,,unition tat "an be "olle"te! by te )layer in *a,e. B(st like the ETS file+ theB(st like the ETS file+ the ITAITA is is not archi%al file+ b(t instead acts as a direcotry of %al(es$ Also like the ETS+ the "TA Tools generate an not archi%al file+ b(t instead acts as a direcotry of %al(es$ Also like the ETS+ the "TA Tools generate an .O'
.O' file which can be (sed to handle the coordiates of the ob0ects+ treas(res+ weapons - amm(nition,$file which can be (sed to handle the coordiates of the ob0ects+ treas(res+ weapons - amm(nition,$ With Son of 'ersia5s tools+ the "TA is handled in the eact same way as the ETS+ b(t contains m(ch more With Son of 'ersia5s tools+ the "TA is handled in the eact same way as the ETS+ b(t contains m(ch more data$ The
data$ The ITAITA file has many f(nctions+ so the data that goes along with it is deep$ file has many f(nctions+ so the data that goes along with it is deep$ An impo
An important thinrtant thing to (ndg to (nderstand erstand abo(t thabo(t thee ITA ITA is that it works together with theis that it works together with the ITMITM file$ The "T& file is file$ The "T& file is another archi%al file that contains all the models *!"7, - tet(re palettes *T'2, for the
another archi%al file that contains all the models *!"7, - tet(re palettes *T'2, for the ITAITA items we see initems we see in the game$ "f we want to introd(ce new
the game$ "f we want to introd(ce new ITAITA items into a room+ and this room does not already ha%e the items into a room+ and this room does not already ha%e the models for these new items in the
models for these new items in the ITMITM archi%e+ then the game will crash or the models will be in%isible$ "f archi%e+ then the game will crash or the models will be in%isible$ "f we simply want to p(t items into a room in the game that already ha%e models in the "T& archi%e+ then we simply want to p(t items into a room in the game that already ha%e models in the "T& archi%e+ then there is no need to edit the "T& file$ There will be instr(ctions on how to copy "T& models f(rther on in this there is no need to edit the "T& file$ There will be instr(ctions on how to copy "T& models f(rther on in this t(torial+ b(t first let (s obser%e the %al(es of the "TA file$
t(torial+ b(t first let (s obser%e the %al(es of the "TA file$
10 Definition of ITA
10 Definition of ITA alues
alues
Ite,DataCountQ
Ite,DataCountQ
B(st like the
B(st like the EntryCountEntryCount in the ETS file+ or thein the ETS file+ or the $ileCount$ileCount in the ET& file+ the in the ET& file+ the Ite,DataCountQIte,DataCountQ is is anan inde of how many
inde of how many ITA ITA entries are in theentries are in the .tt.tt file that is generated (pon etraction$ Each time a new entryfile that is generated (pon etraction$ Each time a new entry is added to the
is added to the .tt.tt file+ we m(st increase thefile+ we m(st increase the Ite,DataCountQIte,DataCountQ$ al(es for this entry are in$ al(es for this entry are in DECIMA#DECIMA# %al(e$
%al(e$
Cate*oryQ
Cate*oryQ
There seem to be different categories for "TA entries+ b(t it is (nclear how many different ones there are$ There seem to be different categories for "TA entries+ b(t it is (nclear how many different ones there are$ An ea
An eample of a mple of a different different type is in type is in room r99room r99c$ "n this c$ "n this room "TA room "TA file+ file+ the entrthe entries fories for Ite,Nu,berQIte,Nu,berQ / / 0+;0+;++ which is described as 3shooting gallery3 in the "TE& 2"ST$ The
which is described as 3shooting gallery3 in the "TE& 2"ST$ The Cate*oryQCate*oryQ %al(e for this is%al(e for this is 02.02. #b%io(sly#b%io(sly this is not an
this is not an obtainableobtainable item+ b(t is perhaps rather a set of different type of items$ "f we wish to ha%e item+ b(t is perhaps rather a set of different type of items$ "f we wish to ha%e enemies spawn items the
enemies spawn items the Cate*oryQCate*oryQ %al(e m(st be set to%al(e m(st be set to 0202 and the and the A))earan"eTy)eQA))earan"eTy)eQ m(st be setm(st be set 01
01$$ SeeSee ETS?IDQETS?IDQ section for more information on this$ section for more information on this$ Also+
Also+ Cate*oryQCate*oryQtypetype 0202 entries are (sed for ineteracti%e ob0ects$ #ne eample is the ob0ects that fall entries are (sed for ineteracti%e ob0ects$ #ne eample is the ob0ects that fall s(ch as Spinels or the Dirty 'endant$ These items will fall straight down (ntil they hit the ob0 model of the s(ch as Spinels or the Dirty 'endant$ These items will fall straight down (ntil they hit the ob0 model of the EAT
EAT file$ .or .alling ob0ects (se file$ .or .alling ob0ects (se Offset152..157Q @ 010 Offset152..157Q @ 010
Anothe
Another eample r eample of typeof type 0202 entries are those entries are those "TA "TA items that appear in cabinets+ lockers+ chests items that appear in cabinets+ lockers+ chests etc thatetc that ha%e mo%ing doors$ The "TA item does not appear (ntil the AE e%ent that triggers the mo%ement of the ha%e mo%ing doors$ The "TA item does not appear (ntil the AE e%ent that triggers the mo%ement of the model is acti%ated$
model is acti%ated$
Ite,Nu,berQ
This %al(e indicates the item n(mber in HEI %al(e$ 9 / arrows+ >; / green herb+ etc$ 'lease see the This %al(e indicates the item n(mber in HEI %al(e$ 9 / arrows+ >; / green herb+ etc$ 'lease see the ITEM #IST
ITEM #IST at the bottom of this doc(ment for item %al(es$at the bottom of this doc(ment for item %al(es$
8an!o,nessQ
8an!o,nessQ
Setting as to whether the item appears randomly$ Setting as to whether the item appears randomly$ When the %al(e /
When the %al(e / 0000 it is fied+ when it / it is fied+ when it / 010010 the item does not go o(t+ or it randomly the item does not go o(t+ or it randomly changes to another item$ This randomness only applies to items linked to ET& items$ changes to another item$ This randomness only applies to items linked to ET& items$ Please note that the value of
Please note that the value of Ite,Nu,berQIte,Nu,berQ must be a value ofmust be a value of 0101 to to 05 05 and that the and that the A,ountQA,ountQ is set tois set to x
x or the randomizer will not work with ETM items !!or the randomizer will not work with ETM items !! Also+ th Also+ the randoe randomiOer wimiOer will not take ll not take into accinto acco(nt addo(nt add newly added items from the
newly added items from the ITMITM file+file+ as it will only select items nati%e the map - player$ Eample of this isas it will only select items nati%e the map - player$ Eample of this is that if we are (sing a Pra(ser mod in main game+ and e%en if we ha%e added bow arrows to o(r
that if we are (sing a Pra(ser mod in main game+ and e%en if we ha%e added bow arrows to o(r ITMITM+ the+ the randomiOer will still not consider these items when making a random selection$
randomiOer will still not consider these items when making a random selection$ RR Interestin* fin! RR
RR Interestin* fin! RR if we (seif we (se Ite,Nu,berQIte,Nu,berQ @ 00 @ 00 and and 8an!o,nessQ@8an!o,nessQ@ 010010 for boed or barreledfor boed or barreled items we get a s(rprise snakeN
items we get a s(rprise snakeN
A,ountQ
A,ountQ
88 Amo(nt oAmo(nt of items ff items for amm(nitior amm(nition$ al(on$ al(es are ies are inn >E6.>E6.
A))earan"eTy)eQ
A))earan"eTy)eQ
When the %al(e ofWhen the %al(e of A))earan"eTy)eQA))earan"eTy)eQ isis 0202+ this indicates that the ob0ect is inside a breakable container + this indicates that the ob0ect is inside a breakable container *like bo+ %ase+ barrel etc,+ and that the position - type of breakable container are now managed by the *like bo+ %ase+ barrel etc,+ and that the position - type of breakable container are now managed by the ETS
ETS file+ b(t the contents are still managed by file+ b(t the contents are still managed by ITAITA file$ file$ "f %al(e is
"f %al(e is 0000 / item always appears / item always appears "f %al(e is
"f %al(e is 0202 / item does not appear (ntil the bo+ barrel is destroyed$ / item does not appear (ntil the bo+ barrel is destroyed$ "f %al(e is
"f %al(e is 01 01 / it will not appear (nless yo( defeat the enemy/ it will not appear (nless yo( defeat the enemy
ETS?IDQ
ETS?IDQ
When the %al(e of
When the %al(e of A))earan"eTy)eQA))earan"eTy)eQ is other thanis other than 0000+ the+ the ETS IDQETS IDQ %al(e indicates which breakable%al(e indicates which breakable container or enemy the item is associated with$ "f the
container or enemy the item is associated with$ "f the A))earan"eTy)eQA))earan"eTy)eQ is set tois set to 0101 then the then the ETS?IDQETS?IDQ
%al(e is the
%al(e is the ene(# id n%($erene(# id n%($er listed in the E2S file *b(t m(st be inp(tted as HEI %al(e,$ "f we wish tolisted in the E2S file *b(t m(st be inp(tted as HEI %al(e,$ "f we wish to ha%e enemies spawn items like this the
ha%e enemies spawn items like this the Cate*oryQCate*oryQ %al(e m(st be set to 02.%al(e m(st be set to 02. About )la"in* ite,s in te ene,yK
About )la"in* ite,s in te ene,yK A))earan"eTy)eQ
A))earan"eTy)eQ / m(st be set to / >=/ m(st be set to / >= Cate*oryQ
Cate*oryQ m(st be set to / >9 m(st be set to / >9 then the following %al(e for
then the following %al(e for ETS?IDQETS?IDQ is act(ally the enemy "D in which the item will be stored$ is act(ally the enemy "D in which the item will be stored$ Ea,)leK
Ea,)leK ETS?IDQ
ETS?IDQ / / >= >= *enemy "D,*enemy "D, $$$$$
$$$$$ $$$$$ $$$$$
Ite,Nu,berQ
Ite,Nu,berQ / > *r(by,/ > *r(by, A))earan"eTy)eQ
A))earan"eTy)eQ / >=/ >=
this means now the item is stored in an enemy$ this means now the item is stored in an enemy$
*= in HEI / 9:,$ Enemy "D 9: in emleon>> for 9: is chainsaw g(y that has the r(by$ *= in HEI / 9:,$ Enemy "D 9: in emleon>> for 9: is chainsaw g(y that has the r(by$
Ite,TranslationQ
Ite,TranslationQ
oordinates of the item in I++ F whne not (sing the $ob0 file$ oordinates of the item in I++ F whne not (sing the $ob0 file$
Ite,An*leQ
The arrangement angle of the item I++ F$ al(es in the range of >8=>>> sho(ld show a noticeable The arrangement angle of the item I++ F$ al(es in the range of >8=>>> sho(ld show a noticeable difference in item angle position$
difference in item angle position$
Data'lo"&In!eQ
Data'lo"&In!eQ
This "D n(mber is (sed as an in%entory list for item entries$ These n(mbers occ(r in se6(ential order from This "D n(mber is (sed as an in%entory list for item entries$ These n(mbers occ(r in se6(ential order from the start of the "TA file with a %al(e of
the start of the "TA file with a %al(e of 0000 to the last entry n(mber$ al(es are in HEI$ to the last entry n(mber$ al(es are in HEI$ S)e"ial noteK
S)e"ial noteK "f we want items to spawn infinitely *o%er - o%er+ e%en after the item is collected, we can"f we want items to spawn infinitely *o%er - o%er+ e%en after the item is collected, we can repeat the
repeat the Data'lo"&In!eQData'lo"&In!eQ %al(e for the last entry+ keeping in mind tho(gh that the item of the %al(e for the last entry+ keeping in mind tho(gh that the item of the firstfirst entry of repeated entries will disappear in game when the
entry of repeated entries will disappear in game when the se"on!se"on! item is collected in game$ item is collected in game$ Eample if we (se a
Eample if we (se a Data'lo"&In!eQData'lo"&In!eQ of of 05C05C fo(r times in a row+ (sing gold bars the =st time+ and fo(r times in a row+ (sing gold bars the =st time+ and hand cannon ammo for the 9nd repeated entry+ T&' ammo for the Crd repeated entry+ and flash grenade hand cannon ammo for the 9nd repeated entry+ T&' ammo for the Crd repeated entry+ and flash grenade for the 4th repeated entry+ each of the items will be infinite
for the 4th repeated entry+ each of the items will be infinite E6CEPTE6CEPT the gold bars *=st entry,$ the gold bars *=st entry,$ A wor
A workaro(nd fkaro(nd for this is or this is to simply to simply (se som(se something wething we donQt nee donQt need to be ed to be infinite infinite for the firfor the first item+ lst item+ like goldike gold bars$ .or infinite items we m(st also change the %al(e of
bars$ .or infinite items we m(st also change the %al(e of Offset129..12:QOffset129..12:Q *see below for description of*see below for description of this offset,$
this offset,$
Anoter tin* to note
Anoter tin* to note) Sometimes we m(st skip an entire) Sometimes we m(st skip an entire Data'lo"&In!eQData'lo"&In!eQ entry %al(e as sometimes it entry %al(e as sometimes it will simply lea%e (s with nothing showing (p in the game$ " do not know why this happens b(t if we are will simply lea%e (s with nothing showing (p in the game$ " do not know why this happens b(t if we are trying to create an entry and it simply will not show (p in game we sho(ld try the net
trying to create an entry and it simply will not show (p in game we sho(ld try the net Data'lo"&In!eQData'lo"&In!eQ n(mber to see if it works$ &ost of the time it will sol%e the iss(e$
n(mber to see if it works$ &ost of the time it will sol%e the iss(e$
AuraTy)eQ
AuraTy)eQ
indicates the type of light beam or sparkle associated with the item indicates the type of light beam or sparkle associated with the item AuraTy)e ,o!ifiersK
AuraTy)e ,o!ifiersK >= 8
>= 8 small glintsmall glint >9 8
>9 8 small gold light col(mn *with sparkle,small gold light col(mn *with sparkle, >C 8
>C 8 small white light col(mn *no sparkle,small white light col(mn *no sparkle, >4 8
>4 8 small reen light col(mn *herbs,small reen light col(mn *herbs, >J 8
>J 8 small Red light col(mn *ammo,small Red light col(mn *ammo, >; 8
>; 8 3 3 3 3 3 3 3 3 3 3 33 >
> 8 !8 !" w" white light hite light col(mncol(mn >: 8
>: 8 small white light col(mn *with sparkle,small white light col(mn *with sparkle, >
> 8 big 8 big yellow light yellow light col(mn *bon(s col(mn *bon(s time,time,
Offset129..12:Q
Offset129..12:Q
7ot s(re what this does eactly$ "nfernal described it as some kind of script "D$ "f we are to (se
7ot s(re what this does eactly$ "nfernal described it as some kind of script "D$ "f we are to (se infiniteinfinite items+ this %al(e m(st change with each new entry$ Simply increasing the %al(e by = each time did not items+ this %al(e m(st change with each new entry$ Simply increasing the %al(e by = each time did not always work for infinite items$ What did seem to work was to (se a %al(e that incl(des a letter s(ch as
always work for infinite items$ What did seem to work was to (se a %al(e that incl(des a letter s(ch as 1A- 1A-1'-1C- 1D- 1E
1'-1C- 1D- 1E++ 1$1$+ then+ then 2'- 2C- 2D2'- 2C- 2D etc$ etc$ IMPO8TANTIMPO8TANT
if 4e !o not "an*e tis alue for ea" entry so,eti,es 4en 4e brea& o)en ETM ite,s li&e
if 4e !o not "an*e tis alue for ea" entry so,eti,es 4en 4e brea& o)en ETM ite,s li&e
boes- barrels < ases et" tey 4ill not a))ear.
boes- barrels < ases et" tey 4ill not a))ear. &ore research is re6(ired for this offset&ore research is re6(ired for this offset
Tri**eronePositionQ
Tri**eronePositionQ
This is the 4 point I coordinate data of what triggers the message to 5take5 the item$ This part of file is This is the 4 point I coordinate data of what triggers the message to 5take5 the item$ This part of file is handled by the
handled by the .obL.obL file that is generated when the file is etracted *see eatraction instr(citons below, "ffile that is generated when the file is etracted *see eatraction instr(citons below, "f this area is made too large it might interfere with other
this area is made too large it might interfere with other AE/AE/ e%entse%ents oror SATSAT e%ents like 50(mp down5 ore%ents like 50(mp down5 or 50(mp o%er5$
50(mp o%er5$
"t is important to note that there seem to be
"t is important to note that there seem to be 2 ty)es2 ty)es of $ob0 files that are created for this section$ The first of $ob0 files that are created for this section$ The first type is a traditional : point s6(are8shaped polyhedreon that we can walk thro(gh$ These seem to work type is a traditional : point s6(are8shaped polyhedreon that we can walk thro(gh$ These seem to work