Shockeye on 10/7/2005 at 05:18
Anyone who has ever messed about with modding the Unreal Engine has probably used UTPT (Unreal Tournament Package Tool) for working with .U files.
No doubt many have tried to get it to open .T3U package files and have come away disapointed, when it crashes straight away. (Unless there's some secret setting that you can adjust that I've been too dumb to spot, in which case I've gone away disappointed while the rest of you are, even as I type, sniggering at me behind your hands) :)
However, the Unreal package format is documented at the following sites:
(
http://www.acordero.org/)
(
http://wiki.beyondunreal.com/wiki/Package_File_Format)
So I have started working on a T3U package tool. So far I can load a file and look at its contents tables, but I cant view the internal objects yet. I don't really need to, anyway, because my main goal is to develope a way to extract the modifed scripts and objects into a seperate .t3u file. Hopefully this will lead to a better way of shipping script mods, rather than distributing the whole gamesys.
But my little program is being built from scratch based on the file format description at (
www.acordero.org). As such it is and will remain very basic.
Is there anyone here who programs in Delphi? Antonio Cordero ((
www.acordero.org)) has posted his Delphi code on sourceforge so a Delphi programmmer with a wee bit of time on his hands might be able to build a much more advanced tool for the Thief community.
(I'm a C++ man myself, and I don't want to add another language to my //TODO list. I'm already going to have to learn LUA scipting to use Crispy T3ED tool)
(
http://www.sourceforge.net/projects/utpackages) Unreal Package Tools at Sourceforge
Door on 10/7/2005 at 05:48
Good luck :D
I hope you succeed, and I wish I could help :( but I don't know any programing.
Crispy on 10/7/2005 at 09:32
Don't worry, Lua is a piece of cake; especially if you're used to a language as complex as C++. :) Some of the syntax is quite different (no braces), but it's nothing too wacky.
I have been known to program in Delphi (well, once - it was an unfinished Asteroids-ish resource collection game, sort of like a little-known game called Starscape) but I'd better not take on any more projects right now. Still got this Lua stuff to finish - while resisting the temptation to play X-COM: UFO Defense, which I've just discovered. :D
Good luck!
Back to work, Crispy. NOW!
Shockeye on 15/7/2005 at 10:37
Thanks
The nature of this project is changing. Unfortunately the individual objects contain references to other parts of the file, so I need to understand the objects to copy them. I cant just copy the the data and change the headers.
So Im going to make a object viewer first, an then an exporter later (a lot later :( )
Shockeye on 30/7/2005 at 11:31
:o
After working for weeks on my own package reader, I've just worked out how to view T3U files in UTPT:
Open as Deus Ex Invisible War
Why didn't I think of that before?
UTPT doesn't export objects as a seperate package file, so I still have some work to do in that regard, and I can use UTPT to help me decypher some more of the object properties
New Horizon on 30/7/2005 at 12:29
That's great news. Excellent find. :)
Shockeye on 2/8/2005 at 12:42
Using UTPT I have discovered a major difference between .t3u and a standard unreal .u file. UTPT rather conveniently identifies any parts of the file that it hasn't read.
After the standard file header is an extra pair of DWORDs containing what is presumabley a data count of some sort and what is definitely an offset to part of the file that is not part of the documented .u format. In the case of T3Gamesys.t3u (if you haven't modified it) there is 770976 bytes of unknown data. This increases if you have modified the gamesys, eg added new classes or scripts.
But if you look at it in a hex editor, the data appears to be ever increasing numbers one after the other, which doesn't to my uneducated eyes look like anything other than the ASCII character set repeated over and over.
Anyone know what this is likely to be? Is this what compiled trigger scripts would look like? :confused:
Ziemanskye on 2/8/2005 at 12:56
remember, to the game, the scripts (trigger and unreal) are named in increasing numbers - if you export the gamesys, you get a lot of D_254.u type files rather than say SkyZoneInfo.u, and if you read any of them, they refer to themselves and each other by these numbers too, eg D_2504 extends D_806...
Shockeye on 2/8/2005 at 13:11
Yeah, but all those are stored elsewhere in the file (and not necesarilly in numerical order!)
This data just looks meaningless eg :
0x01000000 0x05000000 0x09000000 0x1100000 etc incrementing till it loops round to a low number again. Its not like theres a series of increasing numbers with data in between. You'd think there'd be a mixture of numbers
I've just read an old post by Harwin about how triggerscripts are compiled into the their proprietary bytecode rather than into unrealscript. so i thought maybe it could be that. The names of the triggerscripts (eg TS_345)are stored in the "Name Table" of the file but there are no objects that reference them.
But all the t3u files have the mystery data and most of them wouldn't have triggerscripts stored in them (eg Core.t3u surely that would be all hardcoded not scripted) so I don't know what to think
Any experts on compiler theory out there??
Ziemanskye on 2/8/2005 at 13:37
Well the only other thing I could pretend to offer is maybe it's a bug. Try removing all the increments and running without them. Maybe they're just a counter that's gone a bit wonky in looking after versions, or source-safe stuff doing the same.