PS3 [Research] Modifying the Coldboot/Gameboot Sequence (custom_render_plugin.sprx/rco)

If I want to test out some files from here, or want to try my own after editing, is there a homebrew to do that? I know of JaiCraB USB Firm Loader, which does not seem to work anymore. :/
No, not really. I am working on a solution to that but its not ready for public beta testing yet, for now you have to test on flash and risk soft brick. All the files I posted here worked fine for others so far but xmb modding is at your own risk of course.

Dont worry too much though when testing your own patches as long as you stay in dev_flash, in the past i have tested deleting everything on dev_flash and it was still only a soft brick, it just can be hassle reinstalling FW all the time which is why i am working on a solution.
 
Last edited:
Yes, that was it, what i did is to add a new file extension everytime i modifyed the file, so is like this:
icons.qrc <------------------------------------------------- original file
icons.qrc.cropout <------------------------------------------------- removed the first 8 bytes
icons.qrc.cropout.zlibout <------------------------------------------------- zlib decompressed
icons.qrc.cropout.zlibout.patched <------------------------------------------------- patched in hexeditor
icons.qrc.cropout.zlibout.patched.zlibin <------------------------------------------------- zlib compressed
icons.qrc.cropout.zlibout.patched.zlibin.cropin <------------------------------------------------- added the first 8 bytes

So... you can rename "icons.qrc.cropout.zlibout.patched.zlibin.cropin" to "icons.qrc" and copy it to the PS3

I been reviewing everything i did, and i need to mention a couple of things:
In the previous version of the "HowTo.txt" there was a couple of typos in the explanations about how to make the calculations, but this typos doesnt matters because the patches indicated at bottom of the .txt was fine
In other words... the patch i applyed to the file was fine

The problem i see is in the "HowTo.txt" im suggesting to remap 2 files (so is needed to apply 2 patches to do what i was explaining in the .txt), i named them PATCH1, and PATCH2... but in the file i only applyed PATCH2 (not PATCH1)
Code:
PATCH 1. Remap "icons_cheap_ss.fpo" to "icons_full_ss.fpo"
SEARCH:  0000914000001A10 (located at absolute offset 0x63C)
REPLACE: 0000C3D000004B10

PATCH 2. Remap "icons_cheap_ss_no_shad.fpo" to "icons_full_ss_no_shad.fpo"
SEARCH:  0000AB5000001880 (located at absolute offset 0x678)
REPLACE: 00010EE000004360

So... im going to upload a new version with the 2 patches applyed
FILE: https://www.sendspace.com/file/qqf5sd

------------------------------
And i imagined an alternative way to find the data that needs to be patched... is very easy, there is no need to make any calculation, and it should work for all kind of files

My intention while doing this experiment was to write a tutorial, as you can see by reading the first version of the "HowTo.txt", i had this intention since begining... mostly because is very important, is the only way to do this remapping of files inside QRC structures ;)

But for a tutorial is a lot better to use a different "guinea pig" for the samples... it should be something simple, popular, interesting, and worthy

So i would like to know which candidates you propose @LuanTeles @DeViL303 @Cypher_CG89 ...or any other interested in this
@DeViL303 you was doing lot of tests applying patches in the .sprx to redirect files that later are loaded from inside .qrc container, but with this method we can do the redirection inside the .qrc container so... there is something you need to patch inside the .qrc ?, i can do it, at this point it will not take me much time

The icon of app_home/ps3_game still the same.

is it supposed to be like the others with effects while the wave passes through? it is still normal here
 
The icon of app_home/ps3_game still the same.

is it supposed to be like the others with effects while the wave passes through? it is still normal here
Try on original and classic, some of those effects are only applied on one or the other I think. Its possible this has only effected ingame xmb too.
 
@DeViL303 we have Original theme that turns the particles off, the classic one that turn them on

maybe is there a possibility to we add more that toggles the other particles effecs?
 
@DeViL303 we have Original theme that turns the particles off, the classic one that turn them on

maybe is there a possibility to we add more that toggles the other particles effecs?
That might be possible to add if someone knew how to, not me. I dont they were ever available options on the XMB though. There are the debug particles and the "second" particles too. but I think it is done with the Debug GUI normally or possibly by reading that text file from hdd somewhere.
 
