PS3 [RESEARCH] Playstation Home Online Information

DeViL303

Developer
PSX-Place Supporter
I will use this thread to document how Playstation Home online works on a basic level. There will be open source software coming soon that will let anyone easily run a Playstation Home server so this information might help some of those who are just starting out.

If anyone would like to help out with testing, or development, There is a discord group HERE led by Developer AgentDark447 called Home Laboratory. Some amazing work being done there researching Playstation Home online..

Some of this information is speculation and I will be filling in the gaps as more discoveries are made.

The first 7 files loaded from the CDN are as follows: (IE Region which gets mapped to GB region in TSS)

Code:
/tss/coreHztFmpQrx0002_en-IE.xml
/nav/NavigatorRoot.xml
/Objects/ObjectCatalogue_5_SCEE.hcdb
/Inventory/E/ServiceIds.xml
/Config/Config_en-GB.sharc
/Environments/SceneList.xml
/nav/E/Navigator_en-GB.xml


1. TSS CONFIGURATION XML (Title Small Storage)

This first post will just deal with the TSS file. So when you boot into online mode in PSH the first file the client looks for online is known internally as the TSS file. This is like a security configuration xml file that sets up a load of stuff. It's massively important and its the key to getting home back online and decrypting everything.

It's name was different and the parameters too depending on the Home version. Here are some filenames it has used over the years. There are some more too I think.

1.86 retail: coreHztFmpQrx0002_en-US.xml
1.83 online debug: clientconfig0001.xml
1.81 and lower used: NPWR00050_00-0.tss

Fun fact, we probably would not even have these TSS files preserved except for a crazy leak that happened back when Home was live. Some Home devs accidently packed a very powerful "Core Online Debug" EBOOT into a retail update and pushed it out to players, then with even more luck one user dug deep into it and discovered a console command that allowed this TSS xml to be downloaded in plaintext form. That console command is "tssrequest".

Without this file being dumped when Home was live, and then of course the file kept safe for years since, it would have been impossible to decrypt all the sharc encrypted sdats and probably no one would have ever been able to get Home back online or at least it would have been way harder. Massive credits to @SpookySniper for that.

