I've finally successfully implemented gzcompressed VGM handling in the VGM player using
zlib.js, officially bringing the player's capability to VGM v1.50 spec.
SN76489, YM2413, and YM2612 cores are ported from Genesis Plus GX; YM2151 core is slightly modified from
Kuma's MDX player. The player itself is my hand-rolled "NPlay" script to attach audio output to the
XAudioJS library by Grant Galitz using jQuery. Many thanks to the SpritesMind Forums community for the massive amount of info on the YM2612, Grant Galitz for making XAudioJS so I didn't have to, GitHub user imaya for the zlib.js that powers the VGZ decompression, ValleyBell for the massive amounts of direct help with the development of the various cores, vampirefrog for various suggestions, support, and other web VGM playback development, and the vgmrips community for advancing the VGM format beyond the SMS, Game Gear, and Genesis.
For future reference, all new discussion on vgmrips on VGM playback via JavaScript using my player and/or the above scripts should be here.
I need help cleaning up the YM2612 and YM2413 implementations because they each sound a bit off in their own ways, but I have a feeling the same problem afflicts them both. Any volunteers? (You can submit patches as pull requests on the repos)