Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

Final Fantasy VI/ROM map/Assembly C24: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(assembly C24)
 
(clean up)
Line 1: Line 1:
Special effect $4A (Super Ball)
==C2/402C special effect: super ball==
  C2/402C: A9 7D        LDA #$7D
  C2/402C: A9 7D        LDA #$7D
  C2/402E: 85 B6        STA $B6    (Set Animation)
  C2/402E: 85 B6        STA $B6    (Set Animation)
Line 15: Line 14:
                                     treated as the missile launcher or ball thrower.)
                                     treated as the missile launcher or ball thrower.)
  C2/4043: 60          RTS  
  C2/4043: 60          RTS  
==C2/4044 special effect: atma weapon==
Special Effect 2 (Atma Weapon)
  C2/4044: A9 20        LDA #$20
  C2/4044: A9 20        LDA #$20
  C2/4046: 0C A2 11    TSB $11A2  (Set attack to ignore defense)
  C2/4046: 0C A2 11    TSB $11A2  (Set attack to ignore defense)
Line 24: Line 20:
  C2/404B: 04 B2        TSB $B2    (Set no critical & ignore True Knight)
  C2/404B: 04 B2        TSB $B2    (Set no critical & ignore True Knight)
  C2/404D: 60          RTS  
  C2/404D: 60          RTS  
==C2/404E special effect: warp effect==
Warp effect (Warp Stone uses same effect)
  C2/404E: A5 B1        LDA $B1
  C2/404E: A5 B1        LDA $B1
  C2/4050: 89 04        BIT #$04    (is "Can't Escape" flag set by an active enemy?)
  C2/4050: 89 04        BIT #$04    (is "Can't Escape" flag set by an active enemy?)
Line 34: Line 27:
  C2/4056: 8D 6E 3A    STA $3A6E
  C2/4056: 8D 6E 3A    STA $3A6E
  C2/4059: 60          RTS  
  C2/4059: 60          RTS  
   
   
  C2/405A: A9 0A        LDA #$0A
  C2/405A: A9 0A        LDA #$0A
  C2/405C: 8D 01 34    STA $3401  (Display can't run text)
  C2/405C: 8D 01 34    STA $3401  (Display can't run text)
  C2/405F: 80 3B        BRA $409C  (Miss all targets)
  C2/405F: 80 3B        BRA $409C  (Miss all targets)
==C2/4061 special effect: bababreath==
Bababreath from 42E1
  C2/4061: 64 EE        STZ $EE
  C2/4061: 64 EE        STZ $EE
  C2/4063: A2 06        LDX #$06
  C2/4063: A2 06        LDX #$06
Line 75: Line 64:
  C2/4091: BB          TYX  
  C2/4091: BB          TYX  
  C2/4092: 4C C2 57    JMP $57C2
  C2/4092: 4C C2 57    JMP $57C2
==C2/4095 special effect: possess==
Special effect $50 - Possess
  106/256 chance to miss
  106/256 chance to miss
  C2/4095: 20 5A 4B    JSR $4B5A  (Random Number Function 0 to 255)
  C2/4095: 20 5A 4B    JSR $4B5A  (Random Number Function 0 to 255)
  C2/4098: C9 96        CMP #$96
  C2/4098: C9 96        CMP #$96
Line 86: Line 72:
  C2/409E: 64 A5        STZ $A5
  C2/409E: 64 A5        STZ $A5
  C2/40A0: 60          RTS  
  C2/40A0: 60          RTS  
==C2/40A1 special effect: l? pearl==
L? Pearl from 42E1
  C2/40A1: AD 62 18    LDA $1862  (the following code will divide our 24-bit
  C2/40A1: AD 62 18    LDA $1862  (the following code will divide our 24-bit
                                     gold, held in $1860 - $1862, by 10.)  
                                     gold, held in $1860 - $1862, by 10.)  
Line 107: Line 90:
                                     LX spells)
                                     LX spells)
  C2/40BA: 60          RTS  
  C2/40BA: 60          RTS  
==C2/40BB special effect: escape==
Escape
  C2/40BB: C0 08        CPY #$08
  C2/40BB: C0 08        CPY #$08
  C2/40BD: B0 FB        BCS $40BA  (Exit if character)
  C2/40BD: B0 FB        BCS $40BA  (Exit if character)
Line 118: Line 98:
  C2/40C5: 04 A0        TSB $A0
  C2/40C5: 04 A0        TSB $A0
  C2/40C7: 60          RTS  
  C2/40C7: 60          RTS  
==C2/40C8 special effect: smoke bomb==
Special effect $4B - Smoke Bomb
  C2/40C8: A9 04        LDA #$04
  C2/40C8: A9 04        LDA #$04
  C2/40CA: 24 B1        BIT $B1    (is "Can't Escape" flag set by an active enemy?)
  C2/40CA: 24 B1        BIT $B1    (is "Can't Escape" flag set by an active enemy?)
