Open taylus opened 4 years ago
Info from The Ultimate Game Boy Talk (33c3)
The $FF00 - $FFFF address space, look at all those sound registers (21:54)
Sound controller info starts at 24:10:
4 voices x 5 registers each (roughly):
T = trigger bit (on/off)
L = length bits (turn off after N sec, where N = (64-L)*(1/256) seconds)
F = frequency bits
131072 / (2048 - F) Hz
65536 / (2048 - F) Hz
V = volume bits
D = duty cycle bits (shape of pulse wave) https://gbdev.gg8.se/wiki/articles/Gameboy_sound_hardware#Square_Wave
Wave channel can play "any" sound wave. The 16 bytes in registers W0-W15 are 32 entries of 4-bit samples (values 0-F):
Pulse wave duty cycle options:
Volume sweep effect (going down sounds like normal instruments, going up sounds dreamy?) Frequency sweep (sound effects use this more than music)
https://www.littlesounddj.com/lsd/index.php for composing music on the GB itself
Game Boy sound hardware:
Sound in MonoGame
Boot ROM sound initialization code starting at $000c:
And the code that later plays the da-ding sound: