Freeplaytech Forum

Full Version: VGM Driver Demo with BGM and SFX
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Attached is a demo of my work in progress sound driver and C library for the NGPC.

In the demo, press A to pause and resume the BGM, and B to alternate between SFX1 and SFX2.

I heavily referenced the VGM drivers from @mic_ and the documentation on sound written Ivan Mackintosh.  I also referenced documentation on the VGM standard, specifically with regards to SMS VGM data.  This mostly consists of PSG data writes (which can be sent right to the sound registers on the Z80) and wait commands.

I have made the Z80 driver so it is synchronous with the T900 vblank.  Each vblank, the T900 parses the VGM data, sends a frame of data to a couple of buffers in shared RAM, and pulses the Z80 so it will process the frame.  It seems to be fast enough for my purposes, as I do not notice slowdown in the game I am working on.

BGM and SFX can be composed in Deflemask SMS mode.


I am still learning the intricacies of PSG data and the 2 PSG sound registers on the Z80.  The driver and library still need refining, so I will wait to share the source until it's ready.

I have tested it successfully on real hardware.
I have updated the attached demo file. It uses the latest updates to the driver and library I am working on. Controls are displayed on the screen.

Note that I do not consider the 2 BGM examples to be good. I threw them together quickly in Deflemask as a test. I have tested the driver successfully with most of the Deflemask SMS examples and a couple of SMS VGM files I found on vgmrips.