Example of an official TSS XML
Code:
<XML>
  <VERSION>12/20/2013 15:56:40 AM</VERSION>
  <SHA1 file="Environments/SceneList.xml" digest="015aa374b0ff6fc836f80c70d551951a05b126e7" />
  <SHA1 digest="3ef4a4d747acf4824ffcfd59a3fba8d9ddaa0877" file="Objects/ObjectCatalogue.bar"/>
  <SHA1 digest="d7d19122ac30d7eee05b4f00c5caef7663def1d0" file="Objects/ObjectCatalogue_5_SCEAsia.hcdb"/>
  <SHA1 digest="7b5fdb3fb239f4c9599d6a6dbdb353d5105c863a" file="Objects/ObjectCatalogue_5_SCEJ.hcdb"/>
  <SHA1 digest="101303de4e7fbaf72827269abd142ad99d4a1991" file="Objects/ObjectCatalogue_5_SCEA.hcdb"/>
  <SHA1 digest="104b791b4fd16bd9bb384e22146fb6f9426bf99a" file="Objects/ObjectCatalogue_5_SCEE.hcdb"/>  <objects>
    <prepared_database/>
  </objects>
  <SecureContentRoot>https://secure.$(env).homeps3.online.scee.com/</SecureContentRoot>
  <ScreenContentRoot>https://secure.$(env).homeps3.online.scee.com/Screens/</ScreenContentRoot>
  <secure_lua_object_resources_root>https://secure.$(env).homeps3.online.scee.com/objects</secure_lua_object_resources_root>
  <datacapture>
    <url mode="1">https://hdc.$(env).homeps3.online.scee.com:10061/dataloaderweb/queue</url>
  </datacapture>
  <SHA1 file="Config/Config_en-GB.sharc" digest="71688db5e6e3aa68d1b3f892dd8860158477f917" />
  <SHA1 file="Config/Config_de-DE.sharc" digest="3357eed09c1205982424a3e19954896196cdc1d7" />
  <SHA1 file="Config/Config_fr-FR.sharc" digest="0cc38a2edb20dab6091b9b6a499dd884c5cf04bd" />
  <SHA1 file="Config/Config_es-ES.sharc" digest="5880c1cbfef1257f3ee2c588134e00f54e79b438" />
  <SHA1 file="Config/Config_it-IT.sharc" digest="e5131faba1fadccf338e7db5469aaa948641eee7" />
  <SHA1 file="Config/Config_en-SG.sharc" digest="1ba389bfe7bbab93f2c766b5bd18ba7f72d67812" />
  <SHA1 file="Config/Config_en-MY.sharc" digest="023f3bee7fa68f0c4572145a91b8d937d7323c29" />
  <SHA1 file="Config/Config_en-ID.sharc" digest="b4e3a36cf9faea85c1ce8e47cd41e53b5267195b" />
  <SHA1 file="Config/Config_en-TH.sharc" digest="0f057dc6d945378f489451aed2e0cf5789bacd6c" />
  <SHA1 file="Config/Config_ko-KR.sharc" digest="2ed1c78091e28b49a0c202478c8481be3d9c2818" />
  <SHA1 file="Config/Config_zh-HK.sharc" digest="476d7ea6e92a53ad089691ec114b3a11141ae593" />
  <SHA1 file="Config/Config_zh-TW.sharc" digest="d11551a1a6d4eeb2a2791e68a663cdba633534f3" />
  <SHA1 file="Config/Config_en-US.sharc" digest="c530fc16ac8fb564af5cd32324074d7af8b83354" />
  <SHA1 file="Config/Config_ja-JP.sharc" digest="2ea23fdd52a8a7712414672cb469355460e6f195" />
  <SceneRedirect dest="New_Home_Square_3_5305_3636" region="SCEE" src="Home Square" />
  <SceneRedirect dest="2013_Cinema_193B_7E40" region="SCEE" src="Cinema" />
  <SceneRedirect dest="2013_Marketplace_8480_98F0" region="SCEE" src="Marketplace" />
  <AdminObjectId>BD824A08-34854866-91573614-3D2FF37C</AdminObjectId>
  <DNSOverride action="error" report="on" clearcache="on">209.141.32.0/19</DNSOverride>
  <DNSOverride action="error" report="on" clearcache="on">192.95.35.251</DNSOverride>
  <useregionalserviceids />
  <maxserviceids>65</maxserviceids>
  <commerce>
    <secure_commerce_points />
  </commerce>
  <connection>
    <contentserver key="8243a3b10f1f1660a7fc934aac263c9c5161092dc25=">http://scee-home.playstation.net/c.home/prod/live/</contentserver>
  </connection>
  <messageQueue>
    <connect address="prod.homemq.online.scee.com" port="10086" login="cprod" password="ummagumma" vhost="prod" isCritical="false" />
    <client>/exchange/exchange.client/pshome.client.$(user)</client>
    <client>/exchange/exchange.client/pshome.client.command</client>
    <subscribe>/exchange/exchange.platform/pshome.platform.$(user)</subscribe>
    <post>/exchange/exchange.event/pshome.client.event.#</post>
    <post>/exchange/exchange.score/pshome.content.score.#</post>
    <post>/exchange/exchange.message/pshome.content.message.#</post>
    <events>
      <enabled>true</enabled>
      <destination>
        <default>/exchange/exchange.event/pshome.client.event</default>
      </destination>
    </events>
    <content>
      <message>/exchange/exchange.message/pshome.content.message</message>
      <score>/exchange/exchange.score/pshome.content.score</score>
    </content>
  </messageQueue>
  <ssfw>
