Endless Paradigm

Full Version: VSMX File Format
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
If you want to, although it's probably not really that necessary :P

Thanks either way.
hey zinga can you take a look at this file the file extention is .jsx but it is a vsmx file i tried to decode with rcomage but it did not work ps3 dynamic themes use this[attachment=4581]
Try hex editing the version? (at 0x4) from 0x20000 to 0x10000.
Seems to work, just that there's an unknown identifier, 0x49.
ZiNgA BuRgA Wrote: [ -> ]Try hex editing the version? (at 0x4) from 0x20000 to 0x10000.
Seems to work, just that there's an unknown identifier, 0x49.

thanks but i have no clue how to hex edit Whyowhy
Oh well, here's the decoded output anyway.
Difficult to read I guess...

Spoiler:

Code:
; Decoded VSMX file written by Rcomage v1.1.1

NAME fg
NAME Array
NAME Actor
CONST_STRING "foreground01"
CALL_INBUILT args=1
NAME Actor
CONST_STRING "foreground02"
CALL_INBUILT args=1
NAME Actor
CONST_STRING "foreground03"
CALL_INBUILT args=1
NAME Actor
CONST_STRING "foreground04"
CALL_INBUILT args=1
NAME Actor
CONST_STRING "foreground05"
CALL_INBUILT args=1
CALL_INBUILT args=5
ASSIGN
END_STATEMENT
NAME i
CONST_INT 0
ASSIGN
END_STATEMENT
NAME i
NAME fg
PROPERTY length
TEST_LESS_THAN
JUMP_IF_TRUE line=35
JUMP line=46
NAME i
INCREMENT
END_STATEMENT
JUMP line=25
NAME fg
NAME i
ARRAY_INDEX
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=4
SET color
END_STATEMENT
JUMP line=31
NAME count
CONST_INT 0
ASSIGN
END_STATEMENT
NAME prev
CONST_INT 1
ASSIGN
END_STATEMENT
NAME duration
CONST_FLOAT 4.00000
ASSIGN
END_STATEMENT
NAME center
CONST_FLOAT 0.700000
CONST_FLOAT 0.300000
NEGATE
CONST_FLOAT 0.100000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
NAME move
CONST_BOOL true
ASSIGN
END_STATEMENT
NAME hide
CONST_FLOAT 0.900000
CONST_FLOAT 0.000000
CONST_FLOAT 0.900000
CONST_FLOAT 1.00000
MAKE_FLOAT_ARRAY items=4
ASSIGN
END_STATEMENT
NAME show
CONST_FLOAT 0.100000
CONST_FLOAT 0.000000
CONST_FLOAT 0.100000
CONST_FLOAT 1.00000
MAKE_FLOAT_ARRAY items=4
ASSIGN
END_STATEMENT
NAME System
PROPERTY timer
CONST_INT 0
NAME IntervalTimer
NAME duration
FUNCTION args=0, flag=5, start_line=93
JUMP line=269
UNNAMED_VARIABLE 1
NAME count
NAME fg
PROPERTY length
UNK_6
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 2
NAME count
CONST_INT 2
UNK_6
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 3
END_STATEMENT
UNNAMED_VARIABLE 4
END_STATEMENT
NAME move
NOT
JUMP_IF_FALSE line=128
UNNAMED_VARIABLE 3
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 4
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
JUMP line=190
NAME count
NAME fg
PROPERTY length
TEST_LESS_THAN
JUMP_IF_FALSE line=171
UNNAMED_VARIABLE 2
CONST_INT 0
TEST_EQUAL
JUMP_IF_FALSE line=155
UNNAMED_VARIABLE 3
CONST_FLOAT 1.00000
NEGATE
CONST_FLOAT 0.500000
NEGATE
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 4
CONST_FLOAT 1.00000
CONST_FLOAT 0.500000
NEGATE
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
JUMP line=170
UNNAMED_VARIABLE 3
CONST_FLOAT 1.00000
NEGATE
CONST_FLOAT 0.500000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 4
CONST_FLOAT 1.00000
CONST_FLOAT 0.500000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
JUMP line=190
NAME count
NAME fg
PROPERTY length
TEST_EQUAL
JUMP_IF_FALSE line=190
UNNAMED_VARIABLE 3
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 4
CONST_FLOAT 1.00000
CONST_FLOAT 0.500000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
NAME fg
NAME prev
ARRAY_INDEX
METHOD setPosition
NAME center
UNNAMED_VARIABLE 4
ADD
NAME duration
CALL_METHOD args=2
END_STATEMENT
NAME fg
NAME prev
ARRAY_INDEX
METHOD setColor
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=4
NAME duration
NAME INTERPOLATION_BEZIER
NAME hide
CALL_METHOD args=4
END_STATEMENT
NAME prev
UNNAMED_VARIABLE 1
ASSIGN
END_STATEMENT
NAME fg
UNNAMED_VARIABLE 1
ARRAY_INDEX
NAME center
UNNAMED_VARIABLE 3
ADD
SET position
END_STATEMENT
NAME count
NAME fg
PROPERTY length
TEST_EQUAL
JUMP_IF_FALSE line=242
NAME count
CONST_INT 0
ASSIGN
END_STATEMENT
NAME move
NAME move
NOT
ASSIGN
END_STATEMENT
CONST_NULL
RETURN
NAME fg
UNNAMED_VARIABLE 1
ARRAY_INDEX
METHOD setPosition
NAME center
NAME duration
CALL_METHOD args=2
END_STATEMENT
NAME fg
UNNAMED_VARIABLE 1
ARRAY_INDEX
METHOD setColor
CONST_FLOAT 1.00000
CONST_FLOAT 1.00000
CONST_FLOAT 1.00000
CONST_FLOAT 1.00000
MAKE_FLOAT_ARRAY items=4
NAME duration
NAME INTERPOLATION_BEZIER
NAME show
CALL_METHOD args=4
END_STATEMENT
NAME count
INCREMENT
END_STATEMENT
CONST_NULL
RETURN
CALL_INBUILT args=2
ARRAY_INDEX_ASSIGN
END_STATEMENT
END_SCRIPT

