diff --git a/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.Controllers.cs b/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.Controllers.cs index eb1d58cbcc..8bcf2efb12 100644 --- a/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.Controllers.cs +++ b/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.Controllers.cs @@ -10,6 +10,7 @@ namespace BizHawk.Emulation.Cores.Computers.Amiga { public partial class PUAE { + private ControllerType[] _ports { get; set; } private static readonly (string Name, LibPUAE.AllButtons Button)[] _joystickMap = CreateJoystickMap(); private static readonly (string Name, LibPUAE.AllButtons Button)[] _cd32padMap = CreateCd32padMap(); private static readonly (string Name, LibPUAE.PUAEKeyboard Key)[] _keyboardMap = CreateKeyboardMap(); diff --git a/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.cs b/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.cs index 858bd75623..6ff41b3b4a 100644 --- a/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.cs +++ b/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.cs @@ -50,6 +50,12 @@ namespace BizHawk.Emulation.Cores.Computers.Amiga _syncSettings = lp.SyncSettings ?? new(); _syncSettings.FloppyDrives = Math.Min(LibPUAE.MAX_FLOPPIES, _syncSettings.FloppyDrives); var filesToRemove = new List(); + + _ports = [ + _syncSettings.ControllerPort1, + _syncSettings.ControllerPort2 + ]; + CreateArguments(_syncSettings); ControllerDefinition = CreateControllerDefinition(_syncSettings); @@ -156,11 +162,10 @@ namespace BizHawk.Emulation.Cores.Computers.Amiga }; for (int port = 1; port <= 2; port++) - { - ControllerType type = (port == 1) ? _syncSettings.ControllerPort1 : _syncSettings.ControllerPort2; + { var currentPort = (port == 1) ? fi.Port1 : fi.Port2; - switch (type) + switch (_ports[port - 1]) { case ControllerType.Joystick: {