PS3 JSXviewer - A tool for viewing/Extracting .jsx files commonly found in Themes

Over at PlayStationHAX forums developer TizzyT has released a Tool called JSXviewer, this tool is not finished but can be useful to the community in it's current form. This tool will allow you to view and extract the contents of a .jsx files these are common files found in various animated Themes on the PS3. Checkout the details below from two scene developer:


JSXviewer.PNG

Original Release Notes from TizzyT
TizzyT said:
This is fairly old and is unfinished (can't automatic decompile yet) but I was told I should put this here.
Its a tool to view/extract info from .jsx files (usually found when dealing with themes). It might help in manual decompilation for now I guess. I might get around to finishing the auto decompile feature.

Thanks Sandungas for the help.

Here is a bit of an explanation from developer Sandungas about this release
sandungas said:
Before people asks... this tool is supposed to generate the original "javascript like" file used to compile .raf animations (inside dynamic themes and coldboot)

It doesnt makes the decompilation yet, but it does the previous steps like cropping tables, generating a list of opcodes, etc... usefull to study how the compilation<--->decompilation works

Thx :)
 
Last edited:
the script I have in my coldboot script tutorial is for a white coldboot, so no unique characters. I don't understand y it happens to the anim_1.jpg (colored coldboot, background, script) or if fixing it, which is required to reencode it, messes up the file. I haven't tried that personally.

yeah, @sandungas knows his stuff. I'm amazed by his level of knowledge with just about anything ps3-related.
Thanks, is because my hobby editing wiki and because im used to reverse fileformats with a hexeditor, actually i decoded completly and accuratelly the official script inside coldboot.raf just with hexeditor and calculator, it took me more than a week working all days, i was at the point where i could identify some opcodes just by looking at the hexeditor and deduce the original source code in java from them directly, it was a bit insane, the kind of thing that started being scary, lol
Is the script published here, at bottom of VSMX page
http://www.psdevwiki.com/ps3/VSMX#VSMX_Decompilation_sample
Is the same script published at bottom of coldboot.raf page... but in a more "human readable" form and with comments for better understanding of what the javascript code does
Note under the script there is a table with the animation timeline too, divided in time fragments to see where starts and ends every segment
http://www.psdevwiki.com/ps3/Coldboot.raf#Script

Btw... the reason why some images inside a RAF are displayed in a different way... is because at the time of building a RAF is needed to prepare a xml file that works as a descriptor of the contents and settings of the stuff that is going to be used for building it
A couple of the attributes in that xml are specific attributes that applyes for every image, see here:
http://www.psdevwiki.com/ps3/Rich_Appearance_Format_(RAF)#RAF_Scene_.28.XML.29
Code:
<material id="material" effect="light_effects" >
		<texture file="texture.dds" type="image_type" />
</material>
The two attributes im naming here "light_effects" and "image_type" are the responsibles of the problem you are mentioning

Also, note you can combine several image "maps" one over the other to create "bump maps" (by using normal_map) and "reflection maps" (specular_map) for cool 3D effects... are the same techniques used for texturing in directX games but limited

----------------
I made a variant of the official coldboot.raf extremelly optimized that changed the image and lighting colors for every boot (based in the internal clock)... i never released it because i was planning to make more experiments with it but never did and now i dont have it at hand (maybe at some point i will return to it and other nice ideas for other designs i have in the sleeve) :D
 
Last edited:
Thanks, is because my hobby editing wiki and because im used to reverse fileformats with a hexeditor, actually i decoded completly and accuratelly the official script inside coldboot.raf just with hexeditor and calculator, it took me more than a week working all days, i was at the point where i could identify some opcodes just by looking at the hexeditor and deduce the original source code in java from them directly, it was a bit insane, the kind of thing that started being scary, lol
Is the script published here, at bottom of VSMX page
http://www.psdevwiki.com/ps3/VSMX#VSMX_Decompilation_sample
Is the same script published at bottom of coldboot.raf page... but in a more "human readable" form and with comments for better understanding of what the javascript code does
Note under the script there is a table with the animation timeline too, divided in time fragments to see where starts and ends every segment
http://www.psdevwiki.com/ps3/Coldboot.raf#Script

Btw... the reason why some images inside a RAF are displayed in a different way... is because at the time of building a RAF is needed to prepare a xml file that works as a descriptor of the contents and settings of the stuff that is going to be used for building it
A couple of the attributes in that xml are specific attributes that applyes for every image, see here:
http://www.psdevwiki.com/ps3/Rich_Appearance_Format_(RAF)#RAF_Scene_.28.XML.29
Code:
<material id="material" effect="light_effects" >
        <texture file="texture.dds" type="image_type" />
</material>
The two attributes im naming here "light_effects" and "image_type" are the responsibles of the problem you are mentioning

Also, note you can combine several image "maps" one over the other to create "bump maps" (by using normal_map) and "reflection maps" (specular_map) for cool 3D effects... are the same techniques used for texturing in directX games but limited

----------------
I made a variant of the official coldboot.raf extremelly optimized that changed the image and lighting colors for every boot (based in the internal clock)... i never released it because i was planning to make more experiments with it but never did and now i dont have it at hand (maybe at some point i will return to it and other nice ideas for other designs i have in the sleeve) :D

This is exactly why I need you to help lol. I mean I could do it myself but I'm sure the whole process would be a lot faster if you were helping. With you by my side we can conquer the world.... or at least finish JSXviewer lol.
 
