Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Star Wars

Old posts about game archives and other formats.
Mr.Mouse
Site Admin
Posts: 4073
Joined: Wed Jan 15, 2003 6:45 pm
Location: Dungeons of Doom
Has thanked: 450 times
Been thanked: 682 times
Contact:

Post by Mr.Mouse »

You mean with the TRE Archiver. Our "small organization" is XeNTaX. ;)
Okay, so they are in the old format. Then the TOC may point to the location of files in the old formats to replace with new ones?
gera
ultra-n00b
Posts: 5
Joined: Sat Jul 09, 2005 12:36 pm

Post by gera »

Oh yes, TRE Archiever sorry :roll:

The files you pointed are old format and can be viewed by current TRE Archiever.

I'm not sure what you mean by "TOC may point to location of files in the old formats to replace with new ones" actually...

You mean TOC may show new EXE who can read "new format" to find old files, that may be yes. :(
Marky
beginner
Posts: 22
Joined: Thu Jun 30, 2005 9:41 am
Has thanked: 6 times
Been thanked: 1 time

Post by Marky »

How are you getting on with these files? U needing anything else uploaded or any more information?

Been away for a week or so, so sorry not been able to help. Thanks for jumpin in gera
Karyfars
ultra-n00b
Posts: 6
Joined: Fri Jul 15, 2005 12:20 pm
Been thanked: 1 time

Post by Karyfars »

i've allready decoded how its stored in the toc files (2 days after pub18 i did it :D).
wait a bit and ill post the structure...
Karyfars
ultra-n00b
Posts: 6
Joined: Fri Jul 15, 2005 12:20 pm
Been thanked: 1 time

Post by Karyfars »

Code: Select all

TOC File

Header:
QWORD = TOC 1
DWORD = File number
DWORD = relative start of file summary, headersize+tre-list+this = file summary
DWORD = ? (not necessary for unpack)
DWORD = ? (not necessary for unpack)
DWORD = TreFile Number
DWORD = TreFile describtion length

TreSummary:
simple text seperated by hex(00)

FileInformation:
WORD = Compression (0 = uncompressed , 2 = zip)
WORD = Number of trefile which contains the file
DWORD = ? (never used them to unpack the files)
DWORD = ? (never used them to unpack the files)
DWORD = position of the file inside the trefile
DWORD = uncompressed size
DWORD = length inside the trefile if compressed else use uncompressed size

File names and pathes
just like the tre summary, strings sepperated with hex(00)
Example log of toc analyse:

Code: Select all

17:15:48> HEADER -> [ COT1000]
17:15:48> Anz Dateipfade -> 126794
17:15:48> Start der pfade nach abzug der header -> 3043056
17:15:48> anzahl der tre files im toc header -> 50
17:15:48> länge der tre file angaben -> 893
17:15:48> Tre List (1/50) -> bottom.tre
17:15:48> Tre List (2/50) -> default_patch.tre
17:15:48> Tre List (3/50) -> data_animation_00.tre
17:15:48> Tre List (4/50) -> data_music_00.tre
17:15:48> Tre List (5/50) -> data_other_00.tre
17:15:48> Tre List (6/50) -> data_sample_00.tre
17:15:48> Tre List (7/50) -> data_sample_01.tre
17:15:48> Tre List (8/50) -> data_sample_02.tre
17:15:48> Tre List (9/50) -> data_sample_03.tre
17:15:48> Tre List (10/50) -> data_sample_04.tre
17:15:48> Tre List (11/50) -> data_skeletal_mesh_00.tre
17:15:48> Tre List (12/50) -> data_skeletal_mesh_01.tre
17:15:48> Tre List (13/50) -> data_static_mesh_00.tre
17:15:48> Tre List (14/50) -> data_static_mesh_01.tre
17:15:48> Tre List (15/50) -> data_texture_00.tre
17:15:48> Tre List (16/50) -> data_texture_01.tre
17:15:48> Tre List (17/50) -> data_texture_02.tre
17:15:48> Tre List (18/50) -> data_texture_03.tre
17:15:48> Tre List (19/50) -> data_texture_04.tre
17:15:48> Tre List (20/50) -> data_texture_05.tre
17:15:48> Tre List (21/50) -> data_texture_06.tre
17:15:48> Tre List (22/50) -> data_texture_07.tre
17:15:48> Tre List (23/50) -> patch_00.tre
17:15:48> Tre List (24/50) -> patch_01.tre
17:15:48> Tre List (25/50) -> patch_02.tre
17:15:48> Tre List (26/50) -> patch_03.tre
17:15:48> Tre List (27/50) -> patch_04.tre
17:15:48> Tre List (28/50) -> patch_05.tre
17:15:48> Tre List (29/50) -> patch_06.tre
17:15:48> Tre List (30/50) -> patch_07.tre
17:15:48> Tre List (31/50) -> patch_08.tre
17:15:48> Tre List (32/50) -> patch_09.tre
17:15:48> Tre List (33/50) -> patch_10.tre
17:15:48> Tre List (34/50) -> patch_11_00.tre
17:15:48> Tre List (35/50) -> patch_11_01.tre
17:15:48> Tre List (36/50) -> patch_11_02.tre
17:15:48> Tre List (37/50) -> patch_11_03.tre
17:15:48> Tre List (38/50) -> patch_12_00.tre
17:15:48> Tre List (39/50) -> patch_13_00.tre
17:15:48> Tre List (40/50) -> patch_14_00.tre
17:15:48> Tre List (41/50) -> patch_15_00.tre
17:15:48> Tre List (42/50) -> patch_15_01.tre
17:15:48> Tre List (43/50) -> patch_15_02.tre
17:15:48> Tre List (44/50) -> patch_16_00.tre
17:15:48> Tre List (45/50) -> patch_17_00.tre
17:15:48> Tre List (46/50) -> patch_18_client_00.tre
17:15:48> Tre List (47/50) -> patch_18_shared_00.tre
17:15:48> Tre List (48/50) -> patch_19_client_00.tre
17:15:48> Tre List (49/50) -> patch_19_shared_00.tre
17:15:48> Tre List (50/50) -> hotfix_20_client_00.tre
17:20:58> File List Structure: (curData,allData) -> Filepath		 Compression , InTreNumber , x , x , FileStartAt , UnCompressedSize , SavedSize
17:20:58> File List (1/126794) -> appearance/animation/all_b_emt_laugh_pointing.ans		 2 , 2 , 26131 , 49 , 9131692 , 27616 , 23150
17:20:58> File List (2/126794) -> shader/goggles_s03_haces30.sht		 0 , 33 , 51359 , 30 , 59806117 , 730 , 0
17:20:58> File List (3/126794) -> appearance/mesh/snorbal_hue_l3.mgn		 2 , 29 , 72682 , 34 , 6553679 , 31602 , 15424
17:20:58> File List (4/126794) -> appearance/animation/cat_predatory_idl_swim_tread_water.ans		 2 , 2 , 77402 , 59 , 29486768 , 19151 , 13546
17:20:58> File List (5/126794) -> appearance/mesh/belt_s17_m_l2.mgn		 2 , 10 , 79237 , 33 , 34771809 , 9936 , 7095
17:20:58> File List (6/126794) -> texture/radl_flow_lilly.dds		 2 , 19 , 86380 , 27 , 36976753 , 87536 , 41920
17:20:58> File List (7/126794) -> object/tangible/ship/components/droid_interface/shared_ddi_rss_deluxe_imperial_2.iff		 2 , 33 , 149106 , 84 , 57889441 , 1509 , 658
17:20:58> File List (8/126794) -> object/tangible/mission/quest_item/shared_lilas_dinhint_q4_needed.iff		 2 , 22 , 157053 , 69 , 9631502 , 1338 , 581
17:20:58> File List (9/126794) -> object/mobile/shared_gubbur.iff		 2 , 22 , 170808 , 31 , 9009997 , 1929 , 764
17:20:58> File List (10/126794) -> shader/jacket_s22_bottom_hcsb21.sht		 0 , 33 , 184577 , 35 , 59969643 , 691 , 0
17:20:58> File List (11/126794) -> string/ja/static_npc/tatooine/figrin_dan.stf		 2 , 37 , 188548 , 44 , 25568399 , 5710 , 2928
17:20:58> File List (12/126794) -> texture/frn_all_eleg_armoire_s02_sm.dds		 2 , 16 , 216955 , 39 , 33543109 , 2872 , 2530
17:20:58> File List (13/126794) -> appearance/mesh/ins_all_mobile_ore_refinery_l1.msh		 2 , 12 , 331764 , 50 , 18919271 , 23275 , 9719
17:20:58> File List (14/126794) -> texture/pak_armor_marauder_s01_chest_plate_m_l3.dds		 2 , 18 , 343078 , 51 , 58402216 , 22000 , 8481
17:20:58> File List (15/126794) -> object/mobile/shared_dressed_lost_aqualish_scout_male_01.iff		 2 , 23 , 423623 , 60 , 9110255 , 2018 , 820
17:20:58> File List (16/126794) -> appearance/frn_all_trophy_tauntaun.apt		 0 , 37 , 435964 , 38 , 161597 , 75 , 0
17:20:58> File List (17/126794) -> appearance/animation/all_b_force_self_unarmed.ans		 2 , 25 , 441154 , 49 , 311776 , 40809 , 31517
17:20:58> File List (18/126794) -> texture/pt_snail.dds		 2 , 19 , 443448 , 20 , 25950086 , 43832 , 37960
17:20:58> File List (19/126794) -> shader/bowl_contents_c_cs8.sht		 2 , 4 , 494865 , 30 , 33762070 , 280 , 170
17:20:58> File List (20/126794) -> appearance/mesh/thm_tato_cave_s01_r29_mesh_r29.msh		 2 , 13 , 542326 , 50 , 69900503 , 136279 , 86098

[........]


hope it helps a litte bit :P
wzydhek
ultra-n00b
Posts: 8
Joined: Sat Jul 30, 2005 9:10 pm

Post by wzydhek »

I have written a small utility that will read a TOC file and extract all files from the TOC's list of TRE files.

If anyone knows vb.net, let me know. I'd like to collaborate on making a nice GUI for it.

I'd also be happy to work with XeNTaX to incorporate it into their application.

It uses the SharpZipLib library for the decompression routine. It actually runs pretty quick.

-Walt Zydhek
Mr.Mouse
Site Admin
Posts: 4073
Joined: Wed Jan 15, 2003 6:45 pm
Location: Dungeons of Doom
Has thanked: 450 times
Been thanked: 682 times
Contact:

Post by Mr.Mouse »

wzydhek wrote:I have written a small utility that will read a TOC file and extract all files from the TOC's list of TRE files.

If anyone knows vb.net, let me know. I'd like to collaborate on making a nice GUI for it.

I'd also be happy to work with XeNTaX to incorporate it into their application.

It uses the SharpZipLib library for the decompression routine. It actually runs pretty quick.

-Walt Zydhek
That'll be great. We could make it a MexCom plugin, or perhaps better still, an RPM (Rahly's Plugin Manager) plugin. It would be a test case for Rahly's manager, as that is brand new and will be released with the upcoming new MultiEx Commander. I'll PM Rahly about it.
wzydhek
ultra-n00b
Posts: 8
Joined: Sat Jul 30, 2005 9:10 pm

