Skip to content

Expand gamepad model database (add recent controllers) #68

@lunarcloud

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions