Widgets

From PS3 Developer wiki
Jump to: navigation, search

About Widgets[edit]

Widgets was introduced in PS3 firmware 2.00 as a way to display dynamic information from web servers in XMB, are very dependant and managed by the Web Browser

The only official widget (included between firmwares 2.00 and 3.00) was called Information Board.

In firmware 3.00 widgets was removed because his initial purpose of displaying dynamic content was superceeded by Life with PlayStation (in firmware 2.40) and later by the "what's news" display mode (in firmware 3.00)

  • Notes
    • PSP introduced widgets in firmware 5.50 (the same information board inherited from PS3). This firmware update for PSP also had some improvements related with the web browser (Internet search for games directly from the XMB, Trend Micro Web Security, and Trend Micro Kids' Safety). See: http://blog.us.playstation.com/2009/04/20/psp-firmware-v550-update/

Information Board[edit]

It was posible to enable or disable Information board by pressing triangle over his icon in network column. The way is built allowed them to add more widgets in case was needed (but never happened, they removed it instead of adding more). For an overview of how was working originally see:

The removal of this widget was made only partially! (are still supported by loading the widget from external devices), so it should be possible to (re)create it, if not create even more widgets to add to the XMB experience of the user.

The widget management was well integrated in the firmware, so there is a list of files/functions/calls related with them:

  • dev_flash/vsh/resource/explore/xmb/category_network.xml (Widget icons loaded by XMB in Network column, widgets related segments was removed in firmware 3.00 by removing his <View id> and his attr)
  • dev_flash/vsh/resource/explore_category_network.rco (widget entry missing from the xml)
  • dev_flash/vsh/resource/explore/icon/widget.png (widget configuration icon, this file exists in all firmwares)
  • dev_flash/vsh/resource/explore/xmb/category_widget.xml (Widgets XMB configuration file, this file exists in all firmwares with some segments disabled)
  • dev_flash/vsh/resource/silk/xai/widgets/informationboard (information board main executable and settings files, removed in 3.00)
  • dev_flash/vsh/resource/xai/extensions.xml (contains: extensions.entry.module=Widget and extensions.entry.plugin=xai_plugin)
  • dev_flash/vsh/resource/xai/widgets.xml (contains: xai.widget.url=/dev_hdd0/widget/npdrm/informationboard)
  • dev_hdd0/widget/npdrm/informationboard (loaded by Query "host_provider_flash" using src="host://localhost/q?path=/dev_hdd0/widget/npdrm&suffix=informationboard&subclass=x-host/widget")

Other settings related with widgets:

  • Information Board QA Server: Off/On (see: QA_Flagging). Debug XMB loads the widget by using the view ID "root_info" and Query "host_provider_flash". Same than retail XMB, but debug needs this setting enabled
  • XMB loads all available widgets by using the function host://localhost/q? and the subclass x-host/widget (see: XMBML Functions), and are displayed using the class x-xmb/xmliboard (but the class x-xmb/xmliboard is not used anymore and has been replaced by x-xmb/xmlnpsignup). See: XMBML Coding

Information Board File Contents[edit]

Firmware files inside path: dev_flash\vsh\resource\silk\xai\widgets\informationboard\

rss.swf[edit]

Main widget window, in shockwave flash format

For a preview of how it works you can drag-and-drop the file to your PC webbrowser... or use a shockwave flash editor/player

Icon.png[edit]

widget icon identifyer

config.xml[edit]

config for rss.swf

Codecode
<?xml version="1.0" encoding="UTF-8"?>
<widget>
	<displayname>Information Board</displayname>
	<identifier>com.playstation.widget.RSSreader</identifier>
	<name>Information Board</name>
	<version>1.0.17</version>
	<closeboxinsetx>0</closeboxinsetx>
	<closeboxinsety>0</closeboxinsety>
	<height>676</height>
	<initialx>640</initialx>
	<initialy>140</initialy>
	<mainhtml>rss.swf</mainhtml>
	<width>451</width>
	<widgetkey>0000</widgetkey>
</widget>

setting.xml[edit]

RSS URL list by Target_ID, for non QA flagged consoles

Codecode
<?xml version="1.0" encoding="UTF-8"?> 
<items>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/a/country-select-uc2.xml">uc2</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/a/country-select-mx2.xml">mx2</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/e/country-select-au3.xml">au3</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/e/country-select-cek.xml">cek</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/e/country-select-cel.xml">cel</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/e/country-select-ru3.xml">ru3</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/as/country-select-kr2.xml">kr2</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/as/country-select-e12.xml">e12</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/as/country-select-tw1.xml">tw1</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/as/country-select-hk5.xml">hk5</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/j/country-select-j1.xml">j1</item>
	<item url="http://infoboard.ww.dl.playstation.net/download/infoboard/j/country-select-j1.xml">tool</item>
</items>

setting_qa.xml[edit]

RSS URL list by Target_ID, for QA flagged consoles

Codecode
<?xml version="1.0" encoding="UTF-8"?> 
<items>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/a/country-select-uc2.xml">uc2</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/a/country-select-mx2.xml">mx2</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/e/country-select-au3.xml">au3</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/e/country-select-cek.xml">cek</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/e/country-select-cel.xml">cel</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/e/country-select-ru3.xml">ru3</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/as/country-select-kr2.xml">kr2</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/as/country-select-e12.xml">e12</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/as/country-select-tw1.xml">tw1</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/as/country-select-hk5.xml">hk5</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/j/country-select-j1.xml">j1</item>
	<item url="http://infoboard.xx.dl.playstation.net/download/infoboard-qa/j/country-select-j1.xml">tool</item>
</items>

strings folder[edit]

1 folder named strings containing 16 files for languages named: informationboard_<language>.xml (e.g: informationboard_german.xml, informationboard_french.xml, etc...). Example from informationboard_english.xml

Codecode
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE locale SYSTEM "locale.dtd">
<locale lang="en" encoding="utf16">
	<str id="msg_information_board_no_network">Notifications about PLAYSTATION® related topics are displayed when connected to a network.                To set not to display, go to [Network] &gt; [Information Board] and select [Do Not Display] from the options menu.</str><!--dtype="C"-->
	<str id="msg_information_board_no_network_list">Notifications about PLAYSTATION® related topics are displayed when connected to a network.&#xa;To set not to display, go to [Network] &gt; [Information Board] and select [Do Not Display] from the options menu.</str><!--dtype="C"-->
</locale>

language.lproj folders[edit]

15 folders for different languages named <language>.lproj (e.g: German.lproj, French.lproj, etc...)... every folder contains a file named InfoPlist.strings with the same data:

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  43 46 42 75 6E 64 6C 65 44 69 73 70 6C 61 79 4E  CFBundleDisplayN
00000010  61 6D 65 20 3D 20 22 49 6E 66 6F 72 6D 61 74 69  ame = "Informati
00000020  6F 6E 20 42 6F 61 72 64 22 3B                    on Board";

mac widgets also use .lproj localization so maybe can use custom language files.