Data in initialsramtable.asm gets copied to SRAM on save file init
Frontend will be responsible for setting this, requires frontend changes
Changed some label names to disambiguate WRAM and SRAM labels
Deleted open mode
This fixes music stopping partway up GT when
the player encounters a "PsychoSoldier" (MathOnNapkin's name). Both types
of this sprite sharethe same audio code. They have code to play special
music if chasing link in Kakariko. That is fine in vanilla or item
rando, but if they try to play this music in a dungeon located in
kakariko, this will cause the music to just stop, because that song is
not avaiulable in the dungeon music bank.
This patch fixes this by adding an extra check to make sure we are in
the overworld before playing this song.
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.