What Were They Thinking?: Nintendo 64 Audio
What I thought I knew about audio on the N64:
- There's no dedicated multi-channel sound hardware like the SNES had;
- Nintendo's official development kit (SDK) uses software mixing on the CPU;
- There's a default sample bank ("soundfont") in a 256K ROM on the system board that should have been twice the size but was halved to save costs.
- Mixed audio could be output at (effectively) any sample rate from 16 to 44kHz but was usually set around 32kHz
What I learned about it today:
- The SDK actually does software mixing on the RSP which is the chip that primarily handles graphics, meaning developers had to balance sound quality versus graphics performance;
- That sample bank never existed (which might be why no N64 emulator has ever needed an external system ROM file which you'd think I'd have noticed by now?) so developers also had to make room in limited cartridge space for every single instrument sample used in the music, even the default ones that were included with the SDK;
- Mixed audio could be output from 3 to 368kHz... but most games set it around 32kHz.
What I learned about the 64DD disk drive add-on that fizzled not long after release in Japan:
- It contains a really good sample bank in a whopping 2.75M ROM!
What I already knew before that still annoys me to this day:
- Even Game Boy Advance had more dedicated sound hardware!
- ...but only because it had the Game Boy Color sound chip in it alongside PCM that could only be used as two mono channels mixed together or one stereo channel;
- ...and that PCM is only 8-bit and most games ran it at 22, 16, or even 11kHz!
Why did Nintendo give audio the short end of things when the SNES was praised for lush sound?
What Were They Thinking?: Nintendo 64 Audio, Archimedes
@ElectricKeet Cost, I'd guess - the Acorn Archimedes had no dedicated sound hardware either, functioning in a similar manner, probably figuring the system had enough processing power to perform software playback.
In essence, its ARM-2 chipset only really had one DAC stream, which the OS multiplexed into eight virtual channels. Wavetable synthesis was as you'd guess, accomplished by varying the step through a table, though again, its OS and BASIC took care of providing various friendly sound generation functions, including the BBC Micro's rather fun ENVELOPE definition, which permitted specifying an ADSR envelope, and a rate by which the frequency might change - keep it at 0, and it'd just play the note; ramp it up, and you get classic 8-bit vidjagaem bleepies. ^_^