Jump to content

[PS3] Gundam Battle Operation Next _col.bin files


Go to solution Solved by h3x3r,

Recommended Posts

  • Members
Posted

Hi guys! I have these .bin files with the header CCHG1.5, which from trying to read the game's decompiled ELF is under the "ColorChangeManager" and "System"

image.png.f740a8f83c98595d0d43cea13f138ba0.pngv

image.png.b18ae2ff4f70fbb4b5183d2ce4acd0c1.png

so I assume its a file format for the game's system to read, and also the filepath for the _col.bin is found on a part of the ELF as a pointer or somethingimage.png.d3a7058a5150cb7e5d3537f5e0eb6330.png
image.png.ff1c17962d534210913595ebdb9fb918.png

I assume its either an archive again since its a .bin file or a custom file format for storing images.

col files.7z

  • 2 weeks later...
  • Engineers
Posted (edited)

And it's compressed... I see multiple chunks. Chunk table > uint16 compressed size, But not sure where is offset

image.thumb.png.66e83ceda6c063cdce950fd0f83055e9.png

Compression is deflate. Offzip should dump it into one file.

After decompression I get this textures

image.thumb.png.337abca0ac8998b2990db715dcde7492.png

image.thumb.png.9205048794900539cdc616b33a21b7db.png

Edited by h3x3r
  • Like 1
  • Thanks 1
Posted

And just to add a bit more info - the file count is at offset 0x14 (Big Endian).  Offset 0x60 contains the offsets for each list of compressed sizes, followed by the filenames.  There aren't any offsets - you just have to align to the next 16-byte offset after reading the compressed data blocks.

 

 

  • Engineers
  • Solution
Posted (edited)

O.K but how to know how many blocks are there?. I noticed that texture with 1024 width use 256 blocks and texture with 512 width use 128 blocks. Could this be the solution?

 

Here's BMS. Hope my guess right...

txt describes width/height of texture. You must figure out pixel format on your own.

get BaseFileName basename
endian big
comtype deflate_noerror

getdstring Sign 0x8
get Unknown_0 uint32
get TotalFileSize uint32
get Unknown_1 uint32
get TextureCount uint32
get TextureWidth uint32
get TextureHeight uint32
getdstring Dummy 0x40
xmath ChunkCount "TextureWidth / 4"

for i = 0 < TextureCount
	get ChunkTableOffset[i] uint32
next i

for i = 0 < TextureCount
	get TextureName[i] string
next i

for i = 0 < TextureCount
	goto ChunkTableOffset[i]
	for j = 0 < ChunkCount
		get CompressedChunkSize[j] uint16
	next j
	
	for j = 0 < ChunkCount
		savepos Offset
		xmath CompressedChunkCSize "CompressedChunkSize[j] ?align 16"
		getdstring CompressedChunk CompressedChunkCSize
		string Name p "%s/%s.dat" BaseFileName TextureName[i]
		append 0
		clog Name Offset CompressedChunkSize[j] CompressedChunkSize[j]
	next j
	string TexDef p "%s/%s_def.txt" BaseFileName TextureName[i]
	slog TexDef 0x18 -1 long
	slog TexDef 0x1C -1 long
next i

 

Edited by h3x3r
  • Thanks 1
  • Members
Posted

Thank you! The game uses many .GTF Files so I assume it's a gtf file or something, but maybe not.

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
×
×
  • Create New...