How to change the color of the download progress bar ?

Hmmm, interesting, yep that video settings seems to be one of the things that could affect the calculations we are trying to do for this tests
Right now i dont know which video settings are the best for this kind of experiments though
and when i retest the black image it show 000000 as it is so modification has been applied

upload_2019-10-10_2-17-35.png
 
But btw... note the new value is pretty close to the previous one you had... so we are not much far away
Overall... the calculations i did was not much precise but are not bad

Most probably we are dragging an small error because i did all calculations thinking the sprx is substracting 0x1c00d0 (this was taken from your test with 0xffffff resulting in a yellow)

But dont get crazy with this trying to find the exact values... if you want to do it for fun or for curiosity sake go for it... but i have the feeling is not going to be so easy
and when i retest the black image it show 000000 as it is so modification has been applied

View attachment 20558
Right, is because the sprx cant substract values under 0, in other words the sprx doesnt makes a "loop" and when it reaches 0 it stops substracting
 
and when i retest the black image it show 000000 as it is so modification has been applied

upload_2019-10-10_2-17-35-png.20558
Wait, im thinking this is a proof that the video settings you are using now are giving us more precise results

Remember the first time you tryed with 0x000000 ?... you had a 0x000002 as result
I said that 0x02 in the blue channel was "garbage", and now it looks it was caused by your previous video settings ;)
 
Wait, im thinking this is a proof that the video settings you are using now are giving us more precise results

Remember the first time you tryed with 0x000000 ?... you had a 0x000002 as result
I said that 0x02 in the blue channel was "garbage", and now it looks it was caused by your previous video settings ;)
yeah thats why it comes to mind and say to myself maybe it could be my settings cause inprecise color result

what i notice anything close to white color will be a greenish color
 
Remember this talk @Louay ?
https://www.psx-place.com/threads/xmb-waves.18807/page-3#post-197481
https://www.psx-place.com/threads/xmb-waves.18807/page-4#post-197486

ps3-hen-2-0-screenshot-2019-08-03-23-10-22-png.19356

January = B6BFC7
February = CCB81B
March = 71AA25
April = DC6E80
May = 1A7B1A
June = 8F6FBA
July = 22B8AA
August = 0636A3
September = 8A359A
October = C2900F
November = 624314
December = B73522


----------------------------------------
Can you make an screenshot of that sidemenu with the tiny squares of the monthly colors to take another look at them ?

Edit:
I mean... now you are using different video setting that displays the colors more preciselly... so i guess that monthly colors are going to be a bit diferent too
 
Remember this talk @Louay ?
https://www.psx-place.com/threads/xmb-waves.18807/page-3#post-197481
https://www.psx-place.com/threads/xmb-waves.18807/page-4#post-197486

ps3-hen-2-0-screenshot-2019-08-03-23-10-22-png.19356

January = B6BFC7
February = CCB81B
March = 71AA25
April = DC6E80
May = 1A7B1A
June = 8F6FBA
July = 22B8AA
August = 0636A3
September = 8A359A
October = C2900F
November = 624314
December = B73522


----------------------------------------
Can you make an screenshot of that sidemenu with the tiny squares of the monthly colors to take another look at them ?
You mean after chaning the display settings of course here are :

January = B6BFC7
February = CCB81B
March = 71AA25
April = DC6E80
May = 1C7D1C
June = 9171BC
July = 22B8AA
August = 0838A5
September = 8B369B
October = C2900F
November = 634415
December = B73522

PS3 HEN 2.0 Screenshot 2019-10-10 01-46-08.png
PS3 HEN 2.0 Screenshot 2019-10-10 01-46-12.png
PS3 HEN 2.0 Screenshot 2019-10-10 01-46-17.png
 
There are small imprecissions in between the colors in the screenshots, are just 1 unit up or 1 unit down... im trying to see if they follows some pattern but i dont understand why it happens
 
I made a single image with all your screenshots
veUfgDh.png


While doing it i realized about a couple of things:
-the screenshot you posted some weeks ago is the one that differs more from the others you took today
-the tiny squares are filled with a small degrade, clicking with the "color picker" a couple of pixels left or right from the center could change his value
 
