Editing Multimedia Formats and Tools
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 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 | ||
See also [[Game Modding]] | |||
=Image= | =Image= | ||
Line 9: | Line 11: | ||
*http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf | *http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf | ||
*[http://www. | *[http://www.vitadevwiki.com/index.php?title=Template:IFD_format IFD format] | ||
*[http://www. | *[http://www.vitadevwiki.com/index.php?title=Template:IFD_tag IFD tag] | ||
==BMP== | ==BMP== | ||
Line 17: | Line 19: | ||
==DDS== | ==DDS== | ||
Direct Draw Surface (DDS) are used for example on [[XMB_Manuals|XMB Manuals]] | |||
*http://en.wikipedia.org/wiki/DirectDraw_Surface | *http://en.wikipedia.org/wiki/DirectDraw_Surface | ||
Line 37: | Line 35: | ||
| style="background-color:#444453; color:#FFFFFF;" |'''Notes''' | | style="background-color:#444453; color:#FFFFFF;" |'''Notes''' | ||
|- | |- | ||
|colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">DDS header</span> | ||
|- | |- | ||
| 0x00 || 0x04 || 44 44 53 20 || "DDS " || Magic | | 0x00 || 0x04 || 44 44 53 20 || "DDS " || Magic | ||
Line 112: | Line 110: | ||
Sample: http://rghost.net/58928544 (.dxt files are original, .dxt.dds are edited for viewing) | Sample: http://rghost.net/58928544 (.dxt files are original, .dxt.dds are edited for viewing) | ||
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) | ||
Line 125: | Line 120: | ||
==GIM== | ==GIM== | ||
Graphics Image ? | |||
Used inside [[Resource Container (RCO)]] files | Used inside [[Resource Container (RCO)]] files, [[PlayStation 3 Theme (P3T)]] files, etc... | ||
===GimConv.exe=== | |||
Made by sony, '''gimconv v1.20h''' was released with '''p3tcompiler v2.00''' as part of the [http://uk.playstation.com/ps3/support/settings/detail/linked235336/item85346/Download-PlayStation-3-Custom-Theme-Guidelines/ PS3 Custom Theme Toolbox] | |||
The version used as an standard unofficially is the one included in [[rcomage]] that uses a configuration file (named GimConv.cfg) initially edited by Zinga Burga to improve compatibility with rcomage, and later to add compatibility with ps3 rco's (there are some specific settings for ps3 that was added at some point, but now can be considered incorrect for ps3, or not generic enought) | |||
The command line help of GimConv.exe gives a very limited explain of a few options (the ones at top are not real options, are more like groups of presets) | |||
C:\rcomage-v1.1.1\GimConv>GimConv.exe | |||
gimconv ver 1.20h --- generic picture converter | |||
Copyright (C) 2006 Sony Computer Entertainment Inc. | |||
All Rights Reserved. | |||
usage: | |||
gimconv <input files> [options] | |||
options: | |||
-o <filename> specify output file name | |||
-s <w,h> resize image data | |||
-P resize image data to a power of two | |||
-N output in normal (not faster) pixel storage format | |||
-X swap RGBA <-> ABGR | |||
-ps3 output ps3 style GIM | |||
-bpp<n> color output bit depth; n is: 4, 8, 16, 16p, 16a or 32 | |||
4, 8 are indexed; 16, 16a, 16p, 32 are RGBA format | |||
-S output text format | |||
-interact input additional options | |||
-pictures merge files as pictures | |||
-frames merge files as frames | |||
-levels merge files as levels | |||
-prompt prompt always | |||
-warning prompt on warning | |||
-error prompt on error | |||
Some of the options that appears in the help of the command line what are really doing is to load the real options from GimConv.cfg, where all the options are listed and is posible to specify his default values, or to create groups of options, is also the only place where is posible to see all the different settings availables of the tool | |||
These options was added by Zinga Burga to improve compatibility with rcomage, and later to add compatibility with ps3 rco's | |||
*changed under '''default settings''' section: | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
pixel_order = faster // default normal faster | |||
limit_image_width = 512 // off $count | |||
limit_image_height = 512 // off $count | |||
output_sequence = off // off on | |||
</syntaxhighlight>}} | |||
*added under '''process option''' section: | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
option -ps3 { | |||
format_style = ps3 | |||
format_endian = big | |||
} | |||
option -bpp4 { | |||
image_format = index4 | |||
} | |||
option -bpp8 { | |||
image_format = index8 | |||
} | |||
option -bpp16 { | |||
image_format = rgba5551 | |||
} | |||
option -bpp16a { | |||
image_format = rgba4444 | |||
} | |||
option -bpp16p { | |||
image_format = rgba5650 | |||
} | |||
option -bpp32 { | |||
image_format = rgba8888 | |||
</syntaxhighlight>}} | |||
*removed under '''default settings''' section: | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
// PS3 OSD default settings | |||
format_endian = big // -B | |||
pixel_order = normal // -N | |||
pixel_channel = default // -R | |||
image_format = rgba8888 // --image_format rgba8888 | |||
</syntaxhighlight>}} | |||
*removed under '''mode option''' section: | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
option -viewer { | |||
object_viewer = "GimView.exe" | |||
} | |||
</syntaxhighlight>}} | |||
*removed under '''process option''' section: | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
option -F { | |||
pixel_order = faster | |||
</syntaxhighlight>}} | |||
*removed under '''PS3 OSD specific options''' section: | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
option -B { | |||
format_endian = big | |||
} | |||
option -R { | |||
pixel_channel = default | |||
} | |||
option -DXT { | |||
pixel_order = default | |||
pixel_channel = default | |||
image_format = default | |||
} | |||
</syntaxhighlight>}} | |||
And this is the original configuration file, not modifyed | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
//================================================================ | |||
// gimconv configuration | |||
//================================================================ | |||
usage { | |||
puts "usage:" | |||
puts " gimconv <input files> [options]" | |||
puts "" | |||
puts "options:" | |||
puts " -interact input additional options" | |||
puts " -pictures merge files as pictures" | |||
puts " -frames merge files as frames" | |||
puts " -levels merge files as levels" | |||
puts " -prompt prompt always" | |||
puts " -warning prompt on warning" | |||
puts " -error prompt on error" | |||
puts " -viewer start gimview.exe when process ends" | |||
puts " -o <filename> specify output file name" | |||
puts " -s <w,h> resize image data" | |||
puts " -S output text format" | |||
puts " -P resize image data to a power of two" | |||
puts " -N output in normal pixel storage format" | |||
puts " -F output in faster pixel storage format" | |||
puts " -R re-convert ( don't swap RGBA <-> ABGR )" | |||
} | |||
//---------------------------------------------------------------- | |||
// default settings | |||
//---------------------------------------------------------------- | |||
default { | |||
load "lib/*" | |||
// main control | |||
interact_mode = off // off on ctrl | |||
merge_mode = off // off picture frame level plane | |||
// image palette sequence | |||
prompt_mode = off // off on warning error | |||
output_object = on // off on | |||
output_script = off // off on | |||
output_directory = auto // current input auto | |||
output_filename = "" | |||
object_extension = .gim | |||
script_extension = .gis | |||
userdata_extension = .dat | |||
glob_extension = .dds .tm2 .tga .bmp .avi | |||
object_viewer = "" | |||
// process control | |||
filter_script = "Filter" | |||
image_size = default // default pow2 $w,$h | |||
pixel_order = default // default normal faster | |||
pixel_alpha = default // default $alpha | |||
pixel_channel = default // default rgba rgab ragb ... etc | |||
image_format = default // default rgba8888 rgba4444 rgba5551 rgba5650 | |||
// index4 index8 index16 index32 | |||
// dxt1 dxt3 dxt5 dxt1ext dxt3ext dxt5ext | |||
palette_format = default // default rgba8888 rgba4444 rgba5551 rgba5650 | |||
update_userdata = default // default off on | |||
update_fileinfo = off // default off on | |||
check_limit = on // off on | |||
limit_image_width = 4096 // off $count | |||
limit_image_height = 4096 // off $count | |||
limit_level_count = 8 // off $count | |||
limit_frame_count = off // off $count | |||
// output control | |||
format_style = psp // std psp ps3 | |||
format_endian = little // little big | |||
output_image = on // off on | |||
output_palette = on // off on | |||
output_sequence = on // off on | |||
// PS3 OSD default settings | |||
format_endian = big // -B | |||
pixel_order = normal // -N | |||
pixel_channel = default // -R | |||
image_format = rgba8888 // --image_format rgba8888 | |||
extend_edge = off | |||
} | |||
//-------------------------------------------------------- | |||
// format specific | |||
//-------------------------------------------------------- | |||
input *.avi { | |||
pixel_alpha = 255 | |||
} | |||
input *.bmp { | |||
pixel_alpha = 255 | |||
} | |||
input *.dds { | |||
} | |||
input *.tga { | |||
} | |||
input *.tm2 { | |||
} | |||
input *.gim { | |||
} | |||
input *.gis { | |||
} | |||
//-------------------------------------------------------- | |||
// mode option | |||
//-------------------------------------------------------- | |||
option -interact { | |||
interact_mode = on | |||
} | |||
option -pictures { | |||
merge_mode = picture | |||
} | |||
option -frames { | |||
merge_mode = frame | |||
} | |||
option -levels { | |||
merge_mode = level | |||
} | |||
option -planes { | |||
merge_mode = plane | |||
} | |||
option -images { | |||
merge_mode = image | |||
} | |||
option -palettes { | |||
merge_mode = palette | |||
} | |||
option -sequences { | |||
merge_mode = sequence | |||
} | |||
option -prompt { | |||
prompt_mode = on | |||
} | |||
option -warning { | |||
prompt_mode = warning | |||
} | |||
option -error { | |||
prompt_mode = error | |||
} | |||
option -viewer { | |||
object_viewer = "GimView.exe" | |||
} | |||
//-------------------------------------------------------- | |||
// process option | |||
//-------------------------------------------------------- | |||
option -o %filename { | |||
output_filename = %filename | |||
} | |||
option -s %size { | |||
image_size = %size | |||
} | |||
option -g %ext { | |||
glob_extension = %ext | |||
} | |||
option -P { | |||
image_size = pow2 | |||
} | |||
option -N { | |||
pixel_order = normal | |||
} | |||
option -F { | |||
pixel_order = faster | |||
} | |||
//-------------------------------------------------------- | |||
// PS3 OSD specific options | |||
//-------------------------------------------------------- | |||
option -B { | |||
format_endian = big | |||
} | |||
option -X { | |||
pixel_channel = abgr | |||
} | |||
option -R { | |||
pixel_channel = default | |||
} | |||
option -DXT { | |||
pixel_order = default | |||
pixel_channel = default | |||
image_format = default | |||
} | |||
option -E { | |||
extend_edge = on | |||
} | |||
//-------------------------------------------------------- | |||
// output option | |||
//-------------------------------------------------------- | |||
option -S { | |||
output_object = off | |||
output_script = on | |||
} | |||
//-------------------------------------------------------- | |||
// filter script | |||
//-------------------------------------------------------- | |||
script Filter %target { | |||
RescaleImage %target $image_size | |||
SetPixelFormat %target $image_format $palette_format | |||
SetPixelAlpha %target $pixel_alpha | |||
SwapPixelChannel %target $pixel_channel | |||
ConfigureImage %target order $pixel_order | |||
UpdateUserData %target $update_userdata | |||
UpdateFileInfo %target $update_fileinfo | |||
ExtendEdge %target $extend_edge | |||
CheckPSP %target $check_limit | |||
} | |||
</syntaxhighlight>}} | |||
The option '''-ps3''' seems to be wrong, the images inside [[explore_plugin]]_full.rco from firmware 4.70 has been made by using this 3 options | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
option -ps3 { | |||
format_style = psp | |||
format_endian = big | |||
pixel_order = normal | |||
} | |||
</syntaxhighlight>}} | |||
You can edit the GimConv.cfg file and use GimConv.exe to load the group of options by the option '''-ps3''' in command line this way (or let rcomagegui.exe decide, but im not sure what it does) | |||
{{Keyboard|content='''gimconv.exe tex_psn.png -o tex_psn.gim --ps3'''}} | |||
Another way is by specifying the options strictly from command line (using the names that appears inside the GimConv.cfg file) | |||
This is the most accurate way to specify options for GIM conversion, it doesnt uses groups but the result is the same, in this example is a command for gimconv.exe directly | |||
{{Keyboard|content='''gimconv.exe tex_psn.png -o tex_psn.gim --format_style psp --format_endian big --pixel_order normal'''}} | |||
But there is other way, by "redirecting" GIM settings from rcomage.exe ---to---> gimconv.exe at compiling time (see the "compile" help in [[rcomage]] page). There are 2 options in rcomage specific for this task, named: '''--gimconv-cmd''' and '''--gimconv-flags''' | |||
{{Keyboard|content=rcomage.exe ...}} | |||
<!-- rcomage.exe compile explore_plugin_full.xml explore_plugin_full.rco --pack-hdr zlib --zlib-method default --zlib-level 9 ...INCOMPLETE_IS_MISSING_GIM_SETTINGS--> | |||
<!-- and i cant make this 2 options work, is driving me nuts, grrr --> | |||
*Other stuffing | |||
**speculation about animated images support http://endlessparadigm.com/forum/showthread.php?tid=5054 | |||
**note the option '''-viewer (start gimview.exe when process ends)''' points to an official gim viewer that doesnt exists in the public release | |||
**[http://us.playstation.com/support/manuals/psp/pspguides/ PSP Custom Theme Toolbox] admits .GIM files as input, but doesnt includes a gim converter | |||
*To identify the settings that was used to build a GIM file: | |||
**Use rcomage to make an extraction of the contents '''without''' conversion of images (this way the GIM are extracted raw) | |||
**Use rcomage to make another extraction of the contents '''with''' conversion of images (this way the images are converted to PNG when extracted) | |||
**Use gimconv to convert the PNG ---to---> GIM by the old method of test-error by trying some of the options availables that appears in gimonv.cfg | |||
**Use a hexeditor to compare the original GIM extracted in step 1 with the rebuilt GIM from your test, there is no need to make accurate comparisons, just an overview of how the data is ordered | |||
**When the data seems similar, make a hash comparison of both, original and rebuild should be exactly the same data (is posible to create a GIM exactly like the original) | |||
*In PS3 it seems to be at least 2 types of GIM images, both included inside rco's, and in some cases both types in the same rco | |||
**explore_plugin_full.rco (and other explore_plugin_***.rco ?): ('''--format_style psp --format_endian big --pixel_order normal''') | |||
**xmb_plugin_normal.rco (and other xmb_***.rco ?): (uses some variant of dxt5) | |||
**more ? | |||
==GMO== | ==GMO== | ||
Graphics... ? | |||
Used inside [[Resource_Container_(RCO)]] files | Used inside [[Resource_Container_(RCO)]] files | ||
==GTF== | ==GTF== | ||
Line 167: | Line 538: | ||
| 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 | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">GTF header</span> | ||
|- | |- | ||
| 0x00 || 0x04 || 02 02 00 FF || || Version | | 0x00 || 0x04 || 02 02 00 FF || || Version | ||
Line 175: | Line 546: | ||
| 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 || || Not used? | | 0x0C || 0x04 || 00 00 00 00 || || Not used? | ||
|- | |- | ||
|colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">GTF specification</span> | ||
|- | |- | ||
| 0x10 || 0x04 || 00 00 00 80 || || Size Header | | 0x10 || 0x04 || 00 00 00 80 || || Size Header | ||
Line 194: | Line 565: | ||
| 0x1C || 0x04 || || || Remaps: | | 0x1C || 0x04 || || || Remaps: | ||
|- | |- | ||
|colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">DDS specification</span> | ||
|- | |- | ||
| 0x20 || 0x02 || 00 40 || 64 in decimal || Size image width | | 0x20 || 0x02 || 00 40 || 64 in decimal || Size image width | ||
Line 203: | Line 574: | ||
|- | |- | ||
|} | |} | ||
==JPG== | ==JPG== | ||
Line 228: | Line 595: | ||
==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. | ||
==TGA== | ==TGA== | ||
http://en.wikipedia.org/wiki/Truevision_TGA | |||
=Audio= | =Audio= | ||
Line 253: | Line 613: | ||
==AT9== | ==AT9== | ||
* | *[http://www.psdevwiki.com/ps4/Snd0.at9 Snd0.at9] | ||
==VAG== | ==VAG== | ||
*Format | *Format | ||
Line 263: | Line 621: | ||
{| 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''' | ||
| style="background-color:#564147; color:#FFFFFF;" |'''Size | | style="background-color:#564147; color:#FFFFFF;" |'''Size''' | ||
| style="background-color:#564147; color:#FFFFFF;" |'''Example | | style="background-color:#564147; color:#FFFFFF;" |'''Example''' | ||
| 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 | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">VAG header</span> | ||
|- | |- | ||
| 0x00 || 0x04 || 56 41 47 70 || "VAGp" || Magic | | 0x00 || 0x04 || 56 41 47 70 || "VAGp" || Magic | ||
Line 279: | Line 637: | ||
| 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 || 44 000 Hz || Sampling Frequency (Hz) | ||
|- | |- | ||
| 0x14 || 0x0A || 00 00 ... 00 00 || - || Reserved area | | 0x14 || 0x0A || 00 00 ... 00 00 || - || Reserved area | ||
Line 291: | Line 649: | ||
| 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 | |colspan="5" style="text-align:center; background-color:lightblue;" | <span style="color:black;">Waveform data starts</span> | ||
|- | |- | ||
|} | |} | ||
Line 309: | Line 667: | ||
| Decoding coefficient | | Decoding coefficient | ||
|| Loop information: | || Loop information: | ||
* | *1: last block of the file | ||
*3: ending block of the loop | |||
* | *6: starting block of the loop | ||
* | *7: 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 321: | Line 678: | ||
*Tools | *Tools | ||
**MFAudio v1.1 | **MFAudio v1.1 (converts WAV to VAG): 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 | ||
=Video= | =Video= | ||
==PAM== | ==PAM== | ||
Pam files can contain audio or have the audio | Pam files can contain audio or have the audio separwted in a .AT3 track, used in [[Content Information Files]] | ||
=Interactive= | =Interactive= | ||
Line 345: | Line 694: | ||
==DAE== | ==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 | 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/ | ||
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 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: | *Collada plugins for: | ||
**Blender | **Blender http://colladablender.illusoft.com/ http://sourceforge.net/projects/colladablender/ | ||
==FPO== | |||
==VPO== | |||
==MNU== | ==MNU== | ||
Line 471: | Line 766: | ||
{{ | {{File Formats}}<noinclude>[[Category:Main]]</noinclude> | ||
[[Category:Main]] | |||
</noinclude> |