Jump to content
DerelictStudios Forums
jonwil

Has Anyone Heard Of .apt Files?

Recommended Posts

I have obtained some APT files from BFME2 and have been able to link the data from BFME2 to the same data in C&C3. Is there any tools out there that can work with the BFME2 UI (or information on it)?

Share this post


Link to post
Share on other sites

jonwil,

 

When you say you've got some apt2 files from BFME2, do you mean just the equiv to the unpacked binary files from C&C3?

 

From what I've seen, there seems to be five types of resources in the aptui bin/manifest/etc filesets.

  • Texture:apt_NAME_X - Just dds image files, presumably the image resources needed for a particular UI apt.
  • AptGeometryData:NAME_X - Given the name, I guess something indicating the layout of the geometry of various UI components. File features:
    • 4 byte header, followed by 'c'. The four bytes may be a count or something, seems to be low-valued little endian (u)int32s
    • A number of records which 'seem' to be plain text lists of a number of records which are mostly formatted like:
C F1(:F2(:F3(...)))
where C is character
FN is a (decimal) floating point number.
From the brief investigation I did, they don't seem to be coordinate lists from the textures. There seems to be one C='s' record and a number of C='t' records in each geom file.

    • A 12 byte footer which is aligned to a 4 byte boundary by NULLs, and appears to be 0x00000000 a b where 'a' and 'b' are low valued, little endian (u)int32s.
  • AptDatData:NAME_dat: Seems to give extents for some of the texture files packaged in a particular fileset and also associate (some) textures with (some) of the AptGeometryData components. File Features:
    • A string "; Created by AptToXML.\r\n"
    • Zero or more definitions of extents of textures. The lines are formatted like:
N=X1 Y1 X2 Y2
where:
N is the N from the name of a Texture resource (integer, not necessarily incrementing)
(X1, Y1) is the coordinate of the top left extent of the texture
(X2, Y2) is either the coordinate of the bottom right hand corner, or the (width, height) of the texture (for the Apt resources I looked at, X1=Y1=0, which made this ambiguous)

    • A second string "; Created by AptToXML.\r\n"
    • A list of AptGeometryData-to-Texture associations. The lines are formatted like:
N->M
where:
N is one more than the N from the name of a AptGeometryData resource.
M is the N from the name of a texture resource

    • A 12 byte footer which is aligned to a 4 byte boundary by NULLs, and appears to be 0x00000000 a b where 'a' and 'b' are low valued, little endian (u)int32s.
    • If a texture is referenced in the extents section, it is not associated in the second section. A texture can be associated to multiple aptgeoms in the second section.
  • AptConstData:NAME_const - Definitely contains a number of strings, which seem to be various tokens from some sort of scripting language. All strings appear to be NULL padded to be aligned to a 4 byte boundary. There is also a non-string section, possible numerical constants (?). It also seems to end with a 12 byte header like previous sections.
  • AptAptData:NAME_apt:
    • Starts with the string "Apt Data:74"
    • Has other strings through it that seem to be aligned to 4 byte boundaries.
    • Seems to also end in the 12 byte footer.
That's pretty much what I think so far.

 

Anyone else got any ideas?

 

--booto

Share this post


Link to post
Share on other sites

I posted in another thread (the one about bin/manifest files) details of what the different APT related filetypes are and how they match with the BFME2 APT BIG files.

Share this post


Link to post
Share on other sites

Okay, looks like I hadn't read that post properly and was confusing header/footers, but I've fixed up the app I'm writing/using so that it seems to deal with it && includenames fine now.

 

Firstly, the AptGeometryData stream header seems to have one more 32bit field than others I've seen (reports a size of 0x10).

 

Secondly, it seems that some stream types (talking about the main manifest/bin sets in the 'data' directory) use the StreamHeader, while others don't seem to give valid values. As far as you know, is this purely based on the type of the stream?

 

Lastly, is the BFME apt/ui format understood, or is it more like "here's a file of unknown format in C&C3 that looks somewhat a file of unknown format in BFME2"?

 

I've tried to have a look around for docs on the format myself, but haven't seen anything useful.

 

Sorry for all the questions :/

 

--booto

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×