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

From Data Crystal
Jump to navigation Jump to search
(assembly C30)
 
(clean up)
Line 1: Line 1:
==C3/0000 jump table==
  C3/0000: 4C1B00  JMP $001B      (open main menu; from C0/C6F9, EE/03EB)
  C3/0000: 4C1B00  JMP $001B      (open main menu; from C0/C6F9, EE/03EB)
  C3/0003: 4C45A4  JMP $A445
  C3/0003: 4C45A4  JMP $A445
  C3/0006: 4C24A4  JMP $A424      (timer resetting for input decoding; from C0/0053)
  C3/0006: 4C24A4  JMP $A424      (timer resetting for input decoding; from C0/0053)
  C3/0009: 4C7AA4  JMP $A47A      (decode joypad status register 1; from C0/056D, EE/0139, EE/03A6, EE/04FF)
  C3/0009: 4C7AA4  JMP $A47A      (decode joypad status register 1; from C0/056D, EE/0139, EE/03A6, EE/04FF)
  C3/000C: 4CC813  JMP $13C8      (adjust in-game time; from C0/024F, EE/A51E, EE/A73D, EE/A966)
  C3/000C: 4CC813  JMP $13C8      (adjust in-game time; from C0/024F, EE/A51E, EE/A73D, EE/A966)
  C3/000F: 4CFE14  JMP $14FE      (from C0/C4F0)
  C3/000F: 4CFE14  JMP $14FE      (from C0/C4F0)
  C3/0012: 4C1CC5  JMP $C51C      (event command BA; from C0/BA3C)
  C3/0012: 4C1CC5  JMP $C51C      (event command BA; from C0/BA3C)
  C3/0015: 4CD296  JMP $96D2      (empties and fully equips a character; from C0/C6BC)
  C3/0015: 4CD296  JMP $96D2      (empties and fully equips a character; from C0/C6BC)
  C3/0018: 4C7FD5  JMP $D57F      (from EE/8ED8)
  C3/0018: 4C7FD5  JMP $D57F      (from EE/8ED8)
==C3/001B main menu loop==
Main menu loop?
  C3/001B: C210    REP #$10      (16 bit index registers)
  C3/001B: C210    REP #$10      (16 bit index registers)
  C3/001D: E220    SEP #$20      (8 bit memory/accum.)
  C3/001D: E220    SEP #$20      (8 bit memory/accum.)
Line 65: Line 57:
  C3/0088: AC0602  LDY $0206
  C3/0088: AC0602  LDY $0206
  C3/008B: 8C0102  STY $0201
  C3/008B: 8C0102  STY $0201
  C3/008E: 220000C3 JSL $C30000    (Interestingly, this makes it a recursive call--C30000 just jumps to this function)
  C3/008E: 220000C3 JSL $C30000    this makes it a recursive call
  C3/0092: AD0F02  LDA $020F
  C3/0092: AD0F02  LDA $020F
  C3/0095: 8D0102  STA $0201
  C3/0095: 8D0102  STA $0201
  C3/0098: 9C0002  STZ $0200
  C3/0098: 9C0002  STZ $0200
  C3/009B: 4C1B00  JMP $001B
  C3/009B: 4C1B00  JMP $001B
==C3/009E unknow==
  C3/009E: A906    LDA #$06
  C3/009E: A906    LDA #$06
  C3/00A0: 8D0002  STA $0200      (BRA $007F...)
  C3/00A0: 8D0002  STA $0200      (BRA $007F...)
Line 83: Line 75:
  C3/00BC: 4C1B00  JMP $001B
  C3/00BC: 4C1B00  JMP $001B
  C3/00BF: 6B      RTL
  C3/00BF: 6B      RTL
 
==C3/00C0 unknow==
  C3/00C0: A95C    LDA #$5C
  C3/00C0: A95C    LDA #$5C
  C3/00C2: 8D0015  STA $1500
  C3/00C2: 8D0015  STA $1500
Line 95: Line 87:
  C3/00D9: 8D0715  STA $1507
  C3/00D9: 8D0715  STA $1507
  C3/00DC: 60      RTS
  C3/00DC: 60      RTS
 
==C3/00E6 unknow==
  C3/00DD: 7B      TDC
  C3/00DD: 7B      TDC
  C3/00DE: AD0002  LDA $0200
  C3/00DE: AD0002  LDA $0200
Line 101: Line 93:
  C3/00E2: AA      TAX
  C3/00E2: AA      TAX
  C3/00E3: 7CE600  JMP ($00E6,X)
  C3/00E3: 7CE600  JMP ($00E6,X)
==C3/00E6 pointers: related to event commands calls==
This table seems to be for menu calls from C0 (event commands), and regular calls to the menu.
  C3/00E6: 1A01    (pressed X/menu, initiate the menu)
  C3/00E6: 1A01    (pressed X/menu, initiate the menu)
  C3/00E8: B301    (used a Rename Card, or event command $98)
  C3/00E8: B301    (used a Rename Card, or event command $98)
Line 112: Line 103:
  C3/00F4: 5201    (colliseum item selection)
  C3/00F4: 5201    (colliseum item selection)
  C3/00F6: 6601    (party select screen for final battle sequence)
  C3/00F6: 6601    (party select screen for final battle sequence)
==C3/00F8 unknow==
  C3/00F8: 20FA68  JSR $68FA
  C3/00F8: 20FA68  JSR $68FA
  C3/00FB: 201569  JSR $6915
  C3/00FB: 201569  JSR $6915
Line 124: Line 115:
  C3/0114: 20876A  JSR $6A87      (load font and menu graphics)
  C3/0114: 20876A  JSR $6A87      (load font and menu graphics)
  C3/0117: 4C873A  JMP $3A87
  C3/0117: 4C873A  JMP $3A87
==C3/011A init main menu==
  $0200 is #$00, initiate the main menu
  $0200 is #$00, initiate the main menu
  C3/011A: A904    LDA #$04
  C3/011A: A904    LDA #$04
  C3/011C: 8526    STA $26        (execute at C3/1A8A)
  C3/011C: 8526    STA $26        (execute at C3/1A8A)
  C3/011E: 4CBA01  JMP $01BA (could use BRL instead)
  C3/011E: 4CBA01  JMP $01BA (could use BRL instead)
==C3/0121 invoke shop==
  $0200 is #$03, invoke a shop
  $0200 is #$03, invoke a shop
  C3/0121: 20993F  JSR $3F99
  C3/0121: 20993F  JSR $3F99
Line 135: Line 126:
  C3/0126: 8526    STA $26        (execute at C3/B466)
  C3/0126: 8526    STA $26        (execute at C3/B466)
  C3/0128: 4CBA01  JMP $01BA (could use BRL instead)
  C3/0128: 4CBA01  JMP $01BA (could use BRL instead)
==C3/012B invoke party selection==
  $0200 is #$04, invoke party selection screen with number of groups
  $0200 is #$04, invoke party selection screen with number of groups
  C3/012B: 20993F  JSR $3F99
  C3/012B: 20993F  JSR $3F99
Line 147: Line 138:
  C3/013A: 848E    STY $8E
  C3/013A: 848E    STY $8E
  C3/013C: 60      RTS
  C3/013C: 60      RTS
 
==C3/013D unknow==
  $0200 is #$05
  $0200 is #$05
  C3/013D: 20993F  JSR $3F99
  C3/013D: 20993F  JSR $3F99
Line 154: Line 145:
  C3/0145: 8526    STA $26        (execute at C3/7AE5)
  C3/0145: 8526    STA $26        (execute at C3/7AE5)
  C3/0147: 8071    BRA $01BA
  C3/0147: 8071    BRA $01BA
==C3/0149 unknow==
  $0200 is #$06
  $0200 is #$06
  C3/0149: 20993F  JSR $3F99
  C3/0149: 20993F  JSR $3F99
Line 160: Line 151:
  C3/014E: 8526    STA $26        (execute at C3/B437)
  C3/014E: 8526    STA $26        (execute at C3/B437)
  C3/0150: 8068    BRA $01BA
  C3/0150: 8068    BRA $01BA
==C3/0152 invoke Colosseum==
  $0200 is #$07, invoke colliseum item selection screen
  $0200 is #$07, invoke colliseum item selection screen
  C3/0152: 20993F  JSR $3F99
  C3/0152: 20993F  JSR $3F99
Line 171: Line 162:
  C3/0162: 8526    STA $26        (execute at C3/ACAA)
  C3/0162: 8526    STA $26        (execute at C3/ACAA)
  C3/0164: 8054    BRA $01BA
  C3/0164: 8054    BRA $01BA
==C3/0166 invoke party selection for final battle==
  $0200 is #$08, invoke party select screen for the final battle
  $0200 is #$08, invoke party select screen for the final battle
  C3/0166: 20993F  JSR $3F99
  C3/0166: 20993F  JSR $3F99
Line 177: Line 168:
  C3/016B: 8526    STA $26        (execute at C3/A9F8, init final battle setup screen)
  C3/016B: 8526    STA $26        (execute at C3/A9F8, init final battle setup screen)
  C3/016D: 804B    BRA $01BA
  C3/016D: 804B    BRA $01BA
==C3/016F unknow==
  $0200 is #$02, used when the loading screen is called
  $0200 is #$02, used when the loading screen is called
  C3/016F: AFF17F30 LDA $307FF1
  C3/016F: AFF17F30 LDA $307FF1
Line 206: Line 197:
  C3/01AE: 9C0502  STZ $0205
  C3/01AE: 9C0502  STZ $0205
  C3/01B1: 8007    BRA $01BA
  C3/01B1: 8007    BRA $01BA
==C3/01B3 rename card code==
  $0200 is #$01, used a Rename Card or event command $98
  $0200 is #$01, used a Rename Card or event command $98
  C3/01B3: 20993F  JSR $3F99
  C3/01B3: 20993F  JSR $3F99
  C3/01B6: A95D    LDA #$5D
  C3/01B6: A95D    LDA #$5D
  C3/01B8: 8526    STA $26        (execute at C3/652D)
  C3/01B8: 8526    STA $26        (execute at C3/652D)
==C3/01BA menu loop code==
  The menu loop code. Execute code based on the value of $26
  The menu loop code. Execute code based on the value of $26
  C3/01BA: 201214  JSR $1412      (from C3/011E, C3/0128, C3/0135)
  C3/01BA: 201214  JSR $1412      (from C3/011E, C3/0128, C3/0135)
Line 229: Line 220:
  C3/01D8: 6443    STZ $43        (eventually disable all 8 channels of HDMA)
  C3/01D8: 6443    STZ $43        (eventually disable all 8 channels of HDMA)
  C3/01DA: 60      RTS
  C3/01DA: 60      RTS
 
