[ChannelFHawk] Implement Channel F II System

This commit is contained in:
Asnivor 2024-09-05 16:47:49 +01:00
parent cd391a6e88
commit b3e8182f26
3 changed files with 26 additions and 13 deletions

View File

@ -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)");

View File

@ -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
}
}
}

View File

@ -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;