diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 7b078219ff..adeb3acabe 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -2067,20 +2067,8 @@ namespace BizHawk.Client.EmuHawk GBSubMenu.Visible = true; SameBoyColorChooserMenuItem.Visible = Emulator is Sameboy sameboy && !sameboy.IsCGBMode(); // palette config only works in DMG mode break; - case VSystemID.Raw.SNES when Emulator is LibsnesCore { IsSGB: true }: // doesn't use "SGB" sysID - SNESSubMenu.Text = "&SGB"; - SNESSubMenu.Visible = true; - break; - case VSystemID.Raw.SNES when Emulator is LibsnesCore { IsSGB: false }: - SNESSubMenu.Text = "&SNES"; - SNESSubMenu.Visible = true; - break; - case VSystemID.Raw.SNES when Emulator is BsnesCore bsnesCore: - SNESSubMenu.Text = bsnesCore.IsSGB ? "&SGB" : "&SNES"; - SNESSubMenu.Visible = true; - break; - case VSystemID.Raw.SNES when Emulator is SubBsnesCore subBsnesCore: - SNESSubMenu.Text = subBsnesCore.IsSGB ? "&SGB" : "&SNES"; + case VSystemID.Raw.SNES when Emulator is LibsnesCore or BsnesCore or SubBsnesCore: + case VSystemID.Raw.SGB when Emulator is BsnesCore or SubBsnesCore: SNESSubMenu.Visible = true; break; default: diff --git a/src/BizHawk.Client.EmuHawk/RetroAchievements/RetroAchievements.ConsoleID.cs b/src/BizHawk.Client.EmuHawk/RetroAchievements/RetroAchievements.ConsoleID.cs index fb86947f80..0fb868fac2 100644 --- a/src/BizHawk.Client.EmuHawk/RetroAchievements/RetroAchievements.ConsoleID.cs +++ b/src/BizHawk.Client.EmuHawk/RetroAchievements/RetroAchievements.ConsoleID.cs @@ -159,12 +159,8 @@ namespace BizHawk.Client.EmuHawk VSystemID.Raw.SGX => ConsoleID.PCEngine, // ??? VSystemID.Raw.SGXCD => ConsoleID.PCEngineCD, // ??? VSystemID.Raw.SMS => ConsoleID.MasterSystem, - VSystemID.Raw.SNES => Emu switch - { - LibsnesCore libsnes => libsnes.IsSGB ? ConsoleID.GB : ConsoleID.SNES, - BsnesCore bsnes => bsnes.IsSGB ? ConsoleID.GB : ConsoleID.SNES, - _ => ConsoleID.SNES, - }, + VSystemID.Raw.SNES when Emu is LibsnesCore libsnes => libsnes.IsSGB ? ConsoleID.GB : ConsoleID.SNES, + VSystemID.Raw.SNES => ConsoleID.SNES, VSystemID.Raw.TI83 => ConsoleID.UnknownConsoleID, VSystemID.Raw.TIC80 => ConsoleID.Tic80, VSystemID.Raw.UZE => ConsoleID.UnknownConsoleID, diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IEmulator.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IEmulator.cs index 99c19e3376..d15479091c 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IEmulator.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IEmulator.cs @@ -94,7 +94,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES public int Frame { get; private set; } - public string SystemId => VSystemID.Raw.SNES; + public string SystemId { get; } public bool DeterministicEmulation => true; diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IMemoryDomains.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IMemoryDomains.cs index 687588089d..363fa9b1d9 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IMemoryDomains.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IMemoryDomains.cs @@ -30,7 +30,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES address => Api.core.snes_bus_read((uint) address), (address, value) => Api.core.snes_bus_write((uint) address, value), wordSize: 4)); - if (IsSGB) + if (_isSGB) { foreach (int i in Enum.GetValues(typeof(BsnesApi.SGB_MEMORY))) { @@ -55,8 +55,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES _memoryDomains = new(mm); ((BasicServiceProvider) ServiceProvider).Register(_memoryDomains); - _memoryDomains.MainMemory = _memoryDomains[IsSGB ? "SGB WRAM" : "WRAM"]; - _memoryDomains.SystemBus = _memoryDomains[IsSGB ? "SGB System Bus" : "System Bus"]; + _memoryDomains.MainMemory = _memoryDomains[_isSGB ? "SGB WRAM" : "WRAM"]; + _memoryDomains.SystemBus = _memoryDomains[_isSGB ? "SGB System Bus" : "System Bus"]; } } } diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.ISaveRam.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.ISaveRam.cs index 616f77b750..f2b391f4ff 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.ISaveRam.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.ISaveRam.cs @@ -20,7 +20,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES byte[] saveRamCopy = new byte[_saveRamSize]; using (Api.exe.EnterExit()) { - if (IsSGB) + if (_isSGB) { Api.core.snes_sgb_save_battery(saveRamCopy, _saveRamSize); } @@ -44,7 +44,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES using (Api.exe.EnterExit()) { - if (IsSGB) + if (_isSGB) { Api.core.snes_sgb_load_battery(data, _saveRamSize); } diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IVideoProvider.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IVideoProvider.cs index c994bf9a30..0aa0cb3b39 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IVideoProvider.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.IVideoProvider.cs @@ -10,13 +10,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES get { double virtualWidth = BufferWidth * PixelAspectRatio; - if (!IsSGB && BufferWidth == 256 && (BufferHeight > 240 || _settings.AlwaysDoubleSize)) virtualWidth *= 2; + if (!_isSGB && BufferWidth == 256 && (BufferHeight > 240 || _settings.AlwaysDoubleSize)) virtualWidth *= 2; return (int)Math.Round(virtualWidth); } } - public int VirtualHeight => !IsSGB && BufferHeight <= 240 && (BufferWidth > 256 || _settings.AlwaysDoubleSize) ? BufferHeight * 2 : BufferHeight; + public int VirtualHeight => !_isSGB && BufferHeight <= 240 && (BufferWidth > 256 || _settings.AlwaysDoubleSize) ? BufferHeight * 2 : BufferHeight; public int BufferWidth { get; private set; } = 256; diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.cs index 2e2d6eb544..f8bf8c820d 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/BsnesCore.cs @@ -27,10 +27,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES CoreComm = loadParameters.Comm; _settings = loadParameters.Settings ?? new SnesSettings(); _syncSettings = loadParameters.SyncSettings ?? new SnesSyncSettings(); + SystemId = loadParameters.Game.System; + _isSGB = SystemId == VSystemID.Raw.SGB; - IsSGB = loadParameters.Game.System == VSystemID.Raw.SGB; byte[] sgbRomData = null; - if (IsSGB) + if (_isSGB) { if ((loadParameters.Roms[0].RomData[0x143] & 0xc0) == 0xc0) { @@ -84,7 +85,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES InitAudio(); ser.Register(_soundProvider); - if (IsSGB) + if (_isSGB) { Api.core.snes_load_cartridge_super_gameboy(sgbRomData, loadParameters.Roms[0].RomData, sgbRomData!.Length, loadParameters.Roms[0].RomData.Length); @@ -127,9 +128,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES private IController _controller; private SimpleSyncSoundProvider _soundProvider; private readonly string _romPath; + private readonly bool _isSGB; private bool _disposed; - public bool IsSGB { get; } public string BoardName { get; } internal BsnesApi Api { get; } @@ -201,7 +202,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES private void snes_no_lag(bool sgbPoll) { // gets called whenever there was input read in the core - if (!IsSGB || sgbPoll) + if (!_isSGB || sgbPoll) { IsLagFrame = false; } @@ -244,7 +245,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES private unsafe void snes_video_refresh(IntPtr data, int width, int height, int pitch) { ushort* vp = (ushort*)data; - if (_settings.CropSGBFrame && IsSGB) + if (_settings.CropSGBFrame && _isSGB) { BufferWidth = 160; BufferHeight = 144; @@ -262,7 +263,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES } int di = 0; - if (_settings.CropSGBFrame && IsSGB) + if (_settings.CropSGBFrame && _isSGB) { int initialY = _settings.ShowOverscan ? 47 : 39; for (int y = initialY; y < initialY + 144; y++) diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/SubBsnesCore.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/SubBsnesCore.cs index bd7995550c..896af5d9c5 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/SubBsnesCore.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/BSNES/SubBsnesCore.cs @@ -37,8 +37,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES private readonly BsnesCore _bsnesCore; - public bool IsSGB => _bsnesCore.IsSGB; - public IEmulatorServiceProvider ServiceProvider { get; } public ControllerDefinition ControllerDefinition => _bsnesCore.ControllerDefinition;