http://en.wikibooks.org/wiki/Super_NES_Programming/SNES_memory_mapBasic Ripping Caveats:
Starting at game's internal name, copy 0x1A bytes. This covers relevent copyable header data. You can replace the game's name afterwards, if you want.
Register Address Writes to match between the game and the rip:
4200 (A9 ?? 8F 00 42 00) (NMI Enable = 80)
420D (A9 ?? 8F 0D 42 00) (Memory access cycle speed)
4210 (A9 10 42) (Read once during NMI for more accuracy. Discard result.)
Header Values to check:
$FFD9 (US/Pal Speed) (Take from game) (Wario's Woods sounded nearly right, but notes didn't sound correct, but this was an error combination being weird)
If you've checked the above, make sure you didn't screw up the data banks, or leave some data out.
Wario's Woods had a few combined lack-of-experience issues. One of them was that there was a missing byte in the file. This shifted all the data, but the music still played for some reason. This is something to watch for carefully.
Commands to make the set (Track 0 is useless, but counts in the number of tracks ripped. Add 1 to match the RAM value)
minisnsf WariosWoods 7F63 1 29
rom2snsf WariosWoods_7e0100_final1.smc
rename "WariosWoods_7e0100_final1.snsf" "WariosWoods.snsflib"
del "WariosWoods-0000.minisnsf"
----
Interrupt request:
80/8F50 (Start of routine)
Check/Add?(4200 hasn't got them set):
$4207/$4208
$4209/$420ah
Coding for IRQ in music rom (May need to flesh out the push/pop info):
E2 30 SEP #$30
AD 11 42 LDA $4211
29 80 AND #$80
F0 05 BEQ $05
A9 80 LDA #$80
8D 00 42 STA $4200
40 RTI