From 6afb3be98cd3d8bf111c8e61fdc29fc3136aab1e Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Thu, 4 Mar 2021 20:11:18 +1000 Subject: [PATCH] Rewrite some expressions to avoid type checker edge cases --- src/BizHawk.Emulation.Cores/Arcades/MAME/MAME.cs | 4 +++- .../Consoles/Nintendo/GBHawk/HW_Registers.cs | 16 ++++++++++++---- .../Nintendo/GBHawk/Mappers/Mapper_Default.cs | 4 +++- .../Nintendo/GBHawk/Mappers/Mapper_MBC1.cs | 8 ++++++-- .../Nintendo/GBHawk/Mappers/Mapper_MBC1_Multi.cs | 8 ++++++-- .../Nintendo/GBHawk/Mappers/Mapper_MBC3.cs | 8 ++++++-- 6 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/BizHawk.Emulation.Cores/Arcades/MAME/MAME.cs b/src/BizHawk.Emulation.Cores/Arcades/MAME/MAME.cs index 60db8439ab..f8d8b5719c 100644 --- a/src/BizHawk.Emulation.Cores/Arcades/MAME/MAME.cs +++ b/src/BizHawk.Emulation.Cores/Arcades/MAME/MAME.cs @@ -513,7 +513,9 @@ namespace BizHawk.Emulation.Cores.Arcades.MAME { return _peek(addr, firstOffset, size); }, - read == "rom" ? (Action) null : (addr, val) => _poke(addr, val, firstOffset, size), + read == "rom" + ? null + : (long addr, byte val) => _poke(addr, val, firstOffset, size), dataWidth)); } } diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/HW_Registers.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/HW_Registers.cs index 8393ddc0c6..9879b91883 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/HW_Registers.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/HW_Registers.cs @@ -213,15 +213,23 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk break; case 0xFF76: - byte ret1 = audio.SQ1_output >= Audio.DAC_OFST ? (byte)(audio.SQ1_output - Audio.DAC_OFST) : 0; - byte ret2 = audio.SQ2_output >= Audio.DAC_OFST ? (byte)(audio.SQ2_output - Audio.DAC_OFST) : 0; + var ret1 = audio.SQ1_output >= Audio.DAC_OFST + ? (byte) (audio.SQ1_output - Audio.DAC_OFST) + : (byte) 0; + var ret2 = audio.SQ2_output >= Audio.DAC_OFST + ? (byte) (audio.SQ2_output - Audio.DAC_OFST) + : (byte) 0; if (is_GBC) { ret = (byte)(ret1 | (ret2 << 4)); } else { ret = 0xFF; } break; case 0xFF77: - byte retN = audio.NOISE_output >= Audio.DAC_OFST ? (byte)(audio.NOISE_output - Audio.DAC_OFST) : 0; - byte retW = audio.WAVE_output >= Audio.DAC_OFST ? (byte)(audio.WAVE_output - Audio.DAC_OFST) : 0; + var retN = audio.NOISE_output >= Audio.DAC_OFST + ? (byte) (audio.NOISE_output - Audio.DAC_OFST) + : (byte) 0; + var retW = audio.WAVE_output >= Audio.DAC_OFST + ? (byte) (audio.WAVE_output - Audio.DAC_OFST) + : (byte) 0; if (is_GBC) { ret = (byte)(retN | (retW << 4)); } else { ret = 0xFF; } break; diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_Default.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_Default.cs index 5447485269..8f6560219b 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_Default.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_Default.cs @@ -23,7 +23,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk } else { - return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) ? 0xFF : Core.bus_value; + return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) + ? (byte) 0xFF + : Core.bus_value; } } diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1.cs index d5a2085ee6..6c42583d68 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1.cs @@ -58,12 +58,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk } else { - return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) ? 0xFF : Core.bus_value; + return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) + ? (byte) 0xFF + : Core.bus_value; } } else { - return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) ? 0xFF : Core.bus_value; + return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) + ? (byte) 0xFF + : Core.bus_value; } } diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1_Multi.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1_Multi.cs index 250c6bbc2c..3530095c70 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1_Multi.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1_Multi.cs @@ -58,13 +58,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk } else { - return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) ? 0xFF : Core.bus_value; + return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) + ? (byte) 0xFF + : Core.bus_value; } } else { - return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) ? 0xFF : Core.bus_value; + return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) + ? (byte) 0xFF + : Core.bus_value; } } diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC3.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC3.cs index 0080c335b3..ee3082fa65 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC3.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC3.cs @@ -69,7 +69,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk } else { - return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) ? 0xFF : Core.bus_value; + return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) + ? (byte) 0xFF + : Core.bus_value; } } @@ -85,7 +87,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk } else { - return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) ? 0xFF : Core.bus_value; + return Core.cpu.TotalExecutedCycles > (Core.bus_access_time + 8) + ? (byte) 0xFF + : Core.bus_value; } }