aboutsummaryrefslogtreecommitdiff
path: root/src/chips
diff options
context:
space:
mode:
Diffstat (limited to 'src/chips')
-rw-r--r--src/chips/dosbox/dbopl.cpp54
-rw-r--r--src/chips/nuked/nukedopl3_174.c206
-rw-r--r--src/chips/nuked/nukedopl3_174.h2
3 files changed, 131 insertions, 131 deletions
diff --git a/src/chips/dosbox/dbopl.cpp b/src/chips/dosbox/dbopl.cpp
index 098eb13..7d78c5f 100644
--- a/src/chips/dosbox/dbopl.cpp
+++ b/src/chips/dosbox/dbopl.cpp
@@ -819,7 +819,7 @@ INLINE void Channel::GeneratePercussion( Chip* chip, Bit32s* output ) {
//BassDrum
Bit32s mod = (Bit32u)((old[0] + old[1])) >> feedback;
old[0] = old[1];
- old[1] = Op(0)->GetSample( mod );
+ old[1] = static_cast<Bit32u>(Op(0)->GetSample( mod ));
//When bassdrum is in AM mode first operator is ignoed
if ( chan->regC0 & 1 ) {
@@ -827,35 +827,35 @@ INLINE void Channel::GeneratePercussion( Chip* chip, Bit32s* output ) {
} else {
mod = old[0];
}
- Bit32s sample = Op(1)->GetSample( mod );
+ Bit32s sample = static_cast<Bit32u>(Op(1)->GetSample( mod ));
//Precalculate stuff used by other outputs
Bit32u noiseBit = chip->ForwardNoise() & 0x1;
- Bit32u c2 = Op(2)->ForwardWave();
- Bit32u c5 = Op(5)->ForwardWave();
+ Bit32u c2 = static_cast<Bit32u>(Op(2)->ForwardWave());
+ Bit32u c5 = static_cast<Bit32u>(Op(5)->ForwardWave());
Bit32u phaseBit = (((c2 & 0x88) ^ ((c2<<5) & 0x80)) | ((c5 ^ (c5<<2)) & 0x20)) ? 0x02 : 0x00;
//Hi-Hat
- Bit32u hhVol = Op(2)->ForwardVolume();
+ Bit32u hhVol = static_cast<Bit32u>(Op(2)->ForwardVolume());
if ( !ENV_SILENT( hhVol ) ) {
Bit32u hhIndex = (phaseBit<<8) | (0x34 << ( phaseBit ^ (noiseBit << 1 )));
- sample += Op(2)->GetWave( hhIndex, hhVol );
+ sample += static_cast<Bit32u>(Op(2)->GetWave( hhIndex, hhVol ));
}
//Snare Drum
- Bit32u sdVol = Op(3)->ForwardVolume();
+ Bit32u sdVol = static_cast<Bit32u>(Op(3)->ForwardVolume());
if ( !ENV_SILENT( sdVol ) ) {
Bit32u sdIndex = ( 0x100 + (c2 & 0x100) ) ^ ( noiseBit << 8 );
- sample += Op(3)->GetWave( sdIndex, sdVol );
+ sample += static_cast<Bit32u>(Op(3)->GetWave( sdIndex, sdVol ));
}
//Tom-tom
- sample += Op(4)->GetSample( 0 );
+ sample += static_cast<Bit32u>(Op(4)->GetSample( 0 ));
//Top-Cymbal
- Bit32u tcVol = Op(5)->ForwardVolume();
+ Bit32u tcVol = static_cast<Bit32u>(Op(5)->ForwardVolume());
if ( !ENV_SILENT( tcVol ) ) {
Bit32u tcIndex = (1 + phaseBit) << 8;
- sample += Op(5)->GetWave( tcIndex, tcVol );
+ sample += static_cast<Bit32u>(Op(5)->GetWave( tcIndex, tcVol ));
}
sample <<= 1;
if ( opl3Mode ) {
@@ -934,31 +934,31 @@ Channel* Channel::BlockTemplate( Chip* chip, Bit32u samples, Bit32s* output ) {
//Do unsigned shift so we can shift out all bits but still stay in 10 bit range otherwise
Bit32s mod = (Bit32u)((old[0] + old[1])) >> feedback;
old[0] = old[1];
- old[1] = Op(0)->GetSample( mod );
+ old[1] = static_cast<Bit32u>(Op(0)->GetSample( mod ));
Bit32s sample;
Bit32s out0 = old[0];
if ( mode == sm2AM || mode == sm3AM ) {
- sample = out0 + Op(1)->GetSample( 0 );
+ sample = static_cast<Bit32u>(out0 + Op(1)->GetSample( 0 ));
} else if ( mode == sm2FM || mode == sm3FM ) {
- sample = Op(1)->GetSample( out0 );
+ sample = static_cast<Bit32u>(Op(1)->GetSample( out0 ));
} else if ( mode == sm3FMFM ) {
Bits next = Op(1)->GetSample( out0 );
next = Op(2)->GetSample( next );
- sample = Op(3)->GetSample( next );
+ sample = static_cast<Bit32u>(Op(3)->GetSample( next ));
} else if ( mode == sm3AMFM ) {
sample = out0;
Bits next = Op(1)->GetSample( 0 );
next = Op(2)->GetSample( next );
- sample += Op(3)->GetSample( next );
+ sample += static_cast<Bit32u>(Op(3)->GetSample( next ));
} else if ( mode == sm3FMAM ) {
- sample = Op(1)->GetSample( out0 );
+ sample = static_cast<Bit32u>(Op(1)->GetSample( out0 ));
Bits next = Op(2)->GetSample( 0 );
- sample += Op(3)->GetSample( next );
+ sample += static_cast<Bit32u>(Op(3)->GetSample( next ));
} else if ( mode == sm3AMAM ) {
sample = out0;
Bits next = Op(1)->GetSample( 0 );
- sample += Op(2)->GetSample( next );
- sample += Op(3)->GetSample( 0 );
+ sample += static_cast<Bit32u>(Op(2)->GetSample( next ));
+ sample += static_cast<Bit32u>(Op(3)->GetSample( 0 ));
}
switch( mode ) {
case sm2AM:
@@ -1213,7 +1213,7 @@ Bit32u Chip::WriteAddr( Bit32u port, Bit8u val ) {
void Chip::GenerateBlock2( Bitu total, Bit32s* output ) {
while ( total > 0 ) {
- Bit32u samples = ForwardLFO( total );
+ Bit32u samples = ForwardLFO( static_cast<Bit32u>(total) );
memset(output, 0, sizeof(Bit32s) * samples);
// int count = 0;
for( Channel* ch = chan; ch < chan + 9; ) {
@@ -1227,7 +1227,7 @@ void Chip::GenerateBlock2( Bitu total, Bit32s* output ) {
void Chip::GenerateBlock2_Mix( Bitu total, Bit32s* output ) {
while ( total > 0 ) {
- Bit32u samples = ForwardLFO( total );
+ Bit32u samples = ForwardLFO( static_cast<Bit32u>(total) );
// int count = 0;
for( Channel* ch = chan; ch < chan + 9; ) {
// count++;
@@ -1240,7 +1240,7 @@ void Chip::GenerateBlock2_Mix( Bitu total, Bit32s* output ) {
void Chip::GenerateBlock3( Bitu total, Bit32s* output ) {
while ( total > 0 ) {
- Bit32u samples = ForwardLFO( total );
+ Bit32u samples = ForwardLFO( static_cast<Bit32u>(total) );
memset(output, 0, sizeof(Bit32s) * samples *2);
// int count = 0;
for( Channel* ch = chan; ch < chan + 18; ) {
@@ -1254,7 +1254,7 @@ void Chip::GenerateBlock3( Bitu total, Bit32s* output ) {
void Chip::GenerateBlock3_Mix( Bitu total, Bit32s* output ) {
while ( total > 0 ) {
- Bit32u samples = ForwardLFO( total );
+ Bit32u samples = ForwardLFO( static_cast<Bit32u>(total) );
// int count = 0;
for( Channel* ch = chan; ch < chan + 18; ) {
// count++;
@@ -1500,7 +1500,7 @@ void InitTables( void ) {
if ( i >= 16 )
index += 9;
Bitu blah = reinterpret_cast<Bitu>( &(chip->chan[ index ]) );
- ChanOffsetTable[i] = blah;
+ ChanOffsetTable[i] = static_cast<Bit16u>(blah);
}
//Same for operators
for ( Bitu i = 0; i < 64; i++ ) {
@@ -1515,7 +1515,7 @@ void InitTables( void ) {
Bitu opNum = ( i % 8 ) / 3;
DBOPL::Channel* chan = 0;
Bitu blah = reinterpret_cast<Bitu>( &(chan->op[opNum]) );
- OpOffsetTable[i] = ChanOffsetTable[ chNum ] + blah;
+ OpOffsetTable[i] = static_cast<Bit16u>(ChanOffsetTable[ chNum ] + blah);
}
#if 0
//Stupid checks if table's are correct
@@ -1611,7 +1611,7 @@ void Handler::GenerateArrMix(Bit16s *out, Bitu *samples)
void Handler::Init( Bitu rate ) {
InitTables();
- chip.Setup( rate );
+ chip.Setup( static_cast<Bit32u>(rate) );
}
diff --git a/src/chips/nuked/nukedopl3_174.c b/src/chips/nuked/nukedopl3_174.c
index 401089c..99eab16 100644
--- a/src/chips/nuked/nukedopl3_174.c
+++ b/src/chips/nuked/nukedopl3_174.c
@@ -638,18 +638,18 @@ static void OPL3_ChannelUpdateRhythm(opl3_chip *chip, Bit8u data)
channel6 = &chip->channel[6];
channel7 = &chip->channel[7];
channel8 = &chip->channel[8];
- channel6->out[0] = &channel6->slots[1]->out;
- channel6->out[1] = &channel6->slots[1]->out;
+ channel6->out[0] = &channel6->slotz[1]->out;
+ channel6->out[1] = &channel6->slotz[1]->out;
channel6->out[2] = &chip->zeromod;
channel6->out[3] = &chip->zeromod;
- channel7->out[0] = &channel7->slots[0]->out;
- channel7->out[1] = &channel7->slots[0]->out;
- channel7->out[2] = &channel7->slots[1]->out;
- channel7->out[3] = &channel7->slots[1]->out;
- channel8->out[0] = &channel8->slots[0]->out;
- channel8->out[1] = &channel8->slots[0]->out;
- channel8->out[2] = &channel8->slots[1]->out;
- channel8->out[3] = &channel8->slots[1]->out;
+ channel7->out[0] = &channel7->slotz[0]->out;
+ channel7->out[1] = &channel7->slotz[0]->out;
+ channel7->out[2] = &channel7->slotz[1]->out;
+ channel7->out[3] = &channel7->slotz[1]->out;
+ channel8->out[0] = &channel8->slotz[0]->out;
+ channel8->out[1] = &channel8->slotz[0]->out;
+ channel8->out[2] = &channel8->slotz[1]->out;
+ channel8->out[3] = &channel8->slotz[1]->out;
for (chnum = 6; chnum < 9; chnum++)
{
chip->channel[chnum].chtype = ch_drum;
@@ -658,49 +658,49 @@ static void OPL3_ChannelUpdateRhythm(opl3_chip *chip, Bit8u data)
/*hh*/
if (chip->rhy & 0x01)
{
- OPL3_EnvelopeKeyOn(channel7->slots[0], egk_drum);
+ OPL3_EnvelopeKeyOn(channel7->slotz[0], egk_drum);
}
else
{
- OPL3_EnvelopeKeyOff(channel7->slots[0], egk_drum);
+ OPL3_EnvelopeKeyOff(channel7->slotz[0], egk_drum);
}
/*tc*/
if (chip->rhy & 0x02)
{
- OPL3_EnvelopeKeyOn(channel8->slots[1], egk_drum);
+ OPL3_EnvelopeKeyOn(channel8->slotz[1], egk_drum);
}
else
{
- OPL3_EnvelopeKeyOff(channel8->slots[1], egk_drum);
+ OPL3_EnvelopeKeyOff(channel8->slotz[1], egk_drum);
}
/*tom*/
if (chip->rhy & 0x04)
{
- OPL3_EnvelopeKeyOn(channel8->slots[0], egk_drum);
+ OPL3_EnvelopeKeyOn(channel8->slotz[0], egk_drum);
}
else
{
- OPL3_EnvelopeKeyOff(channel8->slots[0], egk_drum);
+ OPL3_EnvelopeKeyOff(channel8->slotz[0], egk_drum);
}
/*sd*/
if (chip->rhy & 0x08)
{
- OPL3_EnvelopeKeyOn(channel7->slots[1], egk_drum);
+ OPL3_EnvelopeKeyOn(channel7->slotz[1], egk_drum);
}
else
{
- OPL3_EnvelopeKeyOff(channel7->slots[1], egk_drum);
+ OPL3_EnvelopeKeyOff(channel7->slotz[1], egk_drum);
}
/*bd*/
if (chip->rhy & 0x10)
{
- OPL3_EnvelopeKeyOn(channel6->slots[0], egk_drum);
- OPL3_EnvelopeKeyOn(channel6->slots[1], egk_drum);
+ OPL3_EnvelopeKeyOn(channel6->slotz[0], egk_drum);
+ OPL3_EnvelopeKeyOn(channel6->slotz[1], egk_drum);
}
else
{
- OPL3_EnvelopeKeyOff(channel6->slots[0], egk_drum);
- OPL3_EnvelopeKeyOff(channel6->slots[1], egk_drum);
+ OPL3_EnvelopeKeyOff(channel6->slotz[0], egk_drum);
+ OPL3_EnvelopeKeyOff(channel6->slotz[1], egk_drum);
}
}
else
@@ -709,8 +709,8 @@ static void OPL3_ChannelUpdateRhythm(opl3_chip *chip, Bit8u data)
{
chip->channel[chnum].chtype = ch_2op;
OPL3_ChannelSetupAlg(&chip->channel[chnum]);
- OPL3_EnvelopeKeyOff(chip->channel[chnum].slots[0], egk_drum);
- OPL3_EnvelopeKeyOff(chip->channel[chnum].slots[1], egk_drum);
+ OPL3_EnvelopeKeyOff(chip->channel[chnum].slotz[0], egk_drum);
+ OPL3_EnvelopeKeyOff(chip->channel[chnum].slotz[1], egk_drum);
}
}
}
@@ -724,18 +724,18 @@ static void OPL3_ChannelWriteA0(opl3_channel *channel, Bit8u data)
channel->f_num = (channel->f_num & 0x300) | data;
channel->ksv = (channel->block << 1)
| ((channel->f_num >> (0x09 - channel->chip->nts)) & 0x01);
- OPL3_EnvelopeUpdateKSL(channel->slots[0]);
- OPL3_EnvelopeUpdateKSL(channel->slots[1]);
- OPL3_EnvelopeUpdateRate(channel->slots[0]);
- OPL3_EnvelopeUpdateRate(channel->slots[1]);
+ OPL3_EnvelopeUpdateKSL(channel->slotz[0]);
+ OPL3_EnvelopeUpdateKSL(channel->slotz[1]);
+ OPL3_EnvelopeUpdateRate(channel->slotz[0]);
+ OPL3_EnvelopeUpdateRate(channel->slotz[1]);
if (channel->chip->newm && channel->chtype == ch_4op)
{
channel->pair->f_num = channel->f_num;
channel->pair->ksv = channel->ksv;
- OPL3_EnvelopeUpdateKSL(channel->pair->slots[0]);
- OPL3_EnvelopeUpdateKSL(channel->pair->slots[1]);
- OPL3_EnvelopeUpdateRate(channel->pair->slots[0]);
- OPL3_EnvelopeUpdateRate(channel->pair->slots[1]);
+ OPL3_EnvelopeUpdateKSL(channel->pair->slotz[0]);
+ OPL3_EnvelopeUpdateKSL(channel->pair->slotz[1]);
+ OPL3_EnvelopeUpdateRate(channel->pair->slotz[0]);
+ OPL3_EnvelopeUpdateRate(channel->pair->slotz[1]);
}
}
@@ -749,19 +749,19 @@ static void OPL3_ChannelWriteB0(opl3_channel *channel, Bit8u data)
channel->block = (data >> 2) & 0x07;
channel->ksv = (channel->block << 1)
| ((channel->f_num >> (0x09 - channel->chip->nts)) & 0x01);
- OPL3_EnvelopeUpdateKSL(channel->slots[0]);
- OPL3_EnvelopeUpdateKSL(channel->slots[1]);
- OPL3_EnvelopeUpdateRate(channel->slots[0]);
- OPL3_EnvelopeUpdateRate(channel->slots[1]);
+ OPL3_EnvelopeUpdateKSL(channel->slotz[0]);
+ OPL3_EnvelopeUpdateKSL(channel->slotz[1]);
+ OPL3_EnvelopeUpdateRate(channel->slotz[0]);
+ OPL3_EnvelopeUpdateRate(channel->slotz[1]);
if (channel->chip->newm && channel->chtype == ch_4op)
{
channel->pair->f_num = channel->f_num;
channel->pair->block = channel->block;
channel->pair->ksv = channel->ksv;
- OPL3_EnvelopeUpdateKSL(channel->pair->slots[0]);
- OPL3_EnvelopeUpdateKSL(channel->pair->slots[1]);
- OPL3_EnvelopeUpdateRate(channel->pair->slots[0]);
- OPL3_EnvelopeUpdateRate(channel->pair->slots[1]);
+ OPL3_EnvelopeUpdateKSL(channel->pair->slotz[0]);
+ OPL3_EnvelopeUpdateKSL(channel->pair->slotz[1]);
+ OPL3_EnvelopeUpdateRate(channel->pair->slotz[0]);
+ OPL3_EnvelopeUpdateRate(channel->pair->slotz[1]);
}
}
@@ -772,12 +772,12 @@ static void OPL3_ChannelSetupAlg(opl3_channel *channel)
switch (channel->alg & 0x01)
{
case 0x00:
- channel->slots[0]->mod = &channel->slots[0]->fbmod;
- channel->slots[1]->mod = &channel->slots[0]->out;
+ channel->slotz[0]->mod = &channel->slotz[0]->fbmod;
+ channel->slotz[1]->mod = &channel->slotz[0]->out;
break;
case 0x01:
- channel->slots[0]->mod = &channel->slots[0]->fbmod;
- channel->slots[1]->mod = &channel->chip->zeromod;
+ channel->slotz[0]->mod = &channel->slotz[0]->fbmod;
+ channel->slotz[1]->mod = &channel->chip->zeromod;
break;
}
return;
@@ -795,43 +795,43 @@ static void OPL3_ChannelSetupAlg(opl3_channel *channel)
switch (channel->alg & 0x03)
{
case 0x00:
- channel->pair->slots[0]->mod = &channel->pair->slots[0]->fbmod;
- channel->pair->slots[1]->mod = &channel->pair->slots[0]->out;
- channel->slots[0]->mod = &channel->pair->slots[1]->out;
- channel->slots[1]->mod = &channel->slots[0]->out;
- channel->out[0] = &channel->slots[1]->out;
+ channel->pair->slotz[0]->mod = &channel->pair->slotz[0]->fbmod;
+ channel->pair->slotz[1]->mod = &channel->pair->slotz[0]->out;
+ channel->slotz[0]->mod = &channel->pair->slotz[1]->out;
+ channel->slotz[1]->mod = &channel->slotz[0]->out;
+ channel->out[0] = &channel->slotz[1]->out;
channel->out[1] = &channel->chip->zeromod;
channel->out[2] = &channel->chip->zeromod;
channel->out[3] = &channel->chip->zeromod;
break;
case 0x01:
- channel->pair->slots[0]->mod = &channel->pair->slots[0]->fbmod;
- channel->pair->slots[1]->mod = &channel->pair->slots[0]->out;
- channel->slots[0]->mod = &channel->chip->zeromod;
- channel->slots[1]->mod = &channel->slots[0]->out;
- channel->out[0] = &channel->pair->slots[1]->out;
- channel->out[1] = &channel->slots[1]->out;
+ channel->pair->slotz[0]->mod = &channel->pair->slotz[0]->fbmod;
+ channel->pair->slotz[1]->mod = &channel->pair->slotz[0]->out;
+ channel->slotz[0]->mod = &channel->chip->zeromod;
+ channel->slotz[1]->mod = &channel->slotz[0]->out;
+ channel->out[0] = &channel->pair->slotz[1]->out;
+ channel->out[1] = &channel->slotz[1]->out;
channel->out[2] = &channel->chip->zeromod;
channel->out[3] = &channel->chip->zeromod;
break;
case 0x02:
- channel->pair->slots[0]->mod = &channel->pair->slots[0]->fbmod;
- channel->pair->slots[1]->mod = &channel->chip->zeromod;
- channel->slots[0]->mod = &channel->pair->slots[1]->out;
- channel->slots[1]->mod = &channel->slots[0]->out;
- channel->out[0] = &channel->pair->slots[0]->out;
- channel->out[1] = &channel->slots[1]->out;
+ channel->pair->slotz[0]->mod = &channel->pair->slotz[0]->fbmod;
+ channel->pair->slotz[1]->mod = &channel->chip->zeromod;
+ channel->slotz[0]->mod = &channel->pair->slotz[1]->out;
+ channel->slotz[1]->mod = &channel->slotz[0]->out;
+ channel->out[0] = &channel->pair->slotz[0]->out;
+ channel->out[1] = &channel->slotz[1]->out;
channel->out[2] = &channel->chip->zeromod;
channel->out[3] = &channel->chip->zeromod;
break;
case 0x03:
- channel->pair->slots[0]->mod = &channel->pair->slots[0]->fbmod;
- channel->pair->slots[1]->mod = &channel->chip->zeromod;
- channel->slots[0]->mod = &channel->pair->slots[1]->out;
- channel->slots[1]->mod = &channel->chip->zeromod;
- channel->out[0] = &channel->pair->slots[0]->out;
- channel->out[1] = &channel->slots[0]->out;
- channel->out[2] = &channel->slots[1]->out;
+ channel->pair->slotz[0]->mod = &channel->pair->slotz[0]->fbmod;
+ channel->pair->slotz[1]->mod = &channel->chip->zeromod;
+ channel->slotz[0]->mod = &channel->pair->slotz[1]->out;
+ channel->slotz[1]->mod = &channel->chip->zeromod;
+ channel->out[0] = &channel->pair->slotz[0]->out;
+ channel->out[1] = &channel->slotz[0]->out;
+ channel->out[2] = &channel->slotz[1]->out;
channel->out[3] = &channel->chip->zeromod;
break;
}
@@ -841,18 +841,18 @@ static void OPL3_ChannelSetupAlg(opl3_channel *channel)
switch (channel->alg & 0x01)
{
case 0x00:
- channel->slots[0]->mod = &channel->slots[0]->fbmod;
- channel->slots[1]->mod = &channel->slots[0]->out;
- channel->out[0] = &channel->slots[1]->out;
+ channel->slotz[0]->mod = &channel->slotz[0]->fbmod;
+ channel->slotz[1]->mod = &channel->slotz[0]->out;
+ channel->out[0] = &channel->slotz[1]->out;
channel->out[1] = &channel->chip->zeromod;
channel->out[2] = &channel->chip->zeromod;
channel->out[3] = &channel->chip->zeromod;
break;
case 0x01:
- channel->slots[0]->mod = &channel->slots[0]->fbmod;
- channel->slots[1]->mod = &channel->chip->zeromod;
- channel->out[0] = &channel->slots[0]->out;
- channel->out[1] = &channel->slots[1]->out;
+ channel->slotz[0]->mod = &channel->slotz[0]->fbmod;
+ channel->slotz[1]->mod = &channel->chip->zeromod;
+ channel->out[0] = &channel->slotz[0]->out;
+ channel->out[1] = &channel->slotz[1]->out;
channel->out[2] = &channel->chip->zeromod;
channel->out[3] = &channel->chip->zeromod;
break;
@@ -905,21 +905,21 @@ static void OPL3_ChannelKeyOn(opl3_channel *channel)
{
if (channel->chtype == ch_4op)
{
- OPL3_EnvelopeKeyOn(channel->slots[0], egk_norm);
- OPL3_EnvelopeKeyOn(channel->slots[1], egk_norm);
- OPL3_EnvelopeKeyOn(channel->pair->slots[0], egk_norm);
- OPL3_EnvelopeKeyOn(channel->pair->slots[1], egk_norm);
+ OPL3_EnvelopeKeyOn(channel->slotz[0], egk_norm);
+ OPL3_EnvelopeKeyOn(channel->slotz[1], egk_norm);
+ OPL3_EnvelopeKeyOn(channel->pair->slotz[0], egk_norm);
+ OPL3_EnvelopeKeyOn(channel->pair->slotz[1], egk_norm);
}
else if (channel->chtype == ch_2op || channel->chtype == ch_drum)
{
- OPL3_EnvelopeKeyOn(channel->slots[0], egk_norm);
- OPL3_EnvelopeKeyOn(channel->slots[1], egk_norm);
+ OPL3_EnvelopeKeyOn(channel->slotz[0], egk_norm);
+ OPL3_EnvelopeKeyOn(channel->slotz[1], egk_norm);
}
}
else
{
- OPL3_EnvelopeKeyOn(channel->slots[0], egk_norm);
- OPL3_EnvelopeKeyOn(channel->slots[1], egk_norm);
+ OPL3_EnvelopeKeyOn(channel->slotz[0], egk_norm);
+ OPL3_EnvelopeKeyOn(channel->slotz[1], egk_norm);
}
}
@@ -929,21 +929,21 @@ static void OPL3_ChannelKeyOff(opl3_channel *channel)
{
if (channel->chtype == ch_4op)
{
- OPL3_EnvelopeKeyOff(channel->slots[0], egk_norm);
- OPL3_EnvelopeKeyOff(channel->slots[1], egk_norm);
- OPL3_EnvelopeKeyOff(channel->pair->slots[0], egk_norm);
- OPL3_EnvelopeKeyOff(channel->pair->slots[1], egk_norm);
+ OPL3_EnvelopeKeyOff(channel->slotz[0], egk_norm);
+ OPL3_EnvelopeKeyOff(channel->slotz[1], egk_norm);
+ OPL3_EnvelopeKeyOff(channel->pair->slotz[0], egk_norm);
+ OPL3_EnvelopeKeyOff(channel->pair->slotz[1], egk_norm);
}
else if (channel->chtype == ch_2op || channel->chtype == ch_drum)
{
- OPL3_EnvelopeKeyOff(channel->slots[0], egk_norm);
- OPL3_EnvelopeKeyOff(channel->slots[1], egk_norm);
+ OPL3_EnvelopeKeyOff(channel->slotz[0], egk_norm);
+ OPL3_EnvelopeKeyOff(channel->slotz[1], egk_norm);
}
}
else
{
- OPL3_EnvelopeKeyOff(channel->slots[0], egk_norm);
- OPL3_EnvelopeKeyOff(channel->slots[1], egk_norm);
+ OPL3_EnvelopeKeyOff(channel->slotz[0], egk_norm);
+ OPL3_EnvelopeKeyOff(channel->slotz[1], egk_norm);
}
}
@@ -997,9 +997,9 @@ static void OPL3_GenerateRhythm1(opl3_chip *chip)
channel6 = &chip->channel[6];
channel7 = &chip->channel[7];
channel8 = &chip->channel[8];
- OPL3_SlotGenerate(channel6->slots[0]);
- phase14 = (channel7->slots[0]->pg_phase >> 9) & 0x3ff;
- phase17 = (channel8->slots[1]->pg_phase >> 9) & 0x3ff;
+ OPL3_SlotGenerate(channel6->slotz[0]);
+ phase14 = (channel7->slotz[0]->pg_phase >> 9) & 0x3ff;
+ phase17 = (channel8->slotz[1]->pg_phase >> 9) & 0x3ff;
phase = 0x00;
/*hh tc phase bit*/
phasebit = ((phase14 & 0x08) | (((phase14 >> 5) ^ phase14) & 0x04)
@@ -1007,9 +1007,9 @@ static void OPL3_GenerateRhythm1(opl3_chip *chip)
/*hh*/
phase = (phasebit << 9)
| (0x34 << ((phasebit ^ (chip->noise & 0x01)) << 1));
- OPL3_SlotGeneratePhase(channel7->slots[0], phase);
+ OPL3_SlotGeneratePhase(channel7->slotz[0], phase);
/*tt*/
- OPL3_SlotGenerateZM(channel8->slots[0]);
+ OPL3_SlotGenerateZM(channel8->slotz[0]);
}
static void OPL3_GenerateRhythm2(opl3_chip *chip)
@@ -1025,19 +1025,19 @@ static void OPL3_GenerateRhythm2(opl3_chip *chip)
channel6 = &chip->channel[6];
channel7 = &chip->channel[7];
channel8 = &chip->channel[8];
- OPL3_SlotGenerate(channel6->slots[1]);
- phase14 = (channel7->slots[0]->pg_phase >> 9) & 0x3ff;
- phase17 = (channel8->slots[1]->pg_phase >> 9) & 0x3ff;
+ OPL3_SlotGenerate(channel6->slotz[1]);
+ phase14 = (channel7->slotz[0]->pg_phase >> 9) & 0x3ff;
+ phase17 = (channel8->slotz[1]->pg_phase >> 9) & 0x3ff;
phase = 0x00;
/*hh tc phase bit*/
phasebit = ((phase14 & 0x08) | (((phase14 >> 5) ^ phase14) & 0x04)
| (((phase17 >> 2) ^ phase17) & 0x08)) ? 0x01 : 0x00;
/*sd*/
phase = (0x100 << ((phase14 >> 8) & 0x01)) ^ ((chip->noise & 0x01) << 8);
- OPL3_SlotGeneratePhase(channel7->slots[1], phase);
+ OPL3_SlotGeneratePhase(channel7->slotz[1], phase);
/*tc*/
phase = 0x100 | (phasebit << 9);
- OPL3_SlotGeneratePhase(channel8->slots[1], phase);
+ OPL3_SlotGeneratePhase(channel8->slotz[1], phase);
}
void OPL3v17_Generate(opl3_chip *chip, Bit16s *buf)
@@ -1202,8 +1202,8 @@ void OPL3v17_Reset(opl3_chip *chip, Bit32u samplerate)
}
for (channum = 0; channum < 18; channum++)
{
- chip->channel[channum].slots[0] = &chip->chipslot[ch_slot[channum]];
- chip->channel[channum].slots[1] = &chip->chipslot[ch_slot[channum] + 3];
+ chip->channel[channum].slotz[0] = &chip->chipslot[ch_slot[channum]];
+ chip->channel[channum].slotz[1] = &chip->chipslot[ch_slot[channum] + 3];
chip->chipslot[ch_slot[channum]].channel = &chip->channel[channum];
chip->chipslot[ch_slot[channum] + 3].channel = &chip->channel[channum];
if ((channum % 9) < 3)
diff --git a/src/chips/nuked/nukedopl3_174.h b/src/chips/nuked/nukedopl3_174.h
index 43e4a6e..240802f 100644
--- a/src/chips/nuked/nukedopl3_174.h
+++ b/src/chips/nuked/nukedopl3_174.h
@@ -91,7 +91,7 @@ struct _opl3_slot {
};
struct _opl3_channel {
- opl3_slot *slots[2];
+ opl3_slot *slotz[2];/*Don't use "slots" keyword to avoid conflict with Qt applications*/
opl3_channel *pair;
opl3_chip *chip;
Bit16s *out[4];