The difficulty of recovering information about instruments from VGM files depends on the sound chip:
- The PCM part of OPL4 and OKIM6295 have a large instrument/sample table at the beginning of the ROM, so it's easy with them.
- Other PCM chips allow you to set start/loop/end points. Getting samples needs a bit of effort, but works well. (as proven by vgm_sro)
- FM chips let you set up certain parameters (ADSR envelope, how the operators of a single channel are connected, etc.). You can extract instruments with some more effort.
Sound drivers are able to change instruments while a note is playing though. Or they might adjust some filters depending on time or note. So the results aren't always perfect. (see vgm2tfi/vgm2opm/2612edit) - When using PSG chips like the SN76489 and AY8910, "instruments" are controlled by modifying the frequency and volume registers in realtime.
That means that the concept of an "instrument" is completely on the side of the sound driver, so reconstructing instruments is very hard.