EXO Input Simulation
The console never sees your mouse or keyboard. It sees a controller. This page explains how the EXO presents itself to your Xbox, PS5 or PC, what "simulated input" means, and the path your input takes on the way.
What "simulated input" means
When you move your mouse, no real stick moves. The EXO works out where a stick would be pushed to give the same result, and then reports that stick position to the console exactly as a controller does. That report is the simulated input. Button presses work the same way: a key or mouse button becomes the controller button it's mapped to.
Scripts and Smart Actions use the same route. A scripted press or stick move is just one more input the EXO adds to the controller report before it's sent.
The two halves of the EXO
| Part | Job |
|---|---|
| The Core | Reads your devices, runs translation, mappings and scripts, and talks to the app |
| The output stage | A dedicated chip running ZeroStick's own controller firmware. It plugs into the console and acts as the controller the console sees |
The Core sends a compact controller frame to the output stage over a direct serial link. The output stage turns each frame into the controller report the console expects.
How it presents itself, by console
The Connection Method on a config's Device screen decides what the output stage presents itself as. When you activate a config for a different console, the output stage switches by itself. It saves the new mode and restarts, which takes about a second. You don't need to do anything.
| Connection Method | The console sees | Console authentication |
|---|---|---|
| PS5 | A P5General controller | The P5General dongle (included in the PS5 box) |
| Xbox One / Series | A wired Xbox controller | Your genuine wired Xbox controller, plugged into the EXO's controller port |
| PC | An Xbox 360 controller (XInput), plus a keyboard and mouse | None needed |

Why the console needs a real accessory
Xbox and PS5 consoles check that a controller is licensed before they accept it. This is called authentication. The console sends a challenge, and only a licensed device can answer it. The EXO doesn't answer these challenges itself. It passes the console's challenge to a real licensed device, called the auth donor, and passes that device's answer back. On PS5 the donor is the P5General dongle. On Xbox it's a genuine wired Xbox controller.
On Xbox, the donor controller does double duty: it's also a controller you can play with. Its inputs go through the EXO, so your mappings and scripts still apply. A headset plugged into its audio jack works too. The first time you connect a Series X|S controller, the console may take a few minutes to accept it; it retries by itself.
For setup steps, see Gaming on Xbox, Gaming on PS5 and Gaming on PC.
What the console gets
- Sticks and buttons: everything your config produces.
- Analog triggers on PS5: full 0–255 travel, so partial trigger pulls work.
- Light bar: your config's colour lights your DualSense or DualShock 4.
Passthrough Mode
Passthrough Mode (on HOME) skips your config and passes your real keyboard and mouse straight through, as if they were plugged directly into the console or PC. Use it to get around menus. On a PC config the switch is instant. Otherwise the output stage restarts in its other mode, which takes about a second. You can enter and leave it with a button or key combo, which you set in Global Settings → General. The combo itself isn't sent to the game.
The latency path, in plain words
- Your mouse, keyboard or controller sends an update to the EXO over USB.
- The Core's engine runs once every millisecond. It picks up the newest input, translates it, applies mappings and scripts, and produces one controller state.
- The Core sends that state to the output stage over the serial link.
- The output stage reports it to the console at your chosen update rate (125–1000 Hz, default 250 Hz).
- The game reads the controller, usually once per frame, and draws the result.
Measured on development hardware:
| What | Measured |
|---|---|
| Engine at 1000 Hz with 512 Smart Actions armed | 0 skipped ticks in 4.3 million; 0.135 ms of work per 1 ms tick |
| Core to output stage link | 250 frames per second, 0 write errors |
| Output stage changing console mode | About 1 s (restart) |
Turning it all off
The Adapter is sending inputs switch on the Device screen stops the EXO from sending anything at once. Tournament Mode (Global Settings → General) turns off scripts, Smart Actions, AI and aim help, and keeps only your own mapped inputs. See Settings reference.
