This Python script allows for a Pokéball Plus controller to be recognised as a Xbox controller on a PC.
This software has been tested to work on Windows 10 and should work on Windows 11. However, Linux and Mac are untested and experimental due to the nature of the gamepad emulation library. (see here)
To run the script, follow the below steps (assuming you have Python installed)
git clone https://github.com/Pugalotl/PokeController.git
cd PokeController
python -m venv .venv
For Windows:
.venv\Scripts\activate
For Linux / Mac:
source .venv/bin/activate
Then to run the program, enter:
pip install -r requirements.txt
python pbp.py
For most basic usage, simply running the script without any command-line arguments will suffice. However, there are various command-line arguments which can be used to modify the usage of the controller. (Note that these arguments do not require a "-" at the start)
| Command-Line Argument | Usage |
|---|---|
| ? / help | Shows help menu |
| mac / m [] | Sets MAC address of Pokeball |
| calibrate / c [] | Passes calibration arguments and skips calibration |
| timeout / t [] | Sets timeout for connecting to Pokeball (default: 10 seconds) |
| top_button / b [] | Sets which Xbox button is activated with the top button (default: 12 / A [see below]) |
| joystick_button / j [] | Sets which XBox button is activated with the joystick button (default: 13 / B [see below]) |
For modifying the Xbox button mapped to the physical controller, refer to the table below for the number mappings (currently, there is no way to change the joystick mapping):
| Number | Button |
|---|---|
| 1 | D-Pad Up |
| 2 | D-Pad Down |
| 3 | D-Pad Left |
| 4 | D-Pad Right |
| 5 | Start |
| 6 | Back |
| 7 | Left Thumbstick |
| 8 | Right Thumbstick |
| 9 | Left Shoulder |
| 10 | Right Shoulder |
| 11 | Guide |
| 12 | A |
| 13 | B |
| 14 | X |
| 15 | Y |