For some reason, I'm finding the GB's Noise Channel (Sound 4) the most troublesome to fully understand. I'm trying to wrap my head around how it works, but I still have a couple of major questions.
1) Is the highest frequency for Sound 4's programmable frequency timer really 524288Hz? For example, assuming I set NR43 to 0x00 (using a 15 stage LSFR for simplicity), am I correct in saying that this will produce a frequency timer of 524288Hz?
The documents I've read say that the Sound 4's period is decided by the Dividing Ratio (Bits 0 - 2 of NR43) shifted some number of bits to left: (http://gbdev.gg8.se/wiki/articles/Gameb ... se_Channel). This should mean than when NR43 = 0x00, Sound 4's period is 8 clocks, meaning the frequency is 524288Hz.
Just to be sure, this formula decides how often the APU should generate a waveform, right?
2) Is the highest frequency of the LSFR counter also 524288Hz? If not what is the correct formula for determining this?
3) If the maximum frequency timer is 524288Hz, how do emulators reasonably recreate the noise effect using only 44100Hz? For example, I wrote a small test ROM to continuously output sound on Sound 4 with NR43 set to 0x00, and I tested it both on VBA-M as well as my old Game Boy Color. As far as my ears could tell, they were both very similar if not identical for all intents and purposes. This is the most frustrating part I'm trying to understand. I've included the test ROM as an attachment for reference (should play on any emulator and real hardware).
Sorry if this has been discussed before, but I've read through a couple of documents already (GBSOUND.txt, game_sound_emulation_by_blargg.txt, the GBDev Wiki, even the docs from belogic.com about GBA's sound) but I'm still not sure I'm getting the whole frequency part right. Any help is greatly appreciated.
1) Is the highest frequency for Sound 4's programmable frequency timer really 524288Hz? For example, assuming I set NR43 to 0x00 (using a 15 stage LSFR for simplicity), am I correct in saying that this will produce a frequency timer of 524288Hz?
The documents I've read say that the Sound 4's period is decided by the Dividing Ratio (Bits 0 - 2 of NR43) shifted some number of bits to left: (http://gbdev.gg8.se/wiki/articles/Gameb ... se_Channel). This should mean than when NR43 = 0x00, Sound 4's period is 8 clocks, meaning the frequency is 524288Hz.
Just to be sure, this formula decides how often the APU should generate a waveform, right?
2) Is the highest frequency of the LSFR counter also 524288Hz? If not what is the correct formula for determining this?
3) If the maximum frequency timer is 524288Hz, how do emulators reasonably recreate the noise effect using only 44100Hz? For example, I wrote a small test ROM to continuously output sound on Sound 4 with NR43 set to 0x00, and I tested it both on VBA-M as well as my old Game Boy Color. As far as my ears could tell, they were both very similar if not identical for all intents and purposes. This is the most frustrating part I'm trying to understand. I've included the test ROM as an attachment for reference (should play on any emulator and real hardware).
Sorry if this has been discussed before, but I've read through a couple of documents already (GBSOUND.txt, game_sound_emulation_by_blargg.txt, the GBDev Wiki, even the docs from belogic.com about GBA's sound) but I'm still not sure I'm getting the whole frequency part right. Any help is greatly appreciated.