dciabrin / ngdevkit

Open source development for Neo-Geo
GNU Lesser General Public License v3.0
262 stars 26 forks source link

Make nullsound a real modular sound driver #39

Closed dciabrin closed 3 years ago

dciabrin commented 3 years ago

Each user can configure its own variant of nullsound, with its own set of exported sound command, like e.g. "play a sample", "start a music", "fade volume"...

The sound driver itself is now a sort of cooperative scheduler, configured to handle a number of concurrent sound actions. Each sound action gets called by the driver to update its local state, and then yield execution so the next action can be scheduled.

As a first commit, the driver supports playing ADPCM-a samples. Other modules such as music playback can be added in subsequent commits.

Closes #16