But now I want to write a program that loads music in some format (not necessarily .spc) and switches among tracks. The problem with .spc and .sp2 formats is that the S-CPU can't reset the S-SMP back to the IPL. This means that unless the program on the S-SMP exposes some defined protocol to the S-CPU, the user has to get up and press the Reset button in order to switch songs. In order to make it possible to write a "sound test" style front-end for playing homebrew SPC700 music, or even just to include music in a game, we first need to define a baseline protocol that can be used by homebrew sound drivers. Is there a common protocol used by official games' sound drivers to do all these?
- Start song n
- Start sound effects
- Pause or resume music
- Set channel separation to mono, semi-stereo (for headphones), or stereo (for TVs)
- Set the master volume (for fade)
- Disable echo buffer writing, turn on the IPL, and jump back to $FFC0