Chiptune Player is an extension that uses game_music_emu and audio buffers in GMS to play chiptune music in several formats including NSF (NES, Nintendo Entertainment System), GBS (Nintendo Game Boy) and SPC (Super Nintendo). Individual voices can be muted and tempo can be changed in real time. An example of usage is included in the asset, should be very easy to use. Chiptune Player currently supports Windows, Linux (32bit and 64bit) and Android (32bit). The shared library is included for Mac OS X 64-bit, but it is unsupported.
NOTE1: If you have a room / game speed of lower than 60 (or maybe even then), you may need to increase the number of buffers used by the Chiptune Player extension to avoid noise or glitches. You can do this by increasing the value of the variable buffer_count to 20 (or even higher) in the create event of obj_gme.
game_music_emu is released under LGPL (GNU Lesser General Public License), so you are allowed to use it in commercial games since the library is dynamically linked to your project. To comply with LGPL, the source code for the shared library need to be included in your game project (the source code I used to build the library is included with this asset and is only 154KB, the archive also includes instructions for building the library on the different platforms). You should also mention in your game credits that you are using the game_music_emu library. The game_music_emu project can be found here: https://bitbucket.org/mpyne/game-music-emu/wiki/Home
Because of the hassle with licenses I'm releasing this for free, if you want to support my work then you can get the MOD Player available from me here on the Gamemaker Marketplace.
Note: GMS2 version only tested on Windows 7, GMS1.4 version tested on Windows 7, Ubuntu 14.04, Ubuntu 16.04 64bit and Samsung Galaxy S5 with Android 5.0
*) VGZ files are gzipped vgm and will need to be extracted to work.