Rich Appearance Format (RAF): Difference between revisions
m (→.JSX) |
m (→.JSX) |
||
Line 86: | Line 86: | ||
*http://endlessparadigm.com/forum/showthread.php?tid=21485: VSMX file format | *http://endlessparadigm.com/forum/showthread.php?tid=21485: VSMX file format | ||
Virtual Script Machine Instructions (VSMX) file layout: | Virtual Script Machine Instructions (VSMX) file layout (naming sould be wikifyed): | ||
<pre> | <pre> | ||
VSMX header | VSMX header | ||
Compiled instructions | Compiled code/instructions | ||
String constants | Data/String constants | ||
Object property/ | (method) name table/Object property | ||
Variable/function names | global symbols/Variable/function names | ||
</pre> | </pre> | ||
Line 113: | Line 113: | ||
| 0x08 || 0x04 || 0x34000000 || 34 (52) || header length | | 0x08 || 0x04 || 0x34000000 || 34 (52) || header length | ||
|- | |- | ||
| 0x0C || 0x04 || - || || length of compiled instructions section | | 0x0C || 0x04 || - || || length of compiled code/instructions section | ||
|- | |- | ||
| 0x10 || 0x04 || - || || offset of | | 0x10 || 0x04 || - || || offset of data section | ||
|- | |- | ||
| 0x14 || 0x04 || - || || length of | | 0x14 || 0x04 || - || || length of data | ||
|- | |- | ||
| 0x18 || 0x04 || - || || number of | | 0x18 || 0x04 || - || || number of data(seen: 1 or 2) | ||
|- | |- | ||
| 0x1C || 0x04 || - || || offset of | | 0x1C || 0x04 || - || || offset of name table | ||
|- | |- | ||
| 0x20 || 0x04 || - || || length of | | 0x20 || 0x04 || - || || length of name | ||
|- | |- | ||
| 0x24 || 0x04 || - || || number of | | 0x24 || 0x04 || - || || number of name | ||
|- | |- | ||
| 0x28 || 0x04 || - || || offset of | | 0x28 || 0x04 || - || || offset of global symbols | ||
|- | |- | ||
| 0x2C || 0x04 || - || || length of | | 0x2C || 0x04 || - || || length of global symbols | ||
|- | |- | ||
| 0x30 || 0x04 || - || || number of | | 0x30 || 0x04 || - || || number of global symbols | ||
|- | |||
|} | |||
==== Compiled instructions ==== | |||
HEX code format should be wikifyed, may be table moved to (later). | |||
{| class="wikitable sortable" | |||
|- | |||
! '''Hex Code (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 || - || - | |||
|- | |||
| 0x0F || CMPNEQ || - || - | |||
|- | |||
| 0x10 || CMPSEQ || - || - | |||
|- | |||
| 0x11 || CMPSNEQ || - || - | |||
|- | |||
| 0x12 || CMPLT || - || - | |||
|- | |||
| 0x13 || CMPLE || - || - | |||
|- | |||
| 0x14 || CMPGE || - || - | |||
|- | |||
| 0x15 || CMPGT || - || - | |||
|- | |||
| 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_INT || - || - | |||
|- | |||
| 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 || - || - | |||
|- | |- | ||
|} | |} |
Revision as of 20:07, 20 October 2014
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".
- http://endlessparadigm.com/forum/showthread.php?tid=21485: VSMX file format
Virtual Script Machine Instructions (VSMX) file layout (naming sould be wikifyed):
VSMX header Compiled code/instructions Data/String constants (method) name table/Object property global symbols/Variable/function names
Header
Offset | Size | Example (h) | Value (conversion) | Notes |
0x00 | 0x04 | 0x56534D58 | Magic | |
0x04 | 0x04 | 0x00000200 | 0002.0000 | Version?
|
0x08 | 0x04 | 0x34000000 | 34 (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
HEX code format should be wikifyed, may be table moved to (later).
Hex Code (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 | - | - |
0x0F | CMPNEQ | - | - |
0x10 | CMPSEQ | - | - |
0x11 | CMPSNEQ | - | - |
0x12 | CMPLT | - | - |
0x13 | CMPLE | - | - |
0x14 | CMPGE | - | - |
0x15 | CMPGT | - | - |
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_INT | - | - |
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 | - | - |
Links
- RAF pages in other wiki/s
- Interesting info about Animations/3D support in themes http://www.ps3hax.net/showthread.php?t=28426
- See also: Qt Resource Container (QRC)
|