<!-- ssl accelerated services - homerewards.online.scee.com -->
<identity ttl="60" secret="0123456789abcdef">https://cprod.homeidentity.online.scee.com:10443/bb88aea9-6bf8-4201-a6ff-5d1f8da0dd37/</identity>
<!-- host ssl services - homeserverservices.online.scee.com -->
<rewards>https://cprod.homeserverservices.online.scee.com:10443/RewardsService/cprod/</rewards>
<clan>https://cprod.homeserverservices.online.scee.com:10443/ClanService/cprod/clan/</clan>
<savedata>https://cprod.homeserverservices.online.scee.com:10443/SaveDataService/cprod/</savedata>
<avatar>https://cprod.homeserverservices.online.scee.com:10443/SaveDataService/avatar/cprod/</avatar>
<layout>https://cprod.homeserverservices.online.scee.com:10443/LayoutService/cprod/</layout>
<trunks>https://cprod.homeserverservices.online.scee.com:10443/RewardsService/trunks-cprod/trunks/</trunks>
<avatarlayout>https://cprod.homeserverservices.online.scee.com:10443/AvatarLayoutService/cprod/</avatarlayout>
<structured>https://cprod.homeserverservices.online.scee.com:10443/SaveDataService/cprod/</structured>
  </ssfw>
  <global>
    <mode SCEA="3" SCEJ="3" SCEE="3" SCEAsia="3">0</mode>
    <mode SCEA="1" SCEJ="1" SCEE="0" SCEAsia="1">1</mode>
    <mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">7</mode>
    <mode SCEA="2" SCEJ="2" SCEE="2" SCEAsia="2">21</mode>
    <mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">12</mode>
    <mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">13</mode>
    <mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">14</mode>
    <mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">15</mode>
    <mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">16</mode>
    <mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">17</mode>
    <mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">18</mode>
    <mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">19</mode>
    <mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">20</mode>
  </global>
  <agerestrictions>
    <age region="sceasia">0</age>
    <age region="scej">0</age>
    <age region="scee">16</age>
    <age region="scea">13</age>
    <age region="scek">0</age>
  </agerestrictions>
  <REGIONINFO>
    <INSTANCE_TYPES>
      <TYPE name="EU" />
      <TYPE name="US" />
      <TYPE name="Japan" />
      <TYPE name="Asia" />
    </INSTANCE_TYPES>
    <REGION_TYPES>
      <!-- 32 max entries -->
      <TYPE name="EU-GB" territory="SCEE" instance="EU">en-GB</TYPE>
      <TYPE name="EU-France" territory="SCEE" instance="EU">fr-FR</TYPE>
      <TYPE name="EU-Italy" territory="SCEE" instance="EU">it-IT</TYPE>
      <TYPE name="EU-Germany" territory="SCEE" instance="EU">de-DE</TYPE>
      <TYPE name="EU-Spain" territory="SCEE" instance="EU">es-ES</TYPE>
      <TYPE name="US" territory="SCEA" instance="US">en-US</TYPE>
      <TYPE name="Asia-Japan" territory="SCEJ" instance="Japan">ja-JP</TYPE>
      <TYPE name="Asia-Korea" territory="SCEAsia" instance="Asia">ko-KR</TYPE>
      <TYPE name="Asia-Taiwan" territory="SCEAsia" instance="Asia">zh-TW</TYPE>
      <TYPE name="Asia-HongKong" territory="SCEAsia" instance="Asia">zh-HK</TYPE>
      <TYPE name="Asia-Singapore" territory="SCEAsia" instance="Asia">en-SG</TYPE>
      <TYPE name="Asia-Indonesia" territory="SCEAsia" instance="Asia">en-ID</TYPE>
      <TYPE name="Asia-Malaysia" territory="SCEAsia" instance="Asia">en-MY</TYPE>
      <TYPE name="Asia-Thailand" territory="SCEAsia" instance="Asia">en-TH</TYPE>
    </REGION_TYPES>
    <REGION_MAP>
      <!-- 64 max entries -->
      <!-- SCEJ -->
      <MAP code="ja-JP" loc="0">Asia-Japan</MAP>
      <!-- SCEA -->
      <MAP code="en-US" loc="0">US</MAP>
      <MAP code="en-CA" loc="0">US</MAP>
      <MAP code="fr-CA" loc="0">US</MAP>
      <!-- SCEE -->
      <MAP code="en-GB" loc="0">EU-GB</MAP>
      <MAP code="en-IE" loc="0">EU-GB</MAP>
      <MAP code="fr-BE" loc="0">EU-France</MAP>
      <MAP code="nl-BE" loc="0">EU-GB</MAP>
      <MAP code="fr-LU" loc="0">EU-France</MAP>
      <MAP code="de-LU" loc="0">EU-Germany</MAP>
      <MAP code="nl-NL" loc="0">EU-GB</MAP>
      <MAP code="fr-FR" loc="0">EU-France</MAP>
      <MAP code="de-DE" loc="0">EU-Germany</MAP>
      <MAP code="de-AT" loc="0">EU-Germany</MAP>
      <MAP code="de-CH" loc="0">EU-Germany</MAP>
      <MAP code="fr-CH" loc="0">EU-France</MAP>
      <MAP code="it-CH" loc="0">EU-Italy</MAP>
      <MAP code="it-IT" loc="0">EU-Italy</MAP>
      <MAP code="pt-PT" loc="0">EU-GB</MAP>
      <MAP code="en-DK" loc="0">EU-GB</MAP>
      <MAP code="da-DK" loc="0">EU-GB</MAP>
      <MAP code="en-FI" loc="0">EU-GB</MAP>
      <MAP code="fi-FI" loc="0">EU-GB</MAP>
      <MAP code="en-NO" loc="0">EU-GB</MAP>
      <MAP code="no-NO" loc="0">EU-GB</MAP>
      <MAP code="en-SE" loc="0">EU-GB</MAP>
      <MAP code="sv-SE" loc="0">EU-GB</MAP>
      <MAP code="en-AU" loc="0">EU-GB</MAP>
      <MAP code="en-NZ" loc="0">EU-GB</MAP>
      <MAP code="es-ES" loc="0">EU-Spain</MAP>
      <MAP code="ru-RU" loc="0">EU-GB</MAP>
      <MAP code="en-AE" loc="0">EU-GB</MAP>
      <MAP code="en-ZA" loc="0">EU-GB</MAP>
      <MAP code="en-CZ" loc="0">EU-GB</MAP>
      <MAP code="en-SA" loc="0">EU-GB</MAP>
      <MAP code="en-PL" loc="0">EU-GB</MAP>
      <MAP code="pl-PL" loc="0">EU-GB</MAP>
      <MAP code="en-GR" loc="0">EU-GB</MAP>
      <!-- SCEAsia -->
      <MAP code="en-HK" loc="0">Asia-HongKong</MAP>
      <MAP code="zh-HK" loc="0">Asia-HongKong</MAP>
      <MAP code="en-TW" loc="0">Asia-Taiwan</MAP>
      <MAP code="zh-TW" loc="0">Asia-Taiwan</MAP>
      <MAP code="en-SG" loc="0">Asia-Singapore</MAP>
      <MAP code="ko-KR" loc="0">Asia-Korea</MAP>
      <MAP code="en-ID" loc="0">Asia-Indonesia</MAP>
      <MAP code="en-MY" loc="0">Asia-Malaysia</MAP>
      <MAP code="en-TH" loc="0">Asia-Thailand</MAP>
    </REGION_MAP>
    <LOCALISATIONS>
      <!-- 32 max entries -->
      <REF language="*-ID">en-SG</REF>
      <REF language="*-MY">en-SG</REF>
      <REF language="*-TH">en-SG</REF>
      <REF language="en-HK">en-SG</REF>
      <REF language="*-HK">zh-HK</REF>
      <REF language="en-TW">en-SG</REF>
      <REF language="*-TW">zh-TW</REF>
      <REF language="*-SG">en-SG</REF>
      <REF language="en-US">en-US</REF>
      <REF language="en-CA">en-US</REF>
      <REF language="en-*">en-GB</REF>
      <REF language="fr-*">fr-FR</REF>
      <REF language="it-*">it-IT</REF>
      <REF language="de-*">de-DE</REF>
      <REF language="es-*">es-ES</REF>
      <REF language="ja-*">ja-JP</REF>
      <REF language="ko-*">ko-KR</REF>
    </LOCALISATIONS>
  </REGIONINFO>
