- 30
- Posts
- 20
- Years
- Seen Apr 21, 2020
I posted about this in the audio thread, but since that seems to be more about music insertion and this seems a bit complex, I figured it could use its own thread.
Does anyone perhaps know the PROPER way to change which songs are assigned to different battles, fanfares, etc? I'm using Emerald, by the way.
I realize you could just repoint whatever song is currently used, but I don't want to do that. I want to just change the actual value of of what song is played for such things the same way you would change a map's song. Is there a table somewhere in the ROM? is it controlled by script? I'd ideally like to have control over all "event" music in the game, though obviously battles and fanfares (victories, item pickups, Pokedex ratings, etc) are the big ones. Even more ideally, I'd like to do so just via the way the game already handles the music (in other words, just swapping out the value)
I was able to figure out that the value for the current song being played gets loaded to 0x03000F48 in memory for Emerald, and attempted to run an ASM trace on that to see where it loaded say, the value used for Wild Battle music from (which would be song 0x01DA, stored as DA01 in memory), but since my assembly knowledge is minimal, I had no idea what to make of that routine (or if I had even struck gold) but this could at least be a good starting point...!
Does anyone perhaps know the PROPER way to change which songs are assigned to different battles, fanfares, etc? I'm using Emerald, by the way.
I realize you could just repoint whatever song is currently used, but I don't want to do that. I want to just change the actual value of of what song is played for such things the same way you would change a map's song. Is there a table somewhere in the ROM? is it controlled by script? I'd ideally like to have control over all "event" music in the game, though obviously battles and fanfares (victories, item pickups, Pokedex ratings, etc) are the big ones. Even more ideally, I'd like to do so just via the way the game already handles the music (in other words, just swapping out the value)
I was able to figure out that the value for the current song being played gets loaded to 0x03000F48 in memory for Emerald, and attempted to run an ASM trace on that to see where it loaded say, the value used for Wild Battle music from (which would be song 0x01DA, stored as DA01 in memory), but since my assembly knowledge is minimal, I had no idea what to make of that routine (or if I had even struck gold) but this could at least be a good starting point...!