B00daW and I ended up ripping it:
Attachment:
Wario's Woods (Europe).NSF [16.23 KiB]
Downloaded 51 times
What's the process for submitting new NSF rips? Is there an optimizer program they should be run through? (This is only 16k anyway...)
As for how we did this, B00daW found the music code/data block in the ROM (I don't know what his process was for this), then copied the INIT code from the NTSC rip. This by itself doesn't work yet, but it's a good starting point, after which the following was done:
1. Discovered that the game triggers a new song by writing a song number to $F0 (it was $F3 in the NTSC version). I think B00daW did this by poking values in an emulator until he found the one that changes the song.
2. Traced through the NMI code in the ROM to find where the PLAY routine should point, turned out to be at $8003. (It was $8000 in the NTSC version.)
3. Still didn't work; eventually we discovered that the PAL version has an initialization subroutine at $8000 that sets up some necessary RAM variables. Called this from INIT, and we had a working NSF.
4. Tested all 256 possible values for $F0 to find which ones actually made sound. 0-55 all worked. Most were silent above this range, but a few made some broken sounding noises; I didn't include these, I think they were just random data kind of stuff, except 110 (NSF track 57), which sounds similar to 6 (NSF track 7) but without the square channels active. (Feel free to remove it if this was inappropriate. Just edit byte 6 of the NSF from $39 to $38 to get rid of it.)