Yes this is something regarding indication / indi_base etc. i always was curious about how it worked and tried to document how xmb_plugin is actually making it bigger or to display custom text in it. It would be more convenient instead the notification pop ups and messing with xil / xml files.
Yes there are basically some struct fields and just setting them 1/0 on runtime will actually make them appear...no need to modify xmb_plugin. I figured a bit that some parts of it are also happening in explore_plugin. I will have to search for my notes
Im confident is made by using
animations... or better said...
RCO TOC entry type 0x9
All this is a bit tricky to explain, but in resume... first thing that worths to be mentioned is the xml files generated by rcomage doesnt really exists inside the rco files, rcomage is using xml format just because is more "human readable" than the format used to store the info inside rco
The real format inside rco "splits" the data into tables, based in his data type, as can be seen
in the rco header
And additionally there is a TOC where the info is stored in a special structure using ID's... this TOC is what rcomage uses to export/import to xml
I was burning my eyes with a hexeditor creating frankensteins RCO to understand how that TOC works, there are some examples in the RCO talk page in wiki, but specially this one that shows
the complete TOC of official xai_plugin.rco from firmware 1.02
The goal of that TOC format is pretty much the same than what sony implemented later (at some middle point of PS3 lifetime) with the CXML format is just the RCO format is inherited from PSP so is a lot older than CXML but both are focused to the same purpose... what they are doing is to "condense" the info from a xml file into the smallest size posible and following very strict rules
Ok, returning back to what i was saying... the XMB is build using
RCOXML Objects
Thats an unnnofficial name we use, just because rcomage "baptished" some of that formats, but i have to repeat it, is not xml inside the rco, are just ID's
As example, most of the icons and images displayed in XMB (unless we are talking about something special) are displayed by using a
<plane> object
As you can see , the plane object starts with a group of attributes that includes an attribute named colorScaleA
Wel... the only thing you need to hide/show the icon is to attach that <plane> with a
<recolour> animation (and change the value of alpha inside the animation)
Then is needed to use a code function to "trigger" that animation... usually are triggered by pressing butons or doing actions with the dualshock, but there are other special ones, and rare ones (an unique one is named "Ontick", only used by the clock, i think it counts processor ticks)
--------------------------
I really think (and im sure some of you agrees with me) there are some sprx that contains some kind of data intended to "override" what we see in the xml files generated by rcomage
In other words... the XMB displays many rcoxml objects that doesnt exists in the rco, that objects are overlapping what we see in the xml files generated by rcomage
In my oppinion, the only way to do this is by adding some areas in the sprx following formats pretty similar than the TOC of the RCO files (where the info is condensed, not human readable)
My guess is both are going to be identical... just because is a bit pointless to do conversions, and what they did in the rco TOC is not so bad (works good enought, and is tiny and efficient, so better dont change it)
Im metioning it just incase you find a way to identify where that areas are located in the sprx files... finding something like that could be a big step forward and could open doors to customizations
Btw, if i had to bet... i would say the area of the sprx where devil303 is deleting strings is the "strings table" of the kind of objects im talking about... is an expansion of the "strings table" of the rco "embedded" inside the sprx... and is directly related with another area of the sprx that should be an expansion of the rco TOC (but we dont know where is located)