</XML>

This URL is normally hardcoded in the EBOOT on retail versions and is HTTPS secured. On retail versions currently you can just edit the URL to HTTP and skip the cert check. Currently this is the only (public) way to get retail versions online.

This is due to a certificates.txt that is inside an encrypted archive COREDATA.SHARC. Currently we can not rebuild this archive so need to skip HTTPS with an EBOOT edit.

EDIT: Turns out that COREDATA.SHARC can simply be replaced by COREDATA.BAR from developer versions.

upload_2023-7-7_17-16-51.png



Developer EBOOTs have a couple of ways to override this URL that are even easier.

1: If you put a file called DEVCONFIG.TXT into USRDIR like this, it will override the default TSS url without touching the EBOOT.
Code:
CONFIGVERS=1
TSS=http://192.168.199.21/tss/clientconfig0001_en-US.xml

2. Another way is to use the in game command console to set the TSS url using the command "tssurl". On SOME versions of Home like 1.86 HDK the tssurl command can be set in HUBSTARTUP.TXT but this does not apply to 1.83.
Code:
tssurl http://192.168.199.21/tss/clientconfig0001_en-US.xml

Note: Using one of those methods with 1.83 Debug specifically will allow it to boot even on OFW, as the EBOOT signing remains intact.

Note 2:


