More actions
No edit summary |
No edit summary |
||
(11 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
|title=Vita Homebrew Apps (Plugins) - GameBrew | |title=Vita Homebrew Apps (Plugins) - GameBrew | ||
|title_mode=append | |title_mode=append | ||
|image= | |image=dsmotionvita2.png | ||
|image_alt=DSMotion | |image_alt=DSMotion | ||
}} | }} | ||
{{Infobox Vita Homebrews | {{Infobox Vita Homebrews | ||
|title=DSMotion | |title=DSMotion | ||
|image= | |image=dsmotionvita2.png | ||
|description=Enabled motion sensors on DS3/DS4. | |description=Enabled motion sensors on DS3/DS4. | ||
|author=OperationNT | |author=OperationNT | ||
Line 20: | Line 20: | ||
DSMotion is a HENkaku plugin which adds motion control support for PlayStation TV with DualShock controllers. | DSMotion is a HENkaku plugin which adds motion control support for PlayStation TV with DualShock controllers. | ||
It can also be used on a real PS Vita with [[Ds3vita]] or [[Ds4vita]] plugins to replace the console internal motion sensors by those from the controller (however, it doesn't work well with ds3vita, see limitations section). | It can also be used on a real PS Vita with [[Ds3vita|ds3vita]] or [[Ds4vita|ds4vita]] plugins to replace the console internal motion sensors by those from the controller (however, it doesn't work well with ds3vita, see limitations section). | ||
There are 2 plugins: | There are 2 plugins: | ||
Line 27: | Line 27: | ||
==Installation== | ==Installation== | ||
In order to activate those plugins features, you must edit your ux0:tai/config.txt (or ur0 | In order to activate those plugins features, you must edit your ux0:tai/config.txt (or ur0 if you store the plugin there) | ||
*KERNEL | *KERNEL | ||
Line 50: | Line 50: | ||
=== Limitations === | === 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. | * 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 [[ | * It doesn't work well on classic PS Vita with [[Ds3vita|ds3vita]] 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). | * 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). | ||
* Computed orientation is wrong when the controller is turned upside down (it could happen in a game when you try to look too verticaly high). | * Computed orientation is wrong when the controller is turned upside down (it could happen in a game when you try to look too verticaly high). | ||
Line 81: | Line 81: | ||
==Credits == | ==Credits == | ||
* xerpi for his [[ | * xerpi for his [[Ds3vita|ds3vita]] and [[Ds4vita|ds4vita]] plugins source code which helped me a lot to understand BlueTooth communication. | ||
* TheFlow for his [[ | * 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 [[ | * YifanLu for [[HENkaku Vita|HENkaku]] which makes everything possible (except coffee) on this device. | ||
== External links == | == External links == |
Latest revision as of 12:11, 10 Ocak 2023
DSMotion | |
---|---|
General | |
Author | OperationNT |
Type | Plugins |
Version | 1.2 |
License | Mixed |
Last Updated | 2017/08/25 |
Links | |
Download | |
Website | |
Source | |
DSMotion is a HENkaku plugin which adds motion control support for PlayStation TV with DualShock controllers.
It can also be used on a real PS Vita with ds3vita or ds4vita plugins to replace the console internal motion sensors by those from the controller (however, it doesn't work well with ds3vita, see limitations section).
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 features, you must edit your ux0:tai/config.txt (or ur0 if you store the plugin there)
*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.
User guide
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.
- PCSB00360 - Rayman Legends - Murfy can now perform actions which requires motion control.
- PCSB00031 - Virtua Tennis 4 - "Match VR" mode could feel it has inverted horizontal controls (read limitations).
- PCSF00024 - Gravity Rush - "No gravity" mode could feel it inverted horizontal controls (read limitations).
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 ds3vita 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).
- Computed orientation is wrong when the controller is turned upside down (it could happen in a game when you try to look too verticaly high).
- Currently, gyroscope data is not exploited during orientation compute (due to drift problems I had when I tried), feel free to give help if you have some maths/IMU skills.
- Some games could be perceived like they have inverted horizontal controls (specially during FPS and TPS viewpoints) but it is a wrong impression (on a real PS Vita, tilting the device on the left also makes the view goes to the right and vice versa).
Changelog
v1.2
User plugin changes:
- Partially fix device orientation computation: highly improve camera stability and fix some inverted axis issues.
Documentation changes:
- New limitation discovered: don't turn your controller upside down or the orientation computation will go wrong.
- Explanation about some perceived inverted axis issues: please try to test the game behavior on a real PS Vita before reporting issues on this subject.
v1.1
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 control issues.
v1.0
- First Release.
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.