From cb266413b59a9318cb2495fe3420bbea035a0b1a Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Thu, 12 Jun 2025 22:39:23 +1000 Subject: [PATCH] Clean up dumb bitwise comparisons in `AY38912`s (CPCHawk and ZXHawk) --- .../Computers/AmstradCPC/Hardware/AY38912.cs | 23 ++++++------------- .../Hardware/SoundOuput/AY38912.cs | 23 ++++++------------- 2 files changed, 14 insertions(+), 32 deletions(-) diff --git a/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/Hardware/AY38912.cs b/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/Hardware/AY38912.cs index b0f9ae9215..40b54b423d 100644 --- a/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/Hardware/AY38912.cs +++ b/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/Hardware/AY38912.cs @@ -216,13 +216,8 @@ namespace BizHawk.Emulation.Cores.Computers.AmstradCPC return; byte val = (byte)value; - - if (((1 << _activeRegister) & ((1 << 1) | (1 << 3) | (1 << 5) | (1 << 13))) != 0) - val &= 0x0F; - - if (((1 << _activeRegister) & ((1 << 6) | (1 << 8) | (1 << 9) | (1 << 10))) != 0) - val &= 0x1F; - + if (_activeRegister is 1 or 3 or 5 or 13) val &= 0x0F; + else if (_activeRegister is 6 or 8 or 9 or 10) val &= 0x1F; if (_activeRegister != 13 && _registers[_activeRegister] == val) return; @@ -653,26 +648,22 @@ namespace BizHawk.Emulation.Cores.Computers.AmstradCPC if ((_eState & ~31) != 0) { - var mask = (1 << _registers[AY_E_SHAPE]); - - if ((mask & ((1 << 0) | (1 << 1) | (1 << 2) | - (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6) | - (1 << 7) | (1 << 9) | (1 << 15))) != 0) + var val = _registers[AY_E_SHAPE]; + if (val is <= 7 or 9 or 15) { _eState = _eDirection = 0; } - else if ((mask & ((1 << 8) | (1 << 12))) != 0) + else if (val is 8 or 12) { _eState &= 31; } - else if ((mask & ((1 << 10) | (1 << 14))) != 0) + else if (val is 10 or 14) { _eDirection = -_eDirection; _eState += _eDirection; } - else + else /*if (val is 11 or 13)*/ { - // 11,13 _eState = 31; _eDirection = 0; } diff --git a/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/SoundOuput/AY38912.cs b/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/SoundOuput/AY38912.cs index 2b78b80f0e..6812b5748b 100644 --- a/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/SoundOuput/AY38912.cs +++ b/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/SoundOuput/AY38912.cs @@ -222,13 +222,8 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum return; byte val = (byte)value; - - if (((1 << _activeRegister) & ((1 << 1) | (1 << 3) | (1 << 5) | (1 << 13))) != 0) - val &= 0x0F; - - if (((1 << _activeRegister) & ((1 << 6) | (1 << 8) | (1 << 9) | (1 << 10))) != 0) - val &= 0x1F; - + if (_activeRegister is 1 or 3 or 5 or 13) val &= 0x0F; + else if (_activeRegister is 6 or 8 or 9 or 10) val &= 0x1F; if (_activeRegister != 13 && _registers[_activeRegister] == val) return; @@ -643,26 +638,22 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum if ((_eState & ~31) != 0) { - var mask = (1 << _registers[AY_E_SHAPE]); - - if ((mask & ((1 << 0) | (1 << 1) | (1 << 2) | - (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6) | - (1 << 7) | (1 << 9) | (1 << 15))) != 0) + var val = _registers[AY_E_SHAPE]; + if (val is <= 7 or 9 or 15) { _eState = _eDirection = 0; } - else if ((mask & ((1 << 8) | (1 << 12))) != 0) + else if (val is 8 or 12) { _eState &= 31; } - else if ((mask & ((1 << 10) | (1 << 14))) != 0) + else if (val is 10 or 14) { _eDirection = -_eDirection; _eState += _eDirection; } - else + else /*if (val is 11 or 13)*/ { - // 11,13 _eState = 31; _eDirection = 0; }