Once the TSS loads it configures loads of other stuff, here are some of those explained.

SceneList.xml SHA1:

upload_2023-7-7_17-30-56.png


This will take some deeper explanation which I can leave to others who understand it better, but put simply these SHA1s in the TSS XML serve two purposes:

1: the first 16 characters (8 bytes) are used as an encryption/decryption key for the file referenced.
2: The SHA1 is the standard SHA1 of the decrypted xml which is used to verify the file after decryption.

Now as this 16 character encryption key only has 16 possible values per character (A-F and 0-9), this means it should be easy to bruteforce I think?

Note: On debug versions if you remove this line from the TSS, then it will load a plaintext non encrypted scenelist.xml. However currently it seem retail versions always expect a SHA1 encrypted Scenelist.xml,



Object catalogues:

upload_2023-7-7_17-38-27.png


There are catalogue files for each territory, SCEE, SCEA, SCEJ, and SCEAsia, These files are also encrypted with the first 8 bytes of their SHA1, what these do is list all the different objects that are available for players. Each object is referenced by UUIDs which are a 35 character code.

It contain lots of information on each object such as URL for the SDAT and ODC, it also has SHA1s for the ODC files. These are SHA1 encrypted too.

In the latest SCEE catalogue we can load there are over 77,000 UUIDS referenced, from clothes, to game launch objects, to scene resources, objects can contain almost anything.


Secure Root URLs:

Next in the TSS there are the "secure content" server urls.

upload_2023-7-7_18-13-49.png


A simple way to explain this is by saying its like there are 2 *main content servers that feed Home. They can run from completely different http servers if you want. These 2 main file servers are critical to booting into online mode.

* There were many other less important http servers used by specific scenes too. Those will be explained later.

The first ones referenced in the TSS which are called "Secure Content" handle more important stuff such as the SceneList.xmls, navigator xmls, Config.sharcs, Object catalogues, localisation xmls, profanity filter bins and more.

