gamepad-node
Version:
Browser Gamepad API implementation for Node.js with native SDL2 bindings
38 lines (28 loc) • 1.43 kB
JavaScript
import sdl from '@kmamal/sdl';
import fs from 'fs';
console.log('Checking controller mapping source...\n');
sdl.controller.on('deviceAdd', (event) => {
const device = event.device;
console.log('Controller:', device.name);
console.log('GUID:', device.guid);
console.log('\ndevice.mapping:', device.mapping);
// Check if this mapping is in our loaded gamecontrollerdb.txt
const dbContent = fs.readFileSync('./src/javascript/controllers/gamecontrollerdb.txt', 'utf-8');
const inCommunityDB = dbContent.includes(device.guid);
console.log('\nIn community gamecontrollerdb.txt:', inCommunityDB);
if (inCommunityDB) {
const lines = dbContent.split('\n');
const matchingLine = lines.find(line => line.includes(device.guid));
console.log('\nCommunity DB mapping:');
console.log(matchingLine);
}
// Check the button mapping pattern
if (device.mapping) {
const isNintendoPattern = device.mapping.includes('a:b1') && device.mapping.includes('b:b0');
const isXboxPattern = device.mapping.includes('a:b0') && device.mapping.includes('b:b1');
console.log('\nButton mapping pattern:');
console.log(' Nintendo-style (a:b1,b:b0):', isNintendoPattern ? '✓' : '✗');
console.log(' Xbox-style (a:b0,b:b1):', isXboxPattern ? '✓' : '✗');
}
});
console.log('Connect your controller...');