|
|
Line 83: |
Line 83: |
| === .JSX === | | === .JSX === |
| The script.js is later on compiled into an intermediate code (.jsx) with a magic header "VSMX". | | The script.js is later on compiled into an intermediate code (.jsx) with a magic header "VSMX". |
| | | *See [[VSMX|VSMX page]] |
| *http://endlessparadigm.com/forum/showthread.php?tid=21485: VSMX file format | |
| | |
| Virtual Script Machine Instructions (VSMX) file layout (naming sould be wikifyed):
| |
| <pre>
| |
| VSMX header
| |
| Compiled code/instructions
| |
| Data/String constants
| |
| (method) name table/Object property
| |
| global symbols/Variable/function names
| |
| </pre>
| |
| | |
| ==== Header ====
| |
| | |
| {| class="wikitable" style="text-align: center;"
| |
| |-
| |
| | style="background-color:#56534D58; color:#000FFF;" |'''Offset'''
| |
| | style="background-color:#56534D58; color:#000FFF;" |'''Size'''
| |
| | style="background-color:#56534D58; color:#000FFF;" |'''Example (h)'''
| |
| | style="background-color:#56534D58; color:#000FFF;" |'''Value (conversion)''' | |
| | style="background-color:#56534D58; color:#000FFF;" |'''Notes'''
| |
| |-
| |
| | 0x00 || 0x04 || 0x56534D58 || "VSMX" || Magic
| |
| |-
| |
| | 0x04 || 0x04 || 0x00000200 || 0002.0000 || Version?
| |
| *v1.0 on PSP RCO RCOs (from video/music UMDs and two lftv RCOs in the PSP's flash0/vsh/ressource/.)?
| |
| *V2.0 on PS3 PSJS (.jsx)
| |
| |-
| |
| | 0x08 || 0x04 || 0x34000000 || 0x34 (52) || header length
| |
| |-
| |
| | 0x0C || 0x04 || - || || length of compiled code/instructions section
| |
| |-
| |
| | 0x10 || 0x04 || - || || offset of data section
| |
| |-
| |
| | 0x14 || 0x04 || - || || length of data
| |
| |-
| |
| | 0x18 || 0x04 || - || || number of data(seen: 1 or 2)
| |
| |-
| |
| | 0x1C || 0x04 || - || || offset of name table
| |
| |-
| |
| | 0x20 || 0x04 || - || || length of name
| |
| |-
| |
| | 0x24 || 0x04 || - || || number of name
| |
| |-
| |
| | 0x28 || 0x04 || - || || offset of global symbols
| |
| |-
| |
| | 0x2C || 0x04 || - || || length of global symbols
| |
| |-
| |
| | 0x30 || 0x04 || - || || number of global symbols
| |
| |-
| |
| |}
| |
| | |
| ==== Compiled instructions ====
| |
| | |
| *Instructions length: 8 bytes
| |
| | |
| HEX code format should be wikifyed, may be table moved to (later).
| |
| | |
| {| class="wikitable sortable"
| |
| |-
| |
| ! '''ByteCode (short)'''
| |
| ! '''Instruction Name'''
| |
| ! '''Note1'''
| |
| ! '''Note2'''
| |
| |-
| |
| | 0x00 || NOP || - || -
| |
| |-
| |
| | 0x01 || ASSGN || - || -
| |
| |-
| |
| | 0x02 || ADD || - || -
| |
| |-
| |
| | 0x03 || SUB || - || -
| |
| |-
| |
| | 0x04 || MUL || - || -
| |
| |-
| |
| | 0x05 || DIV || - || -
| |
| |-
| |
| | 0x06 || MOD || - || -
| |
| |-
| |
| | 0x07 || TO_NUMBER || - || -
| |
| |-
| |
| | 0x08 || CSIGN || - || -
| |
| |-
| |
| | 0x09 || NOT || - || -
| |
| |-
| |
| | 0x0A || INC || - || -
| |
| |-
| |
| | 0x0B || DEC || - || -
| |
| |-
| |
| | 0x0C || POST_INC || - || -
| |
| |-
| |
| | 0x0D || POST_DEC || - || -
| |
| |-
| |
| | 0x0E || CMPEQ || Compare Operators || -
| |
| |-
| |
| | 0x0F || CMPNEQ || Compare Operators || -
| |
| |-
| |
| | 0x10 || CMPSEQ || Compare Operators || -
| |
| |-
| |
| | 0x11 || CMPSNEQ || Compare Operators || -
| |
| |-
| |
| | 0x12 || CMPLT || Compare Operators || -
| |
| |-
| |
| | 0x13 || CMPLE || Compare Operators || -
| |
| |-
| |
| | 0x14 || CMPGE || Compare Operators || -
| |
| |-
| |
| | 0x15 || CMPGT || Compare Operators || -
| |
| |-
| |
| | 0x16 || INSTANCEOF || - || -
| |
| |-
| |
| | 0x17 || IN || - || -
| |
| |-
| |
| | 0x18 || TYPEOF || - || -
| |
| |-
| |
| | 0x19 || BIT_AND || - || -
| |
| |-
| |
| | 0x1A || BIT_XOR || - || -
| |
| |-
| |
| | 0x1B || BIT_OR || - || -
| |
| |-
| |
| | 0x1C || BIT_NOT || - || -
| |
| |-
| |
| | 0x1D || LSHIFT || - || -
| |
| |-
| |
| | 0x1E || S_RSHIFT || - || -
| |
| |-
| |
| | 0x1F || U_RSHIFT || - || -
| |
| |-
| |
| | 0x20 || COPY || - || -
| |
| |-
| |
| | 0x21 || SWAP || - || -
| |
| |-
| |
| | 0x22 || REMOVE || - || -
| |
| |-
| |
| | 0x23 || PUSH_UNDEFINED || - || -
| |
| |-
| |
| | 0x24 || PUSH_NULL || - || -
| |
| |-
| |
| | 0x25 || PUSH_BOOL || - || -
| |
| |-
| |
| | 0x26 || PUSH_INT || - || -
| |
| |-
| |
| | 0x27 || PUSH_FLOAT || - || -
| |
| |-
| |
| | 0x28 || PUSH_STRING || - || -
| |
| |-
| |
| | 0x29 || PUSH_OBJECT || - || -
| |
| |-
| |
| | 0x2A || PUSH_FUNC || - || -
| |
| |-
| |
| | 0x2B || PUSH_ARRAY || - || -
| |
| |-
| |
| | 0x2C || PUSH_THIS || - || -
| |
| |-
| |
| | 0x2D || PUSH_LOCAL || - || -
| |
| |-
| |
| | 0x2E || PUSH_GLOBAL || - || -
| |
| |-
| |
| | 0x2F || GETATTR || - || -
| |
| |-
| |
| | 0x30 || GETATTR_KEEPOBJ || - || -
| |
| |-
| |
| | 0x31 || SETATTR || - || -
| |
| |-
| |
| | 0x32 || DELATTR || - || -
| |
| |-
| |
| | 0x33 || APPEND_ATTR || - || -
| |
| |-
| |
| | 0x34 || GETITEM || - || -
| |
| |-
| |
| | 0x35 || GETITEM_KEEPOBJ || - || -
| |
| |-
| |
| | 0x36 || SETITEM || - || -
| |
| |-
| |
| | 0x37 || DELITEM || - || -
| |
| |-
| |
| | 0x38 || APPEND_ITEM || - || -
| |
| |-
| |
| | 0x39 || JUMP || - || -
| |
| |-
| |
| | 0x3A || JUMPT || - || -
| |
| |-
| |
| | 0x3B || JUMPF || - || -
| |
| |-
| |
| | 0x3C || CALL_FUNC || - || -
| |
| |-
| |
| | 0x3D || CALL_METHOD || - || -
| |
| |-
| |
| | 0x3E || CALL_CONSTRUCTOR || - || -
| |
| |-
| |
| | 0x3F || RET || - || -
| |
| |-
| |
| | 0x40 || THROW || - || -
| |
| |-
| |
| | 0x41 || TRYBLK_IN || - || -
| |
| |-
| |
| | 0x42 || TRYBLK_OUT || - || -
| |
| |-
| |
| | 0x43 || CATCH_FINALLYBLK_IN || - || -
| |
| |-
| |
| | 0x44 || CATCH_FINALLYBLK_OUT || - || -
| |
| |-
| |
| | 0x45 || HALT || - || -
| |
| |-
| |
| | 0x46 || DEBUG_FILE || - || -
| |
| |-
| |
| | 0x47 || DEBUG_LINE || - || -
| |
| |-
| |
| | 0x48 || GETITEM_KEEPOBJNAME || - || -
| |
| |-
| |
| | 0x49 || PUSH_VECTOR || - || -
| |
| |-
| |
| | 0x4A || GET_VECTOR_ELEMENT || - || -
| |
| |-
| |
| | 0x4B || GET_VECTOR_ELEMENT_KEEPVECTOR || - || -
| |
| |-
| |
| | 0x4C || ASSGN_VECTOR_ELEMENT || - || -
| |
| |-
| |
| | 0x4D || SETATTR_VECTOR_ELEMENT || - || -
| |
| |-
| |
| | 0x4E || SETITEM_VECTOR_ELEMENT || - || -
| |
| |-
| |
| |}
| |
| | |
| | |
| '''C'''o'''mp'''are Operators
| |
| {| class="wikitable sortable"
| |
| |-
| |
| ! Compare For:
| |
| ! Operators
| |
| ! Bytecode (PSJS)
| |
| ! Syntax (JS)
| |
| |-
| |
| | Equality || cmpeq || 0x0E || ==
| |
| |-
| |
| | Equal value and equal type || cmpseq || 0x10 || ===
| |
| |-
| |
| | Inequality || cmpneq || 0x0F || !=
| |
| |-
| |
| | not equal value or not equal type || cmpsneq || 0x11 || !==
| |
| |-
| |
| | Greater Than || cmpgt || 0x15 || >
| |
| |-
| |
| | Greater Than or Equal To || cmpge || 0x14 || >=
| |
| |-
| |
| | Less Than || cmplt || 0x12 || <
| |
| |-
| |
| | Less Than or Equal To || cmple || 0x13 || <=
| |
| |-
| |
| |}
| |
|
| |
|
| =Links= | | =Links= |
Description
RAF (Rich Appearance Format) is a container, used by the animation when PS3 boots (coldboot.raf), and inside dynamic Themes (as the animated scene displayed at the background of the theme)
- RAF related firmware modules in dev_flashvsh/modules/:
- raf.sprx <--- generic animations
RAF structure
See: CXML Containers page
RAF tools
Rich Apparence Maker
http://r.a.m.games-hack.fr/index.php
guide http://r.a.m.games-hack.fr/doc/Rich%20Appearance%20Maker%20-%20Quick%20Start%20Guide.pdf
R.A.M on PS3 News: http://www.ps3news.com/ps3-hacks-jailbreak/video-ps3-rich-appearance-maker-r-a-m-beta-is-now-open/
R.A.M on PSX Scene: http://psx-scene.com/forums/content/rich-appearance-maker-r-m-free-beta-now-open-dynamic-theme-maker-2161/
PS3 Color Logo Creator V2.511
PCLC Source: http://tizzyt-archive.blogspot.co.uk/2012/04/playstation-color-logo-creator-v2511.html
PCLC on PS3 News: http://www.ps3news.com/ps3-hacks-jailbreak/ps3-color-logo-creator-v2-50-v2-51-updates-now-available/
PCLC V2.511 Download: http://www.mediafire.com/download/zbb3e07wdx22jub
RAF contents
It must comply with these restrictions :
-Textures size max: 15 mb ( 15728640 Bytes ) ( on RSX local memory at run time )
-Geometry & script size max: 1 mb ( 1048576 Bytes ) ( on main memory at run time )
-Actor size max: 1.25mb ( 1310720 Bytes ) ( in the intermediate buffer )
-Actor number max: 128
-Cameras: 1
-Lights: 2 (ambient + point)
-Scripts: 1
-Models: 64 (with 8 animations each model)
RAF Scene (.XML)
Models and Lights (.DAE)
Models can be geometric 3D objects, or 3D light points
- Typical objects and names used:
- bg.dae
- ambient_light.dae
- point_light.dae
Models files contains references to the libraries that were used by the 3D app that build the object
- Typical entries found in models (3d objects)
- <asset>
- <library_physics_scenes>
- <library_images>
- <library_materials>
- <library_effects>
- <library_geometries>
- <library_visual_scenes>
- <scene>
- Typical entries found in models (3d lights)
- <asset>
- <library_physics_scenes>
- <library_lights>
- <library_visual_scenes>
- <scene>
Textures
See Multimedia Formats and Tools page
Before compiling, only .dds and jpeg are supported.
After compiling, Graphics Texture Format (GTF) (is a container for storing one or multiple textures, "pack GTF", data in a layout that can be used as is by RSX).
Script
.JS
script.js (an PlayStation JavaScript, known as PSJS, based on ECMA-262)
ECMA-262: several well-known implementations such as JavaScript, JScript and ActionScript.
Some examples of PS3 theme using PSJS:
.JSX
The script.js is later on compiled into an intermediate code (.jsx) with a magic header "VSMX".
Links