Here is an example of what a secure content root folder looked like:

upload_2023-7-7_18-13-9.png



Data Loader URL:

upload_2023-7-7_18-22-22.png


This datacapture server URL collects detailed information on players, telemetry, what object UUIDs they are using, who is close by etc, probably it was used in relation to resolving grief reports, and just general statistic collection too for debugging.


Config Sharc files:

upload_2023-7-7_18-25-19.png


These files are a bit like a live patch to the coredata in USRDIR. One thing to note here that makes these entries unique is that these files are only SHA1 checked, They are NOT SHA1 encrypted.

SHARC files can be encrypted with different keys, but these particular sharc files are unique in that they are encrypted with the "content server key" (more to come on that soon). These sharcs can be dumped with the SDAT Dumper homebrew application. These are the only known SHARC files that can be decrypted like this.


The root of a dumped config sharc archive is like this normally. I will go deeper into the files in these in later posts.

upload_2023-7-7_18-29-45.png



Scene Redirects / Repaths


upload_2023-7-7_18-43-51.png



This is fairly self explanatory, this section acts just like a patch to the SceneList.xml, if a player tries to visit one of those "src" scene "ID"s, they will be redirected to the "dest" ID instead.

Attached some examples of the files mentioned.

More to come soon..
 

Attachments

Last edited:
TSS CONFIGURATION XML (Title Small Storage) Continued.

Here is some more information on the TSS xml. I do not understand some of these entries very well, so maybe others can chime in here with more information.

Admin Object UUID

I dont know a lot about this object currently. I think its probably the UUID for the "in game admin" tool, this was used by moderators to control players.

upload_2023-7-8_11-26-24.png


I might be wrong on this but I think it was this tool below.

. upload_2023-7-8_11-28-16.png



DNS Overrides

These were used to whitelist and blacklist different DNS IPs. Back when Home was live there was lots of hacks that involved using a DNS redirect to replace some files so Sony used this section to try and block that.

upload_2023-7-8_11-30-8.png


Here is an example from a different TSS that shows some hack IPs blacklisted. Uniquez and PHC were websites offering hack services via DNS, some of them were paid services too.

upload_2023-7-8_11-33-24.png




Connections Section (Content Server, Content key, and Muis URL)

This is the second "main" http server that I mentioned in previous post, This was used just to serve the content archives, thumbnails and some small encrypted xmls (These xmls are called SDC for scenes, ODC for objects)

This is what the root of the "content server" webserver should look like.

upload_2023-7-8_11-42-52.png


Note: You could combine the content server folder and the secure root folder into one folder and run them from one web server if you wanted.

This content server key here the most important thing that needed preserving to enable decryption of all the content (SHARC Type SDATs). Without this it would have been basically impossible to get Home back online or preserve any of the content. This key is what is used in SDAT Dumper to allow decryption.

upload_2023-7-8_11-37-10.png


Muis URL

By looking in the EBOOT I found another parameter called "muis" that can be added here to the "connection" section of the TSS. There were no official examples of that but I have tested it and it does work.

upload_2023-7-8_11-46-38.png


AFAIK MUIS stands for "Medius Universe Information Server" but I might be wrong there. More information will come of this later in the thread.



Message Queue

This section is for setting up RabbitMQ service, this is an optional component and something I do not know much about yet. What you can do here is comment out that whole section and Online Mode will work fine without it.

upload_2023-7-8_11-56-51.png



SSFW

This is another service that needs to be emulated for online mode, this is for all the per user information that is saved server side, savedata, owned items, ingame rewards, avatar settings etc.

You can partially go online without this service working, but every time you boot Home you will be treated like a new user, you will need to go through avatar setup each boot, and have no rewards etc. Also many minigames will not work correctly.

This feature was added around version 1.75, before that this information was stored on the PS3 console, but that was obviously not secure. The first time you boot up with SSFW service working it will migrate your local savedata to the server.


