Clean up dumb bitwise comparisons in `AY38912`s (CPCHawk and ZXHawk)

This commit is contained in:
YoshiRulz 2025-06-12 22:39:23 +10:00
parent 4d8bc3f265
commit cb266413b5
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
2 changed files with 14 additions and 32 deletions

View File

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

View File

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