This past week I was tasked with doing research on retro-console audio. We specifically wanted to know:
-
- How is audio typically generated on retro consoles?
- What should our audio requirements be?
Firstly, I had gathered some great resources on retro console architecture, featuring several of Nintendo’s consoles. The sound specifications (along with some graphics and CPU specs) can also be found from these links:
https://www.copetti.org/writings/consoles/nes/
https://www.copetti.org/writings/consoles/game-boy-advance/
I had also found a good resource for the Game Boy sound interface from the software perspective:
https://gbdev.gg8.se/wiki/articles/Gameboy_sound_hardware
In short, the audio can be synthesized digitally using counters and a digital mixer implemented using adders. An implementation similar to the Game Boy Advance (GBA) seems feasible. To summarize the specifications for the GBA’s audio, there are 6 channels for digital sound synthesis:
- 2 square wave generators with programmable frequency.
- A noise channel.
- An arbitrary waveform generator (which outputs a pre-programmed sequence of 4-bit samples).
- 2 8-bit PCM channels.
After bringing these findings to the team meetings mid-week, we decided on requiring a single 8-bit PCM channel. This is the most feasible option given the heavier requirements of the graphics PPU.
I spent Friday night and Saturday morning setting up and customizing the project website.
I am currently on schedule. However, I still have to plan on the individual deliverables to complete next week.