Line 130: Line 107:
  C2/40D6: 8D 01 34    STA $3401  (Display text #9)
  C2/40D6: 8D 01 34    STA $3401  (Display text #9)
  C2/40D9: 60          RTS  
  C2/40D9: 60          RTS  
==C2/40DA special effect: force field==
Forcefield
  C2/40DA: 7B          TDC        (Clear Accumulator)
  C2/40DA: 7B          TDC        (Clear Accumulator)
  C2/40DB: A9 FF        LDA #$FF
  C2/40DB: A9 FF        LDA #$FF
Line 145: Line 119:
  C2/40ED: 69 37        ADC #$37
  C2/40ED: 69 37        ADC #$37
  C2/40EF: 80 E5        BRA $40D6
  C2/40EF: 80 E5        BRA $40D6
==C2/40F1 special effect: four hits==
  Quadra Slam, Quadra Slice, etc.
  Quadra Slam, Quadra Slice, etc.
4 Random attacks
  C2/40F1: A9 03        LDA #$03
  C2/40F1: A9 03        LDA #$03
  C2/40F3: 8D 70 3A    STA $3A70  (# of attacks)
  C2/40F3: 8D 70 3A    STA $3A70  (# of attacks)
Line 156: Line 127:
  C2/40FA: 9C A9 11    STZ $11A9  (Clears special effect)
  C2/40FA: 9C A9 11    STZ $11A9  (Clears special effect)
  C2/40FD: 60          RTS  
  C2/40FD: 60          RTS  
==C2/40FE special effect: blow fish==
Blow Fish
  C2/40FE: A9 60        LDA #$60
  C2/40FE: A9 60        LDA #$60
  C2/4100: 0C A2 11    TSB $11A2  (Set Ignore defense, and no split damage)
  C2/4100: 0C A2 11    TSB $11A2  (Set Ignore defense, and no split damage)
Line 167: Line 135:
  C2/410B: 8D B0 11    STA $11B0  (Set damage to 1000)
  C2/410B: 8D B0 11    STA $11B0  (Set damage to 1000)
  C2/410E: 60          RTS  
  C2/410E: 60          RTS  
==C2/410F special effect: flare star==
Flare Star
  C2/410F: 9C 14 34    STZ $3414  (Set to not modify damage)
  C2/410F: 9C 14 34    STZ $3414  (Set to not modify damage)
  C2/4112: C2 20        REP #$20    (Set 16-bit Accumulator)
  C2/4112: C2 20        REP #$20    (Set 16-bit Accumulator)
Line 188: Line 153:
  C2/4132: 8D B0 11    STA $11B0  (Store in maximum damage)
  C2/4132: 8D B0 11    STA $11B0  (Store in maximum damage)
  C2/4135: 60          RTS  
  C2/4135: 60          RTS  
==C2/4136 special effect: elixir==
  (Special effect $4C - Elixir and Megalixir.  In Item data, this appears as
  (Special effect $4C - Elixir and Megalixir.  In Item data, this appears as
   Special effect $04)
   Special effect $04)
     
  C2/4136: A9 80        LDA #$80
  C2/4136: A9 80        LDA #$80
  C2/4138: 1C A3 11    TRB $11A3  (Clears concern MP)
  C2/4138: 1C A3 11    TRB $11A3  (Clears concern MP)
  C2/413B: 60          RTS  
  C2/413B: 60          RTS  
==C2/413C special effect: mind blast==
(Special effect $28 - Mind Blast)
  C2/413C: C2 20        REP #$20    (Set 16-bit Accumulator)
  C2/413C: C2 20        REP #$20    (Set 16-bit Accumulator)
  C2/413E: A0 06        LDY #$06
  C2/413E: A0 06        LDY #$06
Line 212: Line 172:
  C2/414A: 10 F4        BPL $4140  (Do four times)
  C2/414A: 10 F4        BPL $4140  (Do four times)
  C2/414C: 60          RTS  
  C2/414C: 60          RTS  
==C2/414D special effect: n cross==
   
   
  (Miss random targets
  (Miss random targets
   Special Effect $29 - N. Cross
   Special Effect $29 - N. Cross
   Each target will have a 50% chance of being untargeted.)
   Each target will have a 50% chance of being untargeted.)
  C2/414D: 20 5A 4B    JSR $4B5A  (random #: 0 to 255)
  C2/414D: 20 5A 4B    JSR $4B5A  (random #: 0 to 255)
  C2/4150: 14 A4        TRB $A4
  C2/4150: 14 A4        TRB $A4
Line 223: Line 182:
  C2/4155: 14 A5        TRB $A5
  C2/4155: 14 A5        TRB $A5
  C2/4157: 60          RTS  
  C2/4157: 60          RTS  
==C2/4158 special effect: dice==
  (Dice Effect)
  (Dice Effect)
  C2/4158: 9C 14 34    STZ $3414  (Set to not modify damage)
  C2/4158: 9C 14 34    STZ $3414  (Set to not modify damage)
  C2/415B: A9 20        LDA #$20     
  C2/415B: A9 20        LDA #$20     
Line 332: Line 289:
  C2/41E3: 85 B5        STA $B5    (Store a dice toss animation?)
  C2/41E3: 85 B5        STA $B5    (Store a dice toss animation?)
  C2/41E5: 60          RTS  
  C2/41E5: 60          RTS  
==C2/41E6 special effect: revenge==
Revenge
  C2/41E6: 9C 14 34    STZ $3414  (Set to not modify damage)
  C2/41E6: 9C 14 34    STZ $3414  (Set to not modify damage)
  C2/41E9: C2 20        REP #$20    (Set 16-bit Accumulator)
  C2/41E9: C2 20        REP #$20    (Set 16-bit Accumulator)
Line 343: Line 297:
  C2/41F2: 8D B0 11    STA $11B0  (Damage = Max HP - HP)
  C2/41F2: 8D B0 11    STA $11B0  (Damage = Max HP - HP)
  C2/41F5: 60          RTS  
  C2/41F5: 60          RTS  
==C2/41F6 special effect: palidor==
Palidor from $42E1
  Makes not jump if you have Petrify, Sleep, Stop, Hide, or Freeze status
  Makes not jump if you have Petrify, Sleep, Stop, Hide, or Freeze status
  C2/41F6: A9 10        LDA #$10
  C2/41F6: A9 10        LDA #$10
  C2/41F8: 0C 46 3A    TSB $3A46
  C2/41F8: 0C 46 3A    TSB $3A46
Line 365: Line 316:
  C2/4218: 10 E5        BPL $41FF
  C2/4218: 10 E5        BPL $41FF
  C2/421A: 60          RTS  
  C2/421A: 60          RTS  
==C2/421B special effect: empowerer==
Empowerer
  C2/421B: AD A3 11    LDA $11A3
  C2/421B: AD A3 11    LDA $11A3
  C2/421E: 49 80        EOR #$80    (Toggle Concern MP)
  C2/421E: 49 80        EOR #$80    (Toggle Concern MP)
Line 386: Line 334:
                                     will affect MP)
                                     will affect MP)
  C2/4233: 60          RTS  
  C2/4233: 60          RTS  
==C2/4234 special effect: spiraler==
Spiraler
  C2/4234: BB          TYX
  C2/4234: BB          TYX
  C2/4235: BD 18 30    LDA $3018,X
  C2/4235: BD 18 30    LDA $3018,X
Line 400: Line 345:
  C2/4247: 9E 08 3C    STZ $3C08,X  (Zeroes MP of attacker)
  C2/4247: 9E 08 3C    STZ $3C08,X  (Zeroes MP of attacker)
  C2/424A: 60          RTS  
  C2/424A: 60          RTS  
==C2/424B special effect: discard==
Discard
  C2/424B: 20 9C 40    JSR $409C  (Miss all targets?)
  C2/424B: 20 9C 40    JSR $409C  (Miss all targets?)
  C2/424E: A9 20        LDA #$20
  C2/424E: A9 20        LDA #$20
Line 414: Line 356:
  C2/425F: BB          TYX  
  C2/425F: BB          TYX  
  C2/4260: 4C C2 57    JMP $57C2
  C2/4260: 4C C2 57    JMP $57C2
==C2/4263 special effect: mantra==
Mantra
  C2/4263: A9 60        LDA #$60
  C2/4263: A9 60        LDA #$60
  C2/4265: 0C A2 11    TSB $11A2  (Set no split damage, & ignore defense)
  C2/4265: 0C A2 11    TSB $11A2  (Set no split damage, & ignore defense)
Line 430: Line 369:
  C2/427C: 8D B0 11    STA $11B0  (Set damage)
  C2/427C: 8D B0 11    STA $11B0  (Set damage)
  C2/427F: 60          RTS  
  C2/427F: 60          RTS  
==C2/4280 special effect: damage = damage / 4==
  C2/4280: C2 20        REP #$20    (Set 16-bit Accumulator)
Special Effect $42
Cuts damage to 1/4
  C2/4280: C2 20        REP #$20    (Set 16-bit Accumulator)
  C2/4282: 4E B0 11    LSR $11B0  (Halves damage)
  C2/4282: 4E B0 11    LSR $11B0  (Halves damage)
  C2/4285: C2 20        REP #$20    (Special effect $41 jumps here)
  C2/4285: C2 20        REP #$20    (Special effect $41 jumps here)
  C2/4287: 4E B0 11    LSR $11B0  (Halves damage)  
  C2/4287: 4E B0 11    LSR $11B0  (Halves damage)  
  C2/428A: 60          RTS  
  C2/428A: 60          RTS  
==C2/428B special effect: suplex==
Suplex code from 42E1
  (Picks a random target)
  (Picks a random target)
  C2/428B: A9 10        LDA #$10
  C2/428B: A9 10        LDA #$10
  C2/428D: 04 B0        TSB $B0
  C2/428D: 04 B0        TSB $B0
Line 468: Line 400:
  C2/42B3: BB          TYX  
  C2/42B3: BB          TYX  
  C2/42B4: 4C C2 57    JMP $57C2
  C2/42B4: 4C C2 57    JMP $57C2
==C2/42B7 special effect: reflect???==
Reflect???
  C2/42B7: C2 20        REP #$20
  C2/42B7: C2 20        REP #$20
  C2/42B9: A2 12        LDX #$12
  C2/42B9: A2 12        LDX #$12
Line 482: Line 411:
  C2/42C7: 10 F2        BPL $42BB
  C2/42C7: 10 F2        BPL $42BB
  C2/42C9: 60          RTS  
  C2/42C9: 60          RTS  
==C2/42CA special effect: quick==
Quick
  C2/42CA: AD 02 34    LDA $3402
  C2/42CA: AD 02 34    LDA $3402
  C2/42CD: 10 09        BPL $42D8  (If already under influence of Quick)
  C2/42CD: 10 09        BPL $42D8  (If already under influence of Quick)
Line 492: Line 418:
  C2/42D4: 8D 02 34    STA $3402
  C2/42D4: 8D 02 34    STA $3402
  C2/42D7: 60          RTS  
  C2/42D7: 60          RTS  
   
   
  C2/42D8: C2 20        REP #$20    (Set 16-bit Accumulator)
  C2/42D8: C2 20        REP #$20    (Set 16-bit Accumulator)
Line 498: Line 423:
  C2/42DD: 0C 5A 3A    TSB $3A5A  (Set target as missed)
  C2/42DD: 0C 5A 3A    TSB $3A5A  (Set target as missed)
  C2/42E0: 60          RTS  
  C2/42E0: 60          RTS  
==C2/42E1 pointers: special effects table==
Table for special effects code pointers 2
  C2/42E1: 8A 3E
  C2/42E1: 8A 3E
  C2/42E3: 8B 3E
  C2/42E3: 8B 3E
Line 590: Line 512:
  C2/438D: 8A 3E     
  C2/438D: 8A 3E     
  C2/438F: 8A 3E     
  C2/438F: 8A 3E     
==C2/4391 set new status to attack==
Set new status for attack
  C2/4391: DA          PHX
  C2/4391: DA          PHX
  C2/4392: 08          PHP  
  C2/4392: 08          PHP  
Line 662: Line 581:
  C2/4404: FA          PLX  
  C2/4404: FA          PLX  
  C2/4405: 60          RTS  
  C2/4405: 60          RTS  
==C2/4406 status update when attack hits==
  (Determine statuses that will be set/removed when attack hits;
  (Determine statuses that will be set/removed when attack hits;
   miss if attack doesn't change target's status)
   miss if attack doesn't change target's status)
  C2/4406: 08          PHP
  C2/4406: 08          PHP
  C2/4407: C2 20        REP #$20
  C2/4407: C2 20        REP #$20
Line 725: Line 642:
  C2/447D: 28          PLP  
  C2/447D: 28          PLP  
  C2/447E: 60          RTS  
  C2/447E: 60          RTS  
==C2/447F get status after attack==
Get status after attack
  C2/447F: A5 F8        LDA $F8    (status)
  C2/447F: A5 F8        LDA $F8    (status)
  C2/4481: 04 FC        TSB $FC    (Status to set)
  C2/4481: 04 FC        TSB $FC    (Status to set)
Line 738: Line 652:
  C2/448D: 14 FE        TRB $FE    (Status to set byte 3 & 4)
  C2/448D: 14 FE        TRB $FE    (Status to set byte 3 & 4)
  C2/448F: 60          RTS  
  C2/448F: 60          RTS  
==C2/4490 initialize intermediary status to set or to clear==
  (Initialize intermediate "status to set" bytes in $F4 - $F7 and
  (Initialize intermediate "status to set" bytes in $F4 - $F7 and
   "status to clear" bytes in $FC - $FF.
   "status to clear" bytes in $FC - $FF.
   Mark Clear / Freeze to be removed if necessary.)
   Mark Clear / Freeze to be removed if necessary.)
  C2/4490: DA          PHX
  C2/4490: DA          PHX
  C2/4491: E2 20        SEP #$20    (Set 8-bit Accumulator)
  C2/4491: E2 20        SEP #$20    (Set 8-bit Accumulator)
Line 777: Line 689:
  C2/44CF: FA          PLX  
  C2/44CF: FA          PLX  
  C2/44D0: 60          RTS  
  C2/44D0: 60          RTS  
==C2/44D1 pointers: unknow==
Code Pointers
  C2/44D1: D7 44
  C2/44D1: D7 44
  C2/44D3: EA 44
  C2/44D3: EA 44
  C2/44D5: F9 44
  C2/44D5: F9 44
==C2/44D7 add status for spells: to set==
  (Spell wants to set status)
  (Spell wants to set status)
  C2/44D7: AD AA 11    LDA $11AA  (get status bytes 1-2 from spell)
  C2/44D7: AD AA 11    LDA $11AA  (get status bytes 1-2 from spell)
Line 795: Line 704:
  C2/44E7: 14 FE        TRB $FE    (don't try to set anything you already have)
  C2/44E7: 14 FE        TRB $FE    (don't try to set anything you already have)
  C2/44E9: 60          RTS  
  C2/44E9: 60          RTS  
==C2/44EA add status for spells: to clear==
  (Spell wants to clear status)
  (Spell wants to clear status)
  C2/44EA: AD AA 11    LDA $11AA  (get status bytes 1-2 from spell)
  C2/44EA: AD AA 11    LDA $11AA  (get status bytes 1-2 from spell)
Line 804: Line 713:
  C2/44F6: 85 F6        STA $F6    (only try to clear statuses you do have)
  C2/44F6: 85 F6        STA $F6    (only try to clear statuses you do have)
  C2/44F8: 60          RTS  
  C2/44F8: 60          RTS  
==C2/44F9 add status for spells: to toggle==
(Spell wants to toggle status)
  C2/44F9: 20 D7 44    JSR $44D7  (mark spell statuses you don't already have
  C2/44F9: 20 D7 44    JSR $44D7  (mark spell statuses you don't already have
                                     to be set)
                                     to be set)
  C2/44FC: 4C EA 44    JMP $44EA  (and mark the ones you do already have to
  C2/44FC: 4C EA 44    JMP $44EA  (and mark the ones you do already have to
                                     be cleared)
                                     be cleared)
==C2/44FF clear status to set==
  Clear status to set and status to clear bytes
  Clear status to set and status to clear bytes
  C2/44FF: 7B          TDC
  C2/44FF: 7B          TDC
  C2/4500: 99 D4 3D    STA $3DD4,Y
  C2/4500: 99 D4 3D    STA $3DD4,Y
Line 820: Line 726:
  C2/4509: 99 10 3E    STA $3E10,Y
  C2/4509: 99 10 3E    STA $3E10,Y
  C2/450C: 60          RTS  
  C2/450C: 60          RTS  
==C2/450D unknow==
  (Put Status to be Set / Clear into $F?
  (Put Status to be Set / Clear into $F?
   Quasi New Status in $3E60 & $3E74)
   Quasi New Status in $3E60 & $3E74)
  C2/450D: B9 FC 3D    LDA $3DFC,Y
  C2/450D: B9 FC 3D    LDA $3DFC,Y
  C2/4510: 85 F4        STA $F4      (Status to Clear bytes 1-2)
  C2/4510: 85 F4        STA $F4      (Status to Clear bytes 1-2)
Line 903: Line 807:
  C2/4582: 85 FC        STA $FC
  C2/4582: 85 FC        STA $FC
  C2/4584: 60          RTS  
  C2/4584: 60          RTS  
==C2/4585 update new status==
  (Store new status in character/monster status bytes.
  (Store new status in character/monster status bytes.
   Clear some statuses if target has Zombie.)
   Clear some statuses if target has Zombie.)
  C2/4585: A5 FC        LDA $FC
  C2/4585: A5 FC        LDA $FC
  C2/4587: 89 02 00    BIT #$0200
  C2/4587: 89 02 00    BIT #$0200
Line 917: Line 819:
  C2/4594: 99 F8 3E    STA $3EF8,Y (Store new status in Bytes 3 and 4)
  C2/4594: 99 F8 3E    STA $3EF8,Y (Store new status in Bytes 3 and 4)
  C2/4597: 60          RTS  
  C2/4597: 60          RTS  
==C2/4598 unknow==
  C2/4598: 48          PHA
  C2/4598: 48          PHA
  C2/4599: A5 F8        LDA $F8
  C2/4599: A5 F8        LDA $F8
Line 928: Line 829:
  C2/45A1: 68          PLA  
  C2/45A1: 68          PLA  
  C2/45A2: 60          RTS  
  C2/45A2: 60          RTS  
==C2/45A3 status zombie: set==
(Zombie - set)
  C2/45A3: A9 80 00    LDA #$0080   
  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
  C2/45A6: 20 98 45    JSR $4598  (if Death is possessed or set by the spell, mark it to
Line 938: Line 836:
  C2/45AA: A9 80        LDA #$46
  C2/45AA: A9 80        LDA #$46
  C2/45AC: 80 13        BRA $45C1
  C2/45AC: 80 13        BRA $45C1
==C2/45AE status zombie: clear==
(Zombie - clear)
  C2/45AE: 20 9C 46    JSR $469C
  C2/45AE: 20 9C 46    JSR $469C
  C2/45B1: 80 0E        BRA $45C1
  C2/45B1: 80 0E        BRA $45C1
==C2/45B3 status muddle: set==
(Muddle - set)
  C2/45B3: B9 18 30    LDA $3018,Y
  C2/45B3: B9 18 30    LDA $3018,Y
  C2/45B6: 0C 53 2F    TSB $2F53
  C2/45B6: 0C 53 2F    TSB $2F53
  C2/45B9: 80 06        BRA $45C1
  C2/45B9: 80 06        BRA $45C1
==C2/45BB status muddle: clear==
(Muddle - clear)
  C2/45BB: B9 18 30    LDA $3018,Y
  C2/45BB: B9 18 30    LDA $3018,Y
  C2/45BE: 1C 53 2F    TRB $2F53
  C2/45BE: 1C 53 2F    TRB $2F53
Line 963: Line 852:
  C2/45C9: FA          PLX  
  C2/45C9: FA          PLX  
  C2/45CA: 60          RTS  
  C2/45CA: 60          RTS  
==C2/45CB unknow==
  C2/45CB: DA          PHX
  C2/45CB: DA          PHX
  C2/45CC: BE 19 30    LDX $3019,Y
  C2/45CC: BE 19 30    LDX $3019,Y
Line 971: Line 859:
  C2/45D3: FA          PLX  
  C2/45D3: FA          PLX  
  C2/45D4: 60          RTS  
  C2/45D4: 60          RTS  
==C2/45D5 unknow==
  C2/45D5: DA          PHX
  C2/45D5: DA          PHX
  C2/45D6: BE 19 30    LDX $3019,Y
  C2/45D6: BE 19 30    LDX $3019,Y
Line 979: Line 866:
  C2/45DD: FA          PLX  
  C2/45DD: FA          PLX  
  C2/45DE: 60          RTS  
  C2/45DE: 60          RTS  
==C2/45DF status imp: set or clear==
  C2/45DF: A9 88 00    LDA #$0088
(Imp - set or clear)
  C2/45DF: A9 88 00    LDA #$0088
  C2/45E2: 20 4C 46    JSR $464C
  C2/45E2: 20 4C 46    JSR $464C
  C2/45E5: C0 08        CPY #$08    (Rage - clear  enters here)
  C2/45E5: C0 08        CPY #$08    (Rage - clear  enters here)
Line 995: Line 879:
  C2/45F0: FA          PLX  
  C2/45F0: FA          PLX  
  C2/45F1: 60          RTS  
  C2/45F1: 60          RTS  
==C2/45F2 unknow==
  C2/45F2: 20 9C 46    JSR $469C
  C2/45F2: 20 9C 46    JSR $469C
  C2/45F5: A9 00 40    LDA #$4000
  C2/45F5: A9 00 40    LDA #$4000
Line 1,002: Line 885:
  C2/45FB: A9 40 00    LDA #$0040
  C2/45FB: A9 40 00    LDA #$0040
  C2/45FE: 80 4C        BRA $464C
  C2/45FE: 80 4C        BRA $464C
==C2/4600 status death: set==
(Death - set)
  C2/4600: A9 40 01    LDA #$0140   
  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,
  C2/4603: 20 98 45    JSR $4598    (if Petrify or Condemned are possessed or set by the spell,
Line 1,010: Line 891:
  C2/4606: A9 80 00    LDA #$0080
  C2/4606: A9 80 00    LDA #$0080
  C2/4609: 14 F4        TRB $F4      (remove Death from statuses to be cleared)
  C2/4609: 14 F4        TRB $F4      (remove Death from statuses to be cleared)
==C2/460B status petrify: set==
(Petrify - set)
  C2/460B: 20 A9 46    JSR $46A9    (Mark as having died)
  C2/460B: 20 A9 46    JSR $46A9    (Mark as having died)
  C2/460E: A9 15 FE    LDA #$FE15   
  C2/460E: A9 15 FE    LDA #$FE15   
Line 1,031: Line 911:
  C2/462F: A9 40 00    LDA #$0040
  C2/462F: A9 40 00    LDA #$0040
  C2/4632: 80 18        BRA $464C
  C2/4632: 80 18        BRA $464C
==C2/4634 status sleep: set==
(Sleep - set)
  C2/4634: 08          PHP  
  C2/4634: 08          PHP  
  C2/4635: E2 20        SEP #$20    (Set 8-bit A)
  C2/4635: E2 20        SEP #$20    (Set 8-bit A)
Line 1,041: Line 918:
  C2/463C: 28          PLP  
  C2/463C: 28          PLP  
  C2/463D: 80 E7        BRA $4626
  C2/463D: 80 E7        BRA $4626
==C2/463F status condemned: set==
(Condemned - set)
  C2/463F: A9 20 00    LDA #$0020
  C2/463F: A9 20 00    LDA #$0020
  C2/4642: 80 08        BRA $464C
  C2/4642: 80 08        BRA $464C
Line 1,053: Line 927:
  C2/464F: 99 04 32    STA $3204,Y
  C2/464F: 99 04 32    STA $3204,Y
  C2/4652: 60          RTS  
  C2/4652: 60          RTS  
==C2/4653 status sleep: clear==
(Sleep - clear)
  C2/4653: A9 00 40    LDA #$4000
  C2/4653: A9 00 40    LDA #$4000
  C2/4656: 19 A0 3A    ORA $3AA0,Y
  C2/4656: 19 A0 3A    ORA $3AA0,Y
  C2/4659: 99 A0 3A    STA $3AA0,Y
  C2/4659: 99 A0 3A    STA $3AA0,Y
  C2/465C: 60          RTS  
  C2/465C: 60          RTS  
==C2/465D status seizure: set==
(Seizure - set)
  C2/465D: A9 02 00    LDA #$0002
  C2/465D: A9 02 00    LDA #$0002
  C2/4660: 04 F6        TSB $F6      (mark Regen to be cleared)
  C2/4660: 04 F6        TSB $F6      (mark Regen to be cleared)
  C2/4662: 60          RTS
  C2/4662: 60          RTS
==C2/4663 status regen: set==
(Regen - set)
  C2/4663: A9 00 40    LDA #$4000
  C2/4663: A9 00 40    LDA #$4000
  C2/4666: 04 F4        TSB $F4      (mark Seizure to be cleared)
  C2/4666: 04 F4        TSB $F4      (mark Seizure to be cleared)
  C2/4668: 60          RTS  
  C2/4668: 60          RTS  
==C2/4669 status slow: set==
(Slow - set)
  C2/4669: A9 08 00    LDA #$0008
  C2/4669: A9 08 00    LDA #$0008
  C2/466C: 80 03        BRA $4671    (mark Haste to be cleared)
  C2/466C: 80 03        BRA $4671    (mark Haste to be cleared)
==C2/466E status haste: set==
(Haste - set)
  C2/466E: A9 04 00    LDA #$0004  (mark Slow to be cleared)
  C2/466E: A9 04 00    LDA #$0004  (mark Slow to be cleared)
  C2/4671: 04 F6        TSB $F6     
  C2/4671: 04 F6        TSB $F6     
  C2/4673: A9 04 00    LDA #$0004  (Haste - clear  and  Slow - clear  enter here)
  C2/4673: A9 04 00    LDA #$0004  (Haste - clear  and  Slow - clear  enter here)
  C2/4676: 80 D4        BRA $464C    (was BRA ???)
  C2/4676: 80 D4        BRA $464C    (was BRA ???)
==C2/4678 status morph: set or clear==
(Morph - set or clear)
  C2/4678: A9 02 00    LDA #$0002
  C2/4678: A9 02 00    LDA #$0002
  C2/467B: 80 CF        BRA $464C
  C2/467B: 80 CF        BRA $464C
==C2/467D status stop: set==
(Stop - set)
  C2/467D: 08          PHP
  C2/467D: 08          PHP
  C2/467E: E2 20        SEP #$20    (Set 8-bit A)
  C2/467E: E2 20        SEP #$20    (Set 8-bit A)
Line 1,105: Line 958:
  C2/4685: 28          PLP  
  C2/4685: 28          PLP  
  C2/4686: 60          RTS  
  C2/4686: 60          RTS  
==C2/4687 status reflect: set==
(Reflect - set)
  C2/4687: 08          PHP
  C2/4687: 08          PHP
  C2/4688: E2 20        SEP #$20    (Set 8-bit A)
  C2/4688: E2 20        SEP #$20    (Set 8-bit A)
Line 1,116: Line 966:
  C2/468F: 28          PLP  
  C2/468F: 28          PLP  
  C2/4690: 60          RTS  
  C2/4690: 60          RTS  
==C2/4691 status freeze: set==
(Freeze - set)
  C2/4691: 08          PHP
  C2/4691: 08          PHP
  C2/4692: E2 20        SEP #$20    (Set 8-bit A)
  C2/4692: E2 20        SEP #$20    (Set 8-bit A)
Line 1,126: Line 973:
  C2/4699: 28          PLP  
  C2/4699: 28          PLP  
  C2/469A: 60          RTS  
  C2/469A: 60          RTS  
==C2/469B multiple status: do nothing==
  (Do nothing:
  (Do nothing:
   Dark, Poison, M-Tek,
   Dark, Poison, M-Tek,
Line 1,133: Line 979:
   Dance, Shell, Safe,
   Dance, Shell, Safe,
   Rage [set only], Life 3, Spell, Hide, Dog Block, Float)
   Rage [set only], Life 3, Spell, Hide, Dog Block, Float)
  C2/469B: 60          RTS
  C2/469B: 60          RTS
==C2/469C unknow==
  C2/469C: DA          PHX
  C2/469C: DA          PHX
  C2/469D: BE 19 30    LDX $3019,Y
  C2/469D: BE 19 30    LDX $3019,Y
Line 1,144: Line 988:
  C2/46A7: FA          PLX  
  C2/46A7: FA          PLX  
  C2/46A8: 60          RTS  
  C2/46A8: 60          RTS  
==C2/46A9 unknow==
  C2/46A9: B9 18 30    LDA $3018,Y
  C2/46A9: B9 18 30    LDA $3018,Y
  C2/46AC: 0C 56 3A    TSB $3A56  (Mark this character as having died)
  C2/46AC: 0C 56 3A    TSB $3A56  (Mark this character as having died)
  C2/46AF: 60          RTS  
  C2/46AF: 60          RTS  
==C2/46B0 pointers: table for setting status==
Not actual code - data (table of pointers to code, for changing status)
  Set status pointers ("side effects" to perform upon setting of a status):
  Set status pointers ("side effects" to perform upon setting of a status):
  C2/46B0: 9B 46 (Dark)        (Jumps to RTS)
  C2/46B0: 9B 46 (Dark)        (Jumps to RTS)
  C2/46B2: A3 45 (Zombie)
  C2/46B2: A3 45 (Zombie)
Line 1,187: Line 1,026:
  C2/46EC: 9B 46 (Dog Block)  (Jumps to RTS)
  C2/46EC: 9B 46 (Dog Block)  (Jumps to RTS)
  C2/46EE: 9B 46 (Float)      (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):
  Clear status pointers ("side effects" to perform upon clearing of a status):
  C2/46F0: 9B 46 (Dark)        (Jumps to RTS)
  C2/46F0: 9B 46 (Dark)        (Jumps to RTS)
  C2/46F2: AE 45 (Zombie)
  C2/46F2: AE 45 (Zombie)
Line 1,223: Line 1,060:
  C2/472C: 9B 46 (Dog Block)  (Jumps to RTS)
  C2/472C: 9B 46 (Dog Block)  (Jumps to RTS)
  C2/472E: 9B 46 (Float)      (Jumps to RTS)
  C2/472E: 9B 46 (Float)      (Jumps to RTS)
==C2/4730 unknow==
  ??? Function (Called from other bank)
  ??? Function (Called from other bank)
  C2/4730: DA          PHX
  C2/4730: DA          PHX
  C2/4731: 5A          PHY
  C2/4731: 5A          PHY
Line 1,248: Line 1,083:
  C2/4749: FA          PLX  
  C2/4749: FA          PLX  
  C2/474A: 6B          RTL  
  C2/474A: 6B          RTL  
==C2/474B pointers: unknow==
Pointers
  C2/474B: 4F 47
  C2/474B: 4F 47
  C2/474D: 78 47
  C2/474D: 78 47
==C2/474F unknow==
  C2/474F: 20 66 29    JSR $2966
  C2/474F: 20 66 29    JSR $2966
  C2/4752: AD A4 11    LDA $11A4
  C2/4752: AD A4 11    LDA $11A4
Line 1,271: Line 1,102:
  C2/4771: 8D B0 11    STA $11B0  (Damage)
  C2/4771: 8D B0 11    STA $11B0  (Damage)
  C2/4774: 60          RTS  
  C2/4774: 60          RTS  
   
   
  C2/4775: 4C 69 2B    JMP $2B69
  C2/4775: 4C 69 2B    JMP $2B69
==C2/4778 unknow==
  C2/4778: 20 37 2A    JSR $2A37
  C2/4778: 20 37 2A    JSR $2A37
  C2/477B: A9 01        LDA #$01
  C2/477B: A9 01        LDA #$01
  C2/477D: 0C A2 11    TSB $11A2  (Sets physical attack)
  C2/477D: 0C A2 11    TSB $11A2  (Sets physical attack)
  C2/4780: 60          RTS  
  C2/4780: 60          RTS  
==C2/4781 math: 16-bit A = low byte A * high byte A==
  Multiplication Function
  Multiplication Function
  Multiplies low bit of A * high bit of A. Stores result in 16-bit A.
  Multiplies low bit of A * high bit of A. Stores result in 16-bit A.
  C2/4781: 08          PHP
  C2/4781: 08          PHP
  C2/4782: C2 20        REP #$20
  C2/4782: C2 20        REP #$20
Line 1,295: Line 1,122:
  C2/4790: 28          PLP  
  C2/4790: 28          PLP  
  C2/4791: 60          RTS  
  C2/4791: 60          RTS  
==C2/4792 division function==
  Division Function
  Division Function
  Divides 16-bit A / 8-bit X
  Divides 16-bit A / 8-bit X
  Stores answer in 16-bit A. Stores remainder in 8-bit X
  Stores answer in 16-bit A. Stores remainder in 8-bit X
  C2/4792: 5A          PHY
  C2/4792: 5A          PHY
  C2/4793: 08          PHP  
  C2/4793: 08          PHP  
Line 1,323: Line 1,148:
  C2/47B5: 7A          PLY  
  C2/47B5: 7A          PLY  
  C2/47B6: 60          RTS  
  C2/47B6: 60          RTS  
==C2/47B7 multiplication function==
  Multiplication Function 2
  Multiplication Function 2
  Results:
  Results:
Line 1,330: Line 1,154:
  24-bit $E8 = 3 byte (8-bit $E8 * 16-bit A)
  24-bit $E8 = 3 byte (8-bit $E8 * 16-bit A)
  16-bit $EC = 8-bit $E8 * high byte of A
  16-bit $EC = 8-bit $E8 * high byte of A
  C2/47B7: 08          PHP
  C2/47B7: 08          PHP
  C2/47B8: E2 20        SEP #$20
  C2/47B8: E2 20        SEP #$20
Line 1,347: Line 1,170:
  C2/47D4: 28          PLP  
  C2/47D4: 28          PLP  
  C2/47D5: 60          RTS  
  C2/47D5: 60          RTS  
==C2/47D6 math: A = A * 1.5==
  Multiplies A (1 byte) by * 1.5
  Multiplies A (1 byte) by * 1.5
  C2/47D6: 48          PHA
  C2/47D6: 48          PHA
  C2/47D7: 4A          LSR  
  C2/47D7: 4A          LSR  
Line 1,360: Line 1,181:
  C2/47E1: 68          PLA  
  C2/47E1: 68          PLA  
  C2/47E2: 60          RTS  
  C2/47E2: 60          RTS  
==C2/47E3 remove character from party==
Remove character from party
  C2/47E3: DA          PHX
  C2/47E3: DA          PHX
  C2/47E4: BD D9 3E    LDA $3ED9,X
  C2/47E4: BD D9 3E    LDA $3ED9,X
Line 1,369: Line 1,188:
  C2/47EB: FA          PLX  
  C2/47EB: FA          PLX  
  C2/47EC: 60          RTS  
  C2/47EC: 60          RTS  
==C2/47ED unknow==
  C2/47ED: AD E0 3E    LDA $3EE0   
  C2/47ED: AD E0 3E    LDA $3EE0   
  C2/47F0: F0 09        BEQ $47FB  (branch if in 4-tier final multi-battle)
  C2/47F0: F0 09        BEQ $47FB  (branch if in 4-tier final multi-battle)
Line 1,377: Line 1,195:
  C2/47F7: AA          TAX  
  C2/47F7: AA          TAX  
  C2/47F8: 7C F5 48    JMP ($48F5,X)
  C2/47F8: 7C F5 48    JMP ($48F5,X)
==C2/47FB unknow==
  C2/47FB: AD D1 1D    LDA $1DD1  ($1DD1 = $3EB8)
  C2/47FB: AD D1 1D    LDA $1DD1  ($1DD1 = $3EB8)
  C2/47FE: 29 20        AND #$20
  C2/47FE: 29 20        AND #$20
Line 1,451: Line 1,268:
  C2/4893: 68          PLA  
  C2/4893: 68          PLA  
  C2/4894: 4C C5 00    JMP $00C5
  C2/4894: 4C C5 00    JMP $00C5
==C2/4897 warp stone effect?==
  (Warp)
  (Warp)
  C2/4897: A9 FF        LDA #$FF
  C2/4897: A9 FF        LDA #$FF
Line 1,461: Line 1,277:
  C2/48A1: 20 03 49    JSR $4903
  C2/48A1: 20 03 49    JSR $4903
  C2/48A4: 80 E9        BRA $488F
  C2/48A4: 80 E9        BRA $488F
==C2/48A6 shadow randomly leaves after battle==
(Shadow randomly leaves after battle)
  C2/48A6: 1C DE 1E    TRB $1EDE    (Remove Shadow from party)
  C2/48A6: 1C DE 1E    TRB $1EDE    (Remove Shadow from party)
  C2/48A9: 20 E3 47    JSR $47E3
  C2/48A9: 20 E3 47    JSR $47E3
Line 1,484: Line 1,297:
  C2/48C8: 20 91 4E    JSR $4E91
  C2/48C8: 20 91 4E    JSR $4E91
  C2/48CB: 4C 19 00    JMP $0019
  C2/48CB: 4C 19 00    JMP $0019
==C2/48CE Gau arrives after Veldt battle==
  (Gau arrives after Veldt battle)
  (Gau arrives after Veldt battle)
  C2/48CE: BD 18 30    LDA $3018,X
  C2/48CE: BD 18 30    LDA $3018,X
  C2/48D1: 0C 4E 2F    TSB $2F4E
  C2/48D1: 0C 4E 2F    TSB $2F4E
Line 1,495: Line 1,306:
  C2/48DC: A2 1B        LDX #$1B
  C2/48DC: A2 1B        LDX #$1B
  C2/48DE: 80 E4        BRA $48C4
  C2/48DE: 80 E4        BRA $48C4
==C2/48E0 gau leapt==
  (Gau leapt)
  (Gau leapt)
  C2/48E0: AE 0B 30    LDX $300B  (which character is Gau)
  C2/48E0: AE 0B 30    LDX $300B  (which character is Gau)
Line 1,505: Line 1,315:
  C2/48EB: 20 07 4A    JSR $4A07
  C2/48EB: 20 07 4A    JSR $4A07
  C2/48EE: 80 9F        BRA $488F
  C2/48EE: 80 9F        BRA $488F
==C2/48F0 Banon fell==
  (Banon fell)
  (Banon fell)
  C2/48F0: A9 36        LDA #$36
  C2/48F0: A9 36        LDA #$36
  C2/48F2: 20 CA 5F    JSR $5FCA
  C2/48F2: 20 CA 5F    JSR $5FCA
  C2/48F5: 80 98        BRA $488F
  C2/48F5: 80 98        BRA $488F
==C2/48F7 pointers: special combat endings==
Pointers for Special Combat Endings
Code pointers
  C2/48F7: 97 48    (02-Warp)
  C2/48F7: 97 48    (02-Warp)
  C2/48F9: E0 48    (04-Gau leapt)
  C2/48F9: E0 48    (04-Gau leapt)
Line 1,523: Line 1,328:
                     party)
                     party)
  C2/4901: 22 4A    (0C-Annihilation perhaps?)
  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
  C2/4903: 20 36 0B    JSR $0B36    (Establish new value for Morph supply based on its
                                       previous value and the current Morph timer)
                                       previous value and the current Morph timer)
Line 1,555: Line 1,359:
  C2/4930: 20 11 64    JSR $6411
  C2/4930: 20 11 64    JSR $6411
  C2/4933: 4C 95 20    JMP $2095
  C2/4933: 4C 95 20    JMP $2095
==C2/4936 unknow==
  C2/4936: A2 06        LDX #$06
  C2/4936: A2 06        LDX #$06
  C2/4938: BD D8 3E    LDA $3ED8,X  (get which character this is)
  C2/4938: BD D8 3E    LDA $3ED8,X  (get which character this is)
Line 1,659: Line 1,462:
  C2/4A04: 10 E3        BPL $49E9  (Move to next enemy and loop)
  C2/4A04: 10 E3        BPL $49E9  (Move to next enemy and loop)
  C2/4A06: 60          RTS  
  C2/4A06: 60          RTS  
==C2/4A07 add rages learned in battle==
(Add rages learned in battle)
  C2/4A07: A2 0A        LDX #$0A
  C2/4A07: A2 0A        LDX #$0A
  C2/4A09: BD 02 20    LDA $2002,X
  C2/4A09: BD 02 20    LDA $2002,X
Line 1,677: Line 1,477:
  C2/4A1F: 10 E8        BPL $4A09    (Check for all monsters)
  C2/4A1F: 10 E8        BPL $4A09    (Check for all monsters)
  C2/4A21: 60          RTS  
  C2/4A21: 60          RTS  
==C2/4A22 unknow==
  C2/4A22: 20 67 02    JSR $0267
  C2/4A22: 20 67 02    JSR $0267
  C2/4A25: 20 03 49    JSR $4903
  C2/4A25: 20 03 49    JSR $4903
Line 1,715: Line 1,514:
  C2/4A72: 68          PLA  
  C2/4A72: 68          PLA  
  C2/4A73: 4C 16 00    JMP $0016
  C2/4A73: 4C 16 00    JMP $0016
==C2/4A76 unknow==
  C2/4A76: C2 20        REP #$20
  C2/4A76: C2 20        REP #$20
  C2/4A78: A2 04        LDX #$04
  C2/4A78: A2 04        LDX #$04
Line 1,738: Line 1,536:
  C2/4A9B: E2 20        SEP #$20
  C2/4A9B: E2 20        SEP #$20
  C2/4A9D: 60          RTS            (return normally)
  C2/4A9D: 60          RTS            (return normally)
==C2/4A9E clear all statuses==
Clears all statuses
  C2/4A9E: 9E E4 3E    STZ $3EE4,X  (Clear Status Byte 1)
  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/4AA1: 9E E5 3E    STZ $3EE5,X  (Clear Status Byte 2)
Line 1,747: Line 1,542:
  C2/4AA7: 9E F9 3E    STZ $3EF9,X  (Clear Status Byte 4)
  C2/4AA7: 9E F9 3E    STZ $3EF9,X  (Clear Status Byte 4)
  C2/4AAA: 60          RTS  
  C2/4AAA: 60          RTS  
==C2/4AAB data: last battle formations==
  Data for changing formations in last battle
  Data for changing formations in last battle
  C2/4AAB: D7 01    (Short Arm, Long Arm, Face)
  C2/4AAB: D7 01    (Short Arm, Long Arm, Face)
  C2/4AAD: 00 02    (Hit, Tiger, Tools)
  C2/4AAD: 00 02    (Hit, Tiger, Tools)
Line 1,759: Line 1,552:
  C2/4AB5: 90 90
  C2/4AB5: 90 90
  C2/4AB7: 8F 8F
  C2/4AB7: 8F 8F
==C2/4AB9 unknow==
  C2/4AB9: C2 20        REP #$20    (Set 16-bit Accumulator)
  C2/4AB9: C2 20        REP #$20    (Set 16-bit Accumulator)
  C2/4ABB: AD 4C 2F    LDA $2F4C
  C2/4ABB: AD 4C 2F    LDA $2F4C
Line 1,830: Line 1,622:
  C2/4B51: FA          PLX  
  C2/4B51: FA          PLX  
  C2/4B52: 60          RTS  
  C2/4B52: 60          RTS  
==C2/4B53 random number generator: 0 or 1==
  Random Number Generator 1 (0 or 1, carry clear or set)
  Random Number Generator 1 (0 or 1, carry clear or set)
  C2/4B53: 48          PHA
  C2/4B53: 48          PHA
  C2/4B54: 20 5A 4B    JSR $4B5A
  C2/4B54: 20 5A 4B    JSR $4B5A
Line 1,839: Line 1,629:
  C2/4B58: 68          PLA  
  C2/4B58: 68          PLA  
  C2/4B59: 60          RTS  
  C2/4B59: 60          RTS  
==C2/4B5A random number generator: [0, 255]==
Random Number Generator 2 (0 to 255)
  C2/4B5A: DA          PHX
  C2/4B5A: DA          PHX
  C2/4B5B: E6 BE        INC $BE
  C2/4B5B: E6 BE        INC $BE
Line 1,849: Line 1,636:
  C2/4B63: FA          PLX  
  C2/4B63: FA          PLX  
  C2/4B64: 60          RTS  
  C2/4B64: 60          RTS  
==C2/4B65 random number generator: [0, A - 1]==
Random Number Generator 3 (0 to accumulator - 1)
  C2/4B65: DA          PHX
  C2/4B65: DA          PHX
  C2/4B66: 08          PHP  
  C2/4B66: 08          PHP  
Line 1,868: Line 1,652:
  C2/4B79: FA          PLX  
  C2/4B79: FA          PLX  
  C2/4B7A: 60          RTS  
  C2/4B7A: 60          RTS  
==C2/4B7B unknow==
  C2/4B7B: 38          SEC
  C2/4B7B: 38          SEC
  C2/4B7C: 6E 07 34    ROR $3407
  C2/4B7C: 6E 07 34    ROR $3407
Line 1,922: Line 1,705:
  C2/4BF0: 8E 07 34    STX $3407
  C2/4BF0: 8E 07 34    STX $3407
  C2/4BF3: 60          RTS  
  C2/4BF3: 60          RTS  
==C2/4BF4 unknow==
  C2/4BF4: 08          PHP
  C2/4BF4: 08          PHP
  C2/4BF5: C2 20        REP #$20    (Set 16-bit accumulator)
  C2/4BF5: C2 20        REP #$20    (Set 16-bit accumulator)
Line 1,964: Line 1,746:
  C2/4C52: 28          PLP  
  C2/4C52: 28          PLP  
  C2/4C53: 60          RTS  
  C2/4C53: 60          RTS  
==C2/4C54 unknow==
  C2/4C54: DA          PHX
  C2/4C54: DA          PHX
  C2/4C55: E8          INX  
  C2/4C55: E8          INX  
Line 1,971: Line 1,752:
  C2/4C59: FA          PLX  
  C2/4C59: FA          PLX  
  C2/4C5A: 60          RTS  
  C2/4C5A: 60          RTS  
==C2/4C5B counter attacks==
  Counter attacks (retort, interceptor, black belt)
  Counter attacks (retort, interceptor, black belt)
  C2/4C5B: A2 12        LDX #$12
  C2/4C5B: A2 12        LDX #$12
  C2/4C5D: BD A0 3A    LDA $3AA0,X
  C2/4C5D: BD A0 3A    LDA $3AA0,X
Line 2,031: Line 1,810:
  C2/4CC0: 10 9B        BPL $4C5D  (Check for each character and monster)
  C2/4CC0: 10 9B        BPL $4C5D  (Check for each character and monster)
  C2/4CC2: 60          RTS  
  C2/4CC2: 60          RTS  
==C2/4CC3 retort==
Retort
  C2/4CC3: BD 4C 3E    LDA $3E4C,X
  C2/4CC3: BD 4C 3E    LDA $3E4C,X
  C2/4CC6: 4A          LSR  
  C2/4CC6: 4A          LSR  
Line 2,043: Line 1,819:
  C2/4CD0: 8D 7B 3A    STA $3A7B  (Store Retort in attack)
  C2/4CD0: 8D 7B 3A    STA $3A7B  (Store Retort in attack)
  C2/4CD3: 4C B2 4E    JMP $4EB2
  C2/4CD3: 4C B2 4E    JMP $4EB2
==C2/4CD6 dog block==
Dog Block
  C2/4CD6: A5 B9        LDA $B9
  C2/4CD6: A5 B9        LDA $B9
  C2/4CD8: F0 E8        BEQ $4CC2  (Exit function if attacked by party)
  C2/4CD8: F0 E8        BEQ $4CC2  (Exit function if attacked by party)
Line 2,067: Line 1,840:
  C2/4CEE: 8D 7A 3A    STA $3A7A  (Store Magic in command)
  C2/4CEE: 8D 7A 3A    STA $3A7A  (Store Magic in command)
  C2/4CF1: 4C B2 4E    JMP $4EB2
  C2/4CF1: 4C B2 4E    JMP $4EB2
==C2/4CF4 black belt counter==
Black Belt Counter
  C2/4CF4: BD 18 30    LDA $3018,X
  C2/4CF4: BD 18 30    LDA $3018,X
  C2/4CF7: 2C 19 34    BIT $3419  (was this target damaged [by an attacker other
  C2/4CF7: 2C 19 34    BIT $3419  (was this target damaged [by an attacker other
Line 2,090: Line 1,860:
  C2/4D19: 9C 7B 3A    STZ $3A7B
  C2/4D19: 9C 7B 3A    STZ $3A7B
  C2/4D1C: 4C B2 4E    JMP $4EB2
  C2/4D1C: 4C B2 4E    JMP $4EB2
==C2/4D1F unknow==
  C2/4D1F: AC 6A 3A    LDY $3A6A
  C2/4D1F: AC 6A 3A    LDY $3A6A
  C2/4D22: B9 AE 2B    LDA $2BAE,Y
  C2/4D22: B9 AE 2B    LDA $2BAE,Y
Line 2,127: Line 1,896:
  C2/4D6A: 80 B3        BRA $4D1F
  C2/4D6A: 80 B3        BRA $4D1F
  C2/4D6C: 60          RTS  
  C2/4D6C: 60          RTS  
==C2/4D6D unknow==
  C2/4D6D: 08          PHP
  C2/4D6D: 08          PHP
  C2/4D6E: C2 20        REP #$20
  C2/4D6E: C2 20        REP #$20
Line 2,135: Line 1,903:
  C2/4D75: 28          PLP  
  C2/4D75: 28          PLP  
  C2/4D76: 60          RTS  
  C2/4D76: 60          RTS  
==C2/4DD7 clears target if attacker is zombied or muddled==
Clears target if attacker is Zombied or Muddled
  C2/4D77: 08          PHP
  C2/4D77: 08          PHP
  C2/4D78: C2 20        REP #$20    (set 16-bit accumulator)
  C2/4D78: C2 20        REP #$20    (set 16-bit accumulator)
Line 2,148: Line 1,913:
  C2/4D87: 28          PLP  
  C2/4D87: 28          PLP  
  C2/4D88: 60          RTS  
  C2/4D88: 60          RTS  
==C2/4D89 unknow==
  C2/4D89: DA          PHX
  C2/4D89: DA          PHX
  C2/4D8A: 5A          PHY  
  C2/4D8A: 5A          PHY  
Line 2,268: Line 2,032:
  C2/4E3A: FA          PLX  
  C2/4E3A: FA          PLX  
  C2/4E3B: 60          RTS  
  C2/4E3B: 60          RTS  
==C2/4E3C data: commands for spell calculation==
  (Data - commands that need their spell # calculated)
  (Data - commands that need their spell # calculated)
  C2/4E3C: 19  (Summon)
  C2/4E3C: 19  (Summon)
  C2/4E3D: 0C  (Lore)
  C2/4E3D: 0C  (Lore)
Line 2,277: Line 2,039:
  C2/4E3F: 0A  (Blitz)
  C2/4E3F: 0A  (Blitz)
  C2/4E40: 07  (Swdtech)
  C2/4E40: 07  (Swdtech)
==C2/4E41 data: first spell for commands at C2/4E3C==
  (Data - first spell # for each of above commands)
  (Data - first spell # for each of above commands)
  C2/4E41: 36  (Espers)     
  C2/4E41: 36  (Espers)     
  C2/4E42: 8B  (Lores)   
  C2/4E42: 8B  (Lores)   
Line 2,286: Line 2,046:
  C2/4E44: 5D  (Blitzes)
  C2/4E44: 5D  (Blitzes)
  C2/4E45: 55  (Swdtech)
  C2/4E45: 55  (Swdtech)
==C2/4E46 data: commands that need to retarget==
  (Data - commands that need to retarget.  8 commands per byte.)
  (Data - commands that need to retarget.  8 commands per byte.)
  C2/4E46: 80  (Swdtech)
  C2/4E46: 80  (Swdtech)
  C2/4E47: 04  (Blitz)
  C2/4E47: 04  (Blitz)
  C2/4E48: 0B  (Rage, Leap, Dance)
  C2/4E48: 0B  (Rage, Leap, Dance)
  C2/4E49: 00  (Nothing)
  C2/4E49: 00  (Nothing)
==C2/4E4A data: spell numbers for slot attacks==
(Data - spell numbers for Slot attacks)
  C2/4E4A: 94  (L.5 Doom -- used by Joker Doom)
  C2/4E4A: 94  (L.5 Doom -- used by Joker Doom)
  C2/4E4B: 94  (L.5 Doom -- used by Joker Doom)
  C2/4E4B: 94  (L.5 Doom -- used by Joker Doom)
Line 2,306: Line 2,061:
  C2/4E50: 81  (7-Flush)
  C2/4E50: 81  (7-Flush)
  C2/4E51: FE  (Lagomorph)
  C2/4E51: FE  (Lagomorph)
==C2/4E52 data: joker doom targeting==
  (Data - Joker Doom targeting)
  (Data - Joker Doom targeting)
  C2/4E52: 0F  (7-7-bar => your whole party)
  C2/4E52: 0F  (7-7-bar => your whole party)
  C2/4E53: 3F  (7-7-7  => whole enemy party)
  C2/4E53: 3F  (7-7-7  => whole enemy party)
==C2/4E54 unknow==
  C2/4E54: DA          PHX
  C2/4E54: DA          PHX
  C2/4E55: A2 7F        LDX #$7F
  C2/4E55: A2 7F        LDX #$7F
Line 2,325: Line 2,077:
  C2/4E64: FA          PLX  
  C2/4E64: FA          PLX  
  C2/4E65: 60          RTS  
  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  
  (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
   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
   "ready stance".  Monsters' ready stances aren't visible [and are generally
   negligible in length], but monsters still use this queue too.)
   negligible in length], but monsters still use this queue too.)
  C2/4E66: 8A          TXA
  C2/4E66: 8A          TXA
  C2/4E67: DA          PHX  
  C2/4E67: DA          PHX  
Line 2,343: Line 2,093:
  C2/4E72: A9 FE        LDA #$FE
  C2/4E72: A9 FE        LDA #$FE
  C2/4E74: 4C 43 0A    JMP $0A43
  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
  (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
   when someone's "wait timer" after inputting a command elapses and they can leave
   their ready stance to attack.)
   their ready stance to attack.)
  C2/4E77: 8A          TXA
  C2/4E77: 8A          TXA
  C2/4E78: DA          PHX  
  C2/4E78: DA          PHX  
Line 2,359: Line 2,107:
                                       get queued up at once somehow.)
                                       get queued up at once somehow.)
  C2/4E83: 60          RTS  
  C2/4E83: 60          RTS  
==C2/4E84 unknow==
  C2/4E84: 8A          TXA
  C2/4E84: 8A          TXA
  C2/4E85: DA          PHX  
  C2/4E85: DA          PHX  
Line 2,368: Line 2,115:
  C2/4E8D: EE 69 3A    INC $3A69
  C2/4E8D: EE 69 3A    INC $3A69
  C2/4E90: 60          RTS  
  C2/4E90: 60          RTS  
==C2/4E91 unknow==
  C2/4E91: 5A          PHY
  C2/4E91: 5A          PHY
  C2/4E92: 08          PHP  
  C2/4E92: 08          PHP  
Line 2,383: Line 2,129:
  C2/4EA8: 8D 0A 34    STA $340A
  C2/4EA8: 8D 0A 34    STA $340A
  C2/4EAB: 80 32        BRA $4EDF
  C2/4EAB: 80 32        BRA $4EDF
==C2/4EAD unknow==
  C2/4EAD: A5 B1        LDA $B1
  C2/4EAD: A5 B1        LDA $B1
  C2/4EAF: 4A          LSR  
  C2/4EAF: 4A          LSR  
Line 2,400: Line 2,145:
  C2/4EC6: 9D CD 32    STA $32CD,X
  C2/4EC6: 9D CD 32    STA $32CD,X
  C2/4EC9: 80 14        BRA $4EDF
  C2/4EC9: 80 14        BRA $4EDF
==C2/4ECB unknow==
  C2/4ECB: 5A          PHY
  C2/4ECB: 5A          PHY
  C2/4ECC: 08          PHP  
  C2/4ECC: 08          PHP  
Line 2,432: Line 2,176:
  C2/4F06: 7A          PLY  
  C2/4F06: 7A          PLY  
  C2/4F07: 60          RTS  
  C2/4F07: 60          RTS  
==C2/4F08 determinate mp cost of spell==
  (Determine MP cost of a spell/attack)
  (Determine MP cost of a spell/attack)
  C2/4F08: DA          PHX
  C2/4F08: DA          PHX
  C2/4F09: 08          PHP  
  C2/4F09: 08          PHP  
Line 2,488: Line 2,230:
  C2/4F55: FA          PLX  
  C2/4F55: FA          PLX  
  C2/4F56: 60          RTS  
  C2/4F56: 60          RTS  
==C2/4F57 monster command script: F7==
Monster command script command #$F7
  C2/4F57: A5 B6        LDA $B6
  C2/4F57: A5 B6        LDA $B6
  C2/4F59: EB          XBA  
  C2/4F59: EB          XBA  
  C2/4F5A: A9 0F        LDA #$0F
  C2/4F5A: A9 0F        LDA #$0F
  C2/4F5C: 4C BF 62    JMP $62BF
  C2/4F5C: 4C BF 62    JMP $62BF
==C2/4F5F command 26==
  Command #$26 - Doom cast when Condemned countdown reaches 0; Safe, Shell, or Reflect*
  Command #$26 - Doom cast when Condemned countdown reaches 0; Safe, Shell, or Reflect*
                 cast when character enters Near Fatal (* no items actually do this,
                 cast when character enters Near Fatal (* no items actually do this,
                 but it's supported); or revival due to Life 3.
                 but it's supported); or revival due to Life 3.
  C2/4F5F: A5 B8        LDA $B8      (get spell ID?)
  C2/4F5F: A5 B8        LDA $B8      (get spell ID?)
  C2/4F61: A6 B6        LDX $B6      (get target?)
  C2/4F61: A6 B6        LDX $B6      (get target?)
Line 2,529: Line 2,266:
  C2/4F91: 9C A5 11    STZ $11A5  (Set to 0 MP cost)
  C2/4F91: 9C A5 11    STZ $11A5  (Set to 0 MP cost)
  C2/4F94: 4C 67 31    JMP $3167
  C2/4F94: 4C 67 31    JMP $3167
==C2/4F97 monster command script F5==
Monster command script command #$F5
  C2/4F97: 9C 2A 3A    STZ $3A2A  (Set to zero damage)
  C2/4F97: 9C 2A 3A    STZ $3A2A  (Set to zero damage)
  C2/4F9A: 9C 2B 3A    STZ $3A2B
  C2/4F9A: 9C 2B 3A    STZ $3A2B
Line 2,554: Line 2,288:
  C2/4FBD: A9 13        LDA #$13
  C2/4FBD: A9 13        LDA #$13
  C2/4FBF: 4C BF 62    JMP $62BF
  C2/4FBF: 4C BF 62    JMP $62BF
==C2/4FC2 unknow==
  C2/4FC2: 48          PHA
  C2/4FC2: 48          PHA
  C2/4FC3: A9 FF        LDA #$FF
  C2/4FC3: A9 FF        LDA #$FF
Line 2,569: Line 2,302:
  C2/4FDC: 99 F9 3E    STA $3EF9,Y  (Set Hide status)
  C2/4FDC: 99 F9 3E    STA $3EF9,Y  (Set Hide status)
  C2/4FDF: 60          RTS  
  C2/4FDF: 60          RTS  
==C2/4FE0 unknow==
  C2/4FE0: 48          PHA
  C2/4FE0: 48          PHA
  C2/4FE1: C2 20        REP #$20
  C2/4FE1: C2 20        REP #$20
Line 2,584: Line 2,316:
  C2/4FFB: 9C 95 3A    STZ $3A95
  C2/4FFB: 9C 95 3A    STZ $3A95
  C2/4FFE: 60          RTS  
  C2/4FFE: 60          RTS  
==C2/4FFF unknow==
  C2/4FFF: 20 CE 4F    JSR $4FCE
  C2/4FFF: 20 CE 4F    JSR $4FCE
  C2/5002: B9 E4 3E    LDA $3EE4,Y
  C2/5002: B9 E4 3E    LDA $3EE4,Y

Revision as of 15:10, 15 December 2013

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

(Dice Effect)
C2/4158: 9C 14 34     STZ $3414   (Set to not modify damage)
C2/415B: A9 20        LDA #$20    
C2/415D: 0C A4 11     TSB $11A4   (Makes unblockable)
C2/4160: A9 0F        LDA #$0F
C2/4162: 85 B6        STA $B6     (Third die defaults to null to start with)
C2/4164: 7B           TDC 
C2/4165: 20 5A 4B     JSR $4B5A   (Random Number Function 0 to 255)
C2/4168: 48           PHA 
C2/4169: 29 0F        AND #$0F    (0 to 15)
C2/416B: A2 06        LDX #$06    (will divide bottom nibble of random number by 6)
C2/416D: 20 92 47     JSR $4792   (Division A/X.  X will hold A MOD X)
C2/4170: 86 B7        STX $B7     (First die roll, 0 to 5 -- 3/16 chance of 0 thru 3 each,
                                   2/16 chance of 4 thru 5 each)
C2/4172: E8           INX 
C2/4173: 86 EE        STX $EE     (Save first die roll, 1 to 6)
C2/4175: 68           PLA         (Retrieve our 0-255 random number)
C2/4176: A2 60        LDX #$60    (will divide top nibble of random number by 6)
C2/4178: 20 92 47     JSR $4792   (Division A/X)
C2/417B: 8A           TXA         (get MOD of division)
C2/417C: 29 F0        AND #$F0    (0 to 5)
C2/417E: 05 B7        ORA $B7
C2/4180: 85 B7        STA $B7     ($B7: bottom nibble = 1st die roll 0 thru 5,
                                   top nibble = 2nd die roll 0 thru 5)
C2/4182: 4A           LSR 
C2/4183: 4A           LSR 
C2/4184: 4A           LSR 
C2/4185: 4A           LSR 
C2/4186: 1A           INC         (2nd die roll, converted to a 1 thru 6 value)
C2/4187: EB           XBA         (1 to 6)
C2/4188: A5 EE        LDA $EE     (Get first die roll, 1 to 6)
C2/418A: 20 81 47     JSR $4781   (Multiply)
C2/418D: 85 EE        STA $EE     ($EE = 1st roll * 2nd roll, where each roll is 1 thru 6)
C2/418F: AD A8 11     LDA $11A8   (# of dice)
C2/4192: C9 03        CMP #$03
C2/4194: 90 15        BCC $41AB   (Branch if less than 3 dice, i.e. there's 2)
C2/4196: 7B           TDC         (Clear Accumulator)
C2/4197: AD 1E 02     LDA $021E   (our 1-60 frame counter?  because 6 divides evenly into 60,
                                   the third die has the same odds for all sides; it is NOT
                                   slanted against you like the first two dice.)
C2/419A: A2 06        LDX #$06
C2/419C: 20 92 47     JSR $4792   (Division A/X)
C2/419F: 8A           TXA         (new random number MOD 6)
C2/41A0: 85 B6        STA $B6     (save third die roll)
C2/41A2: 1A           INC         
C2/41A3: EB           XBA         (3rd die roll, converted to a 1 thru 6 value)
C2/41A4: A5 EE        LDA $EE     
C2/41A6: 20 81 47     JSR $4781   ( (1st roll * 2nd roll) * 3rd roll)
C2/41A9: 85 EE        STA $EE     ($EE = 1st roll * 2nd roll * 3rd roll, where each roll
                                   is 1 thru 6)
C2/41AB: A2 00        LDX #$00    
C2/41AD: A5 B6        LDA $B6     (holds third die roll [0 to 5] if 3 dice,
                                   or F if only 2 dice)
C2/41AF: 0A           ASL 
C2/41B0: 0A           ASL 
C2/41B1: 0A           ASL 
C2/41B2: 0A           ASL 
C2/41B3: 05 B6        ORA $B6     (A: if 2 dice, A = FF.  if 3 dice, A top nibble = 3rd die roll,
                                   and A bottom nibble = 3rd die roll)
C2/41B5: C5 B7        CMP $B7     (does 3rd die roll match both 1st and 2nd?
                                   obviously, it can NEVER if A = FF)
C2/41B7: D0 02        BNE $41BB   (if no match, branch)
C2/41B9: A6 B6        LDX $B6     (X = 0 if there's not 3 matching dice.  if there are,
                                   we've got a bonus coming, so let X be the 0 thru 5
                                   roll value)
C2/41BB: A5 EE        LDA $EE     (depending on # of dice, retrieve either:
                                    1st roll * 2nd roll   OR
                                    1st roll * 2nd roll * 3rd roll)
C2/41BD: EB           XBA 
C2/41BE: AD AF 11     LDA $11AF   (Level)
C2/41C1: 0A           ASL 
C2/41C2: 20 81 47     JSR $4781   ( (1st roll * 2nd roll * 3rd roll) * (Level * 2) )
C2/41C5: C2 20        REP #$20    (set 16 bit-Accumulator)
C2/41C7: 85 EE        STA $EE     (overall damage = 
                                   2 Dice: 1st roll * 2nd roll * Level * 2,
                                   3 Dice: 1st roll * 2nd roll * 3rd roll * Level * 2)
C2/41C9: 18           CLC 
C2/41CA: 8D B0 11     STA $11B0   (save damage)
C2/41CD: A5 EE        LDA $EE
C2/41CF: 6D B0 11     ADC $11B0   (Add [Level * 1st roll * 2nd roll * 3rd roll * 2]
                                   or [Level * 1st roll * 2nd roll * 2] to damage)
C2/41D2: 90 02        BCC $41D6   (branch if it didn't overflow)
C2/41D4: 7B           TDC 
C2/41D5: 3A           DEC         (set running damage to 65535)
C2/41D6: CA           DEX 
C2/41D7: 10 F0        BPL $41C9   (Add the damage to itself X times, where X is the value
                                   as commented at C2/41B9.  This loop serves to multiply
                                   3 matching dice by the roll value once more.

                                   if X is 0 (i.e. no 3 matching dice, or 3 matching dice with
                                   a value of 1), the added damage is never saved.  only the
                                   initial, unmultiplied damage is saved.  which makes
                                   sense, because multiplying by 1 shouldn't boost the damage,
                                   and we shouldn't get a bonus without 3 matching dice.

                                   after this loop, the damage will be:
                                     Roll * Roll * Roll * Level * 2 * Roll
                                   if there are 3 matching dice. )

C2/41D9: E2 20        SEP #$20    (8-bit Accumulator)
C2/41DB: A5 B5        LDA $B5     
C2/41DD: C9 00        CMP #$00
C2/41DF: D0 02        BNE $41E3   (Branch if command not Fight)
C2/41E1: A9 26        LDA #$26
C2/41E3: 85 B5        STA $B5     (Store a dice toss 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