Merge pull request #24 from Perkka2/master

EPSG update
This commit is contained in:
NovaSquirrel 2021-03-19 16:25:02 -04:00 committed by GitHub
commit ea5f05ed6f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 6 deletions

View file

@ -11,6 +11,7 @@
#include "BatteryManager.h"
#include "MessageManager.h"
#include "EmulationSettings.h"
#include "CPU.h"
void BaseMapper::WriteRegister(uint16_t addr, uint8_t value) { }
void BaseMapper::WriteEPSG(uint16_t addr, uint8_t value) { _epsgaudio->WriteRegister(addr, value); }
@ -781,7 +782,7 @@ uint8_t BaseMapper::DebugReadRAM(uint16_t addr)
void BaseMapper::WriteRAM(uint16_t addr, uint8_t value)
{
if(addr == 0x4016){ WriteEPSG(addr, value); }
if((addr == 0x4016) & (_console->GetCpu()->GetCycleCount() % 2 == 1)){ WriteEPSG(addr, value); }
if(_isWriteRegisterAddr[addr]) {
if(_hasBusConflicts) {
uint8_t prgValue = _prgPages[addr >> 8][(uint8_t)addr];

View file

@ -123,7 +123,7 @@ protected:
for (uint8_t x = 0; x < 2; x++)
{
_currentOutputs[x] /= 12;
_currentOutputs[x] /= 5;
}
UpdateOutputLevel();
@ -150,7 +150,6 @@ public:
void WriteRegister(uint16_t addr, uint8_t value)
{
EPSGSSGAudio::WriteRegister(addr, value);
if (addr == 0x4016) {
if ((value & 0x0F) == 0x02) {
@ -174,6 +173,7 @@ public:
const uint8_t a04016 = (writeAddr & 0xF000) == 0xE000;
const uint8_t a14016 = !!(writeAddr & 0xF);
EPSGSSGAudio::WriteRegister(writeAddr, writeValue);
WriteToChip(a04016 | (a14016 << 1), writeValue);
}
}
@ -186,7 +186,7 @@ public:
const uint8_t a0 = (addr & 0xF000) == 0xE000;
const uint8_t a1 = !!(addr & 0xF);
EPSGSSGAudio::WriteRegister(addr, value);
WriteToChip(a0 | (a1 << 1), value);
break;

View file

@ -275,8 +275,8 @@ int16_t SoundMixer::GetOutputVolume(bool forRightChannel)
#else
GetChannelOutput(AudioChannel::VRC7, forRightChannel) +
#endif
GetChannelOutput(AudioChannel::EPSG_L, forRightChannel) * 15 +
GetChannelOutput(AudioChannel::EPSG_R, forRightChannel) * 15
GetChannelOutput(AudioChannel::EPSG_L, forRightChannel) * 4 +
GetChannelOutput(AudioChannel::EPSG_R, forRightChannel) * 4
);
}

View file

@ -123,6 +123,8 @@ namespace Mesen.GUI.Config
InteropEmu.SetChannelVolume(AudioChannel.Sunsoft5B, ConvertVolume(audioInfo.Sunsoft5bVolume));
InteropEmu.SetChannelVolume(AudioChannel.EPSG_L, ConvertVolume(audioInfo.EPSGVolume_L));
InteropEmu.SetChannelVolume(AudioChannel.EPSG_R, ConvertVolume(audioInfo.EPSGVolume_R));
InteropEmu.SetChannelVolume(AudioChannel.EPSG_L, audioInfo.EnableEPSG ? AudioInfo.ConvertVolume(audioInfo.EPSGVolume_L) : 0);
InteropEmu.SetChannelVolume(AudioChannel.EPSG_R, audioInfo.EnableEPSG ? AudioInfo.ConvertVolume(audioInfo.EPSGVolume_R) : 0);
InteropEmu.SetChannelPanning(AudioChannel.Square1, ConvertPanning(audioInfo.Square1Panning));
InteropEmu.SetChannelPanning(AudioChannel.Square2, ConvertPanning(audioInfo.Square2Panning));