diff --git a/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.ISettable.cs b/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.ISettable.cs index e6cf3bdb4b..04831cffa6 100644 --- a/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.ISettable.cs +++ b/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.ISettable.cs @@ -329,6 +329,13 @@ namespace BizHawk.Emulation.Cores.Computers.Amiga [TypeConverter(typeof(ConstrainedIntConverter))] public int StereoSeparation { get; set; } + [DisplayName("Floppy disk drives")] + [Description("How many floppy disk drives to emulate (0 - 4).")] + [Range(0, 4)] + [DefaultValue(1)] + [TypeConverter(typeof(ConstrainedIntConverter))] + public int FloppyDrives { get; set; } + public PUAESyncSettings() => SettingsUtil.SetDefaultValues(this); diff --git a/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.cs b/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.cs index a0d0d70253..83350fd330 100644 --- a/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.cs +++ b/src/BizHawk.Emulation.Cores/Computers/Amiga/PUAE.cs @@ -58,7 +58,11 @@ namespace BizHawk.Emulation.Cores.Computers.Amiga SkipMemoryConsistencyCheck = lp.Comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck), }); - for (var index = 0; index < MAX_FLOPPIES && index < lp.Roms.Count; index++) + for (var index = 0; index < Math.Min(Math.Min( + lp.Roms.Count, + MAX_FLOPPIES), + _syncSettings.FloppyDrives + ); index++) { _exe.AddReadonlyFile(lp.Roms[index].FileData, "disk" + index); filesToRemove.Add("disk" + index);