diff --git a/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs b/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs index 28e0ff2c77..67f0e922f6 100644 --- a/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs +++ b/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs @@ -197,8 +197,9 @@ namespace BizHawk.Emulation.Common FirmwareAndOption("302AFB5D8BE26C758309CA3DF611AE69CCED2821", 32768, "MSX", "bios_basic_jpn", "MSX_jpn.rom", "MSX 1.0 JPN BIOS and BASIC"); // Channel F - FirmwareAndOption("81193965A374D77B99B4743D317824B53C3E3C78", 1024, "ChannelF", "ChannelF_sl131253", "ChannelF_SL31253.rom", "Channel F Rom0"); - FirmwareAndOption("8F70D1B74483BA3A37E86CF16C849D601A8C3D2C", 1024, "ChannelF", "ChannelF_sl131254", "ChannelF_SL31254.rom", "Channel F Rom1"); + FirmwareAndOption("81193965A374D77B99B4743D317824B53C3E3C78", 1024, "ChannelF", "ChannelF_sl131253", "ChannelF_SL31253.rom", "Channel F BIOS (PSU1)"); + FirmwareAndOption("8F70D1B74483BA3A37E86CF16C849D601A8C3D2C", 1024, "ChannelF", "ChannelF_sl131254", "ChannelF_SL31254.rom", "Channel F BIOS (PSU2)"); + FirmwareAndOption("759E2ED31FBDE4A2D8DAF8B9F3E0DFFEBC90DAE2", 1024, "ChannelF", "ChannelF_sl90025", "ChannelF_sl90025.rom", "Channel F II BIOS (PSU1)"); // Saturn var ss_100_j = File("2B8CB4F87580683EB4D760E4ED210813D667F0A2", 524288, "SAT_1.00-(J).bin", "Bios v1.00 (J)"); diff --git a/src/BizHawk.Emulation.Cores/Consoles/Fairchild/ChannelF/ChannelF.ISettable.cs b/src/BizHawk.Emulation.Cores/Consoles/Fairchild/ChannelF/ChannelF.ISettable.cs index 3ab64a87e3..15a090cd31 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Fairchild/ChannelF/ChannelF.ISettable.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Fairchild/ChannelF/ChannelF.ISettable.cs @@ -36,11 +36,6 @@ namespace BizHawk.Emulation.Cores.Consoles.ChannelF [CoreSettings] public class ChannelFSettings { - [DisplayName("Default Background Color")] - [Description("The default BG color")] - [DefaultValue(0)] - public int BackgroundColor { get; set; } - public ChannelFSettings Clone() { return (ChannelFSettings)MemberwiseClone(); @@ -63,6 +58,10 @@ namespace BizHawk.Emulation.Cores.Consoles.ChannelF [Description("NTSC or PAL - Affects the CPU clock speed and refresh rate")] [DefaultValue(RegionType.NTSC)] public RegionType Region { get; set; } + [DisplayName("Version")] + [Description("Both versions are the same from an emulation perspective. Channel F II has a very slightly different BIOS to Channel F")] + [DefaultValue(ConsoleVersion.ChannelF)] + public ConsoleVersion Version { get; set; } public ChannelFSyncSettings Clone() { @@ -85,5 +84,11 @@ namespace BizHawk.Emulation.Cores.Consoles.ChannelF NTSC, PAL } + + public enum ConsoleVersion + { + ChannelF, + ChannelF_II + } } } diff --git a/src/BizHawk.Emulation.Cores/Consoles/Fairchild/ChannelF/ChannelF.cs b/src/BizHawk.Emulation.Cores/Consoles/Fairchild/ChannelF/ChannelF.cs index acee864be8..c7448cf4f6 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Fairchild/ChannelF/ChannelF.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Fairchild/ChannelF/ChannelF.cs @@ -22,19 +22,25 @@ namespace BizHawk.Emulation.Cores.Consoles.ChannelF SyncSettings = lp.SyncSettings ?? new ChannelFSyncSettings(); region = SyncSettings.Region; + version = SyncSettings.Version; MemoryCallbacks = new MemoryCallbackSystem(new[] { "System Bus" }); ControllerDefinition = ChannelFControllerDefinition; - var bios01 = CoreComm.CoreFileProvider.GetFirmwareOrThrow(new("ChannelF", "ChannelF_sl131253")); - var bios02 = CoreComm.CoreFileProvider.GetFirmwareOrThrow(new("ChannelF", "ChannelF_sl131254")); - //var bios02 = CoreComm.CoreFileProvider.GetFirmwareOrThrow(new("ChannelF", "ChannelF_sl90025")); + if (version == ConsoleVersion.ChannelF) + { + BIOS01 = CoreComm.CoreFileProvider.GetFirmwareOrThrow(new("ChannelF", "ChannelF_sl131253")); + BIOS02 = CoreComm.CoreFileProvider.GetFirmwareOrThrow(new("ChannelF", "ChannelF_sl131254")); + } + else + { + BIOS01 = CoreComm.CoreFileProvider.GetFirmwareOrThrow(new("ChannelF", "ChannelF_sl90025")); + BIOS02 = CoreComm.CoreFileProvider.GetFirmwareOrThrow(new("ChannelF", "ChannelF_sl131254")); + } Cartridge = VesCartBase.Configure(_gameInfo[0], _files[0]); - - BIOS01 = bios01; - BIOS02 = bios02; + CPU = new F3850 { @@ -71,6 +77,7 @@ namespace BizHawk.Emulation.Cores.Consoles.ChannelF public VesCartBase Cartridge; public RegionType region; + public ConsoleVersion version; public bool DriveLightEnabled => Cartridge.HasActivityLED;