I will do another longer one to show it better. What exactly should I do, leave it sit for 30 sec, then just move one icon at a time, or move lots, but then stay still longer like 5 seconds after each move?
The interaction of the particles with the DS3/icons is using the settings from PARTICLES_UI.mnu
https://www.psdevwiki.com/ps3/Lines.qrc#PARTICLES_UI.mnu
Im mentioning it because is good if you take a look at the setting names while shaking the DS3 in the XMB
Some things i noticed...
If you move the DS3 up 1 time and down 1 time fast, the first up makes the particles to move in a direction, but the second move down stops them a bit... so is better to dont move in opposite directions, this way you can see how the particles decelerates by themselfs, or does a "decay", or dissapears, or are more affected by gravity... thing like that
If you move the DS3 up and down several times fast... it looks like the particles movements becomes a lot more chaotic... lets say 5 shakes of the DS3 = chaos mode
Also, the icon images have different effects, the basic concept is the XMB is like a container with a fluid... like a fishtank, and the icons are objects, lets say... when an icon moves to right, it creates a turbulence around itself and the fluid moves in opposite direction to left (to fill the "hole" of the original position of the icon), but if an icon "hits" a particle is like if you ht a tennis ball with a hammer, is a collision in betwen 2 solid objects... and the particle flyes away at high speed and goes out of the screen o/

Dunno, probably there are more cool details, i bet lot of people did not even realized (like myself time ago, i think i realized about all this while lurking in the firmware files)

Can we look inside the DebugGUI vpo/fpo and maybe see some elements or anything like variable names, images, text etc? That might give us a clue for enabling it, or tell us something else?
Well, are compiled code, the only thing we can see in them is the names of the variables, functions, etc... but nothing more... and usually are not much explicit, so is hard to deduce how are working
To have a better understanding of them we need to disassemble them with a mythological tool named sce-cgcdisasm.exe

I have a feeling that PARTICLES_UI is where we need to look, at a guess we need to load that instead of one of the other PARTICLES.MNU files.or as well as the other PARTICLES files.
I dont think, this is a road end, the PARTICLES_UI is an unique file, so his settings are globally applyed, are related with the interaction in between particles and DS3/icons, and i guess are applyed everytime that appears the particles... is just sometimes the DS3 is locked when the particles are displayed (like in coldboot or gameboot, i guess in them the particles are still reactive to DS3/icons... is just the DS3 outputs are ignored, and there is no icon "hitting" them or creating turbulences in the fluid)

It really could be a flag on hdd that enables it, like a simple txt file maybe in correct location. :)

View attachment 20247


I think this txt file is very important, it is right next to the dev_gui/debugGUI stuff. Is it possible that this txt file is inside the QRC?
I can tell that is not inside any QRC... but yeah is interesting, the fact that is located so close to the others DebugGui is fishy

Also check this, is there anything there that helps, its an Gamemoneky Script file from the visualizer application that mentions devgui.

Code:
//Devgui child
//Devgui
global g_devgui_layout = {};
global DevGuiMngLayout = function(_Name,_Func)
{      
    local opened = ?g_devgui_layout[_Name];
    local new_value = Q.SIMGUICheckBox( opened, _Name );
    if (new_value != opened)
    {
        if (opened)
        {
            g_devgui_layout[_Name].Release();
            g_devgui_layout[_Name] = null;
        }
        else
        {
            local layout = _Func();
            g_devgui_layout[_Name] = layout;
            layout.SetName(_Name);
            layout.EnableTitle( true );
        }
    }
};
global DevGuiDump = function()
{
DevGuiMngLayout(
        "HDR Param",
        function() { return Q.NewLayout( 80, 80, 700, 500, null, g_hdr_gui.Param.draw ); }
    );
/*
    DevGuiMngLayout(
        "Camera",
         function() { return Q.NewLayout(120,120,500,200,null,g_camera_gui); }
    );
*/
/*
DevGuiMngLayout(
        "Rumble Editor",
        function() { return Q.NewLayout(300,120,500,500,null,g_rumble_debug_gui); }
    );
*/
/*
if( Q.SIMGUIButton("GmDebugEntry") )
{
g_devgui_layout["GmDebugEntry"] = Q.NewLayout(120,120,300,300,null,GmDebugEntry);
g_devgui_layout["GmDebugEntry"].EnableCloseButton( true );
g_devgui_layout["GmDebugEntry"].EnableDebuggerLayout( true );
}
*/
//  HDRMenu(this);
};

Does the wave use gamemonkey too or something or ....?
I been looking at some of them... the files with .gm extension that seems to be "GameMonkey" code
I was reading about gamemonkey the other day, is good that is a bit like LUA, the program loads it like that, not compiled, are easy to be modifyed... but in the PS3 that gamemoneky files are not used... as far i know... and i could bet on it

The interesting thing is some of the VPO/FPO files from the Q-games visualizer app are identical to some of the FPO/VPO files inside the QRC containers of the PS3 firmware
Specially the files located under paths "glutils", this folder exists in the Q-games visualizer, and also exists in all/most of the QRC containers, the files inside them are repeated a lot, as example the file/s ConeFilter.fpo/vpo exists inside: store.qrc, earth.qrc, canyon.qrc, raf.qrc, rhm.qrc, lines.qrc, icons.qrc... and of course inside the Q-games visualizer
I have not extracted them to compare his MD5 but i bet are identical

