At first, I searched to see if any NES emulator allowed to deactivate only the music of the game. That way, with WinAmp (yes, those were the days) I could play the background music while enjoying the game.
I did not find any emulator that would allow me to do that, but there were some that had the option to search and activate cheats. To sum up, that cheats functionality work applying the same logic as Action Replay or Game Genie accesories do, allowing you to search for cheats this way I explain: imagine your player has 3 lives at the beginning; then you tell the search engine to find the specific memory point where there is a "3" value. At that first time you probably have like 20,000 results. Then, you voluntarily lose a life and you do the search again but only among those 20,000 previous results looking for a "2" now. You repeat these until you only have one result and generally, you end up finding the specific point of memory you wanted. Then, the same device or the emulator allows you to force that point of memory so that it always has a specific value, and you end never stop having "3" or the lives that you have choosen achieving the precious infinite lives.
Explained that, what I did was search if I could find the point (if any) the number of music that was playing was hold. Forcing then that it always had the value to "0", voila! I got the game working without any music. But then I realized that I could go a little further: if I made a program that reads that number in memory and plays the music automatically, I would not have to play the music with another external program, and the experience would be automatic and better.
And then it happened to me the same as always: I started asking myself "What if I do that? And if I do that? And if I did that too?"
The contiguous value in memory of the music number that was playing was the number of sound fx, so I also thought about replacing all the sounds of the game. I did finally not do it because the truth is that I like the original sounds, but I did extract them all and coded this feature, so the program not only reproduces the music but also all the sounds. With this, I discovered that there were some samples that I had never heard because by default the game itself did not manage to play them although it have too (this is the case of the sound of the mask from the first boss falling to the ground, for example).
And since I achieved to get there, I went again a little more further and looked for other areas of memory related to the players, the enemies, the graphic frames they were showing, the life they had left ... and I made the program play voices according to what was happening in the game. That was a lot more complicated, but I was very happy with the result. I remember that I used voices from the King of Fighters 98 and 99 titles. I do not remember what specific characters did I use, but surely a gamer with good ear will identify them easily.
The problem with the program is that when I did it, I did not know how to automatically detect the memory area where the emulator had the ROM, so I had to look for it with another external program and manually specify it. From there, everything worked flawless. In addition, by the nature of the program to modify memory points of other programs, most antivirus detect it as a threat. That and the fact that to work you need to have a specific emulator, the ROM and the original soundtrack, makes it impossible for me to share the download, but I uploaded a video with a complete gameplay where you can appreciate the result. If someone has more interest in the project and wants to try it himself... just get in touch ;)