What is the best approach for finding the pointers to the background music in a NES game? All I want to do at this point is make the music for level 3 play for level 1, level 2 for level 5, etc. Sound effect swapping might be fun too, but I'd be happy to get the music going at this point.
I've found where each of the tracks is being updated as the song plays. It is fun to watch the values change in hex in perfect synch with the music, or corrupt some values and throw the drums out of synch or break the bassline. But I can't figure out how to find what address holds the pointer to those tracks, or what subroutine changes the song pointer. I've been as clever as I can be. At this point, I need some help with my ROM sleuthing skills, or maybe just some supplemental background knowledge about NES ROMs.
Does someone know offhand what range of addresses to watch? I could probably also use more guidance with the trace logger and debugger (what is symbolic debugging and how/when should I use it?). The game I'm working on is Ninja Gaiden.
I'm new to ROM hacking but not new to programming. So far, using just the documents on this site, I've swapped some colors, changed bad guy health, altered the "pause" subroutine to load an item in your inventory, edited some text, etc. So kudos all around, but especially to the NES people here. I've been using FCEUXD SP 1.07 (a fantastic piece of work) and have at least some working knowledge of all of its Tools except the name table viewer. I've looked up as much as I can find here about music, but much of it is game-specific and does not describe the process of discovery.
Thanks for your help.