This is the part of the "library" i was talking the other day that we should not modify (of couse we can do whatever we want)
The point is... the "glutils" is a part of "openglES" that is distributed as source code (not compiled), and the shaders are source code too and are "not platform specific"
When they installs openglES there is a point when they needs to select the "target platform" that is going to run the compiled code
The platform is the PS3... and the tool to compile the VPO/FPO files is included in the PS3 SDK, and is using a profile for the NVIDIA RSX of the PS3
So... when they does the installation of openglES for the PS3 target... the installer is going to compile hundreds of shaders into VPO/FPO, and after that you should not modify them, because are like small utilities very generic
Then when you write a program and at the top of the source code you can indicate that:
#INCLUDE conefilter
#INCLUDE gaussian

This is why are repeated inside most of the QRC files... and why are identical
The only reason for not be identical... is if the opengl or that collection of libraries for shaders was updated
This is posible, and could be interesting, but not much though.. the point is the VPO/FPO files of the PS3 probably are dated from 2006 or so... and the ones from the Q-games visualizer are dated from 2011
Theoretically we could replace them, this way we could "update" the ones of the PS3
But like said before... maybe this is going to be a bit "meh"... i dont want to be pessimistic but the reward doesnt looks promising

Edit:
Just to be clear... i mean... replacing a VPO/FPO file of the PS3 firmware by a VPO/FPO file from the Q-games visualizer... both with the same name (with the goal of updating them), is not worthy in my oppinion because most probably the reward is going to be minimal
But taking one of the FPO/VPO files that exists in the Q-games visualizer (but doesnt exists in the PS3 firmware)... to add it to the PS3 firmware could be very interesting :)

The resume of the story is... the files inside "glutils" path are not much interesting... the others are better targets for the experiments because are "custom made" either by sony of by q-games

---------
In the gamemonkey files i can see some interesting codenames... they are using the "vis" (because the visualizer), there is something named "SIMVIEW" (or SIMSOMETHING, i dont remember well, that i guess it could be like a XMB emulator/simulator for pc)

I dont understand much in the gamemoneky files, most of them just looks like a single function, but potentially could be interesting, because obviouslly are interacting directly or indirectly with the VPO/FPO files
If there is some direct connection in betweem them maybe by looking at the gamemonkey files someone could figure what the FPO/VPO files does
 
Last edited:
@sandungas talking about the icons.qrc is possible to add new icons? like for the @DeViL303's mods ? to match a perfect xmb
The tools used to customize qrc files are "injecting" the files in the QRC internal structure without modifying it
So technically that tools are "injectors"

But we cant rebuild/compile QRC files :crybaby:

Incase someone does a tool like this, or rebuilds the file manually with a hexeditor... sure is posible
But we dont know if the firmware is going to load it

I mean... like in the official .P3T compiler, that contains the names of the icons allowed to be used in a theme hardcoded inside the program
If you try to build a theme with an icon name different than the names of the list then the program refuses it
Is like a "whitelist", if your icon name is not in the whitelist then is not valid

For the icons.qrc the firmware could be doing something similar.... it could have a "whitelist" (somewhere else, not inside icontex.qrc) with the icons that can be loaded from icontex.qrc and only searches for that ones
Im re-reading the thread again and reminded something, the icons are stored inside icontex.qrc (icontex means "icon textures" btw)
And the only way to access them from outside of the QRC structure is by his name, or his position
Accesing them by his position is noob, i dont think sony did it that way, so most probably are accessed by his name

And... his names are ridiculous https://www.psdevwiki.com/ps3/Icontex.qrc#File_list
As example, the icon for the XMB "game" category is named 6n, inside the RCO files there are more icons for the XMB "game" category but have a different name

So... i would say that im pretty sure there is some kind of "whitelist" somewhere that tells which icons can be loaded from icontex.qrc
And probably that list have 2 data fields... one with the name of the icon inside icontex.qrc... and next to it the real name (that should match with the icons inside the RCO files)

If at some point we find that list i guess we could add new icons... or better said we could replace some of the ones that exists (but nobody see, like the "walkman" icon) by others more useful
 
Now we just need to try find out where it can be remapped to, for example the GUI will not be a background most likely. Its possible we could replace the actual wave or the particles with the GUI. Also this links in with PARTICLES_UI.MNU and particleshackmenu. We need to figure out all these pieces of the puzzle to enable it.

Maybe we can do a remap on PARTICLES_SPU to PARTICLES_UI or something like that rather than remapping the vpo/fpo directly?

Maybe there is even a button combo to enable it?
I think the best/only candidate for the replacement is lib/moyou/background.fpo/vpo

The reason is because we are sure that the background is loaded by the retail firmware, also the other FPO/VPO files inside lines.qrc doesnt looks good candidates
As mentioned before, we should not mess around much with the ones inside "glutils" path (though maybe this time is neccesary, but better avoid it by now)
And the others under lib/moyou path looks a bit weird

Btw... there is a patch candidate in there...
Remap "lib/moyou/LinesController.fpo" to "lib/moyou/LinesControllerQuin.fpo"

