ESP.Ra.De: small sound mixer improvement

This commit is contained in:
dinkc64 2014-11-25 21:57:20 +00:00
parent 679c00cb34
commit b2cef249eb
3 changed files with 16 additions and 1 deletions

View File

@ -254,6 +254,7 @@ static void TriggerSoundIRQ(INT32 nStatus)
static INT32 DrvExit()
{
YMZ280BExit();
bESPRaDeMixerKludge = false;
EEPROMExit();
@ -581,6 +582,7 @@ static INT32 DrvInit()
YMZ280BInit(16934400, &TriggerSoundIRQ);
YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
bESPRaDeMixerKludge = true;
bDrawScreen = true;

View File

@ -5,6 +5,7 @@
#include "burn_sound.h"
static INT32 nYMZ280BSampleRate;
bool bESPRaDeMixerKludge = false;
UINT8* YMZ280BROM;
void (*pYMZ280BRAMWrite)(INT32 offset, INT32 nValue) = NULL;
@ -190,7 +191,8 @@ void YMZ280BExit()
YMZ280BIRQCallback = NULL;
pYMZ280BRAMWrite = NULL;
pYMZ280BRAMRead = NULL;
bESPRaDeMixerKludge = false;
DebugSnd_YMZ280BInitted = 0;
}
@ -600,6 +602,16 @@ void YMZ280BWriteRegister(UINT8 nValue)
break;
}
case 2: // Volume
if (bESPRaDeMixerKludge) {
if (nWriteChannel != 7) nValue -= 25;
if (nWriteChannel == 7) {
if (nValue + 15 > 255)
nValue = 255;
else
nValue += 15;
}
}
//bprintf(0,_T("Ch: %d Volume %d Sample Start: %08X - Stop: %08X.\n"),nWriteChannel,nValue,YMZ280BChannelInfo[nWriteChannel].nSampleStart, YMZ280BChannelInfo[nWriteChannel].nSampleStop);
YMZ280BChannelInfo[nWriteChannel].nVolume = nValue;
ComputeVolume(&YMZ280BChannelInfo[nWriteChannel]);
break;

View File

@ -11,6 +11,7 @@ UINT32 YMZ280BReadStatus();
UINT32 YMZ280BReadRAM();
extern UINT8* YMZ280BROM;
extern bool bESPRaDeMixerKludge;
// external memory handlers
extern void (*pYMZ280BRAMWrite)(INT32 offset, INT32 nValue);