PS3 Replacing icon textures inside icontex.qrc

@sandungas
It gives me an error when I want to replace an icon from the application with a dds so I manually compressed it with zlib and added it, saved the changes and only load the waves. I don't know what could be failing.
I have updated net framework to version 4.8 to discard options but nothing changed

Sounds like you have mixed up files or something. I suggest you start fresh with a newly dumped OFW icontex.qrc that you know works ok, and use ONLY the Xforge app. Replacing icons is super easy now with Xforge using the replace file function. First you would need to select, then extract the 2n file to a folder. Then select the 7n file and click replace file, browse to the previously saved 2n file and select it, Then save the QRC.

Here is alternative "manual" way to achieve what you want without using the replace file function, it might suit you better.

1. Open up the OFW icontex.qrc in Xforge, then go to file, extract all. Choose a location for the extracted files to be dumped.

2. Now in windows explorer go into that folder and find and then delete the 7n file.

3. Then in that same folder make a copy of 2n and rename it to 7n. Do not do anything else to any of the files.

4. Go back to Xforge and click file > open, then browse to the folder and select the icontex.xml, then it will ask you for a name and location to save your modified QRC.

That's it.


EDIT:
@sandungas or someone familiar with Xforge: Can you try what I just mentioned above. I know it should work, but I am getting an error about missing files when I try to repack, I have freshly installed Win10 here so maybe its just my PC.
 
Last edited:
@sandungas
It gives me an error when I want to replace an icon from the application with a dds so I manually compressed it with zlib and added it, saved the changes and only load the waves. I don't know what could be failing.
I have updated net framework to version 4.8 to discard options but nothing changed
Your manual edit is breaking it in some way... but i still dont understand if the DDS file you are adding is an image you made or if is other of the official icons from inside icontex.qrc

Incase is other of the official icons just do what @DeViL303 said, is just a matter of replacing a file by other, and XForge is not going to made any conversion to the official DDS files so for sure are valid


Otherway... if your DDS image is custom made then thats another story that worths a longer explain
The talk in this thread started because they was trying to include DDS images in real colors... but this is not what the XMB does you know... is a hack and by now nobody gave a proof if XMB allows for it

The other way to do it (probaly what you are trying) is to create a DDS image following the same exact DDS settings than the officials... right now i dont remember the exact format (it can be made with nvidia legacy texture tools... is just an small .exe in command line with hundreds of options availables)
But the best hint i can give you is to open one of the official DDS files in photoshop, and take a look at the RGBA layers individually (by keeping only 1 layer enabled and the others disabled)... and you are going to see the official DDS images looks like this
From left to right: Red channel, Green channel, Blue channel, Alpha channel
PsdeWpp.jpg


The XMB only displays the info from the blue channel in white (together with the alpha channel as a "crop mask")... and the info from red and green channels are only used for shader effects (lighting/shadows, distortions, color burnings, 3d effects, etc...)
Pretty much... blue channel (combined with the alpha) is the real pixel info, but is displayed in white not blue, and red and green channel are "fireworks"

The preview window in XForge does something similar with the DDS files inside icontext.qrc (and some other DDS files inside other QRC files)... it takes the info from blue channel "copypastes it" on top of red and green channels and creates a PNG image with it that results in white color tones (also it flips the image vertically)
In other words... the preview window of XForge is not displaying the info from red and green channels in the DDS files from inside icontex.qrc because are intended to be used for the shader effects and implementing this kind of "DDS shader effects support" feature for the preview window of XForge was very costly

In the [XMB]->[Settings]->[Theme Settings] there is a mode (dont remember the name if is the "classic" or the other) where the icons are displayed in plain white tones without shader effects. This technically is ignoring the pixel info from red and green channels in the same way is made in the preview window of XForge ;)
 
Last edited:
@sandungas @pink1 I think there could be a bug with the extract all function when used on icontex.qrc. Fairly sure it's not just my PC but I need one of you guys to confirm it.


It seems the xml is being created with the ".dds" extension on every "file src". Then when I try to repack, it is finding no files as there is no ".dds" extension.

If I manually edit the icontex.xml to remove all the ".dds" then it works ok and repacks successfully. But now the QRC is approx 4 times larger? I am not sure what is happening tbh.
 
@sandungas @pink1 I think there could be a bug with the extract all function when used on icontex.qrc. Fairly sure it's not just my PC but I need one of you guys to confirm it.