I cant imagine what means the "Quin" but this is one of the cases where there is a single VPO associated with several FPO's... the VPO is mandatory because is commonly used by the FPO's, and the FPO's are optional
-LinesController.vpo <----------- mandatory
-LinesController.fpo <----------- option 1
-LinesControllerQuin.fpo <----------- option 2

So... that patch "should" work... but what it does is a mistery :P

Do you remember if you tryed this remap when you was making the remaps by patching the .sprx ?


-----------------------
The wave and the particles are executable .elf files
-spurs/moyou/spline/spline.elf
-particles/particles/particles.elf

What we can do is to remap one of them to the other to unlock the double combo breaker

Lets say... if we remap the particles.elf to the spline.elf the firmware is going to load the spline.elf two times... and it "should" display 2 waves in the XMB
:chewie: :chewie:
 
Last edited:
I think the best/only candidate for the replacement is lib/moyou/background.fpo/vpo

The reason is because we are sure that the background is loaded by the retail firmware, also the other FPO/VPO files inside lines.qrc doesnt looks good candidates
As mentioned before, we should not mess around much with the ones inside "glutils" path (though maybe this time is neccesary, but better avoid it by now)
And the others under lib/moyou path looks a bit weird
Ok, we can try there. Some of these patches can not be applied in the sprx the way i was doing it as some strings are too long. Also the way I am applying the patches is not as good in some cases.

Btw... there is a patch candidate in there...
Remap "lib/moyou/LinesController.fpo" to "lib/moyou/LinesControllerQuin.fpo"

I cant imagine what means the "Quin" but this is one of the cases where there is a single VPO associated with several FPO's... the VPO is mandatory because is commonly used by the FPO's, and the FPO's are optional
-LinesController.vpo <----------- mandatory
-LinesController.fpo <----------- option 1
-LinesControllerQuin.fpo <----------- option 2

So... that patch "should" work... but what it does is a mistery :P

Do you remember if you tryed this remap when you was making the remaps by patching the .sprx ?
That is one of those patches I can not apply as there is not enough room in the sprx, I will test if you can figure out the patch. I just tried it using my method and patching over next entry to fit it in but softbricked. Sometimes if the next entry is not used I can get away with that.

The wave and the particles are executable .elf files
-spurs/moyou/spline/spline.elf
-particles/particles/particles.elf

What we can do is to remap one of them to the other to unlock the double combo breaker

Lets say... if we remap the particles.elf to the spline.elf the firmware is going to load the spline.elf two times... and it "should" display 2 waves in the XMB
:chewie: :chewie:

Sweet, Double wave or double particles would both be nice to try and have available. So if you want to post some patches, or patched files I will be happy to test. :)


Im re-reading the thread again and reminded something, the icons are stored inside icontex.qrc (icontex means "icon textures" btw)
And the only way to access them from outside of the QRC structure is by his name, or his position

On that topic - Can we have coloured icons in icons_tex.qrc if we inject the dds files correctly? like for example icons like Berions Rebugification?

I dont think, this is a road end, the PARTICLES_UI is an unique file, so his settings are globally applyed, are related with the interaction in between particles and DS3/icons, and i guess are applyed everytime that appears the particles... is just sometimes the DS3 is locked when the particles are displayed (like in coldboot or gameboot, i guess in them the particles are still reactive to DS3/icons... is just the DS3 outputs are ignored, and there is no icon "hitting" them or creating turbulences in the fluid)
OK, I see, Its not that then. I dont know.
 
The icon of app_home/ps3_game still the same.

is it supposed to be like the others with effects while the wave passes through? it is still normal here
Yes, this is what i was trying to achieve, is good you mention that effect because it means you are used to it
This is made with the fpo/vpo shaders, this is why i was remaping them, when i realized about it and by reading his names... well... the first thing that came to mind is to remap the ones with the name "cheap" by the others with the name "full", it makes more sense if you take a look at the file names inside icons.qrc
https://www.psdevwiki.com/ps3/Icons.qrc#File_list

The only VPO/FPO files for the icons textures are this ones, are only 8 files, and the last ones (mask.fpo and quad.vpo) looks unique so doesnt looks good candidates to remap them by any other

icons_cheap_ss.fpo
icons_cheap_ss_no_shad.fpo
icons_full_ss.fpo
icons_full_ss_no_shad.fpo
icons_no_ss.fpo
icons_no_ss_no_shad.fpo
mask.fpo
quad.vpo

So there are only 6 files, and are grouped with 2 variants each:
-The "cheap supersampling" version (with, or without shad/ers)
-The "full supersampling" version (with, or without shad/ers)
-The "no supersampling" version (with, or without shad/ers)

I remapped "cheap_ss" by "full_ss"... mostly because i thought the ps3_game/APP_HOME was using the "cheap" version

