07-23-2017, 09:06 AM
(This post was last modified: 07-24-2017, 06:19 AM by Random Talking Bush.)
(07-22-2017, 08:28 PM)gdkchan Wrote: Thanks for the info. Would be nice if you could send me some sample files for each format so I can try to implement them on the tool. The only ones I could find on puyo puyo files was bc1, bc3 and rgba8888. I will try to implement the changes you suggested tomorrow.Check your PMs, I sent you a bundle of 'em. And yeah, I guess I used the wrong term for those non-compressed textures, there, whoops!
Also, i'm not sure what you mean with non-tiled textures, but if you mean textures with non power of 2 sizes, I already fixed that and updated the source/post info to reflect the changes. I also added support for rgba8888 (swizzling is prety much the same).
Edit: Well, what you mean with non-tiles textures are the ones that doesnt uses compression Anyway I took a look at your format list, and for some formats (like dxt for example), storing data as float doesn't make sense (the only thing that can change on a dxt encoded block is the endianness of the data). So I guess some formats will always have this byte set to 1. Also not sure what UF16 (16 bits float a.k.a. Half Float I guess?).
And also yeah, UF16 is for half-floats (Unsigned Float, 16-bit). There's also SF16 which would be for signed half-floats, but I don't think it's used, or rather I haven't encountered any with it (as it is, there's barely any that I've seen with BC6H_UF16!).
Here's an updated list with all of the type combinations I've seen used in files:
Code:
0x0201 = R8_UNORM
0x0701 = B5G6R5_UNORM
0x0901 = R8A8_UNORM
0x0A01 = R16_UNORM
0x0B01 = R8G8B8A8_UNORM
0x0B06 = R8G8B8A8_UNORM_SRGB
0x0F05 = R11G11B10_FLOAT
0x1405 = R32_FLOAT
0x1A01 = BC1_UNORM / DXT1
0x1A06 = BC1_UNORM_SRGB
0x1B01 = BC2_UNORM / DXT3
0x1C01 = BC3_UNORM / DXT5
0x1C06 = BC3_UNORM_SRGB
0x1D01 = BC4_UNORM / ATI1
0x1D02 = BC4_SNORM
0x1E01 = BC5_UNORM / ATI2
0x1E02 = BC5_SNORM
0x1F0A = BC6H_UF16
0x2001 = BC7_UNORM
0x2006 = BC7_UNORM_SRGB
0x2D06 = ASTC (thanks, gdkchan!)
0x2F01 = UNKNOWN!
(EDIT: Sent you another example with another unknown format that I found.)