Post by wzydhek »

Any response from Rahly? I've worked on it a bit and have an application similar to SWGInside for it. works great, albeit a bit slow in preparing for extraction when over 7000 files are selected in the listview. (some delay determining the filenames from all selected listview items). Other than that, it works pretty smooth and pretty quick.

I was able to extract all files from all the TRE files listed in all 3 TOC files within about an hour.

-Walt Zydhek
Rahly
VVIP member
VVIP member
Posts: 411
Joined: Thu Aug 05, 2004 10:17 am
Been thanked: 1 time

Post by Rahly »

you have source to work with?
"By nature men are alike. Through practice they have become far apart." Confucius (Analect 17:2)
wzydhek
ultra-n00b
Posts: 8
Joined: Sat Jul 30, 2005 9:10 pm

Post by wzydhek »

Well. I created my own source for everything except the SharpZipLib (although the source for the SharpZipLib is freely available, and I have not modified it).

The whole thing is written in .NET. My application and TOC/TRE file library in vb.net, and the SharpZipLib is written in CSharp.net.

I don't have the original source code for the SWGInside. I wrote my own off the basic behavior of their tool (Which BTW, appears to have been written in C++ 7.0, part of the Visual Studio.NET set, but has no CLI)

-Walt Zydhek
Rahly
VVIP member
VVIP member
Posts: 411
Joined: Thu Aug 05, 2004 10:17 am
Been thanked: 1 time

