Update rest of drivers to use AY8910Render()
This commit is contained in:
parent
9f1764fee9
commit
1559c9bafb
|
@ -3396,6 +3396,8 @@ static void M62MachineInit()
|
||||||
|
|
||||||
AY8910Init(0, 894886, nBurnSoundRate, &M62SoundLatchRead, NULL, NULL, &AY8910_0PortBWrite);
|
AY8910Init(0, 894886, nBurnSoundRate, &M62SoundLatchRead, NULL, NULL, &AY8910_0PortBWrite);
|
||||||
AY8910Init(1, 894886, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 894886, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -4744,24 +4746,9 @@ static INT32 M62Frame()
|
||||||
nCyclesDone[nCurrentCPU] += nCyclesSegment;
|
nCyclesDone[nCurrentCPU] += nCyclesSegment;
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4776,25 +4763,10 @@ static INT32 M62Frame()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ZetOpen(0);
|
ZetOpen(0);
|
||||||
|
|
|
@ -614,6 +614,8 @@ static INT32 DrvInit(void (*pMapMainCPU)(), INT32 (*pRomLoadCallback)(), INT32 s
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 1.00, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
sy_offset = syoffset;
|
sy_offset = syoffset;
|
||||||
char_color_offset = charcoloroff;
|
char_color_offset = charcoloroff;
|
||||||
|
@ -727,7 +729,11 @@ static INT32 atomboyInit()
|
||||||
|
|
||||||
static INT32 fghtbsktInit()
|
static INT32 fghtbsktInit()
|
||||||
{
|
{
|
||||||
return DrvInit(fghtbskt_main_map, fghtbsktLoadRoms, 240, 0x010, 60/2);
|
INT32 nRet = DrvInit(fghtbskt_main_map, fghtbsktLoadRoms, 240, 0x010, 60/2);
|
||||||
|
|
||||||
|
AY8910SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
|
return nRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void draw_bg_layer()
|
static void draw_bg_layer()
|
||||||
|
@ -885,24 +891,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
AY8910Update(0, &pAY8910Buffer[3], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
nSample += pAY8910Buffer[3][n];
|
|
||||||
nSample += pAY8910Buffer[4][n];
|
|
||||||
nSample += pAY8910Buffer[5][n];
|
|
||||||
|
|
||||||
nSample /= 8;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
|
|
||||||
sample_render(pBurnSoundOut, nBurnSoundLen);
|
sample_render(pBurnSoundOut, nBurnSoundLen);
|
||||||
}
|
}
|
||||||
|
|
|
@ -670,6 +670,11 @@ static INT32 DrvInit()
|
||||||
AY8910Init(2, 1789773, nBurnSoundRate, AY8910_3_portA, NULL, NULL, NULL);
|
AY8910Init(2, 1789773, nBurnSoundRate, AY8910_3_portA, NULL, NULL, NULL);
|
||||||
AY8910Init(3, 1789773, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(3, 1789773, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(4, 1789773, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(4, 1789773, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(2, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(3, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(4, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -858,34 +863,7 @@ static INT32 DrvFrame()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[ 0], nBurnSoundLen);
|
|
||||||
AY8910Update(1, &pAY8910Buffer[ 3], nBurnSoundLen);
|
|
||||||
AY8910Update(2, &pAY8910Buffer[ 6], nBurnSoundLen);
|
|
||||||
AY8910Update(3, &pAY8910Buffer[ 9], nBurnSoundLen);
|
|
||||||
AY8910Update(4, &pAY8910Buffer[12], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[ 0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[ 1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[ 2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[ 3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[ 4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[ 5][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[ 6][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[ 7][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[ 8][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[ 9][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[10][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[11][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[12][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[13][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[14][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -452,6 +452,8 @@ static INT32 DrvInit()
|
||||||
|
|
||||||
AY8910Init(0, 1789773, nBurnSoundRate, &AY8910_0_port0, &AY8910_0_port1, NULL, NULL);
|
AY8910Init(0, 1789773, nBurnSoundRate, &AY8910_0_port0, &AY8910_0_port1, NULL, NULL);
|
||||||
AY8910Init(1, 1789773, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 1789773, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
|
||||||
|
@ -602,26 +604,7 @@ static INT32 DrvFrame()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
INT32 nSegmentLength = nBurnSoundLen;
|
|
||||||
INT16* pSoundBuf = pBurnSoundOut;
|
|
||||||
if (nSegmentLength) {
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -339,6 +339,7 @@ static INT32 DrvInit(INT32 game, INT32 sbit)
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.30, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
sound_bit = sbit;
|
sound_bit = sbit;
|
||||||
|
|
||||||
|
@ -414,20 +415,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -316,6 +316,8 @@ static INT32 DrvInit()
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, &AY8910_0_port0, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, &AY8910_0_port0, NULL, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, &AY8910_1_port0, NULL, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, &AY8910_1_port0, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.33, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.33, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -486,22 +488,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -505,6 +505,7 @@ static INT32 DrvInit()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, ay8910_porta_w, ay8910_portb_w);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, ay8910_porta_w, ay8910_portb_w);
|
||||||
|
AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -598,20 +599,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -406,6 +406,10 @@ static INT32 DrvInit()
|
||||||
AY8910Init(1, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(2, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(2, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(3, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(3, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.15, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.15, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(2, 0.15, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(3, 0.15, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvPaletteInit();
|
DrvPaletteInit();
|
||||||
|
|
||||||
|
@ -521,31 +525,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pFMBuffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
|
|
||||||
AY8910Update(0, &pFMBuffer[0], nBurnSoundLen);
|
|
||||||
AY8910Update(1, &pFMBuffer[3], nBurnSoundLen);
|
|
||||||
AY8910Update(2, &pFMBuffer[6], nBurnSoundLen);
|
|
||||||
AY8910Update(3, &pFMBuffer[9], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pFMBuffer[ 0][n] / 2;
|
|
||||||
nSample += pFMBuffer[ 1][n] / 2;
|
|
||||||
nSample += pFMBuffer[ 2][n] / 2;
|
|
||||||
nSample += pFMBuffer[ 3][n] / 2;
|
|
||||||
nSample += pFMBuffer[ 4][n] / 2;
|
|
||||||
nSample += pFMBuffer[ 5][n] / 2;
|
|
||||||
nSample += pFMBuffer[ 6][n] / 2;
|
|
||||||
nSample += pFMBuffer[ 7][n] / 2;
|
|
||||||
nSample += pFMBuffer[ 8][n] / 2;
|
|
||||||
nSample += pFMBuffer[ 9][n] / 2;
|
|
||||||
nSample += pFMBuffer[10][n] / 2;
|
|
||||||
nSample += pFMBuffer[11][n] / 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -446,6 +446,8 @@ static INT32 DrvInit()
|
||||||
|
|
||||||
AY8910Init(0, 625000, nBurnSoundRate, NULL, &ay8910_0_read_port_1, &ay8910_0_write_port_0, NULL);
|
AY8910Init(0, 625000, nBurnSoundRate, NULL, &ay8910_0_read_port_1, &ay8910_0_write_port_0, NULL);
|
||||||
AY8910Init(1, 625000, nBurnSoundRate, &ay8910_1_read_port_0, &ay8910_1_read_port_1, NULL, NULL);
|
AY8910Init(1, 625000, nBurnSoundRate, &ay8910_1_read_port_0, &ay8910_1_read_port_1, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -596,26 +598,7 @@ static INT32 DrvFrame()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
INT32 nSegmentLength = nBurnSoundLen;
|
|
||||||
INT16* pSoundBuf = pBurnSoundOut;
|
|
||||||
if (nSegmentLength) {
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -400,6 +400,9 @@ INT32 BjZInit()
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(2, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(2, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.13, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.13, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(2, 0.13, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
// remember to do ZetReset() in main driver
|
// remember to do ZetReset() in main driver
|
||||||
|
|
||||||
|
@ -833,61 +836,19 @@ INT32 BjFrame()
|
||||||
|
|
||||||
// Render Sound Segment
|
// Render Sound Segment
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
AY8910Update(2, &pAY8910Buffer[6], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[6][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[7][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[8][n] >> 2;
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure the buffer is entirely filled.
|
// Make sure the buffer is entirely filled.
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
AY8910Update(2, &pAY8910Buffer[6], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[6][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[7][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[8][n] >> 2;
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*ZetOpen(0);
|
/*ZetOpen(0);
|
||||||
|
|
|
@ -506,6 +506,7 @@ static INT32 DrvInit()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 2750000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 2750000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -549,6 +550,7 @@ static INT32 DealerInit()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 2750000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 2750000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
ppi8255_init(1);
|
ppi8255_init(1);
|
||||||
PPI0PortReadA = DealerPPIReadA;
|
PPI0PortReadA = DealerPPIReadA;
|
||||||
|
@ -635,20 +637,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -435,6 +435,7 @@ static INT32 DrvInit()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.10, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
SN76489Init(0, 3000000, 0);
|
SN76489Init(0, 3000000, 0);
|
||||||
SN76489Init(1, 3000000, 1);
|
SN76489Init(1, 3000000, 1);
|
||||||
|
@ -667,22 +668,7 @@ static INT32 DrvFrame()
|
||||||
SN76496Update(0, pBurnSoundOut, nBurnSoundLen);
|
SN76496Update(0, pBurnSoundOut, nBurnSoundLen);
|
||||||
SN76496Update(1, pBurnSoundOut, nBurnSoundLen);
|
SN76496Update(1, pBurnSoundOut, nBurnSoundLen);
|
||||||
|
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 1);
|
||||||
if (nBurnSoundLen) {
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample >>= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] += nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] += nSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -435,6 +435,7 @@ static INT32 DrvInit(INT32 game)
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, &funkybee_ay8910_read_A, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, &funkybee_ay8910_read_A, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -575,24 +576,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
INT32 nSegmentLength = nBurnSoundLen;
|
|
||||||
INT16* pSoundBuf = pBurnSoundOut;
|
|
||||||
if (nSegmentLength) {
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -401,6 +401,7 @@ static INT32 DrvInit()
|
||||||
M6809Close();
|
M6809Close();
|
||||||
|
|
||||||
AY8910Init(0, 3579545 / 2, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 3579545 / 2, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.10, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
BurnY8950Init(3579545, DrvSndROM, 0x20000, NULL, &DrvSynchroniseStream, 1);
|
BurnY8950Init(3579545, DrvSndROM, 0x20000, NULL, &DrvSynchroniseStream, 1);
|
||||||
BurnTimerAttachM6809Y8950(1000000);
|
BurnTimerAttachM6809Y8950(1000000);
|
||||||
|
@ -624,20 +625,7 @@ static INT32 DrvFrame()
|
||||||
BurnTimerEndFrameY8950(nCyclesTotal[1]);
|
BurnTimerEndFrameY8950(nCyclesTotal[1]);
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
|
|
||||||
BurnY8950Update(pBurnSoundOut, nBurnSoundLen);
|
BurnY8950Update(pBurnSoundOut, nBurnSoundLen);
|
||||||
}
|
}
|
||||||
|
|
|
@ -324,6 +324,8 @@ static INT32 DrvInit()
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
|
||||||
|
@ -446,26 +448,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
INT32 nSegmentLength = nBurnSoundLen;
|
|
||||||
INT16* pSoundBuf = pBurnSoundOut;
|
|
||||||
if (nSegmentLength) {
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -1034,6 +1034,7 @@ static INT32 DrvInit()
|
||||||
pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
|
pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, &soundlatch_r, &timer_r, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, &soundlatch_r, &timer_r, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -1208,45 +1209,19 @@ static INT32 DrvFrame()
|
||||||
|
|
||||||
// Render Sound Segment
|
// Render Sound Segment
|
||||||
if (pBurnSoundOut && !suprtriv) { // disable sound for suprtriv
|
if (pBurnSoundOut && !suprtriv) { // disable sound for suprtriv
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure the buffer is entirely filled.
|
// Make sure the buffer is entirely filled.
|
||||||
if (pBurnSoundOut && !suprtriv) {
|
if (pBurnSoundOut && !suprtriv) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -431,6 +431,7 @@ static INT32 DrvInit()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 1250000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1250000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
|
||||||
|
@ -572,45 +573,19 @@ INT32 DrvFrame()
|
||||||
|
|
||||||
// Render Sound Segment
|
// Render Sound Segment
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure the buffer is entirely filled.
|
// Make sure the buffer is entirely filled.
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1925,6 +1925,8 @@ static INT32 KyugoInit()
|
||||||
|
|
||||||
AY8910Init(0, 18432000 / 12, nBurnSoundRate, &KyugoDip0Read, &KyugoDip1Read, NULL, NULL);
|
AY8910Init(0, 18432000 / 12, nBurnSoundRate, &KyugoDip0Read, &KyugoDip1Read, NULL, NULL);
|
||||||
AY8910Init(1, 18432000 / 12, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 18432000 / 12, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.30, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.30, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -2052,6 +2054,8 @@ static INT32 Skywolf3Init()
|
||||||
|
|
||||||
AY8910Init(0, 18432000 / 12, nBurnSoundRate, &KyugoDip0Read, &KyugoDip1Read, NULL, NULL);
|
AY8910Init(0, 18432000 / 12, nBurnSoundRate, &KyugoDip0Read, &KyugoDip1Read, NULL, NULL);
|
||||||
AY8910Init(1, 18432000 / 12, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 18432000 / 12, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.30, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.30, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -2375,50 +2379,20 @@ static INT32 KyugoFrame()
|
||||||
|
|
||||||
// Render Sound Segment
|
// Render Sound Segment
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
nSoundBufferPos += nSegmentLength;
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure the buffer is entirely filled.
|
// Make sure the buffer is entirely filled.
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -394,6 +394,7 @@ static INT32 DrvInit()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
@ -719,20 +720,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -361,6 +361,7 @@ static INT32 DrvInit()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 2000000, nBurnSoundRate, &ay8910_port_a_r, NULL, NULL, NULL);
|
AY8910Init(0, 2000000, nBurnSoundRate, &ay8910_port_a_r, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.75, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -463,20 +464,7 @@ static INT32 DrvFrame()
|
||||||
SekClose();
|
SekClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -329,6 +329,7 @@ static INT32 DrvInit()
|
||||||
pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
|
pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
|
||||||
|
|
||||||
AY8910Init(0, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
|
||||||
|
@ -396,24 +397,7 @@ static INT32 DrvFrame()
|
||||||
M6502Close();
|
M6502Close();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
INT32 nSegmentLength = nBurnSoundLen;
|
|
||||||
INT16* pSoundBuf = pBurnSoundOut;
|
|
||||||
if (nSegmentLength) {
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -370,6 +370,9 @@ static INT32 DrvInit()
|
||||||
AY8910Init(0, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(1, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(2, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(2, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(2, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
|
||||||
|
@ -491,61 +494,19 @@ static INT32 DrvFrame()
|
||||||
|
|
||||||
// Render Sound Segment
|
// Render Sound Segment
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
AY8910Update(2, &pAY8910Buffer[6], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[6][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[7][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[8][n] >> 2;
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure the buffer is entirely filled.
|
// Make sure the buffer is entirely filled.
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
AY8910Update(2, &pAY8910Buffer[6], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[6][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[7][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[8][n] >> 2;
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -337,6 +337,8 @@ static INT32 DrvInit()
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.30, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.30, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -539,26 +541,7 @@ static INT32 DrvFrame()
|
||||||
M6502Close();
|
M6502Close();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
INT32 nSegmentLength = nBurnSoundLen;
|
|
||||||
INT16* pSoundBuf = pBurnSoundOut;
|
|
||||||
if (nSegmentLength) {
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -2492,6 +2492,8 @@ static INT32 DrvInit(void (*mapCallback)(), void (*pInitCallback)(), INT32 selec
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 1789750, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1789750, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.75, BURN_SND_ROUTE_BOTH);
|
||||||
|
if (game_select == DREMSHPR) AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
SN76496Init(0, 1789750, 0);
|
SN76496Init(0, 1789750, 0);
|
||||||
SN76496Init(1, 1789750, 1);
|
SN76496Init(1, 1789750, 1);
|
||||||
|
@ -2674,21 +2676,7 @@ static INT32 DrvFrame()
|
||||||
|
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
if (game_select == DREMSHPR || game_select == CRUSHS) {
|
if (game_select == DREMSHPR || game_select == CRUSHS) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (game_select == VANVAN) {
|
if (game_select == VANVAN) {
|
||||||
SN76496Update(0, pSoundBuf, nSegmentLength);
|
SN76496Update(0, pSoundBuf, nSegmentLength);
|
||||||
|
@ -2708,21 +2696,7 @@ static INT32 DrvFrame()
|
||||||
|
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
if (game_select == DREMSHPR || game_select == CRUSHS) {
|
if (game_select == DREMSHPR || game_select == CRUSHS) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (game_select == VANVAN) {
|
if (game_select == VANVAN) {
|
||||||
SN76496Update(0, pSoundBuf, nSegmentLength);
|
SN76496Update(0, pSoundBuf, nSegmentLength);
|
||||||
|
|
|
@ -310,6 +310,8 @@ static INT32 DrvInit()
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, &pkunwar_port_0, &pkunwar_port_1, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, &pkunwar_port_0, &pkunwar_port_1, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, &pkunwar_port_2, &pkunwar_port_3, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, &pkunwar_port_2, &pkunwar_port_3, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
|
||||||
|
@ -497,26 +499,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
INT32 nSegmentLength = nBurnSoundLen;
|
|
||||||
INT16* pSoundBuf = pBurnSoundOut;
|
|
||||||
if (nSegmentLength) {
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -256,6 +256,7 @@ static INT32 DrvInit()
|
||||||
pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
|
pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
|
||||||
|
|
||||||
AY8910Init(0, 1342329, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1342329, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
|
||||||
|
@ -267,32 +268,13 @@ static INT32 DrvFrame()
|
||||||
{
|
{
|
||||||
if (DrvReset) DrvDoReset();
|
if (DrvReset) DrvDoReset();
|
||||||
|
|
||||||
INT32 nSoundBufferPos = 0;
|
|
||||||
|
|
||||||
ZetOpen(0);
|
ZetOpen(0);
|
||||||
ZetRun(4000000 / 60);
|
ZetRun(4000000 / 60);
|
||||||
ZetRaiseIrq(1);
|
ZetRaiseIrq(1);
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
|
||||||
if (nSegmentLength) {
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) DrvDraw();
|
if (pBurnDraw) DrvDraw();
|
||||||
|
|
|
@ -463,6 +463,7 @@ static INT32 DrvInit()
|
||||||
pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
|
pAY8910Buffer[2] = pFMBuffer + nBurnSoundLen * 2;
|
||||||
|
|
||||||
AY8910Init(0, 1250000, nBurnSoundRate, NULL, NULL, &stratvox_sn76477_write, NULL);
|
AY8910Init(0, 1250000, nBurnSoundRate, NULL, NULL, &stratvox_sn76477_write, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DACInit(0, 0, 1, DrvSyncDAC);
|
DACInit(0, 0, 1, DrvSyncDAC);
|
||||||
DACSetVolShift(0, 2);
|
DACSetVolShift(0, 2);
|
||||||
|
@ -619,22 +620,9 @@ static INT32 DrvFrame()
|
||||||
|
|
||||||
// Render Sound Segment
|
// Render Sound Segment
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
|
@ -642,23 +630,10 @@ static INT32 DrvFrame()
|
||||||
|
|
||||||
// Make sure the buffer is entirely filled.
|
// Make sure the buffer is entirely filled.
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DACUpdate(pBurnSoundOut, nBurnSoundLen);
|
DACUpdate(pBurnSoundOut, nBurnSoundLen);
|
||||||
|
|
|
@ -380,6 +380,8 @@ static INT32 DrvInit()
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.23, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.23, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
|
||||||
|
@ -524,26 +526,7 @@ static INT32 DrvFrame()
|
||||||
M6502Close();
|
M6502Close();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
INT32 nSegmentLength = nBurnSoundLen;
|
|
||||||
INT16* pSoundBuf = pBurnSoundOut;
|
|
||||||
if (nSegmentLength) {
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -469,6 +469,9 @@ INT32 SolomonInit()
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(2, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(2, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.12, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.12, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(2, 0.12, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -709,57 +712,19 @@ INT32 SolomonFrame()
|
||||||
|
|
||||||
// Render Sound Segment
|
// Render Sound Segment
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
nSoundBufferPos += nSegmentLength;
|
||||||
AY8910Update(2, &pAY8910Buffer[6], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[6][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[7][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[8][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure the buffer is entirely filled.
|
// Make sure the buffer is entirely filled.
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
AY8910Update(2, &pAY8910Buffer[6], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[6][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[7][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[8][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -425,6 +425,8 @@ static INT32 DrvInit()
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.30, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.30, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
|
||||||
|
@ -593,52 +595,19 @@ static INT32 DrvFrame()
|
||||||
M6809Close();
|
M6809Close();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
nSample += pAY8910Buffer[3][n];
|
|
||||||
nSample += pAY8910Buffer[4][n];
|
|
||||||
nSample += pAY8910Buffer[5][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
if (nSegmentLength) {
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
nSample += pAY8910Buffer[3][n];
|
|
||||||
nSample += pAY8910Buffer[4][n];
|
|
||||||
nSample += pAY8910Buffer[5][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
}
|
||||||
nSoundBufferPos += nSegmentLength;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -413,6 +413,8 @@ static INT32 DrvInit()
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DrvDoReset();
|
DrvDoReset();
|
||||||
|
|
||||||
|
@ -592,48 +594,18 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) | 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) | 1] = nSample;
|
|
||||||
}
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) | 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) | 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -273,6 +273,7 @@ static INT32 DrvInit(INT32 incr)
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
AY8910Init(0, 1536000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 1536000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.30, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -341,20 +342,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -2919,6 +2919,8 @@ static INT32 BerlwallInit()
|
||||||
|
|
||||||
AY8910Init(0, 2000000, nBurnSoundRate, &Kaneko16Dip0Read, &Kaneko16Dip1Read, NULL, NULL);
|
AY8910Init(0, 2000000, nBurnSoundRate, &Kaneko16Dip0Read, &Kaneko16Dip1Read, NULL, NULL);
|
||||||
AY8910Init(1, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 1.00, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 1.00, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
// Setup the OKIM6295 emulation
|
// Setup the OKIM6295 emulation
|
||||||
MSM6295Init(0, (12000000 / 6) / 132, 100.0, 1);
|
MSM6295Init(0, (12000000 / 6) / 132, 100.0, 1);
|
||||||
|
@ -4624,24 +4626,9 @@ static INT32 ExplbrkrFrame()
|
||||||
|
|
||||||
// Render Sound Segment
|
// Render Sound Segment
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
|
@ -4649,25 +4636,10 @@ static INT32 ExplbrkrFrame()
|
||||||
|
|
||||||
// Make sure the buffer is entirely filled.
|
// Make sure the buffer is entirely filled.
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
|
MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);
|
||||||
|
|
|
@ -1462,6 +1462,9 @@ static INT32 BestbestInit()
|
||||||
BurnYM3526SetRoute(BURN_SND_YM3526_ROUTE, 1.00, BURN_SND_ROUTE_BOTH);
|
BurnYM3526SetRoute(BURN_SND_YM3526_ROUTE, 1.00, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, bestbest_ay8910_write_a, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, NULL, NULL, bestbest_ay8910_write_a, NULL);
|
||||||
|
AY8910SetRoute(0, BURN_SND_AY8910_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT);
|
||||||
|
AY8910SetRoute(0, BURN_SND_AY8910_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT);
|
||||||
|
AY8910SetRoute(0, BURN_SND_AY8910_ROUTE_3, 0.00, BURN_SND_ROUTE_BOTH); // suppressed?
|
||||||
|
|
||||||
DACInit(0, 0, 1, bestbestSyncDAC);
|
DACInit(0, 0, 1, bestbestSyncDAC);
|
||||||
DACInit(1, 0, 1, bestbestSyncDAC);
|
DACInit(1, 0, 1, bestbestSyncDAC);
|
||||||
|
@ -1938,21 +1941,8 @@ static INT32 BestbestFrame()
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||||
INT16* pSoundBuf = pSoundBuffer + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pSoundBuffer + (nSoundBufferPos << 1);
|
||||||
INT32 nSample;
|
|
||||||
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
|
@ -1962,22 +1952,9 @@ static INT32 BestbestFrame()
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pSoundBuffer + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pSoundBuffer + (nSoundBufferPos << 1);
|
||||||
INT32 nSample;
|
|
||||||
|
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1103,6 +1103,8 @@ static INT32 DrvInit()
|
||||||
m67805_taito_init(DrvMcuROM, DrvMcuRAM, &arkanoid_m68705_interface);
|
m67805_taito_init(DrvMcuROM, DrvMcuRAM, &arkanoid_m68705_interface);
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, &ay8910_read_port_5, &ay8910_read_port_4, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, &ay8910_read_port_5, &ay8910_read_port_4, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.33, BURN_SND_ROUTE_BOTH);
|
||||||
|
if (arkanoid_bootleg_id == HEXA) AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -1239,20 +1241,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -521,6 +521,8 @@ static INT32 DrvInit()
|
||||||
|
|
||||||
AY8910Init(0, 1536000, nBurnSoundRate, &ay8910_0_read_port_A, &ay8910_0_read_port_B, NULL, NULL);
|
AY8910Init(0, 1536000, nBurnSoundRate, &ay8910_0_read_port_A, &ay8910_0_read_port_B, NULL, NULL);
|
||||||
AY8910Init(1, 1536000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(1, 1536000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.15, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(0, 0.10, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
GenericTilesInit();
|
GenericTilesInit();
|
||||||
|
|
||||||
|
@ -681,29 +683,7 @@ static INT32 DrvFrame()
|
||||||
ZetClose();
|
ZetClose();
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample, xSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
|
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
AY8910Update(0, &pAY8910Buffer[3], nBurnSoundLen);
|
|
||||||
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
nSample = (nSample * 15) / 100;
|
|
||||||
|
|
||||||
xSample = pAY8910Buffer[0][n];
|
|
||||||
xSample += pAY8910Buffer[1][n];
|
|
||||||
xSample += pAY8910Buffer[2][n];
|
|
||||||
xSample = (xSample * 10) / 100;
|
|
||||||
|
|
||||||
nSample += xSample;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBurnDraw) {
|
if (pBurnDraw) {
|
||||||
|
|
|
@ -876,6 +876,7 @@ static INT32 DrvInit()
|
||||||
m67805_taito_init(DrvMcuROM, DrvMcuRAM, &standard_m68705_interface);
|
m67805_taito_init(DrvMcuROM, DrvMcuRAM, &standard_m68705_interface);
|
||||||
|
|
||||||
AY8910Init(0, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
AY8910Init(0, 2000000, nBurnSoundRate, NULL, NULL, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.10, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
DACInit(0, 0, 1, flstoryDACSync);
|
DACInit(0, 0, 1, flstoryDACSync);
|
||||||
DACSetVolShift(0, 2);
|
DACSetVolShift(0, 2);
|
||||||
|
@ -1179,21 +1180,7 @@ static INT32 DrvFrame()
|
||||||
ZetOpen(1);
|
ZetOpen(1);
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
AY8910Render(&pAY8910Buffer[0], pBurnSoundOut, nBurnSoundLen, 0);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen);
|
|
||||||
for (INT32 n = 0; n < nBurnSoundLen; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n];
|
|
||||||
nSample += pAY8910Buffer[1][n];
|
|
||||||
nSample += pAY8910Buffer[2][n];
|
|
||||||
|
|
||||||
nSample /= 4;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pBurnSoundOut[(n << 1) + 0] = nSample;
|
|
||||||
pBurnSoundOut[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
|
|
||||||
DACUpdate(pBurnSoundOut, nBurnSoundLen);
|
DACUpdate(pBurnSoundOut, nBurnSoundLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1407,7 +1394,11 @@ static INT32 victnineInit()
|
||||||
{
|
{
|
||||||
select_game = 2;
|
select_game = 2;
|
||||||
|
|
||||||
return DrvInit();
|
INT32 nRet = DrvInit();
|
||||||
|
|
||||||
|
AY8910SetAllRoutes(0, 0.50, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
|
return nRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct BurnDriverD BurnDrvVictnine = {
|
struct BurnDriverD BurnDrvVictnine = {
|
||||||
|
|
|
@ -2115,6 +2115,8 @@ static INT32 tigerhInit()
|
||||||
|
|
||||||
AY8910Init(0, 1500000, nBurnSoundRate, &tigerhReadPort0, &tigerhReadPort1, NULL, NULL);
|
AY8910Init(0, 1500000, nBurnSoundRate, &tigerhReadPort0, &tigerhReadPort1, NULL, NULL);
|
||||||
AY8910Init(1, 1500000, nBurnSoundRate, &tigerhReadPort2, &tigerhReadPort3, NULL, NULL);
|
AY8910Init(1, 1500000, nBurnSoundRate, &tigerhReadPort2, &tigerhReadPort3, NULL, NULL);
|
||||||
|
AY8910SetAllRoutes(0, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
AY8910SetAllRoutes(1, 0.25, BURN_SND_ROUTE_BOTH);
|
||||||
|
|
||||||
TigerHeliTextInit();
|
TigerHeliTextInit();
|
||||||
TigerHeliPaletteInit();
|
TigerHeliPaletteInit();
|
||||||
|
@ -2309,24 +2311,9 @@ static INT32 tigerhFrame()
|
||||||
{
|
{
|
||||||
// Render sound segment
|
// Render sound segment
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
INT32 nSegmentLength = nBurnSoundLen / nInterleave;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
nSoundBufferPos += nSegmentLength;
|
nSoundBufferPos += nSegmentLength;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2335,25 +2322,10 @@ static INT32 tigerhFrame()
|
||||||
{
|
{
|
||||||
// Make sure the buffer is entirely filled.
|
// Make sure the buffer is entirely filled.
|
||||||
if (pBurnSoundOut) {
|
if (pBurnSoundOut) {
|
||||||
INT32 nSample;
|
|
||||||
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
|
||||||
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
|
||||||
if (nSegmentLength) {
|
if (nSegmentLength) {
|
||||||
AY8910Update(0, &pAY8910Buffer[0], nSegmentLength);
|
AY8910Render(&pAY8910Buffer[0], pSoundBuf, nSegmentLength, 0);
|
||||||
AY8910Update(1, &pAY8910Buffer[3], nSegmentLength);
|
|
||||||
for (INT32 n = 0; n < nSegmentLength; n++) {
|
|
||||||
nSample = pAY8910Buffer[0][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[1][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[2][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[3][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[4][n] >> 2;
|
|
||||||
nSample += pAY8910Buffer[5][n] >> 2;
|
|
||||||
|
|
||||||
nSample = BURN_SND_CLIP(nSample);
|
|
||||||
|
|
||||||
pSoundBuf[(n << 1) + 0] = nSample;
|
|
||||||
pSoundBuf[(n << 1) + 1] = nSample;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue