mohanson / gameboy

Full featured Cross-platform GameBoy emulator by Rust. Forever boys!.
MIT License
1.36k stars 79 forks source link

Noise divisor code should not be incremented #35

Open 42plamusse opened 2 years ago

42plamusse commented 2 years ago

https://github.com/mohanson/gameboy/blob/87865c1b7317e631ef375476311cc5c5ae9e95c8/src/apu.rs#L998 n should not be incremented by 1. Otherwise, by example, if n = 1 you will get a divisor value of 32 instead of the 16 expected.

You can also use this operation instead:

n => u32::from(n) << 4