Refactor code

This commit is contained in:
Persune 2021-08-15 00:22:20 +08:00
parent 212f17215c
commit 5b58c011be
5 changed files with 8 additions and 8 deletions

View file

@ -476,8 +476,7 @@ void Console::ProcessInterferenceAudio()
_InvA13 = _ppu->_A13pinLowSum;
_ppu->_A13pinLowSum = 0;
_controlManager->GetInvOE1(_controlManager->_address);
_InvOE1 = (_controlManager->_OE1pinLow == 1) ? 0 : 1; // invert relative to 2A03
_InvOE1 = !_controlManager->GetInvOE1(_controlManager->_address); // invert relative to 2A03
if (_controlManager->_strobed == true)
_controlManager->_strobed = false;

View file

@ -351,11 +351,12 @@ void ControlManager::WriteRAM(uint16_t addr, uint8_t value)
}
}
void ControlManager::GetInvOE1(uint16_t addr)
bool ControlManager::GetInvOE1(uint16_t addr)
{
// pull low for only one clock
if (addr == 0x4016)
_OE1pinLow = (_strobed) ? 0 : 1;
_OE1pinLow = !_strobed;
return _OE1pinLow;
}
void ControlManager::Reset(bool softReset)

View file

@ -43,7 +43,7 @@ protected:
virtual uint8_t GetOpenBusMask(uint8_t port);
public:
uint8_t _OE1pinLow;
bool _OE1pinLow;
uint16_t _address;
bool _strobed;
@ -85,5 +85,5 @@ public:
virtual uint8_t ReadRAM(uint16_t addr) override;
virtual void WriteRAM(uint16_t addr, uint8_t value) override;
void GetInvOE1(uint16_t addr);
bool GetInvOE1(uint16_t addr);
};

View file

@ -466,7 +466,7 @@ void PPU::WriteRAM(uint16_t addr, uint8_t value)
void PPU::GetInvA13()
{
// pull level high when PPU/VRAM addr bit 13 is low
_A13pinLowSum += (_ppuBusAddress & 0x2000) ? 1 : 0; // invert relative to 2A03
_A13pinLowSum += (bool)(_ppuBusAddress & 0x2000); // invert relative to 2A03
}
uint8_t PPU::ReadPaletteRAM(uint16_t addr)

View file

@ -278,7 +278,7 @@ int16_t SoundMixer::GetOutputVolume(bool forRightChannel)
GetChannelOutput(AudioChannel::EPSM_L, forRightChannel) * 4 +
GetChannelOutput(AudioChannel::EPSM_R, forRightChannel) * 4 +
(GetChannelOutput(AudioChannel::InvA13, forRightChannel) * 20) / 3.0 + // 3 PPU samples per CPU clock
GetChannelOutput(AudioChannel::InvOE1, forRightChannel) * 1000
GetChannelOutput(AudioChannel::InvOE1, forRightChannel) * 100
);
}