But dunno... maybe we should review this because im not sure how that shaders and supersampling effects looks (i cant difference them)
I guess it would have been better to remap the "no_ss" to the "full_ss"
 
Last edited:
Aaaand btw @DeViL303 i remember to see the name "app_home" inside custom_render_plugin.sprx
Right now im thinking maybe is working like a blacklist and is preventing the FPO/VPO shader effects to be applyed in it

Have you tryed to "nuke" it ? (by renaming it to any other stuff, like "ops_home")
 
I have not tried that, was not looking at icon effects at all yet.

On a related note, it almost looks like the magnifying glass icon has extra magnifying effects compared to other icons :) see around 6m 20 sec into this video I start getting the particles to move behind it. :)

 
Last edited:
I have not tried that, was not looking at icon effects at all yet.

On a related note, it almost looks like the magnifying glass icon has extra magnifying effects compared to other icons :) see around 6m 20 sec into this video I start getting the particles to move behind it. :)

That distorsions happens in all icons (except app_home and some custom ones), i never realized that is more notable in the magnifying glass icon, not sure why, i guess is because the pxels of the image are representing something spheric, maybe the shaders detects that spherity and increases the effect

Right now im not sure which shaders are used in your video, but are different for the "classic" and "original" themes, also the effects changes a lot if you change the time of the clock
In some way... when changing the time of the clock you are changing the angle of the light rays that "hits" the icon... is like if you have a sun that moves around the icon, in a circunference (thought is not very well made, there are some hours of the day when the effect looks nice, and others hours that are "meh")

I watched the video entirelly btw, this time the effects can be seen better :D
I also was doing this kind of experiments a day, seated in front of the XMB doing weird things with the DS3... i remember to try stupid things, like "backflipping" and "frontflipping" the DS3 (something that should not happen normally, lol)
 
Yeah , the debug particles are strange. If you leave it sit for ages it starts emitting the larger blurred particles from both sides by itself, always seems to emit more on the left side too. Also seems to have some small red particles sometimes rarely.
 

See to the right of the "internet search" text at about 5 seconds, a burst of random red particles. they are more noticable on my tv, capture card does not get them very well.
 

See to the right of the "internet search" text at about 5 seconds, a burst of random red particles. they are more noticable on my tv, capture card does not get them very well.
Im wondering if the particles_quads_debug.fpo/vpo are intended to load his settings externally
That would be a cool feature for something that was intended to be used for debugging

Maybe adding the files PARTICLES.mnu, PARTICLES_SPE.mnu, and PARTICLES_UI.mnu in dev_flash\vsh\resource\qgl
Or by network ?... dunno, but i think loading the settings externally of the lines.qrc could be something very handy and probably they thought in it
 
Btw... there is a patch candidate in there...
Remap "lib/moyou/LinesController.fpo" to "lib/moyou/LinesControllerQuin.fpo"

I cant imagine what means the "Quin" but this is one of the cases where there is a single VPO associated with several FPO's... the VPO is mandatory because is commonly used by the FPO's, and the FPO's are optional
-LinesController.vpo <----------- mandatory
-LinesController.fpo <----------- option 1
-LinesControllerQuin.fpo <----------- option 2

