CopperPad is a cross-platform .NET game-controller input library with normalized controller state, profile persistence, SDL mappings, desktop HID support, and Apple GameController support. The repository also includes an Avalonia controller tester, mapper, and calibration application.
src/CopperPad— platform-neutral controller abstractions and profile JSON support.src/CopperPad.HidSharp— desktop HidSharp provider, SDL_GameControllerDB data, diagnostics, and fallback mappers.src/CopperPad.GameController— Apple GameController provider and platform-neutral Apple mapping.src/CopperPad.Gui— Avalonia controller test, mapping, and calibration application.tests/CopperPad.Tests— core, mapping, provider, and lifecycle tests.tests/CopperPad.Gui.Tests— GUI profile and editor logic tests.
The repository requires the .NET 10 SDK.
dotnet restore CopperPad.slnx
dotnet build CopperPad.slnx --configuration Release --no-restore
dotnet test CopperPad.slnx --configuration Release --no-build --no-restoreThe native iOS target requires macOS, Xcode, and the matching .NET iOS workload. CI builds it separately with EnableIOSProviderBuild=true.
The repository produces three public packages:
CopperPadCopperPad.HidSharpCopperPad.GameController
All packages are currently versioned 2.0.0-preview.1. The preview has passed automated Windows, Linux, and iOS compilation checks, but Apple controller behavior has not yet been verified on physical iOS hardware. See RELEASE.md for release validation and CONTRIBUTING.md for contribution guidance.
CopperPad is licensed under the MIT License. The bundled SDL_GameControllerDB data retains its own license; see src/CopperPad/THIRD-PARTY-NOTICES.md.