Skip to content

For Developers

MoHadiShibli edited this page Oct 2, 2026 · 1 revision

For Developers

How it works

RemotePad NG is a GoldHEN game plugin (a PRX written in C).

  • It hooks the game's controller and user functions (scePadOpen, scePadRead, the login user list, and so on), so the game sees up to four extra controllers and players.
  • Inside the game, it runs a small web server (Mongoose) on port 4263. The server serves the controller page and a WebSocket for the controls.
  • The page (client/index.html) is a single file with no dependencies, packed into the plugin at build time.

Building

With Docker and the xfangfang/goldhen_plugin image, which has the OpenOrbis toolchain and LLVM:

git clone --recursive https://github.com/MoHadiShibli/remotePad-ng
cd remotePad-ng
docker run --rm -v "$PWD:/src" -w /src xfangfang/goldhen_plugin:latest \
  sh -c "cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build"

The plugin is build/remote_pad.prx. Add -DDEVICE_IP=<ps4-ip> to upload it to the PS4 after building.

To try changes to the page without rebuilding, open client/index.html from disk and enter the console's address, or add ?host=<ps4-ip>:4263 to the URL. A page opened from a file can play but can't change the console's settings.

Your own client

Anything that can open a WebSocket can drive the pads: an app, a script, PSP homebrew. The protocol is documented in docs/protocol.md:

  • send the state with u;
  • pick pads with claim;
  • receive vibration, light bar and live status messages.

Contributing

See CONTRIBUTING.md for code style and how to send changes.

Much of RemotePad NG was written with AI help (Claude Opus 5.5), so reviews are especially welcome. If you spot AI slop, like dead code, wrong assumptions or needless complexity, please open an issue or a pull request.

Clone this wiki locally