Coldboot.raf: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
(this modification example was pointless without the script... it will be replaced by better examples later)
(→‎Coldboot.raf contents: expanding sections)
Line 47: Line 47:


=Coldboot.raf contents=
=Coldboot.raf contents=
To extract the files from coldboot.raf is needed to make a [[Template:Zlib Header|zlib]] decompression and then a [[CXML Containers | CXML container]] extraction. The extracted files are:
To extract the files from coldboot.raf is needed to make a [[Template:Zlib Header|zlib]] decompression and then a CXML extraction (use "CXML decompiler" tool made by flatz, download link and source code is at bottom of [[CXML Containers]] page). The extracted files are:


{| class="wikitable"
{| class="wikitable"
Line 73: Line 73:
| Script || 8 || coldboot.jsx || Animation script, written in [[PlayStation JavaScript]] format (and extracted as a [[VSMX]] file). See [http://pastebin.com/vRCDzXt1 Pastebin] (without the header)
| Script || 8 || coldboot.jsx || Animation script, written in [[PlayStation JavaScript]] format (and extracted as a [[VSMX]] file). See [http://pastebin.com/vRCDzXt1 Pastebin] (without the header)
|}
|}
*Note the extracted files are not the original files used to create the .raf. All them suffered a format conversion when the .raf was created


==Coldboot.xml Scene==
==Scene==
A RAF animation contains an "scene" that is viewed from a "camera", and is displayed using a timeline that is defined in the "script" file
As explained in [[CXML Containers]] page, RAF containers includes embedded data inside his structure (like metadata, not a real file). This data is generated by the RAF compiler, is based in the original scene.xml used to create the RAF, and also is based on the internal structure of the RAF container (this data about the RAF structure is not present in the original scene.xml)


The animation "scene" is composed by 3 "actors" (or more exactly... 2 groups of 3 actors... one group for SD TV's and other group for HD TV's)
The '''coldboot.xml''' example below has been generated by the "CXML decompiler". It should be considered a representation of the coldboot.raf contents (like explained before, this file doesnt exists inside coldboot.raf and is different than the scene.xml used to create coldboot.raf)
 
The 3 actors are overlapped in the same position and associated with the same "model" "geometry" by using the "skeleton" joint, how and when this actors appears is defined in the "script" file
 
Every actor uses his specific "material" (that appears in the "material-table"), and every material uses a "texture" (that appears in the "texture-table")
 
Some elements of the scene like the camera or lights are defined in the XML and are not files inside the container


'''Coldboot.xml (CXML representation)'''
{{Boxcode|content=<syntaxhighlight lang="xml">
{{Boxcode|content=<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
Line 148: Line 144:
</syntaxhighlight>}}
</syntaxhighlight>}}


*Notes:
'''Coldboot.xml (original)'''
**This XML file can be extracted from coldboot.raf and can be used to rebuild it
 
**Inside the "file-table" the "src" for the files uses an absolute path from a device unit in the PC, but is posible to use relative paths, this paths depends of the compiler or the options used at extraction/compiling time
The XML files generated by "CXML decompiler" contains more info than the original scene.xml. This makes posible to rebuild by hand the orginal scene.xml using as a layout the XML standards explained in [[Rich Appearance Format (RAF)]] page
 
{{Boxcode|content=<syntaxhighlight lang="xml">
<?xml version='1.0' encoding="UTF-8"?>
 
<raf>
<!-- model -->
<model id="id_model" file="model.dae" vertex_color="" >
<animation id="animation" file="animation.dae" start="1" end="100" sampling_rate="1" />
</model>
 
<!-- material -->
<material id="id_material" effect="pure_texture" >
<texture file="texture.jpg" type="color_map" />
</material>
 
<!-- actor -->
<actor id="name" model="id_model" material="id_material" position="x,y,z" rotation="x,y,z" scale="x,y,z" color="r,g,b,a" uv_scale="u,v" uv_offset="u,v" anim_weight="anim0, anim1, anim2, anim3" anim_speed="anim0, anim1, anim2, anim3" anim_time="anim0, anim1, anim2, anim3" />
 
<!-- camera -->
<camera id="name" file="camera.dae" type="perspective / orthographic" yfov="1" ymag="1" znear="1" zfar="1" position="x,y,z" direction="x,y,z" up="x,y,z" />
 
<!-- light -->
<light id="name" file="light.dae" type="ambient / point" color="r,g,b" position="x,y,z" direction="x,y,z" attenuation="1,1,1" />
 
<!-- script -->
<script file="script.js" />
</raf>
</syntaxhighlight>}}
 
==Model==
 
==Textures==
 
==Script==


{{File Formats}}<noinclude>[[Category:Main]]</noinclude>
{{File Formats}}<noinclude>[[Category:Main]]</noinclude>

Revision as of 19:49, 8 November 2014

Description

dev_flash\vsh\resource\coldboot.raf is the animation when PS3 boots, introduced in firmware 2.70 with raf.sprx and raf.qrc as support.

Rich Appearance Format (RAF) belongs to a group of CXML Containers that uses zlib compression and a XML file enbedded in the container structure with the "scene" information and also works as an index to lists the contained files

Coldboot animation uses settings from the RCOXML Structure of custom render plugin (in RCOXML setion note the animation settings for: anim_coldboot and anim_coldboot2)

Coldboot.raf is the same file in all firmware versions, doesnt contains sound, but is played with sound by using either coldboot_stereo.ac3 (2 audio channels) or coldboot_multi.ac3 (6 audio channels), this audio files has been present from firmware 1.00 but have changed (and also changed the coldboot animations settings inside the RCOXML of custom_render_plugin). See: Multimedia Formats and Tools

https://www.youtube.com/watch?v=GUb1gIKhwMU PlayStation 3 Startup Screens - pre 3.00 + 3.00 and later

http://rghost.net/58821375 the coldboot.raf compiled into a theme (Apply again to get the animation again)

Coldboot Files Versions

Coldboot Animation related files
File Name Size
(bytes)
Hash
(MD5)
Firmware Notes
1.00~2.60 2.70~2.80 3.00~3.01 3.10~4.65
coldboot_stereo.ac3 721.920 5EB0E4ECE6F221ED07D3128D416ADB44 Yes No Old sound files (coldboot)
coldboot_multi.ac3 721.920 931D05254C198ED5D202ECAE9A0BC6E2
coldboot.raf 51.446 FBFD819D6CD834AC2BDDA02EE3D5375F No Yes Not present before 2.70, same for all other firmwares
coldboot2_stereo.ac3 801.280 83D2B05CC85F65A1392614989F71ECFA No Yes No New sound files. Using new names (coldboot2)
coldboot2_multi.ac3 801.280 D837AA7B7AEC6C1A090CBA51CCA9434E
coldboot_stereo.ac3 801.280 83D2B05CC85F65A1392614989F71ECFA No Yes New sound files. Using old names (coldboot)
coldboot_multi.ac3 801.280 D837AA7B7AEC6C1A090CBA51CCA9434E
  • coldboot2 sounds overlap notes:
    • In 2.70~2.80, coldboot2_multi.ac3 differs from coldboot_multi.ac3 and coldboot2_stereo.ac3 differs from coldboot_stereo.ac3
    • In 3.00~3.01, coldboot2_multi.ac3 is same as coldboot_multi.ac3 and coldboot2_stereo.ac3 is same as coldboot_stereo.ac3

Coldboot.raf contents

To extract the files from coldboot.raf is needed to make a zlib decompression and then a CXML extraction (use "CXML decompiler" tool made by flatz, download link and source code is at bottom of CXML Containers page). The extracted files are:

Usage File Index File Name Notes
Scene Not a file Coldboot.xml Is not a real file inside the container, all his info can be obtained from the container structure but is not considered a file
Model 0 plane.edge The 3D object, composed by a simple perimetral line that will be "filled" with the textures
1 plane.skel The skeleton of the 3D object, composed by a single joint point, needed by all the animations
Textures HD 2 new_logo.gtf 700x350 pixels, the main logo (without the "copyright", "trademark" and "playstation3" text)
3 new_logo_footer.gtf 700x350 pixels, the "copyright", "trademark" and "playstation3" text
4 new_logo_blur.gtf 700x350 pixels, a blurry copy of logo+footer together
Textures SD 5 new_logo_sd.gtf 240x120 pixels, the main logo (without the "copyright", "trademark" and "playstation3" text)
6 new_logo_sd_footer.gtf 240x120 pixels, the "copyright", "trademark" and "playstation3" text
7 new_logo_sd_blur.gtf 240x120 pixels, a blurry copy of logo+footer together
Script 8 coldboot.jsx Animation script, written in PlayStation JavaScript format (and extracted as a VSMX file). See Pastebin (without the header)
  • Note the extracted files are not the original files used to create the .raf. All them suffered a format conversion when the .raf was created

Scene

As explained in CXML Containers page, RAF containers includes embedded data inside his structure (like metadata, not a real file). This data is generated by the RAF compiler, is based in the original scene.xml used to create the RAF, and also is based on the internal structure of the RAF container (this data about the RAF structure is not present in the original scene.xml)

The coldboot.xml example below has been generated by the "CXML decompiler". It should be considered a representation of the coldboot.raf contents (like explained before, this file doesnt exists inside coldboot.raf and is different than the scene.xml used to create coldboot.raf)

Coldboot.xml (CXML representation)

Code Sample

Coldboot.xml (original)

The XML files generated by "CXML decompiler" contains more info than the original scene.xml. This makes posible to rebuild by hand the orginal scene.xml using as a layout the XML standards explained in Rich Appearance Format (RAF) page

Code Sample

Model

Textures

Script