NesDev Wiki wrote:
When the...shifter's result is greater than $7FF and the negate flag is clear, the channel is silenced
I don't understand this at all. If I shift an 11-bit value to the right there is no way that it can ever become greater than $7FF, since $7FF is already 11 bits of all-ones. And I'm assuming that you're supposed to be shifting in 0's and not 1's (although I can't find this stated anywhere) - which means that the result of the shift is always going to be _less_ than $7FF. And even if I'm supposed to shift in 1's then the result will still never be greater than $7FF. Where am I going wrong???
Note: Blargg's apu_ref.txt has no mention of the requirement for the negate flag to be clear as the Wiki states...so I'm not sure what I should do on that...any help?