Page 1 of 1

DFF textures/images

Posted: Sun Jan 14, 2018 11:09 pm
by Sorans
Hello o/

I've come to request some help in converting textures and images to a usable format (PNG for example).

Any help in figuring out how to properly read such files is appreciated.

Thanks in advance!

Re: Dissidia Opera Omnia G1T textures/images

Posted: Mon Jan 15, 2018 3:54 am
by Acewell
Sorans wrote:.... I've tried using AceWell's Texture Finder v2.1 ....
i wish, but no it was made by Iceberg, though i probably use it more than he does. :D
stl_chara_0069.g1t is 512x512 ABGR4444,
not sure of WorldMap.g1t format, the header says it it is 2048x2048 though. :]
i guess being from a mobile game it could be a mobile compressed format,
you could run it through PVRTexTool to check.
stl_chara_0069.zip

Re: Dissidia Opera Omnia G1T textures/images

Posted: Mon Jan 15, 2018 2:46 pm
by Sorans
Thanks for the swift answer! Corrected the slight mistake.

The tool you mentioned has been getting me good results. Thanks :)
Would you care to teach me how to figure out the size of the images from the header? I've been doing nothing but trial and error to find it, but I'm now wondering how it can be figured out from the header directly?

Thanks to your suggestion and after reading about Android supported format, I found out that the World Map uses ETC1 compression.

Re: Dissidia Opera Omnia G1T textures/images

Posted: Mon Jan 15, 2018 8:43 pm
by Acewell
Sorans wrote:Would you care to teach me how to figure out the size of the images from the header? I've been doing nothing but trial and error to find it, but I'm now wondering how it can be figured out from the header directly?
the byte at 0x26 stores the width and height in the high and low bit, each of these are multiplied by power of 2 by that many.
for example if the byte is 0x99
the width = power of 2 multiplied 9 times
2x2x2x2x2x2x2x2x2 = 512
the height = power of 2 multiplied 9 times
2x2x2x2x2x2x2x2x2 = 512

the width and height is 512x512 :D

Re: Dissidia Opera Omnia G1T textures/images

Posted: Tue Jan 16, 2018 1:13 pm
by Sorans
That has been very useful, thanks :D

Could I bother you with another question? How would you go about splitting a G1T file that contains multiple assets? It's not compressed and uses RGBA 4444.
I've looked at the raw data and it clearly has many different textures inside. Opening the whole file in PVRTexTool have been kinda okay but the limitations of its raw data wrapping are obvious when I open big files.

Re: Dissidia Opera Omnia G1T textures/images

Posted: Wed Jan 17, 2018 12:54 am
by Acewell
you have to post some samples but you could handle it a couple of ways,
split to individual files and read them or read them from the container in sequence.

Re: Dissidia Opera Omnia G1T textures/images

Posted: Wed Jan 17, 2018 3:26 pm
by Sorans
Hello AceWell,

Would it be simple enough to split them by looking at headers and figuring out their size?

Re: Dissidia Opera Omnia G1T textures/images

Posted: Thu Jan 18, 2018 3:23 am
by Acewell
okay since your sample only contained 2 easy formats i just made a Noesis python script :D
*script updated Jan 17, 2019*
tex_DissidiaFinalFantasyOperaOmnia_g1t.zip
supports rgba4444, rgba8888, rgb565, a8 and etc1
and because i added ETC support you will also need these files:

Code: Select all

https://www.mediafire.com/file/p2c8d3fmjnb6kvs/PVRTEXTool4Noesis.zip/file
extract them and place the bat and exe file in your Noesis\scenes folder.


and here is bms script to just split the files if you encounter a container with unsupported format :D

Code: Select all

# script for QuickBMS http://quickbms.aluigi.org

idstring "GT1G0600"
get TOTAL_SZ long
get TABLE_OFFSET long
get FILES long
goto TABLE_OFFSET
savepos BASE_OFFSET
get NAME basename
for i = 1 to FILES
	string NAME p "%s\%d.g1t" NAME i
	get OFFSET long
	savepos TMP
	math OFFSET + BASE_OFFSET
	if i == FILES
		xmath SIZE "TOTAL_SZ - OFFSET"
	else
		get NEXT_OFFSET long
		math NEXT_OFFSET + BASE_OFFSET
		xmath SIZE "NEXT_OFFSET - OFFSET"
	endif
	log NAME OFFSET SIZE
	goto TMP
next i
this script will leave the original 8 byte header in each extracted file.
the format is the byte at 0x1
the width and height are stored in the high/low bits of the next byte at 0x2
then skip 5 bytes to go to start of image data :)

Re: Dissidia Opera Omnia G1T textures/images

Posted: Thu Jan 18, 2018 12:04 pm
by Sorans
You've been extremely helpful, thank you AceWell :)

Re: DFF textures/images

Posted: Mon Feb 18, 2019 1:27 pm
by riccochet
Any chance for an update to support the alpha masks?

Re: DFF textures/images

Posted: Mon Feb 18, 2019 11:39 pm
by Acewell
alpha masks for what? upload some samples please. :]

Re: DFF textures/images

Posted: Mon Feb 18, 2019 11:43 pm
by riccochet
Ill upload some later. But basically when you export the textures the diffuse comes out fine, but has no alpha channel, which i assume is the extra texture that gets exported with the diffuse. Like when you open the g1t in noesis, it scrolls through textures that then get exported separately.
There has to be some alpha map somewhere since in the game you can see some characters have the alpha maps applied for hair, fur and some accessories

Samples of g1t files https://mega.nz/#!YaYBCarA!u9EdT3Rf6LlN ... tOB3QKSeM0

Re: DFF textures/images

Posted: Fri Jul 26, 2019 6:19 pm
by Darkhowlings
I know this falls on Necro-Post, but, its the right post to ask about:

Have any figure out the Alpha of the textures so far? Because, actually many have it (specially .dz ones)

Re: DFF textures/images

Posted: Wed Nov 13, 2019 8:05 am
by lkw019
Looking for this