Jump to content

Tool to compress/decompress texture *.ctxr from Shadow of the Colossus PS4


Recommended Posts

  • Engineer
Posted

Seems like this tool works somewhat from what I tried just now with your samples.

CtxrTool GitHub

5 days ago was a new release coincidentally 😁

But probably isn't fully working as I have troubles displaying exported DDS files...

  • Like 1
  • Engineer
Posted

I am getting quite a few matches for different games Bluepoint worked on... I suppose the format may be somewhat different between games, but would suspect there is some form of overlap (mainly between entries that got released close together)

  • Like 1
Posted
2 hours ago, wssdude said:

Seems like this tool works somewhat from what I tried just now with your samples.

CtxrTool GitHub

5 days ago was a new release coincidentally 😁

But probably isn't fully working as I have troubles displaying exported DDS files...

well, i tried that tool thou, even created an issue, but seems like its not the same format, but hey, thanks you for the efforts!

  • 2 months later...
Posted

In years of trying as every new development on any game related to Bluepoint has been made, I have not made any progress with models or textures for this one. No doubt it's possible, but nobody with the ability has ever actively worked on tools for it, so chances of there ever being any are slim to none at this point. 

  • Engineer
Posted
int unk;
int unk; //alway 1
int unk; //alway 0
int unk; //alway 65536
int unk; //alway 0
ushort num_mipmap; // ??
int size_bitmap;
FSkip(0xA);
int type_bitmap; // ?? RGBA ?? DXT5 ?? BC...
byte unk; // ??
ushort height; // ((height & 0x0fff) + 1) * 4
byte unk; // ??
byte unk; // ?? alway 0x0f
byte unk_; // ?? (unk_ - num_mipmap) + 1
byte unk_1; // ?? alyway 0x94 or 0x96
byte unk_2; // ??
byte unk_3; // ?? alway e0
ushort width; // (width + 1) * 8
byte unk; // alway 0
FSkip(0xB);

byte bitmap_data[size_bitmap];

///bitmap had swizzle (PS4)///

it template 010 for .ctxr (decompressed) file.

and i shared my tool for decompress all file compressed

 

example.zip SotC.zip

  • Like 2
  • 1 year later...
Posted

Might be redundant, but since I saw this thread existed and in case people get confused, a lot of the work on this game has been handled here: 

 

and a link to my tools which handle these can be found here in the Releases page with full source https://github.com/Shadowth117/Aqua-Toolset

This tool supports SOTC, Demon's Souls PS5 (and ps3, though that's a different format) models and textures as well as MGS HD Collection .ctxrs. I looked at 360 for MGS HD Collection, but it seemed like they did something pretty different and much more obtuse. It DOES work for the more recent Master Collection ports of 2 and 3 after some tinkering to handle 64 bit, little endian versions of the format. 

Anyways, that should be more than enough for people to have fun with, so enjoy.

Posted
17 minutes ago, Shadowth117 said:

Might be redundant, but since I saw this thread existed and in case people get confused, a lot of the work on this game has been handled here: 

 

and a link to my tools which handle these can be found here in the Releases page with full source https://github.com/Shadowth117/Aqua-Toolset

This tool supports SOTC, Demon's Souls PS5 (and ps3, though that's a different format) models and textures as well as MGS HD Collection .ctxrs. I looked at 360 for MGS HD Collection, but it seemed like they did something pretty different and much more obtuse. It DOES work for the more recent Master Collection ports of 2 and 3 after some tinkering to handle 64 bit, little endian versions of the format. 

Anyways, that should be more than enough for people to have fun with, so enjoy.

Yes, I have used your tool to export DDS from the files, but my goal is to edit and import them back into .ctxr for localization purposes.

Posted
16 hours ago, Bánh Mì said:

Yes, I have used your tool to export DDS from the files, but my goal is to edit and import them back into .ctxr for localization purposes.

Okay well, first of all, you actually don't need to do the Oodle compression on the textures. BluePoint did that on most, but notably not all files and each file has something in the footer that denotes if it uses compression. If you REALLY want to compress it anyways, you can look at how that works here: https://github.com/Shadowth117/PSO2-Aqua-Library/blob/98d7b1a00a4a78fcd8b4344ad918f96f24b1015d/AquaModelLibrary.Data/BluePoint/CompressionHandler.cs#L5

I don't really know why some files have a 6 and some have an 8 there, but it is what it is. 50/50 on if that would work, but again you don't need this for what you're doing. 

You would however need to reswizzle your data, reformat it, and then throw the BluePoint metadata around it, though there's a lot of unknowns. You can check my source and figure that out if you want, but my advice would be resave the data to same pixel format and size, then stuff it back in over the original data after swizzling. https://github.com/Shadowth117/PSO2-Aqua-Library/blob/98d7b1a00a4a78fcd8b4344ad918f96f24b1015d/AquaModelLibrary.Data/BluePoint/CTXR/CTXR.cs#L111

Since you're likely to just be editing ui textures you probably won't even have to worry about mipmaps which makes this a bit simpler for you. 

I might look into this game again when it can emulate passably, but for now, there's what I know. I don't think you'll find a ton of research on this specific version of the format out there past what I have, unless I overlooked something. There's the Metal Gear BluePoint stuff above, but that's very old and is functionally entirely divorced from what got used in Shadow of the Colossus's PS4 remake and beyond besides the file extensions.

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...