Author Topic: psp2ctrl.exe hidden commands  (Read 10175 times)

Offline SilicaAndPina

  • Hot Pockets
  • End User
  • *****
  • Posts: 38
  • Its probably a wiccan thing..
    • View Profile
psp2ctrl.exe hidden commands
« on: April 23, 2020, 08:50:26 AM »
i decided to take a look inside psp2ctrl to try work out what all the hidden commands are,
like the psp2ctrl set-setting command i mentioned in earlier posts.

turns out psp2ctrl.exe is acturally a .NET executable. SN Systems seems to have made it pretty modular with "PlugIns"
Sony even provides src for some of it inside the
Code: [Select]
%SCE_ROOT_DIR%\PSP2\Tools\Target Manager Server\samples\tmapi\psp2cui\psp2ctrlfolder, however this src is incomplete (doesnt even contain "HelpPlugin.cs")

but because this is .NET it is Very easy to decompile using tools such as DNSpy

After doing this we can easily see all classes!
so i had a look at the HelpPlugIn class thinking maybe i could just
get all the hidden stuff to show by patching something in there..
and then i saw something.. quite interesting:

It checks if arg1 to the help command is "internal" then gets a list from true as an argument to PlugInStore.PlugIns

So lets have a look what happens when you pass "true" to arg1 of PlugInStore.PlugIns

Hm arg1 is a boolean called "IncludeInternal" and if its set
then it removes all IPlugin with "Hidden" set to true from the list of plugins..

So, what does this mean? well basically it means that we dont even need to patch anything.
Code: [Select]
psp2ctrl help internalwill list ALL the commands. and give a breif description of what they do.

here is a list of all the extra commands that appear when you pass the "internal" argument to psp2ctrl help

Code: [Select]
  breakpoints             {pid|name} [devkit]                 

                          List breakpoints for processes on the DevKit.

  cache-size              size [devkit ...]                   

                          Set the capacity of the DevKit(s) console output cache.  If size is less than the minimum cache size the cache will be set to it's minimum

  coredump-object-summary file                                 

                          Disaplays a summary of process objects in the corefile.


                          Get the file serving options.


                          Get the logging level used by TM.

  get-setting             setting [devkit]                     

                          Get the value of the DevKit registry setting.

  get-swinfo              key [devkit]                         

                          Get the value of the DevKit software info setting.

  kernelthreads           [devkit]                             

                          List the kernel threads running on the DevKit.

  monitor                 hwid [hwid] ...                     

                          Monitor notifications from the specified DevKit(s).

  mv                      src dest                             

                          Rename the specified file or directory from the file system of the default DevKit.

  netlog                  file                                 

                          Start logging DevKit comms to file.

  pmemory                 {pid|name} address size [devkit]     

                          Dump process memory for the process running on the DevKit.

  pobjects-summary        {pid|name} [devkit]                 

                          Dumps the kernel objects owned by the process.


                          Poll the default DevKit for it's power consumption.

  presume                 {pid|name} [devkit]                 

                          Revive the specified process from the Application Suspended state.

  protocol-info           protocol [devkit]                   

                          Display information about the specified protocol.

  protocol-register       protocol [devkit]                   

                          Register the specified protocol.

  psuspend                {pid|name} [devkit]                 

                          Put the specified process into the Application Suspended state.

  recover-cp              file [devkit]                       

                          Updates the firmware of the DevKit with the cpupdater.bin file specified.

  set-logging-level       level                               

                          Set the logging level used by TM.

  set-setting             string|integer setting value [devkit]

                          Set the value of the DevKit registry setting.  Use "" for an empty string value.

  settings                [devkit]                             

                          Get the values of the DevKit registry.

  settings-xml            file [devkit]                       

                          Get the settings XML file of the DevKit.

  stat                    path                                 

                          Stat the specified file.

  swinfo                  [devkit]                             

                          Get the values of the DevKit software info.

  threadlist              [devkit]                             

                          List threads running on the DevKit.

  touch                   [path]                               

                          Touch the specified file.

  update-cp               file [devkit]                       

                          Updates the firmware (only) of the DevKit with the PUP file specified.


                          Poll the default DevKit for it's voltages.

as you can see the psp2ctrl set-setting command that i mention in earlier posts is listed here.

anyway- this is nice to know. i bet that extra "internal" argument works on other platforms SDK's too.
perhaps orbisctrl help internal exists?

Blessed Be~
« Last Edit: April 23, 2020, 09:15:55 AM by SilicaAndPina »

Offline TypeSafe

  • End User
  • *
  • Posts: 1
    • View Profile
Re: psp2ctrl.exe hidden commands
« Reply #1 on: November 08, 2020, 03:11:41 PM »
but because this is .NET it is Very easy to decompile using tools such as DNSpy
It is even easier than that. With .NET online decompiler you can decompiler it just by dragging and dropping.