There isn't really a lot of asm going on (if at all, really). It is all data, even the pointers are treated as data (some code somewhere else in the ROM looks for this list to find the addresses). Here is how to read the pointer:
Take this one for example: 43 88
1 - You switch them so it is now 88 43
2 - Then you add 10 because that's the NES header size, so now it is 88 53
3 - Now in this case you switch the first 8 with a C, so now it is C853. Why replace the 8 with a C? This is because of bank switching. In this case, the ROM range from C000-FFFF is "loaded" (not really loaded, just memory address points to this range), so it becomes 8000-BFFF. This is better explained by snarfblam here
, but all you really need to know for this is that the 8 becomes a C. Note that snarfblam's explanation was about transforming a ROM location to a CPU address, but in our case we are doing the opposite. The pointer is in CPU address format and you want to find the ROM location.
4 - If you go to 0xC853 in the ROM you will find the first byte that the pointer points to and reads.
I'd say it is more of a job to someone with musical understanding than a coder. Someone needs to make a list of all byte values and what notes they represent. Also, the header has some bytes that do stuff (probably amount of loops, speed, etc). Just keep testing and feeding a list, like I did on my hack with help from FCandChill. Like this:
(the following list is for Super Pitfall, not ninja gaiden, and both games have different features and format. It's just an idea)
Square and Triangle:
With the ninja gaiden list in hand (not the one I posted) it's a matter of writting a program that converts one of the various formats exported by famitracker, copying the bytes and inserting them on the rom, editting the header to point to the sections correctly, or do it by hand (which is how I did on my hack). I painstakingly looked at the finished song in famitracker and "translated" note by note, byte by byte to a txt file and then just copied it and pasted in fceux's hex editor in the ROM, preferably in the same place as the song to be replaced. If you're confortable with bank switching you can paste it on some other place and switch it just to read the notes. Or you can paste it anywhere in the 0xC000 0xFFFF range if is unused space and not need to bank switch to read it (just update the pointer to the new address).
Keep in mind that this game's songs have headers, and that may seem more complicated than simply a sequence of notes for each channel (which is how it is on Super Pitfall), but this allows to really save on ROM space because identical note sequences only exist once, the header tells the music engine to play that section as many times as desired.
Also you can really trust the pointers. If you look at the pointer list I originally posted, you will see that I located "square 1 part 1" and "square 1 part 2" on a different place than what is on the pointers list. You can trust that I made a mistake because the pointer is pointing some other place. For instance, I got the triangle and dpcm ones correctly.
square1 part1: 0xC937 - 0xC967 wrong guess, look at the list below
square1 part2: 0xC875 - 0xC905 wrong guess, look at the list below
triangle: 0xC97D - 0xCA24 I guessed correctly, look at the pointers list below
DPCM: 0xCA25 - 0xCB17 I guessed correctly, look at the pointers list below
54 88 (square 1) becomes 0xC864
58 89 (square 2) becomes 0xC968
6D 89 (triangle) becomes 0xC97D
15 8A (DPCM) becomes 0xCA25
I made the guess based on what I was seeing as updated bytes read using fceux's data logger as the music was loaded, and it was before I had found the pointers list.