aboutsummaryrefslogtreecommitdiff
path: root/src/dbopl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dbopl.cpp')
-rw-r--r--src/dbopl.cpp13
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 );