An (almost) entirely comprehensive USF tracklist for Paper Mario by Rew at 11:34 AM EDT on August 10, 2014
So I've been doing some tinkering with my USF set of Paper Mario. In addition to the usual track numbers, according to hcs, there are segments within those track numbers where different tracks or variations will be found within a group.
Take the regular enemy battle theme (or "Battle Fanfare" per OST track title) for example. If you open up that track in WindHex, the byte number (02) will appear at the beginning of the third row. But there are a few tracks under 02. Go a row and a half from there (it's always directly underneath a D0), and you'll see a different number. 00 is always the default, and for this example's purpose, track 02-00 is just the regular battle theme with no special beginning. If you alter 00 to 01 (so you have 02-01), it will give you the battle theme beginning with Mario's first strike fanfare. Change it to 02 (so 02-02), and you'll get the foe's first strike preceding, and finally 02-03 will give you just the foe first strike fanfare by itself. (Almost never does this byte value do anything different beyond 03.)
There are not so many variations in most track groups, however. In most cases, you'll have the default theme at 00, then a truncated version (more on that below) at 01, or in some cases 02. In general, further track numbers will just repeat whatever the 00 default is.
Toad Town (the first musical track in the game, located at 00) is an interesting case, in that there is a *third* segment for it! For Toad Town normally, the first byte on the third row in WindHex will be 00. A row and a half later will determine whether it will be the full theme with intro (00) or without intro (01). (02 and 03, etc. default back to the 00 setting.) But a row and a half after that (so the beginning of the 7th row in WindHex) is another byte value, which determines which of the Toad Town variations will play, from 00 to 09.
The purpose of this thread is to help people create as comprehensive a USF set as possible for this game--which is easily enough done since you can edit these byte values in WindHex, then use "save as" to create a new track to play in Winamp or whatever you use.
So below you'll find the tracklist that I have compiled. A note on "truncated" tracks (since there are a ton of them): These tracks play for a while--almost a full loop but not quite in most cases--before the track just abruptly stops. It will sometimes play faster than the default theme too. I imagine these are in the game's data for some programming reason I don't understand. If anyone has any theories on those, I'd be keen to hear them.
Another note: The Goomba Village theme is the default or "filler" theme for this game. Whenever there is a byte value left out of the below track list, it's Goomba Village. (The actual Goomba Village in-game uses byte 10, hence its place on the list.) There are also a few tracks that I as yet am unable to find--I'll go more into those after the list.
Without further ado, here are the tracks, sorted by track group number (OST titles are noted in "quotes" where available).
00 - Toad Town - "Toad Town Theme" 00.00.01 - Toad Town (Tayce T.) 00.00.02 - Toad Town (Merlon) 00.00.03 - Toad Town (Dojo) 00.00.04 - Toad Town (Tunnels) 00.00.05 - Toad Town (Minh T.) 00.00.06 - Toad Town (Fice T.) 00.00.07 - Toad Town (Russ T.) - "Toad Town Variations" (Part 1) 00.00.08 - Toad Town (Rowf) 00.00.09 - Toad Town (Toy Box) 00.01 - Toad Town (without Intro) - "Toad Town Variations" (Part 9) 00.01.01 - Toad Town (Tayce T., without Intro) - "Toad Town Variations" (Part 6) 00.01.02 - Toad Town (Merlon, without Intro) - "Toad Town Variations" (Part 3) 00.01.03 - Toad Town (Dojo, without Intro) - "Toad Town Variations" (Part 2) 00-01.04 - Toad Town (Tunnels, without Intro) - "Toad Town Variations" (Part 7) 00-01.05 - Toad Town (Minh T., without Intro) - "Toad Town Variations" (Part 4) 00-01.06 - Toad Town (Fice T., without Intro) 00-01.07 - Toad Town (Russ T., without Intro) 00-01.08 - Toad Town (Rowf, without Intro) - "Toad Town Variations" (Part 5) 00-01.09 - Toad Town (Toy Box, without Intro) - "Toad Town Variations" (Part 8)
95 - Opening: The Star Rod - "Story of the Stolen Spirits" (Part 1) 95.01 - Opening: Bowser Attacks - "Story of the Stolen Spirits" (Part 2) 95.02 - Opening: Star Kids and Wishes - "Story of the Stolen Spirits" (Part 3) 95.03 - Ending: Peach's Castle Restored
96 - New Partner [JP] - "Nice to Meet You" 96.01 - New Partner [JP] [truncated]
Whew! So there we are.
Like I said above, though, there are some tracks I can't seem to find/trigger, no matter what I do: - Dry Dry Desert (Oasis), which is presumably under byte 17. - Toad Town Tunnels (Ice)--I was able to find a truncated version of this one, but frustratingly, I could not find or activate a looping version of this track. It should be somewhere under byte 4B along with its truncated counterpart. - I am also missing at least 1 or 2 variants of the Bowser's Castle theme, which should be located somewhere within byte 64. There are one or two more variations between the subdued and quiet "Early" theme and the loud and bombastic "Late" theme.
With these missing ones, I did try the Toad Town trick of locating a third segment, but my attempts were unsuccessful. Maybe someone around here who knows more about what they're doing can aid the search and make this list fully comprehensive?
I'm trying to rename the current USF set where there are multiple variations, based on this set, but there are a lot I can't even work out what the heck they are.
Like "Theme of the Star Spirits (Before)" or "Finding Mt. Lavalava" for example? What are these called in the USF set? Or "Welcome to Yoshi's Village". Which one is the "Coast" version? Is it 205a or 205b?
Just wanna say I really like it when folks like you actually care to differentiate between the different versions. Thanks! I don't know this particular game well I know sometimes I'm looking for one specific version of a track (sometimes even start points) and these are quite important.
Before you consider trimming your set with the existing software, maybe someone could look at using my lazyusf2 library for coverage checking and trimming instead? It fully supports both self-booting and Project64 save state USF sets, and performs dword-level coverage logging for both the RAM and the ROM. It just needs a frontend to make it more useful.
It turns off all the speed hacks that are currently enabled to make most sets play, so that more of the code will hopefully be covered by the actual scan.