upload_2023-7-8_12-2-38.png



Region Configuration section

The rest of the TSS is related to regions, instancing and localisation. This settings were handled by a different XML in earlier versions called regionmap.xml. In later versions it was added to the TSS. None of this needs to be edited to go online and I dont fully understand what each section here does. More research needed.


Globals

This globals section I do not know about. Have not needed to edit this so far.

upload_2023-7-8_12-9-13.png


Age Restrictions

No explanation needed here really. Each territory can have a separate age limit.

upload_2023-7-8_12-12-29.png


Region Map etc

This can be edited to pipe players from different regions into the same instance. For custom servers with low player counts it will probably make sense to put players from all regions into one universe.


upload_2023-7-8_12-15-42.png


Localisation

These section is used to set which language each region uses.

upload_2023-7-8_12-18-6.png



More to come soon, that was just the first server side file somewhat explained.
 
Last edited:
NAVIGATORROOT.XML

This is the second file loaded from the secure root web server. It's much simpler. This sets up the a few things for each supported region.

  • Main navigator xml URL: This xml is what is used to build the main ingame XMB style menu interface.
    upload_2023-7-20_15-7-20.png
  • Platform scripts: These objects handle stuff like startup, migration, loading screen images and more.
    upload_2023-7-20_15-8-56.png
  • Start up objects: Normally just one of these but there is support in 1.8x version for 2 of these.
  • Main: This loads stuff like message of the day and news viewer afaik.
  • Grief Report object: This handles user complaints about other players.
  • Inspect object: This app allows you to click on other players, see what they are wearing etc.

NavigatorRoot.xml example:
Code:
<XML>
  <NAVIGATOR REGION="en-GB">http://secure.cprodts.homeps3.online.scee.com/nav/E/Navigator_en-GB.xml</NAVIGATOR>
  <NAVIGATOR REGION="en-IE">http://secure.cprodts.homeps3.online.scee.com/nav/E/Navigator_en-GB.xml</NAVIGATOR>
  <NAVIGATOR REGION="fr-FR">http://secure.cprodts.homeps3.online.scee.com/nav/E/Navigator_en-GB.xml</NAVIGATOR>
  <NAVIGATOR REGION="de-DE">http://secure.cprodts.homeps3.online.scee.com/nav/E/Navigator_de-DE.xml</NAVIGATOR>
  <NAVIGATOR REGION="it-IT">http://secure.cprodts.homeps3.online.scee.com/nav/E/Navigator_en-GB.xml</NAVIGATOR>
  <NAVIGATOR REGION="es-ES">http://secure.cprodts.homeps3.online.scee.com/nav/E/Navigator_en-GB.xml</NAVIGATOR>
  <NAVIGATOR REGION="en-US">http://secure.cprodts.homeps3.online.scee.com/nav/A/Navigator_SCEA.xml</NAVIGATOR>
  <NAVIGATOR REGION="ja-JP">http://secure.cprodts.homeps3.online.scee.com/nav/J/Navigator_SCEJ.xml</NAVIGATOR>
  <NAVIGATOR REGION="zh-HK">http://secure.cprodts.homeps3.online.scee.com/nav/H/navigator_asia_HK.xml</NAVIGATOR>
  <NAVIGATOR REGION="ko-KR">http://secure.cprodts.homeps3.online.scee.com/nav/H/navigator_asia_KR.xml</NAVIGATOR>
  <NAVIGATOR REGION="zh-TW">http://secure.cprodts.homeps3.online.scee.com/nav/H/Navigator_en-GB.xml</NAVIGATOR><!--navigator_asia_TW.xml-->
  <NAVIGATOR REGION="en-SG">http://secure.cprodts.homeps3.online.scee.com/nav/H/Navigator_en-GB.xml</NAVIGATOR><!--navigator_asia_SG.xml-->
  <NAVIGATOR REGION="en-ID">http://secure.cprodts.homeps3.online.scee.com/nav/H/Navigator_en-GB.xml</NAVIGATOR><!--navigator_asia_ID.xml-->
  <NAVIGATOR REGION="en-MY">http://secure.cprodts.homeps3.online.scee.com/nav/H/Navigator_en-GB.xml</NAVIGATOR><!--navigator_asia_MY.xml-->
  <NAVIGATOR REGION="en-TH">http://secure.cprodts.homeps3.online.scee.com/nav/H/Navigator_en-GB.xml</NAVIGATOR><!--navigator_asia_TH.xml-->
  <PLATFORM_SCRIPTS REGION="en-GB">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="en-GB" default="true">Inspect</TEXT>