It seems the xml is being created with the ".dds" extension on every "file src". Then when I try to repack, it is finding no files as there is no ".dds" extension.

If I manually edit the icontex.xml to remove all the ".dds" then it works ok and repacks successfully. But now the QRC is approx 4 times larger? I am not sure what is happening tbh.


it's just my problem, i can never create the file properly.
I am using the functional hfw icontex.qrc.
trying to modify it gets corrupted when unpacking and repackaging or adding an icon extracted from the same file.
When extracting the files it extracts them as dds and in the xml they appear only with their name (without extension), that is why it cannot find the files to repackage, when modifying the xml with the correct names, create a file of about 5.36 MB

I hope I have explained myself well, since I speak Spanish and I don't know much English.
 
Your manual edit is breaking it in some way... but i still dont understand if the DDS file you are adding is an image you made or if is other of the official icons from inside icontex.qrc


I am using an icon from icontex.qrc. the settings icon to be exact. The idea is to replace the network icon with the settings icon. I have extracted the files with xforge (which leaves me a dds icon) that I compress with zlib and replace it in xforge with the desired icon that shows a successful file with the correct weight and 100% functional, but when passing it to the console never load the xmb

I hope I have explained myself well, since I speak Spanish and I don't know much English.
 
I am using an icon from icontex.qrc. the settings icon to be exact. The idea is to replace the network icon with the settings icon. I have extracted the files with xforge (which leaves me a dds icon) that I compress with zlib and replace it in xforge with the desired icon that shows a successful file with the correct weight and 100% functional, but when passing it to the console never load the xmb

I hope I have explained myself well, since I speak Spanish and I don't know much English.
Your english is fine. You should not need to use zlib on any files when using Xforge.. but there is an issue as far as I can see. When I try do a normal file replace (extract file, then replace file) I get this error when I click "replace file"

upload_2020-11-14_1-5-15.png


When I try to a complete icontex.qrc extraction and rebuild I get this error

upload_2020-11-14_2-1-57.png


Then it repacks a 160byte qrc if I force it to continue.

After extracting all, the folder looks like this:
upload_2020-11-14_2-6-44.png


The xml looks this:

upload_2020-11-14_2-7-50.png


Something is wrong somewhere.
 
@sandungas @pink1 I think there could be a bug with the extract all function when used on icontex.qrc. Fairly sure it's not just my PC but I need one of you guys to confirm it.


It seems the xml is being created with the ".dds" extension on every "file src". Then when I try to repack, it is finding no files as there is no ".dds" extension.

If I manually edit the icontex.xml to remove all the ".dds" then it works ok and repacks successfully. But now the QRC is approx 4 times larger? I am not sure what is happening tbh.
Auch, im having the same bugs:

1) the DDS files from icontex.qrc are extracted without file extension (but are really the original DDS files i been checking them in photoshop and are fine)
2) The "src" in the xml contains the .dds file extension, so XForge cant find them when we try to rebuild it
3) If i remove the .dds file extension from the "src" in the .xml the resulting qrc file have a huge size

The files should be extracted with the .dds extension because is real... is just his names inside the qrc container doesnt stores the extension, Xforge needs to add it at extraction time, i remember we was talking about this because this problem with the "missing" file extension names only happens inside icontex.qrc but i guess we slipped it and forgot to verify if the solution was working :rolleyes:
The "src" in the xml is fine, with the .dds file extension

The problem of 3) is a bit weird, probably is a consequence of the incorrect names... im taking a look at the rebuilt qrc file (with huge size) and it seems it contains hundreds of zblib compressed files, it looks like it was included more files than the ones that appers in the xml... or some of them was included repeatedlly
 