So... that patch "should" work... but what it does is a mistery :P
That is one of those patches I can not apply as there is not enough room in the sprx, I will test if you can figure out the patch. I just tried it using my method and patching over next entry to fit it in but softbricked. Sometimes if the next entry is not used I can get away with that.
Im looking at this files, wondering if is something related with debug, and i still cant imagine what means that "quin" (and this web did not help https://www.litscape.com/word_tools/starts_with.php)
Anyway, this is the patch

Remap "lib/moyou/LinesController.fpo" to "lib/moyou/LinesControllerQuin.fpo"
SEARCH: 00065090000006E0
REPLACE: 00065C40000007C0


Im more convinced that is going to work, because the files are pretty similar... the most important thing that can be seen in the files in his compiled format is the text strings, but well... this gives us an initial idea
As you can see the strings inside LinesController.fpo and LinesControllerQuin.fpo are the same



This is from LinesController.vpo (the common file, different than the others)
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000320  50 4F 53 49 54 49 4F 4E 30 00 6F 6C 64 70 6F 73  POSITION0.oldpos
00000330  00 50 4F 53 49 54 49 4F 4E 30 00 6E 65 77 70 6F  .POSITION0.newpo
00000340  73 00 54 45 58 43 4F 4F 52 44 30 00 6F 6C 64 63  s.TEXCOORD0.oldc
00000350  72 64 00 54 45 58 43 4F 4F 52 44 30 00 6E 65 77  rd.TEXCOORD0.new
00000360  63 72 64 00 54 45 58 43 4F 4F 52 44 31 00 72 61  crd.TEXCOORD1.ra
00000370  79 63 72 64 00 54 45 58 43 4F 4F 52 44 32 00 76  ycrd.TEXCOORD2.v
00000380  67 72 61 64 63 6F 6C 00 54 45 58 43 4F 4F 52 44  gradcol.TEXCOORD
00000390  33 00 68 67 72 61 64 63 6F 6C 00 5F 43 6F 6C 6F  3.hgradcol._Colo
000003A0  75 72 31 00 5F 43 6F 6C 6F 75 72 32 00 5F 43 6F  ur1._Colour2._Co
000003B0  6C 6F 75 72 33 00 5F 43 6F 6C 6F 75 72 34 00 5F  lour3._Colour4._
000003C0  4D 56 4D 00 5F 4D 56 4D 5B 30 5D 00 5F 4D 56 4D  MVM._MVM[0]._MVM
000003D0  5B 31 5D 00 5F 4D 56 4D 5B 32 5D 00 5F 4D 56 4D  [1]._MVM[2]._MVM
000003E0  5B 33 5D                                         [3]

This is from LinesController.fpo (the default, option 1)
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000410  54 45 58 43 4F 4F 52 44 30 00 75 76 00 54 45 58  TEXCOORD0.uv.TEX
00000420  43 4F 4F 52 44 31 00 72 61 79 75 76 00 57 50 4F  COORD1.rayuv.WPO
00000430  53 00 77 69 6E 70 6F 73 00 54 45 58 43 4F 4F 52  S.winpos.TEXCOOR
00000440  44 32 00 76 67 72 61 64 63 6F 6C 00 54 45 58 43  D2.vgradcol.TEXC
00000450  4F 4F 52 44 33 00 68 67 72 61 64 63 6F 6C 00 00  OORD3.hgradcol..
00000460  00 00 00 01 00 00 00 80 5F 53 63 72 65 65 6E 53  .......€_ScreenS
00000470  69 7A 65 52 65 63 69 70 00 00 00 00 00 00 00 00  izeRecip........
00000480  00 00 00 01 00 00 00 40 5F 53 63 72 65 65 6E 4F  .......@_ScreenO
00000490  66 66 73 65 74 00 5F 54 65 78 30 00 5F 54 65 78  ffset._Tex0._Tex
000004A0  31 00 5F 54 65 78 32 00 5F 42 61 63 6B 00 5F 52  1._Tex2._Back._R
000004B0  61 79 73 00 5F 52 61 79 73 53 74 72 00 5F 4E 6F  ays._RaysStr._No
000004C0  69 73 65 00 5F 4E 6F 69 73 65 4A 69 74 74 65 72  ise._NoiseJitter
000004D0  00 5F 44 69 74 68 65 72 00 5F 48 44 52 50 61 72  ._Dither._HDRPar
000004E0  61 6D 73 00 54 45 58 55 4E 49 54 31 35 00 70 72  ams.TEXUNIT15.pr
000004F0  65 65 78 70 6F 73 65 5F 45 78 70 6F 73 65 54 65  eexpose_ExposeTe
00000500  78 30 00 54 45 58 55 4E 49 54 31 34 00 70 72 65  x0.TEXUNIT14.pre
00000510  65 78 70 6F 73 65 5F 45 78 70 6F 73 65 54 65 78  expose_ExposeTex
00000520  31 00 54 45 58 55 4E 49 54 31 33 00 70 72 65 65  1.TEXUNIT13.pree
00000530  78 70 6F 73 65 5F 4E 6F 69 73 65 00 43 4F 4C 4F  xpose_Noise.COLO
00000540  52 30 00 6D 61 69 6E 2E 63 6F 6C 30              R0.main.col0

This is from LinesControllerQuin.fpo (the alternative, option 2)
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000410  54 45 58 43 4F 4F 52 44 30 00 75 76 00 54 45 58  TEXCOORD0.uv.TEX
00000420  43 4F 4F 52 44 31 00 72 61 79 75 76 00 57 50 4F  COORD1.rayuv.WPO
00000430  53 00 77 69 6E 70 6F 73 00 54 45 58 43 4F 4F 52  S.winpos.TEXCOOR
00000440  44 32 00 76 67 72 61 64 63 6F 6C 00 54 45 58 43  D2.vgradcol.TEXC
00000450  4F 4F 52 44 33 00 68 67 72 61 64 63 6F 6C 00 00  OORD3.hgradcol..
00000460  00 00 00 03 00 00 00 D0 00 00 00 80 00 00 00 30  .......Ð...€...0
00000470  5F 53 63 72 65 65 6E 53 69 7A 65 52 65 63 69 70  _ScreenSizeRecip
00000480  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000490  00 00 00 01 00 00 00 10 5F 53 63 72 65 65 6E 4F  ........_ScreenO
000004A0  66 66 73 65 74 00 5F 54 65 78 30 00 5F 54 65 78  ffset._Tex0._Tex
000004B0  31 00 5F 54 65 78 32 00 5F 42 61 63 6B 00 5F 52  1._Tex2._Back._R
000004C0  61 79 73 00 5F 52 61 79 73 53 74 72 00 5F 4E 6F  ays._RaysStr._No
000004D0  69 73 65 00 5F 4E 6F 69 73 65 4A 69 74 74 65 72  ise._NoiseJitter
000004E0  00 5F 44 69 74 68 65 72 00 5F 48 44 52 50 61 72  ._Dither._HDRPar
000004F0  61 6D 73 00 54 45 58 55 4E 49 54 31 35 00 70 72  ams.TEXUNIT15.pr
00000500  65 65 78 70 6F 73 65 5F 45 78 70 6F 73 65 54 65  eexpose_ExposeTe
00000510  78 30 00 54 45 58 55 4E 49 54 31 34 00 70 72 65  x0.TEXUNIT14.pre
00000520  65 78 70 6F 73 65 5F 45 78 70 6F 73 65 54 65 78  expose_ExposeTex
00000530  31 00 54 45 58 55 4E 49 54 31 33 00 70 72 65 65  1.TEXUNIT13.pree
00000540  78 70 6F 73 65 5F 4E 6F 69 73 65 00 43 4F 4C 4F  xpose_Noise.COLO
00000550  52 30 00 6D 61 69 6E 2E 63 6F 6C 30              R0.main.col0
 
Last edited:
Im wondering if the particles_quads_debug.fpo/vpo are intended to load his settings externally
That would be a cool feature for something that was intended to be used for debugging

Maybe adding the files PARTICLES.mnu, PARTICLES_SPE.mnu, and PARTICLES_UI.mnu in dev_flash\vsh\resource\qgl
Or by network ?... dunno, but i think loading the settings externally of the lines.qrc could be something very handy and probably they thought in it

Maybe from a txt file even, idk.
Im looking at this files, wondering if is something related with debug, and i still cant imagine what means that "quin" (and this web did not help https://www.litscape.com/word_tools/starts_with.php)
Anyway, this is the patch

Remap "lib/moyou/LinesController.fpo" to "lib/moyou/LinesControllerQuin.fpo"
SEARCH: 00065090000006E0
REPLACE: 00065C40000007C0


Im more convinced that is going to work, because the files are pretty similar... the most important thing that can be seen in the files in his compiled format is the text strings, but well... this gives us an initial idea
As you can see the strings inside LinesController.fpo and LinesControllerQuin.fpo are the same



This is from LinesController.vpo (the common file, different than the others)
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000320  50 4F 53 49 54 49 4F 4E 30 00 6F 6C 64 70 6F 73  POSITION0.oldpos
00000330  00 50 4F 53 49 54 49 4F 4E 30 00 6E 65 77 70 6F  .POSITION0.newpo
00000340  73 00 54 45 58 43 4F 4F 52 44 30 00 6F 6C 64 63  s.TEXCOORD0.oldc
00000350  72 64 00 54 45 58 43 4F 4F 52 44 30 00 6E 65 77  rd.TEXCOORD0.new
00000360  63 72 64 00 54 45 58 43 4F 4F 52 44 31 00 72 61  crd.TEXCOORD1.ra
00000370  79 63 72 64 00 54 45 58 43 4F 4F 52 44 32 00 76  ycrd.TEXCOORD2.v
00000380  67 72 61 64 63 6F 6C 00 54 45 58 43 4F 4F 52 44  gradcol.TEXCOORD
00000390  33 00 68 67 72 61 64 63 6F 6C 00 5F 43 6F 6C 6F  3.hgradcol._Colo
000003A0  75 72 31 00 5F 43 6F 6C 6F 75 72 32 00 5F 43 6F  ur1._Colour2._Co
000003B0  6C 6F 75 72 33 00 5F 43 6F 6C 6F 75 72 34 00 5F  lour3._Colour4._
000003C0  4D 56 4D 00 5F 4D 56 4D 5B 30 5D 00 5F 4D 56 4D  MVM._MVM[0]._MVM
000003D0  5B 31 5D 00 5F 4D 56 4D 5B 32 5D 00 5F 4D 56 4D  [1]._MVM[2]._MVM
000003E0  5B 33 5D                                         [3]

This is from LinesController.fpo (the default, option 1)
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000410  54 45 58 43 4F 4F 52 44 30 00 75 76 00 54 45 58  TEXCOORD0.uv.TEX
00000420  43 4F 4F 52 44 31 00 72 61 79 75 76 00 57 50 4F  COORD1.rayuv.WPO
00000430  53 00 77 69 6E 70 6F 73 00 54 45 58 43 4F 4F 52  S.winpos.TEXCOOR
00000440  44 32 00 76 67 72 61 64 63 6F 6C 00 54 45 58 43  D2.vgradcol.TEXC
00000450  4F 4F 52 44 33 00 68 67 72 61 64 63 6F 6C 00 00  OORD3.hgradcol..
00000460  00 00 00 01 00 00 00 80 5F 53 63 72 65 65 6E 53  .......€_ScreenS
00000470  69 7A 65 52 65 63 69 70 00 00 00 00 00 00 00 00  izeRecip........
00000480  00 00 00 01 00 00 00 40 5F 53 63 72 65 65 6E 4F  .......@_ScreenO
00000490  66 66 73 65 74 00 5F 54 65 78 30 00 5F 54 65 78  ffset._Tex0._Tex
000004A0  31 00 5F 54 65 78 32 00 5F 42 61 63 6B 00 5F 52  1._Tex2._Back._R
000004B0  61 79 73 00 5F 52 61 79 73 53 74 72 00 5F 4E 6F  ays._RaysStr._No
000004C0  69 73 65 00 5F 4E 6F 69 73 65 4A 69 74 74 65 72  ise._NoiseJitter
000004D0  00 5F 44 69 74 68 65 72 00 5F 48 44 52 50 61 72  ._Dither._HDRPar
000004E0  61 6D 73 00 54 45 58 55 4E 49 54 31 35 00 70 72  ams.TEXUNIT15.pr
000004F0  65 65 78 70 6F 73 65 5F 45 78 70 6F 73 65 54 65  eexpose_ExposeTe
00000500  78 30 00 54 45 58 55 4E 49 54 31 34 00 70 72 65  x0.TEXUNIT14.pre
00000510  65 78 70 6F 73 65 5F 45 78 70 6F 73 65 54 65 78  expose_ExposeTex
00000520  31 00 54 45 58 55 4E 49 54 31 33 00 70 72 65 65  1.TEXUNIT13.pree
00000530  78 70 6F 73 65 5F 4E 6F 69 73 65 00 43 4F 4C 4F  xpose_Noise.COLO
00000540  52 30 00 6D 61 69 6E 2E 63 6F 6C 30              R0.main.col0

This is from LinesControllerQuin.fpo (the default, option 2)
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000410  54 45 58 43 4F 4F 52 44 30 00 75 76 00 54 45 58  TEXCOORD0.uv.TEX
00000420  43 4F 4F 52 44 31 00 72 61 79 75 76 00 57 50 4F  COORD1.rayuv.WPO
00000430  53 00 77 69 6E 70 6F 73 00 54 45 58 43 4F 4F 52  S.winpos.TEXCOOR
00000440  44 32 00 76 67 72 61 64 63 6F 6C 00 54 45 58 43  D2.vgradcol.TEXC
00000450  4F 4F 52 44 33 00 68 67 72 61 64 63 6F 6C 00 00  OORD3.hgradcol..
00000460  00 00 00 03 00 00 00 D0 00 00 00 80 00 00 00 30  .......Ð...€...0
00000470  5F 53 63 72 65 65 6E 53 69 7A 65 52 65 63 69 70  _ScreenSizeRecip
00000480  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000490  00 00 00 01 00 00 00 10 5F 53 63 72 65 65 6E 4F  ........_ScreenO
000004A0  66 66 73 65 74 00 5F 54 65 78 30 00 5F 54 65 78  ffset._Tex0._Tex
000004B0  31 00 5F 54 65 78 32 00 5F 42 61 63 6B 00 5F 52  1._Tex2._Back._R
000004C0  61 79 73 00 5F 52 61 79 73 53 74 72 00 5F 4E 6F  ays._RaysStr._No
000004D0  69 73 65 00 5F 4E 6F 69 73 65 4A 69 74 74 65 72  ise._NoiseJitter
000004E0  00 5F 44 69 74 68 65 72 00 5F 48 44 52 50 61 72  ._Dither._HDRPar
000004F0  61 6D 73 00 54 45 58 55 4E 49 54 31 35 00 70 72  ams.TEXUNIT15.pr
00000500  65 65 78 70 6F 73 65 5F 45 78 70 6F 73 65 54 65  eexpose_ExposeTe
00000510  78 30 00 54 45 58 55 4E 49 54 31 34 00 70 72 65  x0.TEXUNIT14.pre
00000520  65 78 70 6F 73 65 5F 45 78 70 6F 73 65 54 65 78  expose_ExposeTex
00000530  31 00 54 45 58 55 4E 49 54 31 33 00 70 72 65 65  1.TEXUNIT13.pree
00000540  78 70 6F 73 65 5F 4E 6F 69 73 65 00 43 4F 4C 4F  xpose_Noise.COLO
00000550  52 30 00 6D 61 69 6E 2E 63 6F 6C 30              R0.main.col0

Nice , I will test asap.
And btw, while writing that, i just realized what means the "Quin" suffix !!!

Q-games
User Interface
N ????
Very possible.

BTW: Here is the other unused particle fpo/vpo called lib/particles/particles_second., its very sparkly and twinkly but a bit crap really on its own with standard wave, if you increase the partticle size and amount it can look good though. Here it is used on the OFW wave with an sprx patch. :

 

Similar threads

Back
Top