<APP type="MINIFOCUS">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
</TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="fr-FR">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="fr-FR" default="true">Inspect</TEXT>
<APP type="MINIFOCUS">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
</TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="de-DE">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="de-DE" default="true">Inspect</TEXT>
<APP type="MINIFOCUS">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
</TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="it-IT">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="it-IT" default="true">Inspect</TEXT>
<APP type="MINIFOCUS">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
</TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="es-ES">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="es-ES" default="true">Inspect</TEXT>
<APP type="MINIFOCUS">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
</TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="en-US">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="en-US" default="true">Inspect</TEXT>
<APP type="MINIFOCUS">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
</TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="ja-JP">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="ja-JP" default="true">Inspect</TEXT>
<APP type="MINIFOCUS">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
</TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="ko-KR">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="ko-KR" default="true">Inspect</TEXT>
<APP type="MINIFOCUS">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
</TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="zh-HK">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="zh-HK" default="true">Inspect</TEXT>
<APP type="MINIFOCUS">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
</TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="zh-TW">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="zh-TW" default="true">檢查</TEXT>
<APP type="MINIAPP">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
  </TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="en-SG">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="en-SG" default="true">Inspect</TEXT>
<APP type="MINIAPP">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
  </TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="en-ID">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="en-ID" default="true">Inspect</TEXT>
<APP type="MINIAPP">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
  </TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="en-MY">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="en-MY" default="true">Inspect</TEXT>
<APP type="MINIAPP">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
  </TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
<PLATFORM_SCRIPTS REGION="en-TH">
<STARTUP>
<STARTUP_OBJECT_1>F14C0D58-A3934173-99C50269-84DCB78C</STARTUP_OBJECT_1>
</STARTUP>
<SCRIPTS>
<MAIN>9D06E741-0CFE4C65-9CC5735E-FBFED901</MAIN>
<GRIEFREPORT>9894B010-C7AD4FF5-8B1A5B78-8DF89506</GRIEFREPORT>
<TARGETMENU>
<MENUITEM addToTop="true">
<TEXT lang="en-TH" default="true">Inspect</TEXT>
<APP type="MINIAPP">3071A0A4-661C4B7E-85D14B7E-ABBFE951</APP>
<TARGET>Person</TARGET>
</MENUITEM>
  </TARGETMENU>
</SCRIPTS>
</PLATFORM_SCRIPTS>
</XML>

In the older versions of Home the NavigatorRoot.xml was even simpler. It only had the top section with the navigator xml URLs, no platform script object UUIDs.



Will add more here when I can.
 
Last edited:
this is awesome! you made a ton of progress. I'm looking forward to hosting my own server.

I'm only mildly familiar with rabbitMQ, but we do use it where I work. If you have any questions about it, I know a few people that know it well and would be willing to help answer it.
 
I will be posting more basic information here when I have time, But right now if you are curious about playing Debug/Retail versions of Playstation home on OPEN SOURCE server software you can already do that now today. We have a test server running and a LOT of content already working, hundreds of scenes! Right now we are looking for devs and testers who are interested in contributing to join us here at Home Laboratory. https://discord.gg/KRVpknsgG4

Home Laboratory is a new discord group dedicated to researching Playstation Home and making all the information open source.
 
Back
Top