mirror of
https://github.com/brunocprado/PS5JB-JustDance-Control.git
synced 2026-10-17 18:00:23 +02:00
4.7 KiB
4.7 KiB
PS5JustDance
Play Just Dance (2014 to 2022, PS4 versions running on PS5) on a jailbroken PS5 using Nintendo Switch Joy-Cons or any Smartphone, without needing Ubisoft servers, PSN, or a PlayStation Camera.
Built on the same freestanding stub injection architecture as PS5Instrumentalizer.
How It Works
All PS4 editions of Just Dance (Just Dance 2014 through Just Dance 2022) include native, 100% offline support for up to 4 PlayStation Move controllers (libSceMove.sprx), scoring dance moves purely from the 3-axis accelerometer and 3-axis gyroscope (no PlayStation Camera required).
PS5JustDance.elf runs in the background on the PS5:
- Automatically detects any Just Dance edition (
CUSA*) when launched. - Injects a freestanding, position-independent stub (
build/stub.bin) into the game process and hooks bothlibSceMove(sceMoveInit,sceMoveOpen,sceMoveGetDeviceInfo,sceMoveReadStateLatest,sceMoveReadStateRecent,sceMoveSetLightSphere,sceMoveSetVibration) andlibScePad(scePadReadState,scePadRead) for full in-game UI menu navigation. - Emulates up to 4 PlayStation Move controllers in real time from 3 simultaneous input sources:
- Switch Joy-Con via Python Bridge (
tools/joycon_bridge.py): reads 1 to 4 Joy-Cons (Left or Right) over Bluetooth HID, converts IMU axes to the PS Move coordinate frame, maps the analog stick to D-Pad navigation, and streams 36-byteJDM1UDP packets (port9052). - Switch Joy-Con or Smartphone via BetterJoy / DSU (Cemuhook): natively compatible with the
DSUS/DSUCv1001 protocol (Windows/Linux/Android/iOS). - Smartphone via Built-in Web UI (
http://PS5_IP:8080): embedded HTTP server inside the PS5 payload featuring a bilingual (EN / PT-BR) mobile controller UI with live accelerometer readout, sensitivity control, dance simulation pad, and full D-Pad/PlayStation menu navigation buttons.
- Switch Joy-Con via Python Bridge (
How to Use on PS5
- Enable your PS5 jailbreak and etaHEN.
- Send the payload to the console:
- Copy
PS5JustDance.elfto/data/etaHEN/plugins/and load it via etaHEN Toolbox, or - Send it directly to the ELF loader:
nc -q0 PS5_IP 9021 < PS5JustDance.elf
- Copy
- Launch any Just Dance title (PS4 version running on PS5). An on-screen notification will confirm: "PS5JustDance: Joy-Con / Phone Move support active!".
Connecting Your Controllers
Option 1: Nintendo Switch Joy-Con with joycon_bridge.py (Windows / Linux / macOS)
- Pair your Joy-Con(s) to your computer via Bluetooth.
- Install
hidapiand run the bridge pointing to your PS5 IP:pip install hidapi python3 tools/joycon_bridge.py --ps5-ip 192.168.1.100 - On the Just Dance controller selection screen, choose PS Move and press ZR (Right Joy-Con) or ZL (Left Joy-Con) to join!
| Joy-Con Button (Right / Left) | Emulated PS Move / Pad Button | Function in Just Dance |
|---|---|---|
ZR / ZL |
T Trigger + Move |
Join lobby / Confirm PS Move |
R / L / Home / Capture |
Move Button |
Action / Special |
Analog Stick |
D-Pad Up / Down / Left / Right |
Navigate song list & UI menus |
A / Down |
Cross (X) + Move |
Confirm in menus |
B / Left |
Circle (O) |
Back in menus |
X / Up |
Triangle |
Toggle option / Sort |
Y / Right |
Square |
Favorite / Search |
+ / - |
START / OPTIONS |
Pause song |
Option 2: Joy-Con or Smartphone via BetterJoy / DSU (Cemuhook)
- On PC (BetterJoy / joycond-cemuhook): In
/data/PS5JustDance/config.inion the PS5, setdsu_server_ip = YOUR_PC_IP. The PS5 will automatically subscribe to port26760and map up to 4 Joy-Cons. - On Smartphone (MotionSource / DSUController): Point the app's UDP output to
PS5_IPon port9052.
Option 3: Smartphone via Built-in Web UI (http://PS5_IP:8080)
- Open
http://PS5_IP:8080in your phone's browser. - Use the top-right PT-BR / EN button to switch the UI language at any time.
- Select Player 1..4 and tap ENABLE SENSORS.
- Unlocking Accelerometer over HTTP:
- Mobile browsers block
DeviceMotionEventon plainhttp://origins by default. - On Android (Chrome): Open
chrome://flags/#unsafely-treat-insecure-origin-as-secure, addhttp://PS5_IP:8080, set it to Enabled, and relaunch Chrome.
- Mobile browsers block
Building and Testing
export PS5_PAYLOAD_SDK=/opt/ps5-payload-sdk # or automatically uses ../.deps/sdk/ps5-payload-sdk
make # builds build/stub.bin and PS5JustDance.elf
make test # runs host unit tests (protocols, freestanding stub, and config/SFO parser)
make clean
License
Licensed under the GNU Lesser General Public License v2.1 (see LICENSE.txt).