diff --git a/src/hardware/dbopl.cpp b/src/hardware/dbopl.cpp index df1c7548..56153353 100644 --- a/src/hardware/dbopl.cpp +++ b/src/hardware/dbopl.cpp @@ -619,6 +619,7 @@ Operator::Operator() { currentLevel = ENV_MAX; totalLevel = ENV_MAX; volume = ENV_MAX; + releaseAdd = 0; } /* @@ -1176,9 +1177,7 @@ Bit32u Chip::WriteAddr( Bit32u port, Bit8u val ) { void Chip::GenerateBlock2( Bitu total, Bit32s* output ) { while ( total > 0 ) { Bit32u samples = ForwardLFO( total ); - for ( Bitu i = 0; i < samples; i++ ) { - output[i] = 0; - } + memset(output, 0, sizeof(Bit32s) * samples); int count = 0; for( Channel* ch = chan; ch < chan + 9; ) { count++; @@ -1192,10 +1191,7 @@ void Chip::GenerateBlock2( Bitu total, Bit32s* output ) { void Chip::GenerateBlock3( Bitu total, Bit32s* output ) { while ( total > 0 ) { Bit32u samples = ForwardLFO( total ); - for ( Bitu i = 0; i < samples; i++ ) { - output[i * 2 + 0 ] = 0; - output[i * 2 + 1 ] = 0; - } + memset(output, 0, sizeof(Bit32s) * samples *2); int count = 0; for( Channel* ch = chan; ch < chan + 18; ) { count++;