diff options
| author | Takamichi Horikawa <takamichiho@gmail.com> | 2017-09-27 23:16:40 +0900 | 
|---|---|---|
| committer | Takamichi Horikawa <takamichiho@gmail.com> | 2017-09-27 23:16:40 +0900 | 
| commit | abba98ed83f59263c4b952d61ce9892f9270ee67 (patch) | |
| tree | e524fcc992e571e6e1d5cbc382173f28d26a7f77 /fmdriver | |
| parent | 321ee784f75abbbec2fc6cce52ed56fb578da24c (diff) | |
pmd: fixed adpcm/ppz8 ssg new envelope overflow
Diffstat (limited to 'fmdriver')
| -rw-r--r-- | fmdriver/fmdriver_pmd.c | 22 | 
1 files changed, 12 insertions, 10 deletions
| diff --git a/fmdriver/fmdriver_pmd.c b/fmdriver/fmdriver_pmd.c index a3a50c3..f4eaab7 100644 --- a/fmdriver/fmdriver_pmd.c +++ b/fmdriver/fmdriver_pmd.c @@ -1650,13 +1650,14 @@ static void pmd_adpcm_vol_out(          vol = 0;          // -> 053f        } else { -        vol = (vol * (envvol+1)) >> 3; -        if (vol & 1) { -          vol >>= 1; -          vol++; +        int ivol = (vol * (envvol+1)) >> 3; +        if (ivol & 1) { +          ivol >>= 1; +          ivol++;          } else { -          vol >>= 1; +          ivol >>= 1;          } +        vol = ivol;        }      } else {        // 04e8 @@ -1711,13 +1712,14 @@ static void pmd_ppz8_vol_out(          vol = 0;          // -> 0bd4        } else { -        vol = (vol * (envvol+1)) >> 3; -        if (vol & 1) { -          vol >>= 1; -          vol++; +        int ivol = (vol * (envvol+1)) >> 3; +        if (ivol & 1) { +          ivol >>= 1; +          ivol++;          } else { -          vol >>= 1; +          ivol >>= 1;          } +        vol = ivol;        }      } else {        // 0b7d | 