Post by Rahly »

share?
"By nature men are alike. Through practice they have become far apart." Confucius (Analect 17:2)
wzydhek
ultra-n00b
Posts: 8
Joined: Sat Jul 30, 2005 9:10 pm

Post by wzydhek »

Ok. I sent it to you in a PM

-Walt Zydhek
Rahly
VVIP member
VVIP member
Posts: 411
Joined: Thu Aug 05, 2004 10:17 am
Been thanked: 1 time

Post by Rahly »

ok will look when i get some time, downloaded it, but its past 2am here and i need some sleep
"By nature men are alike. Through practice they have become far apart." Confucius (Analect 17:2)
Marky
beginner
Posts: 22
Joined: Thu Jun 30, 2005 9:41 am
Has thanked: 6 times
Been thanked: 1 time

Post by Marky »

Just wanted to say thanks for taking the time to look into this guys. Its greatly appreciated
doritos
ultra-n00b
Posts: 2
Joined: Sun Aug 07, 2005 3:13 am

Post by doritos »

hmmmm...

OK, I've used the above method to write something up to process the TOC file...

All the data (file info and TRE it is in) gets built and looks correct all for 1 value. The offset value (starting location of the file inside the TRE pack).

I feel I'm missing something somewhere, just do not know what....

Example :

File : welcome_e3_convo.stf
TRE File : patch_12_00.tre
Compression : 0
Start : 3235401
Length : 1022

Now the length is correct but when I look at this TRE with SWG Explore, it indicates a Start location at 19210683 which is the correct point in the TRE pack.
Post Reply