bf2b11974823d23f3ff9a563d506b7628e68b0d6
This commit fixes the wrong music when leaving certain caves bug in Entrance Randomizer. The vanilla games decides what music to play when re-entering the overworld in code in `PreOverworld_LoadProperties`. One of the main things the game uses to decide the correct music is the overworld screen being loaded. Obviously that is ideal. But it also sometimes bases its decision on the underworld screen you are leaving. Why would they do that? Well some screens can be re-entered from houses/etc that play at half volume. Nintendo did not want to have the music restart from the begining when leaving those locations, so they explictly coded the non-half-volume locations to set the music for that screen, and let the half music volume cases fall though, and get handled by a special case later in the process. There is a better apporach though. Simply determine what music should be playing for this overworld screen, looking only at the overwold screen index. Then see if "half-volume music" is the last played song command. If so, check what the actual song playing is. If it matches song for the overworld screen we are entering, then play the full volume command. Otherwise play the song for the screen we are entering (which by virtue of being a new song will always play full volume). This patch implements that better approach. It basically moves the music selection code from `PreOverworld_LoadProperties` into the custom code bank, removes the checks for specific underworld locations, and makes sure the last bit of code run before actually setting the music is the one to handle half music, as described above.
Description
Zelda 3 Randomizer Template ASM
Languages
Assembly
98%
Python
1.4%
C
0.5%