PS VITA / PS TV DSMotion [Plugin] - DualShock 3 & 4 Motion Control Support by OperationNT

PlayStation TV (PSTV) user's got a new plugin DSMotion (two variants available) which aims to add Motion Control Support for both the DualShock 3 k 4 controllers, which is essential in completing / playing some games as these games were blacklisted from playing the PSTV originally. There are some limitations but a step forward especially for games that require some motion controls as the titles outlined in the release note.

dualshock3-4comp.png

  • DSMotion
    Henkaku plugins which adds motion control support for PlayStation TV with DualShock controllers​

    There are 2 plugins:
    • Kernel plugin dsmotion.skprx: it hooks BlueTooth calls to catch DualShock controller packets and exposes user services to get the intercepted motion data
    • User plugin dsmotion.suprx: it calls the kernel plugin services and reinterprets the given data for SceMotion functions return

    Installation

    In order to activate those plugins featues, you must edit your ux0:tai/config.txt file:
    *KERNEL
    ux0:tai/dsmotion.skprx

    *TITLEID00
    ux0:tai/dsmotion.suprx
    Replace TITLEID00 by a title identifier which needs motion control or by ALL to affect all titles.

    Compatibility

    • NPXS10007 - Welcome Park - The skate board game is playable.
    • PCSF00214 - Tearaway - Introduction which asks to shake the PS Vita can now be passed by shaking the controller.
    • PCSF00349 - Flower - The game is playable.
    • PCSF00007 - WipEout 2048 - The game can be played with motion commands option.
    • PCSA00029 - Uncharted Golden Abyss - River game at chapter 12 and other balance mini-games can be completed.
    • PCSB00031 - Virtua Tennis 4 - "Match VR" mode has inverted horizontal controls.
    • PCSF00024 - Gravity Rush - "No gravity" mode has inverted horizontal controls.

    Limitations

    • If a DualShock 3 controller is used, it must not be directly plugged with USB on the PS TV otherwise, signal will be sent through USB instead of BlueTooth (and it won't be catched): use an external charger for the controller.
    • It doesn't work well on classic PS Vita with "ds4vita": for an unknown reason, motion control samples seems to be too much spaced over time.
    • It hooks documented "SceMotion" user functions instead of undocumented "SceMotionDev" kernel functions: if we could understand those kernel functions, we could have more compatibility with a single kernel plugin (no more need for a user plugin).
    • Device orientation quaternion and rotation matrix are not currently accurate: they give unstable result and they don't support full orientation, feel free to give help if you have some maths/IMU skills!
    • Some games (specially those with inverted horizontal controls) call functions to activate the PS Vita magnetometer: DualShock controllers don't have this feature.

    Credits

    • xerpi for his "ds3vita" and "ds4vita" plugins source code which helped me a lot to understand BlueTooth communication!
    • TheFlow for his "VitaShell" source code which helped me to understand how to export functions from kernel plugin and call them in user plugin
    • YifanLu for Henkaku which makes everything possible (except coffee) on this device!

    Update: Version 1.1
    Vertical control issue fix


    User plugin changes:

    • Change cross product way for device quaternion to fix some vertical inversion
    • Remove useless hook on "sceMotionGetBasicOrientation": this function always returns (0,1,0) even on PS Vita

    Documentation changes:

    • Compatibility list updated (special thanks to "stranno" who made a lot of tests!)
    • Limitation on signed titles removed: after some tests on original titles, it works fine
    • New limitation discovered: apparently, PS Vita can activate a magnometer which is used specially by games with horizontal conrol issues


Latest version
(download) & Source:
https://github.com/OperationNT414C/DSMotion/releases
 
Last edited:

Similar threads

Featured content

Trending content

Back
Top