RCOXML Texts: Difference between revisions
m (→Text) |
|||
Line 16: | Line 16: | ||
| 0x00 || 0x02 || '''language_id''' || || 0x00=Japanese<br>0x01=English (United States)<br>0x02=French<br>0x03=Spanish (Spain)<br>0x04=German<br>0x05=Italian<br>0x06=Dutch<br>0x07=Portuguese (Portugal)<br>0x08=Russian<br>0x09=Korean<br>0x0A=Chinese (Traditional)<br>0x0B=Chinese (Simplified)<br>0x0C=Finnish<br>0x0D=Swedish<br>0x0E=Danish<br>0x0F=Norwegian<br>0x10=Polish<br>0x11=Portuguese (Brazil)<br>0x12=English (United Kingdom)<br>0x13=Turkish | | 0x00 || 0x02 || '''language_id''' || || 0x00=Japanese<br>0x01=English (United States)<br>0x02=French<br>0x03=Spanish (Spain)<br>0x04=German<br>0x05=Italian<br>0x06=Dutch<br>0x07=Portuguese (Portugal)<br>0x08=Russian<br>0x09=Korean<br>0x0A=Chinese (Traditional)<br>0x0B=Chinese (Simplified)<br>0x0C=Finnish<br>0x0D=Swedish<br>0x0E=Danish<br>0x0F=Norwegian<br>0x10=Polish<br>0x11=Portuguese (Brazil)<br>0x12=English (United Kingdom)<br>0x13=Turkish | ||
|- | |- | ||
| 0x02 || 0x02 || '''character_encoding''' || || 0x00=[https://en.wikipedia.org/wiki/UTF-8 UTF8]<br>0x01=[https://en.wikipedia.org/wiki/UTF-16 UTF16]<br>0x02=[https://en.wikipedia.org/wiki/UTF-32 UTF32] | | 0x02 || 0x02 || '''character_encoding''' || || Works as a replacement of the [https://en.wikipedia.org/wiki/Byte_order_mark BOM]<br>0x00=[https://en.wikipedia.org/wiki/UTF-8 UTF8]<br>0x01=[https://en.wikipedia.org/wiki/UTF-16 UTF16]<br>0x02=[https://en.wikipedia.org/wiki/UTF-32 UTF32] | ||
|- | |- | ||
| 0x04 || 0x04 || '''strings_number''' || || number of text strings for this '''language_id''' | | 0x04 || 0x04 || '''strings_number''' || || number of text strings for this '''language_id''' |
Revision as of 21:36, 15 September 2018
Description
The texts inside .rco files are indexed in the embedded RCOXML code of the .rco container under the XML element TextTree. See Resource Container (RCO) and RCOXML Coding
All the texts inside .rco has a localized file for every one of the languages supported by XMB. The localized file contains all the translated text strings
filename | name | VSMXFile | ImageTree | FontTree | TextTree | ModelTree | SoundTree | ObjectTree | AnimTree | Notes |
---|---|---|---|---|---|---|---|---|---|---|
ap_plugin.rco | ap_plugin | No | No | No | No | No | No | Yes | No | |
audioplayer_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
audioplayer_plugin_dummy.rco | sample | No | No | No | Yes | No | No | No | No | |
audioplayer_plugin_mini.rco | sample | No | No | No | Yes | No | No | Yes | No | |
audioplayer_plugin_util.rco | sample | No | No | No | Yes | No | No | Yes | No | Associated .sprx has a different name. |
auth_plugin.rco | auth_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
autodownload_plugin.rco | autodownload_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
autoupdateconf_plugin.rco | autoupdateconff_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
avc2_game_plugin.rco | sample | No | No | No | Yes | No | No | No | No | |
avc2_game_video_plugin.rco | sample | No | Yes (gim) | No | No | No | No | Yes | No | |
avc2_text_plugin.rco | tcgui | No | Yes (gim) | No | Yes | No | No | Yes | No | |
avc_game_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | Associated .sprx has a different name. |
avc_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
bdp_disccheck_plugin.rco | bdp_disccheck_plugin | No | No | No | Yes | No | No | Yes | No | |
bdp_plugin.rco | bdp_plugin | No | Yes (gim) | No | Yes | No | No | Yes | Yes | |
bdp_storage_plugin.rco | bdp_storage_plugin | No | No | No | Yes | No | No | Yes | No | |
campaign_plugin.rco | campaign_plugin | No | Yes (gim, png) | No | Yes | No | No | Yes | No | |
category_setting_plugin.rco | category_setting_plugin | No | Yes (gim) | No | Yes | No | No | No | No | |
checker_plugin.rco | checker | No | No | No | No | No | No | Yes | No | Associated .sprx has a different name. |
closedcaption_config_plugin.rco | closedcaption_config_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
comboplay_plugin.rco | comboplay_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
custom_render_plugin.rco | custom_render_plugin | No | Yes (gim) | No | No | No | No | Yes | Yes | |
data_copy_plugin.rco | sample | No | No | No | Yes | No | No | Yes | No | |
deviceconf_plugin.rco | deviceconf_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
dlna_plugin.rco | dlna | No | Yes (gim) | No | Yes | No | No | Yes | No | |
download_plugin.rco | download | No | Yes (gim) | No | Yes | No | No | Yes | No | |
dtcpip_util.rco | dtcpip_util | No | No | No | Yes | No | No | Yes | No | |
edy_plugin.rco | edy_plugin | No | Yes (gim) | No | Yes | No | Yes | Yes | No | |
eula_cddb_plugin.rco | eula_cddb_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
eula_hcopy_plugin.rco | eula_hcopy | No | Yes (gim) | No | Yes | No | No | Yes | No | |
eula_net_plugin.rco | regcam_plugin | No | Yes (gim, png, jpg) | No | Yes | No | Yes | Yes | No | |
explore_category_friend.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_category_game.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_category_music.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_category_network.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_category_photo.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_category_psn.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_category_sysconf.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_category_tv.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_category_user.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_category_video.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_plugin_ft.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_plugin_full.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | Associated .sprx has a different name. |
explore_plugin_game.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
explore_plugin_np.rco | explore_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
filecopy_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
friendim_plugin.rco | friendim | No | Yes (gim) | No | Yes | No | No | Yes | Yes | |
friendim_plugin_game.rco | friendim | No | Yes (gim) | No | Yes | No | No | Yes | Yes | Associated .sprx has a different name. |
friendml_plugin.rco | friendml_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
friendml_plugin_game.rco | friendml_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | Associated .sprx has a different name. |
friendtrophy_plugin.rco | friendtrophy_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
friendtrophy_plugin_game.rco | friendtrophy_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | Associated .sprx has a different name. |
game_ext_plugin.rco | game_ext_plugin | No | Yes (gim, png) | No | Yes | No | No | Yes | No | |
game_indicator_plugin.rco | user_info_plugin | No | Yes (gim) | No | No | No | No | Yes | No | |
game_plugin.rco | game_plugin | No | No | No | Yes | No | No | Yes | No | Associated .sprx has a different name. |
gamedata_plugin.rco | gamedata_plugin | No | No | No | Yes | No | No | Yes | No | |
gamelib_plugin.rco | gamelib_plugin | No | Yes (gim) | No | No | No | No | Yes | Yes | |
gameupdate_plugin.rco | sample | No | No | No | Yes | No | No | Yes | No | |
hknw_plugin.rco | hknw_plugin | No | Yes (gim) | Yes | Yes | No | No | Yes | No | |
idle_plugin.rco | idle | No | No | No | No | No | No | Yes | No | |
impose_plugin.rco | impose_plugin | No | Yes (gim) | No | Yes | No | No | Yes | Yes | Associated .sprx has a different name. |
ingame_manual_plugin.rco | ingame_manual | No | No | No | Yes | No | No | Yes | No | |
kensaku_plugin.rco | kensaku | No | Yes (gim) | No | Yes | No | No | Yes | No | |
msgdialog_plugin.rco | msgdialog_plugin | No | No | No | Yes | No | No | Yes | No | Associated .sprx has a different name. |
mtpinitiator_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
musicbrowser_plugin.rco | sample | No | No | No | No | No | No | Yes | No | |
nas_plugin.rco | nas_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
netconf_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
newstore_effect.rco | skeleton_plugin | No | No | No | No | No | No | No | No | Empty file. |
newstore_plugin.rco | newstore_plugin | No | Yes (gim, png, jpg) | No | Yes | No | No | Yes | No | |
np_eula_plugin.rco | npeula | No | Yes (gim) | No | Yes | No | No | Yes | No | |
np_matching_plugin.rco | np_matching_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
np_multisignin_plugin.rco | np_multisignin_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
np_sns_plugin.rco | npsns | No | Yes (gim) | No | Yes | No | No | Yes | No | |
np_trophy_ingame.rco | np_achiev | No | Yes (gim) | No | Yes | No | No | Yes | No | |
np_trophy_plugin.rco | np_achiev | No | Yes (gim) | No | Yes | No | No | Yes | No | |
npsignin_plugin.rco | npsignin_plugin | No | Yes (gim) | No | Yes | No | No | Yes | Yes | |
osk_plugin.rco | sample | No | Yes (gim) | No | No | No | Yes | Yes | No | |
oskfullkeypanel_plugin.rco | ime_osk_base_resouce | No | Yes (gim) | No | Yes | No | No | Yes | No | |
oskpanel_plugin.rco | ime_osk_base_resouce | No | Yes (gim) | No | Yes | No | No | Yes | No | |
pesm_plugin.rco | pesm | No | No | No | No | No | No | Yes | No | |
photo_network_sharing_plugin.rco | pesm | No | Yes (gim) | No | Yes | No | No | Yes | No | |
photolist_plugin.rco | sample | No | No | No | No | No | No | Yes | No | |
photoupload_plugin.rco | dlna | No | Yes (gim) | No | Yes | No | No | Yes | No | |
photoviewer_plugin.rco | photoviewer_plugin | No | Yes (gim, png) | No | Yes | No | No | Yes | No | |
playlist_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
podl_plugin.rco | podl_plugin | No | No | No | No | No | No | Yes | No | |
poweroff_plugin.rco | poweroff | No | No | No | Yes | No | No | Yes | No | |
premo_plugin.rco | premo_plugin | No | Yes (gim) | No | Yes | No | No | Yes | Yes | |
print_plugin.rco | print_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
profile_plugin.rco | profile_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
profile_plugin_mini.rco | profile_plugin_mini | No | Yes (gim) | No | Yes | No | No | Yes | No | Associated .sprx has a different name. |
ps3_savedata_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
ps3_savedata_plugin_game_mini.rco | sample | No | No | No | Yes | No | No | Yes | No | |
rec_plugin.rco | rec_plugin | No | No | No | No | No | No | Yes | No | |
regcam_plugin.rco | regcam_plugin | No | Yes (gim, png, jpg) | No | Yes | No | Yes | Yes | No | |
remotedownload_plugin.rco | remotedownload | No | No | No | Yes | No | No | Yes | No | |
sacd_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | Yes | |
scenefolder_plugin.rco | sample | No | No | No | No | No | No | Yes | No | |
screenshot_plugin.rco | screenshot_plugin | No | No | No | Yes | No | No | Yes | No | |
search_service.rco | search_service | No | No | No | Yes | No | No | No | No | Associated .sprx has a different name. |
software_update_plugin.rco | software_update_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
soundvisualizer_plugin.rco | soundvisualizer | No | Yes (gim) | No | Yes | No | No | Yes | No | |
strviewer_plugin.rco | strviewer | No | No | No | Yes | No | No | Yes | No | |
subdisplay_plugin.rco | ap_plugin | No | No | No | No | No | No | Yes | No | Associated .sprx has a different name. |
sv_pseudoaudioplayer_plugin.rco | sv_pseudoaudioplayer | No | Yes (gim) | No | Yes | No | No | Yes | No | Associated .sprx has a different name. |
sysconf_plugin.rco | sysconf_plugin | No | Yes (gim) | Yes | Yes | No | No | Yes | No | |
system_plugin.rco | system_plugin | No | Yes (gim) | No | Yes | No | Yes | Yes | Yes | Associated .sprx has a different name. |
thumthum_plugin.rco | sample | No | No | No | Yes | No | No | Yes | No | |
upload_util.rco | upload_util | No | Yes (gim) | No | Yes | No | No | Yes | No | |
user_info_plugin.rco | user_info_plugin | No | No | No | Yes | No | No | Yes | No | |
user_plugin.rco | user | No | Yes (gim) | No | Yes | No | No | Yes | No | |
videoeditor_plugin.rco | skeleton_plugin | No | Yes (gim, png, jpg) | No | Yes | No | Yes | Yes | No | |
videoplayer_plugin.rco | videoplayer | No | Yes (gim) | No | Yes | No | No | Yes | No | |
videoplayer_util.rco | videoplayer | No | No | No | Yes | No | No | Yes | No | |
vmc_savedata_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
wboard_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
webbrowser_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
webrender_plugin.rco | sample | No | Yes (gim) | No | Yes | No | No | Yes | No | |
xmb_ingame.rco | xmb_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | |
xmb_plugin_normal.rco | xmb_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No | Associated .sprx has a different name. |
ycon_manual_plugin.rco | ycon_plugin | No | Yes (gim) | No | Yes | No | No | Yes | No |
Text
"TextTree" could be renamed to LanguageTree, is more intuitive, the point is every entry here is the "parent" of several string texts, but the entry itself is not a text (is the parent of a group of texts), so is better to use a name more abstract like "LanguageTree"
For a Language first are specified the language_id and the number of "children" text strings
Offset | Length | Name | Example | Notes |
---|---|---|---|---|
0x00 | 0x02 | language_id | 0x00=Japanese 0x01=English (United States) 0x02=French 0x03=Spanish (Spain) 0x04=German 0x05=Italian 0x06=Dutch 0x07=Portuguese (Portugal) 0x08=Russian 0x09=Korean 0x0A=Chinese (Traditional) 0x0B=Chinese (Simplified) 0x0C=Finnish 0x0D=Swedish 0x0E=Danish 0x0F=Norwegian 0x10=Polish 0x11=Portuguese (Brazil) 0x12=English (United Kingdom) 0x13=Turkish | |
0x02 | 0x02 | character_encoding | Works as a replacement of the BOM 0x00=UTF8 0x01=UTF16 0x02=UTF32 | |
0x04 | 0x04 | strings_number | number of text strings for this language_id |
Now for every strings_number are repeated 12 bytes to define every string that are references to other tables
Offset | Length | Name | Example | Notes |
---|---|---|---|---|
0x00 | 0x04 | label_offset | Offset to label, relative of the label table | |
0x04 | 0x04 | string_length | Length of the text | |
0x08 | 0x04 | string_offset | Offset of the text, relative to the text data start address |
Language Modifications
All modifications made to the <language>.xml files extracted from RCO's with rcomage belongs to this category
How to add custom texts
Rebug package manager example goes here
Photosensitive epilepsy text removal/replacement
Text is located in all <language.xml> files inside sysconf_plugin.rco
It can be blanked (replaced by nothing), or replaced by any other custom text and ASCII art
Code Sample
- Notes
- To make accurate texts that fits to the screen is needed to know the number of characters in width, and number of lines in height (for every TV resolution mode ?)
- Some experiments with ASCII art http://www.ps3hax.net/2013/04/tutorial-how-to-edit-ps3-epilepsy-warning-on-cfw/
- VSH.self is responsible for loading the epilepsy warning screen. To disable it completely use this patch
Adding custom language packs
- PS3MFW_Builder::PSheb_project. Info about the PSheb project needs to be improved, splitted and moved to several wiki pages:
- Info about .xml modifications moved to Languages page
- Info about .tcl "language pack" task stays in PS3MFW Builder page
- Info about replacing or adding characters/glyphs in the official .ttf fonts moved to XMB Fonts page
etc...
|