I think i got why the values substracted by the sprx varies proportionally to the original color ;)

It seems to work exactly like in the RCO format when are used the attributes colorScaleR, colorScaleG, colorScaleB
Usually they have the value 1, it works as a multiplyer... so the 1 respects the original colors, like in this example:
Code:
<Plane name="myplane" colorScaleR="1" colorScaleG="1" colorScaleB="1">
Lets say... if the image is made with color 0x080602 and you multiply all the channels by 1 you have the same color, and if you multiply them by 0 it becomes black (ok, ok, this explaination was not needed but is an intro to what comes next)

If you multiply the channels separatedly by... lets say 0.5... then the values are reduced to half the original value, as example, the color i said above 0x080602, if we multiply all his channels by 0.5 it becomes 0x040301
In this example the sprx only substracted 4 units from red channel, 3 from green, and 1 from blue
But if the original color is... lets say... 0xffffff and we multiply it by 0.5 we are substracting a lot

The point is... the amount substrated by the sprx varies because the substraction is made by using a multiplyer... so the only thing we can try to find is that multiplyer

This is why in some of your tests the amount substracted was a bit different @Louay ;)
In this case the mutliplyers are smaller than 1 because we know it reduces the values of red and blue channels
In other words... it substracts:
-a bit from the red channel
-nothing from the green channel
-a lot from the blue channel
The multiplyer for red channel probably is 0.9 (or 0.8)
And the multiplyer for blue channel probably is 0.1 (or 0.2)
 
Last edited:
I think i got why the values substracted by the sprx varies proportionally to the original color ;)

It seems to work exactly like in the RCO format when are used the attributes colorScaleR, colorScaleG, colorScaleB
Usually they have the value 1, it works as a multiplyer... so the 1 respects the original colors, like in this example:
Code:
<Plane name="myplane" colorScaleR="1" colorScaleG="1" colorScaleB="1">
Lets say... if the image is made with color 0x080602 and you multiply all the channels by 1 you have the same color, and if you multiply them by 0 it becomes black (ok, ok, this explaination was not needed but is an intro to what comes next)

If you multiply the channels separatedly by... lets say 0.5... then the values are reduced to half the original value, as example, the color i said above 0x080602, if we multiply all his channels by 0.5 it becomes 0x040301
In this example the sprx only substracted 4 units from red channel, 3 from green, and 1 from blue
But if the original color is... lets say... 0xffffff and we multiply it by 0.5 we are substracting a lot

The point is... the amount substrated by the sprx varies because the substraction is made by using a multiplyer... so the only thing we can try to find is that multiplyer

This is why in some of your tests the amount substracted was a bit different @Louay ;)
In this case the mutliplyers are smaller than 1 because we know it reduces the values of red and blue channels

The multiplyer for red channel probably is 0.9 (or 0.8)
And the multiplyer for blue channel probably is 0.1 (or 0.2)
and the multiplyer in sprx is clear or just code ? does it exist in rco !
 
The sprx is generating this object on runtime:
Code:
<Progress name="unknown_name" colorScaleR="0.1" colorScaleG="1" colorScaleB="0.9" progressImageBase="image:tex_default_progress_base" progressImageSlider="image:tex_default_progress_slider" progressImageBaseShadow="image:tex_default_progress_base_shadow" >

See how i used the colorScale multiplyers in that line, and the images affected by them, is what i was mentioning here btw @LuanTeles
https://www.psx-place.com/threads/ps3-pro-mod-release-information-thread.14641/page-37#post-207110
https://www.psx-place.com/threads/ps3-pro-mod-release-information-thread.14641/page-37#post-207122

You said that <Progress> object doesnt exists in the xml... yeah i know
The point is the sprx is generating it, so doesnt appears in the xml... and we dont even know his "name"

But the idea was... if we find at which point of the xml hierarchy is created (and his name) then we can add it to the xml
And from that point we could have some control of it by modifying it in the xml
We know the sprx probably is going to ignore most/all info about it in the xml... but well... we dont know

