So, I have started looking at the main .dol in IDA, to understand more about how Brawl works.
Thus begins a series of posts where I publish my weekly findings. Todays search target?
What triggers music changes!
First off, I found the function that runs for every song change. Its a asm routine at 0x80073DB0. The value in register r4 matches the song ID of the song that is about to play before this routine is called. I have yet to figure out the other params, and if this routine can be called in the middle of gameplay.
This routine is called from serveral other routines.
So far I have ID’d:
Result Screen Character Theme – Dynamic around 0x800E6BF0
Result Screen Theme – Harcoded around 0x800EB158
Menu Music – Dynamic Through Random 0x80078E5C
Music Test – Dynamic 0x811842CC
My Music – Dynamic 0x8117F084
CSS ->RemenuMusic – 0x80078E5C
0x8007923C seems to be the RANDOM function used to decide between musics. It has hardcoded stuff that I GUESS activates the multisong thing on Obstacle Course.(Obstacle Course is two songs, that switch depending on season. It has hardcoded stuff for song ID 0×2756 (ATHLETIC2 (Unused))
Here is a disassembly of that function.
I think I am done for today, but if I do anything else today, ill be sure to post.