Files
MoHadiShibli--Control4Free/docs/playing.md
T
MoHadiShibli 200e2bfc0b Show who's signed in on each controller, and an Invite QR code
When the PS4 reports a user signed in on a controller, the service asks for
the user's name and adds it to the status as `user`. The PS4 may not have
finished signing the user in by then, so a failed look-up is retried every
half second for five seconds. The tile shows the name in place of
"Controller N" (the ring keeps the number), and the controller screen reads
"Controller 1 · Alex". Names are kept out of the log, since people post logs
in bug reports, and they go out cleaned: quotes and backslashes escaped, and
control characters or anything that isn't valid UTF-8 replaced, because a
browser drops the whole WebSocket on a text frame that isn't valid UTF-8.

An Invite panel, opened from a button next to the settings or from the menu,
shows the page's address as a QR code for friends to scan. The console makes
the code with the QR encoder the app already ships, from the address the page
reached it on, and sends the module grid; the page draws it as SVG, so it still
needs no libraries.

The gamepad picker's tooltip had the same "Controller 1 · Controller 1" doubling
the controller screen had; it now names the user too.
2026-10-06 01:05:33 +03:00

6.5 KiB

Playing

Connect a controller

  1. Make sure Control4Free is running: the app on the PS4 says Running and shows the address.
  2. On a phone, tablet or computer on the same network, open that address, for example http://192.168.1.20:4264, or scan the app's QR code.
  3. Pick a free controller. The PS4 shows its "Who's using this controller?" screen.
  4. Choose a user with the D-pad (Left and Right) and press Cross, or follow the guest option.

Connect one controller at a time, and finish the user screen before the next person picks theirs. Don't press PS while that screen is up: it cancels the choice. PS works normally once you're signed in.

The home screen shows all four controllers live:

State Meaning
Free Nobody is using it. Pick it to play.
Connecting The PS4 is setting it up. Takes a moment.
Choose user on PS4 Waiting for someone to pick a user on the PS4's screen.
Connected Signed in and ready. The tile shows the user's name.
Paused Its phone stopped sending input, for example because the screen locked.
This device / +1 device Who's driving it: this browser, or other ones.

Inviting someone

Press the QR code button at the top of the home screen, or ☰ → Invite someone on the controller screen. The page shows its own address as a QR code: a friend scans it with their phone's camera and gets the controller page, as long as they're on the same network as the PS4. Tap outside the panel to close it.

Touch controls

The controller screen is a DualShock 4 laid out for your screen, best held sideways:

  • Sticks follow your thumb. With Floating sticks on, a stick starts wherever your thumb lands.
  • The touchpad takes one or two fingers. A quick tap clicks it; hold still to keep it pressed.
  • L3 and R3: tap a stick, then touch it again straight away to press it in. If you'd rather have separate buttons, turn off Double-tap a stick for L3 / R3.
  • PS, Share and Options are real controller buttons, so PS takes you to the PS4's home screen.

Your own layout

Open the menu (☰) and choose Edit the button layout. Drag a button to move it, change its size, or hide it. Reset to default puts everything back; tap it twice, so a stray tap can't throw a layout away. Each device keeps its own layout, separately for portrait and landscape.

Keyboard

On a computer the keyboard drives the controller open on the page. Change any key in All settings → Keyboard, and turn on Show keyboard keys to see them on the buttons.

Controller Key Controller Key
Cross Space L1 / R1 Q / E
Circle Esc L2 / R2 1 / 3
Square Backspace L3 / R3 Z / C
Triangle Enter Options O
D-pad I J K L Share V
Left stick W A S D PS P
Right stick Arrow keys Touchpad click U
Touchpad corners T Y G H

Gamepads

Connect an Xbox, DualSense, Switch Pro or other gamepad to the phone or computer and press a button on it. It appears under Gamepads on this device:

  • a gamepad that turns up while a controller is open on the page drives that controller;
  • otherwise, pick the controller each gamepad plays as. One computer can run all four controllers this way;
  • a row lights up while you use its gamepad, so you can tell which is which.

Keep the page's window in front: browsers only read gamepads for the active window.

"This browser only allows gamepads on secure pages." Some browsers only offer gamepads on https pages, and the console's page is plain http. Save the page to the device (Save page as on a computer), open the saved file, and enter the console's address in its connection box. Touch and the keyboard work either way.

Settings

☰ → All settings has this device's settings. They stay in this browser.

Setting What it does
Keep the screen on The phone's screen doesn't turn off while the page drives a controller.
Vibration The phone buzzes when the game rumbles, and briefly when you press a button (Android).
Floating sticks A stick starts wherever your thumb lands in its area.
Tap the touchpad to click A quick tap presses the touchpad button.
Double-tap a stick for L3 / R3 Off: L3 and R3 get their own buttons.
Show keyboard keys Labels the buttons with their keyboard keys.

The bottom of the home screen shows the version, and the round trip to the console in milliseconds: a quick way to see whether your Wi-Fi is the slow part.

On your phone's home screen

Add the page to your home screen and it opens like an app:

  • iPhone and iPad (Safari): Share → Add to Home Screen. It opens without Safari's bars.
  • Android (Chrome): ⋮ → Add to Home screen. Because the page is plain http, it opens in a Chrome tab.

The icon only works while Control4Free is running, and it remembers the PS4's address: reserve that address for the PS4 in your router so it doesn't change.

Full screen: the ⛶ button in the corner. Safari on iPhone doesn't let pages go full screen, so there it explains how to use the home screen instead.

Rumble and light bar

When a game rumbles the controller, the device driving it feels it:

  • an Android phone buzzes, with Vibration turned on in the settings. Safari on iPhone doesn't let pages vibrate the phone;
  • a gamepad playing as that controller rumbles too, though not every controller supports vibration in the browser. When the browser knows it can't, the gamepad's row says no rumble in this browser.

A gamepad's own light bar stays as it is: browsers don't let pages change it.

The page also glows in the controller's light-bar colour: the player colour the PS4 gives each user, or whatever colour the game sets. Until one is set, a controller shows its own colour (1 blue, 2 red, 3 green, 4 pink).

Leaving

  • ☰ → Disconnect controller removes it from the PS4 straight away.
  • Closing the page or locking the phone releases its buttons at once. After 3 seconds without input the controller goes idle, and after 15 seconds it's removed. Come back within 15 seconds and you keep it.
  • ☰ → Stop Control4Free stops the service and disconnects everyone. It's refused while someone else is still playing; the app on the PS4 can always stop it.

Rest mode

Rest mode signs every user out, so controllers have to be picked again after the PS4 wakes up, as real ones do. Control4Free itself carries on: reopen the page and pick your controller.