org $958B2E
JML press_button
@anyfreespace
press_button:
press_button:
LDA $E8
CMP #$0010 //R unpause
BNE +
LDA #$0000
STA {flag}
JMP quit_pressing
+
CMP #$0020 //L pause
BNE check_battle_script
LDA #$FFFF
STA {flag}
JMP quit_pressing
check_battle_script:
LDA $E4
CMP #$1200 //start left
BNE +
PHY
PHB
LDA #$4F85
STA $0AE1
SEP #$20
LDA.b #(battle_script_1)>>16
PHA
PLB
REP #$20
LDA #(battle_script_1)
TAY
JSL write_battle_script
PLB
PLY
JMP quit_pressing
+
CMP #$1100 //start right
BNE +
PHY
PHB
LDA #$4F85
STA $0AE1
SEP #$20
LDA.b #(battle_script_2)>>16
PHA
PLB
REP #$20
LDA #(battle_script_2)
TAY
JSL write_battle_script
PLB
PLY
JMP quit_pressing
+
CMP #$1800 //start up
BNE +
PHY
PHB
LDA #$4F85
STA $0AE1
SEP #$20
LDA.b #(recovery_script_1)>>16
PHA
PLB
REP #$20
LDA #(recovery_script_1)
TAY
JSL write_battle_script
PLB
PLY
JMP quit_pressing
+
CMP #$1400 //start down
BNE +
PHY
PHB
LDA #$4F85
STA $0AE1
SEP #$20
LDA.b #(battle_script_3)>>16
PHA
PLB
REP #$20
LDA #(battle_script_3)
TAY
JSL write_battle_script
PLB
PLY
JMP quit_pressing
+
CMP #$2800 //select up
BNE +
PHY
PHB
LDA #$4F85
STA $0AE1
SEP #$20
LDA.b #(battle_script_4)>>16
PHA
PLB
REP #$20
LDA #(battle_script_4)
TAY
JSL write_battle_script
PLB
PLY
JMP quit_pressing
+
CMP #$2200 //select left
BNE +
PHY
PHX
PHB
LDX #$0000
-
LDA battle_animation1,x
STA $7FE144,x
INX #2
CPX #$0006
BNE -
PLX
PLB
PLY
JMP quit_pressing
+
CMP #$2100 //select right
BNE +
PHY
PHX
PHB
LDX #$0000
-
LDA battle_

,x
STA $7FE144,x
INX #2
CPX #$0006
BNE -
PLX
PLB
PLY
JMP quit_pressing
+
quit_pressing:
LDA {flag}
BNE + //pause
JSL $95DA1D
JML $958B32 //no pause
+
LDA $E8
CMP #$0020
BNE +
JSL $95DA1D
JML $958B32
+
JSL $95DA1D
JML $958BBF
write_battle_script:
PHX
LDX #$0000
-
LDA $0000,y
STA {battle_script_table},x
INX #2
INY #2
CMP #$FFFF
BNE -
PLX
RTL
battle_script_1:
dw $13FE, $002C, $002C, $002C, $002C
dw $0501, $0501, $0000, $0104, $004D, $004D
dw $004C, $004C, $13FE, $004C, $000C, $14FE, $0200, $0000
dw $0009, $0009, $0000, $13FE, $0009, $000D, $0501, $0F05
dw $15FE, $14FE, $13FE, $000D, $000D, $02FE, $000D, $02FE, $0001
dw $0040, $004C, $0009, $0009, $0009, $000D, $000D, $000D, $000D
dw $0000, $0008, $0104, $0104, $000D, $000D, $0104, $000D, $0104, $000D
dw $14FE, $0000, $13FE, $14FE, $0104, $14FE, $15FE, $1044
dw $14FE, $0505, $14FE, $15FE, $0B05, $000D, $000D
dw $FFFF
battle_script_2:
dw $14FE, $15FE, $0904, $0000, $13FE, $0000, $0104, $0104, $0104
dw $13FE, $02FE, $000D, $02FE, $000D, $02FE, $000D, $02FE, $000D
dw $13FE, $02FE, $0001, $02FE, $0001, $02FE, $0001, $02FE, $0001
dw $14FE, $15FE, $0300, $0E04
dw $13FE, $02FE, $0005, $02FE, $0005, $02FE, $0005, $02FE, $0005
dw $13FE, $0000, $0000, $14FE, $15FE, $0800, $0104
dw $13FE, $02FE, $0001, $14FE, $02FE, $0505, $14FE, $02FE, $0505, $14FE, $02FE, $0505
dw $000C, $000D, $000C, $000D, $000C, $000D, $000C, $14FE, $02FE, $0505
dw $13FE, $0104, $0104, $14FE, $0504, $14FE, $0514
dw $FFFF
battle_script_3:
dw $13FE
dw $0000, $0004, $0004, $0004, $0001, $0001, $0005, $0005, $000C, $000C, $0000
dw $00001, $0001, $0001, $0001, $000D, $000D, $000D, $000C, $000C
dw $000C, $000C, $000C, $000C, $0005, $0005, $0005, $0005, $0005
dw $FFFF
battle_script_4:
dw $0100, $13FE, $0D04, $0D04, $000C, $000C
dw $1B41, $0100, $0008
dw $0049, $13FE, $0008, $000C, $0008, $000C, $000C
dw $0049, $13FE, $0008, $0D04, $000C, $000C, $0100
dw $0049
dw $13FE, $0D04, $0D04, $000C, $000C, $000C
dw $0049, $0008, $13FE, $0008, $000C, $0008, $000C
dw $0049, $0008, $13FE, $000C, $000C, $000C, $0D14
dw $FFFF
battle_animation1:
dw $1203, $1305, $147E
battle_

:
dw $0D0B, $4834, $818F
recovery_script_1:
dw $13FE, $0102, $0102, $0102, $0102
dw $002D, $0102, $0102, $0029
dw $14FE, $1002, $0105, $14FE, $1002
dw $0102, $0102
dw $13FE, $0029, $002D, $0325, $0021, $0102
dw $02FE, $0125, $0021, $0102, $0102, $0102
dw $0625, $0102, $02FE, $0021, $0102, $02FE, $0029, $02FE, $0325, $0102, $0625, $0102
dw $FFFF