This is exactly why I need you to help lol. I mean I could do it myself but I'm sure the whole process would be a lot faster if you were helping. With you by my side we can conquer the world.... or at least finish JSXviewer lol.
That romantic words sounds like a trap, i know you well little perv, you want to conquer my heart to later invade other parts of my body :P

Now seriously... i dont know what to say at this point, there are several reasons why i think i cant help at this point but better we will talk in irc

And btw, welcome back to the scene, is nice you got a PS3 :)
 
Thanks, is because my hobby editing wiki and because im used to reverse fileformats with a hexeditor, actually i decoded completly and accuratelly the official script inside coldboot.raf just with hexeditor and calculator, it took me more than a week working all days, i was at the point where i could identify some opcodes just by looking at the hexeditor and deduce the original source code in java from them directly, it was a bit insane, the kind of thing that started being scary, lol
Is the script published here, at bottom of VSMX page
http://www.psdevwiki.com/ps3/VSMX#VSMX_Decompilation_sample
Is the same script published at bottom of coldboot.raf page... but in a more "human readable" form and with comments for better understanding of what the javascript code does
Note under the script there is a table with the animation timeline too, divided in time fragments to see where starts and ends every segment
http://www.psdevwiki.com/ps3/Coldboot.raf#Script

Btw... the reason why some images inside a RAF are displayed in a different way... is because at the time of building a RAF is needed to prepare a xml file that works as a descriptor of the contents and settings of the stuff that is going to be used for building it
A couple of the attributes in that xml are specific attributes that applyes for every image, see here:
http://www.psdevwiki.com/ps3/Rich_Appearance_Format_(RAF)#RAF_Scene_.28.XML.29
Code:
<material id="material" effect="light_effects" >
        <texture file="texture.dds" type="image_type" />
</material>
The two attributes im naming here "light_effects" and "image_type" are the responsibles of the problem you are mentioning

Also, note you can combine several image "maps" one over the other to create "bump maps" (by using normal_map) and "reflection maps" (specular_map) for cool 3D effects... are the same techniques used for texturing in directX games but limited

----------------
I made a variant of the official coldboot.raf extremelly optimized that changed the image and lighting colors for every boot (based in the internal clock)... i never released it because i was planning to make more experiments with it but never did and now i dont have it at hand (maybe at some point i will return to it and other nice ideas for other designs i have in the sleeve) :D

thanks for this. I haven't done much with the ps3 scene lately. I've been involved with the wii u/3ds scenes since I play the wii u more than any other system. still hoping to buy a switch though. unlike the ps3 that places the lv0 key in an isolated spu, the wii u deletes the key entirely otherwise known as the boot0 key. this is according to fail0verflow and based on my memory. I'm still hoping for a boot1 exploit for the system, but I'm happy to use cbhc if I need to which I still use. :-P

I was unaware of the parameter that caused the messed up script. there's a way around it to force reencoding, but if it's something important, I'm not sure what would happen. I've never soft bricked from a coldboot I've done, so I don't know if it's even possible to do that. probably so if the script isn't in order.
 
That romantic words sounds like a trap, i know you well little perv, you want to conquer my heart to later invade other parts of my body :P

Now seriously... i dont know what to say at this point, there are several reasons why i think i cant help at this point but better we will talk in irc

And btw, welcome back to the scene, is nice you got a PS3 :)

Yeah, I've actually had this PS3 for about a year now and recently figured I should use it for something (since I don't play games on it). As for IRC, I think that would be fine although it would be a whole lot easier if you made like a skype, or a discord, or even something else like ventrillo lol (let me hear your beautiful voice).

Plus I'm sure you can help, I mean in more ways than one. You can help me make scripts for testing. You can provide me tools which I've lost or cant find etc. But if you feel differently thats okay too, which means I'd have to hunt down Ada lol.
 
@TizzyT right now i dont have any of the tools scripts or files we was using when i was helping you with jsxviewer, and this is a big handicap for me because along this years i used to collect any frankenstein experiment i do and mods made by other people for studying purposes, included fails with additional notes.txt (to later publish in wiki, so most of it is published in wiki already, but other part is not)
I remember a good part of it, but im sure i forgot a lot of details too that probably i had noted somewhere

But this im talking about is mostly related with understanding how RAF format/tools works
We was using them as a verification enviroment for the output of your jsx viewer. I can explain this part

But what you need now is someone very used to javascript... and a bit used to IDA... because i think there must be a way to load all this opcodes in IDA to make better sense of them... if im not wrong this opcodes used in sony vsxm format are a bit close to assembler

And im not skilled in any of those things... i never used IDA, and my knowledge of java is basic, was enought to deduce the code used in coldboot.raf because they used basic functions and basic code structures


Edit:
Additionally, the PC im using latelly is not stable, is made of old parts and i dont relly in it to work in something serious
 
if people could send me jsx files that would be great. Preferably ones that aren't marked done on the list, although any is fine as it lets me double check the ones already implemented.
 
Last edited:
unfortunately, I don't have any theme scripts on my laptop.

for anyone willing to help, the easiest way to get the jsx script is by extracting the p3t with p3textractor, opening the anim_1.jpg in a hex editor, deleting the first eight bytes, then using simplyzip to decompress the file. after that, drop the file in p3textractor (in my tutorials) to extract the theme files including the script and ur done. :)

edit: I can't recall if just using p3textractor extracts the script or if u have to extract anim_1.jpg first, then extract it. lol
 
Last edited:

Featured content

Trending content

Back
Top