From 6077a5086ea0b37a4777b2d2f36f484705480861 Mon Sep 17 00:00:00 2001 From: Chris Moeller Date: Wed, 29 Jun 2016 23:09:16 -0700 Subject: [PATCH] Update HCA decoder to ignore relative volume adjustment header field, since it can sometimes be wrong. --- Frameworks/vgmstream/vgmstream/ext_libs/clHCA.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Frameworks/vgmstream/vgmstream/ext_libs/clHCA.c b/Frameworks/vgmstream/vgmstream/ext_libs/clHCA.c index bf2d122b3..c81f6a2f1 100644 --- a/Frameworks/vgmstream/vgmstream/ext_libs/clHCA.c +++ b/Frameworks/vgmstream/vgmstream/ext_libs/clHCA.c @@ -740,7 +740,7 @@ int clHCA_DecodeToWavefile_Decode(clHCA *hca,void *fp1,void *fp2,unsigned int ad for(i=0;i<8;i++){ for(j=0;j<0x80;j++){ for(k=0,m=hca->_channelCount;k_rva_volume; if(f>1){f=1;}else if(f<-1){f=-1;} ((void (*)(float,void *))modeFunction)(f,fp2); } @@ -793,11 +793,11 @@ void clHCA_DecodeSamples16(clHCA *hca,signed short *samples){ const float scale = 32768.0f; float f; signed int s; - const float _rva_volume=hca->_rva_volume; + //const float _rva_volume=hca->_rva_volume; for(int i=0;i<8;i++){ for(int j=0;j<0x80;j++){ for(unsigned int k=0,l=hca->_channelCount;k_channel[k].wave[i][j]*_rva_volume; + f=hca->_channel[k].wave[i][j]/**_rva_volume*/; if(f>1){f=1;}else if(f<-1){f=-1;} s=(signed int)(f*scale); if ((unsigned)(s+0x8000)&0xFFFF0000)s=(s>>31)^0x7FFF;