PS3 Mysis releases Source Code of Custom xai plugin w/ Explanations

Discussion in 'PS3 News' started by STLcardsWS, Jan 26, 2017.

By STLcardsWS on Jan 26, 2017 at 12:15 AM
  1. 9,312

    STLcardsWS Administrator

    Sep 18, 2014
    Likes Received:
    Trophy Points:
    It was back in January of 2016 we seen developer @mysis release CFW Setting v0.1, the devs Custom xai plugin , now the dev has decided to release the source code and explained some of it functions , to help other developer's who may be able to utilize this XMB Modification that brought new functionality to PS3 (CFW) XMB. What will the development community do with this latest source code release from @mysis.


    • Hi there,

      Due to some request and the lack of time I currently have, I hereby release the source of my custom xai_plugin and I will also explain on code side whats needed to create your own xai_plugin that can be fed with commands from XMB.

      The minimum amount of code needed is provided as a reboot template, but it does not contain the required xmb xml modification to call.

      When you create your prx it will have some entry point:
      It all comes down into specifying two interfaces:
      (Continue to next tab -->)

    • =Main module interface=

      We first have to tell that our prx module is having an interface for VSH:
      The view is provided when our entry function is called.
      1 is the main exporting interface of our module.
      The functions we provide are basically: init, start, stop, exit functionalities.

      In our init function, we then specify the second interface.

    • =Plugin interface=

      Now comes the most interesting part. Modules can register different kinds of interfaces.
      We can also register our own interfaces!
      Common interfaces i have encountered and documented:

      • 1 - the main talking interface
      • 'XMM0' - for overall XMB module plugin information and control (load/unload/...)
      • 'XMB2' - for XMB UI interaction
      • 'MOD0' - for your own module behavior (LoadOpinion)
      • 'CAT0' - for XMB category behavior
      • 'Z'
      • 'ACT0' - for XMB module action communication
      So, we need to set up another interface, that is the 'ACT0' one. This can have only 1 function handler, which will be responsible for handling the commands from the XMB xml. When XMB tries to execute a command from xml it basically loads the module, checks if ACT0 is registered and then calls the handler from it. This is how we register it:
      Afterwards you just will just have to parse within our handler whatever data is sent:
      void xai_plugin_interface_action::xai_plugin_action(const char * action)
          else if(strcmp(action,"hard_reboot_action")==0)

    • =XMB xml=

      When you modify the XMB xml files and add your view and table you use:

      <Pair key="module_name"><String>xai_plugin</String></Pair>
      <Pair key="module_action"><String>soft_reboot_action</String></Pair>
      Sony and other people for example in a similar fashion use this with the webbrowser_plugin and provide a URL as module_action.

      Here you can find more information about the other plugins:

      Template code, containing soft and hard reboot functionality:

      My xai_plugin source:

      I apologize for the badly written code, but sometimes the compiler did not produce the code/data i needed :)


    Custom xai-plugin Source Code:
    Last edited: Jan 26, 2017


Discussion in 'PS3 News' started by STLcardsWS, Jan 26, 2017.

Share This Page