BSR debug

This commit is contained in:
tildearrow 2024-01-25 15:46:08 -05:00
parent 91bddb8df6
commit ed007526ff
2 changed files with 5 additions and 3 deletions

View file

@ -64,7 +64,7 @@ static inline int bsr(unsigned short v) {
unsigned short mask = 0x8000; unsigned short mask = 0x8000;
for (int i = 15; i >= 0; --i) { for (int i = 15; i >= 0; --i) {
if (v&mask) if (v&mask)
return (int)i; return i;
mask>>=1; mask>>=1;
} }
@ -75,7 +75,7 @@ static inline int bsr32(unsigned int v) {
unsigned int mask = 0x80000000; unsigned int mask = 0x80000000;
for (int i = 31; i >= 0; --i) { for (int i = 31; i >= 0; --i) {
if (v&mask) if (v&mask)
return (int)i; return i;
mask>>=1; mask>>=1;
} }

View file

@ -210,7 +210,9 @@ void DivPlatformPowerNoise::tick(bool sysTick) {
if (chan[i].freq<0) chan[i].freq=0; if (chan[i].freq<0) chan[i].freq=0;
if (chan[i].freq>0x7ffffff) chan[i].freq=0x7ffffff; if (chan[i].freq>0x7ffffff) chan[i].freq=0x7ffffff;
chan[i].octave=MAX(bsr32(chan[i].freq)-12,0); int bsr32Val=bsr32(chan[i].freq);
logV("%x: %d",chan[i].freq,bsr32Val);
chan[i].octave=MAX(bsr32Val-12,0);
if (chan[i].octave>15) chan[i].octave=15; if (chan[i].octave>15) chan[i].octave=15;
chan[i].fNum=0x1000-(chan[i].freq>>chan[i].octave); chan[i].fNum=0x1000-(chan[i].freq>>chan[i].octave);
if (chan[i].fNum<0) chan[i].fNum=0; if (chan[i].fNum<0) chan[i].fNum=0;