Skip to content
rafaelvaloto edited this page Dec 30, 2025 · 7 revisions

📚 Gamepad-Core Wiki

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.

🎯 What is Gamepad-Core?

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.


🏛️ Architecture & Design

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


🎮 DualSense Advanced Features

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

🛠️ Additional Resources

Live Projects Powered by Gamepad-Core

🏆 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


🤝 Contributing to the Wiki

Found an error? Discovered a new trigger effect? Want to add examples?

How to Contribute

  1. Click "Edit" on any wiki page (requires GitHub account)
  2. Make your changes using Markdown syntax
  3. Submit with a descriptive commit message
  4. Review — Maintainers will review and merge your contribution

Contribution Guidelines

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


📊 Wiki Statistics

  • 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

📄 License & Legal

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.


💬 Need Help?


⭐ If this documentation helped you, consider starring the main repository!

⬆Back to Top