Last edited:
When you delete the .dds file extension in the "src" of the xml file XForge can find them, but the resulting qrc file is huge (5.86MB)
Code:
<?xml version="1.0" encoding="UTF-8"?>
 <qrc compression="False" attributes="3">
	<file-table>
		<file src="1n" id="1n" compression="True" />
		<file src="2n" id="2n" compression="True" />
		<file src="3n" id="3n" compression="True" />
		<file src="4n" id="4n" compression="True" />
		<file src="5n" id="5n" compression="True" />
		<file src="6n" id="6n" compression="True" />
		<file src="7n" id="7n" compression="True" />
		<file src="8n" id="8n" compression="True" />
		<file src="9n" id="9n" compression="True" />
		<file src="10n" id="10n" compression="True" />
		<file src="11n" id="11n" compression="True" />
		<file src="12n" id="12n" compression="True" />
		<file src="13n" id="13n" compression="True" />
		<file src="14n" id="14n" compression="True" />
		<file src="15n" id="15n" compression="True" />
		<file src="16n" id="16n" compression="True" />
		<file src="17n" id="17n" compression="True" />
		<file src="18n" id="18n" compression="True" />
		<file src="19n" id="19n" compression="True" />
		<file src="20n" id="20n" compression="True" />
		<file src="21n" id="21n" compression="True" />
		<file src="22n" id="22n" compression="True" />
		<file src="23n" id="23n" compression="True" />
		<file src="24n" id="24n" compression="True" />
		<file src="25n" id="25n" compression="True" />
		<file src="26n" id="26n" compression="True" />
		<file src="27n" id="27n" compression="True" />
		<file src="28n" id="28n" compression="True" />
		<file src="29n" id="29n" compression="True" />
		<file src="30n" id="30n" compression="True" />
		<file src="31n" id="31n" compression="True" />
		<file src="32n" id="32n" compression="True" />
		<file src="33n" id="33n" compression="True" />
		<file src="34n" id="34n" compression="True" />
		<file src="35n" id="35n" compression="True" />
		<file src="36n" id="36n" compression="True" />
		<file src="37n" id="37n" compression="True" />
		<file src="38n" id="38n" compression="True" />
		<file src="39n" id="39n" compression="True" />
		<file src="40n" id="40n" compression="True" />
		<file src="41n" id="41n" compression="True" />
		<file src="42n" id="42n" compression="True" />
		<file src="43n" id="43n" compression="True" />
		<file src="44n" id="44n" compression="True" />
		<file src="45n" id="45n" compression="True" />
		<file src="46n" id="46n" compression="True" />
		<file src="47n" id="47n" compression="True" />
		<file src="48n" id="48n" compression="True" />
		<file src="49n" id="49n" compression="True" />
		<file src="50n" id="50n" compression="True" />
		<file src="51n" id="51n" compression="True" />
		<file src="52n" id="52n" compression="True" />
		<file src="53n" id="53n" compression="True" />
		<file src="54n" id="54n" compression="True" />
		<file src="55n" id="55n" compression="True" />
		<file src="56n" id="56n" compression="True" />
		<file src="57n" id="57n" compression="True" />
		<file src="58n" id="58n" compression="True" />
		<file src="59n" id="59n" compression="True" />
		<file src="60n" id="60n" compression="True" />
		<file src="61n" id="61n" compression="True" />
		<file src="62n" id="62n" compression="True" />
		<file src="63n" id="63n" compression="True" />
		<file src="64n" id="64n" compression="True" />
		<file src="65n" id="65n" compression="True" />
		<file src="66n" id="66n" compression="True" />
		<file src="67n" id="67n" compression="True" />
		<file src="68n" id="68n" compression="True" />
		<file src="69n" id="69n" compression="True" />
		<file src="70n" id="70n" compression="True" />
		<file src="dif" id="dif" compression="True" />
	</file-table>
</qrc>
 
You should not need to use zlib on any files when using Xforge..
Yes I know. I read all the information about it, but when I came across the same error you found, I tried to find a way to fix it and noticed that the extracted file was just a dds and was not zlib compressed. I did a manual compression with zlib and was able to add the extracted icon successfully, still the console without loading the xmb. It may be an error of xforge when writing the replacement or of zlib when compressing it.
The problem of 3) is a bit weird, probably is a consequence of the incorrect names... im taking a look at the rebuilt qrc file (with huge size) and it seems it contains hunreds of zblib compressed files, it looks like it was included more files than the ones that appers in the xml... or some of them was included repeatedlly


It seems that compressing the file in zlib xforge adds more content inside each icon, since the weight of all is exactly the same, it could be that this leaving inside each icon the uncompressed dds + compression
 
