Exient XGS Engine *.ATLAS

Textures, recreate headers, conversions, algorithms and parsing of image files
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Exient XGS Engine *.ATLAS

Post by LolHacksRule »

After extraction of the .pak files (Except store2.pak for ABT), seasonal.pak.manifest, uisplash.pak and ui_additional.pak in the APK (gave me SOME png files, mostly atlas files, ABT) as well as the OBB and its pak files from the XPK2 script, on update v1.36.8 (ABT), I got a bunch of .atlas files and they have listings to all the textures and their names in the related x_of_X.xgt (x is num, X is split counts) file when viewed as text or in a hex editor. I was hoping someone could help use the .ATLAS files from Angry Birds: GO!/Transformers with those .XGT files to allow me to view and rip the textures in their proper sizes. The header is always XGSTA. Any advice on doing this or how it will be done? If so thanks :). The hex header of them is so far: 58 47 53 54 41 00 00 05, 01 00 00 00 / 02 00 00 00 (IDK why, only a few files in ABGO has this), the next byte is how many textures are in the file, relating to the data below. I think after a file has 2048x2048 used but the image doesn't have all the textures, it is split and has a X more part(s), that affects x, _cmp is ETC1 (ABGO ONLY?), _uncompressed/_unc is RGBA, _16 is RGBA4444, _32 is RGBA8888.

A full dump of ABGO's assets is here: https://drive.google.com/open?id=10Lp3D ... JdUTljgDzo

Sorry for the double-post.
Last edited by LolHacksRule on Fri Jan 24, 2020 4:58 pm, edited 1 time in total.
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Exient XGS Engine: Angry Birds: GO!/Transformers .ATLAS

Post by LolHacksRule »

Bump? This will make ripping textures much easier if done.
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Exient XGS Engine: Angry Birds: GO!/Transformers .ATLAS

Post by LolHacksRule »

Bump again? Documenting the game will be so much easier if this is done...
Allen
Posts: 156
Joined: Tue Sep 01, 2015 9:44 am

Re: Exient XGS Engine *.ATLAS

Post by Allen »

.atlas is texture split info list.
.xgt is texture atlas.The size of atlas is determined by the xgt image size. Most are 16BPP RGBA4444 format.
I will only send a description of the format structure here to give you some ideas.

Code: Select all

//------------------------------------------------
//--- 010 Editor v8.0.1 Binary Template
//
//   File: Exient XGS Engine .ATLAS
//   Authors: Allen
//------------------------------------------------
char    magic[5];//XGSTA
short   unknown;
byte    unknown2;
int     unknown3;
int     numTex;
int     hash;//??
char    atlasName[32];
struct{
int     hash;//??
int     unk;
float   x_coord;//scale value. get real coord need * atlas.xgt image width
float   y_coord;//scale value. get real coord need * atlas.xgt image height
float   width;//scale value
float   height;//scale value
int     tex_width;
int     tex_height;
int     unk1;
int     unk2;
}splitTexInfoList[numTex];
int     texNameDataLength;
struct{
string texName;
}splitTexNameList[numTex]<optimize=false> ;
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Exient XGS Engine *.ATLAS

Post by LolHacksRule »

THANK YOU SO MUCH. Yes I knew they were asset lists and x_of_X.XGT files are texture atlases
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Exient XGS Engine *.ATLAS

Post by LolHacksRule »

Late but upon getting better at studying formats, I decided to make a mod for the template. It has information of some of those unknown values and also a manual check for writing the proper scale values from given texture parameters. https://raw.githubusercontent.com/LolHa ... las_Mod.bt