diff options
Diffstat (limited to 'audio')
-rw-r--r-- | audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp b/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp index b73030e416..e3d86b3515 100644 --- a/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp +++ b/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp @@ -1317,17 +1317,15 @@ void TownsPC98_FmSynth::setLevelSSG(int vol) { void TownsPC98_FmSynth::generateTables() { delete[] _oprRates; - _oprRates = new uint8[128]; + _oprRates = new uint8[130]; WRITE_BE_UINT32(_oprRates + 32, _numChan == 6 ? 0x90900000 : 0x00081018); WRITE_BE_UINT32(_oprRates + 36, _numChan == 6 ? 0x00001010 : 0x00081018); memset(_oprRates, 0x90, 32); - memset(&_oprRates[96], 0x80, 32); + memset(&_oprRates[96], 0x80, 34); uint8 *dst = (uint8 *)_oprRates + 40; for (int i = 0; i < 40; i += 4) WRITE_BE_UINT32(dst + i, 0x00081018); - for (int i = 0; i < 48; i += 4) - WRITE_BE_UINT32(dst + i, 0x00081018); dst += 40; for (uint8 i = 0; i < 16; i ++) { uint8 v = (i < 12) ? i : 12; @@ -1335,8 +1333,8 @@ void TownsPC98_FmSynth::generateTables() { } delete[] _oprRateshift; - _oprRateshift = new uint8[128]; - memset(_oprRateshift, 0, 128); + _oprRateshift = new uint8[130]; + memset(_oprRateshift, 0, 130); dst = (uint8 *)_oprRateshift + 32; for (int i = 11; i; i--) { memset(dst, i, 4); |