diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/GenSchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/GenSchema.cs index 7c5760a5e2..5f808a8fae 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/GenSchema.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/GenSchema.cs @@ -12,34 +12,25 @@ namespace BizHawk.Client.EmuHawk { public IEnumerable GetPadSchemas() { - var ss = (GPGX.GPGXSyncSettings)Global.Emulator.GetSyncSettings(); - if (ss.ControlType == GPGX.ControlType.OnePlayer) + var devs = ((GPGX)Global.Emulator).GetDevices(); + int player = 1; + foreach (var dev in devs) { - if (ss.UseSixButton) + switch (dev) { - yield return SixButtonController(1); + case LibGPGX.INPUT_DEVICE.DEVICE_NONE: + continue; // do not increment player number + case LibGPGX.INPUT_DEVICE.DEVICE_PAD3B: + yield return ThreeButtonController(player); + break; + case LibGPGX.INPUT_DEVICE.DEVICE_PAD6B: + yield return SixButtonController(player); + break; + default: + // todo + break; } - else - { - yield return ThreeButtonController(2); - } - } - else if (ss.ControlType == GPGX.ControlType.Normal) - { - if (ss.UseSixButton) - { - yield return SixButtonController(1); - yield return SixButtonController(2); - } - else - { - yield return ThreeButtonController(1); - yield return ThreeButtonController(2); - } - } - else - { - yield return null; + player++; } }