AI prompts
base on ControllerService [![Download Latest](https://img.shields.io/github/downloads/Valkirie/HandheldCompanion/latest/total?style=flat-square&color=orange&label=Download%20Latest)](https://github.com/Valkirie/HandheldCompanion/releases/latest)
[![discord](https://img.shields.io/discord/1054321983166365726?color=orange&label=Discord&logo=discord&logoColor=white&style=flat-square)](https://discord.gg/znHuywFz5M)
[![YouTube Channel](https://img.shields.io/youtube/channel/subscribers/UCFLra6QVYJYeaWp2mGaq3Og?style=flat-square&color=orange&label=YouTube%20Channel&logo=youtube&logoColor=white)](https://www.youtube.com/channel/UCFLra6QVYJYeaWp2mGaq3Og)
[![Donations](https://img.shields.io/badge/PayPal-00457C?style=flat-square&color=orange&label=Donations&logo=paypal&logoColor=white)](https://www.paypal.com/paypalme/BenjaminLSR)
[![Support me on Patreon](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Dhandheldcompanion%26type%3Dpatrons&style=flat-square&color=orange&label=Patreon&logoColor=white)](https://patreon.com/handheldcompanion)
# Handheld Companion
A touch optimized GUI to increase your handheld gaming computer experience. Features include:
- Motion control a.k.a. gyro control through a device's inertial measurement unit (IMU, Gyroscope and Accelerometer) or external sensor. Settings availible for racing, 1st and 3rd person gaming and emulator support.
- Quicktools overlay, with easy access to various settings and informatio such as TDP, Auto TDP, GPU, Screen Hz, Framelimiter, Resolution, Brightness, Volume, Powermode control and battery level.
- Virtual controller simulation of [Microsoft Xbox 360 Controller](https://en.wikipedia.org/wiki/Xbox_360_controller) and [Sony DualShock 4 Controller](https://en.wikipedia.org/wiki/DualShock#DualShock_4).
- Profile settings system, automatic detection of active game and applying of settings.
- Gamepad remapping to mouse and keyboard, gamepad joystick and trigger deadzone adjustements.
- PS Remote Play support with DS4 controller, including motion and touchpad.
- 3D Controller overlay for stream recordings.
- Hotkeys for various conveniences.
## Use cases
A few examples of the most common use cases are:
- You want to add universal motion controls (UMC) to any game.
- You want to add high-precision motion controls to your Windows game library through [Steam](https://store.steampowered.com/controller/update/dec15).
- You want to play your Sony Playstation 4 library through [PlayStation Now](https://www.playstation.com/en-us/ps-now/) or [PS4 Remote Play](<https://remoteplay.dl.playstation.net/remoteplay/>).
- You want to enjoy all your [Wii](https://dolphin-emu.org/), [WiiU](https://cemu.info/) and [Switch](https://ryujinx.org/) games with full motion controls through UDP motion control protocol.
[Youtube Channel](https://www.youtube.com/channel/UCFLra6QVYJYeaWp2mGaq3Og)
## Supported Systems
The software is built for Windows 10/Windows 11 (x86 and amd64).
## Supported Devices
- ASUS ROG Ally
- Lenovo Legion Go
- MSI Claw A1M
- AOKZOE A1 and A1 Pro
- AOKZOE A2
- Steam Deck (LCD, OLED)
- AYA Neo and its different versions
- AYA Neo Next and its different versions
- AYA Neo Air and it's different versions
- AYA Neo 2, Geek, 2S Geek 1S
- AYA Neo KUN
- AYA Neo Flip DS and Flip KB
- AYA Neo Slide
- ONEXPLAYER X1 (Intel)
- ONEXPLAYER OneXFly
- ONEXPLAYER 2 and 2 Pro
- ONEXPLAYER MINI and its different versions (Intel, AMD, Gundam)
- GPD WIN Max 2 (INTEL, AMD)
- GPD Win 2
- GPD Win 3
- GPD Win 4 (8640U and 8840U)
- GPD Win Mini (7640U and 7840U)
- Ayn Loki (all models)
## Supported Sensors
- Bosch BMI160 (and similar)
- USB IMU (GY-USB002)
## Supported Languages
- English
- French
- German
- Italian
- Japanese
- Portuguese (Brazilian)
- Spanish
- Chinese (Simplified)
- Chinese (Traditional)
## Partners
![image](https://github.com/Valkirie/HandheldCompanion/assets/934757/0833e620-c629-4f63-b337-9b10138988b7)
[DroiX](https://droix.net/?ref=dxhc), are trusted and respected sellers for PC gaming handhelds including GPD, AYA NEO, ONEXPLAYER & AOKZOE. Shipping worldwide with local return centers, their expert customer service is there to provide support, answer any queries and ensure you get the best support for your purchase. Try them today!
[Droix Discord](https://go.droix.co.uk/discord)
## Visuals
![image](https://github.com/Valkirie/HandheldCompanion/assets/14330834/c6aec83c-cf8e-43bf-a577-1b05aedc55aa)
![image](https://github.com/Valkirie/HandheldCompanion/assets/14330834/dba3ab8a-4b73-4e61-a278-7fe37c66b85d)
![image](https://github.com/Valkirie/HandheldCompanion/assets/14330834/0bacdd65-3d6d-4dd2-a70d-a6871b1f51a9)
## Overlay
The software has multiple built-in performance metric overlay options.
![image](https://github.com/Valkirie/HandheldCompanion/assets/14330834/b01e757d-3a68-4d8d-b62e-9129b577d022)
### QuickTools
On the fly adjustment of TDP (global and profile), brightness, screen resolution and frequency, hotkeys and motion control profile settings. Summonable with a user defined button combination (including certaind supported devices mapped special keys). Window can be aligned how the user sees fit (left, right, floating).
![image](https://github.com/Valkirie/HandheldCompanion/assets/14330834/889a1a1c-4775-4261-a173-c275eb4071ad)
Quicktools power control with Into the Breach.
![image](https://github.com/Valkirie/HandheldCompanion/assets/14330834/ec35272e-4c9e-4386-9b0f-3b4e3aa0cf6d)
Quicktools profile settings with Borderlands Pre-Sequel.
### Virtual touchpad
Virtual touchpad on top of your gaming sessions. The virtual touchpad is used to mimic the DualShock 4 physical touchpad and grants maximum compatibility with PS Now, PS Remote software suites and games that make specific use of the Steampad touchpads.
![Touchpad](https://thumbs.gfycat.com/DiscreteJollyBluemorphobutterfly-size_restricted.gif)
Virtual Touchpad input demonstration with [PS Remote Play](https://remoteplay.dl.playstation.net/remoteplay/lang/en/)
![Example02](https://user-images.githubusercontent.com/14330834/184550793-d81e2ec9-0271-4aae-bc44-7aeb393631ea.png)
PS Remote Play, The Last of Us Part 2
### 3D Controller
Display a 3D virtual controller, showcasing the motion of the device and all button interaction, individual button presses, joystick and trigger positions. The following 3D models are availible.
- OEM controller (Ayaneo Pro, Ayaneo Next, OneXPlayer Mini)
- Emulated controller (DualShock 4, Xbox 360)
- Xbox One controller
- ZDO+ controller
- Fisher-Price controller
- Machenike HG510
- 8BitDo Lite 2
- Nintendo 64
- Dual Sense
![image](https://thumbs.gfycat.com/BlackandwhiteRareBorderterrier-size_restricted.gif)
## Contribute
### Bugs & Features
Found a bug and want it fixed? Open a detailed issue on the [GitHub issue tracker](../../issues)!
Have an idea for a new feature? Let's have a chat about your request on [Discord](https://discord.gg/znHuywFz5M).
### Questions & Support
Please respect that the GitHub issue tracker isn't a helpdesk. We offer a [Discord server](https://discord.gg/znHuywFz5M), where you're welcome to check out and engage in discussions!
### Donation
If you would like to support this project, please consider making a donation to `BenjaminLSR` via [PayPal](https://www.paypal.com/paypalme/BenjaminLSR).
Handheld Companion relies on `ViGEmBus` driver and `ViGEmClient` libraries as well as `HidHide` kernel-mode filter driver. Therefore, we strongly encourage you in donating to `Nefarius` via [PayPal](https://paypal.me/NefariusMaximus) for continued maintenance and development.
## Installation
Installers are [available as an all-in-one setup](../../releases/latest).
Run the `install.exe` as administrator and you'll be set!
## Credits & Libraries
- ViGEmBus: [Nefarius](https://github.com/ViGEm/ViGEmBus)
- ViGEmClient : [Nefarius](https://github.com/ViGEm/ViGEmClient)
- SharpDX : [https://github.com/sharpdx/SharpDX](https://github.com/sharpdx/SharpDX)
- Godot Engine Illustration : [Juan Linietsky, Fernando Miguel Calabró](https://github.com/godotengine/tps-demo)
## Licensing
![image](https://user-images.githubusercontent.com/934757/159507299-ee55ec0b-8c0a-41b6-8dab-a1c72589565e.png)![image](https://user-images.githubusercontent.com/934757/159507349-caf88e3f-508b-4293-ae69-9918d6ba3d75.png)![image](https://user-images.githubusercontent.com/934757/159507749-c6ce02f6-b428-4592-96ca-95084ac5669b.png)![image](https://user-images.githubusercontent.com/934757/159507875-9ee29e9d-9528-4345-9503-0e2a13faeb4c.png)
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
We believe in the fair use of open-source solutions. We expect OEMs to come forward before distributing our solution with their devices. This way we can work together to make your device and our solution compatible in the best possible way. We reserve the right to take any action necessary to block partial or full access to the application to any entities that do not comply with the license or fair use principle.
", Assign "at most 3 tags" to the expected json: {"id":"4552","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"