RCOXML Texts: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
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 || '''strings_format''' ||  || 0x00=UTF8<br>0x01=UTF16<br>0x02=UTF32
| 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]
|-
|-
| 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 09:22, 18 December 2016

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

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 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


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...