Skip to content

Instantly share code, notes, and snippets.

@HS39
Created February 22, 2020 17:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HS39/d40f9b436009665ce53f4fb8b4064ba1 to your computer and use it in GitHub Desktop.
Save HS39/d40f9b436009665ce53f4fb8b4064ba1 to your computer and use it in GitHub Desktop.
import asm65816
import ASMRef
define Battle_Swirl_Flag = 0x3FE
//Stops music from changing during battle swirl
ROM[0xC22FA9] = JSL (Battle_Swirl)
ROM[0xC0D28B] = JSL (Battle_Swirl)
//C2E8E0
Battle_Swirl: {
REP (0x31)
PHD
TDC
ADC_i (0xFFE8)
TCD
LDA_i (0x0001)
STA_d (0x16)
LDA_i (0x0004)
STA_d (0x14)
STA_d (0x04)
LDY_i (0x0000)
STY_d (0x12)
LDA_a (0x4DBC)
BEQ_a (Battle_Swirl_Normal_1)
CMP_i (0x0001)
BEQ_a (Battle_Swirl_Normal_2)
CMP_i (0x0002)
BEQ_a (Battle_Swirl_Ambush)
BRA_a (Battle_Swirl_Boss)
Battle_Swirl_Normal_1:
LDX_i (0x00B0) //Song 0xB0, normal battle swirl
STX_d (0x10)
LDA_i (0x000E)
STA_d (0x02)
STA_d (0x0E)
BRA_a (Battle_Swirl_Boss)
Battle_Swirl_Normal_2:
LDX_i (0x00B0) //Song 0xB0, normal battle swirl
STX_d (0x10)
LDA_i (0x001C)
STA_d (0x14)
LDA_i (0x0005)
STA_d (0x04)
LDY_i (0x000C)
STY_d (0x12)
LDA_i (0x0006)
STA_d (0x02)
STA_d (0x0E)
BRA_a (Battle_Swirl_Boss)
Battle_Swirl_Ambush:
LDX_i (0x0009) //Song 0x09, ambushed battle swirl
STX_d (0x10)
STZ_d (0x14)
LDA_i (0x001F)
STA_d (0x04)
TAY
STY_d (0x12)
LDA_i (0x0006)
STA_d (0x02)
STA_d (0x0E)
Battle_Swirl_Boss:
LDA_a (0x4A8C)
CMP_i (0x01C0) //If enemy group number is less than 0x1C0
BCC_a (Battle_Swirl_Music) //Jump to next part
LDA_i (0x0003)
STA_d (0x16)
LDA_i (0x000E)
STA_d (0x02)
STA_d (0x0E)
LDX_i (0x0008) //Song 0x08, boss battle swirl
STX_d (0x10)
Battle_Swirl_Music:
LDA_i (Battle_Swirl_Flag)
JSL (0xC21628)
CMP_i (0x0001) //Checks if flag is set
BEQ_a (Battle_Swirl_NoMusic) //If flag is set, skips muting the music
LDX_d (0x10)
TXA
JSL (0xC4FBBD) //Changes music
Battle_Swirl_NoMusic:
JSL (0xC04F47)
LDA_d (0x0E)
STA_d (0x02)
AND_i (0x0004)
BEQ_a (Battle_Swirl_1)
LDY_d (0x12)
LDX_d (0x04)
LDA_d (0x14)
JSL (0xC0B01A)
LDA_d (0x02)
AND_i (0x0008)
BEQ_a (Battle_Swirl_Colors)
//Setup colors 1
LDX_i (0x00FF)
LDA_i (0x0010)
JSL (0xC0B039)
BRA_a (Battle_Swirl_1)
//Setup colors 2
Battle_Swirl_Colors:
LDX_i (0x00BF)
LDA_i (0x0010)
JSL (0xC0B039)
Battle_Swirl_1:
LDY_i (0x001E)
LDX_d (0x02)
LDA_d (0x16)
JSL (0xC2E8C4)
LDA_d (0x02)
AND_i (0x0004)
BEQ_a (Battle_Swirl_2)
SEP (0x20)
LDA_8 (0x20)
STA_a (0xAEC8)
BRA_a (Battle_Swirl_Return)
Battle_Swirl_2:
SEP (0x20)
LDA_8 (0x0F)
STA_a (0xAEC8)
Battle_Swirl_Return:
STZ_a (0xAECB)
REP (0x20)
PLD
RTL
}
//Battle Swirl Mute
ROM[0xC0D6A4] = JSL (Battle_Swirl_Mute)
//C04A88
Battle_Swirl_Mute: {
REP (0x31)
LDA_i (Battle_Swirl_Flag)
JSL (0xC21628)
CMP_i (0x0001) //Checks if flag is set
BNE_a (Battle_Mute_Orig) //If flag is set, skips muting the music
Battle_Mute_Skip:
LDA_i (0x000C)
STA_a (0x5D7C)
LDX_i (0x98A5)
LDA_x (0x0000)
STA_a (0x5D7A)
LDA_i (0x0003)
STA_x (0x0000)
LDA_i (0x0002)
BRA_a (Battle_Mute_End)
Battle_Mute_Orig:
LDA_i (0x000C)
STA_a (0x5D7C)
LDX_i (0x98A5)
LDA_x (0x0000)
STA_a (0x5D7A)
LDA_i (0x0003)
STA_x (0x0000)
LDA_i (0x0002)
JSL (0xC0AC0C) //Mutes music
Battle_Mute_End:
LDA_i (0x0001)
STA_a (0x5D98)
RTL
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment