Multimedia Formats and Tools: Difference between revisions
m (→DXT) |
(Fixed typo in word modified) |
||
(69 intermediate revisions by 6 users not shown) | |||
Line 2: | Line 2: | ||
A lot more fileformats not added yet to the page are listed in: http://www.psdevwiki.com/ps3/XMB_database#Promoter | A lot more fileformats not added yet to the page are listed in: http://www.psdevwiki.com/ps3/XMB_database#Promoter | ||
=Image= | =Image= | ||
Line 11: | Line 9: | ||
*http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf | *http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf | ||
*[http://www. | *[http://www.psdevwiki.com/vita/index.php?title=Template:IFD_format IFD format] | ||
*[http://www. | *[http://www.psdevwiki.com/vita/index.php?title=Template:IFD_tag IFD tag] | ||
==BMP== | ==BMP== | ||
Line 19: | Line 17: | ||
==DDS== | ==DDS== | ||
'''D'''irect '''D'''raw '''S'''urface are used on PS3 (e.g. the XMB monthly wallpapers inside [[Lines.qrc]] and the [[XMB Manuals]] specific for PS3 game/apps) | |||
It seems at the release of PS3 firmware 1.00 the DDS support in XMB was not complete (or maybe not supported dds at all, this is hard to know), it was implemented gradually and only for a few specific display modes, the monthly background wallpapers inside lines.qrc was implemented in firmware 1.90/2.00 and PS3 manuals support around 4.00, this display modes are a bit special because uses full screen<!--and probably uses the background display buffer-->. But DDS was never implemented in PS3 RCO's... the PS3 RCO's doesnt even knows what is a DDS ([[RCOXML Images|because there is not an ID for DDS]]), so is not officially posible to store a DDS image inside a PS3 RCO, at the end of life of PS3 the RCO format was obsolete for several reasons and this was one of them. GIM format seems to superceed the features of DDS though | |||
For PSVita the RCO format was highly modified, and at this point probably DDS support was added to RCO (this is speculative though). Later the RCO format from PSVita was inherited by PS4 and with it the DDS support, actually it looks like the whole interface of PS4 supports DDS (not only from inside RCO, but also for the ICON0.DDS of games/apps) | |||
*http://en.wikipedia.org/wiki/DirectDraw_Surface | *http://en.wikipedia.org/wiki/DirectDraw_Surface | ||
*http://en.wikipedia.org/wiki/S3_Texture_Compression | |||
*http://msdn.microsoft.com/en-us/library/bb943991.aspx | *http://msdn.microsoft.com/en-us/library/bb943991.aspx | ||
Header: | |||
{| class="wikitable" style="text-align: center;" | |||
|- | |||
| style="background-color:#444453; color:#FFFFFF;" |'''Offset''' | |||
| style="background-color:#444453; color:#FFFFFF;" |'''Size''' | |||
| style="background-color:#444453; color:#FFFFFF;" |'''Example''' | |||
| style="background-color:#444453; color:#FFFFFF;" |'''Value (conversion)''' | |||
| style="background-color:#444453; color:#FFFFFF;" |'''Notes''' | |||
|- | |||
|colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black!important;">DDS header</span> | |||
|- | |||
| 0x00 || 0x04 || 44 44 53 20 || "DDS " || Magic | |||
|- | |||
| 0x04 || 0x04 || 7C 00 00 00 || 124 || Size of header stucture | |||
|- | |||
| 0x08 || 0x04 || 07 10 08 00 || compressed no mipmap || Flags: | |||
*0x01: DDSD_CAPS (Required in every .dds file) | |||
*0x02: DDSD_HEIGHT (Required in every .dds file) | |||
*0x04: DDSD_WIDTH (Required in every .dds file) | |||
*0x08: DDSD_PITCH (Required when pitch is provided for an uncompressed texture) | |||
*0x0010: DDSD_PIXELFORMAT (Required in every .dds file) | |||
*0x000002: DDSD_MIPMAPCOUNT (Required in a mipmapped texture) | |||
*0x000008: DDSD_LINEARSIZE (Required when pitch is provided for a compressed texture) | |||
*0x000080: DDSD_DEPTH (Required in a depth texture) | |||
|- | |||
| 0x0C || 0x04 || 38 04 00 00 || 1080 || Surface height (in pixels). | |||
|- | |||
| 0x10 || 0x04 || 80 07 00 00 || 1920 || Surface width (in pixels). | |||
|- | |||
| 0x14 || 0x04 || 00 D2 0F 00 || 1012.5KB || Size: | |||
*the pitch or number of bytes per scan line in an uncompressed texture | |||
*the total number of bytes in the top level texture for a compressed texture | |||
|- | |||
| ... || ... || ... || ... || ... | |||
|- | |||
|} | |||
'''DDS normal maps''' | '''DDS normal maps''' | ||
Line 49: | Line 91: | ||
*Photoshop DDS plugin https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop Tutorial: http://www.youtube.com/watch?v=B_SpdM5cLuQ (in spanish) | *Photoshop DDS plugin https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop Tutorial: http://www.youtube.com/watch?v=B_SpdM5cLuQ (in spanish) | ||
*3DS Max DDS Plugin https://developer.nvidia.com/content/3ds-max-dds-plugin-1008271100 | *3DS Max DDS Plugin https://developer.nvidia.com/content/3ds-max-dds-plugin-1008271100 | ||
*NVIDIA WTV (windows texture viewer) http://www.nvidia.com/object/windows_texture_viewer.html | |||
*NVIDIA DDS Thumbnail Viewer for windows explorer https://developer.nvidia.com/sites/default/files/akamai/tools/files/DDS_viewer.exe | *NVIDIA DDS Thumbnail Viewer for windows explorer https://developer.nvidia.com/sites/default/files/akamai/tools/files/DDS_viewer.exe | ||
*NVIDIA DDS Legacy Texture Tools https://developer.nvidia.com/legacy-texture-tools and https://developer.nvidia.com/sites/default/files/akamai/tools/files/DDS_Utilities_8.31.1127.1645.exe (includes a command line texture converter) | *NVIDIA DDS Legacy Texture Tools https://developer.nvidia.com/legacy-texture-tools and https://developer.nvidia.com/sites/default/files/akamai/tools/files/DDS_Utilities_8.31.1127.1645.exe (includes a command line texture converter) | ||
*Crazybump is a quick and easy tool for creating normal maps from a texture. http://www.crazybump.com/ Tutorial: http://iamsparky.wordpress.com/crazybump/ | *Crazybump is a quick and easy tool for creating normal maps from a texture. http://www.crazybump.com/ Tutorial: http://iamsparky.wordpress.com/crazybump/ | ||
*DDS Converter 2 by Yannick Bluehair Leon http://www.nexusmods.com/oblivion/mods/8698 | |||
*nvdxt.exe (extracted from nvidia legacy tools installation) https://www.sendspace.com/file/8ru1va | |||
*DXTViewer http://www.ozone3d.net/dxt_viewer.php | |||
==DXT== | ==DXT== | ||
*http://www.fsdeveloper.com/wiki/index.php?title=DXT_compression_explained | |||
*http://files.wayforward.com/shane/rgbv/ (RGBV Texture Compression in DuckTales: Remastered) | |||
Used on PS2 classic as manual, they are | The DXT compressed textures always have the same size. This is because they have a fixed compression ratio. | ||
Used on PS2 classic as manual, they are texture files (DXT1, no mipmap?) with a minimalistic header of 0x08 byte (width*height) | |||
For viewing them on computer, you can rebuild/create/paste (from an .dds dxt1 no mipmap existing file) an header following .dds header specs: | |||
*On your dxt files, remove the first 0x08 bytes (which has the width and height hexadecimal information), insert on top of it the .dds header. Edit the .dds header, see the .dds section, to get the proper width, height, and texture size) | |||
Sample: http://rghost.net/58928544 (.dxt files are original, .dxt.dds are edited for viewing) | |||
There is a QuickBMS scripts for converting DTX<>DDS | |||
pastebin GKdqL7xG and pastebin 3H0MDmTG | |||
e.g. (quick note, should be move to emulation/PS2 page once figure out) | e.g. (quick note, should be move to emulation/PS2 page once figure out) | ||
001.dxt --> 256KB -->instruction screen: 960 | 001.dxt --> 256KB -->instruction screen: 544*960? (Surface height (in pixels).*Surface width (in pixels).) | ||
002.dxt --> 256KB -->information screen: | 002.dxt --> 256KB -->information screen: *544*960? | ||
003.dxt --> 1441KB -->game manual: 1920 | 003.dxt --> 1441KB -->game manual: 1536*1920? | ||
... | ... | ||
008.dxt --> 1441KB -->end of the game manual | 008.dxt --> 1441KB -->end of the game manual | ||
009.dxt --> 256KB -->Notice screen: 960* | 009.dxt --> 256KB -->Notice screen: 544*960? | ||
==GIM== | |||
'''G'''raphic '''I'''mage '''M'''ap ?. See [[Graphic Image Map (GIM)]] | |||
The tool used to manage GIM image conversions is '''GimConv.exe'''. See [[GimConv]] | |||
Used inside [[Resource Container (RCO)]] files (see [[RCOXML Images]]), [[PlayStation 3 Theme (P3T)]] files, etc... | |||
*'''Gim Viewer v0.8''' by HSreina: http://hsreina.shadosoft-tm.com/display/cat/103 | |||
**Created for PSP it has partiall support for PS3 gim's, allows to view the most common .gim images used in ps3 (the standard format used by most gim's inside .rco's)... is not able to display gims inside rco's that doesnt uses the standard gim format (dxt5 based are displayed full filled with white) | |||
Version 0.8 / by Hsreina - Hontoshadow | |||
What is Gim Viewer | |||
=============================== | |||
Giw Viewer was designed for view (*.gim; *.mig) files from "Fantasy golf Pangya portable" | |||
How to use | |||
========== | |||
just Drag & Drop a (*.gim; *.mig file) on the main window of Gim viewer or use the Files/open menu to found a picture; | |||
you can use spacebar or backspace for display the previous or next file in the current folder. | |||
for anybugs please mail to "[email protected]" | |||
Copyright (c) 2005 - 2012 Shadosoft tm. All rights reserved. http://pangya.shadosoft-tm.com/ | |||
==GMO== | |||
'''G'''raphic '''M'''odel '''O'''bject | |||
Used inside [[Resource_Container_(RCO)]] files (see [[RCOXML Models]]) | |||
==GTF== | ==GTF== | ||
Line 81: | Line 167: | ||
| style="background-color:#475446; color:#FFFFFF;" |'''Notes''' | | style="background-color:#475446; color:#FFFFFF;" |'''Notes''' | ||
|- | |- | ||
|colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">GTF header</span> | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black!important;">GTF header</span> | ||
|- | |- | ||
| 0x00 || 0x04 || 02 02 00 FF || || Version | | 0x00 || 0x04 || 02 02 00 FF || || Version | ||
Line 89: | Line 175: | ||
| 0x08 || 0x04 || 00 00 00 01 || || Number of textures embedded | | 0x08 || 0x04 || 00 00 00 01 || || Number of textures embedded | ||
|- | |- | ||
| 0x0C || 0x04 || 00 00 00 00 | | 0x0C || 0x04 || 00 00 00 00 || || Not used? | ||
|- | |- | ||
|colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">GTF specification</span> | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black!important;">GTF specification</span> | ||
|- | |- | ||
| 0x10 || 0x04 || 00 00 00 80 || || Size Header | | 0x10 || 0x04 || 00 00 00 80 || || Size Header | ||
Line 108: | Line 194: | ||
| 0x1C || 0x04 || || || Remaps: | | 0x1C || 0x04 || || || Remaps: | ||
|- | |- | ||
|colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">DDS specification</span> | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black!important;">DDS specification</span> | ||
|- | |- | ||
| 0x20 || 0x02 || 00 40 || 64 in decimal || Size image width | | 0x20 || 0x02 || 00 40 || 64 in decimal || Size image width | ||
Line 117: | Line 203: | ||
|- | |- | ||
|} | |} | ||
==GXT== | |||
Gxt is a container for storing one or multiple graphic textures for the PSVita and PSP. See [http://www.psdevwiki.com/vita/index.php?title=GXT GXT] | |||
==JPG== | ==JPG== | ||
Line 138: | Line 228: | ||
==PNG== | ==PNG== | ||
PS3 supports PNG images in 24 bits (for RGB channels), and 32 bits with transparency (24 bits for RGB channels + 8 bits for an alpha layer). "PNG Interlaced" and "APNG (Animated Portable Network Graphics)" formats are not supported by the PS3. | PS3 supports PNG images in 24 bits (for RGB channels), and 32 bits with transparency (24 bits for RGB channels + 8 bits for an alpha layer). "PNG Interlaced" and "APNG (Animated Portable Network Graphics)" formats are not supported by the PS3. | ||
*How to create [http://garethrees.org/2007/11/14/pngcrush/ smallest possible transparent PNG] | |||
==PVR== | |||
PowerVR Texture Compression files: PVRTC and PVRTC2 are a family of lossy, fixed-rate texture compression formats. | |||
*[http://www.psdevwiki.com/vita/index.php?title=PVR PVR] | |||
==TGA== | ==TGA== | ||
http:// | *[http://www.psdevwiki.com/vita/index.php?title=TGA TGA] (used on [[Qt_Resource_Container_(QRC)|Qt Resource Container (lines.qrc)]]) | ||
=Audio= | =Audio= | ||
==AC3== | |||
Used for [[Coldboot.raf|coldboot]] sounds | |||
==AT3== | ==AT3== | ||
Line 153: | Line 253: | ||
==AT9== | ==AT9== | ||
*[http://www.psdevwiki.com/ps4/Snd0.at9 Snd0.at9] | *See [http://www.psdevwiki.com/ps4/Snd0.at9 Snd0.at9] | ||
==VAG== | ==VAG== | ||
Used for sound effects such navigational sounds on XMB inside a [[PlayStation_3_Theme_(P3T)#Navigation_Sounds_.28.VAG.29|theme]] , on \dev_flash\pspemu\flash0\logo\remaster_op.bin and some .rco (e.g trophy unlocking) | |||
*Format | *Format | ||
Line 161: | Line 263: | ||
{| class="wikitable" style="text-align: center;" | {| class="wikitable" style="text-align: center;" | ||
|- | |- | ||
| style="background-color:#564147; color:#FFFFFF;" |'''Offset''' | | style="background-color:#564147; color:#FFFFFF;" |'''Offset (h)''' | ||
| style="background-color:#564147; color:#FFFFFF;" |'''Size''' | | style="background-color:#564147; color:#FFFFFF;" |'''Size (h)''' | ||
| style="background-color:#564147; color:#FFFFFF;" |'''Example''' | | style="background-color:#564147; color:#FFFFFF;" |'''Example (h)''' | ||
| style="background-color:#564147; color:#FFFFFF;" |'''Value (conversion)''' | | style="background-color:#564147; color:#FFFFFF;" |'''Value (conversion)''' | ||
| style="background-color:#564147; color:#FFFFFF;" |'''Notes''' | | style="background-color:#564147; color:#FFFFFF;" |'''Notes''' | ||
|- | |- | ||
|colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">VAG header</span> | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black!important;">VAG header</span> | ||
|- | |- | ||
| 0x00 || 0x04 || 56 41 47 70 || "VAGp" || Magic | | 0x00 || 0x04 || 56 41 47 70 || "VAGp" || Magic | ||
Line 177: | Line 279: | ||
| 0x0C || 0x04 || 00 00 04 50 || 1104 bytes || Waveform data size (bytes) | | 0x0C || 0x04 || 00 00 04 50 || 1104 bytes || Waveform data size (bytes) | ||
|- | |- | ||
| 0x10 || 0x04 || 00 00 BB 80 || | | 0x10 || 0x04 || 00 00 BB 80 || 48 000 Hz || Sampling Frequency (Hz) (hex to decimal) | ||
|- | |- | ||
| 0x14 || 0x0A || 00 00 ... 00 00 || - || Reserved area | | 0x14 || 0x0A || 00 00 ... 00 00 || - || Reserved area | ||
Line 189: | Line 291: | ||
| 0x20 || 0x10 || 53 45 30 34 5F 42 61 63 6B || SE04_BACK || Name | | 0x20 || 0x10 || 53 45 30 34 5F 42 61 63 6B || SE04_BACK || Name | ||
|- | |- | ||
|colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">Waveform data starts</span> | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black!important;">Waveform data (AIFF/WAV) starts</span> | ||
|- | |- | ||
|} | |} | ||
Line 207: | Line 309: | ||
| Decoding coefficient | | Decoding coefficient | ||
|| Loop information: | || Loop information: | ||
* | *00: default? | ||
* | *01: last block of the file | ||
* | *03: ending block of the loop | ||
* | *06: starting block of the loop | ||
*07: playback ending position | |||
<small>Because ADPCM uses sample blocks that are aligned one after the other, a wave compressed with ADPCM may have an unfinished, partial block at its end. The ADPCM decoder generates silence for the remainder of this partial block, which keeps the wave from looping seamlessly.</small> | <small>Because ADPCM uses sample blocks that are aligned one after the other, a wave compressed with ADPCM may have an unfinished, partial block at its end. The ADPCM decoder generates silence for the remainder of this partial block, which keeps the wave from looping seamlessly.</small> | ||
|| Sound data | || Sound data | ||
Line 218: | Line 321: | ||
*Tools | *Tools | ||
**MFAudio v1.1 | **MFAudio v1.1 at http://www.zophar.net/utilities/ps2util/mfaudio-1-1.html or http://dl.qj.net/software/utilities/mfaudio-11.html or http://downloads.ziddu.com/downloadfile/3353225/MFAudiov11.zip.html can convert/play .vag files. | ||
**[[Rcomage]] can convert .vag files | |||
=Video= | =Video= | ||
==BIK== | |||
Bik is a video and audio container designed specifically for consoles. It can contain multiple video and audio tracks and assign an ID each of them, this way the system choose which one will be loaded. This allows to store multiple audio languages in separated tracks, and multiple audio modes with separated channels for stereo, 5.1, etc... | |||
Bik files do not have any protection, PS3 games do not verify any kind of security over them. They can be fully edited and replaced, usually people replace the video track by a downsampled version of the same video to reduce the game size, it is also possible to remove the audio tracks from "foreign" languages. | |||
* "RAD Video Tools" http://www.radgametools.com/bnkdown.htm | |||
==PAM== | ==PAM== | ||
Pam files can contain audio or have the audio | Pam files can contain audio or have the audio separated in a .AT3 track, used in [[Content Information Files]] | ||
=Interactive= | =Interactive= | ||
Line 231: | Line 342: | ||
*Irfanview supported format | *Irfanview supported format | ||
= | =3D/OpenGL= | ||
==DAE== | |||
DAE ('''D'''igital '''A'''sset '''E'''xchange) is an XML file that contains COLLADA content. COLLADA is an open standard created by sony for interactive 3D applications. Is used to export and import files from 3-D authoring applications in .dae format, see: https://collada.org/ and https://www.khronos.org/collada/ | |||
Collada usually is implemented as a plugin, some 3-D authoring applications supporting collada are: [http://www.blender.org/ Blender], Google SketchUp, Maya, Rhino, 3D Max, SoftImage | |||
== | *Collada plugins: | ||
**Blender - http://colladablender.illusoft.com/ http://sourceforge.net/projects/colladablender/ | |||
*Other collada info | |||
**https://www.khronos.org/assets/uploads/developers/library/2007_siggraph_bof_collada/SCIE.pdf | |||
**http://lukasz.dk/mirror/research-scea/gdc2006/gdc06-for-khronos.pdf | |||
**https://www.khronos.org/collada/wiki/Building_third_party_libraries_for_the_COLLADA_DOM | |||
**https://sourceforge.net/projects/collada-dom/ | |||
**http://www.psu.com/forums/showthread.php/363-COLLADA-the-new-PS3-graphics-format?s=c6e507c63cc32a901bcf06a7f36538bd | |||
**https://games.slashdot.org/story/04/07/30/1837253/sony-endorsing-open-graphics-format-for-ps3 | |||
==FPO and VPO== | |||
*FPO ('''F'''ragment '''P'''rogram '''O'''bjects) | |||
*VPO ('''V'''ertex '''P'''rogram '''O'''bjects) | |||
*Used inside: | |||
**[[Qt Resource Container (QRC)|QRC containers]] | |||
**[[PS2 Emulation|ps2_netemu.self]] | |||
This files are [https://en.wikipedia.org/wiki/Cg_(programming_language) Cg shaders] created by the Cg compiler ('''sce-cgc.exe'''), and are compatible with the Cg disassembler ('''sce-cgcdisasm.exe''') from [[SCEI PS3 SDK]] | |||
See: [http://games.soc.napier.ac.uk/resources/ps3/ps3_tutorial_004.pdf Introduction to GCM and PS3 graphics] (pages 4 and 5), and [https://arxiv.org/ftp/cs/papers/0302/0302013.pdf Cg in Two Pages] | |||
*The compiler acepts 2 arguments: | |||
**'''-p''': For the PS3 RSX is needed to use the profiles: '''sce_fp_rsx''' (to compile a fragment shader and create a FPO file), or '''sce_vp_rsx''' (to compile a vertex shader and create a VPO file) | |||
**'''-o''': the output filename | |||
{{keyboard|content=<syntaxhighlight lang="bash">C:\usr\local\cell\host-win32\Cg\bin\sce-cgc.exe -p sce_fp_rsx -o OUTPUT.FPO input_fshader.cg</syntaxhighlight>}} | |||
{{Boxcode|title=input_fshader.cg|float=left|width=auto|code=<syntaxhighlight lang="c"> | |||
void main | |||
( | |||
float4 color_in : COLOR, | |||
out float4 color_out : COLOR | |||
) | |||
{ | |||
color_out = color_in; | |||
} | |||
</syntaxhighlight>}} | |||
{{keyboard|content=<syntaxhighlight lang="bash">C:\usr\local\cell\host-win32\Cg\bin\sce-cgc.exe -p sce_vp_rsx -o OUTPUT.VPO input_vshader.cg</syntaxhighlight>}} | |||
{{Boxcode|title=input_vshader.cg|float=left|width=auto|code=<syntaxhighlight lang="c"> | |||
void main | |||
( | |||
float4 position : POSITION, | |||
float4 color : COLOR, | |||
uniform float4x4 modelViewProj, | |||
out float4 oPosition : POSITION, | |||
out float4 oColor : COLOR | |||
) | |||
{ | |||
oPosition = position; | |||
oColor = color; | |||
} | |||
</syntaxhighlight>}} | |||
{{clear}} | |||
*Notes/speculation | |||
**The PS3 RSX Cg profiles ('''sce_fp_rsx''' & '''sce_vp_rsx''') probably are custom, but based in the [https://developer.nvidia.com/cg-profiles standard profiles] | |||
**[http://www.psx-place.com/threads/my-vertex-shader-document.20794/ Open Source code related with PS3 Cg shaders] | |||
==MNU== | |||
=Playlists= | |||
==M3U8== | |||
=Tools & Tips= | =Tools & Tips= | ||
Line 300: | Line 471: | ||
{{ | {{Development}}<noinclude> | ||
[[Category:Main]] | |||
</noinclude> |
Latest revision as of 00:20, 11 June 2024
This page is intended to move here all info about multimedia file formats that is commonly used in other wiki pages and the related PC tools
A lot more fileformats not added yet to the page are listed in: http://www.psdevwiki.com/ps3/XMB_database#Promoter
Image[edit | edit source]
TIFF 6.0 Specification:
BMP[edit | edit source]
http://en.wikipedia.org/wiki/BMP_file_format
DDS[edit | edit source]
Direct Draw Surface are used on PS3 (e.g. the XMB monthly wallpapers inside Lines.qrc and the XMB Manuals specific for PS3 game/apps)
It seems at the release of PS3 firmware 1.00 the DDS support in XMB was not complete (or maybe not supported dds at all, this is hard to know), it was implemented gradually and only for a few specific display modes, the monthly background wallpapers inside lines.qrc was implemented in firmware 1.90/2.00 and PS3 manuals support around 4.00, this display modes are a bit special because uses full screen. But DDS was never implemented in PS3 RCO's... the PS3 RCO's doesnt even knows what is a DDS (because there is not an ID for DDS), so is not officially posible to store a DDS image inside a PS3 RCO, at the end of life of PS3 the RCO format was obsolete for several reasons and this was one of them. GIM format seems to superceed the features of DDS though
For PSVita the RCO format was highly modified, and at this point probably DDS support was added to RCO (this is speculative though). Later the RCO format from PSVita was inherited by PS4 and with it the DDS support, actually it looks like the whole interface of PS4 supports DDS (not only from inside RCO, but also for the ICON0.DDS of games/apps)
- http://en.wikipedia.org/wiki/DirectDraw_Surface
- http://en.wikipedia.org/wiki/S3_Texture_Compression
- http://msdn.microsoft.com/en-us/library/bb943991.aspx
Header:
Offset | Size | Example | Value (conversion) | Notes |
DDS header | ||||
0x00 | 0x04 | 44 44 53 20 | "DDS " | Magic |
0x04 | 0x04 | 7C 00 00 00 | 124 | Size of header stucture |
0x08 | 0x04 | 07 10 08 00 | compressed no mipmap | Flags:
|
0x0C | 0x04 | 38 04 00 00 | 1080 | Surface height (in pixels). |
0x10 | 0x04 | 80 07 00 00 | 1920 | Surface width (in pixels). |
0x14 | 0x04 | 00 D2 0F 00 | 1012.5KB | Size:
|
... | ... | ... | ... | ... |
DDS normal maps
Normal maps are a 3D effect, the word "normal" is a reference to the Y axis (of the 3D space defined by X,Y,Z axis), is also known as "elevation". Normal maps can make small areas of a surface to be displayed with a displacement up or down, they also reacts to the lights of the scene dinamycally
NVIDIA Normal Map filter plugin for photoshop
The NVIDIA Normal Map filter creates normal maps from grayscale height maps. The filter UI provides a powerful 3D preview and a variety of filtering options. For MIP-mapped normal maps, the NormalMap Filter should be used for preview only, and then the grayscale map exported via the DDS plugin with "Normal Map Settings..." enabled. This will create a normal map with maximal detail and fidelity for all texture levels, without undesirable filter aliasing.
An easy way to create normal maps in photoshop by using the Normal Map plugin:
In tab: Filter ---> Ndivia Tools -height generation - 7x7 / minZ-0 scale-2.2 -3D view options - animate light -height source - Average RGB (or "Alpha Channel" in case you created an alpha channel with this purpose) -Alpha field - height
Normal Map Tutorial (using photoshop and crazybump) http://www.youtube.com/watch?v=tKqKJi6nh7A
DDS Cube Maps
DDS Tools
- Gimp DDS plugin http://code.google.com/p/gimp-dds/
- Gimp Normal Map Plugin http://code.google.com/p/gimp-normalmap/
- Photoshop DDS plugin https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop Tutorial: http://www.youtube.com/watch?v=B_SpdM5cLuQ (in spanish)
- 3DS Max DDS Plugin https://developer.nvidia.com/content/3ds-max-dds-plugin-1008271100
- NVIDIA WTV (windows texture viewer) http://www.nvidia.com/object/windows_texture_viewer.html
- NVIDIA DDS Thumbnail Viewer for windows explorer https://developer.nvidia.com/sites/default/files/akamai/tools/files/DDS_viewer.exe
- NVIDIA DDS Legacy Texture Tools https://developer.nvidia.com/legacy-texture-tools and https://developer.nvidia.com/sites/default/files/akamai/tools/files/DDS_Utilities_8.31.1127.1645.exe (includes a command line texture converter)
- Crazybump is a quick and easy tool for creating normal maps from a texture. http://www.crazybump.com/ Tutorial: http://iamsparky.wordpress.com/crazybump/
- DDS Converter 2 by Yannick Bluehair Leon http://www.nexusmods.com/oblivion/mods/8698
- nvdxt.exe (extracted from nvidia legacy tools installation) https://www.sendspace.com/file/8ru1va
- DXTViewer http://www.ozone3d.net/dxt_viewer.php
DXT[edit | edit source]
- http://www.fsdeveloper.com/wiki/index.php?title=DXT_compression_explained
- http://files.wayforward.com/shane/rgbv/ (RGBV Texture Compression in DuckTales: Remastered)
The DXT compressed textures always have the same size. This is because they have a fixed compression ratio.
Used on PS2 classic as manual, they are texture files (DXT1, no mipmap?) with a minimalistic header of 0x08 byte (width*height)
For viewing them on computer, you can rebuild/create/paste (from an .dds dxt1 no mipmap existing file) an header following .dds header specs:
- On your dxt files, remove the first 0x08 bytes (which has the width and height hexadecimal information), insert on top of it the .dds header. Edit the .dds header, see the .dds section, to get the proper width, height, and texture size)
Sample: http://rghost.net/58928544 (.dxt files are original, .dxt.dds are edited for viewing)
There is a QuickBMS scripts for converting DTX<>DDS pastebin GKdqL7xG and pastebin 3H0MDmTG
e.g. (quick note, should be move to emulation/PS2 page once figure out)
001.dxt --> 256KB -->instruction screen: 544*960? (Surface height (in pixels).*Surface width (in pixels).) 002.dxt --> 256KB -->information screen: *544*960? 003.dxt --> 1441KB -->game manual: 1536*1920? ... 008.dxt --> 1441KB -->end of the game manual 009.dxt --> 256KB -->Notice screen: 544*960?
GIM[edit | edit source]
Graphic Image Map ?. See Graphic Image Map (GIM)
The tool used to manage GIM image conversions is GimConv.exe. See GimConv
Used inside Resource Container (RCO) files (see RCOXML Images), PlayStation 3 Theme (P3T) files, etc...
- Gim Viewer v0.8 by HSreina: http://hsreina.shadosoft-tm.com/display/cat/103
- Created for PSP it has partiall support for PS3 gim's, allows to view the most common .gim images used in ps3 (the standard format used by most gim's inside .rco's)... is not able to display gims inside rco's that doesnt uses the standard gim format (dxt5 based are displayed full filled with white)
Version 0.8 / by Hsreina - Hontoshadow What is Gim Viewer =============================== Giw Viewer was designed for view (*.gim; *.mig) files from "Fantasy golf Pangya portable" How to use ========== just Drag & Drop a (*.gim; *.mig file) on the main window of Gim viewer or use the Files/open menu to found a picture; you can use spacebar or backspace for display the previous or next file in the current folder. for anybugs please mail to "[email protected]" Copyright (c) 2005 - 2012 Shadosoft tm. All rights reserved. http://pangya.shadosoft-tm.com/
GMO[edit | edit source]
Graphic Model Object
Used inside Resource_Container_(RCO) files (see RCOXML Models)
GTF[edit | edit source]
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.
Header (for single texture):
Offset | Size | Example | Value (conversion) | Notes |
GTF header | ||||
0x00 | 0x04 | 02 02 00 FF | Version | |
0x04 | 0x04 | Size of texture (not included header) | ||
0x08 | 0x04 | 00 00 00 01 | Number of textures embedded | |
0x0C | 0x04 | 00 00 00 00 | Not used? | |
GTF specification | ||||
0x10 | 0x04 | 00 00 00 80 | Size Header | |
0x14 | 0x04 |
| ||
0x18 | ||||
0x19 | ||||
0x1A | ||||
0x1B | ||||
0x1C | 0x04 | Remaps: | ||
DDS specification | ||||
0x20 | 0x02 | 00 40 | 64 in decimal | Size image width |
0x22 | 0x02 | 00 40 | 64 in decimal | Size image height |
0x24 | 0x02 | 00 00 | 0 in decimal | Size image depth |
GXT[edit | edit source]
Gxt is a container for storing one or multiple graphic textures for the PSVita and PSP. See GXT
JPG[edit | edit source]
http://en.wikipedia.org/wiki/JPEG
JPEG markers:
MPO[edit | edit source]
Is a 3D JPG embedded format by Fuji or Sony. Since fw 3.70 with specifics sixasis controls (on PlayMemories but also from XMB), PS3 as well as Nintendo 3DS or some Sony & Fuji camera can read MPO images as specific format.
On the Sony MPO format Multi Angle : the picture is 15 embedded Jpg Exif images with no padding (but can be modulate probably).
The MPO MA for 3DS is Fuji format?
MPO Splitter by Christian Steinruecken:
PNG[edit | edit source]
PS3 supports PNG images in 24 bits (for RGB channels), and 32 bits with transparency (24 bits for RGB channels + 8 bits for an alpha layer). "PNG Interlaced" and "APNG (Animated Portable Network Graphics)" formats are not supported by the PS3.
- How to create smallest possible transparent PNG
PVR[edit | edit source]
PowerVR Texture Compression files: PVRTC and PVRTC2 are a family of lossy, fixed-rate texture compression formats.
TGA[edit | edit source]
- TGA (used on Qt Resource Container (lines.qrc))
Audio[edit | edit source]
AC3[edit | edit source]
Used for coldboot sounds
AT3[edit | edit source]
Adaptive Transform Acoustic Coding (ATRAC) is a family of proprietary audio compression algorithms developed by Sony.
Can be created by saving the file as a .WAV container using the ATRAC3 Codec @ 66Kbps.
Mono and stereo channels are supported
AT9[edit | edit source]
- See Snd0.at9
VAG[edit | edit source]
Used for sound effects such navigational sounds on XMB inside a theme , on \dev_flash\pspemu\flash0\logo\remaster_op.bin and some .rco (e.g trophy unlocking)
- Format
Offset (h) | Size (h) | Example (h) | Value (conversion) | Notes |
VAG header | ||||
0x00 | 0x04 | 56 41 47 70 | "VAGp" | Magic |
0x04 | 0x04 | 00 00 00 06 | 0.6? | Version |
0x08 | 0x04 | 00 00 00 00 | - | Reserved area |
0x0C | 0x04 | 00 00 04 50 | 1104 bytes | Waveform data size (bytes) |
0x10 | 0x04 | 00 00 BB 80 | 48 000 Hz | Sampling Frequency (Hz) (hex to decimal) |
0x14 | 0x0A | 00 00 ... 00 00 | - | Reserved area |
0x1E | 0x01 | 00 | 1 ch | Number of channels
|
0x1F | 0x01 | 00 | - | Reserved area |
0x20 | 0x10 | 53 45 30 34 5F 42 61 63 6B | SE04_BACK | Name |
Waveform data (AIFF/WAV) starts |
Decoding coefficient
(1 byte) |
Loop information
(1 byte) |
Sound Data
(14 bytes) |
Decoding coefficient | Loop information:
Because ADPCM uses sample blocks that are aligned one after the other, a wave compressed with ADPCM may have an unfinished, partial block at its end. The ADPCM decoder generates silence for the remainder of this partial block, which keeps the wave from looping seamlessly. |
Sound data |
- Tools
- MFAudio v1.1 at http://www.zophar.net/utilities/ps2util/mfaudio-1-1.html or http://dl.qj.net/software/utilities/mfaudio-11.html or http://downloads.ziddu.com/downloadfile/3353225/MFAudiov11.zip.html can convert/play .vag files.
- Rcomage can convert .vag files
Video[edit | edit source]
BIK[edit | edit source]
Bik is a video and audio container designed specifically for consoles. It can contain multiple video and audio tracks and assign an ID each of them, this way the system choose which one will be loaded. This allows to store multiple audio languages in separated tracks, and multiple audio modes with separated channels for stereo, 5.1, etc...
Bik files do not have any protection, PS3 games do not verify any kind of security over them. They can be fully edited and replaced, usually people replace the video track by a downsampled version of the same video to reduce the game size, it is also possible to remove the audio tracks from "foreign" languages.
- "RAD Video Tools" http://www.radgametools.com/bnkdown.htm
PAM[edit | edit source]
Pam files can contain audio or have the audio separated in a .AT3 track, used in Content Information Files
Interactive[edit | edit source]
SWF[edit | edit source]
Shockwave Flash, used in Content Information Files and Widgets and some games (e.g.: Doki Doki unverse)
- Irfanview supported format
3D/OpenGL[edit | edit source]
DAE[edit | edit source]
DAE (Digital Asset Exchange) is an XML file that contains COLLADA content. COLLADA is an open standard created by sony for interactive 3D applications. Is used to export and import files from 3-D authoring applications in .dae format, see: https://collada.org/ and https://www.khronos.org/collada/
Collada usually is implemented as a plugin, some 3-D authoring applications supporting collada are: Blender, Google SketchUp, Maya, Rhino, 3D Max, SoftImage
- Collada plugins:
- Other collada info
- https://www.khronos.org/assets/uploads/developers/library/2007_siggraph_bof_collada/SCIE.pdf
- http://lukasz.dk/mirror/research-scea/gdc2006/gdc06-for-khronos.pdf
- https://www.khronos.org/collada/wiki/Building_third_party_libraries_for_the_COLLADA_DOM
- https://sourceforge.net/projects/collada-dom/
- http://www.psu.com/forums/showthread.php/363-COLLADA-the-new-PS3-graphics-format?s=c6e507c63cc32a901bcf06a7f36538bd
- https://games.slashdot.org/story/04/07/30/1837253/sony-endorsing-open-graphics-format-for-ps3
FPO and VPO[edit | edit source]
- FPO (Fragment Program Objects)
- VPO (Vertex Program Objects)
- Used inside:
This files are Cg shaders created by the Cg compiler (sce-cgc.exe), and are compatible with the Cg disassembler (sce-cgcdisasm.exe) from SCEI PS3 SDK
See: Introduction to GCM and PS3 graphics (pages 4 and 5), and Cg in Two Pages
- The compiler acepts 2 arguments:
- -p: For the PS3 RSX is needed to use the profiles: sce_fp_rsx (to compile a fragment shader and create a FPO file), or sce_vp_rsx (to compile a vertex shader and create a VPO file)
- -o: the output filename
C:\usr\local\cell\host-win32\Cg\bin\sce-cgc.exe -p sce_fp_rsx -o OUTPUT.FPO input_fshader.cg
void main ( float4 color_in : COLOR, out float4 color_out : COLOR ) { color_out = color_in; }
C:\usr\local\cell\host-win32\Cg\bin\sce-cgc.exe -p sce_vp_rsx -o OUTPUT.VPO input_vshader.cg
void main ( float4 position : POSITION, float4 color : COLOR, uniform float4x4 modelViewProj, out float4 oPosition : POSITION, out float4 oColor : COLOR ) { oPosition = position; oColor = color; }
- Notes/speculation
- The PS3 RSX Cg profiles (sce_fp_rsx & sce_vp_rsx) probably are custom, but based in the standard profiles
- Open Source code related with PS3 Cg shaders
MNU[edit | edit source]
Playlists[edit | edit source]
M3U8[edit | edit source]
Tools & Tips[edit | edit source]
- Audio:
Audacity: The tool can be used to record live audio, record computer playback, edit WAV, AIFF, FLAC, MP2, MP3 or Ogg Vorbis sound files, cut, copy, splice or mix sound together and also change the speed or pitch of a recording, plus a number of other useful features. http://audacity.sourceforge.net/
Wavosaur: is a cool free sound editor, audio editor, wav editor software for editing, processing and recording sounds, wav and mp3 files. Wavosaur has all the features to edit audio (cut, copy, paste, etc.) produce music loops, analyze, record, batch convert. Wavosaur supports VST plugins, ASIO driver, multichannel wav files, real time effect processing. http://www.wavosaur.com/
- Image:
Irfanview: View, convert, batch processing ... http://www.irfanview.com/ (there is a plugin for .DDS)
Imagemagick: Create, edit, compose, or convert bitmap images http://www.imagemagick.org (typically utilized from the command line)
- 2D animation
animata: an open source real-time animation software, designed to create animations, interactive background projections for concerts, theatre and dance performances. http://animata.kibu.hu/
- 3D Modeling:
Maya - http://www.autodesk.com/Maya 3ds Max - http://usa.autodesk.com/3ds-max/ Blender - http://www.blender.org/ Wings3D - http://www.wings3d.com/ Modo - http://www.luxology.com/modo/
- Texturing:
Photoshop - http://www.photoshop.com/ Paint.NET - http://www.getpaint.net/ GIMP - http://www.gimp.org/
- Tutorials and Online Digital Communities:
http://www.polycount.com/forum http://forums.cgsociety.org/ http://www.3dbuzz.com http://3d-coat.com/forum/ http://www.cgfeedback.com/cgfeedback/ https://forums.station.sony.com/playerstudio