By the way, just noticed that Sony has a JS » JSX compiler in the leaked RAF tools.  Maybe I'll take a peak in there.
ZiNgA BuRgA Wrote: [ -> ]Oh well, here's the decoded output anyway.
Difficult to read I guess...

Spoiler:

Code:
; Decoded VSMX file written by Rcomage v1.1.1

NAME fg
NAME Array
NAME Actor
CONST_STRING "foreground01"
CALL_INBUILT args=1
NAME Actor
CONST_STRING "foreground02"
CALL_INBUILT args=1
NAME Actor
CONST_STRING "foreground03"
CALL_INBUILT args=1
NAME Actor
CONST_STRING "foreground04"
CALL_INBUILT args=1
NAME Actor
CONST_STRING "foreground05"
CALL_INBUILT args=1
CALL_INBUILT args=5
ASSIGN
END_STATEMENT
NAME i
CONST_INT 0
ASSIGN
END_STATEMENT
NAME i
NAME fg
PROPERTY length
TEST_LESS_THAN
JUMP_IF_TRUE line=35
JUMP line=46
NAME i
INCREMENT
END_STATEMENT
JUMP line=25
NAME fg
NAME i
ARRAY_INDEX
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=4
SET color
END_STATEMENT
JUMP line=31
NAME count
CONST_INT 0
ASSIGN
END_STATEMENT
NAME prev
CONST_INT 1
ASSIGN
END_STATEMENT
NAME duration
CONST_FLOAT 4.00000
ASSIGN
END_STATEMENT
NAME center
CONST_FLOAT 0.700000
CONST_FLOAT 0.300000
NEGATE
CONST_FLOAT 0.100000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
NAME move
CONST_BOOL true
ASSIGN
END_STATEMENT
NAME hide
CONST_FLOAT 0.900000
CONST_FLOAT 0.000000
CONST_FLOAT 0.900000
CONST_FLOAT 1.00000
MAKE_FLOAT_ARRAY items=4
ASSIGN
END_STATEMENT
NAME show
CONST_FLOAT 0.100000
CONST_FLOAT 0.000000
CONST_FLOAT 0.100000
CONST_FLOAT 1.00000
MAKE_FLOAT_ARRAY items=4
ASSIGN
END_STATEMENT
NAME System
PROPERTY timer
CONST_INT 0
NAME IntervalTimer
NAME duration
FUNCTION args=0, flag=5, start_line=93
JUMP line=269
UNNAMED_VARIABLE 1
NAME count
NAME fg
PROPERTY length
UNK_6
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 2
NAME count
CONST_INT 2
UNK_6
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 3
END_STATEMENT
UNNAMED_VARIABLE 4
END_STATEMENT
NAME move
NOT
JUMP_IF_FALSE line=128
UNNAMED_VARIABLE 3
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 4
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
JUMP line=190
NAME count
NAME fg
PROPERTY length
TEST_LESS_THAN
JUMP_IF_FALSE line=171
UNNAMED_VARIABLE 2
CONST_INT 0
TEST_EQUAL
JUMP_IF_FALSE line=155
UNNAMED_VARIABLE 3
CONST_FLOAT 1.00000
NEGATE
CONST_FLOAT 0.500000
NEGATE
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 4
CONST_FLOAT 1.00000
CONST_FLOAT 0.500000
NEGATE
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
JUMP line=170
UNNAMED_VARIABLE 3
CONST_FLOAT 1.00000
NEGATE
CONST_FLOAT 0.500000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 4
CONST_FLOAT 1.00000
CONST_FLOAT 0.500000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
JUMP line=190
NAME count
NAME fg
PROPERTY length
TEST_EQUAL
JUMP_IF_FALSE line=190
UNNAMED_VARIABLE 3
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
UNNAMED_VARIABLE 4
CONST_FLOAT 1.00000
CONST_FLOAT 0.500000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=3
ASSIGN
END_STATEMENT
NAME fg
NAME prev
ARRAY_INDEX
METHOD setPosition
NAME center
UNNAMED_VARIABLE 4
ADD
NAME duration
CALL_METHOD args=2
END_STATEMENT
NAME fg
NAME prev
ARRAY_INDEX
METHOD setColor
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
CONST_FLOAT 0.000000
MAKE_FLOAT_ARRAY items=4
NAME duration
NAME INTERPOLATION_BEZIER
NAME hide
CALL_METHOD args=4
END_STATEMENT
NAME prev
UNNAMED_VARIABLE 1
ASSIGN
END_STATEMENT
NAME fg
UNNAMED_VARIABLE 1
ARRAY_INDEX
NAME center
UNNAMED_VARIABLE 3
ADD
SET position
END_STATEMENT
NAME count
NAME fg
PROPERTY length
TEST_EQUAL
JUMP_IF_FALSE line=242
NAME count
CONST_INT 0
ASSIGN
END_STATEMENT
NAME move
NAME move
NOT
ASSIGN
END_STATEMENT
CONST_NULL
RETURN
NAME fg
UNNAMED_VARIABLE 1
ARRAY_INDEX
METHOD setPosition
NAME center
NAME duration
CALL_METHOD args=2
END_STATEMENT
NAME fg
UNNAMED_VARIABLE 1
ARRAY_INDEX
METHOD setColor
CONST_FLOAT 1.00000
CONST_FLOAT 1.00000
CONST_FLOAT 1.00000
CONST_FLOAT 1.00000
MAKE_FLOAT_ARRAY items=4
NAME duration
NAME INTERPOLATION_BEZIER
NAME show
CALL_METHOD args=4
END_STATEMENT
NAME count
INCREMENT
END_STATEMENT
CONST_NULL
RETURN
CALL_INBUILT args=2
ARRAY_INDEX_ASSIGN
END_STATEMENT
END_SCRIPT

