UNPKG

gamepad-node

Version:

Browser Gamepad API implementation for Node.js with native SDL2 bindings

41 lines (32 loc) 1.35 kB
import { installNavigatorShim, getManager } from './index.js'; installNavigatorShim(); const manager = getManager(); manager.on('gamepadconnected', (event) => { const gp = event.gamepad; console.log('\n=== 8BitDo Controller Detection Test ===\n'); console.log('Controller:', gp.id); console.log('Index:', gp.index); console.log('Mapping:', gp.mapping); console.log('Source:', gp._mappingSource || 'SDL native'); console.log('isController (SDL native):', gp._native?.isController); console.log('GUID:', gp._native?.guid); console.log('\nExpected W3C Standard (by POSITION):'); console.log(' 0 = South/Bottom (Nintendo: B, Xbox: A)'); console.log(' 1 = East/Right (Nintendo: A, Xbox: B)'); console.log(' 2 = West/Left (Nintendo: Y, Xbox: X)'); console.log(' 3 = North/Top (Nintendo: X, Xbox: Y)'); console.log(''); }); console.log('Waiting for controller... Press buttons to test.\n'); setInterval(() => { const gamepads = navigator.getGamepads(); for (const gp of gamepads) { if (!gp) continue; const pressed = gp.buttons .map((b, i) => b.pressed ? i : null) .filter(x => x !== null); if (pressed.length > 0) { console.log('Buttons pressed:', pressed.join(', ')); } } }, 100);