diff options
Diffstat (limited to 'src/dbopl.cpp')
-rw-r--r-- | src/dbopl.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/dbopl.cpp b/src/dbopl.cpp index 54df48c..809d394 100644 --- a/src/dbopl.cpp +++ b/src/dbopl.cpp @@ -1551,10 +1551,21 @@ void Handler::Generate( void(*AddSamples_m32)(Bitu,Bit32s*), AddSamples_m32( samples, buffer ); } else { chip.GenerateBlock3( samples, buffer ); - AddSamples_s32( samples, buffer ); + AddSamples_s32( samples, buffer ); } } +void Handler::GenerateArr(Bit32s* out, Bitu *samples ) +{ + if ( GCC_UNLIKELY(*samples > 512) ) + *samples = 512; + if ( !chip.opl3Active ) { + chip.GenerateBlock2( *samples, out ); + } else { + chip.GenerateBlock3( *samples, out ); + } +} + void Handler::Init( Bitu rate ) { InitTables(); chip.Setup( rate ); |