-
-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Complete Technical Documentation & Developer Resources
Modern, policy-based C++ library for advanced gamepad features (DualSense/DS4).
Engine-agnostic architecture designed for Unreal, Unity, Godot, and O3DE.
GamepadCore is a high-performance, platform-agnostic C++ library designed to handle raw HID communication with game controllers. It bypasses generic abstraction layers (like XInput or SDL) to unlock hardware-specific features often inaccessible in standard APIs.
This wiki provides in-depth technical documentation for developers integrating Gamepad-Core into their projects.
Understanding the policy-based design, layer separation, and extension points
Learn about the core architecture that makes Gamepad-Core portable and extensible:
- Core Abstractions — How GCore and GImplementations separate concerns
- Platform Policies — The bridge between your OS and the library
- Hardware Abstraction — Device discovery, connection management, and I/O
- Extending the Library — Add support for new platforms or custom hardware
- Performance Considerations — Thread safety, zero-allocation loops, and hot paths
Best for: Developers integrating Gamepad-Core into game engines or custom applications
Complete reference for DualSense adaptive trigger effects and their data structures
Comprehensive documentation of all known trigger effects:
- Official Sony Modes — Feedback, Weapon, Vibration, Bow, Galloping, and more
- Unofficial Effects — Community-discovered modes and experimental features
- Vestigial Modes — Legacy effects found in firmware but undocumented
- C++ API Reference — Struct definitions, parameter ranges, and usage examples
- Effect Combinations — How to layer multiple effects for complex haptics
Best for: Game designers and developers implementing immersive trigger feedback
Raw HEX command reference for low-level trigger programming
Low-level technical reference for HID communication:
- HID Report Structure — Byte-level breakdown of DualSense output reports
- Trigger Command Format — HEX values for each effect type and their parameters
- Bit Field Encoding — How parameters are packed into report bytes
- Raw Examples — Complete HEX dumps with annotations
- Custom Effects — How to craft your own trigger profiles using raw commands
🏆 Unreal-Dualsense (v2.0.0-pre-release)
Production-ready Unreal Engine plugin with full DualSense integration. All v2.x features are powered by Gamepad-Core API.
🧩 Godot-Dualsense
GDExtension prototype demonstrating Gamepad-Core integration with Godot 4.x
Found an error? Discovered a new trigger effect? Want to add examples?
- Click "Edit" on any wiki page (requires GitHub account)
- Make your changes using Markdown syntax
- Submit with a descriptive commit message
- Review — Maintainers will review and merge your contribution
✅ Keep technical accuracy high — Test your claims with physical hardware
✅ Provide code examples where relevant
✅ Link to related pages for context
✅ Use clear, concise language — Assume the reader is technically proficient but new to the library
✅ Document sources — If you're adding protocol information, cite your research method
- Total Pages: 3 (Architecture, Trigger Effects, HEX Reference)
- Documented Trigger Effects: 10+ official, 5+ unofficial, 3+ vestigial
- Supported Platforms: Windows, Linux, macOS, PlayStation (with SDK)
- Last Updated: December 2025
This documentation is part of the Gamepad-Core project, licensed under the MIT License.
Trademarks: PlayStation, DualSense, and DualShock are trademarks of Sony Interactive Entertainment Inc.
This project is not affiliated with or endorsed by Sony.
- Questions? Open an Issue
- Discussion? Start a thread in Discussions
- Bug Reports? Use the Issue Tracker
- Feature Requests? We'd love to hear your ideas in Discussions
⭐ If this documentation helped you, consider starring the main repository!