Skip to content

Expand gamepad model database (add recent controllers) #68

Description

@lunarcloud

Feature Request

GameInput's model database is impressive, but missing support for several popular modern controllers.

Missing Controllers

  • Xbox Series X/S Controller (multiple USB/Bluetooth variants)
  • Nintendo Switch Pro Controller (standard mapping variant)
  • Steam Deck built-in controls
  • 8BitDo controllers:
    • Pro 2
    • Ultimate (wired & 2.4GHz variants)
    • Lite, SN30 Pro+, etc.
  • SCUF, Razer Wolverine, PowerA controllers
  • Generic Bluetooth gamepads (common on Android/ChromeOS)

Current Model Database Location

// src/gameinput-models.js
export default class GameInputModels {
    static Specific = [
        // List of specific controller models
    ]
}

Proposed Approach

  1. Community Contributions: Create a template for submitting new gamepad data
  2. Structured Format: Consider JSON/YAML database instead of hardcoded JS
  3. Testing Protocol: Document how to gather accurate mapping data

Example Submission Template

vendor_id: "045e"
product_id: "0b13"
name: "Xbox Series X Controller"
schema: "Hedgehog"
icon: "xboxone"
os: null  # All platforms
notes: "Standard mapping on all major browsers"
tested_on:
  - browser: "Chrome 120"
    os: "Windows 11"
    connection: "USB"
  - browser: "Firefox 121"
    os: "macOS 14"
    connection: "Bluetooth"

Benefits

  • Better out-of-box support
  • Community can contribute easily
  • Reduced "unknown controller" scenarios
  • More comprehensive testing coverage

Implementation Plan

  • Create GAMEPAD_DATABASE.md with contribution guidelines
  • Add issue template for new gamepad submissions
  • Consider externalizing database to JSON/YAML
  • Add validation script for database entries
  • Document testing procedure (how to capture VID/PID, test mappings)

Help Wanted

If you own any of these controllers and can test them, please comment with:

  • Controller name
  • Vendor ID / Product ID (from browser console)
  • Browser + OS + Connection type
  • Mapping observations

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions