Final Fantasy VI:ROM map/Assembly C24

From Data Crystal
Jump to: navigation, search

Contents

C2/402C special effect: super ball

C2/402C: A9 7D        LDA #$7D
C2/402E: 85 B6        STA $B6     (Set Animation)
C2/4030: 20 5A 4B     JSR $4B5A   (0 to 255)
C2/4033: 29 03        AND #$03    (0 to 3)
C2/4035: 80 02        BRA $4039
C2/4037: A9 07        LDA #$07    (Special Effect $2C, Launcher, jumps here)
C2/4039: 8D 05 34     STA $3405   (# of hits to do.  this is a zero-based counter, so
                                   a value of 0 means 1 hit.)
C2/403C: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/403E: B9 18 30     LDA $3018,Y
C2/4041: 85 A6        STA $A6     (mark attacker as "reflected off of", which will later
                                   trigger function C2/3483 and cause him/her to be
                                   treated as the missile launcher or ball thrower.)
C2/4043: 60           RTS 

C2/4044 special effect: atma weapon

C2/4044: A9 20        LDA #$20
C2/4046: 0C A2 11     TSB $11A2   (Set attack to ignore defense)
C2/4049: A9 02        LDA #$02
C2/404B: 04 B2        TSB $B2     (Set no critical & ignore True Knight)
C2/404D: 60           RTS 

C2/404E special effect: warp effect

C2/404E: A5 B1        LDA $B1
C2/4050: 89 04        BIT #$04    (is "Can't Escape" flag set by an active enemy?)
C2/4052: D0 06        BNE $405A   (branch if so)
C2/4054: A9 02        LDA #$02
C2/4056: 8D 6E 3A     STA $3A6E
C2/4059: 60           RTS 