Also, by doing this we could change his colorScale by linking it to an animation, like this ;)
Code:
<Progress name="unknown_name" onInit="anim:recolor_fix" colorScaleR="0.1" colorScaleG="1" colorScaleB="0.9" progressImageBase="image:tex_default_progress_base" progressImageSlider="image:tex_default_progress_slider" progressImageBaseShadow="image:tex_default_progress_base_shadow" >

And in the animation we use the <Recolor> with the colorScale multiplyers and a time of 0 (to apply the changes inmediatly when the object is loaded)
 
Last edited:
For the record, i imagined a very accurate way to find the color multiplyers used by the sprx
Probably at this point most of you are not interested because as mentioned before is imposible to have a white color just by modifying the RCO contents... but this allows to have a almost perfect control of the colors that are going to be displayed, and also allows you to see in PC the range of colors availables to be used in that progress bar

The idea is... ok, we know the sprx is creating this object on runtime:
Code:
<Progress name="unknown_name" colorScaleR="0.1" colorScaleG="1" colorScaleB="0.9" progressImageBase="image:tex_default_progress_base" progressImageSlider="image:tex_default_progress_slider" progressImageBaseShadow="image:tex_default_progress_base_shadow" >

So... we can create another custom progres bar next to it, using the same image, and making a couple of tests with the red and blue multiplyers
The problem is the official progress bar is driven by the sprx, and the sprx changes his sizeX on real time, we cant do that, also we cant create a "link" from our custom progress bar to any sprx (probably there is some way but right now i dont know it and i dont care beause i dont need it for this experiment)

So instead of a custom <Progress> we can use a custom <Plane>, this way we can give it a permanent sizeX of 1000 pixels or so (the width doesnt really matters but is better if we do it big)
The height needs to be exacty the same than the official though

And thats all... display this custom "fake" progress bar next to the official, both using the same "progress slider" image, then take a screenshot and use the color picker in photoshop to take samples of both bars... and both should have exactly the same color

Incase the color is diferent, you know... is needed to change this values in the custom "fake" progress bar
colorScaleR="0.1"
colorScaleB="0.9"

Im pretty sure the multiplyers are around that values, and only have 1 decimal because 100% of the official values have only 1 decimal
So the 0.1 is either... 0.1... or 0.2 (i really doubt it could be 0.3)
And the 0.9 is either... 0.9... or 0.8 (i really doubt it could be 0.7)

To be honest im being a bit lazy because i guess with the tests already made by @Louay it could be verifyed if what im saying about the mutiplyers is right or wrong... if someone wants to warm up the calculator and debunk what im saying please do
 
Last edited:
Look, the most interesting tests made by @Louay

With 0xFFFFFF (white)
upload_2019-10-9_3-4-17-png.20530

With 0xFF0000 (red)
upload_2019-10-9_2-59-14-png.20528

With 0x0000FF (blue)
upload_2019-10-9_2-49-35-png.20522


The red channels had FF originally... converted to decimal = 255... multiplyed by 0.9 = 229.5... converted to hexadecimal = E5
The blue channels had FF originally... converted to decimal = 255... multiplyed by 0.2 = 51... converted to hexadecimal = 33

The way how the firmware does the multiplication seems a bit innacurate... but yeah it seems to be like that :)
colorScaleR="0.9"
colorScaleB="0.2"
 
Last edited:
For the record, i imagined a very accurate way to find the color multiplyers used by the sprx
Probably at this point most of you are not interested because as mentioned before is imposible to have a white color just by modifying the RCO contents... but this allows to have a almost perfect control of the colors that are going to be displayed, and also allows you to see in PC the range of colors availables to be used in that progress bar

The idea is... ok, we know the sprx is creating this object on runtime:
Code:
<Progress name="unknown_name" colorScaleR="0.1" colorScaleG="1" colorScaleB="0.9" progressImageBase="image:tex_default_progress_base" progressImageSlider="image:tex_default_progress_slider" progressImageBaseShadow="image:tex_default_progress_base_shadow" >

