diff options
Diffstat (limited to 'src/dbopl.cpp')
-rw-r--r-- | src/dbopl.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/dbopl.cpp b/src/dbopl.cpp index cd857f4..fb28e20 100644 --- a/src/dbopl.cpp +++ b/src/dbopl.cpp @@ -1997,7 +1997,7 @@ namespace DBOPL Bit32s out32[1024]; if(GCC_UNLIKELY(*samples > 512)) *samples = 512; - memset(out32, 0, sizeof(Bit32s) * size_t(*samples) * 2); + memset(out32, 0, sizeof(Bit32s) * 1024); if(!chip.opl3Active) chip.GenerateBlock2(static_cast<Bitu>(*samples), out32); else @@ -2011,7 +2011,6 @@ namespace DBOPL { if(GCC_UNLIKELY(*samples > 512)) *samples = 512; - if(!chip.opl3Active) chip.GenerateBlock2_Mix(static_cast<Bitu>(*samples), out); else @@ -2023,11 +2022,11 @@ namespace DBOPL Bit32s out32[1024]; if(GCC_UNLIKELY(*samples > 512)) *samples = 512; - memset(out32, 0, sizeof(Bit32s) * size_t(*samples) * 2); + memset(out32, 0, sizeof(Bit32s) * 1024); if(!chip.opl3Active) - chip.GenerateBlock2_Mix(static_cast<Bitu>(*samples), out32); + chip.GenerateBlock2(static_cast<Bitu>(*samples), out32); else - chip.GenerateBlock3_Mix(static_cast<Bitu>(*samples), out32); + chip.GenerateBlock3(static_cast<Bitu>(*samples), out32); ssize_t sz = *samples * 2; for(ssize_t i = 0; i < sz; i++) out[i] += static_cast<Bit16s>(DBOPL_CLAMP(out32[i], static_cast<ssize_t>(INT16_MIN), static_cast<ssize_t>(INT16_MAX))); |