C2/405A: A9 0A        LDA #$0A
C2/405C: 8D 01 34     STA $3401   (Display can't run text)
C2/405F: 80 3B        BRA $409C   (Miss all targets)

C2/4061 special effect: bababreath

C2/4061: 64 EE        STZ $EE
C2/4063: A2 06        LDX #$06
C2/4065: BD A0 3A     LDA $3AA0,X
C2/4068: 4A           LSR 
C2/4069: 90 11        BCC $407C
C2/406B: BD E4 3E     LDA $3EE4,X (Status byte 1)
C2/406E: 89 C2        BIT #$C2    (Check for Dead, Zombie, or Petrify)
C2/4070: F0 0A        BEQ $407C   (Branch if none set)
C2/4072: BD 18 30     LDA $3018,X
C2/4075: 2C 2C 3F     BIT $3F2C
C2/4078: D0 02        BNE $407C   (branch if airborne from jump?)
C2/407A: 85 EE        STA $EE
C2/407C: CA           DEX 
C2/407D: CA           DEX 
C2/407E: 10 E5        BPL $4065   (Loop through all 4 characters)
C2/4080: A5 EE        LDA $EE
C2/4082: D0 09        BNE $408D   (if any character is Dead/Zombied/Petrified and not
                                   airborne, use it as target instead.  if there're
                                   multiple such characters, use the one who's closest
                                   to the start of the party lineup.)
C2/4084: AD 76 3A     LDA $3A76   (Number of characters in party)
C2/4087: C9 02        CMP #$02
C2/4089: B0 2F        BCS $40BA   (Exit function if 2+ characters alive, retaining
                                   the initial target)
C2/408B: 80 0F        BRA $409C   (Miss all targets, because we don't want to blow away
                                   the only living character.)

C2/408D: 85 B8        STA $B8     (save the Dead/Zombied/Petrified character as sole
                                   target)
C2/408F: 64 B9        STZ $B9     (clear any monster targets)
C2/4091: BB           TYX 
C2/4092: 4C C2 57     JMP $57C2

C2/4095 special effect: possess

106/256 chance to miss
C2/4095: 20 5A 4B     JSR $4B5A   (Random Number Function 0 to 255)
C2/4098: C9 96        CMP #$96
C2/409A: 90 1E        BCC $40BA   (Exit function if A < #$96)
C2/409C: 64 A4        STZ $A4     (Make target nothing)
C2/409E: 64 A5        STZ $A5
C2/40A0: 60           RTS 

C2/40A1 special effect: l? pearl

C2/40A1: AD 62 18     LDA $1862   (the following code will divide our 24-bit
                                   gold, held in $1860 - $1862, by 10.) 
C2/40A4: EB           XBA 
C2/40A5: AD 61 18     LDA $1861
C2/40A8: A2 0A        LDX #$0A
C2/40AA: 20 92 47     JSR $4792   (Divides top 2 bytes of gold by 10.  put
                                   quotient in A, and remainder in X.)
C2/40AD: 8A           TXA 
C2/40AE: EB           XBA 
C2/40AF: AD 60 18     LDA $1860   (16-bit A = (above remainder * 256)
                                   + bottom byte of gold)
C2/40B2: A2 0A        LDX #$0A
C2/40B4: 20 92 47     JSR $4792   (X = gold amount MOD 10, i.e. the ones digit
                                   of GP)
C2/40B7: 8E A8 11     STX $11A8   (Save as Hit rate / level multiplier for
                                   LX spells)
C2/40BA: 60           RTS 

C2/40BB special effect: escape

C2/40BB: C0 08        CPY #$08
C2/40BD: B0 FB        BCS $40BA  (Exit if character)
C2/40BF: A9 22        LDA #$22
C2/40C1: 85 B5        STA $B5
C2/40C3: A9 10        LDA #$10
C2/40C5: 04 A0        TSB $A0
C2/40C7: 60           RTS 

C2/40C8 special effect: smoke bomb

C2/40C8: A9 04        LDA #$04
C2/40CA: 24 B1        BIT $B1     (is "Can't Escape" flag set by an active enemy?)
C2/40CC: F0 EC        BEQ $40BA   (Exit if not)
C2/40CE: 20 9C 40     JSR $409C   (Set to no targets)
C2/40D1: 9C A9 11     STZ $11A9   (Clear special effect)
C2/40D4: A9 09        LDA #$09
C2/40D6: 8D 01 34     STA $3401   (Display text #9)
C2/40D9: 60           RTS 

C2/40DA special effect: force field

C2/40DA: 7B           TDC         (Clear Accumulator)
C2/40DB: A9 FF        LDA #$FF
C2/40DD: 4D C8 3E     EOR $3EC8   
C2/40E0: F0 BA        BEQ $409C   (Miss if all elements nullified)
C2/40E2: 20 2A 52     JSR $522A   (Randomly pick a set bit)
C2/40E5: 0C C8 3E     TSB $3EC8   (Set that bit in $3EC8)
C2/40E8: 20 F0 51     JSR $51F0
C2/40EB: 8A           TXA 
C2/40EC: 18           CLC 
C2/40ED: 69 37        ADC #$37
C2/40EF: 80 E5        BRA $40D6

C2/40F1 special effect: four hits

Quadra Slam, Quadra Slice, etc.
C2/40F1: A9 03        LDA #$03
C2/40F3: 8D 70 3A     STA $3A70   (# of attacks)
C2/40F6: A9 40        LDA #$40
C2/40F8: 04 BA        TSB $BA     (Sets randomize target)
C2/40FA: 9C A9 11     STZ $11A9   (Clears special effect)
C2/40FD: 60           RTS 

C2/40FE special effect: blow fish

C2/40FE: A9 60        LDA #$60
C2/4100: 0C A2 11     TSB $11A2   (Set Ignore defense, and no split damage)
C2/4103: 9C 14 34     STZ $3414   (Set to not modify damage)
C2/4106: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4108: A9 E8 03     LDA #$03E8  
C2/410B: 8D B0 11     STA $11B0   (Set damage to 1000)
C2/410E: 60           RTS 

C2/410F special effect: flare star

C2/410F: 9C 14 34     STZ $3414   (Set to not modify damage)
C2/4112: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4114: A5 A2        LDA $A2     (Bitfield of targets)
C2/4116: 20 2A 52     JSR $522A   (A = a random target present in $A2)
C2/4119: 20 F9 51     JSR $51F9   (Y = [Number of highest target set in A] * 2.
                                   so we're obtaining a target index.)
C2/411C: A5 A2        LDA $A2
C2/411E: 20 0E 52     JSR $520E   (X = number of bits set in A, so # of targets)
C2/4121: E2 20        SEP #$20    (Set 8-bit Accumulator)
C2/4123: B9 18 3B     LDA $3B18,Y (Level)
C2/4126: EB           XBA 
C2/4127: AD A6 11     LDA $11A6   (Spell Power)
C2/412A: 20 81 47     JSR $4781   (Spell Power * Level)
C2/412D: 20 92 47     JSR $4792   (Divide by X, the number of targets)
C2/4130: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4132: 8D B0 11     STA $11B0   (Store in maximum damage)
C2/4135: 60           RTS 

C2/4136 special effect: elixir

(Special effect $4C - Elixir and Megalixir.  In Item data, this appears as
 Special effect $04)
C2/4136: A9 80        LDA #$80
C2/4138: 1C A3 11     TRB $11A3   (Clears concern MP)
C2/413B: 60           RTS 

C2/413C special effect: mind blast

C2/413C: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/413E: A0 06        LDY #$06
C2/4140: A5 A4        LDA $A4
C2/4142: 20 2A 52     JSR $522A   (Randomly pick an entity from among the targets)
C2/4145: 99 5C 3A     STA $3A5C,Y (add them to "Mind Blast victims" list.  the
                                   other Mind blast special effect will later try
                                   to give an ailment to each entry in the list.
                                   and yes, there can be duplicates.)
C2/4148: 88           DEY 
C2/4149: 88           DEY 
C2/414A: 10 F4        BPL $4140   (Do four times)
C2/414C: 60           RTS 

C2/414D special effect: n cross

(Miss random targets
 Special Effect $29 - N. Cross
 Each target will have a 50% chance of being untargeted.)
C2/414D: 20 5A 4B     JSR $4B5A   (random #: 0 to 255)
C2/4150: 14 A4        TRB $A4
C2/4152: 20 5A 4B     JSR $4B5A   (random #: 0 to 255)
C2/4155: 14 A5        TRB $A5
C2/4157: 60           RTS 

C2/4158 special effect: dice

set default flags
C2/4158 9C 14 34       STZ $3414       don't modify damage
C2/415B A9 20          LDA #$20    
C2/415D 0C A4 11       TSB $11A4       can't dodge
C2/4160 A9 0F          LDA #$0F
C2/4162 85 B6          STA $B6         null third dice
calculate first dice
C2/4164 7B             TDC 
C2/4165 20 5A 4B       JSR $4B5A       A = [0, 255]
C2/4168 48             PHA 
C2/4169 29 0F          AND #$0F        A = [0, 16]
C2/416B A2 06          LDX #$06        X = 6
C2/416D 20 92 47       JSR $4792       A = (A / 6). X = A % 6 = [0,5].
save first dice
C2/4170 86 B7          STX $B7         save first dice [0, 5]
C2/4172 E8             INX 
C2/4173 86 EE          STX $EE         save first dice [1, 6]
get second dice
C2/4175 68             PLA             A = [0, 255]
C2/4176 A2 60          LDX #$60        X = 0x60    (will divide top nibble of random number by 6)
C2/4178 20 92 47       JSR $4792       A = A / X = A / 0x60
C2/417B 8A             TXA             A = A % X (mod of division)
C2/417C 29 F0          AND #$F0        A = [0, 5], high 4 bits
C2/417E 05 B7          ORA $B7         add first dice (low 4 bits) with second byte (high 4 bits)
C2/4180 85 B7          STA $B7         save first and second dice (one byte)
get second dice again
C2/4182 4A             LSR 
C2/4183 4A             LSR 
C2/4184 4A             LSR 
C2/4185 4A             LSR 
multiply first and second dice
C2/4186 1A             INC             second dice = [1, 6]
C2/4187 EB             XBA             
C2/4188 A5 EE          LDA $EE         first dice = [1,6]
C2/418A 20 81 47       JSR $4781       multiply first and second dice
C2/418D 85 EE          STA $EE         save it
select two or three dices
C2/418F AD A8 11       LDA $11A8       number of dices
C2/4192 C9 03          CMP #$03
C2/4194 90 15          BCC $41AB       two dices
calculate third dice
C2/4196 7B             TDC             A = 0
C2/4197 AD 1E 02       LDA $021E       A = random number generator (frame counter?)
C2/419A A2 06          LDX #$06        X = 6
C2/419C 20 92 47       JSR $4792       Division: A = (A / X). X = (A % X)
C2/419F 8A             TXA             A = [0, 5]
C2/41A0 85 B6          STA $B6         save third dice [0, 5]
C2/41A2 1A             INC             A = [1, 6]
multiply: first*second*third dice
C2/41A3 EB             XBA             
C2/41A4 A5 EE          LDA $EE         1st * 2nd dice
C2/41A6 20 81 47       JSR $4781       A = 1st * 2nd * 3rd dice
C2/41A9 85 EE          STA $EE         save it
check bonus for similar dice numbers?
C2/41AB A2 00          LDX #$00    
C2/41AD A5 B6          LDA $B6         0x0F if not 3th dice. Otherwise, it is [0,5].
C2/41AF 0A             ASL 
C2/41B0 0A             ASL 
C2/41B1 0A             ASL 
C2/41B2 0A             ASL 
C2/41B3 05 B6          ORA $B6         
C2/41B5 C5 B7          CMP $B7         does it match 1st or end dice?
C2/41B7 D0 02          BNE $41BB       no match
C2/41B9 A6 B6          LDX $B6         X = bonus flag.
calculate damage based on dices
C2/41BB A5 EE          LDA $EE         A = 1st * 2nd or A = 1st * 2nd * 3rd dice
C2/41BD EB             XBA 
C2/41BE AD AF 11       LDA $11AF       character level
C2/41C1 0A             ASL             level = level * 2
C2/41C2 20 81 47       JSR $4781       C = (1st dice * 2nd dice * 3rd roll) * (Level * 2)
C2/41C5 C2 20          REP #$20        set C register
C2/41C7 85 EE          STA $EE         save damage
C2/41C9 18             CLC 
C2/41CA 8D B0 11       STA $11B0       save damage
increase damage
C2/41CD A5 EE          LDA $EE         damage
C2/41CF 6D B0 11       ADC $11B0       increase actual damage with original damage
C2/41D2 90 02          BCC $41D6       branch if it didn't overflow
C2/41D4 7B             TDC 
C2/41D5 3A             DEC             set maximum damage if overflow
add damage based on bonus
C2/41D6 CA             DEX             bonus for similar dice numbers
C2/41D7 10 F0          BPL $41C9       multiply the original damage X times
adjust animation
C2/41D9 E2 20          SEP #$20        set A register
C2/41DB A5 B5          LDA $B5         command
C2/41DD C9 00          CMP #$00        is it fight?
C2/41DF D0 02          BNE $41E3       don't change animation if it isn't fight
C2/41E1 A9 26          LDA #$26        dice command
C2/41E3 85 B5          STA $B5         store dice case as a special command for animation
C2/41E5 60             RTS

C2/41E6 special effect: revenge

C2/41E6: 9C 14 34     STZ $3414   (Set to not modify damage)
C2/41E9: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/41EB: 38           SEC 
C2/41EC: B9 1C 3C     LDA $3C1C,Y (Max HP)
C2/41EF: F9 F4 3B     SBC $3BF4,Y (HP)
C2/41F2: 8D B0 11     STA $11B0   (Damage = Max HP - HP)
C2/41F5: 60           RTS 

C2/41F6 special effect: palidor

Makes not jump if you have Petrify, Sleep, Stop, Hide, or Freeze status
C2/41F6: A9 10        LDA #$10
C2/41F8: 0C 46 3A     TSB $3A46
C2/41FB: C2 20        REP #$20
C2/41FD: A2 12        LDX #$12
C2/41FF: BD E4 3E     LDA $3EE4,X
C2/4202: 89 40 80     BIT #$8040  (Check for Petrify or Sleep)
C2/4205: D0 08        BNE $420F   (branch if any set)
C2/4207: BD F8 3E     LDA $3EF8,X
C2/420A: 89 10 22     BIT #$2210  (Check for Stop, Hide, or Freeze)
C2/420D: F0 07        BEQ $4216   (branch if none set)
C2/420F: BD 18 30     LDA $3018,X
C2/4212: 14 A2        TRB $A2     (Remove from being a target)
C2/4214: 14 A4        TRB $A4
C2/4216: CA           DEX 
C2/4217: CA           DEX 
C2/4218: 10 E5        BPL $41FF
C2/421A: 60           RTS 

C2/421B special effect: empowerer

C2/421B: AD A3 11     LDA $11A3
C2/421E: 49 80        EOR #$80    (Toggle Concern MP)
C2/4220: 8D A3 11     STA $11A3
C2/4223: 10 05        BPL $422A   (Branch if not Concern MP -- this means we're
                                   currently on the first "strike", which affects HP)
C2/4225: A9 12        LDA #$12
C2/4227: 85 B5        STA $B5     (save Nothing [Mimic] as command animation.
                                   this means the spell animation won't be repeated
                                   for the MP-draining phase of Empowerer.)
C2/4229: 60           RTS 

C2/422A: EE 70 3A     INC $3A70   (make the attack, including this special effect,
                                   get repeated)
C2/422D: 4E A6 11     LSR $11A6
C2/4230: 4E A6 11     LSR $11A6   (Cut Spell Power to 1/4 for 2nd "strike", which
                                   will affect MP)
C2/4233: 60           RTS 

C2/4234 special effect: spiraler

C2/4234: BB           TYX
C2/4235: BD 18 30     LDA $3018,X
C2/4238: 14 A2        TRB $A2
C2/423A: 14 A4        TRB $A4      (Miss yourself)
C2/423C: 0C 4C 2F     TSB $2F4C    (mark attacker to be removed from the battlefield?)
C2/423F: 20 4A 38     JSR $384A    (Mark death and hide to be set)
C2/4242: C2 20        REP #$20     (Set 16-bit Accumulator)
C2/4244: 9E F4 3B     STZ $3BF4,X  (Zeroes HP of attacker)
C2/4247: 9E 08 3C     STZ $3C08,X  (Zeroes MP of attacker)
C2/424A: 60           RTS 

C2/424B special effect: discard

C2/424B: 20 9C 40     JSR $409C   (Miss all targets?)
C2/424E: A9 20        LDA #$20
C2/4250: 0C A4 11     TSB $11A4   (Set Can't be dodged)
C2/4253: BE 58 33     LDX $3358,Y (whom you are Seizing)
C2/4256: 30 F2        BMI $424A   (Exit if not Seizing anybody)
C2/4258: BD 18 30     LDA $3018,X
C2/425B: 85 B8        STA $B8
C2/425D: 64 B9        STZ $B9
C2/425F: BB           TYX 
C2/4260: 4C C2 57     JMP $57C2

C2/4263 special effect: mantra

C2/4263: A9 60        LDA #$60
C2/4265: 0C A2 11     TSB $11A2   (Set no split damage, & ignore defense)
C2/4268: 9C 14 34     STZ $3414   (Set to not modify damage)
C2/426B: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/426D: B9 18 30     LDA $3018,Y
C2/4270: 14 A4        TRB $A4     (Make miss yourself)
C2/4272: AE C9 3E     LDX $3EC9   (Number of targets)
C2/4275: CA           DEX 
C2/4276: B9 F4 3B     LDA $3BF4,Y
C2/4279: 20 92 47     JSR $4792   (HP / (Number of targets - 1) )
C2/427C: 8D B0 11     STA $11B0   (Set damage)
C2/427F: 60           RTS 

C2/4280 special effect: damage = damage / 4

C2/4280: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4282: 4E B0 11     LSR $11B0   (Halves damage)
C2/4285: C2 20        REP #$20    (Special effect $41 jumps here)
C2/4287: 4E B0 11     LSR $11B0   (Halves damage) 
C2/428A: 60           RTS 

C2/428B special effect: suplex

(Picks a random target)
C2/428B: A9 10        LDA #$10
C2/428D: 04 B0        TSB $B0
C2/428F: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4291: A5 A2        LDA $A2
C2/4293: 85 EE        STA $EE     (Copy targets to temporary variable)
C2/4295: A2 0A        LDX #$0A
C2/4297: BD 88 3C     LDA $3C88,X (Monster data - Special Byte 2)
C2/429A: 89 04 00     BIT #$0004
C2/429D: F0 05        BEQ $42A4   (Check next target if this one can be Suplexed)
C2/429F: BD 20 30     LDA $3020,X
C2/42A2: 14 EE        TRB $EE     (Clear this monster from potential targets)
C2/42A4: CA           DEX
C2/42A5: CA           DEX
C2/42A6: 10 EF        BPL $4297   (Loop for all 6 monster targets)
C2/42A8: A5 EE        LDA $EE
C2/42AA: D0 02        BNE $42AE   (Branch if some targets left in temporary variable,
                                   which means we'll actually be attacking something
                                   that can be Suplexed!)
C2/42AC: A5 A2        LDA $A2     (original Targets)
C2/42AE: 20 2A 52     JSR $522A   (Randomly pick a bit)
C2/42B1: 85 B8        STA $B8     (save our one target)
C2/42B3: BB           TYX 
C2/42B4: 4C C2 57     JMP $57C2

C2/42B7 special effect: reflect???

C2/42B7: C2 20        REP #$20
C2/42B9: A2 12        LDX #$12
C2/42BB: BD F7 3E     LDA $3EF7,X
C2/42BE: 30 05        BMI $42C5   (Branch if reflect status)
C2/42C0: BD 18 30     LDA $3018,X
C2/42C3: 14 A4        TRB $A4     (Make miss target)
C2/42C5: CA           DEX 
C2/42C6: CA           DEX 
C2/42C7: 10 F2        BPL $42BB
C2/42C9: 60           RTS 

C2/42CA special effect: quick

C2/42CA: AD 02 34     LDA $3402
C2/42CD: 10 09        BPL $42D8   (If already under influence of Quick)
C2/42CF: 8C 04 34     STY $3404
C2/42D2: A9 02        LDA #$02
C2/42D4: 8D 02 34     STA $3402
C2/42D7: 60           RTS 

C2/42D8: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/42DA: B9 18 30     LDA $3018,Y
C2/42DD: 0C 5A 3A     TSB $3A5A   (Set target as missed)
C2/42E0: 60           RTS 

C2/42E1 pointers: special effects table

C2/42E1: 8A 3E
C2/42E3: 8B 3E
C2/42E5: 44 40 ($02)
C2/42E7: 8A 3E
C2/42E9: 8A 3E
C2/42EB: 73 3F ($05)
C2/42ED: 6E 3F ($06)
C2/42EF: 22 3F ($07)
C2/42F1: 8A 3E
C2/42F3: 58 41 ($09)
C2/42F5: 89 3F ($0A)
C2/42F7: 9F 3F ($0B)
C2/42F9: 7E 3F ($0C)
C2/42FB: 8A 3E
C2/42FD: CA 3E ($0E)
C2/42FF: 50 3F ($0F)
C2/4301: 8A 3E
C2/4303: 65 3F ($11)
C2/4305: 8A 3E
C2/4307: F6 41 ($13)
C2/4309: 8A 3E
C2/430B: 63 42 ($15)
C2/430D: 34 42 ($16)
C2/430F: 8A 3E
C2/4311: 4E 40 ($18)
C2/4313: FC 3F ($19)
C2/4315: FE 40 ($1A)
C2/4317: 54 3F ($1B)
C2/4319: B7 42 ($1C)
C2/431B: A1 40 ($1D)
C2/431D: A0 3E ($1E)
C2/431F: 8A 3E 
C2/4321: 8A 3E 
C2/4323: 8A 3E
C2/4325: 8A 3E
C2/4327: 8A 3E
C2/4329: 8A 3E 
C2/432B: 8A 3E
C2/432D: 8A 3E 
C2/432F: BB 40 ($27)
C2/4331: 3C 41 ($28)
C2/4333: 4D 41 ($29)
C2/4335: 0F 41 ($2A)
C2/4337: 8A 3E
C2/4339: 37 40 ($2C)
C2/433B: 8A 3E
C2/433D: 8A 3E 
C2/433F: 8A 3E
C2/4341: 8B 42 ($30)
C2/4343: DA 40 ($31)
C2/4345: F1 40 ($32)
C2/4347: 61 40 ($33)
C2/4349: 8A 3E
C2/434B: 8A 3E 
C2/434D: 1B 42 ($36)
C2/434F: 8A 3E
C2/4351: 8A 3E
C2/4353: 8A 3E
C2/4354: 8A 3E 
C2/4357: 8A 3E
C2/4359: 8A 3E
C2/435B: E6 41 ($3D)
C2/435D: 8A 3E
C2/435F: 8A 3E 
C2/4361: 8A 3E
C2/4363: 85 42 ($41)
C2/4365: 80 42 ($42)
C2/4367: CA 42 ($43)
C2/4369: 4B 42 ($44)
C2/436B: 8A 3E
C2/436D: 8A 3E 
C2/436F: 8A 3E
C2/4371: 8A 3E 
C2/4373: AD 3F ($49)
C2/4375: 2C 40 ($4A)
C2/4377: C8 40 ($4B)
C2/4379: 36 41 ($4C)
C2/437B: 4E 40 ($4D)
C2/437D: 8A 3E 
C2/437F: 8A 3E 
C2/4381: 95 40 ($50)
C2/4383: B7 3F ($51)
C2/4385: 8A 3E
C2/4387: 8A 3E 
C2/4389: 8A 3E 
C2/438B: 8A 3E
C2/438D: 8A 3E     
C2/438F: 8A 3E     

C2/4391 set new status to attack

C2/4391: DA           PHX
C2/4392: 08           PHP 
C2/4393: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4395: A0 12        LDY #$12
C2/4397: B9 A0 3A     LDA $3AA0,Y
C2/439A: 4A           LSR 
C2/439B: 90 62        BCC $43FF   (Skip this character if bit 0 of $3AA0,Y is not set)
C2/439D: 20 0D 45     JSR $450D   (Get new status)
C2/43A0: A5 FC        LDA $FC
C2/43A2: F0 0F        BEQ $43B3   (If no status to add)
C2/43A4: 85 F0        STA $F0
C2/43A6: A2 1E        LDX #$1E
C2/43A8: 06 F0        ASL $F0
C2/43AA: 90 03        BCC $43AF     (Skip if status not to be set)
C2/43AC: FC B0 46     JSR ($46B0,X) (Call for each status to be set)
C2/43AF: CA           DEX 
C2/43B0: CA           DEX 
C2/43B1: 10 F5        BPL $43A8     (Loop through all status in byte 1 & 2)
C2/43B3: A5 FE        LDA $FE
C2/43B5: F0 0F        BEQ $43C6
C2/43B7: 85 F0        STA $F0
C2/43B9: A2 1E        LDX #$1E
C2/43BB: 06 F0        ASL $F0
C2/43BD: 90 03        BCC $43C2
C2/43BF: FC D0 46     JSR ($46D0,X) (Call for each status to be set byte 3 & 4)
C2/43C2: CA           DEX 
C2/43C3: CA           DEX 
C2/43C4: 10 F5        BPL $43BB

(Note: the subtraction of blocked statuses from "statuses to clear" below takes place
 later than the removal of blocked statuses from "statuses to set".  i think this is
 because the special case set status functions called in $46B0 AND 46D0 can mark
 additional statuses to be cleared.  so Square performed the block checks after these
 calls to make sure we don't clear any statuses to which we're immune.)

C2/43C6: A5 F4        LDA $F4       (status to clear bytes 1-2)
C2/43C8: 39 1C 33     AND $331C,Y   (blocked status bytes 1-2)
C2/43CB: 85 F4        STA $F4       (remove blocked from statuses to clear)
C2/43CD: F0 0F        BEQ $43DE
C2/43CF: 85 F0        STA $F0
C2/43D1: A2 1E        LDX #$1E
C2/43D3: 06 F0        ASL $F0
C2/43D5: 90 03        BCC $43DA
C2/43D7: FC F0 46     JSR ($46F0,X) (Call for each status to be clear byte 1 & 2)
C2/43DA: CA           DEX 
C2/43DB: CA           DEX 
C2/43DC: 10 F5        BPL $43D3
C2/43DE: A5 F6        LDA $F6       (status to clear bytes 3-4)
C2/43E0: 39 30 33     AND $3330,Y   (blocked status bytes 3-4)
C2/43E3: 85 F6        STA $F6       (don't try to clear blocked statuses)
C2/43E5: F0 0F        BEQ $43F6
C2/43E7: 85 F0        STA $F0
C2/43E9: A2 1E        LDX #$1E
C2/43EB: 06 F0        ASL $F0
C2/43ED: 90 03        BCC $43F2
C2/43EF: FC 10 47     JSR ($4710,X) (Call for each status to be clear byte 3 & 4)
C2/43F2: CA           DEX 
C2/43F3: CA           DEX 
C2/43F4: 10 F5        BPL $43EB
C2/43F6: 20 7F 44     JSR $447F   (Get new status)
C2/43F9: 20 85 45     JSR $4585   (Store in 3EE4 & 3EF8)
C2/43FC: 20 FF 44     JSR $44FF   (Clear set and clear status bytes)
C2/43FF: 88           DEY 
C2/4400: 88           DEY 
C2/4401: 10 94        BPL $4397   (loop for all 10 targets on screen)
C2/4403: 28           PLP 
C2/4404: FA           PLX 
C2/4405: 60           RTS 

C2/4406 status update when attack hits

(Determine statuses that will be set/removed when attack hits;
 miss if attack doesn't change target's status)
C2/4406: 08           PHP
C2/4407: C2 20        REP #$20
C2/4409: B9 E4 3E     LDA $3EE4,Y   (get current status bytes 1-2)
C2/440C: 85 F8        STA $F8
C2/440E: B9 F8 3E     LDA $3EF8,Y   (get current status bytes 3-4)
C2/4411: 85 FA        STA $FA
C2/4413: 20 90 44     JSR $4490   (Initialize intermediate "status to set" bytes in
                                   $F4 - $F7 and "status to clear" bytes in $FC - $FF.
                                   Mark Clear / Freeze to be removed if necessary.)
C2/4416: E2 20        SEP #$20
C2/4418: A5 B3        LDA $B3
C2/441A: 30 04        BMI $4420   (if not Ignore Clear)
C2/441C: A9 10        LDA #$10
C2/441E: 14 F4        TRB $F4     (remove Vanish from Status to Clear)
C2/4420: B9 95 3C     LDA $3C95,Y
C2/4423: 10 18        BPL $443D   (Branch if not undead)
C2/4425: A9 08        LDA #$08
C2/4427: 2C A2 11     BIT $11A2
C2/442A: F0 11        BEQ $443D   (Branch if attack doesn't reverse damage on undead)
C2/442C: 4A           LSR 
C2/442D: 2C A4 11     BIT $11A4
C2/4430: F0 0B        BEQ $443D   (Branch if not lift status)
C2/4432: AD AA 11     LDA $11AA
C2/4435: 89 82        BIT #$82
C2/4437: F0 04        BEQ $443D   (Branch if attack doesn't involve Death or Zombie)
C2/4439: A9 80        LDA #$80
C2/443B: 04 FC        TSB $FC     (mark Death in Status to set)
C2/443D: C2 20        REP #$20
C2/443F: A5 FC        LDA $FC
C2/4441: 20 32 0E     JSR $0E32    (update Status to set Bytes 1-2)
C2/4444: A5 FE        LDA $FE
C2/4446: 19 E8 3D     ORA $3DE8,Y
C2/4449: 99 E8 3D     STA $3DE8,Y  (update Status to set Bytes 3-4)
C2/444C: A5 F4        LDA $F4
C2/444E: 19 FC 3D     ORA $3DFC,Y
C2/4451: 99 FC 3D     STA $3DFC,Y  (update Status to clear Bytes 1-2)
C2/4454: A5 F6        LDA $F6
C2/4456: 19 10 3E     ORA $3E10,Y
C2/4459: 99 10 3E     STA $3E10,Y  (update Status to clear Bytes 3-4)
C2/445C: AD A7 11     LDA $11A7
C2/445F: 4A           LSR          
C2/4460: 90 1B        BCC $447D   (if "spell misses if protected from ailments" bit
                                   is unset, exit function)
C2/4462: A5 FC        LDA $FC   
C2/4464: 05 F4        ORA $F4
C2/4466: 39 1C 33     AND $331C,Y  (are there any statuses we're trying to set or clear
                                    that aren't blocked?)  (bytes 1-2)
C2/4469: D0 12        BNE $447D    (if there are, exit function)
C2/446B: A5 FE        LDA $FE
C2/446D: 05 F6        ORA $F6
C2/446F: 39 30 33     AND $3330,Y  (are there any statuses we're trying to set or clear
                                    that aren't blocked?)  (bytes 3-4)
C2/4472: D0 09        BNE $447D    (if there are, exit function)
C2/4474: B9 18 30     LDA $3018,Y
C2/4477: 8D 48 3A     STA $3A48
C2/447A: 0C 5A 3A     TSB $3A5A   (Spell misses if prot. from ailments)
C2/447D: 28           PLP 
C2/447E: 60           RTS 

C2/447F get status after attack

C2/447F: A5 F8        LDA $F8     (status)
C2/4481: 04 FC        TSB $FC     (Status to set)
C2/4483: A5 F4        LDA $F4     (Status to clear)
C2/4485: 14 FC        TRB $FC     (Status to set)
C2/4487: A5 FA        LDA $FA     (Status byte 3 & 4)
C2/4489: 04 FE        TSB $FE     (Status to set byte 3 & 4)
C2/448B: A5 F6        LDA $F6     (Status to clear byte 3 & 4)
C2/448D: 14 FE        TRB $FE     (Status to set byte 3 & 4)
C2/448F: 60           RTS 

C2/4490 initialize intermediary status to set or to clear

(Initialize intermediate "status to set" bytes in $F4 - $F7 and
 "status to clear" bytes in $FC - $FF.
 Mark Clear / Freeze to be removed if necessary.)
C2/4490: DA           PHX
C2/4491: E2 20        SEP #$20    (Set 8-bit Accumulator)
C2/4493: AD A4 11     LDA $11A4   (Special Byte 2)
C2/4496: 29 0C        AND #$0C
C2/4498: 4A           LSR 
C2/4499: AA           TAX         (X = 0 if set status, 2 = lift status,
                                   4 = toggle status)
C2/449A: C2 20        REP #$20
C2/449C: 64 FC        STZ $FC     (Clear status to clear and set bytes)
C2/449E: 64 FE        STZ $FE
C2/44A0: 64 F4        STZ $F4
C2/44A2: 64 F6        STZ $F6
C2/44A4: FC D1 44     JSR ($44D1,X)
C2/44A7: AD A2 11     LDA $11A2   
C2/44AA: 4A           LSR 
C2/44AB: B0 0E        BCS $44BB   (branch if physical attack)
C2/44AD: A9 10 00     LDA #$10
C2/44B0: 24 F8        BIT $F8
C2/44B2: F0 07        BEQ $44BB   (branch if target not vanished)
C2/44B4: 2C AA 11     BIT $11AA
C2/44B7: D0 02        BNE $44BB   (branch if attack causes Clear)
C2/44B9: 04 F4        TSB $F4     (mark Clear status to be cleared)
C2/44BB: AD A1 11     LDA $11A1
C2/44BE: 4A           LSR 
C2/44BF: 90 0E        BCC $44CF   (Exit if not element Fire)
C2/44C1: A9 00 02     LDA #$0200
C2/44C4: 24 FA        BIT $FA
C2/44C6: F0 07        BEQ $44CF   (Exit if target not Frozen)
C2/44C8: 2C AC 11     BIT $11AC
C2/44CB: D0 02        BNE $44CF   (Exit if attack setting Freeze)
C2/44CD: 04 F6        TSB $F6     (mark Freeze status to be cleared)
C2/44CF: FA           PLX 
C2/44D0: 60           RTS 

C2/44D1 pointers: unknow

C2/44D1: D7 44
C2/44D3: EA 44
C2/44D5: F9 44

C2/44D7 add status for spells: to set

(Spell wants to set status)
C2/44D7: AD AA 11     LDA $11AA   (get status bytes 1-2 from spell)
C2/44DA: 85 FC        STA $FC     (store in status to set)
C2/44DC: A5 F8        LDA $F8     (get current status 1-2)
C2/44DE: 14 FC        TRB $FC     (don't try to set anything you already have)
C2/44E0: AD AC 11     LDA $11AC   (get status bytes 3-4 from spell)
C2/44E3: 85 FE        STA $FE     (store in status to set)
C2/44E5: A5 FA        LDA $FA     (get current status 3-4)
C2/44E7: 14 FE        TRB $FE     (don't try to set anything you already have)
C2/44E9: 60           RTS 

C2/44EA add status for spells: to clear

(Spell wants to clear status)
C2/44EA: AD AA 11     LDA $11AA   (get status bytes 1-2 from spell)
C2/44ED: 25 F8        AND $F8     (current status 1-2)     
C2/44EF: 85 F4        STA $F4     (only try to clear statuses you do have)
C2/44F1: AD AC 11     LDA $11AC   (get status bytes 3-4 from spell)
C2/44F4: 25 FA        AND $FA     (current status 3-4)
C2/44F6: 85 F6        STA $F6     (only try to clear statuses you do have)
C2/44F8: 60           RTS 

C2/44F9 add status for spells: to toggle

C2/44F9: 20 D7 44     JSR $44D7   (mark spell statuses you don't already have
                                   to be set)
C2/44FC: 4C EA 44     JMP $44EA   (and mark the ones you do already have to
                                   be cleared)

C2/44FF clear status to set

Clear status to set and status to clear bytes
C2/44FF: 7B           TDC
C2/4500: 99 D4 3D     STA $3DD4,Y
C2/4503: 99 E8 3D     STA $3DE8,Y
C2/4506: 99 FC 3D     STA $3DFC,Y
C2/4509: 99 10 3E     STA $3E10,Y
C2/450C: 60           RTS 

C2/450D unknow

(Put Status to be Set / Clear into $F?
 Quasi New Status in $3E60 & $3E74)
C2/450D: B9 FC 3D     LDA $3DFC,Y
C2/4510: 85 F4        STA $F4      (Status to Clear bytes 1-2)
C2/4512: B9 10 3E     LDA $3E10,Y
C2/4515: 85 F6        STA $F6      (Status to Clear bytes 3-4)

C2/4517: B9 D4 3D     LDA $3DD4,Y
C2/451A: 39 1C 33     AND $331C,Y  
C2/451D: 85 FC        STA $FC      (Status to Set bytes 1-2, excluding blocked statuses)
C2/451F: B9 E8 3D     LDA $3DE8,Y
C2/4522: 39 30 33     AND $3330,Y
C2/4525: 85 FE        STA $FE      (Status to Set bytes 3-4, excluding blocked statuses)

C2/4527: B9 E4 3E     LDA $3EE4,Y  (Load Status of targets, bytes 1-2)
C2/452A: 85 F8        STA $F8
C2/452C: 29 40 00     AND #$0040   (If target already had Petrify, set it in Status to Set)
C2/452F: 04 FC        TSB $FC

(Note: I think the above is done in preparation for the special case functions at
 $46B0 and 46D0.  These are called when a status is inflicted, and cause side effects like
 clearing other statuses [provided you're not immune to them], and messing with
 assorted variables.  A classic example is Slow booting out Haste, and vice versa.)

 The above code means that just as Muddled/Mute/Clear/Dark/etc are cleared/prevented when
 Petrify status is first _acquired_, they will also be cleared/prevented as long as Petrify
 is POSSESSED.)

C2/4531: B9 F8 3E     LDA $3EF8,Y  (Status bytes 3 & 4)
C2/4534: 85 FA        STA $FA

(This chunk will:
 If Current HP > 1/8 Max HP and Near Fatal status is currently set, mark Near Fatal
 status to be cleared.
 If Current HP <= 1/8 Max HP and Near Fatal status isn't currently set, mark Near Fatal
 status to be set. )
++++++
C2/4536: B9 1C 3C     LDA $3C1C,Y  (Max HP)
C2/4539: 4A           LSR 
C2/453A: 4A           LSR 
C2/453B: 4A           LSR          (Divide by 8)
C2/453C: D9 F4 3B     CMP $3BF4,Y  (Current HP)

C2/453F: A9 00 02     LDA #$0200
C2/4542: 24 F8        BIT $F8
C2/4544: D0 04        BNE $454A   (Branch if Near Fatal status possessed)
C2/4546: 90 06        BCC $454E   (Branch if Current HP > Max HP / 8)
C2/4548: 04 FC        TSB $FC     (Mark Near Fatal in Status to Set)
C2/454A: B0 02        BCS $454E   (Branch if Current HP <= Max HP / 8)
C2/454C: 04 F4        TSB $F4     (Mark Near Fatal in Status to Clear)
++++++

C2/454E: A5 FB        LDA $FB
C2/4550: 10 14        BPL $4566   (If no Wound in Status to Set)
C2/4552: B9 4D 3E     LDA $3E4D,Y
C2/4555: 29 02 00     AND #$0002  (Bit set by Overcast)
C2/4558: F0 0C        BEQ $4566   (Branch if not set)
C2/455A: 05 FC        ORA $FC     (Put Zombie in Status to Set)
C2/455C: 29 7F FF     AND #$FF7F  (Clear Wound from Status to Set)
C2/455F: 85 FC        STA $FC
C2/4561: A9 00 01     LDA #$0100  
C2/4564: 04 F4        TSB $F4     (Set Condemned in Status to Clear)

C2/4566: B9 DF 32     LDA $32DF,Y
C2/4569: 10 19        BPL $4584   (Exit function if attack doesn't target them?)

C2/456B: A5 FC        LDA $FC
C2/456D: 48           PHA 
C2/456E: A5 FE        LDA $FE
C2/4570: 48           PHA 
C2/4571: 20 7F 44     JSR $447F   (Get new status)
C2/4574: A5 FC        LDA $FC
C2/4576: 99 60 3E     STA $3E60,Y
C2/4579: A5 FE        LDA $FE
C2/457B: 99 74 3E     STA $3E74,Y
C2/457E: 68           PLA 
C2/457F: 85 FE        STA $FE
C2/4581: 68           PLA 
C2/4582: 85 FC        STA $FC
C2/4584: 60           RTS 

C2/4585 update new status

(Store new status in character/monster status bytes.
 Clear some statuses if target has Zombie.)
C2/4585: A5 FC        LDA $FC
C2/4587: 89 02 00     BIT #$0200
C2/458A: F0 03        BEQ $458F   (Branch if not Zombie)
C2/458C: 29 FA 4D     AND #$4DFA  (Clear Dark and Poison)
                                  (Clear Near Fatal, Berserk, Muddled, Sleep)
C2/458F: 99 E4 3E     STA $3EE4,Y (Store new status in Bytes 1 and 2)
C2/4592: A5 FE        LDA $FE
C2/4594: 99 F8 3E     STA $3EF8,Y (Store new status in Bytes 3 and 4)
C2/4597: 60           RTS 

C2/4598 unknow

C2/4598: 48           PHA
C2/4599: A5 F8        LDA $F8
C2/459B: 05 FC        ORA $FC
C2/459D: 23 01        AND $01,S
C2/459F: 04 F4        TSB $F4    (if a status is possessed or it's set in Status to Set,
                                  and it's set in value passed to function, turn it on
                                  in Set to Clear)
C2/45A1: 68           PLA 
C2/45A2: 60           RTS 

C2/45A3 status zombie: set

C2/45A3: A9 80 00     LDA #$0080  
C2/45A6: 20 98 45     JSR $4598  (if Death is possessed or set by the spell, mark it to
                                  be cleared)
C2/45A9: 20 A9 46     JSR $46A9  (mark character as having died?)
C2/45AA: A9 80        LDA #$46
C2/45AC: 80 13        BRA $45C1

C2/45AE status zombie: clear

C2/45AE: 20 9C 46     JSR $469C
C2/45B1: 80 0E        BRA $45C1

C2/45B3 status muddle: set

C2/45B3: B9 18 30     LDA $3018,Y
C2/45B6: 0C 53 2F     TSB $2F53
C2/45B9: 80 06        BRA $45C1

C2/45BB status muddle: clear

C2/45BB: B9 18 30     LDA $3018,Y
C2/45BE: 1C 53 2F     TRB $2F53
C2/45C1: DA           PHX 
C2/45C2: BE 18 30     LDX $3018,Y
C2/45C5: 8A           TXA 
C2/45C6: 0C 4A 3A     TSB $3A4A
C2/45C9: FA           PLX 
C2/45CA: 60           RTS 

C2/45CB unknow

C2/45CB: DA           PHX
C2/45CC: BE 19 30     LDX $3019,Y
C2/45CF: 8A           TXA 
C2/45D0: 0C 44 2F     TSB $2F44
C2/45D3: FA           PLX 
C2/45D4: 60           RTS 

C2/45D5 unknow

C2/45D5: DA           PHX
C2/45D6: BE 19 30     LDX $3019,Y
C2/45D9: 8A           TXA 
C2/45DA: 1C 44 2F     TRB $2F44
C2/45DD: FA           PLX 
C2/45DE: 60           RTS 

C2/45DF status imp: set or clear

C2/45DF: A9 88 00     LDA #$0088
C2/45E2: 20 4C 46     JSR $464C
C2/45E5: C0 08        CPY #$08     (Rage - clear   enters here)
C2/45E7: B0 08        BCS $45F1    (Exit function if monster)
C2/45E9: DA           PHX 
C2/45EA: 98           TYA 
C2/45EB: 4A           LSR 
C2/45EC: AA           TAX 
C2/45ED: FE 30 2F     INC $2F30,X  (flag character's properties to be recalculated from
                                    his/her equipment at end of turn.)
C2/45F0: FA           PLX 
C2/45F1: 60           RTS 

C2/45F2 unknow

C2/45F2: 20 9C 46     JSR $469C
C2/45F5: A9 00 40     LDA #$4000
C2/45F8: 20 56 46     JSR $4656
C2/45FB: A9 40 00     LDA #$0040
C2/45FE: 80 4C        BRA $464C

C2/4600 status death: set

C2/4600: A9 40 01     LDA #$0140   
C2/4603: 20 98 45     JSR $4598    (if Petrify or Condemned are possessed or set by the spell,
                                    mark them to be cleared)
C2/4606: A9 80 00     LDA #$0080
C2/4609: 14 F4        TRB $F4      (remove Death from statuses to be cleared)

C2/460B status petrify: set

C2/460B: 20 A9 46     JSR $46A9    (Mark as having died)
C2/460E: A9 15 FE     LDA #$FE15  
C2/4611: 20 98 45     JSR $4598    (if Dark, Poison, Clear, Near Fatal, Image, Mute, Berserk,
                                    Muddled, Seizure, or Sleep are possessed by the target or
                                    set by the spell, mark them to be cleared)
C2/4614: A5           LDA $FA
C2/4616: 05 FE        ORA $FE
C2/4618: 29 FF 9B     AND #$9BFF   (if Dance, Regen, Slow, Haste, Stop, Shell, Safe, Reflect,
                                    Rage, Freeze, Morph, Spell Chant, or Float are possessed
                                    by the target or set by the spell, mark them to be cleared)
C2/461B: 04 F6        TSB $F6
C2/461D: B9 4C 3E     LDA $3E4C,Y
C2/4620: 29 FF BF     AND #$BFFF
C2/4623: 99 4C 3E     STA $3E4C,Y  (clear HP Leak quasi-status that was set by Phantasm)
C2/4626: B9 A0 3A     LDA $3AA0,Y
C2/4629: 29 7F FF     AND #$FF7F
C2/462C: 99 A0 3A     STA $3AA0,Y
C2/462F: A9 40 00     LDA #$0040
C2/4632: 80 18        BRA $464C

C2/4634 status sleep: set

C2/4634: 08           PHP 
C2/4635: E2 20        SEP #$20     (Set 8-bit A)
C2/4637: A9 12        LDA #$12
C2/4639: 99 F9 3C     STA $3CF9,Y  (Time until Sleep wears off)
C2/463C: 28           PLP 
C2/463D: 80 E7        BRA $4626

C2/463F status condemned: set

C2/463F: A9 20 00     LDA #$0020
C2/4642: 80 08        BRA $464C
C2/4644: A9 10 00     LDA #$0010   (Condemned - clear  enters here)
C2/4647: 80 03        BRA $464C
C2/4649: A9 08 00     LDA #$0008   (Mute - set or clear  enter here)
C2/464C: 19 04 32     ORA $3204,Y
C2/464F: 99 04 32     STA $3204,Y
C2/4652: 60           RTS 

C2/4653 status sleep: clear

C2/4653: A9 00 40     LDA #$4000
C2/4656: 19 A0 3A     ORA $3AA0,Y
C2/4659: 99 A0 3A     STA $3AA0,Y
C2/465C: 60           RTS 

C2/465D status seizure: set

C2/465D: A9 02 00     LDA #$0002
C2/4660: 04 F6        TSB $F6      (mark Regen to be cleared)
C2/4662: 60           RTS

C2/4663 status regen: set

C2/4663: A9 00 40     LDA #$4000
C2/4666: 04 F4        TSB $F4      (mark Seizure to be cleared)
C2/4668: 60           RTS 

C2/4669 status slow: set

C2/4669: A9 08 00     LDA #$0008
C2/466C: 80 03        BRA $4671    (mark Haste to be cleared)

C2/466E status haste: set

C2/466E: A9 04 00     LDA #$0004   (mark Slow to be cleared)
C2/4671: 04 F6        TSB $F6     
C2/4673: A9 04 00     LDA #$0004   (Haste - clear  and  Slow - clear  enter here)
C2/4676: 80 D4        BRA $464C    (was BRA ???)

C2/4678 status morph: set or clear

C2/4678: A9 02 00     LDA #$0002
C2/467B: 80 CF        BRA $464C

C2/467D status stop: set

C2/467D: 08           PHP
C2/467E: E2 20        SEP #$20     (Set 8-bit A)
C2/4680: A9 12        LDA #$12
C2/4682: 99 F1 3A     STA $3AF1,Y  (Time until Stop wears off)
C2/4685: 28           PLP 
C2/4686: 60           RTS 

C2/4687 status reflect: set

C2/4687: 08           PHP
C2/4688: E2 20        SEP #$20     (Set 8-bit A)
C2/468A: A9 1A        LDA #$1A
C2/468C: 99 0C 3F     STA $3F0C,Y  (Time until Reflect wears off, though permanency
                                    can prevent its removal)
C2/468F: 28           PLP 
C2/4690: 60           RTS 

C2/4691 status freeze: set

C2/4691: 08           PHP
C2/4692: E2 20        SEP #$20     (Set 8-bit A)
C2/4694: A9 22        LDA #$22
C2/4696: 99 0D 3F     STA $3F0D,Y  (Time until Freeze wears off)
C2/4699: 28           PLP 
C2/469A: 60           RTS 

C2/469B multiple status: do nothing

(Do nothing:
 Dark, Poison, M-Tek,
 Near Fatal, Image, Berserk,
 Dance, Shell, Safe,
 Rage [set only], Life 3, Spell, Hide, Dog Block, Float)
C2/469B: 60           RTS

C2/469C unknow

C2/469C: DA           PHX
C2/469D: BE 19 30     LDX $3019,Y
C2/46A0: 8A           TXA 
C2/46A1: 0C 2F 2F     TSB $2F2F
C2/46A4: 1C 3A 3A     TRB $3A3A
C2/46A7: FA           PLX 
C2/46A8: 60           RTS 

C2/46A9 unknow

C2/46A9: B9 18 30     LDA $3018,Y
C2/46AC: 0C 56 3A     TSB $3A56   (Mark this character as having died)
C2/46AF: 60           RTS 

C2/46B0 pointers: table for setting status

Set status pointers ("side effects" to perform upon setting of a status):
C2/46B0: 9B 46 (Dark)        (Jumps to RTS)
C2/46B2: A3 45 (Zombie)
C2/46B4: 9B 46 (Poison)      (Jumps to RTS)
C2/46B6: 9B 46 (M-Tek)       (Jumps to RTS)
C2/46B8: CB 45 (Clear)
C2/46BA: DF 45 (Imp)
C2/46BC: 0B 46 (Petrify)
C2/46BE: 00 46 (Death)
C2/46C0: 3F 46 (Condemned)
C2/46C2: 9B 46 (Near Fatal)  (Jumps to RTS)
C2/46C4: 9B 46 (Image)       (Jumps to RTS)
C2/46C6: 49 46 (Mute)
C2/46C8: 9B 46 (Berserk)     (Jumps to RTS)
C2/46CA: B3 45 (Muddle)
C2/46CC: 5D 46 (Seizure)
C2/46CE: 34 46 (Sleep)
C2/46D0: 9B 46 (Dance)       (Jumps to RTS)
C2/46D2: 63 46 (Regen)
C2/46D4: 69 46 (Slow)
C2/46D6: 6E 46 (Haste)
C2/46D8: 7D 46 (Stop)
C2/46DA: 9B 46 (Shell)       (Jumps to RTS)
C2/46DC: 9B 46 (Safe)        (Jumps to RTS)
C2/46DE: 87 46 (Reflect)
C2/46E0: 9B 46 (Rage)        (Jumps to RTS)
C2/46E2: 91 46 (Freeze)
C2/46E4: 9B 46 (Life 3)      (Jumps to RTS)
C2/46E6: 78 46 (Morph)
C2/46E8: 9B 46 (Spell)       (Jumps to RTS)
C2/46EA: 9B 46 (Hide)        (Jumps to RTS)
C2/46EC: 9B 46 (Dog Block)   (Jumps to RTS)
C2/46EE: 9B 46 (Float)       (Jumps to RTS)

C2/46F0 pointers: table for clearing status

Clear status pointers ("side effects" to perform upon clearing of a status):
C2/46F0: 9B 46 (Dark)        (Jumps to RTS)
C2/46F2: AE 45 (Zombie)
C2/46F4: 9B 46 (Poison)      (Jumps to RTS)
C2/46F6: 9B 46 (M-Tek)       (Jumps to RTS)
C2/46F8: D5 45 (Clear)
C2/46FA: DF 45 (Imp)
C2/46FC: F2 45 (Petrify)
C2/46FE: F2 45 (Death)
C2/4700: 44 46 (Condemned)
C2/4702: 9B 46 (Near Fatal)  (Jumps to RTS)
C2/4704: 9B 46 (Image)       (Jumps to RTS)
C2/4706: 49 46 (Mute)
C2/4708: 9B 46 (Berserk)     (Jumps to RTS)
C2/470A: BB 45 (Muddle)
C2/470C: 9B 46 (Seizure)     (Jumps to RTS)
C2/470E: 53 46 (Sleep)
C2/4710: 9B 46 (Dance)       (Jumps to RTS)
C2/4712: 9B 46 (Regen)       (Jumps to RTS)
C2/4714: 73 46 (Slow)
C2/4716: 73 46 (Haste)
C2/4718: 9B 46 (Stop)        (Jumps to RTS)
C2/471A: 9B 46 (Shell)       (Jumps to RTS)
C2/471C: 9B 46 (Safe)        (Jumps to RTS)
C2/471E: 9B 46 (Reflect)     (Jumps to RTS)
C2/4720: E5 45 (Rage)
C2/4722: 9B 46 (Freeze)      (Jumps to RTS)
C2/4724: 9B 46 (Life 3)      (Jumps to RTS)
C2/4726: 78 46 (Morph)
C2/4728: 9B 46 (Spell)       (Jumps to RTS)
C2/472A: 9B 46 (Hide)        (Jumps to RTS)
C2/472C: 9B 46 (Dog Block)   (Jumps to RTS)
C2/472E: 9B 46 (Float)       (Jumps to RTS)

C2/4730 unknow

??? Function (Called from other bank)
C2/4730: DA           PHX
C2/4731: 5A           PHY
C2/4732: 8B           PHB 
C2/4733: 08           PHP 
C2/4734: E2 30        SEP #$30
C2/4736: 48           PHA 
C2/4737: A9 7E        LDA #$7E
C2/4739: 48           PHA 
C2/473A: AB           PLB 
C2/473B: 68           PLA 
C2/473C: 18           CLC 
C2/473D: FC 4B 47     JSR ($474B,X)
C2/4740: 20 90 44     JSR $4490   (Initialize intermediate "status to set" bytes in
                                   $F4 - $F7 and "status to clear" bytes in $FC - $FF.
                                   Mark Clear / Freeze to be removed if necessary.)
C2/4743: 20 7F 44     JSR $447F   (get new status)
C2/4746: 28           PLP 
C2/4747: AB           PLB 
C2/4748: 7A           PLY 
C2/4749: FA           PLX 
C2/474A: 6B           RTL 

C2/474B pointers: unknow

C2/474B: 4F 47
C2/474D: 78 47

C2/474F unknow

C2/474F: 20 66 29     JSR $2966
C2/4752: AD A4 11     LDA $11A4
C2/4755: 10 1E        BPL $4775   (Branch if damage based on HP)
C2/4757: AD A6 11     LDA $11A6   (Spell Power)
C2/475A: 85 E8        STA $E8
C2/475C: C2 30        REP #$30
C2/475E: AD B2 11     LDA $11B2
C2/4761: 20 3C 28     JSR $283C
C2/4764: C9 10 27     CMP #$2710  (10,000)
C2/4767: 90 03        BCC $476C
C2/4769: A9 0F 27     LDA #$270F  (9999)
C2/476C: E2 10        SEP #$10
C2/476E: 20 CB 0D     JSR $0DCB   
C2/4771: 8D B0 11     STA $11B0   (Damage)
C2/4774: 60           RTS 

C2/4775: 4C 69 2B     JMP $2B69

C2/4778 unknow

C2/4778: 20 37 2A     JSR $2A37
C2/477B: A9 01        LDA #$01
C2/477D: 0C A2 11     TSB $11A2   (Sets physical attack)
C2/4780: 60           RTS 

C2/4781 math: 16-bit A = low byte A * high byte A

Multiplication Function
Multiplies low bit of A * high bit of A. Stores result in 16-bit A.
C2/4781: 08           PHP
C2/4782: C2 20        REP #$20
C2/4784: 8F 02 42 00  STA $004202
C2/4788: EA           NOP 
C2/4789: EA           NOP 
C2/478A: EA           NOP 
C2/478B: EA           NOP 
C2/478C: AF 16 42 00  LDA $004216
C2/4790: 28           PLP 
C2/4791: 60           RTS 

C2/4792 division function

Division Function
Divides 16-bit A / 8-bit X
Stores answer in 16-bit A. Stores remainder in 8-bit X
C2/4792: 5A           PHY
C2/4793: 08           PHP 
C2/4794: C2 20        REP #$20
C2/4796: 8F 04 42 00  STA $004204
C2/479A: E2 30        SEP #$30
C2/479C: 8A           TXA 
C2/479D: 8F 06 42 00  STA $004206
C2/47A1: EA           NOP 
C2/47A2: EA           NOP 
C2/47A3: EA           NOP 
C2/47A4: EA           NOP 
C2/47A5: EA           NOP 
C2/47A6: EA           NOP 
C2/47A7: EA           NOP 
C2/47A8: EA           NOP 
C2/47A9: AF 16 42 00  LDA $004216
C2/47AD: AA           TAX 
C2/47AE: C2 20        REP #$20
C2/47B0: AF 14 42 00  LDA $004214
C2/47B4: 28           PLP 
C2/47B5: 7A           PLY 
C2/47B6: 60           RTS 

C2/47B7 multiplication function

Multiplication Function 2
Results:
16-bit A = (8-bit $E8 * 16-bit A) / 256
24-bit $E8 = 3 byte (8-bit $E8 * 16-bit A)
16-bit $EC = 8-bit $E8 * high byte of A
C2/47B7: 08           PHP
C2/47B8: E2 20        SEP #$20
C2/47BA: 64 EA        STZ $EA
C2/47BC: 85 E9        STA $E9
C2/47BE: A5 E8        LDA $E8
C2/47C0: 20 81 47     JSR $4781
C2/47C3: C2 21        REP #$21
C2/47C5: 85 EC        STA $EC
C2/47C7: A5 E8        LDA $E8
C2/47C9: 20 81 47     JSR $4781
C2/47CC: 85 E8        STA $E8
C2/47CE: A5 EC        LDA $EC
C2/47D0: 65 E9        ADC $E9
C2/47D2: 85 E9        STA $E9
C2/47D4: 28           PLP 
C2/47D5: 60           RTS 

C2/47D6 math: A = A * 1.5

Multiplies A (1 byte) by * 1.5
C2/47D6: 48           PHA
C2/47D7: 4A           LSR 
C2/47D8: 18           CLC 
C2/47D9: 63 01        ADC $01,S
C2/47DB: 90 02        BCC $47DF
C2/47DD: A9 FF        LDA #$FF
C2/47DF: 83 01        STA $01,S
C2/47E1: 68           PLA 
C2/47E2: 60           RTS 

C2/47E3 remove character from party

C2/47E3: DA           PHX
C2/47E4: BD D9 3E     LDA $3ED9,X
C2/47E7: AA           TAX 
C2/47E8: 9E 50 18     STZ $1850,X
C2/47EB: FA           PLX 
C2/47EC: 60           RTS 

C2/47ED unknow

C2/47ED: AD E0 3E     LDA $3EE0   
C2/47F0: F0 09        BEQ $47FB   (branch if in 4-tier final multi-battle)
C2/47F2: AD 6E 3A     LDA $3A6E   (Method used to end combat?)
C2/47F5: F0 04        BEQ $47FB   (Branch if no special end?)
C2/47F7: AA           TAX 
C2/47F8: 7C F5 48     JMP ($48F5,X)

C2/47FB unknow

C2/47FB: AD D1 1D     LDA $1DD1   ($1DD1 = $3EB8)
C2/47FE: 29 20        AND #$20
C2/4800: F0 05        BEQ $4807   
C2/4802: 0C BC 3E     TSB $3EBC   
C2/4805: 80 19        BRA $4820
C2/4807: AD 95 3A     LDA $3A95
C2/480A: D0 E0        BNE $47EC   (Exit if $3A95 != 0)
C2/480C: AD 74 3A     LDA $3A74   
C2/480F: D0 22        BNE $4833
C2/4811: AD 8A 3A     LDA $3A8A   
C2/4814: F0 0C        BEQ $4822   (If no characters engulfed)
C2/4816: CD 8D 3A     CMP $3A8D   
C2/4819: D0 07        BNE $4822
C2/481B: A9 80        LDA #$80
C2/481D: 0C BC 3E     TSB $3EBC   
C2/4820: 80 7F        BRA $48A1
C2/4822: AD 39 3A     LDA $3A39   
C2/4825: D0 70        BNE $4897   (If 1 or more characters escaped)
C2/4827: AD 97 3A     LDA $3A97   
C2/482A: D0 02        BNE $482E
C2/482C: A9 29        LDA #$29
C2/482E: 20 CA 5F     JSR $5FCA   
C2/4831: 80 5C        BRA $488F
C2/4833: AD 77 3A     LDA $3A77   (Number of monsters left in combat)
C2/4836: D0 B4        BNE $47EC   (Exit if 1 or more monsters still alive)
C2/4838: AD E0 3E     LDA $3EE0   
C2/483B: D0 03        BNE $4840
C2/483D: 20 76 4A     JSR $4A76
C2/4840: AE 0B 30     LDX $300B   (Which character is Gau)
C2/4843: 30 1C        BMI $4861   (branch if Gau not in party.  note that "in party" can
                                   mean Gau's actively in the party, or that he's Leapt on
                                   the Veldt, you're fighting on the Veldt, and there's a
                                   free spot in your party for him to return.)
C2/4845: A9 01        LDA #$01
C2/4847: 1C E4 11     TRB $11E4
C2/484A: F0 15        BEQ $4861
C2/484C: 20 5A 4B     JSR $4B5A   (0 to 255)
C2/484F: C9 A0        CMP #$A0    
C2/4851: B0 0E        BCS $4861   (3 in 8 chance branch)
C2/4853: AD BD 3E     LDA $3EBD   
C2/4856: 89 02        BIT #$02    (maybe this bit is set after you've enlisted Gau the
                                   first time?)
C2/4858: D0 74        BNE $48CE   (branch if it is set)
C2/485A: AD 76 3A     LDA $3A76   (Number of characters in party)
C2/485D: C9 02        CMP #$02
C2/485F: B0 6D        BCS $48CE   (Branch if 2 or more characters in party -- this ensures
                                   that Sabin and Cyan are both *alive* to see the original
                                   Gau hijinx)
C2/4861: AE 03 30     LDX $3003   (Which character is Shadow)
C2/4864: 30 26        BMI $488C   (Branch if Shadow not in party)
C2/4866: 20 5A 4B     JSR $4B5A   (0 to 255)
C2/4869: C9 10        CMP #$10    
C2/486B: B0 1F        BCS $488C   (15 in 16 chance branch)
C2/486D: AD 1F 20     LDA $201F   (get encounter type:  0 = front, 1 = back,
                                   2 = pincer, 3 = side)
C2/4870: D0 1A        BNE $488C   (if not a front attack, branch)
C2/4872: AD 76 3A     LDA $3A76   (Number of characters in party)
C2/4875: C9 02        CMP #$02
C2/4877: 90 13        BCC $488C   (Branch if less than 2 characters in party)
C2/4879: BD E4 3E     LDA $3EE4,X
C2/487C: 89 C2        BIT #$C2    (Check for Dead, Zombie, or Petrify)
C2/487E: D0 0C        BNE $488C   (Branch if any set on Shadow)
C2/4880: A9 08        LDA #$08
C2/4882: 2C BD 3E     BIT $3EBD
C2/4885: D0 05        BNE $488C
C2/4887: 2C DE 1E     BIT $1EDE   (Which characters are in party)
C2/488A: D0 1A        BNE $48A6   (Branch if Shadow in party)
C2/488C: 20 57 5D     JSR $5D57
C2/488F: 20 36 49     JSR $4936
C2/4892: 68           PLA 
C2/4893: 68           PLA 
C2/4894: 4C C5 00     JMP $00C5

C2/4897 warp stone effect?

(Warp)
C2/4897: A9 FF        LDA #$FF
C2/4899: 8D 05 02     STA $0205
C2/489C: A9 10        LDA #$10
C2/489E: 0C BC 3E     TSB $3EBC
(   FB 02-Usual monster script way to end a battle  enters here)
C2/48A1: 20 03 49     JSR $4903
C2/48A4: 80 E9        BRA $488F

C2/48A6 shadow randomly leaves after battle

C2/48A6: 1C DE 1E     TRB $1EDE    (Remove Shadow from party)
C2/48A9: 20 E3 47     JSR $47E3
C2/48AC: C2 10        REP #$10
C2/48AE: BC 10 30     LDY $3010,X  (get offset to character info block)
C2/48B1: A9 FF        LDA #$FF
C2/48B3: 99 1E 16     STA $161E,Y  (clear his equipped Esper)
C2/48B6: E2 10        SEP #$10
C2/48B8: A9 FE        LDA #$FE
C2/48BA: 20 92 07     JSR $0792
C2/48BD: A9 02        LDA #$02
C2/48BF: 0C 49 2F     TSB $2F49    (turn on "No Winning Stand" aka
                                    "No victory dance" in extra formation
                                    data.  this bit is checked at C1/0124.)
C2/48C2: A2 0B        LDX #$0B
C2/48C4: 68           PLA 
C2/48C5: 68           PLA 
C2/48C6: A9 23        LDA #$23
C2/48C8: 20 91 4E     JSR $4E91
C2/48CB: 4C 19 00     JMP $0019

C2/48CE Gau arrives after Veldt battle

(Gau arrives after Veldt battle)
C2/48CE: BD 18 30     LDA $3018,X
C2/48D1: 0C 4E 2F     TSB $2F4E
C2/48D4: 0C 40 3A     TSB $3A40   (mark Gau as a "character acting as enemy" target)
C2/48D7: A9 04        LDA #$04
C2/48D9: 0C 46 3A     TSB $3A46
C2/48DC: A2 1B        LDX #$1B
C2/48DE: 80 E4        BRA $48C4

C2/48E0 gau leapt

(Gau leapt)
C2/48E0: AE 0B 30     LDX $300B  (which character is Gau)
C2/48E3: 20 E3 47     JSR $47E3
C2/48E6: A9 08        LDA #$08
C2/48E8: 1C DF 1E     TRB $1EDF  (remove Gau from party)
(   FB 09-Used by returning Gau when he joins the party  enters here)
C2/48EB: 20 07 4A     JSR $4A07
C2/48EE: 80 9F        BRA $488F

C2/48F0 Banon fell

(Banon fell)
C2/48F0: A9 36        LDA #$36
C2/48F2: 20 CA 5F     JSR $5FCA
C2/48F5: 80 98        BRA $488F

C2/48F7 pointers: special combat endings

C2/48F7: 97 48    (02-Warp)
C2/48F9: E0 48    (04-Gau leapt)
C2/48FB: F0 48    (06-Banon fell)
C2/48FD: A1 48    (08-FB 02-Usual monster script way to end a battle)
C2/48FF: EB 48    (0A-FB 09-Used by returning Gau when he joins the
                   party)
C2/4901: 22 4A    (0C-Annihilation perhaps?)

C2/4903 unknow

C2/4903: 20 36 0B     JSR $0B36     (Establish new value for Morph supply based on its
                                     previous value and the current Morph timer)
C2/4906: A2 06        LDX #$06
C2/4908: 9E 04 3B     STZ $3B04,X   (Zero this entity's Morph gauge)
C2/490B: 8A           TXA 
C2/490C: 4A           LSR 
C2/490D: 85 10        STA $10
C2/490F: A9 03        LDA #$03
C2/4911: 20 11 64     JSR $6411
C2/4914: CA           DEX 
C2/4915: CA           DEX 
C2/4916: 10 F0        BPL $4908
C2/4918: A9 80        LDA #$80
C2/491A: 04 B1        TSB $B1
C2/491C: A2 20        LDX #$20
C2/491E: A9 01        LDA #$01
C2/4920: 20 11 64     JSR $6411
C2/4923: CA           DEX 
C2/4924: D0 F8        BNE $491E
C2/4926: A9 0F        LDA #$0F
C2/4928: 0C 8C 3A     TSB $3A8C   (mark all characters to have their applicable items
                                   added to inventory.  in particular, this will
                                   handle an item they tried to use (the game depletes
                                   it on issuing the command), but were killed before
                                   before they could actually execute the command and
                                   use it.)
C2/492B: 20 C7 62     JSR $62C7   (add items [back] to inventory)
C2/492E: A9 0A        LDA #$0A
C2/4930: 20 11 64     JSR $6411
C2/4933: 4C 95 20     JMP $2095

C2/4936 unknow

C2/4936: A2 06        LDX #$06
C2/4938: BD D8 3E     LDA $3ED8,X  (get which character this is)
C2/493B: 30 3E        BMI $497B    (if it's undefined, skip it)
C2/493D: C9 10        CMP #$10
C2/493F: F0 04        BEQ $4945    (branch if it's 1st ghost)
C2/4941: C9 11        CMP #$11
C2/4943: D0 07        BNE $494C    (branch if it's not 2nd ghost)
C2/4945: BD E4 3E     LDA $3EE4,X  (Check for Dead, Zombie, or Petrify)
C2/4948: 89 C2        BIT #$C2
C2/494A: D0 08        BNE $4954    (branch if one or more ^)
C2/494C: BD 18 30     LDA $3018,X
C2/494F: 2C 88 3A     BIT $3A88    (was this character flagged to be removed from
                                    party? [by Possessing or getting hit by
                                    BabaBreath])
C2/4952: F0 03        BEQ $4957    (branch if not)
C2/4954: 20 E3 47     JSR $47E3
C2/4957: BD F9 3E     LDA $3EF9,X  (in-battle status byte 4)
C2/495A: 29 C0        AND #$C0     (only keep Dog Block and Float after battle)
C2/495C: EB           XBA 
C2/495D: BD E4 3E     LDA $3EE4,X  (in-battle status byte 1)
C2/4960: C2 30        REP #$30     (Set 16-bit Accumulator, 16-bit X and Y)
C2/4962: BC 10 30     LDY $3010,X  (get offset to character info block)
C2/4965: 99 14 16     STA $1614,Y  (save in-battle status bytes 1 and 4 to our
                                    two out-of-battle status bytes)
C2/4968: BD F4 3B     LDA $3BF4,X
C2/496B: 99 09 16     STA $1609,Y  (save current HP in out-of-battle stat)
C2/496E: BD 30 3C     LDA $3C30,X
C2/4971: F0 06        BEQ $4979    (Branch if max MP is zero)
C2/4973: BD 08 3C     LDA $3C08,X
C2/4976: 99 0D 16     STA $160D,Y  (otherwise, save current MP in out-of-battle stat)
C2/4979: E2 30        SEP #$30
C2/497B: CA           DEX 
C2/497C: CA           DEX 
C2/497D: 10 B9        BPL $4938    (loop for all 4 party members)
C2/497F: C2 10        REP #$10
C2/4981: A2 FF 00     LDX #$00FF
C2/4984: A0 FB 04     LDY #$04FB
C2/4987: B9 86 26     LDA $2686,Y
C2/498A: 9D 69 18     STA $1869,X
C2/498D: 1A           INC 
C2/498E: F0 03        BEQ $4993
C2/4990: B9 89 26     LDA $2689,Y
C2/4993: 9D 69 19     STA $1969,X
C2/4996: 88           DEY 
C2/4997: 88           DEY 
C2/4998: 88           DEY 
C2/4999: 88           DEY 
C2/499A: 88           DEY 
C2/499B: CA           DEX 
C2/499C: 10 E9        BPL $4987
C2/499E: AD 97 3A     LDA $3A97
C2/49A1: F0 21        BEQ $49C4    (branch if not Colosseum brawl?)
C2/49A3: AD 05 02     LDA $0205    (item wagered)
C2/49A6: C9 FF        CMP #$FF     
C2/49A8: F0 1A        BEQ $49C4    (branch if null)
C2/49AA: A2 FF 00     LDX #$00FF
C2/49AD: DD 69 18     CMP $1869,X  (is item wagered in this slot?)
C2/49B0: D0 0F        BNE $49C1    (branch if not)
C2/49B2: DE 69 19     DEC $1969,X  (if it was, decrement the item's count as
                                    a Colosseum fee)
C2/49B5: F0 02        BEQ $49B9    (if there's none of the item left, empty
                                    out its slot)
C2/49B7: 10 08        BPL $49C1    (if there's a nonzero and positive quantity
                                    of the item, don't empty out its slot)
C2/49B9: A9 FF        LDA #$FF
C2/49BB: 9D 69 18     STA $1869,X  (store Empty item)
C2/49BE: 9E 69 19     STZ $1969,X  (with a quantity of 0)
C2/49C1: CA           DEX          (move to next lowest item slot)
C2/49C2: 10 E9        BPL $49AD    (loop for all 256 item slots)
C2/49C4: E2 10        SEP #$10
C2/49C6: AE FA 33     LDX $33FA
C2/49C9: 30 0A        BMI $49D5   (If Doom Gaze not in battle)
C2/49CB: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/49CD: BD F4 3B     LDA $3BF4,X (Monster's HP)
C2/49D0: 8D BE 3E     STA $3EBE   (Set Doom Gaze's HP to monsters's HP)
C2/49D3: E2 20        SEP #$20    (Set 8-bit A)
C2/49D5: A2 13        LDX #$13
C2/49D7: BD B4 3E     LDA $3EB4,X  (copy in-battle event bytes)
C2/49DA: 9D C9 1D     STA $1DC9,X  ( back into normal out-of-battle event bytes)
C2/49DD: CA           DEX 
C2/49DE: 10 F7        BPL $49D7    (loop 14 times)
C2/49E0: AD 4B 2F     LDA $2F4B
C2/49E3: 89 02        BIT #$02
C2/49E5: D0 1F        BNE $4A06   (exit if this formation has "Don't appear on Veldt"
                                   property)
C2/49E7: A2 0A        LDX #$0A
C2/49E9: BD 02 20     LDA $2002,X (Get MSB of monster #)
C2/49EC: D0 14        BNE $4A02   (If they're a boss, don't mark formation as found,
                                   but check next monster)
C2/49EE: AD D5 3E     LDA $3ED5   
C2/49F1: 4A           LSR         (Move bit 8 of formation # into Carry and out of A)
C2/49F2: D0 12        BNE $4A06   (If any of bits 9-15 were set, the formation # is
                                   over 511.  skip it.) 
C2/49F4: AD D4 3E     LDA $3ED4   (Get bits 0-7 of battle formation)
C2/49F7: 20 17 52     JSR $5217   (X=formation DIV 8, A=2^(formation MOD 8) )
C2/49FA: 1D DD 1D     ORA $1DDD,X
C2/49FD: 9D DD 1D     STA $1DDD,X (Update structure of encountered groups for Veldt)
C2/4A00: 80 04        BRA $4A06   (Once Veldt structure is updated once, we can exit)
C2/4A02: CA           DEX 
C2/4A03: CA           DEX 
C2/4A04: 10 E3        BPL $49E9   (Move to next enemy and loop)
C2/4A06: 60           RTS 

C2/4A07 add rages learned in battle

C2/4A07: A2 0A        LDX #$0A
C2/4A09: BD 02 20     LDA $2002,X
C2/4A0C: D0 0F        BNE $4A1D    (Branch if monster # >= 256)
C2/4A0E: DA           PHX 
C2/4A0F: 18           CLC 
C2/4A10: BD 01 20     LDA $2001,X  (Low byte of monster #)
C2/4A13: 20 17 52     JSR $5217    (X = monster # DIV 8, A = 2^(monster # MOD 8))
C2/4A16: 1D 2C 1D     ORA $1D2C,X
C2/4A19: 9D 2C 1D     STA $1D2C,X  (Add rage to list of known ones)
C2/4A1C: FA           PLX 
C2/4A1D: CA           DEX 
C2/4A1E: CA           DEX 
C2/4A1F: 10 E8        BPL $4A09    (Check for all monsters)
C2/4A21: 60           RTS 

C2/4A22 unknow

C2/4A22: 20 67 02     JSR $0267
C2/4A25: 20 03 49     JSR $4903
C2/4A28: 20 36 49     JSR $4936
C2/4A2B: A2 12        LDX #$12
C2/4A2D: E0 08        CPX #$08
C2/4A2F: B0 34        BCS $4A65    (branch if monster)
C2/4A31: BD A0 3A     LDA $3AA0,X
C2/4A34: 4A           LSR 
C2/4A35: 90 1D        BCC $4A54
C2/4A37: BD E4 3E     LDA $3EE4,X
C2/4A3A: 89 C2        BIT #$C2     (Check for Dead, Zombie, or Petrify)
C2/4A3C: D0 16        BNE $4A54    (branch if some possessed)
C2/4A3E: BD 05 32     LDA $3205,X
C2/4A41: 89 04        BIT #$04
C2/4A43: F0 0F        BEQ $4A54
C2/4A45: C2 20        REP #$20     (set 16-bit A)
C2/4A47: BD F8 3E     LDA $3EF8,X  (status bytes 3 and 4)
C2/4A4A: 29 FE EE     AND #$EEFE
C2/4A4D: 9D F8 3E     STA $3EF8,X  (clear Dance, Rage, and Spell Chant statuses)
C2/4A50: E2 20        SEP #$20     (set 8-bit A)
C2/4A52: 80 14        BRA $4A68
C2/4A54: A9 FF        LDA #$FF
C2/4A56: 9D D8 3E     STA $3ED8,X  (indicate null for "which character this is")
C2/4A59: BD 18 30     LDA $3018,X
C2/4A5C: 1C 2C 3F     TRB $3F2C    (clear entity from jumpers)
C2/4A5F: 1C 2E 3F     TRB $3F2E
C2/4A62: 1C 2F 3F     TRB $3F2F
C2/4A65: 20 9E 4A     JSR $4A9E    (Clear all statuses)
C2/4A68: CA           DEX 
C2/4A69: CA           DEX 
C2/4A6A: 10 C1        BPL $4A2D    (loop for all onscreen entities)
C2/4A6C: A9 0C        LDA #$0C
C2/4A6E: 20 11 64     JSR $6411
C2/4A71: 68           PLA 
C2/4A72: 68           PLA 
C2/4A73: 4C 16 00     JMP $0016

C2/4A76 unknow

C2/4A76: C2 20        REP #$20
C2/4A78: A2 04        LDX #$04
C2/4A7A: BF AB 4A C2  LDA $C24AAB,X
C2/4A7E: CD E0 11     CMP $11E0      (is Battle formation one of the first
                                      3 tiers of the final 4-tier multi-battle?)
C2/4A81: D0 14        BNE $4A97      (branch and check another if no match)
C2/4A83: BF AD 4A C2  LDA $C24AAD,X
C2/4A87: 8D E0 11     STA $11E0      (update Battle formation to the next
                                      one of the tiers)
C2/4A8A: E2 20        SEP #$20
C2/4A8C: BF B3 4A C2  LDA $C24AB3,X
C2/4A90: 8D E1 3E     STA $3EE1
C2/4A93: 68           PLA 
C2/4A94: 68           PLA            (clear caller address from stack?)
C2/4A95: 80 8B        BRA $4A22      (.. this will result in us returning
                                      somewhere other than C2/483D)
C2/4A97: CA           DEX
C2/4A98: CA           DEX 
C2/4A99: 10 DF        BPL $4A7A      (loop 3 times)
C2/4A9B: E2 20        SEP #$20
C2/4A9D: 60           RTS            (return normally)

C2/4A9E clear all statuses

C2/4A9E: 9E E4 3E     STZ $3EE4,X   (Clear Status Byte 1)
C2/4AA1: 9E E5 3E     STZ $3EE5,X   (Clear Status Byte 2)
C2/4AA4: 9E F8 3E     STZ $3EF8,X   (Clear Status Byte 3)
C2/4AA7: 9E F9 3E     STZ $3EF9,X   (Clear Status Byte 4)
C2/4AAA: 60           RTS 

C2/4AAB data: last battle formations

Data for changing formations in last battle
C2/4AAB: D7 01     (Short Arm, Long Arm, Face)
C2/4AAD: 00 02     (Hit, Tiger, Tools)
C2/4AAF: 01 02     (Girl, Sleep)
C2/4AB1: 02 02     (Final Kefka)

C2/4AB3: 90 90
C2/4AB5: 90 90
C2/4AB7: 8F 8F

C2/4AB9 unknow

C2/4AB9: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4ABB: AD 4C 2F     LDA $2F4C
C2/4ABE: 49 FF FF     EOR #$FFFF
C2/4AC1: 2D 4E 2F     AND $2F4E
C2/4AC4: 8D 4E 2F     STA $2F4E
C2/4AC7: 8D 78 3A     STA $3A78
C2/4ACA: 9C 74 3A     STZ $3A74
C2/4ACD: 9C 42 3A     STZ $3A42
C2/4AD0: E2 20        SEP #$20
C2/4AD2: A2 06        LDX #$06
C2/4AD4: BD A0 3A     LDA $3AA0,X
C2/4AD7: 4A           LSR 
C2/4AD8: BD 18 30     LDA $3018,X
C2/4ADB: 2C 4C 2F     BIT $2F4C
C2/4ADE: D0 22        BNE $4B02
C2/4AE0: 2C 4E 2F     BIT $2F4E
C2/4AE3: D0 0E        BNE $4AF3
C2/4AE5: 90 1B        BCC $4B02
C2/4AE7: 0C 78 3A     TSB $3A78
C2/4AEA: EB           XBA 
C2/4AEB: BD E4 3E     LDA $3EE4,X
C2/4AEE: 89 C2        BIT #$C2     (zombie, Petrify or death status?)
C2/4AF0: D0 10        BNE $4B02    (if so, branch)
C2/4AF2: EB           XBA 
C2/4AF3: 2D 08 34     AND $3408
C2/4AF6: 0C 74 3A     TSB $3A74
C2/4AF9: 2D 40 3A     AND $3A40
C2/4AFC: 0C 42 3A     TSB $3A42
C2/4AFF: 1C 74 3A     TRB $3A74
C2/4B02: CA           DEX 
C2/4B03: CA           DEX 
C2/4B04: 10 CE        BPL $4AD4
C2/4B06: A2 0A        LDX #$0A
C2/4B08: BD A8 3A     LDA $3AA8,X
C2/4B0B: 4A           LSR 
C2/4B0C: BD 21 30     LDA $3021,X
C2/4B0F: 2C 4D 2F     BIT $2F4D
C2/4B12: D0 1E        BNE $4B32
C2/4B14: 2C 4F 2F     BIT $2F4F
C2/4B17: D0 13        BNE $4B2C
C2/4B19: 90 17        BCC $4B32
C2/4B1B: 0C 79 3A     TSB $3A79
C2/4B1E: 2C 3A 3A     BIT $3A3A
C2/4B21: D0 0F        BNE $4B32
C2/4B23: EB           XBA 
C2/4B24: BD EC 3E     LDA $3EEC,X
C2/4B27: 89 C2        BIT #$C2
C2/4B29: D0 07        BNE $4B32
C2/4B2B: EB           XBA 
C2/4B2C: 2D 09 34     AND $3409
C2/4B2F: 0C 75 3A     TSB $3A75
C2/4B32: CA           DEX 
C2/4B33: CA           DEX 
C2/4B34: 10 D2        BPL $4B08
C2/4B36: DA           PHX 
C2/4B37: 08           PHP 
C2/4B38: AD 74 3A     LDA $3A74
C2/4B3B: 20 0E 52     JSR $520E
C2/4B3E: 8E 76 3A     STX $3A76   (Set Number of characters in party
                                   to number of bits set in $3A74)
C2/4B41: AD 75 3A     LDA $3A75
C2/4B44: EB           XBA 
C2/4B45: AD 42 3A     LDA $3A42
C2/4B48: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4B4A: 20 0E 52     JSR $520E   
C2/4B4D: 8E 77 3A     STX $3A77   (Set to number of bits set in $3A42 & $3A75)
C2/4B50: 28           PLP 
C2/4B51: FA           PLX 
C2/4B52: 60           RTS 

C2/4B53 random number generator: 0 or 1

Random Number Generator 1 (0 or 1, carry clear or set)
C2/4B53: 48           PHA
C2/4B54: 20 5A 4B     JSR $4B5A
C2/4B57: 4A           LSR 
C2/4B58: 68           PLA 
C2/4B59: 60           RTS 

C2/4B5A random number generator: [0, 255]

C2/4B5A: DA           PHX
C2/4B5B: E6 BE        INC $BE
C2/4B5D: A6 BE        LDX $BE
C2/4B5F: BF 00 FD C0  LDA $C0FD00,X
C2/4B63: FA           PLX 
C2/4B64: 60           RTS 

C2/4B65 random number generator: [0, A - 1]

C2/4B65: DA           PHX
C2/4B66: 08           PHP 
C2/4B67: E2 30        SEP #$30    (Set 8-bit A, X, Y)
C2/4B69: EB           XBA 
C2/4B6A: 48           PHA         (save top half of A)
C2/4B6B: E6 BE        INC $BE
C2/4B6D: A6 BE        LDX $BE
C2/4B6F: BF 00 FD C0  LDA $C0FD00,X
C2/4B73: 20 81 47     JSR $4781   (16-bit A = (input 8-bit A) * (Random Number Table value) )
C2/4B76: 68           PLA         (restore top half of A)
C2/4B77: EB           XBA         (now bottom half of A =
                                   (input 8-bit A * Random Table value) / 256)
C2/4B78: 28           PLP 
C2/4B79: FA           PLX 
C2/4B7A: 60           RTS 

C2/4B7B unknow

C2/4B7B: 38           SEC
C2/4B7C: 6E 07 34     ROR $3407
C2/4B7F: A9 01        LDA #$01
C2/4B81: 04 B1        TSB $B1
C2/4B83: F4 18 00     PEA $0018
C2/4B86: BD CD 32     LDA $32CD,X
C2/4B89: 30 68        BMI $4BF3
C2/4B8B: 0A           ASL 
C2/4B8C: A8           TAY 
C2/4B8D: 20 76 02     JSR $0276
C2/4B90: C9 1F        CMP #$1F
C2/4B92: D0 08        BNE $4B9C
C2/4B94: 20 54 4C     JSR $4C54
C2/4B97: 20 F4 4B     JSR $4BF4
C2/4B9A: 80 EA        BRA $4B86
C2/4B9C: BD CD 32     LDA $32CD,X
C2/4B9F: A8           TAY 
C2/4BA0: B9 84 31     LDA $3184,Y
C2/4BA3: DD CD 32     CMP $32CD,X
C2/4BA6: D0 02        BNE $4BAA
C2/4BA8: A9 FF        LDA #$FF
C2/4BAA: 9D CD 32     STA $32CD,X
C2/4BAD: A9 FF        LDA #$FF
C2/4BAF: 99 84 31     STA $3184,Y
C2/4BB2: A5 B5        LDA $B5
C2/4BB4: C9 1E        CMP #$1E
C2/4BB6: B0 1D        BCS $4BD5
C2/4BB8: E0 08        CPX #$08
C2/4BBA: B0 19        BCS $4BD5
C2/4BBC: BD 18 30     LDA $3018,X
C2/4BBF: 2C 39 3A     BIT $3A39
C2/4BC2: D0 1F        BNE $4BE3
C2/4BC4: 2C 40 3A     BIT $3A40
C2/4BC7: D0 0C        BNE $4BD5
C2/4BC9: AD 77 3A     LDA $3A77
C2/4BCC: F0 15        BEQ $4BE3
C2/4BCE: BD A0 3A     LDA $3AA0,X
C2/4BD1: 89 50        BIT #$50
C2/4BD3: D0 0E        BNE $4BE3
C2/4BD5: BD 04 32     LDA $3204,X
C2/4BD8: 09 04        ORA #$04
C2/4BDA: 9D 04 32     STA $3204,X
C2/4BDD: 20 D3 13     JSR $13D3
C2/4BE0: 20 1E 02     JSR $021E
C2/4BE3: BD CD 32     LDA $32CD,X
C2/4BE6: 1A           INC 
C2/4BE7: D0 07        BNE $4BF0
C2/4BE9: A5 B0        LDA $B0
C2/4BEB: 30 06        BMI $4BF3
C2/4BED: 4C 67 02     JMP $0267
C2/4BF0: 8E 07 34     STX $3407
C2/4BF3: 60           RTS 

C2/4BF4 unknow

C2/4BF4: 08           PHP
C2/4BF5: C2 20        REP #$20     (Set 16-bit accumulator)
C2/4BF7: 9C 98 3A     STZ $3A98
C2/4BFA: BD 18 30     LDA $3018,X
C2/4BFD: 1C FC 33     TRB $33FC
C2/4C00: F0 50        BEQ $4C52
C2/4C02: 1C 56 3A     TRB $3A56
C2/4C05: D0 21        BNE $4C28
C2/4C07: AD 03 34     LDA $3403
C2/4C0A: 30 05        BMI $4C11
C2/4C0C: EC 04 34     CPX $3404
C2/4C0F: D0 1F        BNE $4C30
C2/4C11: BD 60 3E     LDA $3E60,X    (Quasi Status after attack, bytes 1-2)
C2/4C14: 89 00 B0     BIT #$B000
C2/4C17: D0 17        BNE $4C30      (if Sleep, Muddled or Berserk is set, branch)
C2/4C19: BD 74 3E     LDA $3E74,X    (Quasi Status after attack, bytes 3-4)
C2/4C1C: 89 10 02     BIT #$0210
C2/4C1F: D0 0F        BNE $4C30      (if freeze or stop is set, branch)
C2/4C21: BD 94 33     LDA $3394,X
C2/4C24: 10 0A        BPL $4C30
C2/4C26: 80 0B        BRA $4C33
C2/4C28: BD 18 30     LDA $3018,X
C2/4C2B: 0C FE 33     TSB $33FE
C2/4C2E: F0 E1        BEQ $4C11
C2/4C30: CE 98 3A     DEC $3A98
C2/4C33: BD 68 32     LDA $3268,X
C2/4C36: 85 F0        STA $F0
C2/4C38: BD 20 3D     LDA $3D20,X
C2/4C3B: 85 F2        STA $F2
C2/4C3D: BD 41 32     LDA $3241,X
C2/4C40: 85 F4        STA $F4
C2/4C42: 18           CLC 
C2/4C43: 20 2F 1A     JSR $1A2F
C2/4C46: A5 F2        LDA $F2
C2/4C48: 9D 20 3D     STA $3D20,X
C2/4C4B: E2 20        SEP #$20
C2/4C4D: A5 F5        LDA $F5
C2/4C4F: 9D 41 32     STA $3241,X
C2/4C52: 28           PLP 
C2/4C53: 60           RTS 

C2/4C54 unknow

C2/4C54: DA           PHX
C2/4C55: E8           INX 
C2/4C56: 20 01 03     JSR $0301
C2/4C59: FA           PLX 
C2/4C5A: 60           RTS 

C2/4C5B counter attacks

Counter attacks (retort, interceptor, black belt)
C2/4C5B: A2 12        LDX #$12
C2/4C5D: BD A0 3A     LDA $3AA0,X
C2/4C60: 4A           LSR 
C2/4C61: 90 5B        BCC $4CBE
C2/4C63: AD 1A 34     LDA $341A   (did attack have X-Zone/Odin/Snare special effect,
                                   or Air Anchor special effect?)
C2/4C66: F0 56        BEQ $4CBE   (branch and skip counter if so)
C2/4C68: 64 B8        STZ $B8
C2/4C6A: 64 B9        STZ $B9
C2/4C6C: BD E0 32     LDA $32E0,X (Top bit = 1 if target of this attack?
                                   Bottom seven bits = index of entity who last
                                   attacked them?)
C2/4C6F: 10 15        BPL $4C86   (Branch if this attack does not target them)
C2/4C71: 0A           ASL 
C2/4C72: 85 EE        STA $EE     (multiply attacker index by 2 so we can access
                                   their data)
C2/4C74: E4 EE        CPX $EE
C2/4C76: F0 0E        BEQ $4C86   (Branch if targeting yourself)
C2/4C78: A8           TAY         (Y = attacker index)
C2/4C79: C2 20        REP #$20    (Set 16-bit accumulator)
C2/4C7B: B9 18 30     LDA $3018,Y
C2/4C7E: 85 B8        STA $B8     (Put attacker in $B8)
C2/4C80: BD 18 30     LDA $3018,X
C2/4C83: 1C FE 33     TRB $33FE
C2/4C86: C2 20        REP #$20
C2/4C88: BD 18 30     LDA $3018,X
C2/4C8B: 2C 56 3A     BIT $3A56   
C2/4C8E: E2 20        SEP #$20    (Set 8-bit accumulator)
C2/4C90: D0 0B        BNE $4C9D   (Branch if died already this combat)
C2/4C92: A5 B1        LDA $B1
C2/4C94: 4A           LSR 
C2/4C95: B0 27        BCS $4CBE   (No counter)
C2/4C97: A5 B8        LDA $B8
C2/4C99: 05 B9        ORA $B9
C2/4C9B: F0 21        BEQ $4CBE   (No counter if not target of attack, or if
                                   targeting yourself)
C2/4C9D: BD 69 32     LDA $3269,X  (top byte of offset to monster's
                                    counterattack script)
C2/4CA0: 30 0F        BMI $4CB1    (branch if it has no counterattack script)
C2/4CA2: BD CD 32     LDA $32CD,X
C2/4CA5: 10 0A        BPL $4CB1
C2/4CA7: A9 1F        LDA #$1F
C2/4CA9: 8D 7A 3A     STA $3A7A   (Set command to #$1F (counter attack))   
C2/4CAC: 20 B2 4E     JSR $4EB2
C2/4CAF: 80 0D        BRA $4CBE
C2/4CB1: E0 08        CPX #$08
C2/4CB3: B0 09        BCS $4CBE   (Branch if monster)
C2/4CB5: AD A2 11     LDA $11A2
C2/4CB8: 4A           LSR 
C2/4CB9: 90 03        BCC $4CBE   (Branch if magical attack)
C2/4CBB: 20 C3 4C     JSR $4CC3   (Do Retort counter [or Dog Block counter,
                                   or Black Belt counter])
C2/4CBE: CA           DEX 
C2/4CBF: CA           DEX 
C2/4CC0: 10 9B        BPL $4C5D   (Check for each character and monster)
C2/4CC2: 60           RTS 

C2/4CC3 retort

C2/4CC3: BD 4C 3E     LDA $3E4C,X
C2/4CC6: 4A           LSR 
C2/4CC7: 90 0D        BCC $4CD6   (Branch if no retort, check dog block)
C2/4CC9: A9 07        LDA #$07
C2/4CCB: 8D 7A 3A     STA $3A7A   (Store Swdtech in command)
C2/4CCE: A9 56        LDA #$56
C2/4CD0: 8D 7B 3A     STA $3A7B   (Store Retort in attack)
C2/4CD3: 4C B2 4E     JMP $4EB2

C2/4CD6 dog block

C2/4CD6: A5 B9        LDA $B9
C2/4CD8: F0 E8        BEQ $4CC2   (Exit function if attacked by party)
C2/4CDA: EC 16 34     CPX $3416   (was this target protected by a Dog block on
                                   this turn?  [or if it's a multi-strike attack
                                   and Interceptor status was hacked onto multiple
                                   characters, then was this target the most
                                   recently protected on the turn?])
C2/4CDD: D0 15        BNE $4CF4   (if target wasn't protected by a dog block,
                                   branch to Black Belt)
C2/4CDF: 20 5A 4B     JSR $4B5A   (random: 0 to 255)
C2/4CE2: 4A           LSR 
C2/4CE3: 90 0F        BCC $4CF4   (50% chance branch to Black Belt)
C2/4CE5: 4A           LSR         (Carry will determine which Interceptor
                                   counterattack is used: 50% chance of each)
C2/4CE6: 7B           TDC 
C2/4CE7: 69 FC        ADC #$FC
C2/4CE9: 8D 7B 3A     STA $3A7B   (Store Wild Fang or Take Down in attack)
C2/4CEC: A9 02        LDA #$02
C2/4CEE: 8D 7A 3A     STA $3A7A   (Store Magic in command)
C2/4CF1: 4C B2 4E     JMP $4EB2

C2/4CF4 black belt counter

C2/4CF4: BD 18 30     LDA $3018,X
C2/4CF7: 2C 19 34     BIT $3419   (was this target damaged [by an attacker other
                                   than themselves] this turn?  the target's bit
                                   will be 0 in $3419 if they were.)
C2/4CFA: D0 C6        BNE $4CC2   (Exit if they weren't)
C2/4CFC: BD 58 3C     LDA $3C58,X
C2/4CFF: 89 02        BIT #$02    (Check for Black Belt)
C2/4D01: F0 BF        BEQ $4CC2   (Exit if no Black Belt)
C2/4D03: 20 5A 4B     JSR $4B5A   (0 to 255)
C2/4D06: C9 C0        CMP #$C0
C2/4D08: B0 B8        BCS $4CC2   (25% chance of exit)
C2/4D0A: 9B           TXY 
C2/4D0B: F4 CA A0     PEA $A0CA   (Death, Petrify, M-Tek, Zombie, Sleep, Muddled)
C2/4D0E: F4 11 32     PEA $3211   (Stop, Dance, Freeze, Spell, Hide)
C2/4D11: 20 64 58     JSR $5864
C2/4D14: 90 AC        BCC $4CC2   (Exit if any set)
C2/4D16: 9C 7A 3A     STZ $3A7A   (Store Fight in command)
C2/4D19: 9C 7B 3A     STZ $3A7B
C2/4D1C: 4C B2 4E     JMP $4EB2

C2/4D1F unknow

C2/4D1F: AC 6A 3A     LDY $3A6A
C2/4D22: B9 AE 2B     LDA $2BAE,Y
C2/4D25: 30 45        BMI $4D6C   (Exit function)
C2/4D27: 0A           ASL 
C2/4D28: AA           TAX 
C2/4D29: 20 66 4E     JSR $4E66
C2/4D2C: A9 7B        LDA #$7B
C2/4D2E: 20 92 07     JSR $0792
C2/4D31: A9 FF        LDA #$FF
C2/4D33: 99 AE 2B     STA $2BAE,Y
C2/4D36: 98           TYA 
C2/4D37: 69 08        ADC #$08
C2/4D39: 29 18        AND #$18
C2/4D3B: 8D 6A 3A     STA $3A6A
C2/4D3E: 20 6D 4D     JSR $4D6D
C2/4D41: B9 B0 2B     LDA $2BB0,Y
C2/4D44: EB           XBA 
C2/4D45: B9 AF 2B     LDA $2BAF,Y
C2/4D48: 20 89 4D     JSR $4D89
C2/4D4B: 20 77 4D     JSR $4D77
C2/4D4E: 20 CB 4E     JSR $4ECB
C2/4D51: B9 AF 2B     LDA $2BAF,Y
C2/4D54: C9 17        CMP #$17
C2/4D56: D0 C7        BNE $4D1F
C2/4D58: C8           INY 
C2/4D59: C8           INY 
C2/4D5A: C8           INY 
C2/4D5B: 20 6D 4D     JSR $4D6D
C2/4D5E: B9 B0 2B     LDA $2BB0,Y
C2/4D61: EB           XBA 
C2/4D62: A9 17        LDA #$17
C2/4D64: 20 77 4D     JSR $4D77
C2/4D67: 20 CB 4E     JSR $4ECB
C2/4D6A: 80 B3        BRA $4D1F
C2/4D6C: 60           RTS 

C2/4D6D unknow

C2/4D6D: 08           PHP
C2/4D6E: C2 20        REP #$20
C2/4D70: B9 B1 2B     LDA $2BB1,Y
C2/4D73: 85 B8        STA $B8
C2/4D75: 28           PLP 
C2/4D76: 60           RTS 

C2/4DD7 clears target if attacker is zombied or muddled

C2/4D77: 08           PHP
C2/4D78: C2 20        REP #$20     (set 16-bit accumulator)
C2/4D7A: 8D 7A 3A     STA $3A7A
C2/4D7D: BD E4 3E     LDA $3EE4,X
C2/4D80: 89 02 20     BIT #$2002
C2/4D83: F0 02        BEQ $4D87    (branch if not Zombie or Muddle)
C2/4D85: 64 B8        STZ $B8      (clear targets)
C2/4D87: 28           PLP 
C2/4D88: 60           RTS 

C2/4D89 unknow

C2/4D89: DA           PHX
C2/4D8A: 5A           PHY 
C2/4D8B: 9B           TXY 
C2/4D8C: C9 17        CMP #$17   
C2/4D8E: D0 02        BNE $4D92   (Branch if not X-Magic)
C2/4D90: A9 02        LDA #$02    (Set command to Magic)

C2/4D92: C9 19        CMP #$19    
C2/4D94: D0 11        BNE $4DA7   (Branch if not Summon)
C2/4D96: 48           PHA 
C2/4D97: EB           XBA 
C2/4D98: C9 FF        CMP #$FF    (Check if no Esper equipped)
C2/4D9A: D0 03        BNE $4D9F
C2/4D9C: B9 44 33     LDA $3344,Y
C2/4D9F: EB           XBA 
C2/4DA0: B9 18 30     LDA $3018,Y
C2/4DA3: 0C 2E 3F     TSB $3F2E   
C2/4DA6: 68           PLA

C2/4DA7: C9 01        CMP #$01
C2/4DA9: F0 04        BEQ $4DAF   (Branch if Item)
C2/4DAB: C9 08        CMP #$08
C2/4DAD: D0 05        BNE $4DB4   (Branch if not Throw)
C2/4DAF: EB           XBA 
C2/4DB0: 99 F4 32     STA $32F4,Y (store as item to add back to inventory.  this can
                                   happen with:
                                   1) Equipment Magic that doesn't destroy the item
                                      [no items have this, but the game supports it]
                                   2) the item user's turn never happens.  perhaps the
                                      character who acted before them won the battle.)
C2/4DB3: EB           XBA 

C2/4DB4: C9 0F        CMP #$0F
C2/4DB6: D0 23        BNE $4DDB   (Branch if not Slot)
C2/4DB8: 48           PHA         (save command #)
C2/4DB9: EB           XBA           (get our Slot index)
C2/4DBA: AA           TAX 
C2/4DBB: BF 4A 4E C2  LDA $C24E4A,X   (get spell # used by this Slot combo)
C2/4DBF: E0 02        CPX #$02
C2/4DC1: B0 0F        BCS $4DD2       (branch if it's Bahamut or higher -- i.e. neither form
                                       of Joker Doom)
C2/4DC3: 48           PHA             (save spell #)
C2/4DC4: BF 52 4E C2  LDA $C24E52,X   (get Joker Doom targeting)
C2/4DC8: 95 B8        STA $B8,X       (if X is 0 [7-7-Bar], mark all party members in $B8
                                       if X is 1 [7-7-7], mark all enemies in $B9)
C2/4DCA: A5 B8        LDA $B8
C2/4DCC: 4D 40 3A     EOR $3A40     
C2/4DCF: 85 B8        STA $B8         (toggle whether characters acting as enemies are targeted.
                                       e.g. Shadow in Colosseum or Gau returning from Veldt leap)
C2/4DD1: 68           PLA             (restore spell #)
C2/4DD2: C9 FF        CMP #$FF
C2/4DD4: D0 03        BNE $4DD9   (branch if not Bar-Bar-Bar)
C2/4DD6: 20 DC 37     JSR $37DC   (Pick random esper)
C2/4DD9: EB           XBA 
C2/4DDA: 68           PLA         (restore command #)

C2/4DDB: C9 13        CMP #$13
C2/4DDD: D0 0D        BNE $4DEC   (Branch if not Dance)
C2/4DDF: 48           PHA 
C2/4DE0: EB           XBA 
C2/4DE1: 99 E1 32     STA $32E1,Y
C2/4DE4: 8D 6F 3A     STA $3A6F
C2/4DE7: 20 9C 05     JSR $059C   (Pick dance and dance move)
C2/4DEA: EB           XBA 
C2/4DEB: 68           PLA 

C2/4DEC: C9 10        CMP #$10
C2/4DEE: D0 0A        BNE $4DFA   (Branch if not Rage)
C2/4DF0: 48           PHA 
C2/4DF1: EB           XBA 
C2/4DF2: 99 A8 33     STA $33A8,Y (Which rage is being used)
C2/4DF5: 20 D1 05     JSR $05D1   (Picks a Rage [when Muddled/Berserked/etc], and picks
                                   the Rage move)
C2/4DF8: EB           XBA
C2/4DF9: 68           PLA 

C2/4DFA: C9 0A        CMP #$0A
C2/4DFC: D0 15        BNE $4E13   (Branch if not Blitz)
C2/4DFE: 48           PHA 
C2/4DFF: EB           XBA 
C2/4E00: 48           PHA 
C2/4E01: 30 0D        BMI $4E10   (If no blitz selected)
C2/4E03: AA           TAX 
C2/4E04: 20 57 1E     JSR $1E57
C2/4E07: 2C 28 1D     BIT $1D28
C2/4E0A: D0 04        BNE $4E10   (Branch if selected blitz is known)
C2/4E0C: A9 FF        LDA #$FF
C2/4E0E: 83 01        STA $01,S   (replace spell/attack # with null)
C2/4E10: 68           PLA 
C2/4E11: EB           XBA 
C2/4E12: 68           PLA 

C2/4E13: A2 04        LDX #$04
C2/4E15: DF 3C 4E C2  CMP $C24E3C,X   (does our command match one that needs its
                                       spell # calculated?)
C2/4E19: D0 0B        BNE $4E26       (branch if not)
C2/4E1B: EB           XBA 
C2/4E1C: 18           CLC 
C2/4E1D: 7F 41 4E C2  ADC $C24E41,X   (add the first spell # for this command to our
                                       current index.  ex - for Pummel, Blitz #0, we'd
                                       end up with 55h.)
C2/4E21: 90 02        BCC $4E25       (branch if the spell # didn't overflow)
C2/4E23: A9 EE        LDA #$EE        (load Battle as spell #)
C2/4E25: EB           XBA             (put spell # in top of A, and look at command # again)
C2/4E26: CA           DEX 
C2/4E27: 10 EC        BPL $4E15       (loop for all 5 commands)

C2/4E29: 48           PHA 
C2/4E2A: 18           CLC             (clear Carry)
C2/4E2B: 20 17 52     JSR $5217       (X = A DIV 8, A = 2 ^ (A MOD 8) )
C2/4E2E: 3F 46 4E C2  AND $C24E46,X   (compare to bitfield of commands that need to retarget)
C2/4E32: F0 04        BEQ $4E38       (Branch if command doesn't need to retarget)
C2/4E34: 64 B8        STZ $B8    
C2/4E36: 64 B9        STZ $B9         (clear targets)
C2/4E38: 68           PLA 
C2/4E39: 7A           PLY 
C2/4E3A: FA           PLX 
C2/4E3B: 60           RTS 

C2/4E3C data: commands for spell calculation

(Data - commands that need their spell # calculated)
C2/4E3C: 19   (Summon)
C2/4E3D: 0C   (Lore)
C2/4E3E: 1D   (Magitek)
C2/4E3F: 0A   (Blitz)
C2/4E40: 07   (Swdtech)

C2/4E41 data: first spell for commands at C2/4E3C

(Data - first spell # for each of above commands)
C2/4E41: 36   (Espers)    
C2/4E42: 8B   (Lores)   
C2/4E43: 83   (Magitek commands)
C2/4E44: 5D   (Blitzes)
C2/4E45: 55   (Swdtech)

C2/4E46 data: commands that need to retarget

(Data - commands that need to retarget.  8 commands per byte.)
C2/4E46: 80   (Swdtech)
C2/4E47: 04   (Blitz)
C2/4E48: 0B   (Rage, Leap, Dance)
C2/4E49: 00   (Nothing)

C2/4E4A data: spell numbers for slot attacks

C2/4E4A: 94   (L.5 Doom -- used by Joker Doom)
C2/4E4B: 94   (L.5 Doom -- used by Joker Doom)
C2/4E4C: 43   (Bahamut)
C2/4E4D: FF   (Nothing -- used by Triple Bar?)
C2/4E4E: 80   (H-Bomb)
C2/4E4F: 7F   (Chocobop)
C2/4E50: 81   (7-Flush)
C2/4E51: FE   (Lagomorph)

C2/4E52 data: joker doom targeting

(Data - Joker Doom targeting)
C2/4E52: 0F   (7-7-bar => your whole party)
C2/4E53: 3F   (7-7-7  => whole enemy party)

C2/4E54 unknow

C2/4E54: DA           PHX
C2/4E55: A2 7F        LDX #$7F
C2/4E57: BD 84 31     LDA $3184,X
C2/4E5A: 30 04        BMI $4E60
C2/4E5C: CA           DEX 
C2/4E5D: 10 F8        BPL $4E57
C2/4E5F: E8           INX 
C2/4E60: 8A           TXA 
C2/4E61: 9D 84 31     STA $3184,X
C2/4E64: FA           PLX 
C2/4E65: 60           RTS 

C2/4E66 add fighter to wait queue

(Add character/monster to queue of who will wait to act.  One place this is called 
 is right after a character's command is input, and before they enter their
 "ready stance".  Monsters' ready stances aren't visible [and are generally
 negligible in length], but monsters still use this queue too.)
C2/4E66: 8A           TXA
C2/4E67: DA           PHX 
C2/4E68: AE 65 3A     LDX $3A65     (get next available Wait Queue slot)
C2/4E6B: 9D 20 37     STA $3720,X   (store current entity in that slot)
C2/4E6E: FA           PLX 
C2/4E6F: EE 65 3A     INC $3A65     (point to next queue slot after this one.  this is
                                     circular: if we've gone past slot #255, we'll restart on
                                     #0.  that shouldn't be a problem unless 256+ fighters
                                     get queued up at once somehow.)
C2/4E72: A9 FE        LDA #$FE
C2/4E74: 4C 43 0A     JMP $0A43

C2/4E77 add fighter to queue of next attacker

(Add character/monster to queue of who will act next.  One place this is called is
 when someone's "wait timer" after inputting a command elapses and they can leave
 their ready stance to attack.)
C2/4E77: 8A           TXA
C2/4E78: DA           PHX 
C2/4E79: AE 67 3A     LDX $3A67     (get next available Action Queue slot)
C2/4E7C: 9D 20 38     STA $3820,X   (store current entity in that slot)
C2/4E7F: FA           PLX 
C2/4E80: EE 67 3A     INC $3A67     (point to next queue slot after this one.  this is
                                     circular: if we've gone past slot #255, we'll restart on
                                     #0.  that shouldn't be a problem unless 256+ fighters
                                     get queued up at once somehow.)
C2/4E83: 60           RTS 

C2/4E84 unknow

C2/4E84: 8A           TXA
C2/4E85: DA           PHX 
C2/4E86: AE 69 3A     LDX $3A69
C2/4E89: 9D 20 39     STA $3920,X
C2/4E8C: FA           PLX 
C2/4E8D: EE 69 3A     INC $3A69
C2/4E90: 60           RTS 

C2/4E91 unknow

C2/4E91: 5A           PHY
C2/4E92: 08           PHP 
C2/4E93: E2 20        SEP #$20
C2/4E95: 8D 7A 3A     STA $3A7A   (Set command)
C2/4E98: 8E 7B 3A     STX $3A7B   (Set attack)
C2/4E9B: 20 54 4E     JSR $4E54
C2/4E9E: 48           PHA 
C2/4E9F: AD 0A 34     LDA $340A
C2/4EA2: C9 FF        CMP #$FF
C2/4EA4: D0 39        BNE $4EDF
C2/4EA6: A3 01        LDA $01,S
C2/4EA8: 8D 0A 34     STA $340A
C2/4EAB: 80 32        BRA $4EDF

C2/4EAD unknow

C2/4EAD: A5 B1        LDA $B1
C2/4EAF: 4A           LSR 
C2/4EB0: 90 19        BCC $4ECB
C2/4EB2: 5A           PHY 
C2/4EB3: 08           PHP 
C2/4EB4: E2 20        SEP #$20
C2/4EB6: 20 54 4E     JSR $4E54
C2/4EB9: 48           PHA 
C2/4EBA: BD CD 32     LDA $32CD,X
C2/4EBD: C9 FF        CMP #$FF
C2/4EBF: D0 1E        BNE $4EDF
C2/4EC1: 20 84 4E     JSR $4E84
C2/4EC4: A3 01        LDA $01,S
C2/4EC6: 9D CD 32     STA $32CD,X
C2/4EC9: 80 14        BRA $4EDF

C2/4ECB unknow

C2/4ECB: 5A           PHY
C2/4ECC: 08           PHP 
C2/4ECD: E2 20        SEP #$20    (Set 8-bit Accumulator)
C2/4ECF: 20 54 4E     JSR $4E54
C2/4ED2: 48           PHA 
C2/4ED3: BD CC 32     LDA $32CC,X
C2/4ED6: C9 FF        CMP #$FF
C2/4ED8: D0 05        BNE $4EDF
C2/4EDA: A3 01        LDA $01,S
C2/4EDC: 9D CC 32     STA $32CC,X
C2/4EDF: A8           TAY 
C2/4EE0: D9 84 31     CMP $3184,Y
C2/4EE3: F0 07        BEQ $4EEC
C2/4EE5: B9 84 31     LDA $3184,Y
C2/4EE8: 30 02        BMI $4EEC
C2/4EEA: 80 F3        BRA $4EDF
C2/4EEC: 68           PLA 
C2/4EED: 99 84 31     STA $3184,Y
C2/4EF0: 0A           ASL 
C2/4EF1: A8           TAY 
C2/4EF2: 20 08 4F     JSR $4F08    (Determine MP cost of a spell/attack)
C2/4EF5: 99 20 36     STA $3620,Y  (save MP cost)
C2/4EF8: C2 20        REP #$20     (Set 16-bit Accumulator)
C2/4EFA: AD 7A 3A     LDA $3A7A
C2/4EFD: 99 20 34     STA $3420,Y  (save command #)
C2/4F00: A5 B8        LDA $B8
C2/4F02: 99 20 35     STA $3520,Y
C2/4F05: 28           PLP 
C2/4F06: 7A           PLY 
C2/4F07: 60           RTS 

C2/4F08 determinate mp cost of spell

(Determine MP cost of a spell/attack)
C2/4F08: DA           PHX
C2/4F09: 08           PHP 
C2/4F0A: 7B           TDC        (16-bit A = 0.  this means the returned spell cost will
                                  default to zero.)
C2/4F0B: A9 40        LDA #$40
C2/4F0D: 14 B1        TRB $B1
C2/4F0F: D0 42        BNE $4F53

C2/4F11: AD 7A 3A     LDA $3A7A  (get command #)
C2/4F14: C9 19        CMP #$19
C2/4F16: F0 0C        BEQ $4F24  (branch if it's Summon)
C2/4F18: C9 0C        CMP #$0C
C2/4F1A: F0 08        BEQ $4F24  (branch if it's Lore)
C2/4F1C: C9 02        CMP #$02
C2/4F1E: F0 04        BEQ $4F24  (branch if it's Magic)
C2/4F20: C9 17        CMP #$17
C2/4F22: D0 2F        BNE $4F53  (branch if it's not X-Magic)
C2/4F24: C2 10        REP #$10   (Set 16-bit X and Y)
C2/4F26: AD 7B 3A     LDA $3A7B  (get attack #)
C2/4F29: E0 08 00     CPX #$0008
C2/4F2C: B0 19        BCS $4F47  (branch if it's a monster attacker.  they don't have
                                  menus containing MP data, nor relics that can
                                  alter MP costs.)
C2/4F2E: DA           PHX
C2/4F2F: AA           TAX
C2/4F30: BD 84 30     LDA $3084,X  (get this spell's index relative to start of Magic menu?
                                    i believe the Lore menu follows the Magic menu in memory.)
C2/4F33: FA           PLX 
C2/4F34: C9 FF        CMP #$FF
C2/4F36: F0 1B        BEQ $4F53   (if it's somehow not in the menu, branch?)
C2/4F38: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4F3A: 0A           ASL 
C2/4F3B: 0A           ASL         (multiply offset by 4, as each spell menu entry has 4 bytes:
                                    Spell index number, Unknown [related to spell availability],
                                    Spell aiming, MP cost)
C2/4F3C: 7D 2C 30     ADC $302C,X (add starting address of character's Magic menu?)
C2/4F3F: AA           TAX 
C2/4F40: E2 20        SEP #$20    (Set 8-bit Accumulator)
C2/4F42: BD 03 00     LDA $0003,X (get MP cost from character's menu data.  it usually
                                   matches the spell data, but Gold Hairpin, Economizer,
                                   and Step Mine's special formula can make it vary.)
C2/4F45: 80 0D        BRA $4F54   (clean up stack and exit)
C2/4F47: EB           XBA 
C2/4F48: A9 0E        LDA #$0E
C2/4F4A: 20 81 47     JSR $4781   (attack # * 14)
C2/4F4D: AA           TAX 
C2/4F4E: BF C5 6A C4  LDA $C46AC5,X  (read MP cost from spell data)
C2/4F52: EB           XBA 
C2/4F53: EB           XBA 
C2/4F54: 28           PLP 
C2/4F55: FA           PLX 
C2/4F56: 60           RTS 

C2/4F57 monster command script: F7

C2/4F57: A5 B6        LDA $B6
C2/4F59: EB           XBA 
C2/4F5A: A9 0F        LDA #$0F
C2/4F5C: 4C BF 62     JMP $62BF

C2/4F5F command 26

Command #$26 - Doom cast when Condemned countdown reaches 0; Safe, Shell, or Reflect*
               cast when character enters Near Fatal (* no items actually do this,
               but it's supported); or revival due to Life 3.
C2/4F5F: A5 B8        LDA $B8      (get spell ID?)
C2/4F61: A6 B6        LDX $B6      (get target?)
C2/4F63: 85 B6        STA $B6      (save spell ID)
C2/4F65: C9 0D        CMP #$0D
C2/4F67: D0 0F        BNE $4F78    (branch if we're not casting Doom)
C2/4F69: BD 04 32     LDA $3204,X
C2/4F6C: 09 10        ORA #$10
C2/4F6E: 9D 04 32     STA $3204,X  (set flag to zero and disable the Condemned counter
                                    after turn.  this is done in case instant death is
                                    thwarted, and thus Condemned status isn't removed
                                    and C2/4644 never executes.)
C2/4F71: AD 77 3A     LDA $3A77
C2/4F74: F0 69        BEQ $4FDF   (Exit function if no monsters are alive)
C2/4F76: A9 0D        LDA #$0D    (Set spell to Doom again.  it's easier than PHA/PLA)
C2/4F78: EB           XBA 
C2/4F79: A9 02        LDA #$02
C2/4F7B: 85 B5        STA $B5     (Set command to Magic)
C2/4F7D: 20 D3 26     JSR $26D3   (Load command and spell data)
C2/4F80: 20 51 29     JSR $2951
C2/4F83: A9 10        LDA #$10
C2/4F85: 14 B0        TRB $B0
C2/4F87: A9 02        LDA #$02
C2/4F89: 8D A3 11     STA $11A3   (Set attack to only not reflectable)
C2/4F8C: A9 20        LDA #$20
C2/4F8E: 0C A4 11     TSB $11A4   (Set can't be dodged)
C2/4F91: 9C A5 11     STZ $11A5   (Set to 0 MP cost)
C2/4F94: 4C 67 31     JMP $3167

C2/4F97 monster command script F5

C2/4F97: 9C 2A 3A     STZ $3A2A   (Set to zero damage)
C2/4F9A: 9C 2B 3A     STZ $3A2B
C2/4F9D: AD 73 3A     LDA $3A73
C2/4FA0: 49 FF        EOR #$FF
C2/4FA2: 14 B9        TRB $B9     (Clear monsters that aren't in template)
C2/4FA4: A5 B8        LDA $B8
C2/4FA6: 0A           ASL 
C2/4FA7: AA           TAX 
C2/4FA8: A0 12        LDY #$12
C2/4FAA: B9 19 30     LDA $3019,Y
C2/4FAD: 24 B9        BIT $B9
C2/4FAF: F0 03        BEQ $4FB4     (branch if enemy isn't affected by the F5 command)
C2/4FB1: FC E4 51     JSR ($51E4,X)
C2/4FB4: 88           DEY 
C2/4FB5: 88           DEY 
C2/4FB6: C0 08        CPY #$08
C2/4FB8: B0 F0        BCS $4FAA     (loop for all 6 monsters)
C2/4FBA: A5 B6        LDA $B6
C2/4FBC: EB           XBA 
C2/4FBD: A9 13        LDA #$13
C2/4FBF: 4C BF 62     JMP $62BF

C2/4FC2 unknow

C2/4FC2: 48           PHA
C2/4FC3: A9 FF        LDA #$FF
C2/4FC5: 8D 95 3A     STA $3A95
C2/4FC8: 68           PLA 
C2/4FC9: 80 03        BRA $4FCE
C2/4FCB: 0C 4D 2F     TSB $2F4D
C2/4FCE: 1C 09 34     TRB $3409
C2/4FD1: 1C 2F 2F     TRB $2F2F
C2/4FD4: 0C 2A 3A     TSB $3A2A
C2/4FD7: B9 F9 3E     LDA $3EF9,Y
C2/4FDA: 09 20        ORA #$20
C2/4FDC: 99 F9 3E     STA $3EF9,Y  (Set Hide status)
C2/4FDF: 60           RTS 

C2/4FE0 unknow

C2/4FE0: 48           PHA
C2/4FE1: C2 20        REP #$20
C2/4FE3: B9 1C 3C     LDA $3C1C,Y (Max HP)
C2/4FE6: 99 F4 3B     STA $3BF4,Y (Current HP)
C2/4FE9: E2 20        SEP #$20
C2/4FEB: 68           PLA 
C2/4FEC: 1C 3A 3A     TRB $3A3A
C2/4FEF: 0C 2F 2F     TSB $2F2F
C2/4FF2: 0C 2B 3A     TSB $3A2B
C2/4FF5: 0C 4F 2F     TSB $2F4F
C2/4FF8: 0C 09 34     TSB $3409
C2/4FFB: 9C 95 3A     STZ $3A95
C2/4FFE: 60           RTS 

C2/4FFF unknow

C2/4FFF: 20 CE 4F     JSR $4FCE
C2/5002: B9 E4 3E     LDA $3EE4,Y
C2/5005: 09 80        ORA #$80    
C2/5007: 99 E4 3E     STA $3EE4,Y  (Set Death status)
C2/500A: 60           RTS