So... we can create another custom progres bar next to it, using the same image, and making a couple of tests with the red and blue multiplyers
The problem is the official progress bar is driven by the sprx, and the sprx changes his sizeX on real time, we cant do that, also we cant create a "link" from our custom progress bar to any sprx (probably there is some way but right now i dont know it and i dont care beause i dont need it for this experiment)

So instead of a custom <Progress> we can use a custom <Plane>, this way we can give it a permanent sizeX of 1000 pixels or so (the width doesnt really matters but is better if we do it big)
The height needs to be exacty the same than the official though

And thats all... display this custom "fake" progress bar next to the official, both using the same "progress slider" image, then take a screenshot and use the color picker in photoshop to take samples of both bars... and both should have exactly the same color

Incase the color is diferent, you know... is needed to change this values in the custom "fake" progress bar
colorScaleR="0.1"
colorScaleB="0.9"

Im pretty sure the multiplyers are around that values, and only have 1 decimal because 100% of the official values have only 1 decimal
So the 0.1 is either... 0.1... or 0.2 (i really doubt it could be 0.3)
And the 0.9 is either... 0.9... or 0.8 (i really doubt it could be 0.7)

To be honest im being a bit lazy because i guess with the tests already made by @Louay it could be verifyed if what im saying about the mutiplyers is right or wrong... if someone wants to warm up the calculator and debunk what im saying please do

the problem is under which plane to add it, i dont know where the progress bar page info is located, because adding the plane without beeing called to the page of it, will do nothing
 
Okay i found it is in nas_plugin.rco.

