PSP Homebrew

Posted on
PL

PSPSDK provides psp-gcc. There’s also LuaPlayer, which has some issues being run as a signed binary on OFW. In this situation it’s best to either sign a HEN, install CFW or just stick with MinPSPW’s psp-gcc (which is actually really easy to use, especially with oslib_mod)


Development Tools

  • PSPSDK (c.f. MinPSPW) provides psp-gcc.
  • LuaPlayer and derivatives (built with PSPSDK)

Loading Homebrew

  • CFW
  • Manual signing for EBOOTs using leaked private key allows running on OFW.
    • Using the signing method (A) restricts you to EBOOTs under 4MB, and (B) requires all code to be user-mode. This breaks a lot of lua engines and a lot of assumptions that were valid for binaries running on CFW where this restriction does not exist.

Lua engines for PSP

  • Luaplayer 0.20: the original. Can’t be signed since the binary is over 4MB. Hence, can’t test on OFW.
  • Luaplayer Euphoria: no wireless support.
  • Luaplayer Plus: a merger of Euphoria and LPHM. Calls pspsdkinetinit, a kernel mode call, which always fails in signed/OFW mode. Usermode replacement exists, this could be patched.
  • Luaplayer HMv1 7: Crashes on startup with error 80020148. I assume this is some OFW thing
  • Luaplayer HMv2 0.4: Crashes seemingly at random with the error code “(null)”. Seems to be caused by accessing keypresses.
  • Luaplayer HMv3 (aka LuaMin): Random keys are returned, and requesting the raw key state causes the PSP to shut down. I assume HMv2+ use a kernel-level call to determine keypresses. Try swap sceCtrlReadBufferPositive with sceCtrlPeekBufferPositive as per PSP-SSH source.
  • XtremeLuaPlayer: no wireless support.
  • PGELua: the wireless samples crash. Assume OFW related
  • LuaGE v2: all mirrors unavaliable