By the way, just noticed that Sony has a JS » JSX compiler in the leaked RAF tools.  Maybe I'll take a peak in there.

would be great if you can take a look at the jsx compiler ^^
and thank you for making the file readable for me 2thumbs
^ If you're interested, here's a decompiled version of the script, which compiles with raf_script and gives very similar output:

Javascript Code
fg = new Array(new Actor( "foreground01" ), new Actor( "foreground02" ), new Actor( "foreground03" ), new Actor( "foreground04" ), new Actor( "foreground05" ) );
for(i = 0; i < fg.length; i++) {
	fg[i].color = < 0.0, 0.0, 0.0, 0.0 >;
}
count = 0;
prev = 1;
duration = 4.0;
center = < 0.7, -0.3, 0.1 >;
move = true;
hide = < 0.9, 0.0, 0.9, 1.0 >;
show = < 0.1, 0.0, 0.1, 1.0 >;
System.timer[0] = new IntervalTimer( duration, function (/*localvars=5*/) {
	var __var1 = count % fg.length;
	var __var2 = count % 2;
	var __var3;
	var __var4;
	if( !move ) {
		__var3 = < 0.0, 0.0, 0.0 >;
		__var4 = < 0.0, 0.0, 0.0 >;
	} else {
		if( count < fg.length ) {
			if( __var2 == 0 ) {
				__var3 = < -1.0, -0.5, 0.0 >;
				__var4 = < 1.0, -0.5, 0.0 >;
			} else {
				__var3 = < -1.0, 0.5, 0.0 >;
				__var4 = < 1.0, 0.5, 0.0 >;
			}
		} else {
			if( count == fg.length ) {
				__var3 = < 0.0, 0.0, 0.0 >;
				__var4 = < 1.0, 0.5, 0.0 >;
			}
		}
	}
	fg[prev].setPosition( center + __var4, duration );
	fg[prev].setColor( < 0.0, 0.0, 0.0, 0.0 >, duration, INTERPOLATION_BEZIER, hide );
	prev = __var1;
	fg[__var1].position = center + __var3;
	if( count == fg.length ) {
		count = 0;
		move = !move;
		return;
	}
	fg[__var1].setPosition( center, duration );
	fg[__var1].setColor( < 1.0, 1.0, 1.0, 1.0 >, duration, INTERPOLATION_BEZIER, show );
	count++;
	return;
} );