<Page name="nas_installer"
Code:
<Page name="nas_installer" pageMode="0x1101" pageOnInit="nothing" pageOnCancel="nothing" pageOnContext="nothing" pageOnActivate="bar_recolor">
<Plane name="plane_content_info" positionX="0" positionY="0" positionZ="0" colorScaleR="0.1" colorScaleG="0.1" colorScaleB="0.1" colorScaleA="0" sizeX="0" sizeY="0" sizeZ="0" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x0" positionOverrideY="0x0" positionOverrideZ="0x0" sizeOverrideX="0x7000000" sizeOverrideY="0x8000000" sizeOverrideZ="0x0" planeImage="nothing" planeResizeMode="0x0">
<Plane name="plane_progress_unknown" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="0" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x320a0000" positionOverrideY="0x340a0000" positionOverrideZ="0x0" sizeOverrideX="0xcb080100" sizeOverrideY="0xcc080100" sizeOverrideZ="0x0" planeImage="image:game_tex_default" planeResizeMode="0x0"></Plane>
<Plane name="plane_progress_video" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="0" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x320a0000" positionOverrideY="0x340a0000" positionOverrideZ="0x0" sizeOverrideX="0x21050100" sizeOverrideY="0x22050100" sizeOverrideZ="0x0" planeImage="image:video_tex_default" planeResizeMode="0x0"></Plane>
<Plane name="plane_progress_thumbnail" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="0" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x320a0000" positionOverrideY="0x340a0000" positionOverrideZ="0x0" sizeOverrideX="0xf010100" sizeOverrideY="0x15010100" sizeOverrideZ="0x0" planeImage="nothing" planeResizeMode="0x0"></Plane>
<Plane name="plane_progress_thumbnail_game" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="0" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x320a0000" positionOverrideY="0x340a0000" positionOverrideZ="0x0" sizeOverrideX="0x12010100" sizeOverrideY="0x18010100" sizeOverrideZ="0x0" planeImage="nothing" planeResizeMode="0x0"></Plane>
<Plane name="plane_progress_thumbnail_marlin" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="0" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x320a0000" positionOverrideY="0x340a0000" positionOverrideZ="0x0" sizeOverrideX="0x13010100" sizeOverrideY="0x19010100" sizeOverrideZ="0x0" planeImage="nothing" planeResizeMode="0x0"></Plane>
<Text name="text_progress_filename" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x320a0100" positionOverrideY="0x350a0100" positionOverrideZ="0x0" sizeOverrideX="0x330a0100" sizeOverrideY="0x15000100" sizeOverrideZ="0x0" textMessage="nothing" textFontStyle="nothing" textFontMode="0x1010000" textUnk29="0x1" textFontSizeY="10" textTopColorScaleR="1" textTopColorScaleG="1" textTopColorScaleB="1" textBottomColorScaleR="1" textBottomColorScaleG="1" textBottomColorScaleB="1" textLineSpacing="0" textUnk37="0x0" textUnk38="0x0" textUnk39="0x0" textCharacterSpacing="0" textShadowOffsetX="4" textShadowOffsetY="-5" textShadowOffsetZ="0" textShadowColorScaleR="0.25" textShadowColorScaleG="0.25" textShadowColorScaleB="0.25" textShadowColorScaleA="1" textUnk48="0x0" textUnk49="0x0" textUnk50="0x0" textUnkFloat51="1" textUnkFloat52="1" textUnkFloat53="1" textUnkFloat54="1" textResizeMode="0x0" textOverrideUnk56="0x15000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
<Text name="performance_text" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x500" positionOverrideY="0x600" positionOverrideZ="0x0" sizeOverrideX="0x500" sizeOverrideY="0x500" sizeOverrideZ="0x0" textMessage="text:msg_psp_usb_connect" textFontStyle="nothing" textFontMode="0x1000001" textUnk29="0x1" textFontSizeY="0" textTopColorScaleR="1" textTopColorScaleG="1" textTopColorScaleB="1" textBottomColorScaleR="1" textBottomColorScaleG="1" textBottomColorScaleB="1" textLineSpacing="0" textUnk37="0x0" textUnk38="0x0" textUnk39="0x0" textCharacterSpacing="0" textShadowOffsetX="4" textShadowOffsetY="-5" textShadowOffsetZ="0" textShadowColorScaleR="0.25" textShadowColorScaleG="0.25" textShadowColorScaleB="0.25" textShadowColorScaleA="1" textUnk48="0x0" textUnk49="0x0" textUnk50="0x0" textUnkFloat51="1" textUnkFloat52="1" textUnkFloat53="1" textUnkFloat54="1" textResizeMode="0xffffffff" textOverrideUnk56="0x14000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
<Text name="text_progress_size" positionX="0" positionY="0" positionZ="0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" sizeX="0" sizeY="0" sizeZ="1" sizeScaleX="1" sizeScaleY="1" sizeScaleZ="1" anchorMode="0x0" onInit="nothing" positionOverrideX="0x320a0100" positionOverrideY="0x350a0100" positionOverrideZ="0x0" sizeOverrideX="0x330a0100" sizeOverrideY="0x15000100" sizeOverrideZ="0x0" textMessage="nothing" textFontStyle="nothing" textFontMode="0x1010000" textUnk29="0x1" textFontSizeY="10" textTopColorScaleR="1" textTopColorScaleG="1" textTopColorScaleB="1" textBottomColorScaleR="1" textBottomColorScaleG="1" textBottomColorScaleB="1" textLineSpacing="0" textUnk37="0x0" textUnk38="0x0" textUnk39="0x0" textCharacterSpacing="0" textShadowOffsetX="4" textShadowOffsetY="-5" textShadowOffsetZ="0" textShadowColorScaleR="0.25" textShadowColorScaleG="0.25" textShadowColorScaleB="0.25" textShadowColorScaleA="1" textUnk48="0x0" textUnk49="0x0" textUnk50="0x0" textUnkFloat51="1" textUnkFloat52="1" textUnkFloat53="1" textUnkFloat54="1" textResizeMode="0x0" textOverrideUnk56="0x15000100" textOverrideUnk57="0x3000000" textOverrideUnk58="0x0"></Text>
</Plane>
</Page>


The idea is to set the OnInit to an animation to recolor the Progress bar

<AnimTree>
<Anim name="recolor_progress_bar">
<Recolour object="object:????" time="0" accelMode="0x0" colorScaleR="1" colorScaleG="1" colorScaleB="1" colorScaleA="1" />
</Anim>
</AnimTree>

but the object is added by the sprx, but what is its name?
Can we change to object="IMAGE:????"
 
Last edited:
I think it will not be possible because the onInit in the nas_plugin would have to call the image from the system_plugin.rco

to recolor ir, afaik is not possible
 

Similar threads

Back
Top