Yes I know. I read all the information about it, but when I came across the same error you found, I tried to find a way to fix it and noticed that the extracted file was just a dds and was not zlib compressed. I did a manual compression with zlib and was able to add the extracted icon successfully, still the console without loading the xmb. It may be an error of xforge when writing the replacement or of zlib when compressing it.
XForge doesnt makes a safety check to the data inside the file to know if is really a .dds (or any other fileformat), so when you compressed it manually in zlib, and then you passed it to XForge it was compressed again in zlib
Thats how it should work incase this Xforge version was working fine... but it doesnt so im not so sure what happened
Anyway, you should not do this when using Xforge because the tool deals with all zlib compressions and decompressions automatically

Btw, a nice feature of XForge (that took some time to achieve) is you can extract the contents of a qrc, then rebuild it (without any modification) and the resulting qrc file should be identical to the original (exactly the same MD5). Thats a proof that the way how XForge is rebuilding it is perfect
Sadly, the support for icontex.qrc is broken in this XForge version, we need to wait for @pink1 to review the code and see if he finds the problems

It seems that compressing the file in zlib xforge adds more content inside each icon, since the weight of all is exactly the same, it could be that this leaving inside each icon the uncompressed dds + compression
It looks like 2 problems, the first problem is just a detail, we decided to add the .dds extensions at extraction time because is more intuitive. In the actual XForge version this problem can be bypassed in 2 ways... by removing the extension in the xml or by adding the file extensions to the files... but both results in a icontex.qrc bigger than 5mb and that seems to be a different problem

Right now i dont know why is so big but dont try it in PS3, it seems XForge is adding some "garbage" at the end of icontex.qrc
 
I identifyed a bit better what is happening, the files are compressed fine in zlib, but there is some garbage bytes at the end of every zlib file
There is a chunk of length 0x11270 after the first zlib file, probably the same amount (or similar) at the end of every other zlib file
Icontex.qrc contains around 70 files so... 0x11270 multiplyed by 70 probably is the total amount of garbage in the qrc file, thats why is so big (4.917.920 bytes of garbage)

Hope this gives a hint to imagine at which point of the code is the problem @pink1 the header, TOC, and the files itself are fine (and it seems the garbage is not compressed but is "indexed" in the TOC as valid data)
The problem seems to happen when everything is "packed" together, and before the TOC is created
 
Last edited:
I never made a DDS image like that before, but i been practising a bit and i think i got it
This is how it looks the official "friends" icon DDS if you open it in photoshop
hMfVFu3.jpg

And this is how it looks the guinea pig, is inspired in the official design but is made entirelly from scratch
The most interesting detail of this process is i think it can be automated completly
kN8WqIn.jpg


Btw @BRIAN-JESHUA what is you goal when you was trying to copy the settings icon to network XMB column ?... i think this change is going to be a bit "meh"... is better to use a custom icon but im not sure how are you going to repurpose the network column
 
Your english is fine. You should not need to use zlib on any files when using Xforge.. but there is an issue as far as I can see. When I try do a normal file replace (extract file, then replace file) I get this error when I click "replace file"

View attachment 28689

When I try to a complete icontex.qrc extraction and rebuild I get this error

View attachment 28690

Then it repacks a 160byte qrc if I force it to continue.

After extracting all, the folder looks like this:
View attachment 28691

The xml looks this:

View attachment 28692

Something is wrong somewhere.


Same errors here :S
 
Have you ever released an update?
I'll try it on my end. I've never tried xforge, and the link seems to be dead. does it happen when extracting the icontex.qrc or only when injecting a .dds? I saw that post by @DeViL303 regarding not using a zlib'd compressed file, just using .dds, so I could try it. probably won't work, but at least you've got another tester.
 
I'll try it on my end. I've never tried xforge, and the link seems to be dead. does it happen when extracting the icontex.qrc or only when injecting a .dds? I saw that post by @DeViL303 regarding not using a zlib'd compressed file, just using .dds, so I could try it. probably won't work, but at least you've got another tester.

Just when replacing the .dds files, I can replace them without issues in other QRCs. However, with icontex.qrc, even if I simply extract and replace the same .dds, it results in a header error and fails to compile.
 
Just when replacing the .dds files, I can replace them without issues in other QRCs. However, with icontex.qrc, even if I simply extract and replace the same .dds, it results in a header error and fails to compile.

I'm not sure if the other files are like icontex.qrc or not, because the base qrc is already "flattened," according to psdevwiki, so each icon is individually zlib'd instead of the whole qrc. maybe that's the problem? could you share xforge with me? the link on here is dead.
 

Similar threads

Back
Top