Editing Coldboot.raf
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 4: | Line 4: | ||
[[Rich Appearance Format (RAF)]] belongs to a group of [[CXML Containers]] that uses [[Template:Zlib Header|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 | [[Rich Appearance Format (RAF)]] belongs to a group of [[CXML Containers]] that uses [[Template:Zlib Header|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 | 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]] | 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 Animation (.RAF)= | =Coldboot Animation (.RAF)= | ||
Line 18: | Line 18: | ||
! rowspan="2" | File Name !! rowspan="2" | Size<BR />(bytes) !! rowspan="2" | Hash<BR />(MD5) !! colspan="4" | Firmware !! rowspan="2" | Notes | ! rowspan="2" | File Name !! rowspan="2" | Size<BR />(bytes) !! rowspan="2" | Hash<BR />(MD5) !! colspan="4" | Firmware !! rowspan="2" | Notes | ||
|- | |- | ||
! [[1.00_CEX|1.00]]~[[2.60_CEX|2.60]] !! [[2.70_CEX|2.70]]~[[2.80_CEX|2.80]] !! [[3.00_CEX|3.00]]~[[3.01_CEX|3.01]] !! [[3.10_CEX|3.10]]~[[4. | ! [[1.00_CEX|1.00]]~[[2.60_CEX|2.60]] !! [[2.70_CEX|2.70]]~[[2.80_CEX|2.80]] !! [[3.00_CEX|3.00]]~[[3.01_CEX|3.01]] !! [[3.10_CEX|3.10]]~[[4.65_CEX|4.65]] | ||
|- | |- | ||
! coldboot.raf | ! coldboot.raf | ||
Line 24: | Line 24: | ||
|} | |} | ||
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" style="font-size:x-small;" | {| class="wikitable" style="font-size:x-small;" | ||
|+coldboot.raf contents | |+coldboot.raf contents | ||
! rowspan=2 | ! rowspan=2 | Usage !! rowspan=2 | File Index !! colspan=2 | Converted File !! colspan=2 | Original File !! rowspan=2 | Notes | ||
|- | |- | ||
! Name !! MD5 !! Name !! MD5 | ! Name !! MD5 !! Name !! MD5 | ||
|- | |- | ||
! Scene | ! Scene | ||
| {{cellcolors|lightgrey}} metadata || coldboot.sxml || {{cellcolors|lightgrey}} vary with compiler/extractor version/style || coldboot.xml || {{cellcolors|lightgrey}} vary with coding style || The original scene coldboot.xml is converted to coldboot.sxml and then embedded inside [[CXML_Containers | RAF]] structure as metadata | |||
|- | |- | ||
! rowspan=2 | Model | ! rowspan=2 | Model | ||
| rowspan="2" | plane.dae || rowspan="2 | | 0 || plane.edge || AC3AA7B2AE225DD1C2BB207ADDD4C2CB || rowspan="2" | plane.dae || rowspan="2" {{cellcolors|lightgrey}} vary with collada settings || The 3D object, composed by a simple perimetral line that will be "filled" with the textures | ||
|- | |- | ||
| | | 1 || plane.skel || 67409457645F98B0066B52317BF4CB78 || The skeleton of the 3D object, composed by a single joint point, needed by all the animations | ||
|- | |- | ||
! rowspan=6 | Textures | ! rowspan=6 | Textures | ||
| new_logo. | | 2 || new_logo.gtf || 6BEEA65407EE1513F08F66E17BBADF61 || new_logo.dds || A4AF73E19F8E07542C5FA3DA39C21967 || 700x350 pixels, the main logo (without the "copyright", "trademark" and "playstation3" text) | ||
|- | |- | ||
| new_logo_footer. | | 3 || new_logo_footer.gtf || 5E27DFBB474A2AB5A07A91143C8C8054 || new_logo_footer.dds || ABFE60993D102E39926035D9DEA4CFEC || 700x350 pixels, the "copyright", "trademark" and "playstation3" text | ||
|- | |- | ||
| new_logo_blur. | | 4 || new_logo_blur.gtf || 49E30C3B46BE3B822324EB373EEF5A9C || new_logo_blur.dds || DE871FB0A8ACBD92CEC267816C072C14 || 700x350 pixels, a blurry copy of logo+footer together | ||
|- | |- | ||
| new_logo_sd. | | 5 || new_logo_sd.gtf || ED30E47123D3D68B846DDAC1EBDBDA65 || new_logo_sd.dds || 2B4B56CFFA2A3E3BA868DC56A7F2917C || 240x120 pixels, the main logo (without the "copyright", "trademark" and "playstation3" text) | ||
|- | |- | ||
| new_logo_sd_footer. | | 6 || new_logo_sd_footer.gtf || 4037567A9F5ED59D6E96402FA2859ABC || new_logo_sd_footer.dds || B2718D07AB4B6714240F591D00237639 || 240x120 pixels, the "copyright", "trademark" and "playstation3" text | ||
|- | |- | ||
| new_logo_sd_blur. | | 7 || new_logo_sd_blur.gtf || 5821260B17B0A5BDD85D0F2BEE9596D0 || new_logo_sd_blur.dds || FF32C90F34FB350C34F58800F69318DB || 240x120 pixels, a blurry copy of logo+footer together | ||
|- | |- | ||
! Script | ! Script | ||
| coldboot.js || {{cellcolors|lightgrey | | 8 || coldboot.jsx || 5461466B242D81B57D872BBA95EED753 || coldboot.js || {{cellcolors|lightgrey}} vary with coding style || 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 | |||
==Scene== | ==Scene== | ||
As explained on the [[CXML Containers]] page, RAF containers include embedded data inside their structure (like metadata, not a real file). This data is generated by the RAF compiler and | As explained on the [[CXML Containers]] page, RAF containers include embedded data inside their structure (like metadata, not a real file). This data is generated by the RAF compiler based on the original scene.xml used to create the RAF and is also based on the internal structure of the RAF container (this data about the RAF structure is not present in the original scene.xml) | ||
The XML files generated by "CXML decompiler" contain more info than the original scene.xml. This makes possible to | The XML files generated by "CXML decompiler" contain more info than the original scene.xml. This makes it possible to rebuild (by hand) the original scene.xml using it as a layout for the XML standards explained on the [[Rich Appearance Format (RAF)]] page | ||
Note: By looking at the XML file generated by "CXML decompiler", the original coldboot.raf has been built using raf format v1.0 (version="1.0") and doesn't sort the actors (zsort=""). | |||
{{Boxcode| | '''Coldboot.xml''' (original scene) | ||
{{Boxcode|content=<syntaxhighlight lang="xml"> | |||
<?xml version='1.0' encoding="UTF-8"?> | <?xml version='1.0' encoding="UTF-8"?> | ||
<raf> | <raf> | ||
<model id="plane" file="plane.dae" /> | |||
<material id="mtrl_logo" effect="sce01" > | |||
<texture file="new_logo.dds" type="color_map" /> | |||
</material> | |||
<material id="mtrl_footer" effect="sce01" > | |||
<texture file="new_logo_footer.dds" type="color_map" /> | |||
</material> | |||
<material id="mtrl_blur" effect="sce01" > | |||
<texture file="new_logo_blur.dds" type="color_map" /> | |||
</material> | |||
<material id="mtrl_logo_sd" effect="sce01" > | |||
<texture file="new_logo_sd.dds" type="color_map" /> | |||
</material> | |||
<material id="mtrl_footer_sd" effect="sce01" > | |||
<texture file="new_logo_sd_footer.dds" type="color_map" /> | |||
</material> | |||
<material id="mtrl_blur_sd" effect="sce01" > | |||
<texture file="new_logo_sd_blur.dds" type="color_map" /> | |||
</material> | |||
<actor id="logo" model="plane" material="mtrl_logo" position="1.85,0.0,0.0" rotation="1.570796,0.0,0.0" scale="1.28,0.64,0.64" color="1.0,1.0,1.0,1.0" uv_scale="1.0,-1.0" uv_offset="0.0,0.0" anim_weight="1.0,0.0,0.0,0.0" anim_speed="1.0,1.0,1.0,1.0" anim_time="0.0,0.0,0.0,0.0" /> | |||
<actor id="footer" model="plane" material="mtrl_footer" position="1.85,0.0,0.0001" rotation="1.570796,0.0,0.0" scale="1.28,0.64,0.64" color="1.0,1.0,1.0,1.0" uv_scale="1.0,-1.0" uv_offset="0.0,0.0" anim_weight="1.0,0.0,0.0,0.0" anim_speed="1.0,1.0,1.0,1.0" anim_time="0.0,0.0,0.0,0.0" /> | |||
<actor id="blur" model="plane" material="mtrl_blur" position="1.85,0.0,0.001" rotation="1.570796,0.0,0.0" scale="1.28,0.64,0.64" color="1.0,1.0,1.0,1.0" uv_scale="1.0,-1.0" uv_offset="0.0,0.0" anim_weight="1.0,0.0,0.0,0.0" anim_speed="1.0,1.0,1.0,1.0" anim_time="0.0,0.0,0.0,0.0" /> | |||
<actor id="logo_sd" model="plane" material="mtrl_logo_sd" position="1.85,0.0,0.0" rotation="1.570796,0.0,0.0" scale="1.28,0.64,0.64" color="1.0,1.0,1.0,1.0" uv_scale="1.0,-1.0" uv_offset="0.0,0.0" anim_weight="1.0,0.0,0.0,0.0" anim_speed="1.0,1.0,1.0,1.0" anim_time="0.0,0.0,0.0,0.0" /> | |||
<actor id="footer_sd" model="plane" material="mtrl_footer_sd" position="1.85,0.0,0.0001" rotation="1.570796,0.0,0.0" scale="1.28,0.64,0.64" color="1.0,1.0,1.0,1.0" uv_scale="1.0,-1.0" uv_offset="0.0,0.0" anim_weight="1.0,0.0,0.0,0.0" anim_speed="1.0,1.0,1.0,1.0" anim_time="0.0,0.0,0.0,0.0" /> | |||
<actor id="blur_sd" model="plane" material="mtrl_blur_sd" position="1.85,0.0,0.001" rotation="1.570796,0.0,0.0" scale="1.28,0.64,0.64" color="1.0,1.0,1.0,1.0" uv_scale="1.0,-1.0" uv_offset="0.0,0.0" anim_weight="1.0,0.0,0.0,0.0" anim_speed="1.0,1.0,1.0,1.0" anim_time="0.0,0.0,0.0,0.0" /> | |||
<camera id="camera" type="perspective" yfov="0.927292" ymag="0.0" znear="0.01" zfar="1000.0" position="0.0,0.0,4.0" direction="0.0,0.0,-2.0" up="0.0,1.0,0.0" /> | |||
<light id="pointlight" type="point" color="1.0,1.0,1.0" position="0.0,1.0,0.0" attenuation="0.0,1.0,4.0" /> | |||
<light id="ambientlight" type="ambient" color="0.0,0.0,0.0" /> | |||
<script file="coldboot.js" /> | |||
</raf> | </raf> | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
==Model== | ==Model== | ||
Line 127: | Line 121: | ||
Individual files: | Individual files: | ||
{{Keyboard|content= | {{Keyboard|content= | ||
nvdxt.exe -file input.png -L8 -output output.dds | |||
}} | |||
Batch conversion: | Batch conversion: | ||
{{Keyboard|content= | {{Keyboard|content= | ||
nvdxt.exe -file c:\textures_in_png\*.png -L8 -outdir c:\textures_out_dds | |||
}} | |||
*Notes: | *Notes: | ||
**nvidia tool allows a lot of other image formats as input (instead of .png you can use other image formats). | **nvidia tool allows a lot of other image formats as input (instead of .png you can use other image formats). | ||
** | **The image is composed of black/red colors only. Red colors are treated as luminance levels (red colors works like a "light mask") and black colors are transparent. | ||
==Script== | ==Script== | ||
Line 143: | Line 141: | ||
The code below is the original coldboot.js (in [[PlayStation JavaScript]] format)... after compiling to coldboot.jsx (in [[VSMX]] format) the file should have MD5: 5461466B242D81B57D872BBA95EED753 | The code below is the original coldboot.js (in [[PlayStation JavaScript]] format)... after compiling to coldboot.jsx (in [[VSMX]] format) the file should have MD5: 5461466B242D81B57D872BBA95EED753 | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="javascript"> | ||
var logo_hd = new Actor("logo"); | var logo_hd = new Actor("logo"); | ||
var blur_hd = new Actor("blur"); | var blur_hd = new Actor("blur"); | ||
var footer_hd = new Actor("footer"); | var footer_hd = new Actor("footer"); | ||
var logo_sd = new Actor("logo_sd"); | var logo_sd = new Actor("logo_sd"); | ||
var blur_sd = new Actor("blur_sd"); | var blur_sd = new Actor("blur_sd"); | ||
var footer_sd = new Actor("footer_sd"); | var footer_sd = new Actor("footer_sd"); | ||
var camera = new Camera("camera"); | var camera = new Camera("camera"); | ||
var light = new Light("pointlight"); | var light = new Light("pointlight"); | ||
var first_wait = 1.5; | |||
var appear_duration = 1.3; | |||
var appear_wait = -0.25; | |||
var blur_duration = 0.5; | |||
var blur_wait = 0.25; | |||
var whole_duration = 0.5; | |||
var whole_wait = 0.5; | |||
var fade_duration = 1.2; | |||
var appear_start_time = first_wait; | |||
var blur_start_time = appear_start_time + appear_duration + appear_wait; | |||
var whole_start_time = blur_start_time + blur_duration + blur_wait; | |||
var fade_start_time = whole_start_time + whole_duration + whole_wait; | |||
var logo = logo_hd; | |||
var blur = blur_hd; | |||
var footer = footer_hd; | |||
var logo_hide = logo_sd; | |||
var blur_hide = blur_sd; | |||
var footer_hide = footer_sd; | |||
var br = 1.0; | |||
if (System.resolution->0 == 720) // check to resolution modes with 720 pixels width (NTSC 720x480 or PAL 720x576 ???) | |||
if (System.resolution->0 == 720) // | |||
{ | { | ||
br = 0.8; | |||
logo = logo_sd; | |||
blur = blur_sd; | |||
footer = footer_sd; | |||
logo_hide = logo_hd; | |||
blur_hide = blur_hd; | |||
footer_hide = footer_hd; | |||
if (camera.aspect == 4.0 / 3.0) // check to aspect ratio 4/3 | |||
{ | |||
var sd_offset_x = 1.25; | |||
logo.position->0 = sd_offset_x; | |||
blur.position->0 = sd_offset_x; | |||
footer.position->0 = sd_offset_x; | |||
var sd_scale = <1.0, 0.5, 0.5>; | |||
logo.scale = sd_scale; | |||
blur.scale = sd_scale; | |||
footer.scale = sd_scale; | |||
} else { | |||
sd_offset_x = 2.0; | |||
logo.position->0 = sd_offset_x; | |||
blur.position->0 = sd_offset_x; | |||
footer.position->0 = sd_offset_x; | |||
sd_scale = <1.0, 0.5, 0.5>; | |||
logo.scale = sd_scale; | |||
blur.scale = sd_scale; | |||
footer.scale = sd_scale; | |||
} | |||
} | } | ||
logo_hide.color = <0, 0, 0, 0>; | logo_hide.color = <0,0,0,0>; | ||
blur_hide.color = <0, 0, 0, 0>; | blur_hide.color = <0,0,0,0>; | ||
footer_hide.color = <0, 0, 0, 0>; | footer_hide.color = <0,0,0,0>; | ||
logo.color = <br, br, br, 0>; | |||
logo.color = <br, br, br, 0>; | logo.setColor (<br, br, br, 1>, appear_start_time); | ||
logo.setColor(<br, br, br, 1>, appear_start_time); | blur.color = <br, br, br, 0>; | ||
blur.color = <br, br, br, 0>; | footer.color = <br, br, br, 0>; | ||
footer.color = <br, br, br, 0>; | light.position = logo.position + <-3, 0.5, 0>; | ||
light.position = logo.position + <-3, 0.5, 0>; | light.color = <0, 0, 0>; | ||
light.color = <0, 0, 0>; | |||
System.timer[0] = new OneShotTimer(appear_start_time, function() | System.timer[0] = new OneShotTimer(appear_start_time, function() | ||
{ | { | ||
light.setPosition ((logo.position + <0.0, 0.5, 0>), appear_duration); | |||
light.setAttenuation (<0.1, 0.1, 0.1>, appear_duration); | |||
light.setColor (<1, 1, 1>, appear_duration); | |||
}); | }); | ||
System.timer[1] = new OneShotTimer(blur_start_time, function() | System.timer[1] = new OneShotTimer(blur_start_time, function() | ||
{ | { | ||
blur.setColor (<br, br, br, 1>, blur_duration, INTERPOLATION_BEZIER, <0.1, 0.0, 0.1, 1.0>); | |||
}); | }); | ||
System.timer[2] = new OneShotTimer(whole_start_time, function() | System.timer[2] = new OneShotTimer(whole_start_time, function() | ||
{ | { | ||
blur.setColor (<br, br, br, 0>, whole_duration, INTERPOLATION_BEZIER, <0.1, 0.0, 0.1, 1.0>); | |||
footer.setColor (<br, br, br, 1>, whole_duration); | |||
}); | }); | ||
System.timer[3] = new OneShotTimer(fade_start_time, function() | System.timer[3] = new OneShotTimer(fade_start_time, function() | ||
{ | { | ||
var Unamed_Variable = <0.8, 0.0, 0.8, 1.0>; | |||
footer.setColor (<br, br, br, 0>, fade_duration, INTERPOLATION_BEZIER, Unamed_Variable); | |||
logo.setColor (<br, br, br, 0>, fade_duration, INTERPOLATION_BEZIER, Unamed_Variable); | |||
light.setPosition (light.position + <1.5 * 1.5, 1 * 1.5, 0>, fade_duration, INTERPOLATION_BEZIER, Unamed_Variable); | |||
light.setColor (<0, 0, 0>, fade_duration, INTERPOLATION_BEZIER, Unamed_Variable); | |||
light.setAttenuation (<0, 1, 4>, fade_duration, INTERPOLATION_BEZIER, Unamed_Variable); | |||
}); | }); | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
=Coldboot Sounds (.AC3)= | =Coldboot Sounds (.AC3)= | ||
Line 255: | Line 244: | ||
{| class="wikitable" style="font-size:x-small;" | {| class="wikitable" style="font-size:x-small;" | ||
|+Coldboot Sounds versions | |+Coldboot Sounds versions | ||
! rowspan="2" | File Name !! rowspan="2" | Size<BR />(bytes) !! rowspan="2" | Hash<BR />(MD5) !! colspan=" | ! rowspan="2" | File Name !! rowspan="2" | Size<BR />(bytes) !! rowspan="2" | Hash<BR />(MD5) !! colspan="4" | Firmware !! rowspan="2" | Notes | ||
|- | |- | ||
! [[1.00_CEX|1.00]]~[[2.60_CEX|2.60]] !! [[2.70_CEX|2.70]]~[[2.80_CEX|2.80]] !! [[3.00_CEX|3.00]]~[[3.01_CEX|3.01]] !! [[3.10_CEX|3.10]]~[[4.65_CEX|4.65]] | |||
|-{{cellcolors|lightgrey}} | |-{{cellcolors|lightgrey}} | ||
! coldboot_stereo.ac3 | ! coldboot_stereo.ac3 | ||
| 721.920 || 5EB0E4ECE6F221ED07D3128D416ADB44 | | 721.920 || 5EB0E4ECE6F221ED07D3128D416ADB44 || rowspan="2" colspan="2" {{yes}} || rowspan="2" colspan="2" {{no}} || rowspan="2" | Old sound files (coldboot) | ||
|-{{cellcolors|lightgrey}} | |-{{cellcolors|lightgrey}} | ||
! coldboot_multi.ac3 | ! coldboot_multi.ac3 | ||
Line 269: | Line 255: | ||
|-{{cellcolors|lightgrey}} | |-{{cellcolors|lightgrey}} | ||
! coldboot2_stereo.ac3 | ! coldboot2_stereo.ac3 | ||
| 801.280 || 83D2B05CC85F65A1392614989F71ECFA | | 801.280 || 83D2B05CC85F65A1392614989F71ECFA || rowspan="2" {{no}} || rowspan="2" colspan="2" {{yes}} || rowspan="2" {{no}} || rowspan="2" | New sound files. Using new names (coldboot2) | ||
|-{{cellcolors|lightgrey}} | |-{{cellcolors|lightgrey}} | ||
! coldboot2_multi.ac3 | ! coldboot2_multi.ac3 | ||
Line 275: | Line 261: | ||
|- | |- | ||
! coldboot_stereo.ac3 | ! coldboot_stereo.ac3 | ||
| 801.280 || 83D2B05CC85F65A1392614989F71ECFA | | 801.280 || 83D2B05CC85F65A1392614989F71ECFA || rowspan="2" colspan="2" {{no}} || rowspan="2" colspan="2" {{yes}} || rowspan="2" | New sound files. Using old names (coldboot) | ||
|- | |- | ||
! coldboot_multi.ac3 | ! coldboot_multi.ac3 | ||
Line 290: | Line 276: | ||
|- | |- | ||
! old stereo | ! old stereo | ||
| 2 Front: L R || CM (complete main) || rowspan="2" | 721.920 bytes || rowspan="2" | 9s 24ms || rowspan=" | | 2 Front: L R || CM (complete main) || rowspan="2" | 721.920 bytes || rowspan="2" | 9s 24ms || rowspan="4" | AC-3 (Audio Coding 3) || rowspan="4" | 640 Kbps Constant || rowspan="4" | 48.0 KHz || rowspan="4" | 16 bits | ||
|- | |- | ||
! old multi | ! old multi | ||
| 6 Front: L C R, Side: L R, LFE || CM (complete main) | | 6 Front: L C R, Side: L R, LFE || CM (complete main) | ||
|- | |- | ||
! new stereo | ! new stereo | ||
Line 302: | Line 286: | ||
! new multi | ! new multi | ||
| 6 Front: L C R, Side: L R, LFE || CM (complete main) | | 6 Front: L C R, Side: L R, LFE || CM (complete main) | ||
|} | |} | ||
{{File Formats}}<noinclude>[[Category:Main]]</noinclude> | {{File Formats}}<noinclude>[[Category:Main]]</noinclude> |