==C3/01DB pointers: menu system==
  $26's jump table. The entire backbone of the menu system is here.
  $26's jump table. The entire backbone of the menu system is here.
  C3/01DB: 711D    (#$00, fade out)
  C3/01DB: 711D    (#$00, fade out)
Line 359: Line 350:
  C3/02D7: E51B    (#$7E, switching characters in the equip menu while selecting a body slot to fill)
  C3/02D7: E51B    (#$7E, switching characters in the equip menu while selecting a body slot to fill)
  C3/02D9: F31B    (#$7F, switching characters in the equip menu while selecting a body slot to empty)
  C3/02D9: F31B    (#$7F, switching characters in the equip menu while selecting a body slot to empty)
==C3/02DB unknow==
  C3/02DB: A5B4    LDA $B4
  C3/02DB: A5B4    LDA $B4
  C3/02DD: D019    BNE $02F8
  C3/02DD: D019    BNE $02F8
Line 374: Line 365:
  C3/02F6: 85B4    STA $B4
  C3/02F6: 85B4    STA $B4
  C3/02F8: 60      RTS
  C3/02F8: 60      RTS
==C3/7FD9 main text drawing==
Main text drawing routine.
  Coming in:
  Coming in:
  16 bit Y holds location in rom
  16 bit Y holds location in rom
Line 406: Line 396:
  C3/0323: 80ED    BRA $0312      (loop and keep grabbing letters)
  C3/0323: 80ED    BRA $0312      (loop and keep grabbing letters)
  C3/0325: 60      RTS
  C3/0325: 60      RTS
 
==C3/0326 unknow==
  ((Deleted function C3/0326 from FF6j goes here))
  ((Deleted function C3/0326 from FF6j goes here))
  C3/0326: 84E7    STY $E7        (from C3/171A, C3/3A9E, C3/3ABA, C3/3AD6, C3/3AF2)
  C3/0326: 84E7    STY $E7        (from C3/171A, C3/3A9E, C3/3ABA, C3/3AD6, C3/3AF2)
Line 421: Line 411:
  C3/033E: E220    SEP #$20      (8 bit memory/accum.)
  C3/033E: E220    SEP #$20      (8 bit memory/accum.)
  C3/0340: 60      RTS
  C3/0340: 60      RTS
 
==C3/0341 draw a window==
  Draw a window, 4 sides. 16-bit Y holds the location in C3 of where
  Draw a window, 4 sides. 16-bit Y holds the location in C3 of where
  the window data is. The first two bytes are the starting location
  the window data is. The first two bytes are the starting location
Line 454: Line 444:
  C3/0372: E220    SEP #$20      (8 bit memory/accum.)
  C3/0372: E220    SEP #$20      (8 bit memory/accum.)
  C3/0374: 60      RTS
  C3/0374: 60      RTS
 
==C3/0375 unknow==
  C3/0375: 20A303  JSR $03A3
  C3/0375: 20A303  JSR $03A3
  C3/0378: A600    LDX $00
  C3/0378: A600    LDX $00
Line 475: Line 465:
  C3/0396: D0E7    BNE $037F
  C3/0396: D0E7    BNE $037F
  C3/0398: 4CBB03  JMP $03BB
  C3/0398: 4CBB03  JMP $03BB
==C3/039B pointers==
Data: jump table for above
  C3/039B: D103
  C3/039B: D103
  C3/039D: DB03
  C3/039D: DB03
  C3/039F: E803
  C3/039F: E803
  C3/03A1: F503
  C3/03A1: F503
==C3/03A3 unknow==
  C3/03A3: A400    LDY $00
  C3/03A3: A400    LDY $00
  C3/03A5: 200804  JSR $0408
  C3/03A5: 200804  JSR $0408
Line 491: Line 480:
  C3/03B7: 86E0    STX $E0
  C3/03B7: 86E0    STX $E0
  C3/03B9: 806D    BRA $0428
  C3/03B9: 806D    BRA $0428
==C3/03BB unknow==
  C3/03BB: 200804  JSR $0408
  C3/03BB: 200804  JSR $0408
  C3/03BE: AF4D9F7E LDA $7E9F4D
  C3/03BE: AF4D9F7E LDA $7E9F4D
Line 500: Line 489:
  C3/03CD: 86E0    STX $E0
  C3/03CD: 86E0    STX $E0
  C3/03CF: 8057    BRA $0428
  C3/03CF: 8057    BRA $0428
==C3/03D1 unknow==
  C3/03D1: 200204  JSR $0402      (from C3/039B)
  C3/03D1: 200204  JSR $0402      (from C3/039B)
  C3/03D4: 200E04  JSR $040E
  C3/03D4: 200E04  JSR $040E
  C3/03D7: 64E0    STZ $E0
  C3/03D7: 64E0    STZ $E0
  C3/03D9: 804D    BRA $0428
  C3/03D9: 804D    BRA $0428
==C3/03DB unknow==
  C3/03DB: 200204  JSR $0402      (from C3/039D)
  C3/03DB: 200204  JSR $0402      (from C3/039D)
  C3/03DE: 201B04  JSR $041B
  C3/03DE: 201B04  JSR $041B
Line 511: Line 500:
  C3/03E4: 86E0    STX $E0
  C3/03E4: 86E0    STX $E0
  C3/03E6: 8040    BRA $0428
  C3/03E6: 8040    BRA $0428
==C3/03E8 unknow==
  C3/03E8: 200204  JSR $0402      (from C3/039F)
  C3/03E8: 200204  JSR $0402      (from C3/039F)
  C3/03EB: 200E04  JSR $040E
  C3/03EB: 200E04  JSR $040E
Line 517: Line 506:
  C3/03F1: 86E0    STX $E0
  C3/03F1: 86E0    STX $E0
  C3/03F3: 8033    BRA $0428
  C3/03F3: 8033    BRA $0428
==C3/03F5 unknow==
  C3/03F5: 200204  JSR $0402      (from C3/03A1)
  C3/03F5: 200204  JSR $0402      (from C3/03A1)
  C3/03F8: 201B04  JSR $041B
  C3/03F8: 201B04  JSR $041B
Line 523: Line 512:
  C3/03FE: 86E0    STX $E0
  C3/03FE: 86E0    STX $E0
  C3/0400: 8026    BRA $0428
  C3/0400: 8026    BRA $0428
==C3/0402 unknow==
  C3/0402: A20300  LDX #$0003
  C3/0402: A20300  LDX #$0003
  C3/0405: 86F5    STX $F5
  C3/0405: 86F5    STX $F5
  C3/0407: 60      RTS
  C3/0407: 60      RTS
 
==C3/0408 unknow==
  C3/0408: A20100  LDX #$0001    (from C3/03A5, C3/03BB)
  C3/0408: A20100  LDX #$0001    (from C3/03A5, C3/03BB)
  C3/040B: 86F5    STX $F5
  C3/040B: 86F5    STX $F5
  C3/040D: 60      RTS
  C3/040D: 60      RTS
 
==C3/040E unknow==
  C3/040E: AF419F7E LDA $7E9F41    (from C3/03D4, C3/03EB)
  C3/040E: AF419F7E LDA $7E9F41    (from C3/03D4, C3/03EB)
  C3/0412: 85E3    STA $E3
  C3/0412: 85E3    STA $E3
Line 537: Line 526:
  C3/0418: 85E5    STA $E5
  C3/0418: 85E5    STA $E5
  C3/041A: 60      RTS
  C3/041A: 60      RTS
 
==C3/041B unknow==
  C3/041B: AF459F7E LDA $7E9F45    (from C3/03DE, C3/03F8)
  C3/041B: AF459F7E LDA $7E9F45    (from C3/03DE, C3/03F8)
  C3/041F: 85E3    STA $E3
  C3/041F: 85E3    STA $E3
Line 543: Line 532:
  C3/0425: 85E5    STA $E5
  C3/0425: 85E5    STA $E5
  C3/0427: 60      RTS
  C3/0427: 60      RTS
 
==C3/0428 unknow==
  C3/0428: A600    LDX $00        (from C3/03B9, C3/03CF, C3/03D9, C3/03E6, C3/03F3, C3/0400)
  C3/0428: A600    LDX $00        (from C3/03B9, C3/03CF, C3/03D9, C3/03E6, C3/03F3, C3/0400)
  C3/042A: A5E3    LDA $E3
  C3/042A: A5E3    LDA $E3
Line 568: Line 557:
  C3/044B: 97EB    STA [$EB],Y
  C3/044B: 97EB    STA [$EB],Y
  C3/044D: 60      RTS
  C3/044D: 60      RTS
 
==C3/044E data==
Smells like data
  C3/044E: 8001
  C3/044E: 8001
  C3/0450: 8101
  C3/0450: 8101
Line 598: Line 586:
  C3/0482: 9801
  C3/0482: 9801
  C3/0484: 9B01
  C3/0484: 9B01
==C3/0486 buffer-clipping functions==
  Following are several buffer-clipping functions.   
  Following are several buffer-clipping functions.   
  I believe they basically print from the first position  
  I believe they basically print from the first position  
Line 650: Line 638:
  C3/04DD: D0F1    BNE $04D0
  C3/04DD: D0F1    BNE $04D0
  C3/04DF: 60      RTS
  C3/04DF: 60      RTS
==C3/04E0 unknow==
  This calls the function below here, then any leading zeros  
  This calls the function below here, then any leading zeros  
  are converted to spaces. A zero in the third position  
  are converted to spaces. A zero in the third position  
Line 666: Line 654:
  C3/04F6: D0F0    BNE $04E8
  C3/04F6: D0F0    BNE $04E8
  C3/04F8: 60      RTS
  C3/04F8: 60      RTS
==C3/04F9 convert number for display: 3 digits==
  Takes a number from A (which is put into $E0 internally)
  Takes a number from A (which is put into $E0 internally)
  and converts it into a number up to 3 digits in decimal text.
  and converts it into a number up to 3 digits in decimal text.
Line 697: Line 685:
  C3/0528: D0D8    BNE $0502
  C3/0528: D0D8    BNE $0502
  C3/052A: 60      RTS
  C3/052A: 60      RTS
 
==C3/052B unknow==
  Data (for decimal place-values)
  Data (for decimal place-values)
  C3/052B: 64  (100)
  C3/052B: 64  (100)
  C3/052C: 0A  (10)
  C3/052C: 0A  (10)
  C3/052D: 01  (1)
  C3/052D: 01  (1)
==C3/052E convert number for display: 5 digits==
  Takes a number from $F3 and $F4 (or 16-bit $F3 if you prefer to  
  Takes a number from $F3 and $F4 (or 16-bit $F3 if you prefer to  
  say that) and converts it to a number up to 5 digits in decimal  
  say that) and converts it to a number up to 5 digits in decimal  
Line 746: Line 734:
  C3/0575: D0F0    BNE $0567
  C3/0575: D0F0    BNE $0567
  C3/0577: 60      RTS
  C3/0577: 60      RTS
==C3/0578 data==
Data
  C3/0578: 1027      (10000)
  C3/0578: 1027      (10000)
  C3/057A: E803      (1000)
  C3/057A: E803      (1000)
Line 753: Line 740:
  C3/057E: 0A00      (10)
  C3/057E: 0A00      (10)
  C3/0580: 0100      (1)
  C3/0580: 0100      (1)
==C3/0582 unknow==
  C3/0582: 64F4    STZ $F4
  C3/0582: 64F4    STZ $F4
  C3/0584: A908    LDA #$08
  C3/0584: A908    LDA #$08
Line 799: Line 786:
  C3/05DB: D0F0    BNE $05CD
  C3/05DB: D0F0    BNE $05CD
  C3/05DD: 60      RTS
  C3/05DD: 60      RTS
 
==C3/05DE data==
  In case this wasn't obvious from the others, here ya go:
  In case this wasn't obvious from the others, here ya go:
  C3/05DE: 8096    (10000000)
  C3/05DE: 8096    (10000000)
Line 818: Line 805:
  C3/05FA: 0000
  C3/05FA: 0000
  C3/05FC: 0000
  C3/05FC: 0000
==C3/05FE hotspot loading function==
Hotspot loading function?
  C3/05FE: A9C3    LDA #$C3
  C3/05FE: A9C3    LDA #$C3
  C3/0600: 85ED    STA $ED
  C3/0600: 85ED    STA $ED
Line 838: Line 824:
  C3/061B: E220    SEP #$20      (8 bit memory/accum.)
  C3/061B: E220    SEP #$20      (8 bit memory/accum.)
  C3/061D: 60      RTS
  C3/061D: 60      RTS
==C3/061E unknow==
  C3/061E: 7B      TDC            (set A to 0)
  C3/061E: 7B      TDC            (set A to 0)
  C3/061F: A8      TAY            (set Y to 0)
  C3/061F: A8      TAY            (set Y to 0)
Line 851: Line 837:
  C3/062D: D0F1    BNE $0620
  C3/062D: D0F1    BNE $0620
  C3/062F: 60      RTS
  C3/062F: 60      RTS
==C3/0630 unknow==
  C3/0630: 84E7    STY $E7
  C3/0630: 84E7    STY $E7
  C3/0632: A9C3    LDA #$C3
  C3/0632: A9C3    LDA #$C3
  C3/0634: 85E9    STA $E9
  C3/0634: 85E9    STA $E9
  C3/0636: 60      RTS
  C3/0636: 60      RTS
 
==C3/0637 unknow==
  C3/0637: 203006  JSR $0630
  C3/0637: 203006  JSR $0630
  C3/063A: 205006  JSR $0650
  C3/063A: 205006  JSR $0650
  C3/063D: 4CC506  JMP $06C5
  C3/063D: 4CC506  JMP $06C5
==C3/0640 finger positioning decoder==
  Finger positioning decoding function!
  Finger positioning decoding function!
  C3/0640: 203006  JSR $0630
  C3/0640: 203006  JSR $0630
  C3/0643: 207706  JSR $0677
  C3/0643: 207706  JSR $0677
  C3/0646: 807D    BRA $06C5
  C3/0646: 807D    BRA $06C5
==C3/0648 unknow==
  C3/0648: 203006  JSR $0630
  C3/0648: 203006  JSR $0630
  C3/064B: 209E06  JSR $069E
  C3/064B: 209E06  JSR $069E
  C3/064E: 8075    BRA $06C5
  C3/064E: 8075    BRA $06C5
==C3/0650 unknow==
  C3/0650: 8B      PHB
  C3/0650: 8B      PHB
  C3/0651: A900    LDA #$00
  C3/0651: A900    LDA #$00
Line 889: Line 875:
  C3/0675: AB      PLB
  C3/0675: AB      PLB
  C3/0676: 60      RTS
  C3/0676: 60      RTS
 
==C3/0677 unknow==
  C3/0677: 8B      PHB
  C3/0677: 8B      PHB
  C3/0678: A900    LDA #$00
  C3/0678: A900    LDA #$00
Line 909: Line 895:
  C3/069C: AB      PLB
  C3/069C: AB      PLB
  C3/069D: 60      RTS
  C3/069D: 60      RTS
 
==C3/069E unknow==
  C3/069E: 8B      PHB
  C3/069E: 8B      PHB
  C3/069F: A900    LDA #$00
  C3/069F: A900    LDA #$00
Line 929: Line 915:
  C3/06C3: AB      PLB
  C3/06C3: AB      PLB
  C3/06C4: 60      RTS
  C3/06C4: 60      RTS
 
==C3/06C5 unknow==
  C3/06C5: 8B      PHB
  C3/06C5: 8B      PHB
  C3/06C6: A900    LDA #$00
  C3/06C6: A900    LDA #$00
Line 987: Line 973:
  C3/072B: AB      PLB
  C3/072B: AB      PLB
  C3/072C: 60      RTS
  C3/072C: 60      RTS
 
==C3/072D move and update finger position==
  Used by finger positioning data, determine current position
  Used by finger positioning data, determine current position
  and move to a new position based on direction pressed
  and move to a new position based on direction pressed
Line 1,056: Line 1,042:
  C3/07AC: 20A30E  JSR $0EA3
  C3/07AC: 20A30E  JSR $0EA3
  C3/07AF: 60      RTS
  C3/07AF: 60      RTS
 
==C3/07B0 OAM initial routine==
  OAM initiating routine for hotspots
  OAM initiating routine for hotspots
  C3/07B0: A901    LDA #$01
  C3/07B0: A901    LDA #$01
Line 1,064: Line 1,050:
  C3/07B8: AA      TAX
  C3/07B8: AA      TAX
  C3/07B9: 7CBC07  JMP ($07BC,X)
  C3/07B9: 7CBC07  JMP ($07BC,X)
==C3/07BC data==
  C3/07BC: C007
  C3/07BC: C007
  C3/07BE: DC07
  C3/07BE: DC07
==C3/07C0 unknow==
  C3/07C0: A62D    LDX $2D
  C3/07C0: A62D    LDX $2D
  C3/07C3: C220    REP #$20
  C3/07C3: C220    REP #$20
Line 1,098: Line 1,084:
  C3/07FD: 18      CLC            (flag that this queue can be removed)
  C3/07FD: 18      CLC            (flag that this queue can be removed)
  C3/07FE: 60      RTS
  C3/07FE: 60      RTS
 
==C3/07FF unknow==
  C3/07FF: AA      TAX
  C3/07FF: AA      TAX
  C3/0800: 7C0308  JMP ($0803,X)
  C3/0800: 7C0308  JMP ($0803,X)
==C3/0803 pointers==
  C3/0803: 0B08  
  C3/0803: 0B08  
  C3/0805: 2B08
  C3/0805: 2B08
  C3/0807: 0B08  
  C3/0807: 0B08  
  C3/0809: 6708  
  C3/0809: 6708  
==C3/080B unknow==
  C3/080B: A62D    LDX $2D        (from C3/0803, C3/0807)
  C3/080B: A62D    LDX $2D        (from C3/0803, C3/0807)
  C3/080D: A901    LDA #$01
  C3/080D: A901    LDA #$01
Line 1,153: Line 1,139:
  C3/0865: 18      CLC
  C3/0865: 18      CLC
  C3/0866: 60      RTS
  C3/0866: 60      RTS
 
==C3/0867 unknow==
  C3/0867: A546    LDA $46        (from C3/0809)
  C3/0867: A546    LDA $46        (from C3/0809)
  C3/0869: 8901    BIT #$01
  C3/0869: 8901    BIT #$01
Line 1,172: Line 1,158:
  C3/088B: 38      SEC
  C3/088B: 38      SEC
  C3/088C: 60      RTS
  C3/088C: 60      RTS
 
==C3/088D oam data: finger==
OAM data for finger
  C3/088D: 90 08
  C3/088D: 9008
  C3/088F: FE      (???)
  C3/088F: FE      (???)
  C3/0890: 01      (one set of data)
  C3/0890: 01      (one set of data)
  C3/0891: 80 00 00 3E (position 80,0, 0 is ?, finger)
  C3/0891: 8000003E (position 80,0, 0 is ?, finger)
  C3/0895: 00      (no data)
  C3/0895: 00      (no data)
==C3/0896 blink effect for finger==
  Cycle to create blinking effect for finger
  Cycle to create blinking effect for finger
  C3/0896: 9008
  C3/0896: 9008
Line 1,191: Line 1,172:
  C3/089C: 9008
  C3/089C: 9008
  C3/089E: FF
  C3/089E: FF
==C3/089F unknow==
  C3/089F: 7B      TDC
  C3/089F: 7B      TDC
  C3/08A0: AA      TAX
  C3/08A0: AA      TAX
Line 1,220: Line 1,201:
  C3/08CE: D0D1    BNE $08A1
  C3/08CE: D0D1    BNE $08A1
  C3/08D0: 60      RTS
  C3/08D0: 60      RTS
 
==C3/08D1 unknow==
  C3/08D1: AA      TAX
  C3/08D1: AA      TAX
  C3/08D2: 7CD508  JMP ($08D5,X)
  C3/08D2: 7CD508  JMP ($08D5,X)
==C3/08D5 pointers==
  C3/08D5: D908 
  C3/08D5: D908 
  C3/08D7: F908       
  C3/08D7: F908       
==C3/08D9 unknow==
  C3/08D9: A62D    LDX $2D
  C3/08D9: A62D    LDX $2D
  C3/08DB: A908    LDA #$08
  C3/08DB: A908    LDA #$08
Line 1,250: Line 1,231:
  C3/0906: 18      CLC            (this queue can be removed)
  C3/0906: 18      CLC            (this queue can be removed)
  C3/0907: 60      RTS
  C3/0907: 60      RTS
 
==C3/0908 unknow==
  C3/0908: A9C0    LDA #$C0
  C3/0908: A9C0    LDA #$C0
  C3/090A: 0446    TSB $46
  C3/090A: 0446    TSB $46
Line 1,263: Line 1,244:
  C3/091C: 1446    TRB $46
  C3/091C: 1446    TRB $46
  C3/091E: 60      RTS
  C3/091E: 60      RTS
 
==C3/091F unknow==
  C3/091F: A903    LDA #$03      (from C3/1B14, C3/20B5, C3/2132, C3/2170, C3/21A8, C3/265A, C3/591E, C3/89DE, C3/BC05)
  C3/091F: A903    LDA #$03      (from C3/1B14, C3/20B5, C3/2132, C3/2170, C3/21A8, C3/265A, C3/591E, C3/89DE, C3/BC05)
  C3/0921: A04709  LDY #$0947
  C3/0921: A04709  LDY #$0947
Line 1,272: Line 1,253:
  C3/0930: E220    SEP #$20      (8 bit memory/accum.)
  C3/0930: E220    SEP #$20      (8 bit memory/accum.)
  C3/0932: 60      RTS
  C3/0932: 60      RTS
 
==C3/0933 unknow==
  C3/0933: A903    LDA #$03      (only from C3/9B0F)
  C3/0933: A903    LDA #$03      (only from C3/9B0F)
  C3/0935: A04709  LDY #$0947
  C3/0935: A04709  LDY #$0947
Line 1,281: Line 1,262:
  C3/0944: E220    SEP #$20      (8 bit memory/accum.)
  C3/0944: E220    SEP #$20      (8 bit memory/accum.)
  C3/0946: 60      RTS
  C3/0946: 60      RTS
 
==C3/0947 unknow==
  C3/0947: AA      TAX
  C3/0947: AA      TAX
  C3/0948: 7C4B09  JMP ($094B,X)
  C3/0948: 7C4B09  JMP ($094B,X)
==C3/094B pointers==
  C3/094B: 4F09
  C3/094B: 4F09
  C3/094D: 6A09
  C3/094D: 6A09
==C3/094F unknow==
  C3/094F: A62D    LDX $2D
  C3/094F: A62D    LDX $2D
  C3/0951: C220    REP #$20      (16 bit memory/accum.)
  C3/0951: C220    REP #$20      (16 bit memory/accum.)
Line 1,351: Line 1,332:
  C3/09D9: 18      CLC            (this queue can be removed)
  C3/09D9: 18      CLC            (this queue can be removed)
  C3/09DA: 60      RTS
  C3/09DA: 60      RTS
 
==C3/09DB pointers: oam arrow cycle==
Data: pointers for OAM arrow cycle
  C3/09DB: E309   
  C3/09DB: E309   
  C3/09DD: EC09   
  C3/09DD: EC09   
  C3/09DF: F509   
  C3/09DF: F509   
  C3/09E1: E309     
  C3/09E1: E309     
==C3/09E3 oam related==
  OAM format: pointer, timer, pointer, timer, pointer, end
  OAM format: pointer, timer, pointer, timer, pointer, end
  C3/09E3: FE09   
  C3/09E3: FE09   
Line 1,379: Line 1,359:
  C3/09FB: FE09
  C3/09FB: FE09
  C3/09FD: FF
  C3/09FD: FF
==C3/09FE oam arrow position==
  Data: OAM arrow position....GENERAL PURPOSE! format is X Y state sprite, X and Y are relative to starting and current positions
  Data: OAM arrow position....GENERAL PURPOSE! format is X Y state sprite, X and Y are relative to starting and current positions
  C3/09FE: 02      (no idea...)
  C3/09FE: 02      (no idea...)
Line 1,400: Line 1,380:
  C3/0A1A: 0000023E (upper arrow)  (position 0,0, disabled, arrow pointing up)
  C3/0A1A: 0000023E (upper arrow)  (position 0,0, disabled, arrow pointing up)
  C3/0A1E: 000812BE (lower arrow)  (position 0,8, enabled, arrow pointing down)
  C3/0A1E: 000812BE (lower arrow)  (position 0,8, enabled, arrow pointing down)
==C3/0A22 unknow==
  C3/0A22: A903    LDA #$03
  C3/0A22: A903    LDA #$03
  C3/0A24: A0120B  LDY #$0B12
  C3/0A24: A0120B  LDY #$0B12
Line 1,421: Line 1,401:
  C3/0A49: AB      PLB
  C3/0A49: AB      PLB
  C3/0A4A: 60      RTS
  C3/0A4A: 60      RTS
 
==C3/0A4B unknow==
  C3/0A4B: A903    LDA #$03
  C3/0A4B: A903    LDA #$03
  C3/0A4D: A0120B  LDY #$0B12
  C3/0A4D: A0120B  LDY #$0B12
Line 1,442: Line 1,422:
  C3/0A74: AB      PLB
  C3/0A74: AB      PLB
  C3/0A75: 60      RTS
  C3/0A75: 60      RTS
 
==C3/0A76 unknow==
  C3/0A76: A903    LDA #$03
  C3/0A76: A903    LDA #$03
  C3/0A78: A0120B  LDY #$0B12
  C3/0A78: A0120B  LDY #$0B12
Line 1,463: Line 1,443:
  C3/0A9F: AB      PLB
  C3/0A9F: AB      PLB
  C3/0AA0: 60      RTS
  C3/0AA0: 60      RTS
 
==C3/0AA1 unknow==
  C3/0AA1: A903    LDA #$03
  C3/0AA1: A903    LDA #$03
  C3/0AA3: A0120B  LDY #$0B12
  C3/0AA3: A0120B  LDY #$0B12
Line 1,484: Line 1,464:
  C3/0ACA: AB      PLB
  C3/0ACA: AB      PLB
  C3/0ACB: 60      RTS
  C3/0ACB: 60      RTS
 
==C3/0ACC unknow==
  C3/0ACC: DA      PHX
  C3/0ACC: DA      PHX
  C3/0ACD: DA      PHX            (o_O, maybe this should be PHY? Y isn't touched at all, but still)
  C3/0ACD: DA      PHX            (should this be PHY? Y isn't touched at all, but still)
  C3/0ACE: BB      TYX
  C3/0ACE: BB      TYX
  C3/0ACF: B575    LDA $75,X
  C3/0ACF: B575    LDA $75,X
Line 1,502: Line 1,482:
  C3/0AE7: FA      PLX            (no stack mismatch, but something has to have bugged... Kejardon claims this to be intentional)
  C3/0AE7: FA      PLX            (no stack mismatch, but something has to have bugged... Kejardon claims this to be intentional)
  C3/0AE8: 60      RTS
  C3/0AE8: 60      RTS
 
==C3/0AE9 data==
  C3/0AE9: 8C0B
  C3/0AE9: 8C0B
  C3/0AEB: C40B
  C3/0AEB: C40B
  C3/0AED: FC0B
  C3/0AED: FC0B
  C3/0AEF: 340C
  C3/0AEF: 340C
==C3/0AF1 unknow==
  C3/0AF1: DA      PHX
  C3/0AF1: DA      PHX
  C3/0AF2: BB      TYX
  C3/0AF2: BB      TYX
Line 1,525: Line 1,505:
  C3/0B0F: E220    SEP #$20      (8 bit memory/accum.)
  C3/0B0F: E220    SEP #$20      (8 bit memory/accum.)
  C3/0B11: 60      RTS
  C3/0B11: 60      RTS
 
==C3/0B12 unknow==
  C3/0B12: AA      TAX
  C3/0B12: AA      TAX
  C3/0B13: 7C160B  JMP ($0B16,X)
  C3/0B13: 7C160B  JMP ($0B16,X)
==C3/0B16 pointers==
  C3/0B16: 200B 
  C3/0B16: 200B 
  C3/0B18: 2A0B   
  C3/0B18: 2A0B   
Line 1,534: Line 1,514:
  C3/0B1C: 4C0B 
  C3/0B1C: 4C0B 
  C3/0B1E: 5E0B       
  C3/0B1E: 5E0B       
==C3/0B20 unknow==
  C3/0B20: A62D    LDX $2D
  C3/0B20: A62D    LDX $2D
  C3/0B22: FE4936  INC $3649,X    (execute the next entry in this queue's jump table)
  C3/0B22: FE4936  INC $3649,X    (execute the next entry in this queue's jump table)
Line 1,548: Line 1,528:
  C3/0B36: 18      CLC            (this queue can be removed)
  C3/0B36: 18      CLC            (this queue can be removed)
  C3/0B37: 60      RTS
  C3/0B37: 60      RTS
 
==C3/0B38 unknow==
  C3/0B38: A62D    LDX $2D
  C3/0B38: A62D    LDX $2D
  C3/0B3A: C220    REP #$20      (16 bit memory/accum.)
  C3/0B3A: C220    REP #$20      (16 bit memory/accum.)
Line 1,579: Line 1,559:
  C3/0B7E: 38      SEC            (not done yet with this queue)
  C3/0B7E: 38      SEC            (not done yet with this queue)
  C3/0B7F: 60      RTS
  C3/0B7F: 60      RTS
 
==C3/0B80 unknow==
  C3/0B80: E220    SEP #$20      (8 bit memory/accum.)
  C3/0B80: E220    SEP #$20      (8 bit memory/accum.)
  C3/0B82: A901    LDA #$01
  C3/0B82: A901    LDA #$01
Line 1,586: Line 1,566:
  C3/0B8A: 38      SEC            (not done yet with this queue)
  C3/0B8A: 38      SEC            (not done yet with this queue)
  C3/0B8B: 60      RTS
  C3/0B8B: 60      RTS
 
==C3/0B8C oam data==
OAM data
  C3/0B8C: 8F0B
  C3/0B8C: 8F0B
   
   
Line 1,593: Line 1,572:
   
   
  C3/0B8F: 0D      (13 sets of data)
  C3/0B8F: 0D      (13 sets of data)
  C3/0B90: 80006020 (position 80,00, 60 is ?, 20 is ?)
  C3/0B90: 80006020 (position 80,00, 60 is ?, 20 is ?)
  C3/0B94: 90006220 (position 90,00, 62 is ?, 20 is ?)
  C3/0B94: 90006220 (position 90,00, 62 is ?, 20 is ?)
Line 1,609: Line 1,587:
   
   
  C3/0BC4: C70B
  C3/0BC4: C70B
  C3/0BC6: FE      (...)
  C3/0BC6: FE      (...)
  C3/0BC7: 0D      (13 sets of data)
  C3/0BC7: 0D      (13 sets of data)
   
   
Line 1,629: Line 1,605:
   
   
  C3/0BFC: FF0B
  C3/0BFC: FF0B
  C3/0BFE: FE      (...)
  C3/0BFE: FE      (...)
  C3/0BFF: 0D      (13 sets of data)
  C3/0BFF: 0D      (13 sets of data)
   
   
Line 1,649: Line 1,623:
   
   
  C3/0C34: 370C
  C3/0C34: 370C
  C3/0C36: FE      (...)
  C3/0C36: FE      (...)
  C3/0C37: 0D      (13 sets of data)
  C3/0C37: 0D      (13 sets of data)
   
   
Line 1,667: Line 1,639:
  C3/0C64: 1020CF26
  C3/0C64: 1020CF26
  C3/0C68: 1820D826
  C3/0C68: 1820D826
==C3/0C6C display character level, HP and MP==
Display a character's level, HP, and MP
  This same function is used for main menu, skills screen,  
  This same function is used for main menu, skills screen,  
  status screen, equipment, relics, or save screen
  status screen, equipment, relics, or save screen
Line 1,722: Line 1,693:
  C3/0CE9: A00600  LDY #$0006
  C3/0CE9: A00600  LDY #$0006
  C3/0CEC: 4C210D  JMP $0D21      (BRA fool!)
  C3/0CEC: 4C210D  JMP $0D21      (BRA fool!)
==C3/0CEF unknow==
  C3/0CEF: A28B9E  LDX #$9E8B
  C3/0CEF: A28B9E  LDX #$9E8B
  C3/0CF2: 8E8121  STX $2181
  C3/0CF2: 8E8121  STX $2181
Line 1,744: Line 1,715:
  C3/0D1D: 20FF02  JSR $02FF      (JMP fool!)
  C3/0D1D: 20FF02  JSR $02FF      (JMP fool!)
  C3/0D20: 60      RTS
  C3/0D20: 60      RTS
 
==C3/0D21 unknow==
  C3/0D21: C220    REP #$20      (16 bit memory/accum.)
  C3/0D21: C220    REP #$20      (16 bit memory/accum.)
  C3/0D23: B7EF    LDA [$EF],Y
  C3/0D23: B7EF    LDA [$EF],Y
Line 1,750: Line 1,721:
  C3/0D26: E220    SEP #$20      (8 bit memory/accum.)
  C3/0D26: E220    SEP #$20      (8 bit memory/accum.)
  C3/0D28: 4C9004  JMP $0490
  C3/0D28: 4C9004  JMP $0490
==C3/0D2B check if character knows magic==
Determine if a character actually knows magic
  C3/0D2B: AD691A  LDA $1A69      (from C3/0CB7)
  C3/0D2B: AD691A  LDA $1A69      (from C3/0CB7)
  C3/0D2E: 0D6A1A  ORA $1A6A
  C3/0D2E: 0D6A1A  ORA $1A6A
Line 1,782: Line 1,752:
  C3/0D63: 38      SEC            (flag MP as ok to display)
  C3/0D63: 38      SEC            (flag MP as ok to display)
  C3/0D64: 60      RTS
  C3/0D64: 60      RTS
 
==C3/0D65 adjust HP and MP based on equipment== 
  This is called by both HP and MP to adjust their values based on boosting equipment
  This is called by both HP and MP to adjust their values based on boosting equipment
  C3/0D65: C220    REP #$20      (16 bit memory/accum.)
  C3/0D65: C220    REP #$20      (16 bit memory/accum.)
Line 1,798: Line 1,768:
  C3/0D79: A5E7    LDA $E7        (load our non-boosted HP/MP)
  C3/0D79: A5E7    LDA $E7        (load our non-boosted HP/MP)
  C3/0D7B: 7C7E0D  JMP ($0D7E,X)
  C3/0D7B: 7C7E0D  JMP ($0D7E,X)
==C3/0D7E pointers: HP and MP boosts==
  C3/0D7E: 860D    (no HP/MP boost)
  C3/0D7E: 860D    (no HP/MP boost)
  C3/0D80: 880D    (25% HP/MP boost)
  C3/0D80: 880D    (25% HP/MP boost)
  C3/0D82: 890D    (50% HP/MP boost)
  C3/0D82: 890D    (50% HP/MP boost)
  C3/0D84: 870D    (12.5% HP/MP boost)
  C3/0D84: 870D    (12.5% HP/MP boost)
==C3/0D86 HP and MP boosts==
  C3/0D86: 7B      TDC
  C3/0D86: 7B      TDC
  C3/0D87: 4A      LSR A
  C3/0D87: 4A      LSR A
Line 1,813: Line 1,783:
  C3/0D8F: E220    SEP #$20      (8 bit memory/accum.)
  C3/0D8F: E220    SEP #$20      (8 bit memory/accum.)
  C3/0D91: 60      RTS
  C3/0D91: 60      RTS
 
==C3/0D92 trim HP if HP above 9999==
If you somehow got more than 9999 HP, trim display to 9999
  C3/0D92: A6F3    LDX $F3
  C3/0D92: A6F3    LDX $F3
  C3/0D94: E01027  CPX #$2710
  C3/0D94: E01027  CPX #$2710
Line 1,821: Line 1,790:
  C3/0D9C: 86F3    STX $F3
  C3/0D9C: 86F3    STX $F3
  C3/0D9E: 60      RTS
  C3/0D9E: 60      RTS
 
==C3/0D9F trim MP if MP above 999== 
If you somehow got more than 999 MP, trim display to 999
  C3/0D9F: A6F3    LDX $F3
  C3/0D9F: A6F3    LDX $F3
  C3/0DA1: E0E803  CPX #$03E8
  C3/0DA1: E0E803  CPX #$03E8
Line 1,829: Line 1,797:
  C3/0DA9: 86F3    STX $F3
  C3/0DA9: 86F3    STX $F3
  C3/0DAB: 60      RTS
  C3/0DAB: 60      RTS
 
==C3/0DAC unknow== 
  C3/0DAC: AC2F02  LDY $022F
  C3/0DAC: AC2F02  LDY $022F
  C3/0DAF: 844F    STY $4F
  C3/0DAF: 844F    STY $4F
Line 1,836: Line 1,804:
  C3/0DB5: AD3102  LDA $0231
  C3/0DB5: AD3102  LDA $0231
  C3/0DB8: 8064    BRA $0E1E
  C3/0DB8: 8064    BRA $0E1E
==C3/0DBA unknow==
  C3/0DBA: 7B      TDC
  C3/0DBA: 7B      TDC
  C3/0DBB: A54B    LDA $4B
  C3/0DBB: A54B    LDA $4B
Line 1,870: Line 1,838:
  C3/0DFB: 994602  STA $0246,Y
  C3/0DFB: 994602  STA $0246,Y
  C3/0DFE: 60      RTS
  C3/0DFE: 60      RTS
 
==C3/0DFF unknow==
  C3/0DFF: 7B      TDC
  C3/0DFF: 7B      TDC
  C3/0E00: A528    LDA $28
  C3/0E00: A528    LDA $28
Line 1,878: Line 1,846:
  C3/0E07: 844D    STY $4D
  C3/0E07: 844D    STY $4D
  C3/0E09: 60      RTS
  C3/0E09: 60      RTS
 
==C3/0E0A unknow==
  C3/0E0A: 7B      TDC
  C3/0E0A: 7B      TDC
  C3/0E0B: A528    LDA $28
  C3/0E0B: A528    LDA $28
Line 1,896: Line 1,864:
  C3/0E25: 854E    STA $4E
  C3/0E25: 854E    STA $4E
  C3/0E27: 60      RTS
  C3/0E27: 60      RTS
 
==C3/0E28 unknow==
  C3/0E28: A00000  LDY #$0000    (LDY $00..., from C3/1890, C3/319F, C3/3941, C3/448A, C3/4CCC, C3/5D7A, C3/674C, C3/755C, C3/7E01, C3/8F10, C3/90E1, C3/AB43, C3/AD68, C3/AE8A, C3/AE90, C3/B930)
  C3/0E28: A00000  LDY #$0000     
  C3/0E2B: 8C1621  STY $2116
  C3/0E2B: 8C1621  STY $2116
  C3/0E2E: A04938  LDY #$3849
  C3/0E2E: A04938  LDY #$3849
  C3/0E31: 8C0243  STY $4302      (set address, 7E/3849)
  C3/0E31: 8C0243  STY $4302      (set address, 7E/3849)
  C3/0E34: 8052    BRA $0E88      (BRA $0E85...)
  C3/0E34: 8052    BRA $0E88      (BRA $0E85...)
  C3/0E36: A00004  LDY #$0400    (from C3/674F, C3/7E04, C3/8F13, C3/90E4, C3/AB46, C3/AD6B)
  C3/0E36: A00004  LDY #$0400    (from C3/674F, C3/7E04, C3/8F13, C3/90E4, C3/AB46, C3/AD6B)
  C3/0E39: 8C1621  STY $2116
  C3/0E39: 8C1621  STY $2116
Line 1,907: Line 1,876:
  C3/0E3F: 8C0243  STY $4302      (set address, 7E/4049)
  C3/0E3F: 8C0243  STY $4302      (set address, 7E/4049)
  C3/0E42: 8044    BRA $0E88      (BRA $0E85...)
  C3/0E42: 8044    BRA $0E88      (BRA $0E85...)
  C3/0E44: A00008  LDY #$0800    (from C3/6752, C3/B933)
  C3/0E44: A00008  LDY #$0800    (from C3/6752, C3/B933)
  C3/0E47: 8C1621  STY $2116
  C3/0E47: 8C1621  STY $2116
Line 1,912: Line 1,882:
  C3/0E4D: 8C0243  STY $4302      (set address, 7E/4849)
  C3/0E4D: 8C0243  STY $4302      (set address, 7E/4849)
  C3/0E50: 8036    BRA $0E88      (BRA $0E85...)
  C3/0E50: 8036    BRA $0E88      (BRA $0E85...)
  C3/0E52: A00010  LDY #$1000    (from C3/1893, C3/3181, C3/38B7, C3/4465, C3/46FB, C3/4CC6, C3/5827, C3/5D77, C3/6720, C3/7543, C3/7DCC, C3/8A23, C3/8EFB, C3/90D8, C3/AB1E, C3/AD44, C3/AE4B, C3/B927)
 
  C3/0E52: A00010  LDY #$1000     
  C3/0E55: 8C1621  STY $2116
  C3/0E55: 8C1621  STY $2116
  C3/0E58: A04958  LDY #$5849
  C3/0E58: A04958  LDY #$5849
  C3/0E5B: 8C0243  STY $4302      (set address, 7E/5849)
  C3/0E5B: 8C0243  STY $4302      (set address, 7E/5849)
  C3/0E5E: 8028    BRA $0E88      (BRA $0E85...)
  C3/0E5E: 8028    BRA $0E88      (BRA $0E85...)
  C3/0E60: A00018  LDY #$1800    (from C3/B92A)
  C3/0E60: A00018  LDY #$1800    (from C3/B92A)
  C3/0E63: 8C1621  STY $2116
  C3/0E63: 8C1621  STY $2116
Line 1,922: Line 1,894:
  C3/0E69: 8C0243  STY $4302      (set address, 7E/6849)
  C3/0E69: 8C0243  STY $4302      (set address, 7E/6849)
  C3/0E6C: 801A    BRA $0E88      (BRA $0E85...)
  C3/0E6C: 801A    BRA $0E88      (BRA $0E85...)
  C3/0E6E: A00040  LDY #$4000    (from C3/1896, C3/2D59, C3/31A2, C3/3944, C3/448D, C3/4714, C3/4D24, C3/5D7D, C3/6758, C3/7549, C3/7E07, C3/8F19, C3/9048, C3/9090, C3/910D, C3/AB24, C3/AD59, C3/AE70, C3/B948)
 
  C3/0E6E: A00040  LDY #$4000     
  C3/0E71: 8C1621  STY $2116
  C3/0E71: 8C1621  STY $2116
  C3/0E74: A04978  LDY #$7849
  C3/0E74: A04978  LDY #$7849
  C3/0E77: 8C0243  STY $4302      (set address, 7E/7849)
  C3/0E77: 8C0243  STY $4302      (set address, 7E/7849)
  C3/0E7A: 800C    BRA $0E88      (BRA $0E85...)
  C3/0E7A: 800C    BRA $0E88      (BRA $0E85...)
  C3/0E7C: A00048  LDY #$4800    (from C3/1899, C3/31A5, C3/5D80, C3/7E0A, C3/AD5C, C3/B94B)
  C3/0E7C: A00048  LDY #$4800    (from C3/1899, C3/31A5, C3/5D80, C3/7E0A, C3/AD5C, C3/B94B)
  C3/0E7F: 8C1621  STY $2116
  C3/0E7F: 8C1621  STY $2116
Line 1,942: Line 1,916:
  C3/0E9F: 8D0B42  STA $420B      (turn on channel 0 of DMA)
  C3/0E9F: 8D0B42  STA $420B      (turn on channel 0 of DMA)
  C3/0EA2: 60      RTS
  C3/0EA2: 60      RTS
==C3/0EA3 unknow==
  C3/0EA3: A5AE    LDA $AE
  C3/0EA3: A5AE    LDA $AE
  C3/0EA5: C921    CMP #$21
  C3/0EA5: C921    CMP #$21
Line 1,950: Line 1,924:
  C3/0EAD: 8F402100 STA $002140    (here if you can move and have moved, output sound and trigger no more sound)
  C3/0EAD: 8F402100 STA $002140    (here if you can move and have moved, output sound and trigger no more sound)
  C3/0EB1: 60      RTS
  C3/0EB1: 60      RTS
 
==C3/0EB2 click sound==
Makes a Click Sound
  C3/0EB2: A920    LDA #$20      (20 is the familiar "click" sound)
  C3/0EB2: A920    LDA #$20      (20 is the familiar "click" sound)
  C3/0EB4: 8F402100 STA $002140
  C3/0EB4: 8F402100 STA $002140
  C3/0EB8: 60      RTS
  C3/0EB8: 60      RTS
 
==C3/0EB9 healing sound==
Makes the Healing Sound
  C3/0EB9: A923    LDA #$23      (23 is the "heal" sound, like when you use a potion)
  C3/0EB9: A923    LDA #$23      (23 is the "heal" sound, like when you use a potion)
  C3/0EBB: 8F402100 STA $002140
  C3/0EBB: 8F402100 STA $002140
  C3/0EBF: 60      RTS
  C3/0EBF: 60      RTS
 
==C3/0EC0 buzzer sound==
  Makes the Buzzer Sound
  Makes the Buzzer Sound
  C3/0EC0: A922    LDA #$22      (22 is the "buzz" sound, as in "No, you can't do that")
  C3/0EC0: A922    LDA #$22      (22 is the "buzz" sound, as in "No, you can't do that")
  C3/0EC2: 8F402100 STA $002140
  C3/0EC2: 8F402100 STA $002140
  C3/0EC6: 60      RTS
  C3/0EC6: 60      RTS
==C3/0EC7 shift sound==
  Makes the Shift Sound
  Makes the Shift Sound
  C3/0EC7: A924    LDA #$24      (24 is the "shift" sound, deleting letters while naming a character)
  C3/0EC7: A924    LDA #$24      (24 is the "shift" sound, deleting letters while naming a character)
  C3/0EC9: 8F402100 STA $002140
  C3/0EC9: 8F402100 STA $002140
  C3/0ECD: 60      RTS
  C3/0ECD: 60      RTS
 
==C3/0ECE cha-ching sound==
  Makes the Cha-ching Sound (I'm guessing)
  Makes the Cha-ching Sound (I'm guessing)
  C3/0ECE: A9BF    LDA #$BF
  C3/0ECE: A9BF    LDA #$BF
Line 1,980: Line 1,952:
  C3/0EE0: 220400C5 JSL $C50004
  C3/0EE0: 220400C5 JSL $C50004
  C3/0EE4: 60      RTS
  C3/0EE4: 60      RTS
 
==C3/0EE5 true sound==
  Makes the "Trueeeeeeee" Sound
  Makes the "Trueeeeeeee" Sound
  C3/0EE5: A9C5    LDA #$C5
  C3/0EE5: A9C5    LDA #$C5
  C3/0EE7: 80E7    BRA $0ED0
  C3/0EE7: 80E7    BRA $0ED0
==C3/0EE9 unknow==
  C3/0EE9: A00000  LDY #$0000
  C3/0EE9: A00000  LDY #$0000
  C3/0EEC: 8414    STY $14
  C3/0EEC: 8414    STY $14
Line 1,994: Line 1,966:
  C3/0EFA: 8412    STY $12
  C3/0EFA: 8412    STY $12
  C3/0EFC: 60      RTS
  C3/0EFC: 60      RTS
 
==C3/0EFD unknow==
  C3/0EFD: A00000  LDY #$0000
  C3/0EFD: A00000  LDY #$0000
  C3/0F00: 8414    STY $14
  C3/0F00: 8414    STY $14
Line 2,004: Line 1,976:
  C3/0F0E: 8412    STY $12
  C3/0F0E: 8412    STY $12
  C3/0F10: 60      RTS
  C3/0F10: 60      RTS
 
==C3/0F11 unknow==
  C3/0F11: A00004  LDY #$0400
  C3/0F11: A00004  LDY #$0400
  C3/0F14: 8414    STY $14
  C3/0F14: 8414    STY $14
Line 2,014: Line 1,986:
  C3/0F22: 8412    STY $12
  C3/0F22: 8412    STY $12
  C3/0F24: 60      RTS
  C3/0F24: 60      RTS
 
==C3/0F25 unknow==
  C3/0F25: A00040  LDY #$4000
  C3/0F25: A00040  LDY #$4000
  C3/0F28: 8414    STY $14
  C3/0F28: 8414    STY $14
Line 2,024: Line 1,996:
  C3/0F36: 8412    STY $12
  C3/0F36: 8412    STY $12
  C3/0F38: 60      RTS
  C3/0F38: 60      RTS
 
==C3/0F39 unknow==
  C3/0F39: A00040  LDY #$4000
  C3/0F39: A00040  LDY #$4000
  C3/0F3C: 8414    STY $14
  C3/0F3C: 8414    STY $14
Line 2,034: Line 2,006:
  C3/0F4A: 8412    STY $12
  C3/0F4A: 8412    STY $12
  C3/0F4C: 60      RTS
  C3/0F4C: 60      RTS
 
==C3/0F4D unknow==
  C3/0F4D: A00044  LDY #$4400
  C3/0F4D: A00044  LDY #$4400
  C3/0F50: 8414    STY $14
  C3/0F50: 8414    STY $14
Line 2,044: Line 2,016:
  C3/0F5E: 8412    STY $12
  C3/0F5E: 8412    STY $12
  C3/0F60: 60      RTS
  C3/0F60: 60      RTS
 
==C3/0F61 unknow==
  C3/0F61: A00040  LDY #$4000
  C3/0F61: A00040  LDY #$4000
  C3/0F64: 841B    STY $1B
  C3/0F64: 841B    STY $1B
Line 2,054: Line 2,026:
  C3/0F72: 8419    STY $19
  C3/0F72: 8419    STY $19
  C3/0F74: 60      RTS
  C3/0F74: 60      RTS
 
==C3/0F75 unknow==
  C3/0F75: A00044  LDY #$4400
  C3/0F75: A00044  LDY #$4400
  C3/0F78: 841B    STY $1B
  C3/0F78: 841B    STY $1B
Line 2,064: Line 2,036:
  C3/0F86: 8419    STY $19
  C3/0F86: 8419    STY $19
  C3/0F88: 60      RTS
  C3/0F88: 60      RTS
 
==C3/0F89 unknow==
  C3/0F89: 641B    STZ $1B
  C3/0F89: 641B    STZ $1B
  C3/0F8B: 641C    STZ $1C
  C3/0F8B: 641C    STZ $1C
  C3/0F8D: 60      RTS
  C3/0F8D: 60      RTS
==C3/0F8E copy function==
  Copy a block of 32 bytes
  Copy a block of 32 bytes
  Coming in:
  Coming in:
Line 2,089: Line 2,061:
  C3/0FA7: E220    SEP #$20      (8 bit memory/accum.)
  C3/0FA7: E220    SEP #$20      (8 bit memory/accum.)
  C3/0FA9: 60      RTS
  C3/0FA9: 60      RTS
 
==C3/0FAA unknow==
  C3/0FAA: 48      PHA
  C3/0FAA: 48      PHA
  C3/0FAB: 84E7    STY $E7
  C3/0FAB: 84E7    STY $E7
Line 2,111: Line 2,083:
  C3/0FDA: E220    SEP #$20      (8 bit memory/accum.)
  C3/0FDA: E220    SEP #$20      (8 bit memory/accum.)
  C3/0FDC: 60      RTS
  C3/0FDC: 60      RTS
 
==C3/0FDD jump table==
  C3/0FDD: AA      TAX
  C3/0FDD: AA      TAX
  C3/0FDE: 7CE10F  JMP ($0FE1,X)
  C3/0FDE: 7CE10F  JMP ($0FE1,X)
Line 2,117: Line 2,089:
  C3/0FE1: E50F   
  C3/0FE1: E50F   
  C3/0FE3: F60F   
  C3/0FE3: F60F   
==C3/0FE5 unknow==
  C3/0FE5: A62D    LDX $2D
  C3/0FE5: A62D    LDX $2D
  C3/0FE7: A91F    LDA #$1F
  C3/0FE7: A91F    LDA #$1F

Revision as of 11:02, 24 December 2013

C3/0000 jump table

C3/0000:	4C1B00  	JMP $001B      (open main menu; from C0/C6F9, EE/03EB)
C3/0003:	4C45A4  	JMP $A445
C3/0006:	4C24A4  	JMP $A424      (timer resetting for input decoding; from C0/0053)
C3/0009:	4C7AA4  	JMP $A47A      (decode joypad status register 1; from C0/056D, EE/0139, EE/03A6, EE/04FF)
C3/000C:	4CC813  	JMP $13C8      (adjust in-game time; from C0/024F, EE/A51E, EE/A73D, EE/A966)
C3/000F:	4CFE14  	JMP $14FE      (from C0/C4F0)
C3/0012:	4C1CC5  	JMP $C51C      (event command BA; from C0/BA3C)
C3/0015:	4CD296  	JMP $96D2      (empties and fully equips a character; from C0/C6BC)
C3/0018:	4C7FD5  	JMP $D57F      (from EE/8ED8)

C3/001B main menu loop

C3/001B:	C210    	REP #$10      (16 bit index registers)
C3/001D:	E220    	SEP #$20      (8 bit memory/accum.)
C3/001F:	A900    	LDA #$00
C3/0021:	48      	PHA
C3/0022:	AB      	PLB            (make the data bank reg. hold #$00)
C3/0023:	A20000  	LDX #$0000
C3/0026:	DA      	PHX
C3/0027:	2B      	PLD            (make the direct page reg. hold #$0000)
C3/0028:	A20000  	LDX #$0000     (X still holds this)
C3/002B:	8600    	STX $00        ($00 should already hold this)
C3/002D:	A97E    	LDA #$7E
C3/002F:	8D8321  	STA $2183
C3/0032:	20C000  	JSR $00C0
C3/0035:	AD0002  	LDA $0200
C3/0038:	C902    	CMP #$02
C3/003A:	D003    	BNE $003F
C3/003C:	209B70  	JSR $709B      (set defaults for a new game)
C3/003F:	20F800  	JSR $00F8
C3/0042:	20DD00  	JSR $00DD      (based on $0200's value, jump to different spots in the menu)
C3/0045:	2224A4C3	JSL $C3A424    (timer resetting for input decoding)
C3/0049:	A98F    	LDA #$8F
C3/004B:	8D0021  	STA $2100
C3/004E:	9C0042  	STZ $4200      (turn off NMI, auto joypad read, etc)
C3/0051:	9C0B42  	STZ $420B      (turn off DMA)
C3/0054:	9C0C42  	STZ $420C      (turn off HDMA)
C3/0057:	AD0002  	LDA $0200
C3/005A:	C902    	CMP #$02
C3/005C:	D011    	BNE $006F
C3/005E:	AD0502  	LDA $0205
C3/0061:	100C    	BPL $006F
C3/0063:	AD4E1D  	LDA $1D4E
C3/0066:	2920    	AND #$20
C3/0068:	F005    	BEQ $006F      (Branch if stereo set)
C3/006A:	A9FF    	LDA #$FF
C3/006C:	203F3E  	JSR $3E3F
C3/006F:	AD0002  	LDA $0200
C3/0072:	D04B    	BNE $00BF
C3/0074:	AD0502  	LDA $0205
C3/0077:	1046    	BPL $00BF      (branch if we are exiting out of the main menu?)
C3/0079:	C9FE    	CMP #$FE
C3/007B:	D021    	BNE $009E
C3/007D:	A901    	LDA #$01
C3/007F:	8D0002  	STA $0200
C3/0082:	AD0102  	LDA $0201
C3/0085:	8D0F02  	STA $020F
C3/0088:	AC0602  	LDY $0206
C3/008B:	8C0102  	STY $0201
C3/008E:	220000C3	JSL $C30000    this makes it a recursive call
C3/0092:	AD0F02  	LDA $020F
C3/0095:	8D0102  	STA $0201
C3/0098:	9C0002  	STZ $0200
C3/009B:	4C1B00  	JMP $001B

C3/009E unknow

C3/009E:	A906    	LDA #$06
C3/00A0:	8D0002  	STA $0200      (BRA $007F...)
C3/00A3:	AD0102  	LDA $0201
C3/00A6:	8D0F02  	STA $020F
C3/00A9:	AD0602  	LDA $0206
C3/00AC:	8D0102  	STA $0201
C3/00AF:	220000C3	JSL $C30000
C3/00B3:	AD0F02  	LDA $020F
C3/00B6:	8D0102  	STA $0201
C3/00B9:	9C0002  	STZ $0200
C3/00BC:	4C1B00  	JMP $001B
C3/00BF:	6B      	RTL

C3/00C0 unknow

C3/00C0:	A95C    	LDA #$5C
C3/00C2:	8D0015  	STA $1500
C3/00C5:	8D0415  	STA $1504      (set instruction to JML)
C3/00C8:	A28713  	LDX #$1387
C3/00CB:	8E0115  	STX $1501      (set NMI to C3/1387)
C3/00CE:	A2C713  	LDX #$13C7
C3/00D1:	8E0515  	STX $1505      (set IRQ to C3/13C7)
C3/00D4:	A9C3    	LDA #$C3
C3/00D6:	8D0315  	STA $1503
C3/00D9:	8D0715  	STA $1507
C3/00DC:	60      	RTS

C3/00E6 unknow

C3/00DD:	7B      	TDC
C3/00DE:	AD0002  	LDA $0200
C3/00E1:	0A      	ASL A
C3/00E2:	AA      	TAX
C3/00E3:	7CE600  	JMP ($00E6,X)

C3/00E6 pointers: related to event commands calls

C3/00E6:	1A01    	(pressed X/menu, initiate the menu)
C3/00E8:	B301    	(used a Rename Card, or event command $98)
C3/00EA:	6F01    	(calling the loading screen)
C3/00EC:	2101    	(invoke a shop)
C3/00EE:	2B01    	(party selection screen with number of groups)
C3/00F0:	3D01    	
C3/00F2:	4901    	
C3/00F4:	5201    	(colliseum item selection)
C3/00F6:	6601    	(party select screen for final battle sequence)

C3/00F8 unknow

C3/00F8:	20FA68  	JSR $68FA
C3/00FB:	201569  	JSR $6915
C3/00FE:	20A969  	JSR $69A9
C3/0101:	2248CDD4	JSL $D4CD48
C3/0105:	2224A4C3	JSL $C3A424    (timer resetting for input decoding)
C3/0109:	7B      	TDC
C3/010A:	221DCAD4	JSL $D4CA1D    (do gradient 0 for the screen)
C3/010E:	20DC69  	JSR $69DC
C3/0111:	201411  	JSR $1114      (erase all onscreen sprites)
C3/0114:	20876A  	JSR $6A87      (load font and menu graphics)
C3/0117:	4C873A  	JMP $3A87

C3/011A init main menu

$0200 is #$00, initiate the main menu
C3/011A:	A904    	LDA #$04
C3/011C:	8526    	STA $26        (execute at C3/1A8A)
C3/011E:	4CBA01  	JMP $01BA	(could use BRL instead)

C3/0121 invoke shop

$0200 is #$03, invoke a shop
C3/0121:	20993F  	JSR $3F99
C3/0124:	A924    	LDA #$24
C3/0126:	8526    	STA $26        (execute at C3/B466)
C3/0128:	4CBA01  	JMP $01BA	(could use BRL instead)

C3/012B invoke party selection

$0200 is #$04, invoke party selection screen with number of groups
C3/012B:	20993F  	JSR $3F99
C3/012E:	203801  	JSR $0138
C3/0131:	A92C    	LDA #$2C
C3/0133:	8526    	STA $26        (execute at C3/70E7)
C3/0135:	4CBA01  	JMP $01BA	(could use BRL instead)

C3/0138:	7B      	TDC
C3/0139:	A8      	TAY
C3/013A:	848E    	STY $8E
C3/013C:	60      	RTS

C3/013D unknow

$0200 is #$05
C3/013D:	20993F  	JSR $3F99
C3/0140:	203801  	JSR $0138
C3/0143:	A92F    	LDA #$2F
C3/0145:	8526    	STA $26        (execute at C3/7AE5)
C3/0147:	8071    	BRA $01BA

C3/0149 unknow

$0200 is #$06
C3/0149:	20993F  	JSR $3F99
C3/014C:	A93F    	LDA #$3F
C3/014E:	8526    	STA $26        (execute at C3/B437)
C3/0150:	8068    	BRA $01BA

C3/0152 invoke Colosseum

$0200 is #$07, invoke colliseum item selection screen
C3/0152:	20993F  	JSR $3F99
C3/0155:	6479    	STZ $79
C3/0157:	647A    	STZ $7A
C3/0159:	647B    	STZ $7B
C3/015B:	A9FF    	LDA #$FF
C3/015D:	8D0502  	STA $0205      (set item bet to nothing)
C3/0160:	A971    	LDA #$71
C3/0162:	8526    	STA $26        (execute at C3/ACAA)
C3/0164:	8054    	BRA $01BA

C3/0166 invoke party selection for final battle

$0200 is #$08, invoke party select screen for the final battle
C3/0166:	20993F  	JSR $3F99
C3/0169:	A973    	LDA #$73
C3/016B:	8526    	STA $26        (execute at C3/A9F8, init final battle setup screen)
C3/016D:	804B    	BRA $01BA

C3/016F unknow

$0200 is #$02, used when the loading screen is called
C3/016F:	AFF17F30	LDA $307FF1
C3/0173:	1A      	INC A
C3/0174:	8FF17F30	STA $307FF1
C3/0178:	2224A4C3	JSL $C3A424    (timer resetting for input decoding)
C3/017C:	202370  	JSR $7023      (make sure SRAM markers are intact)
C3/017F:	901E    	BCC $019F      (branch if not, which forces a new game)
C3/0181:	A901    	LDA #$01
C3/0183:	8D0113  	STA $1301      (set song as the Prelude)
C3/0186:	A910    	LDA #$10
C3/0188:	8D0013  	STA $1300
C3/018B:	A980    	LDA #$80
C3/018D:	8D0213  	STA $1302      (normal volume)
C3/0190:	220400C5	JSL $C50004    (play the Prelude)
C3/0194:	A9FF    	LDA #$FF
C3/0196:	8D0502  	STA $0205
C3/0199:	A920    	LDA #$20
C3/019B:	8526    	STA $26        (execute at C3/1D03)
C3/019D:	801B    	BRA $01BA

C3/019F:	20212A  	JSR $2A21
C3/01A2:	A901    	LDA #$01
C3/01A4:	8D2402  	STA $0224
C3/01A7:	9C1F02  	STZ $021F
C3/01AA:	A9FF    	LDA #$FF
C3/01AC:	8526    	STA $26        (exit the menu)
C3/01AE:	9C0502  	STZ $0205
C3/01B1:	8007    	BRA $01BA

C3/01B3 rename card code

$0200 is #$01, used a Rename Card or event command $98
C3/01B3:	20993F  	JSR $3F99
C3/01B6:	A95D    	LDA #$5D
C3/01B8:	8526    	STA $26        (execute at C3/652D)

C3/01BA menu loop code

The menu loop code. Execute code based on the value of $26
C3/01BA:	201214  	JSR $1412      (from C3/011E, C3/0128, C3/0135)
C3/01BD:	7B      	TDC
C3/01BE:	A526    	LDA $26
C3/01C0:	C9FF    	CMP #$FF
C3/01C2:	F014    	BEQ $01D8
C3/01C4:	C220    	REP #$20       (16 bit memory/accum.)
C3/01C6:	0A      	ASL A
C3/01C7:	AA      	TAX
C3/01C8:	E220    	SEP #$20       (8 bit memory/accum.)
C3/01CA:	FCDB01  	JSR ($01DB,X)
C3/01CD:	20B011  	JSR $11B0      (execute everything in the OAM queue)
C3/01D0:	204D13  	JSR $134D
C3/01D3:	20DB02  	JSR $02DB      (determine if we should exit the menu)
C3/01D6:	80E5    	BRA $01BD
C3/01D8:	6443    	STZ $43        (eventually disable all 8 channels of HDMA)
C3/01DA:	60      	RTS

C3/01DB pointers: menu system

$26's jump table. The entire backbone of the menu system is here.
C3/01DB:	711D    	(#$00, fade out)
C3/01DD:	7E1D    	(#$01, most, if not all screens call this as a transition to the next screen)
C3/01DF:	8B1D    	(#$02, both #$00 and #$01 call this to finish transition, then $27 is transfered to $26)
C3/01E1:	941D    	(#$03, )
C3/01E3:	8A1A      	(#$04, initiate the main menu)
C3/01E5:	A41D    	(#$05, sustain the main menu)
C3/01E7:	E81D    	(#$06, selecting one character in the main menu)
C3/01E9:	D61A    	(#$07, inititate the item menu)
C3/01EB:	F71E    	(#$08, sustain the item menu)
C3/01ED:	5B1B    	(#$09, initiate the skills menu)
C3/01EF:	F41F    	(#$0A, sustain the skills menu)
C3/01F1:	461C    	(#$0B, initiate the status screen)
C3/01F3:	F521    	(#$0C, sustain the status screen)
C3/01F5:	7D1C    	(#$0D, initiate the config screen)
C3/01F7:	C522    	(#$0E, sustain the config screen)
C3/01F9:	0C24    	(#$0F, browsing the order menu)
C3/01FB:	5324    	(#$10, a character is selected in the order menu)
C3/01FD:	A924    	(#$11, switching characters in the order menu)
C3/01FF:	3725    	(#$12, changing a character's row)
C3/0201:	A01C    	(#$13, initiate the save screen)
C3/0203:	4025    	(#$14, sustain the save screen)
C3/0205:	E31C    	(#$15, inititate the "Erasing data. Okay?" menu)
C3/0207:	9D25    	(#$16, sustain the "Erasing data. Okay?" menu)
C3/0209:	F425    	(#$17, "USE  ARRANGE  RARE")
C3/020B:	4127    	(#$18, the rare item menu)
C3/020D:	7927    	(#$19, an item is selected in the item menu)
C3/020F:	E227    	(#$1A, handle the preloading for Magic descriptions)
C3/0211:	8A28    	(#$1B, handle the preloading for Lore descriptions)
C3/0213:	AA28    	(#$1C, the Dance menu)
C3/0215:	BA28    	(#$1D, the Rage menu)
C3/0217:	D328    	(#$1E, the Espers menu)
C3/0219:	9D25    	(#$1F, )
C3/021B:	031D    	(#$20, initiate the SRAM load screen)
C3/021D:	C229    	(#$21, sustain the SRAM load screen)
C3/021F:	511D    	(#$22, initiate the "This data?" screen)
C3/0221:	2A2A    	(#$23, sustain the "This data?" screen)
C3/0223:	66B4    	(#$24, initiate the shop menu)
C3/0225:	9BB4    	(#$25, sustain the shop menu)
C3/0227:	BDB4    	(#$26, the buy menu)
C3/0229:	05B5    	(#$27, deciding how many items to buy)
C3/022B:	0EB6    	(#$28, bought an item, or can't buy any more)
C3/022D:	16B6    	(#$29, the sell menu)
C3/022F:	76B6    	(#$2A, deciding how many items to sell)
C3/0231:	52B7    	(#$2B, sold an item)
C3/0233:	E770    	(#$2C, initiate the party selection screen)
C3/0235:	6871    	(#$2D, sustain the party selection screen)
C3/0237:	0C72    	(#$2E, selecting a character in the party selection screen)
C3/0239:	E57A    	(#$2F, )
C3/023B:	257B    	(#$30, )
C3/023D:	257B    	(#$31, )
C3/023F:	257B    	(#$32, )
C3/0241:	7729    	(#$33, handle the preloading for Blitz descriptions)
C3/0243:	3A29    	(#$34, ??? selected an Esper that is equipped by someone else)
C3/0245:	B81B    	(#$35, initiate the equip menu)
C3/0247:	2196    	(#$36, sustain the equip menu)
C3/0249:	B51E    	(#$37, selecting all characters in the main menu)
C3/024B:	321C    	(#$38, initiate the screen that displays the equipment of all members)
C3/024D:	6629    	(#$39, sustain the screen that displays the equipment of all members)
C3/024F:	652A    	(#$3A, initiate the screen where you decide whom to use a spell on)
C3/0251:	AE2A    	(#$3B, sustain the screen where you decide whom to use a spell on)
C3/0253:	1C2D    	(#$3C, returning to the magic list)
C3/0255:	782D    	(#$3D, selecting all characters with a spell)
C3/0257:	8E29    	(#$3E, handle the preloading for SwdTech descriptions)
C3/0259:	37B4    	(#$3F, initiate the SwdTech naming screen (unused in SNES version))
C3/025B:	37B4    	(#$40, sustain the SwdTech naming screen (unused in SNES version))
C3/025D:	37B4    	(#$41, browsing the list of characters for the SwdTech naming screen (unused in SNES version))
C3/025F:	1D63    	(#$42, initiate the status screen for the party selection screen)
C3/0261:	3F63    	(#$43, sustain the status screen for the party selection screen)
C3/0263:	1C7D    	(#$44, )
C3/0265:	1C7D    	(#$45, )
C3/0267:	1C7D    	(#$46, )
C3/0269:	C242    	(#$47, initiate the Arrange screen)
C3/026B:	DF42    	(#$48, sustain the Arrange screen)
C3/026D:	AD46    	(#$49, initiate the button menu (unused in SNES version))
C3/026F:	AD46    	(#$4A, sustain the button menu (unused in SNES version))
C3/0271:	AD46    	(#$4B, initiate the Controller menu)
C3/0273:	CA46    	(#$4C, sustain the Controller menu)
C3/0275:	CE58    	(#$4D, viewing an Esper's specifics)
C3/0277:	37B4    	(#$4E, move to the second window of the SwdTech naming screen (unused in SNES version))
C3/0279:	37B4    	(#$4F, move to the first window of the SwdTech naming screen (unused in SNES version))
C3/027B:	003A    	(#$50, move to the second window of the config menu)
C3/027D:	213A    	(#$51, move to the first window of the config menu)
C3/027F:	0A1A    	(#$52, )
C3/0281:	FB19    	(#$53, )
C3/0283:	191A    	(#$54, ??? exiting the save menu)
C3/0285:	8498    	(#$55, selecting a body slot to fill)
C3/0287:	CF98    	(#$56, selecting a body slot to empty)
C3/0289:	0F99    	(#$57, selecting an item to put in body slot)
C3/028B:	4B9E    	(#$58, initiate the relic menu)
C3/028D:	B89E    	(#$59, "EQUIP  REMOVE" in the relic menu)
C3/028F:	FD9F    	(#$5A, selecting a relic slot to fill)
C3/0291:	97A0    	(#$5B, selecting an item to put in relic slot)
C3/0293:	0AA1    	(#$5C, selecting a relic slot to empty)
C3/0295:	2D65    	(#$5D, initiate the character naming screen)
C3/0297:	E689    	(#$5E, viewing an item's statistics)
C3/0299:	6C65    	(#$5F, sustain the character naming screen)
C3/029B:	E865    	(#$60, move to the second window of the character naming screen (unused in SNES version))
C3/029D:	E865    	(#$61, move to the first window of the character naming screen down (unused in SNES version))
C3/029F:	3843    	(#$62, browsing the "Arrange" screen)	
C3/02A1:	7643    	(#$63, selecting a command in the "Arrange" screen)
C3/02A3:	8389    	(#$64, viewing an item's specifics)
C3/02A5:	E736    	(#$65, shift the screen)
C3/02A7:	FF79    	(#$66, )
C3/02A9:	F079    	(#$67, )
C3/02AB:	0E7A    	(#$68, ??? related to party selection screen)
C3/02AD:	877A    	(#$69, ??? cannot exit party selection screen)
C3/02AF:	A763    	(#$6A, browsing the command list in Gogo's status screen)
C3/02B1:	B422    	(#$6B, )
C3/02B3:	B19F    	(#$6C, notifications that modifications to relics have affected equipment)
C3/02B5:	1A1C    	(#$6D, automatically opening equip menu after changing relics)
C3/02B7:	261C    	(#$6E, removing all equipment, called only when relics alter equipment)
C3/02B9:	848A    	(#$6F, initiate the menu where you decide whom to use an item on)
C3/02BB:	968A    	(#$70, sustain the menu where you decide whom to use an item on)
C3/02BD:	AAAC    	(#$71, initiate the main colosseum menu)
C3/02BF:	DCAC    	(#$72, sustain the main colosseum menu)
C3/02C1:	F8A9    	(#$73, initiate screen for determining party order for final battle)
C3/02C3:	25AA    	(#$74, sustain screen for determining party order for final battle)
C3/02C5:	B7AD    	(#$75, initiate the colosseum matchup screen)
C3/02C7:	0FAE    	(#$76, sustain the colosseum matchup screen)
C3/02C9:	351B    	(#$77, returning to the item list)
C3/02CB:	8AAD    	(#$78, jumps to data, dummy?)
C3/02CC:	7D9E    	(#$79, switching characters while selecting a relic slot to fill)
C3/02CF:	8B9E    	(#$7A, switching characters while selecting a relic slot to empty)
C3/02D1:	0000    	(#$7B, a dummied entry)
C3/02D3:	0000    	(#$7C, a dummied entry)
C3/02D5:	3171    	(#$7D, returning to party selection screen from status screen)
C3/02D7:	E51B    	(#$7E, switching characters in the equip menu while selecting a body slot to fill)
C3/02D9:	F31B    	(#$7F, switching characters in the equip menu while selecting a body slot to empty)

C3/02DB unknow

C3/02DB:	A5B4    	LDA $B4
C3/02DD:	D019    	BNE $02F8
C3/02DF:	AD8811  	LDA $1188
C3/02E2:	8920    	BIT #$20
C3/02E4:	F012    	BEQ $02F8
C3/02E6:	AC8911  	LDY $1189
C3/02E9:	D00D    	BNE $02F8
C3/02EB:	A9FF    	LDA #$FF
C3/02ED:	8527    	STA $27        (exit the menu)
C3/02EF:	6426    	STZ $26        (fade out, transition to above)
C3/02F1:	A905    	LDA #$05
C3/02F3:	8D0502  	STA $0205
C3/02F6:	85B4    	STA $B4
C3/02F8:	60      	RTS

C3/7FD9 main text drawing

Coming in:
16 bit Y holds location in rom
C3/7FD9 calls this after writes to $2180, but jumps to C3/02FF because of bad planning
C3/02F9:	84E7    	STY $E7
C3/02FB:	A9C3    	LDA #$C3
C3/02FD:	85E9    	STA $E9        (C3/xxxx holds the string)
C3/02FF:	A600    	LDX $00
C3/0301:	9B      	TXY
C3/0302:	C220    	REP #$20      (16 bit memory/accum.)
C3/0304:	A7E7    	LDA [$E7]      (get the position, determine which BG layer it will go on)
C3/0306:	85EB    	STA $EB        (save it)
C3/0308:	E6E7    	INC $E7
C3/030A:	E6E7    	INC $E7        (increment twice, now get the string)
C3/030C:	E220    	SEP #$20      (8 bit memory/accum.)
C3/030E:	A97E    	LDA #$7E
C3/0310:	85ED    	STA $ED
C3/0312:	B7E7    	LDA [$E7],Y    (load letter)
C3/0314:	F00F    	BEQ $0325      (branch if null terminator)
C3/0316:	5A      	PHY            (save our current position)
C3/0317:	9B      	TXY            (get position for tilemap)
C3/0318:	97EB    	STA [$EB],Y    (save it there)
C3/031A:	E8      	INX
C3/031B:	9B      	TXY            (INY?)
C3/031C:	A529    	LDA $29        (load text color)
C3/031E:	97EB    	STA [$EB],Y    (save it)
C3/0320:	E8      	INX            (increment tilemap position again)
C3/0321:	7A      	PLY            (get our current string position)
C3/0322:	C8      	INY            (...and add 1)
C3/0323:	80ED    	BRA $0312      (loop and keep grabbing letters)
C3/0325:	60      	RTS

C3/0326 unknow

((Deleted function C3/0326 from FF6j goes here))
C3/0326:	84E7    	STY $E7        (from C3/171A, C3/3A9E, C3/3ABA, C3/3AD6, C3/3AF2)
C3/0328:	A600    	LDX $00
C3/032A:	C220    	REP #$20      (16 bit memory/accum.)
C3/032C:	BF4E04C3	LDA $C3044E,X
C3/0330:	18      	CLC
C3/0331:	65E7    	ADC $E7
C3/0333:	9F199F7E	STA $7E9F19,X
C3/0337:	E8      	INX
C3/0338:	E8      	INX
C3/0339:	E03800  	CPX #$0038
C3/033C:	D0EE    	BNE $032C
C3/033E:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0340:	60      	RTS

C3/0341 draw a window

Draw a window, 4 sides. 16-bit Y holds the location in C3 of where
the window data is. The first two bytes are the starting location
onscreen of where to draw the window. The third byte is the width,
and the fourth byte is the height.
C3/0341:	A9C3    	LDA #$C3       (from many places, all in C3)
C3/0343:	85E9    	STA $E9
C3/0345:	84E7    	STY $E7        (window data is at C3/xxxx)
C3/0347:	A600    	LDX $00
C3/0349:	9B      	TXY
C3/034A:	C220    	REP #$20      (16 bit memory/accum.)
C3/034C:	B7E7    	LDA [$E7],Y    (get position for tilemap)
C3/034E:	85EB    	STA $EB        (save it)
C3/0350:	C8      	INY
C3/0351:	C8      	INY
C3/0352:	B7E7    	LDA [$E7],Y    (get horizontal and vertical sizes)
C3/0354:	85E0    	STA $E0        (save vertical size)
C3/0356:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0358:	85E2    	STA $E2        (save horizontal size)
C3/035A:	A97E    	LDA #$7E
C3/035C:	85ED    	STA $ED
C3/035E:	A600    	LDX $00        (clear X)
C3/0360:	9B      	TXY            (and clear Y)
C3/0361:	E210    	SEP #$10      (8 bit index registers)
C3/0363:	A6E0    	LDX $E0        (get vertical size)
C3/0365:	A4E1    	LDY $E1        (this should be holding the horizontal size)
C3/0367:	C210    	REP #$10      (16 bit index registers)
C3/0369:	86EF    	STX $EF
C3/036B:	84F1    	STY $F1
C3/036D:	C220    	REP #$20      (16 bit memory/accum.)
C3/036F:	207503  	JSR $0375
C3/0372:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0374:	60      	RTS

C3/0375 unknow

C3/0375:	20A303  	JSR $03A3
C3/0378:	A600    	LDX $00
C3/037A:	A04000  	LDY #$0040
C3/037D:	84F3    	STY $F3
C3/037F:	DA      	PHX
C3/0380:	8A      	TXA
C3/0381:	290300    	AND #$0003
C3/0384:	0A      	ASL A
C3/0385:	AA      	TAX
C3/0386:	FC9B03  	JSR ($039B,X)
C3/0389:	A5F3    	LDA $F3
C3/038B:	18      	CLC
C3/038C:	694000    	ADC #$0040
C3/038E:	85F3    	STA $F3
C3/0390:	A8      	TAY
C3/0392:	FA      	PLX
C3/0393:	E8      	INX
C3/0394:	E4F1    	CPX $F1
C3/0396:	D0E7    	BNE $037F
C3/0398:	4CBB03  	JMP $03BB

C3/039B pointers

C3/039B:	D103
C3/039D:	DB03
C3/039F:	E803
C3/03A1:	F503

C3/03A3 unknow

C3/03A3:	A400    	LDY $00
C3/03A5:	200804  	JSR $0408
C3/03A8:	AF499F7E	LDA $7E9F49
C3/03AC:	85E3    	STA $E3
C3/03AE:	AF4B9F7E	LDA $7E9F4B
C3/03B2:	85E5    	STA $E5
C3/03B4:	A22000  	LDX #$0020
C3/03B7:	86E0    	STX $E0
C3/03B9:	806D    	BRA $0428

C3/03BB unknow

C3/03BB:	200804  	JSR $0408
C3/03BE:	AF4D9F7E	LDA $7E9F4D
C3/03C2:	85E3    	STA $E3
C3/03C4:	AF4F9F7E	LDA $7E9F4F
C3/03C8:	85E5    	STA $E5
C3/03CA:	A22400  	LDX #$0024
C3/03CD:	86E0    	STX $E0
C3/03CF:	8057    	BRA $0428

C3/03D1 unknow

C3/03D1:	200204  	JSR $0402      (from C3/039B)
C3/03D4:	200E04  	JSR $040E
C3/03D7:	64E0    	STZ $E0
C3/03D9:	804D    	BRA $0428

C3/03DB unknow

C3/03DB:	200204  	JSR $0402      (from C3/039D)
C3/03DE:	201B04  	JSR $041B
C3/03E1:	A20800  	LDX #$0008
C3/03E4:	86E0    	STX $E0
C3/03E6:	8040    	BRA $0428

C3/03E8 unknow

C3/03E8:	200204  	JSR $0402      (from C3/039F)
C3/03EB:	200E04  	JSR $040E
C3/03EE:	A21000  	LDX #$0010
C3/03F1:	86E0    	STX $E0
C3/03F3:	8033    	BRA $0428

C3/03F5 unknow

C3/03F5:	200204  	JSR $0402      (from C3/03A1)
C3/03F8:	201B04  	JSR $041B
C3/03FB:	A21800  	LDX #$0018
C3/03FE:	86E0    	STX $E0
C3/0400:	8026    	BRA $0428

C3/0402 unknow

C3/0402:	A20300  	LDX #$0003
C3/0405:	86F5    	STX $F5
C3/0407:	60      	RTS

C3/0408 unknow

C3/0408:	A20100  	LDX #$0001     (from C3/03A5, C3/03BB)
C3/040B:	86F5    	STX $F5
C3/040D:	60      	RTS

C3/040E unknow

C3/040E:	AF419F7E	LDA $7E9F41    (from C3/03D4, C3/03EB)
C3/0412:	85E3    	STA $E3
C3/0414:	AF439F7E	LDA $7E9F43
C3/0418:	85E5    	STA $E5
C3/041A:	60      	RTS

C3/041B unknow

C3/041B:	AF459F7E	LDA $7E9F45    (from C3/03DE, C3/03F8)
C3/041F:	85E3    	STA $E3
C3/0421:	AF479F7E	LDA $7E9F47
C3/0425:	85E5    	STA $E5
C3/0427:	60      	RTS

C3/0428 unknow

C3/0428:	A600    	LDX $00        (from C3/03B9, C3/03CF, C3/03D9, C3/03E6, C3/03F3, C3/0400)
C3/042A:	A5E3    	LDA $E3
C3/042C:	97EB    	STA [$EB],Y
C3/042E:	C8      	INY
C3/042F:	C8      	INY
C3/0430:	DA      	PHX
C3/0431:	8A      	TXA
C3/0432:	25F5    	AND $F5
C3/0434:	0A      	ASL A
C3/0435:	18      	CLC
C3/0436:	65E0    	ADC $E0
C3/0438:	AA      	TAX
C3/0439:	BF199F7E	LDA $7E9F19,X
C3/043D:	FA      	PLX
C3/043E:	E4EF    	CPX $EF
C3/0440:	F007    	BEQ $0449
C3/0442:	97EB    	STA [$EB],Y
C3/0444:	C8      	INY
C3/0445:	C8      	INY
C3/0446:	E8      	INX
C3/0447:	80E7    	BRA $0430
C3/0449:	A5E5    	LDA $E5
C3/044B:	97EB    	STA [$EB],Y
C3/044D:	60      	RTS

C3/044E data

C3/044E:	8001
C3/0450:	8101
C3/0452:	8201
C3/0454:	8301
C3/0456:	8401
C3/0458:	8501
C3/045A:	8601
C3/045C:	8701
C3/045E:	8801
C3/0460:	8901
C3/0462:	8A01
C3/0464:	8B01
C3/0466:	8C01
C3/0468:	8D01
C3/046A:	8E01
C3/046C:	8F01
C3/046E:	9101
C3/0470:	9201
C3/0472:	9901
C3/0474:	9A01
C3/0476:	9401
C3/0478:	9501
C3/047A:	9601
C3/047C:	9701
C3/047E:	9001
C3/0480:	9301
C3/0482:	9801
C3/0484:	9B01

C3/0486 buffer-clipping functions

Following are several buffer-clipping functions.  
I believe they basically print from the first position 
to the second one.
C3/0486:	A00500    	LDY #$0005     (maximum of 5 digits)
C3/0489:	84E0    	STY $E0
C3/048B:	A00200  	LDY #$0002     (5 - 2 = 3 digits to display)
C3/048E:	8037    	BRA $04C7

C3/0490:	A00500  	LDY #$0005     (maximum of 5 digits)
C3/0493:	84E0    	STY $E0
C3/0495:	A00100  	LDY #$0001     (5 - 1 = 4 digits to display)
C3/0498:	802D    	BRA $04C7

C3/049A:	A00500  	LDY #$0005     (maximum of 5 digits)
C3/049D:	84E0    	STY $E0
C3/049F:	A400    	LDY $00        (5 - 0 = 5 digits to display)
C3/04A1:	8024    	BRA $04C7

C3/04A3:	A00800  	LDY #$0008     (maximum of 8 digits)
C3/04A6:	84E0    	STY $E0
C3/04A8:	A400    	LDY $00        (8 - 0 = 8 digits to display)
C3/04AA:	801B    	BRA $04C7

C3/04AC:	A00800  	LDY #$0008     (maximum of 8 digits)
C3/04AF:	84E0    	STY $E0
C3/04B1:	A00100  	LDY #$0001     (8 - 1 = 7 digits to display)
C3/04B4:	8011    	BRA $04C7

C3/04B6:	A00300  	LDY #$0003     (maximum of 3 digits)
C3/04B9:	84E0    	STY $E0
C3/04BB:	A00100  	LDY #$0001     (3 - 1 = 2 digits to display)
C3/04BE:	8007    	BRA $04C7

C3/04C0:	A00300  	LDY #$0003     (maximum of 3 digits)
C3/04C3:	84E0    	STY $E0
C3/04C5:	A400    	LDY $00        (3 - 0 = 3 digits to display, but why a variation of C3/0486?)
C3/04C7:	86EB    	STX $EB
C3/04C9:	A97E    	LDA #$7E
C3/04CB:	85ED    	STA $ED
C3/04CD:	BB      	TYX
C3/04CE:	A400    	LDY $00
C3/04D0:	B5F7    	LDA $F7,X
C3/04D2:	97EB    	STA [$EB],Y
C3/04D4:	C8      	INY
C3/04D5:	A529    	LDA $29        (get text color)
C3/04D7:	97EB    	STA [$EB],Y
C3/04D9:	C8      	INY
C3/04DA:	E8      	INX
C3/04DB:	E4E0    	CPX $E0
C3/04DD:	D0F1    	BNE $04D0
C3/04DF:	60      	RTS

C3/04E0 unknow

This calls the function below here, then any leading zeros 
are converted to spaces. A zero in the third position 
(ones place) is not converted.
C3/04E0:	20F904  	JSR $04F9
C3/04E3:	A400    	LDY $00
C3/04E5:	A20200  	LDX #$0002
C3/04E8:	B9F700  	LDA $00F7,Y
C3/04EB:	C9B4    	CMP #$B4
C3/04ED:	D009    	BNE $04F8
C3/04EF:	A9FF    	LDA #$FF
C3/04F1:	99F700  	STA $00F7,Y
C3/04F4:	C8      	INY
C3/04F5:	CA      	DEX
C3/04F6:	D0F0    	BNE $04E8
C3/04F8:	60      	RTS

C3/04F9 convert number for display: 3 digits

Takes a number from A (which is put into $E0 internally)
and converts it into a number up to 3 digits in decimal text.
The digits are stored to $F7, $F8, and $F9.
C3/04F9:	85E0    	STA $E0     
C3/04FB:	A903    	LDA #$03
C3/04FD:	85E4    	STA $E4
C3/04FF:	A400    	LDY $00
C3/0501:	BB      	TYX
C3/0502:	64E1    	STZ $E1
C3/0504:	BF2B05C3	LDA $C3052B,X
C3/0508:	E8      	INX
C3/0509:	85E3    	STA $E3
C3/050B:	A5E0    	LDA $E0
C3/050D:	38      	SEC
C3/050E:	E5E3    	SBC $E3
C3/0510:	9006    	BCC $0518
C3/0512:	85E0    	STA $E0
C3/0514:	E6E1    	INC $E1
C3/0516:	80F3    	BRA $050B
C3/0518:	18      	CLC
C3/0519:	65ED    	ADC $ED
C3/051B:	85F3    	STA $F3
C3/051D:	A5E1    	LDA $E1
C3/051F:	18      	CLC
C3/0520:	69B4    	ADC #$B4
C3/0522:	99F700  	STA $00F7,Y
C3/0525:	C8      	INY
C3/0526:	C6E4    	DEC $E4
C3/0528:	D0D8    	BNE $0502
C3/052A:	60      	RTS

C3/052B unknow

Data (for decimal place-values)
C3/052B:	64   (100)
C3/052C:	0A   (10)
C3/052D:	01   (1)

C3/052E convert number for display: 5 digits

Takes a number from $F3 and $F4 (or 16-bit $F3 if you prefer to 
say that) and converts it to a number up to 5 digits in decimal 
text.  Unlike the above, it automatically changes leading zeros 
to spaces.  This is stored to a buffer from $F7 to $FB.
C3/052E:	A905    	LDA #$05
C3/0530:	85E0    	STA $E0
C3/0532:	A400    	LDY $00  
C3/0534:	BB      	TYX
C3/0535:	C220    	REP #$20      (16 bit memory/accum.)
C3/0537:	BF7805C3	LDA $C30578,X
C3/053B:	E8      	INX
C3/053C:	E8      	INX
C3/053D:	85ED    	STA $ED
C3/053F:	64EB    	STZ $EB
C3/0541:	38      	SEC
C3/0542:	A5F3    	LDA $F3
C3/0544:	E5ED    	SBC $ED
C3/0546:	9006    	BCC $054E
C3/0548:	85F3    	STA $F3
C3/054A:	E6EB    	INC $EB
C3/054C:	80F3    	BRA $0541
C3/054E:	18      	CLC
C3/054F:	65ED    	ADC $ED
C3/0551:	85F3    	STA $F3
C3/0553:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0555:	A5EB    	LDA $EB
C3/0557:	18      	CLC
C3/0558:	69B4    	ADC #$B4
C3/055A:	99F700  	STA $00F7,Y
C3/055D:	C8      	INY
C3/055E:	C6E0    	DEC $E0
C3/0560:	D0D3    	BNE $0535
C3/0562:	A400    	LDY $00
C3/0564:	A20400  	LDX #$0004    (Only check the first 4 digits for 0)
C3/0567:	B9F700  	LDA $00F7,Y
C3/056A:	C9B4    	CMP #$B4      (That's text for "0")
C3/056C:	D009    	BNE $0577
C3/056E:	A9FF    	LDA #$FF      (Change to a space)
C3/0570:	99F700  	STA $00F7,Y
C3/0573:	C8      	INY
C3/0574:	CA      	DEX
C3/0575:	D0F0    	BNE $0567
C3/0577:	60      	RTS

C3/0578 data

C3/0578:	1027       (10000)
C3/057A:	E803       (1000)
C3/057C:	6400       (100)
C3/057E:	0A00       (10)
C3/0580:	0100       (1)

C3/0582 unknow

C3/0582:	64F4    	STZ $F4
C3/0584:	A908    	LDA #$08
C3/0586:	85E0    	STA $E0
C3/0588:	A400    	LDY $00
C3/058A:	BB      	TYX
C3/058B:	C220    	REP #$20      (16 bit memory/accum.)
C3/058D:	64EB    	STZ $EB
C3/058F:	38      	SEC
C3/0590:	A5F1    	LDA $F1
C3/0592:	FFDE05C3	SBC $C305DE,X
C3/0596:	85F1    	STA $F1
C3/0598:	A5F3    	LDA $F3
C3/059A:	FFEE05C3	SBC $C305EE,X
C3/059E:	85F3    	STA $F3
C3/05A0:	9004    	BCC $05A6
C3/05A2:	E6EB    	INC $EB
C3/05A4:	80E9    	BRA $058F
C3/05A6:	A5F1    	LDA $F1
C3/05A8:	18      	CLC
C3/05A9:	7FDE05C3	ADC $C305DE,X
C3/05AD:	85F1    	STA $F1
C3/05AF:	A5F3    	LDA $F3
C3/05B1:	7FEE05C3	ADC $C305EE,X
C3/05B5:	85F3    	STA $F3
C3/05B7:	E220    	SEP #$20      (8 bit memory/accum.)
C3/05B9:	A5EB    	LDA $EB
C3/05BB:	18      	CLC
C3/05BC:	69B4    	ADC #$B4
C3/05BE:	99F700  	STA $00F7,Y
C3/05C1:	C8      	INY
C3/05C2:	E8      	INX
C3/05C3:	E8      	INX
C3/05C4:	C6E0    	DEC $E0
C3/05C6:	D0C3    	BNE $058B
C3/05C8:	A400    	LDY $00
C3/05CA:	A20700  	LDX #$0007
C3/05CD:	B9F700  	LDA $00F7,Y
C3/05D0:	C9B4    	CMP #$B4
C3/05D2:	D009    	BNE $05DD
C3/05D4:	A9FF    	LDA #$FF
C3/05D6:	99F700  	STA $00F7,Y
C3/05D9:	C8      	INY
C3/05DA:	CA      	DEX
C3/05DB:	D0F0    	BNE $05CD
C3/05DD:	60      	RTS

C3/05DE data

In case this wasn't obvious from the others, here ya go:
C3/05DE:	8096    	(10000000)
C3/05E0:	4042    	(1000000)
C3/05E2:	A086    	(100000)
C3/05E4:	1027    	(10000)
C3/05E6:	E803   		(1000)
C3/05E8:	6400    	(100)
C3/05EA:	0A00    	(10)
C3/05EC:	0100    	(1)

C3/05EE:	9800
C3/05F1:	0F00
C3/05F3:	0100
C3/05F5:	0000
C3/05F7:	0000 
C3/05F9:	0000
C3/05FA:	0000
C3/05FC:	0000

C3/05FE hotspot loading function

C3/05FE:	A9C3    	LDA #$C3
C3/0600:	85ED    	STA $ED
C3/0602:	84EB    	STY $EB
C3/0604:	A400    	LDY $00
C3/0606:	B7EB    	LDA [$EB],Y
C3/0608:	8559    	STA $59
C3/060A:	C8      	INY
C3/060B:	C220    	REP #$20      (16 bit memory/accum.)
C3/060D:	6451    	STZ $51
C3/060F:	B7EB    	LDA [$EB],Y
C3/0611:	854D    	STA $4D
C3/0613:	C8      	INY
C3/0614:	C8      	INY
C3/0615:	B7EB    	LDA [$EB],Y
C3/0617:	8553    	STA $53
C3/0619:	644F    	STZ $4F
C3/061B:	E220    	SEP #$20      (8 bit memory/accum.)
C3/061D:	60      	RTS

C3/061E unknow

C3/061E:	7B      	TDC            (set A to 0)
C3/061F:	A8      	TAY            (set Y to 0)
C3/0620:	98      	TYA
C3/0621:	0A      	ASL A
C3/0622:	AA      	TAX
C3/0623:	B585    	LDA $85,X
C3/0625:	D008    	BNE $062F
C3/0627:	E64E    	INC $4E
C3/0629:	C8      	INY
C3/062A:	C00400  	CPY #$0004
C3/062D:	D0F1    	BNE $0620
C3/062F:	60      	RTS

C3/0630 unknow

C3/0630:	84E7    	STY $E7
C3/0632:	A9C3    	LDA #$C3
C3/0634:	85E9    	STA $E9
C3/0636:	60      	RTS

C3/0637 unknow

C3/0637:	203006  	JSR $0630
C3/063A:	205006  	JSR $0650
C3/063D:	4CC506  	JMP $06C5

C3/0640 finger positioning decoder

Finger positioning decoding function!
C3/0640:	203006  	JSR $0630
C3/0643:	207706  	JSR $0677
C3/0646:	807D    	BRA $06C5

C3/0648 unknow

C3/0648:	203006  	JSR $0630
C3/064B:	209E06  	JSR $069E
C3/064E:	8075    	BRA $06C5

C3/0650 unknow

C3/0650:	8B      	PHB
C3/0651:	A900    	LDA #$00
C3/0653:	48      	PHA
C3/0654:	AB      	PLB
C3/0655:	AF124200	LDA $004212
C3/0659:	2940    	AND #$40       (are we in H-blank?)
C3/065B:	F0F8    	BEQ $0655      (branch if not)
C3/065D:	A554    	LDA $54
C3/065F:	8D1B21  	STA $211B
C3/0662:	9C1B21  	STZ $211B
C3/0665:	A54D    	LDA $4D
C3/0667:	8D1C21  	STA $211C
C3/066A:	8D1C21  	STA $211C
C3/066D:	AD3421  	LDA $2134
C3/0670:	18      	CLC
C3/0671:	654E    	ADC $4E
C3/0673:	854B    	STA $4B
C3/0675:	AB      	PLB
C3/0676:	60      	RTS

C3/0677 unknow

C3/0677:	8B      	PHB
C3/0678:	A900    	LDA #$00
C3/067A:	48      	PHA
C3/067B:	AB      	PLB
C3/067C:	AF124200	LDA $004212
C3/0680:	2940    	AND #$40       (are we in H-blank?)
C3/0682:	F0F8    	BEQ $067C      (branch if not)
C3/0684:	A553    	LDA $53
C3/0686:	8D1B21  	STA $211B
C3/0689:	9C1B21  	STZ $211B
C3/068C:	A54E    	LDA $4E
C3/068E:	8D1C21  	STA $211C
C3/0691:	8D1C21  	STA $211C
C3/0694:	AD3421  	LDA $2134
C3/0697:	18      	CLC
C3/0698:	654D    	ADC $4D
C3/069A:	854B    	STA $4B
C3/069C:	AB      	PLB
C3/069D:	60      	RTS

C3/069E unknow

C3/069E:	8B      	PHB
C3/069F:	A900    	LDA #$00
C3/06A1:	48      	PHA
C3/06A2:	AB      	PLB
C3/06A3:	AF124200	LDA $004212
C3/06A7:	2940    	AND #$40       (are we in H-blank?)
C3/06A9:	F0F8    	BEQ $06A3      (branch if not)
C3/06AB:	A553    	LDA $53
C3/06AD:	8D1B21  	STA $211B
C3/06B0:	9C1B21  	STZ $211B
C3/06B3:	A550    	LDA $50
C3/06B5:	8D1C21  	STA $211C
C3/06B8:	8D1C21  	STA $211C
C3/06BB:	AD3421  	LDA $2134
C3/06BE:	18      	CLC
C3/06BF:	654F    	ADC $4F
C3/06C1:	854B    	STA $4B
C3/06C3:	AB      	PLB
C3/06C4:	60      	RTS

C3/06C5 unknow

C3/06C5:	8B      	PHB
C3/06C6:	A900    	LDA #$00
C3/06C8:	48      	PHA
C3/06C9:	AB      	PLB
C3/06CA:	A553    	LDA $53
C3/06CC:	3A      	DEC A
C3/06CD:	C54D    	CMP $4D
C3/06CF:	B00C    	BCS $06DD
C3/06D1:	A553    	LDA $53
C3/06D3:	3A      	DEC A
C3/06D4:	38      	SEC
C3/06D5:	E551    	SBC $51
C3/06D7:	85E0    	STA $E0
C3/06D9:	85E2    	STA $E2
C3/06DB:	8008    	BRA $06E5
C3/06DD:	A553    	LDA $53
C3/06DF:	85E0    	STA $E0
C3/06E1:	A54D    	LDA $4D
C3/06E3:	85E2    	STA $E2
C3/06E5:	A554    	LDA $54
C3/06E7:	3A      	DEC A
C3/06E8:	C54E    	CMP $4E
C3/06EA:	B00A    	BCS $06F6
C3/06EC:	A554    	LDA $54
C3/06EE:	3A      	DEC A
C3/06EF:	38      	SEC
C3/06F0:	E552    	SBC $52
C3/06F2:	85E1    	STA $E1
C3/06F4:	8004    	BRA $06FA
C3/06F6:	A54E    	LDA $4E
C3/06F8:	85E1    	STA $E1
C3/06FA:	AF124200	LDA $004212
C3/06FE:	2940    	AND #$40       (are we in H-blank?)
C3/0700:	F0F8    	BEQ $06FA      (branch if not)
C3/0702:	A5E0    	LDA $E0
C3/0704:	8D1B21  	STA $211B
C3/0707:	9C1B21  	STZ $211B
C3/070A:	A5E1    	LDA $E1
C3/070C:	8D1C21  	STA $211C
C3/070F:	8D1C21  	STA $211C
C3/0712:	AD3421  	LDA $2134
C3/0715:	18      	CLC
C3/0716:	65E2    	ADC $E2
C3/0718:	0A      	ASL A
C3/0719:	EB      	XBA 
C3/071A:	A500    	LDA $00
C3/071C:	EB      	XBA 
C3/071D:	A8      	TAY
C3/071E:	B7E7    	LDA [$E7],Y
C3/0720:	8555    	STA $55
C3/0722:	6456    	STZ $56
C3/0724:	C8      	INY
C3/0725:	B7E7    	LDA [$E7],Y
C3/0727:	8557    	STA $57
C3/0729:	6458    	STZ $58
C3/072B:	AB      	PLB
C3/072C:	60      	RTS

C3/072D move and update finger position

Used by finger positioning data, determine current position
and move to a new position based on direction pressed
C3/072D:	A50B    	LDA $0B        (from various)
C3/072F:	8908    	BIT #$08       (did you press up?)
C3/0731:	F01D    	BEQ $0750      (branch if not)
C3/0733:	A54E    	LDA $4E        (byte 3 of hotspot data)
C3/0735:	D011    	BNE $0748      (branch if not on position 0)
C3/0737:	A559    	LDA $59        (byte 1 of hotspot data)
C3/0739:	2901    	AND #$01       (check lowest bit, if set it will allow left/right)
C3/073B:	D072    	BNE $07AF
C3/073D:	A554    	LDA $54
C3/073F:	3A      	DEC A
C3/0740:	854E    	STA $4E        (byte 3 of hotspot data)
C3/0742:	20A30E  	JSR $0EA3
C3/0745:	4CAF07  	JMP $07AF      (BRA would save a byte)

C3/0748:	C64E    	DEC $4E
C3/074A:	20A30E  	JSR $0EA3
C3/074D:	4CAF07  	JMP $07AF      (BRA would save a byte)

C3/0750:	A50B    	LDA $0B        (A already holds the contents of $0B)
C3/0752:	8904    	BIT #$04       (did you press down?)
C3/0754:	F01D    	BEQ $0773      (branch if not)
C3/0756:	A554    	LDA $54        (byte 5 of hotspot data)
C3/0758:	3A      	DEC A
C3/0759:	C54E    	CMP $4E        (byte 3 of hotspot data)
C3/075B:	D00E    	BNE $076B
C3/075D:	A559    	LDA $59        (byte 1 of hotspot data)
C3/075F:	2901    	AND #$01       (check lowest bit, if set it will allow left/right)
C3/0761:	D04C    	BNE $07AF
C3/0763:	644E    	STZ $4E
C3/0765:	20A30E  	JSR $0EA3
C3/0768:	4CAF07  	JMP $07AF      (BRA would save a byte)

C3/076B:	E64E    	INC $4E        (byte 3 of hotspot data)
C3/076D:	20A30E  	JSR $0EA3
C3/0770:	4CAF07  	JMP $07AF

C3/0773:	A50B    	LDA $0B        (A already holds the contents of $0B)
C3/0775:	8902    	BIT #$02       (did you press left?)
C3/0777:	F019    	BEQ $0792      (branch if not)
C3/0779:	A54D    	LDA $4D        (bytes 2 and 3 of hotspot data)
C3/077B:	D00E    	BNE $078B
C3/077D:	A559    	LDA $59        (byte 1 of hotspot data)
C3/077F:	302E    	BMI $07AF      (check highest bit, if set it will allow up/down)
C3/0781:	A553    	LDA $53        (byte 4 of hotspot data)
C3/0783:	3A      	DEC A
C3/0784:	854D    	STA $4D        (byte 2 of hotspot data)
C3/0786:	20A30E  	JSR $0EA3
C3/0789:	8024    	BRA $07AF
C3/078B:	C64D    	DEC $4D        (byte 2 of hotspot data)
C3/078D:	20A30E  	JSR $0EA3
C3/0790:	801D    	BRA $07AF
C3/0792:	A50B    	LDA $0B        (A already holds the contents of $0B)
C3/0794:	8901    	BIT #$01       (did you press right?)
C3/0796:	F017    	BEQ $07AF      (branch if not)
C3/0798:	A553    	LDA $53        (byte 4 of hotspot data)
C3/079A:	3A      	DEC A
C3/079B:	C54D    	CMP $4D        (byte 2 of hotspot data)
C3/079D:	D00B    	BNE $07AA
C3/079F:	A559    	LDA $59        (byte 1 of hotspot data)
C3/07A1:	300C    	BMI $07AF      (check highest bit, if set it will allow up/down)
C3/07A3:	644D    	STZ $4D        (byte 2 of hotspot data)
C3/07A5:	20A30E  	JSR $0EA3
C3/07A8:	8005    	BRA $07AF
C3/07AA:	E64D    	INC $4D        (byte 2 of hotspot data)
C3/07AC:	20A30E  	JSR $0EA3
C3/07AF:	60      	RTS

C3/07B0 OAM initial routine

OAM initiating routine for hotspots
C3/07B0:	A901    	LDA #$01
C3/07B2:	A0B807  	LDY #$07B8
C3/07B5:	4C7311  	JMP $1173      (put C3/07B8 in the queue)

C3/07B8:	AA      	TAX
C3/07B9:	7CBC07  	JMP ($07BC,X)

C3/07BC data

C3/07BC:	C007
C3/07BE:	DC07

C3/07C0 unknow

C3/07C0:	A62D    	LDX $2D
C3/07C3:	C220    	REP #$20
C3/07C4:	A98D08  	LDA #$088D
C3/07C7:	9DC932  	STA $32C9,X    (save as pointer to OAM data)
C3/07CA:	E220    	SEP #$20      (8 bit memory/accum.)
C3/07CC:	A9C3    	LDA #$C3
C3/07CE:	9DCA35  	STA $35CA,X    (save bank pointer to OAM data)
C3/07D1:	200612  	JSR $1206
C3/07D4:	FE4936  	INC $3649,X    (execute the next entry in this queue's jump table)
C3/07D7:	A901    	LDA #$01
C3/07D9:	9D4A36  	STA $364A,X
C3/07DC:	A546    	LDA $46
C3/07DE:	2906    	AND #$06
C3/07E0:	F01B    	BEQ $07FD
C3/07E2:	A545    	LDA $45
C3/07E4:	8904    	BIT #$04
C3/07E6:	F013    	BEQ $07FB
C3/07E8:	A62D    	LDX $2D
C3/07EA:	C220    	REP #$20      (16 bit memory/accum.)
C3/07EC:	A555    	LDA $55
C3/07EE:	9DCA33  	STA $33CA,X
C3/07F1:	A557    	LDA $57
C3/07F3:	9D4A34  	STA $344A,X
C3/07F6:	E220    	SEP #$20      (8 bit memory/accum.)
C3/07F8:	202112  	JSR $1221      (draw the sprites!)
C3/07FB:	38      	SEC            (not done with this queue yet)
C3/07FC:	60      	RTS
 
C3/07FD:	18      	CLC            (flag that this queue can be removed)
C3/07FE:	60      	RTS

C3/07FF unknow

C3/07FF:	AA      	TAX
C3/0800:	7C0308  	JMP ($0803,X)

C3/0803 pointers

C3/0803:	0B08 
C3/0805:	2B08
C3/0807:	0B08 
C3/0809:	6708 

C3/080B unknow

C3/080B:	A62D    	LDX $2D        (from C3/0803, C3/0807)
C3/080D:	A901    	LDA #$01
C3/080F:	0446    	TSB $46
C3/0811:	C220    	REP #$20      (16 bit memory/accum.)
C3/0813:	A99608  	LDA #$0896
C3/0816:	9DC932  	STA $32C9,X    (save as pointer to OAM data)
C3/0819:	E220    	SEP #$20      (8 bit memory/accum.)
C3/081B:	A9C3    	LDA #$C3
C3/081D:	9DCA35  	STA $35CA,X    (save bank pointer to OAM data)
C3/0820:	200612  	JSR $1206
C3/0823:	A901    	LDA #$01
C3/0825:	9D4A36  	STA $364A,X
C3/0828:	FE4936  	INC $3649,X    (execute the next entry in this queue's jump table)
C3/082B:	A546    	LDA $46        (from C3/0805)
C3/082D:	8901    	BIT #$01
C3/082F:	F034    	BEQ $0865
C3/0831:	A62D    	LDX $2D
C3/0833:	C220    	REP #$20      (16 bit memory/accum.)
C3/0835:	A541    	LDA $41
C3/0837:	49FFFF  	EOR #$FFFF
C3/083A:	1A      	INC A
C3/083B:	18      	CLC
C3/083C:	7D4A34  	ADC $344A,X
C3/083F:	9D4A34  	STA $344A,X
C3/0842:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0844:	A546    	LDA $46
C3/0846:	29C0    	AND #$C0
C3/0848:	F016    	BEQ $0860
C3/084A:	A528    	LDA $28
C3/084C:	85E1    	STA $E1
C3/084E:	1A      	INC A
C3/084F:	85E0    	STA $E0
C3/0851:	A54A    	LDA $4A
C3/0853:	18      	CLC
C3/0854:	6909    	ADC #$09
C3/0856:	C5E1    	CMP $E1
C3/0858:	9009    	BCC $0863
C3/085A:	A54A    	LDA $4A
C3/085C:	C5E0    	CMP $E0
C3/085E:	B003    	BCS $0863
C3/0860:	202112  	JSR $1221      (draw the sprites!)
C3/0863:	38      	SEC
C3/0864:	60      	RTS
 
C3/0865:	18      	CLC
C3/0866:	60      	RTS

C3/0867 unknow

C3/0867:	A546    	LDA $46        (from C3/0809)
C3/0869:	8901    	BIT #$01
C3/086B:	F0F8    	BEQ $0865
C3/086D:	A62D    	LDX $2D
C3/086F:	C220    	REP #$20      (16 bit memory/accum.)
C3/0871:	A597    	LDA $97
C3/0873:	49FFFF  	EOR #$FFFF
C3/0876:	1A      	INC A
C3/0877:	18      	CLC
C3/0878:	7DCA33  	ADC $33CA,X
C3/087B:	9DCA33  	STA $33CA,X
C3/087E:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0880:	BCCA33  	LDY $33CA,X
C3/0883:	C00001  	CPY #$0100
C3/0886:	B003    	BCS $088B
C3/0888:	202112  	JSR $1221      (draw the sprites!)
C3/088B:	38      	SEC
C3/088C:	60      	RTS

C3/088D oam data: finger

C3/088D:	90 08
C3/088F:	FE      	(???)
C3/0890:	01      	(one set of data)
C3/0891:	80 00 00 3E	(position 80,0, 0 is ?, finger)
C3/0895:	00      	(no data)

C3/0896 blink effect for finger

Cycle to create blinking effect for finger
C3/0896:	9008
C3/0898:	02
C3/0899:	9508
C3/089B:	02
C3/089C:	9008
C3/089E:	FF

C3/089F unknow

C3/089F:	7B      	TDC
C3/08A0:	AA      	TAX
C3/08A1:	B585    	LDA $85,X
C3/08A3:	F024    	BEQ $08C9
C3/08A5:	DA      	PHX
C3/08A6:	A901    	LDA #$01
C3/08A8:	A0D108  	LDY #$08D1
C3/08AB:	207311  	JSR $1173      (put C3/08D1 in the queue)
C3/08AE:	9B      	TXY
C3/08AF:	FA      	PLX
C3/08B0:	A97E    	LDA #$7E
C3/08B2:	48      	PHA
C3/08B3:	AB      	PLB
C3/08B4:	B585    	LDA $85,X
C3/08B6:	99CA33  	STA $33CA,Y
C3/08B9:	B586    	LDA $86,X
C3/08BB:	994A34  	STA $344A,Y
C3/08BE:	7B      	TDC
C3/08BF:	99CB33  	STA $33CB,Y
C3/08C2:	994B34  	STA $344B,Y
C3/08C5:	A900    	LDA #$00
C3/08C7:	48      	PHA
C3/08C8:	AB      	PLB
C3/08C9:	E8      	INX
C3/08CA:	E8      	INX
C3/08CB:	E00800  	CPX #$0008
C3/08CE:	D0D1    	BNE $08A1
C3/08D0:	60      	RTS

C3/08D1 unknow

C3/08D1:	AA      	TAX
C3/08D2:	7CD508  	JMP ($08D5,X)

C3/08D5 pointers

C3/08D5:	D908  	
C3/08D7:	F908      	 

C3/08D9 unknow

C3/08D9:	A62D    	LDX $2D
C3/08DB:	A908    	LDA #$08
C3/08DD:	0446    	TSB $46
C3/08DF:	C220    	REP #$20      (16 bit memory/accum.)
C3/08E1:	A99608  	LDA #$0896
C3/08E4:	9DC932  	STA $32C9,X    (save as pointer to OAM data)
C3/08E7:	E220    	SEP #$20      (8 bit memory/accum.)
C3/08E9:	A9C3    	LDA #$C3
C3/08EB:	9DCA35  	STA $35CA,X    (save bank pointer to OAM data)
C3/08EE:	200612  	JSR $1206
C3/08F1:	FE4936  	INC $3649,X    (execute the next entry in this queue's jump table)
C3/08F4:	A901    	LDA #$01
C3/08F6:	9D4A36  	STA $364A,X
C3/08F9:	A546    	LDA $46
C3/08FB:	8908    	BIT #$08
C3/08FD:	F007    	BEQ $0906
C3/08FF:	A62D    	LDX $2D
C3/0901:	202112  	JSR $1221      (draw the sprites!)
C3/0904:	38      	SEC            (not done yet with this queue)
C3/0905:	60      	RTS
 
C3/0906:	18      	CLC            (this queue can be removed)
C3/0907:	60      	RTS

C3/0908 unknow

C3/0908:	A9C0    	LDA #$C0
C3/090A:	0446    	TSB $46
C3/090C:	A54A    	LDA $4A
C3/090E:	D004    	BNE $0914
C3/0910:	A940    	LDA #$40
C3/0912:	1446    	TRB $46
C3/0914:	A54A    	LDA $4A
C3/0916:	C55C    	CMP $5C
C3/0918:	D004    	BNE $091E
C3/091A:	A980    	LDA #$80
C3/091C:	1446    	TRB $46
C3/091E:	60      	RTS

C3/091F unknow

C3/091F:	A903    	LDA #$03       (from C3/1B14, C3/20B5, C3/2132, C3/2170, C3/21A8, C3/265A, C3/591E, C3/89DE, C3/BC05)
C3/0921:	A04709  	LDY #$0947
C3/0924:	207311  	JSR $1173      (put C3/0947 in the queue)
C3/0927:	C220    	REP #$20       (16 bit memory/accum.)
C3/0929:	A9E800  	LDA #$00E8     (arrow's initial position, E8 is X, 00 is Y)
C3/092C:	9FCA337E	STA $7E33CA,X
C3/0930:	E220    	SEP #$20       (8 bit memory/accum.)
C3/0932:	60      	RTS

C3/0933 unknow

C3/0933:	A903    	LDA #$03       (only from C3/9B0F)
C3/0935:	A04709  	LDY #$0947
C3/0938:	207311  	JSR $1173      (put C3/0947 in the queue)
C3/093B:	C220    	REP #$20       (16 bit memory/accum.)
C3/093D:	A97800  	LDA #$0078     (arrow's initial position in equip screen, 78 is X, 00 is Y)
C3/0940:	9FCA337E	STA $7E33CA,X
C3/0944:	E220    	SEP #$20       (8 bit memory/accum.)
C3/0946:	60      	RTS

C3/0947 unknow

C3/0947:	AA      	TAX
C3/0948:	7C4B09  	JMP ($094B,X)

C3/094B pointers

C3/094B:	4F09
C3/094D:	6A09	

C3/094F unknow

C3/094F:	A62D    	LDX $2D
C3/0951:	C220    	REP #$20      (16 bit memory/accum.)
C3/0953:	A9E309  	LDA #$09E3
C3/0956:	9DC932  	STA $32C9,X    (save as pointer to OAM data)
C3/0959:	E220    	SEP #$20      (8 bit memory/accum.)
C3/095B:	A9C3    	LDA #$C3
C3/095D:	9DCA35  	STA $35CA,X    (save bank pointer to OAM data)
C3/0960:	FE4936  	INC $3649,X    (execute the next entry in this queue's jump table)
C3/0963:	200612  	JSR $1206
C3/0966:	A9C0    	LDA #$C0
C3/0968:	0446    	TSB $46
C3/096A:	A546    	LDA $46
C3/096C:	29C0    	AND #$C0
C3/096E:	F069    	BEQ $09D9
C3/0970:	A62D    	LDX $2D
C3/0972:	200809  	JSR $0908
C3/0975:	AF124200	LDA $004212
C3/0979:	2940    	AND #$40
C3/097B:	F0F8    	BEQ $0975
C3/097D:	BD4A35  	LDA $354A,X
C3/0980:	8F1B2100	STA $00211B
C3/0984:	BD4B35  	LDA $354B,X
C3/0987:	8F1B2100	STA $00211B
C3/098B:	A54A    	LDA $4A
C3/098D:	8F1C2100	STA $00211C
C3/0991:	8F1C2100	STA $00211C
C3/0995:	A54A    	LDA $4A
C3/0997:	3011    	BMI $09AA
C3/0999:	7B      	TDC
C3/099A:	AF352100	LDA $002135
C3/099E:	C221    	REP #$21
C3/09A0:	7DCA34  	ADC $34CA,X
C3/09A3:	9D4A34  	STA $344A,X
C3/09A6:	E220    	SEP #$20      (8 bit memory/accum.)
C3/09A8:	8013    	BRA $09BD
C3/09AA:	7B      	TDC
C3/09AB:	AF352100	LDA $002135
C3/09AF:	C221    	REP #$21
C3/09B1:	697000  	ADC #$0070
C3/09B4:	18      	CLC
C3/09B5:	7DCA34  	ADC $34CA,X
C3/09B8:	9D4A34  	STA $344A,X
C3/09BB:	E220    	SEP #$20      (8 bit memory/accum.)
C3/09BD:	7B      	TDC
C3/09BE:	A546    	LDA $46
C3/09C0:	29C0    	AND #$C0
C3/09C2:	4A      	LSR A
C3/09C3:	4A      	LSR A
C3/09C4:	4A      	LSR A
C3/09C5:	4A      	LSR A
C3/09C6:	4A      	LSR A
C3/09C7:	9B      	TXY
C3/09C8:	AA      	TAX
C3/09C9:	C220    	REP #$20      (16 bit memory/accum.)
C3/09CB:	BFDB09C3	LDA $C309DB,X
C3/09CF:	99C932  	STA $32C9,Y    (save as pointer to OAM data)
C3/09D2:	E220    	SEP #$20      (8 bit memory/accum.)
C3/09D4:	202112  	JSR $1221      (draw the sprites!)
C3/09D7:	38      	SEC            (not done yet with this queue)
C3/09D8:	60      	RTS
 
C3/09D9:	18      	CLC            (this queue can be removed)
C3/09DA:	60      	RTS

C3/09DB pointers: oam arrow cycle

C3/09DB:	E309    	
C3/09DD:	EC09  
C3/09DF:	F509    	
C3/09E1:	E309    

C3/09E3 oam related

OAM format: pointer, timer, pointer, timer, pointer, end
C3/09E3:	FE09    	
C3/09E5:	10    	
C3/09E6:	070A
C3/09E8:	10    	
C3/09E9:	FE09
C3/09EB:	FF
    	
C3/09EC:	FE09  	
C3/09EE:	10
C3/09EF:	100A
C3/09F1:	10
C3/09F2:	FE09
C3/09F4:	FF

C3/09F5:	FE09
C3/09F7:	10
C3/09F8:	190A
C3/09FA:	10
C3/09FB:	FE09
C3/09FD:	FF

C3/09FE oam arrow position

Data: OAM arrow position....GENERAL PURPOSE! format is X Y state sprite, X and Y are relative to starting and current positions
C3/09FE:	02      	(no idea...)

C3/09FF:	0000023E	(upper arrow, 02 is not flashing)  (position 0,0, disabled, arrow pointing up)
C3/0A03:	000802BE	(lower arrow, 02 is not flashing)  (position 0,8, disabled, arrow pointing down)

C3/0A07:	02      	(no idea...)

C3/0A08:	0000123E	(upper arrow, 12 is flashing)  (position 0,0, enabled, arrow pointing up)
C3/0A0C:	000812BE	(lower arrow, 12 is flashing)  (position 0,8, enabled, arrow pointing down)

C3/0A10:	02      	(no idea...)

C3/0A11:	0000123E	(upper arrow)  (position 0,0, enabled, arrow pointing up)
C3/0A15:	000802BE	(lower arrow)  (position 0,8, disabled, arrow pointing down)

C3/0A19:	02      	(no idea...)

C3/0A1A:	0000023E	(upper arrow)  (position 0,0, disabled, arrow pointing up)
C3/0A1E:	000812BE	(lower arrow)  (position 0,8, enabled, arrow pointing down)

C3/0A22 unknow

C3/0A22:	A903    	LDA #$03
C3/0A24:	A0120B  	LDY #$0B12
C3/0A27:	207311  	JSR $1173      (put C3/0B12 in the queue)
C3/0A2A:	8A      	TXA
C3/0A2B:	8560    	STA $60
C3/0A2D:	8B      	PHB
C3/0A2E:	A97E    	LDA #$7E
C3/0A30:	48      	PHA
C3/0A31:	AB      	PLB
C3/0A32:	A400    	LDY $00
C3/0A34:	20F10A  	JSR $0AF1
C3/0A37:	A400    	LDY $00
C3/0A39:	20CC0A  	JSR $0ACC
C3/0A3C:	C220    	REP #$20      (16 bit memory/accum.)
C3/0A3E:	A91500  	LDA #$0015
C3/0A41:	9D4A34  	STA $344A,X
C3/0A44:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0A46:	200612  	JSR $1206
C3/0A49:	AB      	PLB
C3/0A4A:	60      	RTS

C3/0A4B unknow

C3/0A4B:	A903    	LDA #$03
C3/0A4D:	A0120B  	LDY #$0B12
C3/0A50:	207311  	JSR $1173      (put C3/0B12 in the queue)
C3/0A53:	8A      	TXA
C3/0A54:	8561    	STA $61
C3/0A56:	8B      	PHB
C3/0A57:	A97E    	LDA #$7E
C3/0A59:	48      	PHA
C3/0A5A:	AB      	PLB
C3/0A5B:	A00100  	LDY #$0001
C3/0A5E:	20F10A  	JSR $0AF1
C3/0A61:	A00100  	LDY #$0001
C3/0A64:	20CC0A  	JSR $0ACC
C3/0A67:	C220    	REP #$20      (16 bit memory/accum.)
C3/0A69:	A94500  	LDA #$0045
C3/0A6C:	9D4A34  	STA $344A,X
C3/0A6F:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0A71:	200612  	JSR $1206
C3/0A74:	AB      	PLB
C3/0A75:	60      	RTS

C3/0A76 unknow

C3/0A76:	A903    	LDA #$03
C3/0A78:	A0120B  	LDY #$0B12
C3/0A7B:	207311  	JSR $1173      (put C3/0B12 in the queue)
C3/0A7E:	8A      	TXA
C3/0A7F:	8562    	STA $62
C3/0A81:	8B      	PHB
C3/0A82:	A97E    	LDA #$7E
C3/0A84:	48      	PHA
C3/0A85:	AB      	PLB
C3/0A86:	A00200  	LDY #$0002
C3/0A89:	20F10A  	JSR $0AF1
C3/0A8C:	A00200  	LDY #$0002
C3/0A8F:	20CC0A  	JSR $0ACC
C3/0A92:	C220    	REP #$20      (16 bit memory/accum.)
C3/0A94:	A97500  	LDA #$0075
C3/0A97:	9D4A34  	STA $344A,X
C3/0A9A:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0A9C:	200612  	JSR $1206
C3/0A9F:	AB      	PLB
C3/0AA0:	60      	RTS

C3/0AA1 unknow

C3/0AA1:	A903    	LDA #$03
C3/0AA3:	A0120B  	LDY #$0B12
C3/0AA6:	207311  	JSR $1173      (put C3/0B12 in the queue)
C3/0AA9:	8A      	TXA
C3/0AAA:	8563    	STA $63
C3/0AAC:	8B      	PHB
C3/0AAD:	A97E    	LDA #$7E
C3/0AAF:	48      	PHA
C3/0AB0:	AB      	PLB
C3/0AB1:	A00300  	LDY #$0003
C3/0AB4:	20F10A  	JSR $0AF1
C3/0AB7:	A00300  	LDY #$0003
C3/0ABA:	20CC0A  	JSR $0ACC
C3/0ABD:	C220    	REP #$20      (16 bit memory/accum.)
C3/0ABF:	A9A500  	LDA #$00A5
C3/0AC2:	9D4A34  	STA $344A,X
C3/0AC5:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0AC7:	200612  	JSR $1206
C3/0ACA:	AB      	PLB
C3/0ACB:	60      	RTS

C3/0ACC unknow

C3/0ACC:	DA      	PHX
C3/0ACD:	DA      	PHX            (should this be PHY? Y isn't touched at all, but still)
C3/0ACE:	BB      	TYX
C3/0ACF:	B575    	LDA $75,X
C3/0AD1:	2918    	AND #$18
C3/0AD3:	4A      	LSR A
C3/0AD4:	4A      	LSR A
C3/0AD5:	AA      	TAX
C3/0AD6:	C220    	REP #$20       (16 bit memory/accum.)
C3/0AD8:	BFE90AC3	LDA $C30AE9,X
C3/0ADC:	7A      	PLY            (Y is lost)
C3/0ADD:	99C932  	STA $32C9,Y    (save as pointer to OAM data)
C3/0AE0:	E220    	SEP #$20       (8 bit memory/accum.)
C3/0AE2:	A9C3    	LDA #$C3
C3/0AE4:	99CA35  	STA $35CA,Y    (save bank pointer to OAM data)
C3/0AE7:	FA      	PLX            (no stack mismatch, but something has to have bugged... Kejardon claims this to be intentional)
C3/0AE8:	60      	RTS

C3/0AE9 data

C3/0AE9:	8C0B
C3/0AEB:	C40B
C3/0AED:	FC0B
C3/0AEF:	340C

C3/0AF1 unknow

C3/0AF1:	DA      	PHX
C3/0AF2:	BB      	TYX
C3/0AF3:	A902    	LDA #$02
C3/0AF5:	2445    	BIT $45
C3/0AF7:	D006    	BNE $0AFF
C3/0AF9:	B575    	LDA $75,X
C3/0AFB:	8920    	BIT #$20
C3/0AFD:	F007    	BEQ $0B06
C3/0AFF:	C220    	REP #$20      (16 bit memory/accum.)
C3/0B01:	A91A00  	LDA #$001A
C3/0B04:	8005    	BRA $0B0B
C3/0B06:	C220    	REP #$20      (16 bit memory/accum.)
C3/0B08:	A90E00  	LDA #$000E
C3/0B0B:	FA      	PLX
C3/0B0C:	9DCA33  	STA $33CA,X
C3/0B0F:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0B11:	60      	RTS

C3/0B12 unknow

C3/0B12:	AA      	TAX
C3/0B13:	7C160B  	JMP ($0B16,X)

C3/0B16 pointers

C3/0B16:	200B  	
C3/0B18:	2A0B  
C3/0B1A:	380B 
C3/0B1C:	4C0B  	
C3/0B1E:	5E0B      	 

C3/0B20 unknow

C3/0B20:	A62D    	LDX $2D
C3/0B22:	FE4936  	INC $3649,X    (execute the next entry in this queue's jump table)
C3/0B25:	A901    	LDA #$01
C3/0B27:	9D4A36  	STA $364A,X
C3/0B2A:	A62D    	LDX $2D
C3/0B2C:	BDC935  	LDA $35C9,X
C3/0B2F:	3005    	BMI $0B36
C3/0B31:	202112  	JSR $1221      (draw the sprites!)
C3/0B34:	38      	SEC            (not done yet with this queue)
C3/0B35:	60      	RTS
 
C3/0B36:	18      	CLC            (this queue can be removed)
C3/0B37:	60      	RTS

C3/0B38 unknow

C3/0B38:	A62D    	LDX $2D
C3/0B3A:	C220    	REP #$20      (16 bit memory/accum.)
C3/0B3C:	A90100  	LDA #$0001
C3/0B3F:	9DCA34  	STA $34CA,X
C3/0B42:	A90C00  	LDA #$000C
C3/0B45:	9D4933  	STA $3349,X
C3/0B48:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0B4A:	8012    	BRA $0B5E
C3/0B4C:	A62D    	LDX $2D
C3/0B4E:	C220    	REP #$20      (16 bit memory/accum.)
C3/0B50:	A9FFFF  	LDA #$FFFF     (TDC then DEC would do the same)
C3/0B53:	9DCA34  	STA $34CA,X
C3/0B56:	A90C00  	LDA #$000C
C3/0B59:	9D4933  	STA $3349,X
C3/0B5C:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0B5E:	A62D    	LDX $2D
C3/0B60:	A904    	LDA #$04
C3/0B62:	9D4936  	STA $3649,X    (execute the fifth entry in this queue's jump table)
C3/0B65:	C220    	REP #$20      (16 bit memory/accum.)
C3/0B67:	BD4933  	LDA $3349,X
C3/0B6A:	F014    	BEQ $0B80
C3/0B6C:	BDCA34  	LDA $34CA,X
C3/0B6F:	18      	CLC
C3/0B70:	7DCA33  	ADC $33CA,X
C3/0B73:	9DCA33  	STA $33CA,X
C3/0B76:	DE4933  	DEC $3349,X
C3/0B79:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0B7B:	202112  	JSR $1221      (draw the sprites!)
C3/0B7E:	38      	SEC            (not done yet with this queue)
C3/0B7F:	60      	RTS

C3/0B80 unknow

C3/0B80:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0B82:	A901    	LDA #$01
C3/0B84:	9D4936  	STA $3649,X    (execute the second entry in this queue's jump table)
C3/0B87:	202112  	JSR $1221      (draw the sprites!)
C3/0B8A:	38      	SEC            (not done yet with this queue)
C3/0B8B:	60      	RTS

C3/0B8C oam data

C3/0B8C:	8F0B

C3/0B8E:	FE      	(...)

C3/0B8F:	0D      	(13 sets of data)
C3/0B90:	80006020	(position 80,00, 60 is ?, 20 is ?)
C3/0B94:	90006220	(position 90,00, 62 is ?, 20 is ?)
C3/0B98:	80106420	(position 80,10, 64 is ?, 20 is ?)
C3/0B9C:	90106620	(position 90,10, 66 is ?, 20 is ?)
C3/0BA0:	20006820	(position 20,00, 68 is ?, 20 is ?)
C3/0BA4:	20086920	(position 20,08, 69 is ?, 20 is ?)
C3/0BA8:	20106A20	(position 20,10, 6A is ?, 20 is ?)
C3/0BAC:	20186B20	(position 20,18, 6B is ?, 20 is ?)
C3/0BB0:	20206C20	(position 20,20, 6C is ?, 20 is ?)
C3/0BB4:	00206D20	(position 00,20, 6D is ?, 20 is ?)
C3/0BB8:	08206E20	(position 08,20, 6E is ?, 20 is ?)
C3/0BBC:	10206F20	(position 10,20, 6F is ?, 20 is ?)
C3/0BC0:	18207820	(position 18,20, 78 is ?, 20 is ?)

C3/0BC4:	C70B
C3/0BC6:	FE      	(...)
C3/0BC7:	0D      	(13 sets of data)

C3/0BC8:	80008022	(position 80,00, 80 is ?, 22 is ?)
C3/0BCC:	90008222	(position 90,00, 82 is ?, 22 is ?)
C3/0BD0:	80108422	(position 80,10, 84 is ?, 22 is ?)
C3/0BD4:	90108622	(position 90,10, 86 is ?, 22 is ?)
C3/0BD8:	20008822	(position 20,00, 88 is ?, 22 is ?)
C3/0BDC:	20088922	(position 20,08, 89 is ?, 22 is ?)
C3/0BE0:	20108A22	(position 20,10, 8A is ?, 22 is ?)
C3/0BE4:	20188B22	(position 20,18, 8B is ?, 22 is ?)
C3/0BE8:	20208C22	(position 20,20, 8C is ?, 22 is ?)
C3/0BEC:	00208D22	(position 00,20, 8D is ?, 22 is ?)
C3/0BF0:	08208E22	(position 08,20, 8E is ?, 22 is ?)
C3/0BF4:	10208F22	(position 10,20, 8F is ?, 22 is ?)
C3/0BF8:	18209822	(position 18,20, 98 is ?, 22 is ?)

C3/0BFC:	FF0B
C3/0BFE:	FE      	(...)
C3/0BFF:	0D      	(13 sets of data)

C3/0C00:	8000A024
C3/0C04:	9000A224
C3/0C08:	8010A424
C3/0C0C:	9010A624
C3/0C10:	2000A824
C3/0C14:	2008A924
C3/0C18:	2010AA24
C3/0C1C:	2018AB24
C3/0C20:	2020AC24
C3/0C24:	0020AD24
C3/0C28:	0820AE24
C3/0C2C:	1020AF24
C3/0C30:	1820B824

C3/0C34:	370C
C3/0C36:	FE      	(...)
C3/0C37:	0D      	(13 sets of data)

C3/0C38:	8000C026
C3/0C3C:	9000C226
C3/0C40:	8010C426
C3/0C44:	9010C626
C3/0C48:	2000C826
C3/0C4C:	2008C926
C3/0C50:	2010CA26
C3/0C54:	2018CB26
C3/0C58:	2020CC26
C3/0C5C:	0020CD26
C3/0C60:	0820CE26
C3/0C64:	1020CF26
C3/0C68:	1820D826

C3/0C6C display character level, HP and MP

This same function is used for main menu, skills screen, 
status screen, equipment, relics, or save screen
C3/0C6C:	86EF    	STX $EF        (save position to look in rom)
C3/0C6E:	A9C3    	LDA #$C3
C3/0C70:	85F1    	STA $F1        (C3/xxxx holds the stats for this character)
C3/0C72:	A667    	LDX $67
C3/0C74:	BD0800  	LDA $0008,X    (Level)
C3/0C77: 	20E004  	JSR $04E0
C3/0C7A: 	C220    	REP #$20
C3/0C7C: 	A7EF    	LDA [$EF]      (load stat position for tilemap)
C3/0C7E: 	AA      	TAX
C3/0C7F: 	E220    	SEP #$20
C3/0C81: 	20B604  	JSR $04B6
C3/0C84: 	A667    	LDX $67
C3/0C86: 	BD0B00  	LDA $000B,X    (maximum HP, high byte)
C3/0C89: 	85F3    	STA $F3
C3/0C8B: 	BD0C00  	LDA $000C,X    (maximum HP, low byte)
C3/0C8E: 	85F4    	STA $F4
C3/0C90: 	20650D  	JSR $0D65      (boost HP according to equipment)
C3/0C93: 	20920D  	JSR $0D92      (truncate HP display to 9999)
C3/0C96: 	202E05  	JSR $052E      (convert to displayable digits)
C3/0C99: 	A00400  	LDY #$0004
C3/0C9C: 	20210D  	JSR $0D21
C3/0C9F: 	A467    	LDY $67
C3/0CA1: 	209A2B  	JSR $2B9A
C3/0CA4: 	B90900  	LDA $0009,Y    (current HP, high byte)
C3/0CA7: 	85F3    	STA $F3
C3/0CA9: 	B90A00  	LDA $000A,Y    (current HP, low byte)
C3/0CAC: 	85F4    	STA $F4
C3/0CAE: 	202E05  	JSR $052E      (convert to displayable digits)
C3/0CB1: 	A00200  	LDY #$0002
C3/0CB4: 	20210D  	JSR $0D21
C3/0CB7: 	202B0D  	JSR $0D2B      (check to see if this character knows magic)
C3/0CBA: 	9033    	BCC $0CEF      (branch if character doesn't know any magic)
C3/0CBC: 	A667    	LDX $67
C3/0CBE: 	BD0F00  	LDA $000F,X    (maximum MP, high byte)
C3/0CC1: 	85F3    	STA $F3
C3/0CC3: 	BD1000  	LDA $0010,X    (maximum MP, low byte)
C3/0CC6: 	85F4    	STA $F4
C3/0CC8: 	20650D  	JSR $0D65      (boost MP according to equipment)
C3/0CCB: 	209F0D  	JSR $0D9F      (truncate MP display to 999)
C3/0CCE: 	202E05  	JSR $052E      (convert to displayable digits)
C3/0CD1: 	A00800  	LDY #$0008
C3/0CD4: 	20210D  	JSR $0D21
C3/0CD7: 	A467    	LDY $67
C3/0CD9: 	20BC2B  	JSR $2BBC
C3/0CDC: 	B90D00  	LDA $000D,Y    (current MP, high byte)
C3/0CDF: 	85F3    	STA $F3
C3/0CE1: 	B90E00  	LDA $000E,Y    (current MP, low byte)
C3/0CE4: 	85F4    	STA $F4
C3/0CE6: 	202E05  	JSR $052E      (convert to displayable digits)
C3/0CE9: 	A00600  	LDY #$0006
C3/0CEC: 	4C210D  	JMP $0D21      (BRA fool!)

C3/0CEF unknow

C3/0CEF:	A28B9E  	LDX #$9E8B
C3/0CF2:	8E8121  	STX $2181
C3/0CF5:	C220    	REP #$20      (16 bit memory/accum.)
C3/0CF7:	A00600  	LDY #$0006
C3/0CFA:	B7EF    	LDA [$EF],Y
C3/0CFC:	38      	SEC
C3/0CFD:	E90600  	SBC #$0006
C3/0D00:	8F899E7E	STA $7E9E89
C3/0D04:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0D06:	A20C00  	LDX #$000C
C3/0D09:	A9FF    	LDA #$FF
C3/0D0B:	8D8021  	STA $2180
C3/0D0E:	CA      	DEX
C3/0D0F:	D0FA    	BNE $0D0B      (draw 12 spaces)
C3/0D11:	9C8021  	STZ $2180      (end this string)
C3/0D14:	A0899E  	LDY #$9E89     (JMP $7FD9 fool!)
C3/0D17:	84E7    	STY $E7
C3/0D19:	A97E    	LDA #$7E
C3/0D1B:	85E9    	STA $E9
C3/0D1D:	20FF02  	JSR $02FF      (JMP fool!)
C3/0D20:	60      	RTS

C3/0D21 unknow

C3/0D21:	C220    	REP #$20      (16 bit memory/accum.)
C3/0D23:	B7EF    	LDA [$EF],Y
C3/0D25:	AA      	TAX
C3/0D26:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0D28:	4C9004  	JMP $0490

C3/0D2B check if character knows magic

C3/0D2B:	AD691A  	LDA $1A69      (from C3/0CB7)
C3/0D2E:	0D6A1A  	ORA $1A6A
C3/0D31:	0D6B1A  	ORA $1A6B
C3/0D34:	0D6C1A  	ORA $1A6C
C3/0D37:	D02A    	BNE $0D63      (branch if you have at least one esper)
C3/0D39:	A667    	LDX $67
C3/0D3B:	7B      	TDC
C3/0D3C:	BD0000  	LDA $0000,X    (character ID)
C3/0D3F:	C90C    	CMP #$0C
C3/0D41:	F020    	BEQ $0D63      (Branch if it's Gogo)
C3/0D43:	B01C    	BCS $0D61      (Branch if it's Umaro or higher)
C3/0D45:	8D0242  	STA $4202      (we're here if character is below Gogo, and you have no espers)
C3/0D48:	A936    	LDA #$36
C3/0D4A:	8D0342  	STA $4203      (#$36 as multiplier)
C3/0D4D:	EA      	NOP
C3/0D4E:	EA      	NOP
C3/0D4F:	EA      	NOP
C3/0D50:	A03600  	LDY #$0036     (TAY?)
C3/0D53:	AE1642  	LDX $4216      (load character * spell total)
C3/0D56:	BD6E1A  	LDA $1A6E,X    (load spell at X)
C3/0D59:	C9FF    	CMP #$FF       (learned it?)
C3/0D5B:	F006    	BEQ $0D63      (branch if so)
C3/0D5D:	E8      	INX
C3/0D5E:	88      	DEY
C3/0D5F:	D0F5    	BNE $0D56      (branch if we haven't checked every spell)
C3/0D61:	18      	CLC            (used by C3/0C6C, says that this character doesn't know magic)
C3/0D62:	60      	RTS
 
C3/0D63:	38      	SEC            (flag MP as ok to display)
C3/0D64:	60      	RTS

C3/0D65 adjust HP and MP based on equipment

This is called by both HP and MP to adjust their values based on boosting equipment
C3/0D65:	C220    	REP #$20      (16 bit memory/accum.)
C3/0D67:	A5F3    	LDA $F3        (load HP/MP)
C3/0D69:	29FF3F  	AND #$3FFF     (only keep the HP/MP)
C3/0D6C:	85E7    	STA $E7        (save it to a temp location)
C3/0D6E:	A5F3    	LDA $F3        (load HP/MP again)
C3/0D70:	2900C0  	AND #$C000     (this time keep only the boosts)
C3/0D73:	18      	CLC            (this is crucial)
C3/0D74:	2A      	ROL A
C3/0D75:	2A      	ROL A
C3/0D76:	2A      	ROL A
C3/0D77:	2A      	ROL A          (transfer boosts to lower two bits)
C3/0D78:	AA      	TAX            (index them)
C3/0D79:	A5E7    	LDA $E7        (load our non-boosted HP/MP)
C3/0D7B:	7C7E0D  	JMP ($0D7E,X)

C3/0D7E pointers: HP and MP boosts

C3/0D7E:	860D    	(no HP/MP boost)
C3/0D80:	880D    	(25% HP/MP boost)
C3/0D82:	890D    	(50% HP/MP boost)
C3/0D84:	870D    	(12.5% HP/MP boost)

C3/0D86 HP and MP boosts

C3/0D86:	7B      	TDC
C3/0D87:	4A      	LSR A
C3/0D88:	4A      	LSR A
C3/0D89:	4A      	LSR A
C3/0D8A:	18      	CLC
C3/0D8B:	65E7    	ADC $E7        (add in the non-boosted HP/MP)
C3/0D8D:	85F3    	STA $F3        (save new boosted HP/MP)
C3/0D8F:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0D91:	60      	RTS

C3/0D92 trim HP if HP above 9999

C3/0D92:	A6F3    	LDX $F3
C3/0D94:	E01027  	CPX #$2710
C3/0D97:	9005    	BCC $0D9E
C3/0D99:	A20F27  	LDX #$270F
C3/0D9C:	86F3    	STX $F3
C3/0D9E:	60      	RTS

C3/0D9F trim MP if MP above 999

C3/0D9F:	A6F3    	LDX $F3
C3/0DA1:	E0E803  	CPX #$03E8
C3/0DA4:	9005    	BCC $0DAB
C3/0DA6:	A2E703  	LDX #$03E7
C3/0DA9:	86F3    	STX $F3
C3/0DAB:	60      	RTS

C3/0DAC unknow

C3/0DAC:	AC2F02  	LDY $022F
C3/0DAF:	844F    	STY $4F
C3/0DB1:	A54F    	LDA $4F
C3/0DB3:	854D    	STA $4D
C3/0DB5:	AD3102  	LDA $0231
C3/0DB8:	8064    	BRA $0E1E

C3/0DBA unknow

C3/0DBA:	7B      	TDC
C3/0DBB:	A54B    	LDA $4B
C3/0DBD:	0A      	ASL A
C3/0DBE:	AA      	TAX
C3/0DBF:	A528    	LDA $28
C3/0DC1:	0A      	ASL A
C3/0DC2:	A8      	TAY
C3/0DC3:	C220    	REP #$20      (16 bit memory/accum.)
C3/0DC5:	BD3602  	LDA $0236,X
C3/0DC8:	85E7    	STA $E7
C3/0DCA:	B93602  	LDA $0236,Y
C3/0DCD:	9D3602  	STA $0236,X
C3/0DD0:	A5E7    	LDA $E7
C3/0DD2:	993602  	STA $0236,Y
C3/0DD5:	BD3E02  	LDA $023E,X
C3/0DD8:	85E7    	STA $E7
C3/0DDA:	B93E02  	LDA $023E,Y
C3/0DDD:	9D3E02  	STA $023E,X
C3/0DE0:	A5E7    	LDA $E7
C3/0DE2:	993E02  	STA $023E,Y
C3/0DE5:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0DE7:	7B      	TDC
C3/0DE8:	A54B    	LDA $4B
C3/0DEA:	AA      	TAX
C3/0DEB:	A528    	LDA $28
C3/0DED:	A8      	TAY
C3/0DEE:	BD4602  	LDA $0246,X
C3/0DF1:	85E0    	STA $E0
C3/0DF3:	B94602  	LDA $0246,Y
C3/0DF6:	9D4602  	STA $0246,X
C3/0DF9:	A5E0    	LDA $E0
C3/0DFB:	994602  	STA $0246,Y
C3/0DFE:	60      	RTS

C3/0DFF unknow

C3/0DFF:	7B      	TDC
C3/0E00:	A528    	LDA $28
C3/0E02:	0A      	ASL A
C3/0E03:	AA      	TAX
C3/0E04:	BC3602  	LDY $0236,X
C3/0E07:	844D    	STY $4D
C3/0E09:	60      	RTS

C3/0E0A unknow

C3/0E0A:	7B      	TDC
C3/0E0B:	A528    	LDA $28
C3/0E0D:	0A      	ASL A
C3/0E0E:	AA      	TAX
C3/0E0F:	BC3E02  	LDY $023E,X
C3/0E12:	844F    	STY $4F
C3/0E14:	A54F    	LDA $4F
C3/0E16:	854D    	STA $4D
C3/0E18:	A528    	LDA $28
C3/0E1A:	AA      	TAX
C3/0E1B:	BD4602  	LDA $0246,X
C3/0E1E:	854A    	STA $4A
C3/0E20:	A550    	LDA $50
C3/0E22:	38      	SEC
C3/0E23:	E54A    	SBC $4A
C3/0E25:	854E    	STA $4E
C3/0E27:	60      	RTS

C3/0E28 unknow

C3/0E28:	A00000  	LDY #$0000     
C3/0E2B:	8C1621  	STY $2116
C3/0E2E:	A04938  	LDY #$3849
C3/0E31:	8C0243  	STY $4302      (set address, 7E/3849)
C3/0E34:	8052    	BRA $0E88      (BRA $0E85...)
C3/0E36:	A00004  	LDY #$0400     (from C3/674F, C3/7E04, C3/8F13, C3/90E4, C3/AB46, C3/AD6B)
C3/0E39:	8C1621  	STY $2116
C3/0E3C:	A04940  	LDY #$4049
C3/0E3F:	8C0243  	STY $4302      (set address, 7E/4049)
C3/0E42:	8044    	BRA $0E88      (BRA $0E85...)
C3/0E44:	A00008  	LDY #$0800     (from C3/6752, C3/B933)
C3/0E47:	8C1621  	STY $2116
C3/0E4A:	A04948  	LDY #$4849
C3/0E4D:	8C0243  	STY $4302      (set address, 7E/4849)
C3/0E50:	8036    	BRA $0E88      (BRA $0E85...)
C3/0E52:	A00010  	LDY #$1000     
C3/0E55:	8C1621  	STY $2116
C3/0E58:	A04958  	LDY #$5849
C3/0E5B:	8C0243  	STY $4302      (set address, 7E/5849)
C3/0E5E:	8028    	BRA $0E88      (BRA $0E85...)
C3/0E60:	A00018  	LDY #$1800     (from C3/B92A)
C3/0E63:	8C1621  	STY $2116
C3/0E66:	A04968  	LDY #$6849
C3/0E69:	8C0243  	STY $4302      (set address, 7E/6849)
C3/0E6C:	801A    	BRA $0E88      (BRA $0E85...)
C3/0E6E:	A00040  	LDY #$4000     
C3/0E71:	8C1621  	STY $2116
C3/0E74:	A04978  	LDY #$7849
C3/0E77:	8C0243  	STY $4302      (set address, 7E/7849)
C3/0E7A:	800C    	BRA $0E88      (BRA $0E85...)
C3/0E7C:	A00048  	LDY #$4800     (from C3/1899, C3/31A5, C3/5D80, C3/7E0A, C3/AD5C, C3/B94B)
C3/0E7F:	8C1621  	STY $2116
C3/0E82:	A04988  	LDY #$8849
C3/0E85:	8C0243  	STY $4302      (set address, 7E/8849)
C3/0E88:	A901    	LDA #$01
C3/0E8A:	8D0043  	STA $4300
C3/0E8D:	A918    	LDA #$18
C3/0E8F:	8D0143  	STA $4301      (register address becomes $2118)
C3/0E92:	A97E    	LDA #$7E
C3/0E94:	8D0443  	STA $4304      (set bank)
C3/0E97:	A00010  	LDY #$1000
C3/0E9A:	8C0543  	STY $4305      (amount to transfer)
C3/0E9D:	A901    	LDA #$01
C3/0E9F:	8D0B42  	STA $420B      (turn on channel 0 of DMA)
C3/0EA2:	60      	RTS

C3/0EA3 unknow

C3/0EA3:	A5AE    	LDA $AE
C3/0EA5:	C921    	CMP #$21
C3/0EA7:	F008    	BEQ $0EB1      (if $AE is already #$21, don't output any sound for moving the finger)
C3/0EA9:	A921    	LDA #$21
C3/0EAB:	85AE    	STA $AE
C3/0EAD:	8F402100	STA $002140    (here if you can move and have moved, output sound and trigger no more sound)
C3/0EB1:	60      	RTS

C3/0EB2 click sound

C3/0EB2:	A920    	LDA #$20       (20 is the familiar "click" sound)
C3/0EB4:	8F402100	STA $002140
C3/0EB8:	60      	RTS

C3/0EB9 healing sound

C3/0EB9:	A923    	LDA #$23       (23 is the "heal" sound, like when you use a potion)
C3/0EBB:	8F402100	STA $002140
C3/0EBF:	60      	RTS

C3/0EC0 buzzer sound

Makes the Buzzer Sound
C3/0EC0:	A922    	LDA #$22       (22 is the "buzz" sound, as in "No, you can't do that")
C3/0EC2:	8F402100	STA $002140
C3/0EC6:	60      	RTS

C3/0EC7 shift sound

Makes the Shift Sound
C3/0EC7:	A924    	LDA #$24       (24 is the "shift" sound, deleting letters while naming a character)
C3/0EC9:	8F402100	STA $002140
C3/0ECD:	60      	RTS

C3/0ECE cha-ching sound

Makes the Cha-ching Sound (I'm guessing)
C3/0ECE:	A9BF    	LDA #$BF
C3/0ED0:	8F011300	STA $001301
C3/0ED4:	A918    	LDA #$18
C3/0ED6:	8F001300	STA $001300
C3/0EDA:	A980    	LDA #$80
C3/0EDC:	8F021300	STA $001302
C3/0EE0:	220400C5	JSL $C50004
C3/0EE4:	60      	RTS

C3/0EE5 true sound

Makes the "Trueeeeeeee" Sound
C3/0EE5:	A9C5    	LDA #$C5
C3/0EE7:	80E7    	BRA $0ED0

C3/0EE9 unknow

C3/0EE9:	A00000  	LDY #$0000
C3/0EEC:	8414    	STY $14
C3/0EEE:	A04938  	LDY #$3849
C3/0EF1:	8416    	STY $16
C3/0EF3:	A97E    	LDA #$7E
C3/0EF5:	8518    	STA $18
C3/0EF7:	A00010  	LDY #$1000
C3/0EFA:	8412    	STY $12
C3/0EFC:	60      	RTS

C3/0EFD unknow

C3/0EFD:	A00000  	LDY #$0000
C3/0F00:	8414    	STY $14
C3/0F02:	A04938  	LDY #$3849
C3/0F05:	8416    	STY $16
C3/0F07:	A97E    	LDA #$7E
C3/0F09:	8518    	STA $18
C3/0F0B:	A00008  	LDY #$0800
C3/0F0E:	8412    	STY $12
C3/0F10:	60      	RTS

C3/0F11 unknow

C3/0F11:	A00004  	LDY #$0400
C3/0F14:	8414    	STY $14
C3/0F16:	A04940  	LDY #$4049
C3/0F19:	8416    	STY $16
C3/0F1B:	A97E    	LDA #$7E
C3/0F1D:	8518    	STA $18
C3/0F1F:	A00008  	LDY #$0800
C3/0F22:	8412    	STY $12
C3/0F24:	60      	RTS

C3/0F25 unknow

C3/0F25:	A00040  	LDY #$4000
C3/0F28:	8414    	STY $14
C3/0F2A:	A04978  	LDY #$7849
C3/0F2D:	8416    	STY $16
C3/0F2F:	A97E    	LDA #$7E
C3/0F31:	8518    	STA $18
C3/0F33:	A00010  	LDY #$1000
C3/0F36:	8412    	STY $12
C3/0F38:	60      	RTS

C3/0F39 unknow

C3/0F39:	A00040  	LDY #$4000
C3/0F3C:	8414    	STY $14
C3/0F3E:	A04978  	LDY #$7849
C3/0F41:	8416    	STY $16
C3/0F43:	A97E    	LDA #$7E
C3/0F45:	8518    	STA $18
C3/0F47:	A00008  	LDY #$0800
C3/0F4A:	8412    	STY $12
C3/0F4C:	60      	RTS

C3/0F4D unknow

C3/0F4D:	A00044  	LDY #$4400
C3/0F50:	8414    	STY $14
C3/0F52:	A04980  	LDY #$8049
C3/0F55:	8416    	STY $16
C3/0F57:	A97E    	LDA #$7E
C3/0F59:	8518    	STA $18
C3/0F5B:	A00008  	LDY #$0800
C3/0F5E:	8412    	STY $12
C3/0F60:	60      	RTS

C3/0F61 unknow

C3/0F61:	A00040  	LDY #$4000
C3/0F64:	841B    	STY $1B
C3/0F66:	A04978  	LDY #$7849
C3/0F69:	841D    	STY $1D
C3/0F6B:	A97E    	LDA #$7E
C3/0F6D:	851F    	STA $1F
C3/0F6F:	A00008  	LDY #$0800
C3/0F72:	8419    	STY $19
C3/0F74:	60      	RTS

C3/0F75 unknow

C3/0F75:	A00044  	LDY #$4400
C3/0F78:	841B    	STY $1B
C3/0F7A:	A04980  	LDY #$8049
C3/0F7D:	841D    	STY $1D
C3/0F7F:	A97E    	LDA #$7E
C3/0F81:	851F    	STA $1F
C3/0F83:	A00008  	LDY #$0800
C3/0F86:	8419    	STY $19
C3/0F88:	60      	RTS

C3/0F89 unknow

C3/0F89:	641B    	STZ $1B
C3/0F8B:	641C    	STZ $1C
C3/0F8D:	60      	RTS

C3/0F8E copy function

Copy a block of 32 bytes
Coming in:
8-bit A holds bank source
16-bit Y holds destination
16-bit X holds address source
C3/0F8E:	85ED    	STA $ED        (source bank)
C3/0F90:	84E7    	STY $E7        (destination address)
C3/0F92:	86EB    	STX $EB        (source address)
C3/0F94:	A97E    	LDA #$7E
C3/0F96:	85E9    	STA $E9        (destination bank)
C3/0F98:	A400    	LDY $00
C3/0F9A:	C220    	REP #$20      (16 bit memory/accum.)
C3/0F9C:	B7EB    	LDA [$EB],Y
C3/0F9E:	97E7    	STA [$E7],Y
C3/0FA0:	C8      	INY
C3/0FA1:	C8      	INY
C3/0FA2:	C02000  	CPY #$0020
C3/0FA5:	D0F5    	BNE $0F9C
C3/0FA7:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0FA9:	60      	RTS

C3/0FAA unknow

C3/0FAA:	48      	PHA
C3/0FAB:	84E7    	STY $E7
C3/0FAD:	86EB    	STX $EB
C3/0FAF:	A97E    	LDA #$7E
C3/0FB1:	85E9    	STA $E9
C3/0FB3:	A900    	LDA #$00
C3/0FB5:	A0DD0F  	LDY #$0FDD
C3/0FB8:	207311  	JSR $1173      (put C3/0FDD in the queue)
C3/0FBB:	68      	PLA
C3/0FBC:	9FCA377E	STA $7E37CA,X
C3/0FC0:	A5E9    	LDA $E9
C3/0FC2:	9FC9367E	STA $7E36C9,X
C3/0FC6:	A5ED    	LDA $ED
C3/0FC8:	9FCA367E	STA $7E36CA,X
C3/0FCC:	C220    	REP #$20      (16 bit memory/accum.)
C3/0FCE:	A5E7    	LDA $E7
C3/0FD0:	9FC9337E	STA $7E33C9,X
C3/0FD4:	A5EB    	LDA $EB
C3/0FD6:	9F49347E	STA $7E3449,X
C3/0FDA:	E220    	SEP #$20      (8 bit memory/accum.)
C3/0FDC:	60      	RTS

C3/0FDD jump table

C3/0FDD:	AA      	TAX
C3/0FDE:	7CE10F  	JMP ($0FE1,X)

C3/0FE1:	E50F    	
C3/0FE3:	F60F    	

C3/0FE5 unknow

C3/0FE5:	A62D    	LDX $2D
C3/0FE7:	A91F    	LDA #$1F
C3/0FE9:	9D4933  	STA $3349,X
C3/0FEC:	A500    	LDA $00
C3/0FEE:	9D4A33  	STA $334A,X
C3/0FF1:	FE4936  	INC $3649,X    (execute the next entry in this queue's jump table)
C3/0FF4:	38      	SEC            (not done yet with this queue)
C3/0FF5:	60      	RTS