Note that <1,2,3> syntax is a vector definition.

ZiNgA BuRgA Wrote: [ -> ]Try hex editing the version? (at 0x4) from 0x20000 to 0x10000.
Seems to work, just that there's an unknown identifier, 0x49.

Could you show the steps you did at 0x4 you replaced VSMX to FRC ?

Also from 0x20000 to 0x10000 they are not present it exceeds the data so I don't know what you did there?

After this i can successfuly retrieve the vsmx file via rcomage on command line?

rcomage vsmxdec --decompile vsmxfile output?

If you could specify the offsets in hexadecimals and what you did where it would be very helpful!

Thanks ZingaBurga
You need to open the file in a hex editor and go to offset 0x4, and look at the 4 bytes from there (0x4 to 0x8).  If you don't understand, try reading some hex editing tutorials.

You'll see a "2" in these 4 bytes, and the rest will be "0".  Change the "2" to a "1", and save.
Thanks for your help but I am still unsucessful or perhaps I am decompiling wrong!

Could you send me your photo.jsx file that has been hex edited so that I can take a look?

Here are the images showing what I did:
http://imgur.com/y1sxL
http://imgur.com/VdvbF

I am sending you these 2 versions in one zip file:
http://www.sendspace.com/file/8z92xv

Regarding the images also I will show you what I have changed in them in the 2 of them I changed 00 00 00 02 to 00 00 00 01 like you said in the first 8 bits but you can take a look inside when you download them also!

So maybe I need to change the filetype from .jsx to .rco?

what else do I need to do?

Thanks
Pages: 1 2 3 4
Reference URL's