Added support for Pro Controller mapping (#1492)

This commit is contained in:
Flora A 2024-05-29 16:59:39 +02:00 committed by GitHub
parent c7fbf5b707
commit 2fcde2907d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 32 additions and 0 deletions

28
src/configs/pad_procon.ts Normal file
View File

@ -0,0 +1,28 @@
/**
* Nintendo Pro Controller mapping
*/
const pad_procon = {
padID: "Pro Controller",
padType: "Nintendo",
gamepadMapping: {
RC_S: 1,
RC_E: 0,
RC_W: 3,
RC_N: 2,
START: 9, // +
SELECT: 8, // -
LB: 4,
RB: 5,
LT: 6,
RT: 7,
LS: 10,
RS: 11,
LC_N: 12,
LC_S: 13,
LC_W: 14,
LC_E: 15,
MENU: 16, // Home
},
};
export default pad_procon;

View File

@ -5,6 +5,7 @@ import pad_generic from "./configs/pad_generic";
import pad_unlicensedSNES from "./configs/pad_unlicensedSNES"; import pad_unlicensedSNES from "./configs/pad_unlicensedSNES";
import pad_xbox360 from "./configs/pad_xbox360"; import pad_xbox360 from "./configs/pad_xbox360";
import pad_dualshock from "./configs/pad_dualshock"; import pad_dualshock from "./configs/pad_dualshock";
import pad_procon from "./configs/pad_procon";
import {Button} from "./enums/buttons"; import {Button} from "./enums/buttons";
import BattleScene from "./battle-scene"; import BattleScene from "./battle-scene";
@ -422,6 +423,7 @@ export class InputsController {
* - If the ID includes both '081f' and 'e401', it is identified as an unlicensed SNES gamepad. * - If the ID includes both '081f' and 'e401', it is identified as an unlicensed SNES gamepad.
* - If the ID contains 'xbox' and '360', it is identified as an Xbox 360 gamepad. * - If the ID contains 'xbox' and '360', it is identified as an Xbox 360 gamepad.
* - If the ID contains '054c', it is identified as a DualShock gamepad. * - If the ID contains '054c', it is identified as a DualShock gamepad.
* - If the ID includes both '057e' and '2009', it is identified as a Pro controller gamepad.
* If no specific identifiers are recognized, a generic gamepad configuration is returned. * If no specific identifiers are recognized, a generic gamepad configuration is returned.
*/ */
mapGamepad(id: string): GamepadConfig { mapGamepad(id: string): GamepadConfig {
@ -433,6 +435,8 @@ export class InputsController {
return pad_xbox360; return pad_xbox360;
} else if (id.includes("054c")) { } else if (id.includes("054c")) {
return pad_dualshock; return pad_dualshock;
} else if (id.includes("057e") && id.includes("2009")) {
return pad_procon;
} }
return pad_generic; return pad_generic;