GGSound GitHub page

GGSound is the sound engine we originally wrote for Nomolos back in 2010. Since then I've made a lot of improvements.


GGSound is intended to be an easy to use and lightweight sound engine. It is able to create most of the sounds one would have heard in professional NES games from the 80's and 90's. It currently supports:
  • Square 1, 2, Triangle, Noise, and DPCM channels
  • Volume, Arpeggio, Pitch and Duty envelopes
  • Hi-Pitch envelopes are NOT supported
  • Looping envelopes at an arbitrary loop point
  • Speed and Tempo
  • Looping with the Bxx (must be present in all channels, using unique patterns) command
  • Note cuts
  • Tempo and pitch adjustment for NTSC, PAL and Dendy
  • Multi-song export
  • Sound effects on two channels
  • Pause/unpause
  • All 87 audible notes in FamiTracker
  • 128 of each type of envelope
  • 128 songs
  • 128 sound effects
  • 256 byte long envelopes

Games by others which use GGSound:

Watch this video for simple steps towards integrating GGSound into your own NESASM3 program. It assumes you're already familiar with the basics of getting an NES program set up correctly. If you are interested in getting into NES homebrew and are not yet familiar with the basics, go to the Nerdy Nights Tutorials.