PlayBattleMusic:: xor a ld [wMusicFade], a ld [wLowHealthAlarm], a dec a ; SFX_STOP_ALL_MUSIC ; ld [wNewSoundID], a call PlaySound call DelayFrame ld c, 0 ; BANK(Music_GymLeaderBattle) ld a, [wGymLeaderNo] and a jr z, .notGymLeaderBattle ld a, MUSIC_GYM_LEADER_BATTLE jr .playSong .notGymLeaderBattle ld a, [wCurOpponent] ; This can probably be made better with a list thing but uhhh idk how to do it. seethe. cp MEWTWO ; Needs to be before OPP_ID_OFFSET to skip the wild check. jr z, .mewtwoBattle cp ARTICUNO jr z, .legendaryBattle cp ZAPDOS jr z, .legendaryBattle cp MOLTRES jr z, .legendaryBattle cp MEW jr z, .legendaryBattle cp OMEGA jr z, .legendaryBattle cp SNORLAX ; Just like LGPE. Snorlax is basically a legendary in RBY, so I love this. jr z, .legendaryBattle cp VOLTORB ; The way this works makes the wild theme still play when encountering normal Voltorb/Electrode. Convenient and makes it work like LGPE. jr z, .legendaryBattle cp ELECTRODE jr z, .legendaryBattle cp ARTICUNO_G ; Temporary - plans for galar bird themes have been made. jr z, .legendaryBattle cp ZAPDOS_G jr z, .legendaryBattle cp MOLTRES_G jr z, .legendaryBattle cp OPP_ID_OFFSET jr c, .wildBattle cp OPP_YUJIROU jr z, .Elite4Battle cp OPP_LORELEI ; elite four now play the gym leader battle theme jr z, .Elite4Battle cp OPP_BRUNO jr z, .Elite4Battle cp OPP_AGATHA jr z, .Elite4Battle cp OPP_LANCE jr z, .Elite4Battle cp OPP_RIVAL3 jr z, .finalBattle cp OPP_PROF_OAK ; may as well, right? jr z, .finalBattle cp OPP_CHIEF jr z, .finalBattle jr nz, .normalTrainerBattle .Elite4Battle ld a, MUSIC_GYM_LEADER_BATTLE jr .playSong .normalTrainerBattle ld a, MUSIC_TRAINER_BATTLE jr .playSong .finalBattle ld a, MUSIC_FINAL_BATTLE jr .playSong .mewtwoBattle ld a, MUSIC_MEWTWO01 jr .playSong .legendaryBattle ld a, MUSIC_LEGENDARYBATTLE jr .playSong .wildBattle ld a, MUSIC_WILD_BATTLE .playSong jp PlayMusic