Final Fantasy VI:ROM map/Assembly C33
Jump to navigation
Jump to search
This is a sub-page for Final Fantasy VI:ROM map.
C3/3008 unknow
C3/3008: A08500 LDY #$0085 C3/300B: 84E7 STY $E7 C3/300D: A900 LDA #$00 C3/300F: 85E9 STA $E9 C3/3011: 4C4306 JMP $0643
C3/3014 unknow
C3/3014: A545 LDA $45 C3/3016: 8940 BIT #$40 C3/3018: D005 BNE $301F C3/301A: A44D LDY $4D C3/301C: 8C2D02 STY $022D C3/301F: A546 LDA $46 C3/3021: 8904 BIT #$04 C3/3023: F01B BEQ $3040 C3/3025: 8910 BIT #$10 C3/3027: F015 BEQ $303E C3/3029: A62D LDX $2D C3/302B: 202D07 JSR $072D C3/302E: A08500 LDY #$0085 C3/3031: 84E7 STY $E7 C3/3033: A900 LDA #$00 C3/3035: 85E9 STA $E9 C3/3037: 204306 JSR $0643 C3/303A: A555 LDA $55 C3/303C: F0ED BEQ $302B C3/303E: 38 SEC (not done with this queue yet) C3/303F: 60 RTS C3/3040: 18 CLC (this queue can be removed) C3/3041: 60 RTS
Menu Party selection area hotspot data C3/3042: 80 00 00 01 04
C3/3047 unknow
Finger positioning data is usually after hotspot data, but as it is this is currently unknown C3/3047: 0828 C3/3049: 0858 C3/304B: 0888 C3/304D: 08B8
C3/304F unknow
C3/304F: 7B TDC C3/3050: A09F30 LDY #$309F C3/3053: 4C7311 JMP $1173 (put C3/309F in the queue)
C3/3056 unknow
C3/3056: 7B TDC C3/3057: A0CA30 LDY #$30CA C3/305A: 4C7311 JMP $1173 (put C3/30CA in the queue)
C3/305D mosaic effect
This appears to be the mosaic effect C3/305D: 7B TDC C3/305E: A06430 LDY #$3064 C3/3061: 4C7311 JMP $1173 (put C3/3064 in the queue)
C3/3064 code and table unknow
C3/3064: AA TAX C3/3065: 7C6830 JMP ($3068,X) C3/3068: 6C30 C3/306A: 7930
C3/306C unknow
C3/306C: A62D LDX $2D C3/306E: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/3071: 9ECA33 STZ $33CA,X C3/3074: A908 LDA #$08 C3/3076: 9D4933 STA $3349,X C3/3079: A62D LDX $2D C3/307B: BD4933 LDA $3349,X C3/307E: F015 BEQ $3095 C3/3080: 7B TDC C3/3081: BDCA33 LDA $33CA,X C3/3084: AA TAX C3/3085: BF9730C3 LDA $C33097,X (load various mosaic intensities) C3/3089: 85B5 STA $B5 (save them to the variable) C3/308B: A62D LDX $2D C3/308D: FECA33 INC $33CA,X C3/3090: DE4933 DEC $3349,X C3/3093: 38 SEC (not done with this queue yet) C3/3094: 60 RTS C3/3095: 18 CLC (this queue can be removed) C3/3096: 60 RTS
C3/3097 data: mosaic intensities
C3/3097: 17 C3/3098: 27 C3/3099: 37 C3/309A: 47 C3/309B: 37 C3/309C: 27 C3/309D: 17 C3/309E: 07
C3/309F code and table
C3/309F: AA TAX C3/30A0: 7CA330 JMP ($30A3,X) C3/30A3: A730 C3/30A5: B130
C3/30A7 unknow
C3/30A7: A62D LDX $2D C3/30A9: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/30AC: A90F LDA #$0F C3/30AE: 9DCA33 STA $33CA,X C3/30B1: A420 LDY $20 C3/30B3: F00F BEQ $30C4 C3/30B5: A62D LDX $2D C3/30B7: BDCA33 LDA $33CA,X C3/30BA: 8544 STA $44 C3/30BC: DECA33 DEC $33CA,X C3/30BF: DECA33 DEC $33CA,X C3/30C2: 38 SEC (not done with this queue yet) C3/30C3: 60 RTS
C3/30C4 unknow
C3/30C4: A901 LDA #$01 C3/30C6: 8544 STA $44 C3/30C8: 18 CLC (this queue can be removed) C3/30C9: 60 RTS
C3/30CA code and table
C3/30CA: AA TAX C3/30CB: 7CCE30 JMP ($30CE,X) C3/30CE: D230 C3/30D0: DC30
C3/30D2 unknow
C3/30D2: A62D LDX $2D C3/30D4: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/30D7: A901 LDA #$01 C3/30D9: 9D4A34 STA $344A,X C3/30DC: A420 LDY $20 C3/30DE: F00F BEQ $30EF C3/30E0: A62D LDX $2D C3/30E2: BD4A34 LDA $344A,X C3/30E5: 8544 STA $44 C3/30E7: FE4A34 INC $344A,X C3/30EA: FE4A34 INC $344A,X C3/30ED: 38 SEC (not done with this queue yet) C3/30EE: 60 RTS
C3/30EF unknow
C3/30EF: A90F LDA #$0F C3/30F1: 8544 STA $44 C3/30F3: 18 CLC (this queue can be removed) C3/30F4: 60 RTS
C3/30F5 unknow
C3/30F5: 20993F JSR $3F99 C3/30F8: 20286A JSR $6A28 C3/30FB: 202D6A JSR $6A2D C3/30FE: 20196A JSR $6A19 C3/3101: 20416A JSR $6A41 C3/3104: A0CF31 LDY #$31CF C3/3107: 204103 JSR $0341 (draw window) C3/310A: A0D331 LDY #$31D3 C3/310D: 204103 JSR $0341 (draw window) C3/3110: A0C731 LDY #$31C7 C3/3113: 204103 JSR $0341 (draw window) C3/3116: A0BB31 LDY #$31BB C3/3119: 204103 JSR $0341 (draw window that holds main menu options) C3/311C: 207031 JSR $3170 (apply gradient, and draw a couple windows) C3/311F: 206C32 JSR $326C (prepare time for displaying) C3/3122: 20F331 JSR $31F3 C3/3125: 4C9F31 JMP $319F
C3/3128 unknow
C3/3128: 20993F JSR $3F99 C3/312B: 20826E JSR $6E82 C3/312E: 20096C JSR $6C09 C3/3131: 20A831 JSR $31A8 C3/3134: A0C731 LDY #$31C7 C3/3137: 204103 JSR $0341 (draw window) C3/313A: A0CB31 LDY #$31CB C3/313D: 204103 JSR $0341 (draw window) C3/3140: 207031 JSR $3170 C3/3143: 209532 JSR $3295 C3/3146: 20D731 JSR $31D7 C3/3149: 4C9F31 JMP $319F
C3/314C unknow
C3/314C: 20993F JSR $3F99 C3/314F: 20826E JSR $6E82 C3/3152: 20096C JSR $6C09 C3/3155: 20A831 JSR $31A8 C3/3158: A0C731 LDY #$31C7 C3/315B: 204103 JSR $0341 (draw window) C3/315E: A0CB31 LDY #$31CB C3/3161: 204103 JSR $0341 (draw window) C3/3164: 207031 JSR $3170 C3/3167: 209532 JSR $3295 C3/316A: 20E531 JSR $31E5 C3/316D: 4C9F31 JMP $319F
C3/3170 unknow
C3/3170: 7B TDC C3/3171: 221DCAD4 JSL $D4CA1D (apply gradient 0 to the screen) C3/3175: A0BF31 LDY #$31BF C3/3178: 204103 JSR $0341 (draw window that holds time) C3/317B: A0C331 LDY #$31C3 C3/317E: 204103 JSR $0341 (draw window that holds steps and money) C3/3181: 20520E JSR $0E52 C3/3184: 208A31 JSR $318A C3/3187: 4C2132 JMP $3221
C3/318A unknow
C3/318A: 20156A JSR $6A15 C3/318D: 203C6A JSR $6A3C C3/3190: 20466A JSR $6A46 C3/3193: 20F132 JSR $32F1 (get character 1 name, stats, etc displayed) C3/3196: 203D33 JSR $333D (get character 2 name, stats, etc displayed) C3/3199: 208933 JSR $3389 (get character 3 name, stats, etc displayed) C3/319C: 4CD533 JMP $33D5 (get character 4 name, stats, etc displayed)
C3/319F unknow
C3/319F: 20280E JSR $0E28 C3/31A2: 206E0E JSR $0E6E C3/31A5: 4C7C0E JMP $0E7C
C3/31A8 unknow
C3/31A8: A566 LDA $66 C3/31AA: C901 CMP #$01 C3/31AC: F007 BEQ $31B5 C3/31AE: C902 CMP #$02 C3/31B0: F006 BEQ $31B8 C3/31B2: 4CD93A JMP $3AD9 C3/31B5: 4CA13A JMP $3AA1 C3/31B8: 4CBD3A JMP $3ABD
C3/31BB data: windows
Window data C3/31BB: B758060D (window that holds the main menu options) C3/31BF: 775C0602 (window that holds time) C3/31C3: 755D0705 (window that holds steps and money) C3/31C7: 8B581C18 C3/31CB: B558070A C3/31CF: B9600702 C3/31D3: 85580102
C3/31D7 unknow
C3/31D7: A920 LDA #$20 C3/31D9: 8529 STA $29 (set text color to white) C3/31DB: A26537 LDX #$3765 C3/31DE: A00A00 LDY #$000A C3/31E1: 20BA69 JSR $69BA (display "Yes/No" "Erasing data. Okay?", also JMP fool!) C3/31E4: 60 RTS
C3/31E5 unknow
C3/31E5: A920 LDA #$20 C3/31E7: 8529 STA $29 (set text color to white) C3/31E9: A25D37 LDX #$375D C3/31EC: A00800 LDY #$0008 C3/31EF: 20BA69 JSR $69BA (display "Yes/No" "This data?", also JMP fool!) C3/31F2: 60 RTS
C3/31F3 unknow
C3/31F3: A920 LDA #$20 C3/31F5: 8529 STA $29 (set text color to white) C3/31F7: A22937 LDX #$3729 C3/31FA: A00800 LDY #$0008 C3/31FD: 20BA69 JSR $69BA (display "Item, Skills, Relic, and Status") C3/3200: A920 LDA #$20 C3/3202: 8529 STA $29 (set text color to white) C3/3204: A25937 LDX #$3759 C3/3207: A00400 LDY #$0004 C3/320A: 20BA69 JSR $69BA (display "Equip and Config") C3/320D: AD0102 LDA $0201 (is saving available?) C3/3210: 1004 BPL $3216 (branch if not) C3/3212: A920 LDA #$20 (set text color to white) C3/3214: 8002 BRA $3218 C3/3216: A924 LDA #$24 (set text color to gray) C3/3218: 8529 STA $29 C3/321A: A0FD37 LDY #$37FD C3/321D: 20F902 JSR $02F9 (display "Save") C3/3220: 60 RTS (no need for this, JMP $02F9 would be just as good)
C3/3221 unknow
C3/3221: A920 LDA #$20 C3/3223: 8529 STA $29 (set text color to white) C3/3225: A00B38 LDY #$380B C3/3228: 20F902 JSR $02F9 (display ":") C3/322B: A92C LDA #$2C C3/322D: 8529 STA $29 (set text color to ) C3/322F: A22337 LDX #$3723 C3/3232: A00600 LDY #$0006 C3/3235: 20BA69 JSR $69BA (display "Time, Steps, and Order") C3/3238: A01738 LDY #$3817 C3/323B: 20F902 JSR $02F9 (display "GP") C3/323E: 20CE32 JSR $32CE (GP check, make sure it's not beyond 9,999,999) C3/3241: A920 LDA #$20 C3/3243: 8529 STA $29 (set text color to white) C3/3245: AC6618 LDY $1866 (steps, bytes 1 & 2) C3/3248: 84F1 STY $F1 C3/324A: AD6818 LDA $1868 (steps, byte 3) C3/324D: 85F3 STA $F3 C3/324F: 208205 JSR $0582 C3/3252: A2F77D LDX #$7DF7 (position of steps amount) C3/3255: 20AC04 JSR $04AC C3/3258: AC6018 LDY $1860 C3/325B: 84F1 STY $F1 C3/325D: AD6218 LDA $1862 C3/3260: 85F3 STA $F3 C3/3262: 208205 JSR $0582 C3/3265: A2B77E LDX #$7EB7 (position of GP amount) C3/3268: 20AC04 JSR $04AC (JMP fool!) C3/326B: 60 RTS
C3/326C unknow
C3/326C: AD8811 LDA $1188 C3/326F: 8910 BIT #$10 C3/3271: F016 BEQ $3289 C3/3273: AC8911 LDY $1189 (is $1189 the elapsed time in seconds?) C3/3276: 20B232 JSR $32B2 (if so, this gives minutes) C3/3279: 20B232 JSR $32B2 (and this would give hours) C3/327C: A5E7 LDA $E7 (load A with hours) C3/327E: 8D6318 STA $1863 (put hours in $1863) C3/3281: AD1642 LDA $4216 (remainder is excess minutes) C3/3284: 8D6418 STA $1864 (put that in $1864) C3/3287: 800C BRA $3295 C3/3289: AC1B02 LDY $021B (Hours and minutes) C3/328C: 8C6318 STY $1863 (store in SRAM) C3/328F: AD1D02 LDA $021D (Seconds amd frames) C3/3292: 8D6518 STA $1865 (store in SRAM) C3/3295: A920 LDA #$20 C3/3297: 8529 STA $29 (set text color to white) C3/3299: AD6318 LDA $1863 (hours) C3/329C: 20E004 JSR $04E0 (convert leading 0's to spaces) C3/329F: A2FB7C LDX #$7CFB (The position, I believe) C3/32A2: 20B604 JSR $04B6 (2 digits to display) C3/32A5: AD6418 LDA $1864 (minutes) C3/32A8: 20F904 JSR $04F9 (convert minutes to a displayable format) C3/32AB: A2017D LDX #$7D01 C3/32AE: 20B604 JSR $04B6 (JMP fool!, 2 digits to display) C3/32B1: 60 RTS
C3/32B2 divider function
(Pass in Y, out comes Y/60 in $E7) (Useful for taking frames and getting seconds, minutes and hours) C3/32B2: 8C0442 STY $4204 C3/32B5: A93C LDA #$3C (60) C3/32B7: 8D0642 STA $4206 C3/32BA: EA NOP (2 cycles) C3/32BB: EA NOP (4 cycles) C3/32BC: EA NOP (6 cycles) C3/32BD: EA NOP (8 cycles) C3/32BE: EA NOP (10 cycles) C3/32BF: EA NOP (12 cycles) C3/32C0: EA NOP (14 cycles) C3/32C1: EA NOP (16 cycles) C3/32C2: EA NOP (18 cycles) C3/32C3: EA NOP (20 cycles) C3/32C4: EA NOP (22 cycles) C3/32C5: EA NOP (24 cycles) C3/32C6: EA NOP (26 cycles) C3/32C7: EA NOP (28 cycles) C3/32C8: AC1442 LDY $4214 (32 or 33 cycles, massive overkill) C3/32CB: 84E7 STY $E7 (unless NMI needs to waste this much time, this could be greatly optimized) C3/32CD: 60 RTS
C3/32CE check gold capacity
Gold handler, make sure that you don't have more than 9,999,999 C3/32CE: A97F LDA #$7F (127...) C3/32D0: CD6018 CMP $1860 (compare against low byte of gold) C3/32D3: A996 LDA #$96 (150...) C3/32D5: ED6118 SBC $1861 (subtract middle byte of gold, carry will be set/clear depending on above) C3/32D8: A998 LDA #$98 (152...) C3/32DA: ED6218 SBC $1862 (subtract high byte of gold, carry will be set/clear depending on previous SBC) C3/32DD: B00B BCS $32EA (if carry is set, there was no overflow, you have less than 9,999,999 gold) C3/32DF: A07F96 LDY #$967F C3/32E2: 8C6018 STY $1860 C3/32E5: A998 LDA #$98 C3/32E7: 8D6218 STA $1862 (make overall gold 9999999) C3/32EA: 60 RTS
C3/32EB unknow
C3/32EB: 20220A JSR $0A22 C3/32EE: 4C1B34 JMP $341B
C3/32F1 unknow
C3/32F1: A569 LDA $69 C3/32F3: 30F6 BMI $32EB (branch if no character in slot) C3/32F5: A66D LDX $6D C3/32F7: 8667 STX $67 C3/32F9: A924 LDA #$24 C3/32FB: 8529 STA $29 (set text color to blue) C3/32FD: A24137 LDX #$3741 C3/3300: A00600 LDY #$0006 C3/3303: 20BA69 JSR $69BA (display character 1's "LV," "HP," and "MP") C3/3306: A02739 LDY #$3927 C3/3309: A27815 LDX #$1578 C3/330C: 6448 STZ $48 C3/330E: 202734 JSR $3427 (display character 1's status ailments?) C3/3311: A23137 LDX #$3731 C3/3314: 86F1 STX $F1 (C3/69BA handles this already...) C3/3316: A00400 LDY #$0004 C3/3319: 84EF STY $EF (C3/69BA handles this already...) C3/331B: 20BA69 JSR $69BA (display character 1's "/'s") C3/331E: A01939 LDY #$3919 C3/3321: 20CF34 JSR $34CF (display character name) C3/3324: A22D33 LDX #$332D C3/3327: 206C0C JSR $0C6C (display level, HP, MP, etc) C3/332A: 4C220A JMP $0A22
C3/332D data: positions for level, HP and MP (char 1)
Data: Positioning for Level, HP, MP for character slot 1 in main menu C3/332D: A739 (level's position) C3/332F: E339 (current HP's position) C3/3331: ED39 (max HP's position) C3/3333: 233A (current MP's position) C3/3335: 2D3A (max MP's position)
C3/3337 unknow
C3/3337: 204B0A JSR $0A4B C3/333A: 4C1B34 JMP $341B
C3/333D unknow
C3/333D: A56A LDA $6A C3/333F: 30F6 BMI $3337 (branch if no character in slot) C3/3341: A66F LDX $6F C3/3343: 8667 STX $67 C3/3345: A924 LDA #$24 C3/3347: 8529 STA $29 (set text color to blue) C3/3349: A24737 LDX #$3747 C3/334C: A00600 LDY #$0006 C3/334F: 20BA69 JSR $69BA (display character 2's "LV," "HP," and "MP") C3/3352: A0A73A LDY #$3AA7 C3/3355: A27845 LDX #$4578 C3/3358: 6448 STZ $48 C3/335A: 202734 JSR $3427 (display character 2's status ailments?) C3/335D: A23537 LDX #$3735 C3/3360: 86F1 STX $F1 (C3/69BA handles this already...) C3/3362: A00400 LDY #$0004 C3/3365: 84EF STY $EF (C3/69BA handles this already...) C3/3367: 20BA69 JSR $69BA (display character 2's "/'s") C3/336A: A0993A LDY #$3A99 C3/336D: 20CF34 JSR $34CF (display character name) C3/3370: A27933 LDX #$3379 C3/3373: 206C0C JSR $0C6C (display level, HP, MP, etc) C3/3376: 4C4B0A JMP $0A4B
C3/3379 data: positions for level, hp and mp (char 2)
Data: Positioning for Level, HP, MP for character slot 2 in main menu C3/3379: 273B (level's position) C3/337B: 633B (current HP's position) C3/337D: 6D3B (max HP's position) C3/3380: A33B (current MP's position) C3/3381: AD3B (max MP's position)
C3/3384 unknow
C3/3384: 20760A JSR $0A76 C3/3386: 4C1B34 JMP $341B
C3/3389 unknow
C3/3389: A56B LDA $6B C3/338B: 30F6 BMI $3383 (branch if no character in slot) C3/338D: A671 LDX $71 C3/338F: 8667 STX $67 C3/3391: A924 LDA #$24 C3/3393: 8529 STA $29 (set text color to blue) C3/3395: A24D37 LDX #$374D C3/3398: A00600 LDY #$0006 C3/339B: 20BA69 JSR $69BA (display character 3's "LV," "HP," and "MP") C3/339E: A0273C LDY #$3C27 C3/33A1: A27875 LDX #$7578 C3/33A4: 6448 STZ $48 C3/33A6: 202734 JSR $3427 (display character 3's status ailments?) C3/33A9: A23937 LDX #$3739 C3/33AC: 86F1 STX $F1 (C3/69BA handles this already...) C3/33AE: A00400 LDY #$0004 C3/33B1: 84EF STY $EF (C3/69BA handles this already...) C3/33B3: 20BA69 JSR $69BA (display character 3's "/'s") C3/33B6: A0193C LDY #$3C19 C3/33B9: 20CF34 JSR $34CF (display character name) C3/33BC: A2C533 LDX #$33C5 C3/33BF: 206C0C JSR $0C6C (display level, HP, MP, etc) C3/33C2: 4C760A JMP $0A76
C3/33C5 data: positions for level, hp and mp (char 3)
Data: Positioning for Level, HP, MP, for character slot 3 in main menu C3/33C5: A73C (level's position) C3/33C7: E33C (current HP's position) C3/33C9: ED3C (max HP's position) C3/33CB: 233D (current MP's position) C3/33CD: 2D3D (max MP's position)
C3/33CF unknow
C3/33CF: 20A10A JSR $0AA1 C3/33D2: 4C1B34 JMP $341B
C3/33D5 unknow
C3/33D5: A56C LDA $6C C3/33D7: 30F6 BMI $33CF (branch if no character in slot) C3/33D9: A673 LDX $73 C3/33DB: 8667 STX $67 C3/33DD: A924 LDA #$24 C3/33DF: 8529 STA $29 (set text color to blue) C3/33E1: A25337 LDX #$3753 C3/33E4: A00600 LDY #$0006 C3/33E7: 20BA69 JSR $69BA (display character 4's "LV," "HP," and "MP") C3/33EA: A0A73D LDY #$3DA7 C3/33ED: A278A5 LDX #$A578 C3/33F0: 6448 STZ $48 C3/33F2: 202734 JSR $3427 (display character 4's status ailments?) C3/33F5: A23D37 LDX #$373D C3/33F8: 86F1 STX $F1 (C3/69BA handles this already...) C3/33FA: A00400 LDY #$0004 C3/33FD: 84EF STY $EF (C3/69BA handles this already...) C3/33FF: 20BA69 JSR $69BA (display character 4's "/'s") C3/3402: A0993D LDY #$3D99 C3/3405: 20CF34 JSR $34CF (display character name) C3/3408: A21134 LDX #$3411 C3/340B: 206C0C JSR $0C6C (display level, HP, MP, etc) C3/340E: 4CA10A JMP $0AA1
C3/3411 data: positions for level, hp and mp (char 4)
Data: Positioning for Level, HP, MP, for character slot 4 in main menu C3/3411: 273E (level's position) C3/3413: 633E (current HP's position) C3/3415: 6D3E (max HP's position) C3/3417: A33E (current MP's position) C3/3419: AD3E (max MP's position)
C3/341B unknow
C3/341B: C220 REP #$20 (16 bit memory/accum.) C3/341D: A9D800 LDA #$00D8 C3/3420: 9F4A347E STA $7E344A,X C3/3424: E220 SEP #$20 (8 bit memory/accum.) C3/3426: 60 RTS
C3/3427 unknow
C3/3427: 86E7 STX $E7 C3/3429: 201935 JSR $3519 C3/342C: B91400 LDA $0014,Y (status byte 1) C3/342F: 307F BMI $34B0 (branch if dead) C3/3431: 2970 AND #$70 C3/3433: 85E1 STA $E1 (save the other statuses) C3/3435: B91400 LDA $0014,Y (status byte 1) C3/3438: 2907 AND #$07 (keep blind, zombie, and poison) C3/343A: 0A ASL A C3/343B: 85E2 STA $E2 C3/343D: B91500 LDA $0015,Y (status byte 4) C3/3440: 2980 AND #$80 (filter out float) C3/3442: 05E1 ORA $E1 C3/3444: 05E2 ORA $E2 C3/3446: 85E1 STA $E1 C3/3448: F05F BEQ $34A9 (status is normal, so exit out) C3/344A: 64F1 STZ $F1 C3/344C: 64F2 STZ $F2 C3/344E: A20700 LDX #$0007 C3/3451: DA PHX C3/3452: 0A ASL A C3/3453: 9047 BCC $349C C3/3455: 48 PHA C3/3456: A903 LDA #$03 C3/3458: A0427B LDY #$7B42 C3/345B: 207311 JSR $1173 (put C3/7B42 in the queue) C3/345E: A901 LDA #$01 C3/3460: 9F4A367E STA $7E364A,X C3/3464: A548 LDA $48 C3/3466: 9F49367E STA $7E3649,X C3/346A: 9B TXY C3/346B: A6F1 LDX $F1 C3/346D: 8B PHB C3/346E: A97E LDA #$7E C3/3470: 48 PHA C3/3471: AB PLB C3/3472: C220 REP #$20 (16 bit memory/accum.) C3/3474: BF25ECD8 LDA $D8EC25,X (get ailment icons from the VWF?) C3/3478: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/347B: E220 SEP #$20 (8 bit memory/accum.) C3/347D: A5E7 LDA $E7 C3/347F: 99CA33 STA $33CA,Y C3/3482: A5E8 LDA $E8 C3/3484: 994A34 STA $344A,Y C3/3487: 7B TDC C3/3488: 99CB33 STA $33CB,Y C3/348B: 994B34 STA $344B,Y C3/348E: A9D8 LDA #$D8 C3/3490: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/3493: AB PLB C3/3494: 18 CLC C3/3495: A90A LDA #$0A C3/3497: 65E7 ADC $E7 C3/3499: 85E7 STA $E7 C3/349B: 68 PLA C3/349C: E6F1 INC $F1 C3/349E: E6F1 INC $F1 C3/34A0: FA PLX C3/34A1: CA DEX C3/34A2: D0AD BNE $3451 C3/34A4: A920 LDA #$20 C3/34A6: 8529 STA $29 (set text color to white) C3/34A8: 60 RTS
C3/34A9 unknow
C3/34A9: A920 LDA #$20 (status is normal) C3/34AB: 8529 STA $29 (set text color to white) C3/34AD: 4CE534 JMP $34E5 (a BRA would work here, and better yet, since it jumps to an RTS, an RTS would work here too)
C3/34B0 unknow
C3/34B0: A28B9E LDX #$9E8B C3/34B3: 8E8121 STX $2181 C3/34B6: A600 LDX $00 C3/34B8: BF1B37C3 LDA $C3371B,X (get finger positioning data) C3/34BC: 8D8021 STA $2180 C3/34BF: E8 INX C3/34C0: E00800 CPX #$0008 C3/34C3: D0F3 BNE $34B8 C3/34C5: 9C8021 STZ $2180 (end this string) C3/34C8: A928 LDA #$28 C3/34CA: 8529 STA $29 (set text color to gray) C3/34CC: 4CD97F JMP $7FD9
C3/34CF draw char name
Draw name of character onscreen at 16-bit Y C3/34CF: 201935 JSR $3519 C3/34D2: A20600 LDX #$0006 (length of character name) C3/34D5: B90200 LDA $0002,Y C3/34D8: 8D8021 STA $2180 (write a letter) C3/34DB: C8 INY C3/34DC: CA DEX C3/34DD: D0F6 BNE $34D5 C3/34DF: 9C8021 STZ $2180 (end this string) C3/34E2: 4CD97F JMP $7FD9 (finish the drawing process) C3/34E5: 60 RTS (this is left over from the original japanese routine, which displays class names)
C3/34E6 display esper name
Esper name displaying in most menus (this is not used to generate the esper list!) C3/34E6: 201935 JSR $3519 C3/34E9: B91E00 LDA $001E,Y C3/34EC: C9FF CMP #$FF C3/34EE: F018 BEQ $3508 (branch if no esper equipped) C3/34F0: 0A ASL A C3/34F1: 0A ASL A C3/34F2: 0A ASL A C3/34F3: AA TAX C3/34F4: A00800 LDY #$0008 (esper name length) C3/34F7: BFE1F6E6 LDA $E6F6E1,X (Load Esper name) C3/34FB: 8D8021 STA $2180 C3/34FE: E8 INX C3/34FF: 88 DEY C3/3500: D0F5 BNE $34F7 C3/3502: 9C8021 STZ $2180 (end this string) C3/3505: 4CD97F JMP $7FD9
C3/3508 unknow
C3/3508: A00800 LDY #$0008 C3/350B: A9FF LDA #$FF C3/350D: 8D8021 STA $2180 (blank esper name) C3/3510: 88 DEY (have we done 8 letters yet?) C3/3511: D0FA BNE $350D (branch if not) C3/3513: 9C8021 STZ $2180 (end this string) C3/3516: 4CD97F JMP $7FD9
C3/3519 unknow
Take 16-bit Y and make it position onscreen, then transfer it to A and put it in VRAM C3/3519: A2899E LDX #$9E89 C3/351C: 8E8121 STX $2181 C3/351F: C220 REP #$20 (16 bit memory/accum.) C3/3521: 98 TYA C3/3522: E220 SEP #$20 (8 bit memory/accum.) C3/3524: 8D8021 STA $2180 C3/3527: EB XBA C3/3528: 8D8021 STA $2180 C3/352B: 7B TDC C3/352C: A467 LDY $67 C3/352E: 60 RTS
C3/352F fade out screen
This would appear to be the "fade out screen" routine C3/352F: A980 LDA #$80 C3/3531: 8D0021 STA $2100 (turn the screen off) C3/3534: 201411 JSR $1114 (erase all onscreen sprites) C3/3537: 9C0042 STZ $4200 (turn off NMI, auto joypad read, etc) C3/353A: 9C0B42 STZ $420B (turn off DMA) C3/353D: 9C0C42 STZ $420C (turn off HDMA) C3/3540: 60 RTS
C3/3541 unknow
C3/3541: A901 LDA #$01 C3/3543: 8544 STA $44 C3/3545: 4C6813 JMP $1368 (trigger NMI)
C3/3548 unknow
C3/3548: 20390F JSR $0F39 C3/354B: 4C6C32 JMP $326C
C3/354E unknow
C3/354E: A600 LDX $00 (from C3/1AC0) C3/3550: A917 LDA #$17 C3/3552: 9F099A7E STA $7E9A09,X C3/3556: E8 INX C3/3557: E0DF00 CPX #$00DF C3/355A: D0F6 BNE $3552 C3/355C: A940 LDA #$40 C3/355E: 8D6043 STA $4360 (set transfer method to...?) C3/3561: A92C LDA #$2C C3/3563: 8D6143 STA $4361 (register address becomes $212C) C3/3566: A07B35 LDY #$357B C3/3569: 8C6243 STY $4362 (set address) C3/356C: A9C3 LDA #$C3 C3/356E: 8D6443 STA $4364 (set bank, C3/357B) C3/3571: A97E LDA #$7E C3/3573: 8D6743 STA $4367 C3/3576: A940 LDA #$40 C3/3578: 0443 TSB $43 (eventually enable channel 6 of HDMA) C3/357A: 60 RTS
C3/357B hdma transfer table
C3/357B: F0 C3/357C: 09 C3/357D: 9A C3/357E: F0 C3/357F: 79 C3/3580: 9A C3/3581: 00
C3/3582 unknow
C3/3582: A528 LDA $28 C3/3584: C54B CMP $4B C3/3586: 9015 BCC $359D C3/3588: A903 LDA #$03 C3/358A: A0D435 LDY #$35D4 C3/358D: 207311 JSR $1173 (put C3/35D4 in the queue) C3/3590: 20C135 JSR $35C1 C3/3593: A903 LDA #$03 C3/3595: A01F36 LDY #$361F C3/3598: 207311 JSR $1173 (put C3/361F in the queue) C3/359B: 8015 BRA $35B2 C3/359D: A903 LDA #$03 C3/359F: A0D435 LDY #$35D4 C3/35A2: 207311 JSR $1173 (put C3/35D4 in the queue) C3/35A5: 20B235 JSR $35B2 C3/35A8: A903 LDA #$03 C3/35AA: A01F36 LDY #$361F C3/35AD: 207311 JSR $1173 (put C3/361F in the queue) C3/35B0: 800F BRA $35C1 C3/35B2: 9B TXY C3/35B3: 7B TDC C3/35B4: A528 LDA $28 C3/35B6: AA TAX C3/35B7: BFD035C3 LDA $C335D0,X C3/35BB: BB TYX C3/35BC: 9FCA337E STA $7E33CA,X C3/35C0: 60 RTS
C3/35C1 unknow
C3/35C1: 9B TXY C3/35C2: 7B TDC C3/35C3: A54B LDA $4B C3/35C5: AA TAX C3/35C6: BFD035C3 LDA $C335D0,X C3/35CA: BB TYX C3/35CB: 9FCA337E STA $7E33CA,X C3/35CF: 60 RTS
C3/35D0 data
C3/35D0: 0D C3/35D1: 3D C3/35D2: 6D C3/35D3: 9D
C3/35D4 code and table
C3/35D4: AA TAX C3/35D5: 7CD835 JMP ($35D8,X) C3/35D8: DE35 C3/35DA: E335 C3/35DC: 0236
C3/35DE unknow
C3/35DE: A62D LDX $2D C3/35E0: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/35E3: A42D LDY $2D C3/35E5: A522 LDA $22 C3/35E7: C90C CMP #$0C C3/35E9: F00F BEQ $35FA C3/35EB: 7B TDC C3/35EC: B9CA33 LDA $33CA,Y C3/35EF: AA TAX C3/35F0: A906 LDA #$06 C3/35F2: 207736 JSR $3677 C3/35F5: 99CA33 STA $33CA,Y C3/35F8: 38 SEC (not done with this queue yet) C3/35F9: 60 RTS
C3/35FA unknow
C3/35FA: A62D LDX $2D C3/35FC: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/35FF: DECA33 DEC $33CA,X C3/3602: A545 LDA $45 C3/3604: 8908 BIT #$08 C3/3606: F013 BEQ $361B C3/3608: A42D LDY $2D C3/360A: A522 LDA $22 C3/360C: F00F BEQ $361D C3/360E: 7B TDC C3/360F: B9CA33 LDA $33CA,Y C3/3612: AA TAX C3/3613: A917 LDA #$17 C3/3615: 208D36 JSR $368D C3/3618: 99CA33 STA $33CA,Y C3/361B: 38 SEC (not done with this queue yet) C3/361C: 60 RTS C3/361D: 18 CLC (this queue can be removed) C3/361E: 60 RTS
C3/361F code and table
C3/361F: AA TAX C3/3620: 7C2336 JMP ($3623,X) C3/3623: 2936 C3/3625: 3736 C3/3627: 5836
C3/3629 unknow
C3/3629: A62D LDX $2D C3/362B: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/362E: BDCA33 LDA $33CA,X C3/3631: 18 CLC C3/3632: 692F ADC #$2F C3/3634: 9DCA33 STA $33CA,X C3/3637: A42D LDY $2D C3/3639: A522 LDA $22 C3/363B: C90C CMP #$0C C3/363D: F011 BEQ $3650 C3/363F: 7B TDC C3/3640: B9CA33 LDA $33CA,Y C3/3643: AA TAX C3/3644: A906 LDA #$06 C3/3646: 208D36 JSR $368D C3/3649: 99CA33 STA $33CA,Y C3/364C: C622 DEC $22 C3/364E: 38 SEC (not done with this queue yet) C3/364F: 60 RTS
C3/3650 unknow
C3/3650: A62D LDX $2D C3/3652: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/3655: FECA33 INC $33CA,X C3/3658: A545 LDA $45 C3/365A: 8908 BIT #$08 C3/365C: F015 BEQ $3673 C3/365E: A42D LDY $2D C3/3660: A522 LDA $22 C3/3662: F011 BEQ $3675 C3/3664: 7B TDC C3/3665: B9CA33 LDA $33CA,Y C3/3668: AA TAX C3/3669: A917 LDA #$17 C3/366B: 207736 JSR $3677 C3/366E: 99CA33 STA $33CA,Y C3/3671: C622 DEC $22 C3/3673: 38 SEC (not done with this queue yet) C3/3674: 60 RTS C3/3675: 18 CLC (this queue can be removed) C3/3676: 60 RTS
C3/3677 unknow
C3/3677: 9F099A7E STA $7E9A09,X C3/367B: E8 INX C3/367C: 9F099A7E STA $7E9A09,X C3/3680: E8 INX C3/3681: 9F099A7E STA $7E9A09,X C3/3685: E8 INX C3/3686: 9F099A7E STA $7E9A09,X C3/368A: E8 INX C3/368B: 8A TXA C3/368C: 60 RTS
C3/368D unknow
C3/368D: 9F099A7E STA $7E9A09,X C3/3691: CA DEX C3/3692: 9F099A7E STA $7E9A09,X C3/3696: CA DEX C3/3697: 9F099A7E STA $7E9A09,X C3/369B: CA DEX C3/369C: 9F099A7E STA $7E9A09,X C3/36A0: CA DEX C3/36A1: 8A TXA C3/36A2: 60 RTS
C3/36A3 unknow
C3/36A3: A902 LDA #$02 (from C3/1AC8, C3/1CA8, C3/1D0B) C3/36A5: 8D5043 STA $4350 (set transfer method to...?) C3/36A8: A912 LDA #$12 C3/36AA: 8D5143 STA $4351 (register address becomes $2112) C3/36AD: A0C236 LDY #$36C2 C3/36B0: 8C5243 STY $4352 (set the address) C3/36B3: A9C3 LDA #$C3 C3/36B5: 8D5443 STA $4354 (set the bank, C3/36C2) C3/36B8: A9C3 LDA #$C3 C3/36BA: 8D5743 STA $4357 C3/36BD: A920 LDA #$20 C3/36BF: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/36C1: 60 RTS
C3/36C2 hdma transfer
HDMA transfer table for main menu text on layer 3 (item, skills, equip, etc) C3/36C2: 0F0000 (15 scanlines, 0 pixel shift) C3/36C5: 0F0300 (15 scanlines, 3 pixel shift) C3/36C8: 0F0400 (15 scanlines, 4 pixel shift) C3/36CB: 0F0500 (15 scanlines, 5 pixel shift) C3/36CE: 0F0600 (15 scanlines, 6 pixel shift) C3/36D1: 0F0700 (15 scanlines, 7 pixel shift) C3/36D4: 0F0800 (15 scanlines, 8 pixel shift) C3/36D7: 0F0900 (15 scanlines, 9 pixel shift) C3/36DA: 070800 (7 scanlines, 8 pixel shift) C3/36DD: 080000 (8 scanlines, 0 pixel shift) C3/36E0: 080000 (8 scanlines, 0 pixel shift) C3/36E3: 180000 (24 scanlines, 0 pixel shift, 167 scanlines total) C3/36E6: 00 (end)
C3/36E7 unknow
C3/36E7: A520 LDA $20 C3/36E8: D004 BNE $36EF C3/36EB: A527 LDA $27 C3/36ED: 8526 STA $26 C3/36EF: C220 REP #$20 (16 bit memory/accum.) C3/36F1: A535 LDA $35 C3/36F3: 18 CLC C3/36F4: 659C ADC $9C C3/36F6: 8535 STA $35 C3/36F8: 8539 STA $39 C3/36FA: 853D STA $3D C3/36FC: E220 SEP #$20 (8 bit memory/accum.) C3/36FE: 60 RTS
C3/36FF unknow
C3/36FF: A00E37 LDY #$370E C3/3702: 4CFE05 JMP $05FE
C3/3705 unknow
C3/3705: 202D07 JSR $072D C3/3708: A01337 LDY #$3713 C3/370B: 4C4006 JMP $0640
Hotspot data for status menu C3/370E: 80 00 00 01 04
C3/3713 data
C3/3713: 9059 (first command, normally "Fight") C3/3715: 9065 (second command, normally skill goes here) C3/3717: 9071 (third command, normally "Magic") C3/3719: 907D (fourth command, normally "Item")
C3/371B: 96A8 C3/371D: AEA7 C3/371F: 9D9E C3/3121: 9DFF
C3/3723 data: strings
C3/3723: 0438 ("Time") C3/3725: 0F38 ("Steps") C3/3727: 5038 ("Order") C3/3729: CB37 ("Item") C3/372B: D237 ("Skills") C3/372D: E337 ("Relic") C3/372F: EB37 ("Status") C3/3731: 7E37 ("/") C3/3733: 8237 ("/") C3/3735: 9537 ("/") C3/3737: 9937 ("/") C3/3739: AC37 ("/") C3/373B: B037 ("/") C3/373D: C337 ("/") C3/373F: C737 ("/") C3/3741: 6F37 ("LV") C3/3743: 7437 ("HP") C3/3745: 7937 ("MP") C3/3747: 8637 ("LV") C3/3749: 8B37 ("HP") C3/374B: 9037 ("MP") C3/374D: 9D37 ("LV") C3/374F: A237 ("HP") C3/3751: A737 ("MP") C3/3753: B437 ("LV") C3/3755: B937 ("HP") C3/3757: BE37 ("MP") C3/3759: DB37 ("Equip") C3/375B: F437 ("Config") C3/375D: 1C38 ("Yes") C3/375F: 2238 ("No") C3/3761: 2738 ("This") C3/3763: 2E38 ("data?") C3/3765: 1C38 ("Yes") C3/3767: 2238 ("No") C3/3769: 3638 ("Erasing") C3/376B: 4038 ("data.") C3/376D: 4838 ("Okay?")
C3/376F: 9D398B9500 (LV) C3/3774: DD39878F00 (HP) C3/3779: 1D3A8C8F00 (MP) C3/377E: EB39C000 C3/3782: 2B3AC000 C3/3786: 1D3B8B9500 (LV) C3/378B: 5D3B878F00 (HP) C3/3790: 9D3B8C8F00 (MP) C3/3795: 6B3BC000 C3/3799: AB3BC000 C3/379D: 9D3C8B9500 (LV) C3/37A2: DD3C878F00 (HP) C3/37A7: 1D3D8C8F00 (MP) C3/37AC: EB3CC000 C3/37B0: 2B3DC000 C3/37B4: 1D3E8B9500 (LV) C3/37B9: 5D3E878F00 (HP) C3/37BE: 9D3E8C8F00 (MP) C3/37C3: 6B3EC000 C3/37C7: AB3EC000 C3/37CB: 397988AD9EA600 ("Item") C3/37D2: B97992A4A2A5A5AC00 ("Skills") C3/37DB: 397A84AAAEA2A900 ("Equip") C3/37E3: B97A919EA5A29C00 ("Relic") C3/37EB: 397B92AD9AADAEAC00 ("Status") C3/37F4: B97B82A8A79FA2A000 ("Config") C3/37FD: 397C929AAF9E00 ("Save") C3/3804: BB7C93A2A69E00 ("Time") C3/380B: FF7CC100 (":") C3/380F: B77D92AD9EA9AC00 ("Steps") C3/3817: 777E86A900 ("Gp") C3/381C: BD7A989EAC00 ("Yes") C3/3822: 3D7B8DA800 ("No") C3/3827: 377993A1A2AC00 ("This") C3/382E: B7799D9AAD9ABF00 ("data?") C3/3836: 377984AB9AACA2A7A000 ("Erasing") C3/3840: B7799D9AAD9AC500 ("data.") C3/3848: 377A8EA49AB2BF00 ("Okay?") C3/3850: 3D818EAB9D9EAB00 ("Order")
C3/3858 unknow
C3/3858: A06738 LDY #$3867 C3/385B: 4CFE05 JMP $05FE
C3/385E unknow
C3/385E: 202D07 JSR $072D C3/3861: A06C38 LDY #$386C C3/3864: 4C4006 JMP $0640
C3/3867 data: hotspots for config screen 1
C3/3867: 81 00 00 01 09
C3/386C data: finger positions for config screen 1
C3/386C: 6029 C3/386E: 6039 C3/3870: 6049 C3/3872: 6059 C3/3874: 6069 C3/3876: 6079 C3/3878: 6089 C3/387A: 6099 C3/387C: 60A9
C3/387E unknow
C3/387E: A08D38 LDY #$388D C3/3881: 4CFE05 JMP $05FE
C3/3884 unknow
C3/3884: 202D07 JSR $072D C3/3887: A09238 LDY #$3892 C3/388A: 4C4006 JMP $0640
C3/388D data: hotspots for config screen 2
Hotspot data for config screen 2 C3/388D: 81 00 00 01 06
C3/3892 data: finger positions for config screen 2
C3/3892: 6029 C3/3894: 6069 C3/3896: 6079 C3/3898: 6099 C3/389A: 60A9 C3/389C: 60B9
C3/389E config screen
The config screen (both parts) C3/389E: A902 LDA #$02 C3/38A0: 8D0721 STA $2107 C3/38A3: A0FBFF LDY #$FFFB C3/38A6: 843F STY $3F C3/38A8: 20286A JSR $6A28 C3/38AB: A0E239 LDY #$39E2 C3/38AE: 204103 JSR $0341 (draw config screen) C3/38B1: A0E639 LDY #$39E6 C3/38B4: 204103 JSR $0341 (draw window that holds "Config") C3/38B7: 20520E JSR $0E52 C3/38BA: 205E39 JSR $395E C3/38BD: 20156A JSR $6A15 C3/38C0: 20196A JSR $6A19 C3/38C3: 203C6A JSR $6A3C C3/38C6: 20416A JSR $6A41 C3/38C9: A92C LDA #$2C C3/38CB: 8529 STA $29 (set text color to blue) C3/38CD: A0A149 LDY #$49A1 C3/38D0: 20F902 JSR $02F9 (display "Config") C3/38D3: A924 LDA #$24 C3/38D5: 8529 STA $29 (set text color to blue) C3/38D7: A29349 LDX #$4993 C3/38DA: A00E00 LDY #$000E C3/38DD: 20BA69 JSR $69BA (display "Bat. Mode," "Bat. Speed," "Msg. Speed," "Cmd. Set," "Gauge," "Sound," and "Reequip") C3/38E0: A924 LDA #$24 C3/38E2: 8529 STA $29 (set text color to blue) C3/38E4: A20349 LDX #$4903 C3/38E7: A00400 LDY #$0004 C3/38EA: 20BA69 JSR $69BA (display "Controller" and "Cursor") C3/38ED: A920 LDA #$20 C3/38EF: 8529 STA $29 (set text color to white) C3/38F1: A20749 LDX #$4907 C3/38F4: A00400 LDY #$0004 C3/38F7: 20BA69 JSR $69BA (display "Fast" and "Slow") C3/38FA: 208C3B JSR $3B8C (display battle mode settings) C3/38FD: 20B73B JSR $3BB7 (display battle speed settings) C3/3900: 20F23B JSR $3BF2 (display message speed settings) C3/3903: 20333C JSR $3C33 (display battle window settings) C3/3906: 205C3C JSR $3C5C (display gauge settings) C3/3909: 20853C JSR $3C85 (display sound settings) C3/390C: 20B03C JSR $3CB0 (display menu position settings) C3/390F: 20DB3C JSR $3CDB (display reequipping settings) C3/3912: 20063D JSR $3D06 (display current controller settings) C3/3915: A924 LDA #$24 C3/3917: 8529 STA $29 (set text color to blue) C3/3919: A21C4A LDX #$4A1C C3/391C: A00600 LDY #$0006 C3/391F: 20BA69 JSR $69BA (display "Mag.Order," "Window," and "Color") C3/3922: 205039 JSR $3950 C3/3925: A920 LDA #$20 C3/3927: 8529 STA $29 (set text color to white) C3/3929: A2284A LDX #$4A28 C3/392C: A00C00 LDY #$000C C3/392F: 20BA69 JSR $69BA (display "R," "G," "B," "A..," "B..," and "C..") C3/3932: 20FD3F JSR $3FFD C3/3935: 20EA40 JSR $40EA (display window background) C3/3938: 203341 JSR $4133 C3/393B: 20C341 JSR $41C3 C3/393E: 20F539 JSR $39F5 C3/3941: 20280E JSR $0E28 C3/3944: 206E0E JSR $0E6E C3/3947: A901 LDA #$01 C3/3949: A08039 LDY #$3980 C3/394C: 207311 JSR $1173 (put C3/3980 in the queue) C3/394F: 60 RTS
C3/3950 unknow
C3/3950: A930 LDA #$30 C3/3952: 8529 STA $29 C3/3954: A2224A LDX #$4A22 C3/3957: A00600 LDY #$0006 C3/395A: 20BA69 JSR $69BA (display what looks like the ATB bars for the color component changing) C3/395D: 60 RTS
C3/395E unknow
C3/395E: A600 LDX $00 C3/3960: A940 LDA #$40 C3/3962: 8D2121 STA $2121 C3/3965: C220 REP #$20 (16 bit memory/accum.) C3/3967: BF80E8D8 LDA $D8E880,X C3/396B: 9FC9307E STA $7E30C9,X C3/396F: E220 SEP #$20 (8 bit memory/accum.) C3/3971: 8D2221 STA $2122 C3/3974: EB XBA C3/3975: 8D2221 STA $2122 C3/3978: E8 INX C3/3979: E8 INX C3/397A: E02000 CPX #$0020 C3/397D: D0E6 BNE $3965 C3/397F: 60 RTS
C3/3980 code and table unknow
C3/3980: AA TAX C3/3981: 7C8439 JMP ($3984,X) C3/3984: 8839 C3/3986: AB39
C3/3988 unknow
C3/3988: A62D LDX $2D C3/398A: C220 REP #$20 (16 bit memory/accum.) C3/398C: A9CB39 LDA #$39CB C3/398F: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/3992: A97800 LDA #$0078 C3/3995: 9DCA33 STA $33CA,X C3/3998: A91800 LDA #$0018 C3/399B: 9D4A34 STA $344A,X C3/399E: E220 SEP #$20 (8 bit memory/accum.) C3/39A0: A9C3 LDA #$C3 C3/39A2: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/39A5: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/39A8: 200612 JSR $1206 C3/39AB: A42D LDY $2D C3/39AD: A54A LDA $4A C3/39AF: F004 BEQ $39B5 C3/39B1: A902 LDA #$02 C3/39B3: 8001 BRA $39B6 C3/39B5: 7B TDC C3/39B6: AA TAX C3/39B7: C220 REP #$20 (16 bit memory/accum.) C3/39B9: BFC739C3 LDA $C339C7,X C3/39BD: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/39C0: E220 SEP #$20 (8 bit memory/accum.) C3/39C2: 202112 JSR $1221 (draw the sprites!) C3/39C5: 38 SEC (not done with this queue yet) C3/39C6: 60 RTS
C3/39C7 oam: giant arrow
OAM pointers, giant arrow for both config screens C3/39C7: CB39 C3/39C9: D439
C3/39CB oam data
OAM data: format is pointer, timer, pointer, timer, pointer, end C3/39CB: 5BB4 C3/39CD: 10 C3/39CE: DD39 C3/39D0: 10 C3/39D1: 5BB4 C3/39D3: FF C3/39D4: 5BB4 C3/39D5: 10 C3/39D7: 61B4 C3/39D9: 10 C3/39DA: 5BB4 C3/39DC: FF C3/39DD: 01 C3/39DE: 80D0033E (position 80,D0, 03 is ?, giant arrow pointing down)
C3/39E2 data: windows sizes and positions
C3/39E2: 0B591C16 (config screen) C3/39E6: B7580602 (window that holds "Config")
C3/39EA unknow
C3/39EA: A0FB00 LDY #$00FB C3/39ED: 8437 STY $37 C3/39EF: 207E38 JSR $387E (get hotspot data for config screen 2) C3/39F2: 4C8738 JMP $3887 (get finger positioning data for config screen 2)
C3/39F5 unknow
C3/39F5: A0FBFF LDY #$FFFB C3/39F8: 8437 STY $37 C3/39FA: 205838 JSR $3858 (get hotspot data for config screen 1) C3/39FD: 4C6138 JMP $3861 (get finger positioning data for config screen 1)
C3/3A00 unknow
C3/3A00: A520 LDA $20 (from C3/027B, the massive jump table; $26 = #$50) C3/3A02: F011 BEQ $3A15 C3/3A04: A54A LDA $4A C3/3A06: D014 BNE $3A1C C3/3A08: C220 REP #$20 (16 bit memory/accum.) C3/3A0A: A537 LDA $37 C3/3A0C: 18 CLC C3/3A0D: 691000 ADC #$0010 C3/3A10: 8537 STA $37 C3/3A12: E220 SEP #$20 (8 bit memory/accum.) C3/3A14: 60 RTS
C3/3A15 unknow
C3/3A15: A901 LDA #$01 C3/3A17: 854A STA $4A C3/3A19: 20EA39 JSR $39EA C3/3A1C: A90E LDA #$0E C3/3A1E: 8526 STA $26 (execute at C3/22C5) C3/3A20: 60 RTS
C3/3A21 unknow
C3/3A21: A520 LDA $20 (from C3/027D, the massive jump table; $26 = #$51) C3/3A23: F011 BEQ $3A36 C3/3A25: A54A LDA $4A C3/3A27: F01E BEQ $3A47 C3/3A29: C220 REP #$20 (16 bit memory/accum.) C3/3A2B: A537 LDA $37 C3/3A2D: 38 SEC C3/3A2E: E91000 SBC #$0010 C3/3A31: 8537 STA $37 C3/3A33: E220 SEP #$20 (8 bit memory/accum.) C3/3A35: 60 RTS
C3/3A36 unknow
C3/3A36: 644A STZ $4A C3/3A38: A0FBFF LDY #$FFFB C3/3A3B: 8437 STY $37 C3/3A3D: 205838 JSR $3858 C3/3A40: A908 LDA #$08 C3/3A42: 854E STA $4E (set the starting hotspot when pressing up to go back to config screen 1) C3/3A44: 206138 JSR $3861 C3/3A47: A90E LDA #$0E C3/3A49: 8526 STA $26 (execute at C3/22C5) C3/3A4B: 60 RTS
C3/3A4C unknow
C3/3A4C: A901 LDA #$01 (from C3/1C82) C3/3A4E: 8D5043 STA $4350 C3/3A51: A928 LDA #$28 C3/3A53: 8D5143 STA $4351 (register address becomes $2128) C3/3A56: A07A3A LDY #$3A7A C3/3A59: 8C5243 STY $4352 (set address) C3/3A5C: A9C3 LDA #$C3 C3/3A5E: 8D5443 STA $4354 (set bank, C3/3A7A) C3/3A61: A9C3 LDA #$C3 C3/3A63: 8D5743 STA $4357 C3/3A66: A920 LDA #$20 C3/3A68: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/3A6A: 60 RTS
C3/3A6B unknow
C3/3A6B: A920 LDA #$20 C3/3A6D: 1443 TRB $43 (eventually disable channel 5 of HDMA) C3/3A6F: A908 LDA #$08 C3/3A71: 8D2821 STA $2128 C3/3A74: A9F7 LDA #$F7 C3/3A76: 8D2921 STA $2129 C3/3A79: 60 RTS
C3/3A7A hdma transfer table
C3/3A7A: 27FFFF C3/3A7D: 5008F7 C3/3A80: 5008F7 C3/3A83: 10FFFF C3/3A86: 00 (end)
C3/3A87 unknow
C3/3A87: A00078 LDY #$7800 C3/3A8A: 8414 STY $14 C3/3A8C: AD4E1D LDA $1D4E C3/3A8F: 20303B JSR $3B30 (paint wallpaper for "Save Game" ?) C3/3A92: AD4E1D LDA $1D4E C3/3A95: A26000 LDX #$0060 C3/3A98: 205B3B JSR $3B5B C3/3A9B: A0001C LDY #$1C00 C3/3A9E: 4C2603 JMP $0326
C3/3AA1 unknow
C3/3AA1: A0007A LDY #$7A00 C3/3AA4: 8414 STY $14 C3/3AA6: A491 LDY $91 C3/3AA8: F006 BEQ $3AB0 C3/3AAA: AF4E6730 LDA $30674E (if calculations are correct, this loads $1D4E of save slot 1) C3/3AAE: 8001 BRA $3AB1 C3/3AB0: 7B TDC C3/3AB1: 20303B JSR $3B30 (paint wallpaper of save file 1) C3/3AB4: 208814 JSR $1488 C3/3AB7: A02018 LDY #$1820 C3/3ABA: 4C2603 JMP $0326
C3/3ABD unknow
C3/3ABD: A0007C LDY #$7C00 C3/3AC0: 8414 STY $14 C3/3AC2: A493 LDY $93 C3/3AC4: F006 BEQ $3ACC C3/3AC6: AF4E7130 LDA $30714E (if calculations are correct, this loads $1D4E of save slot 2) C3/3ACA: 8001 BRA $3ACD C3/3ACC: 7B TDC C3/3ACD: 20303B JSR $3B30 (paint wallpaper of save file 2) C3/3AD0: 208814 JSR $1488 C3/3AD3: A04014 LDY #$1440 C3/3AD6: 4C2603 JMP $0326
C3/3AD9 unknow
C3/3AD9: A0007E LDY #$7E00 C3/3ADC: 8414 STY $14 C3/3ADE: A495 LDY $95 C3/3AE0: F006 BEQ $3AE8 C3/3AE2: AF4E7B30 LDA $307B4E (if calculations are correct, this loads $1D4E of save slot 3) C3/3AE6: 8001 BRA $3AE9 C3/3AE8: 7B TDC C3/3AE9: 20303B JSR $3B30 (paint wallpaper of save file 3) C3/3AEC: 208814 JSR $1488 C3/3AEF: A06010 LDY #$1060 C3/3AF2: 4C2603 JMP $0326
C3/3AF5 unknow
C3/3AF5: A491 LDY $91 C3/3AF7: F006 BEQ $3AFF C3/3AF9: AF4E6730 LDA $30674E (if calculations are correct, this loads $1D4E of save slot 1) C3/3AFD: 8001 BRA $3B00 C3/3AFF: 7B TDC C3/3B00: A24000 LDX #$0040 C3/3B03: 205B3B JSR $3B5B C3/3B06: 4CD214 JMP $14D2
C3/3B09 unknow
C3/3B09: A493 LDY $93 C3/3B0B: F006 BEQ $3B13 C3/3B0D: AF4E7130 LDA $30714E (if calculations are correct, this loads $1D4E of save slot 2) C3/3B11: 8001 BRA $3B14 C3/3B13: 7B TDC C3/3B14: A22000 LDX #$0020 C3/3B17: 205B3B JSR $3B5B C3/3B1A: 4CD214 JMP $14D2
C3/3B1D unknow
C3/3B1D: A495 LDY $95 C3/3B1F: F006 BEQ $3B27 C3/3B21: AF4E7B30 LDA $307B4E (if calculations are correct, this loads $1D4E of save slot 3) C3/3B25: 8001 BRA $3B28 C3/3B27: 7B TDC C3/3B28: A600 LDX $00 C3/3B2A: 205B3B JSR $3B5B C3/3B2D: 4CD214 JMP $14D2
C3/3B30 paint wallpaper design at save screen
Paint the correct wallpaper design for save files on the save screen C3/3B30: 290F AND #$0F C3/3B32: 85E0 STA $E0 C3/3B34: 64E1 STZ $E1 C3/3B36: A00000 LDY #$0000 C3/3B39: 8416 STY $16 C3/3B3B: A9ED LDA #$ED C3/3B3D: 8518 STA $18 C3/3B3F: C220 REP #$20 (16 bit memory/accum.) C3/3B41: 7B TDC C3/3B42: A4E0 LDY $E0 C3/3B44: F008 BEQ $3B4E C3/3B46: 18 CLC C3/3B47: 698003 ADC #$0380 C3/3B4A: C6E0 DEC $E0 C3/3B4C: 80F4 BRA $3B42 C3/3B4E: 18 CLC C3/3B4F: 6516 ADC $16 C3/3B51: 8516 STA $16 C3/3B53: E220 SEP #$20 (8 bit memory/accum.) C3/3B55: A00004 LDY #$0400 C3/3B58: 8412 STY $12 C3/3B5A: 60 RTS
C3/3B5B unknow
C3/3B5B: 290F AND #$0F C3/3B5D: 85E0 STA $E0 C3/3B5F: DA PHX C3/3B60: A900 LDA #$00 C3/3B62: 85E9 STA $E9 C3/3B64: 64E1 STZ $E1 C3/3B66: C220 REP #$20 (16 bit memory/accum.) C3/3B68: A9571D LDA #$1D57 C3/3B6B: A4E0 LDY $E0 C3/3B6D: F008 BEQ $3B77 C3/3B6F: 18 CLC C3/3B70: 690E00 ADC #$000E C3/3B73: C6E0 DEC $E0 C3/3B75: 80F4 BRA $3B6B C3/3B77: 85E7 STA $E7 C3/3B79: E220 SEP #$20 (8 bit memory/accum.) C3/3B7B: A400 LDY $00 C3/3B7D: FA PLX C3/3B7E: B7E7 LDA [$E7],Y C3/3B80: 9FCB307E STA $7E30CB,X C3/3B84: C8 INY C3/3B85: E8 INX C3/3B86: C00E00 CPY #$000E C3/3B89: D0F3 BNE $3B7E C3/3B8B: 60 RTS
C3/3B8C unknow
C3/3B8C: AD4D1D LDA $1D4D C3/3B8F: 2908 AND #$08 C3/3B91: F009 BEQ $3B9C C3/3B93: A928 LDA #$28 (set text color to gray) C3/3B95: 20A53B JSR $3BA5 C3/3B98: A920 LDA #$20 (set text color to white) C3/3B9A: 8012 BRA $3BAE C3/3B9C: A920 LDA #$20 (set text color to white) C3/3B9E: 20A53B JSR $3BA5 C3/3BA1: A928 LDA #$28 (set text color to gray) C3/3BA3: 8009 BRA $3BAE C3/3BA5: 8529 STA $29 C3/3BA7: A0F149 LDY #$49F1 C3/3BAA: 20F902 JSR $02F9 (display "Active") C3/3BAD: 60 RTS
C3/3BAE unknow
C3/3BAE: 8529 STA $29 (set text color) C3/3BB0: A01849 LDY #$4918 C3/3BB3: 20F902 JSR $02F9 (display "Wait") C3/3BB6: 60 RTS
C3/3BB7 unknow
C3/3BB7: A928 LDA #$28 C3/3BB9: 8529 STA $29 (set text color to gray) C3/3BBB: A06E49 LDY #$496E C3/3BBE: 20F902 JSR $02F9 (display "1 2 3 4 5 6") C3/3BC1: A920 LDA #$20 C3/3BC3: 8529 STA $29 (set text color to white) C3/3BC5: 7B TDC C3/3BC6: AD4D1D LDA $1D4D C3/3BC9: 2907 AND #$07 C3/3BCB: 0A ASL A C3/3BCC: AA TAX C3/3BCD: C220 REP #$20 (16 bit memory/accum.) C3/3BCF: BFE63BC3 LDA $C33BE6,X C3/3BD3: 85F7 STA $F7 C3/3BD5: E220 SEP #$20 (8 bit memory/accum.) C3/3BD7: AD4D1D LDA $1D4D C3/3BDA: 2907 AND #$07 C3/3BDC: 18 CLC C3/3BDD: 69B5 ADC #$B5 C3/3BDF: 85F9 STA $F9 C3/3BE1: 64FA STZ $FA C3/3BE3: 4C1641 JMP $4116
C3/3BE6 data: positions for battle speed
Data: positions for white value for battle speed (IE, the one currently set) C3/3BE6: 253A (1) C3/3BE8: 293A (2) C3/3BEA: 2D3A (3) C3/3BEC: 313A (4) C3/3BEE: 353A (5) C3/3BF0: 393A (6)
C3/3BF2 unknow
C3/3BF2: A928 LDA #$28 C3/3BF4: 8529 STA $29 (set text color to gray) C3/3BF6: A07C49 LDY #$497C C3/3BF9: 20F902 JSR $02F9 (display "1 2 3 4 5 6") C3/3BFC: A920 LDA #$20 C3/3BFE: 8529 STA $29 (set text color to white) C3/3C00: 7B TDC C3/3C01: AD4D1D LDA $1D4D C3/3C04: 2970 AND #$70 C3/3C06: 4A LSR A C3/3C07: 4A LSR A C3/3C08: 4A LSR A C3/3C09: AA TAX C3/3C0A: C220 REP #$20 (16 bit memory/accum.) C3/3C0C: BF273CC3 LDA $C33C27,X C3/3C10: 85F7 STA $F7 C3/3C12: E220 SEP #$20 (8 bit memory/accum.) C3/3C14: AD4D1D LDA $1D4D C3/3C17: 2970 AND #$70 C3/3C19: 4A LSR A C3/3C1A: 4A LSR A C3/3C1B: 4A LSR A C3/3C1C: 4A LSR A C3/3C1D: 18 CLC C3/3C1E: 69B5 ADC #$B5 C3/3C20: 85F9 STA $F9 C3/3C22: 64FA STZ $FA C3/3C24: 4C1641 JMP $4116
C3/3C27 data: positions for message speed
Data: positions of white values for message speed (IE, the one currently set) C3/3C27: A53A (1) C3/3C29: A93A (2) C3/3C2B: AD3A (3) C3/3C2E: B13A (4) C3/3C2F: B53A (5) C3/3C31: B93A (6)
C3/3C33 unknow
C3/3C33: AD4D1D LDA $1D4D C3/3C34: 3009 BMI $3C41 C3/3C38: A928 LDA #$28 (set text color to gray) C3/3C3A: 204A3C JSR $3C4A C3/3C3D: A920 LDA #$20 (set text color to white) C3/3C3F: 8012 BRA $3C53 C3/3C41: A920 LDA #$20 (set text color to white) C3/3C43: 204A3C JSR $3C4A C3/3C46: A928 LDA #$28 (set text color to gray) C3/3C48: 8009 BRA $3C53 C3/3C4A: 8529 STA $29 (set text color) C3/3C4C: A02D49 LDY #$492D C3/3C4F: 20F902 JSR $02F9 (display "Short") C3/3C52: 60 RTS
C3/3C53 unknow
C3/3C53: 8529 STA $29 (set text color) C3/3C55: A0FA49 LDY #$49FA C3/3C58: 20F902 JSR $02F9 (display "Window") C3/3C5B: 60 RTS
C3/3C5C unknow
C3/3C5C: AD4E1D LDA $1D4E C3/3C5F: 1009 BPL $3C6A C3/3C61: A928 LDA #$28 (set text color to gray) C3/3C63: 20733C JSR $3C73 C3/3C66: A920 LDA #$20 (set text color to white) C3/3C68: 8012 BRA $3C7C C3/3C6A: A920 LDA #$20 (set text color to white) C3/3C6C: 20733C JSR $3C73 C3/3C6F: A928 LDA #$28 (set text color to gray) C3/3C71: 8009 BRA $3C7C C3/3C73: 8529 STA $29 (set text color) C3/3C75: A03549 LDY #$4935 C3/3C78: 20F902 JSR $02F9 (display "On") C3/3C7B: 60 RTS
C3/3C7C unknow
C3/3C7C: 8529 STA $29 (set text color) C3/3C7E: A03A49 LDY #$493A C3/3C81: 20F902 JSR $02F9 (display "Off") C3/3C84: 60 RTS
C3/3C85 unknow
C3/3C85: AD4E1D LDA $1D4E C3/3C88: 2920 AND #$20 C3/3C8A: F009 BEQ $3C95 C3/3C8C: A928 LDA #$28 (set text color to gray) C3/3C8E: 209E3C JSR $3C9E C3/3C91: A920 LDA #$20 (set text color to white) C3/3C93: 8012 BRA $3CA7 C3/3C95: A920 LDA #$20 (set text color to white) C3/3C97: 209E3C JSR $3C9E C3/3C9A: A928 LDA #$28 (set text color to gray) C3/3C9C: 8009 BRA $3CA7 C3/3C9E: 8529 STA $29 (set text color) C3/3CA0: A04049 LDY #$4940 C3/3CA3: 20F902 JSR $02F9 (display "Stereo") C3/3CA6: 60 RTS
C3/3CA7 unknow
C3/3CA7: 8529 STA $29 (set text color) C3/3CA9: A04949 LDY #$4949 C3/3CAC: 20F902 JSR $02F9 (display "Mono") C3/3CAF: 60 RTS
C3/3CB0 unknow
C3/3CB0: AD4E1D LDA $1D4E C3/3CB3: 2940 AND #$40 C3/3CB5: F009 BEQ $3CC0 C3/3CB7: A928 LDA #$28 (set text color to gray) C3/3CB9: 20C93C JSR $3CC9 C3/3CBC: A920 LDA #$20 (set text color to white) C3/3CBE: 8012 BRA $3CD2 C3/3CC0: A920 LDA #$20 (set text color to white) C3/3CC2: 20C93C JSR $3CC9 C3/3CC5: A928 LDA #$28 (set text color to gray) C3/3CC7: 8009 BRA $3CD2 C3/3CC9: 8529 STA $29 (set text color) C3/3CCB: A0034A LDY #$4A03 C3/3CCE: 20F902 JSR $02F9 (display "Reset") C3/3CD1: 60 RTS
C3/3CD2 unknow
C3/3CD2: 8529 STA $29 (set text color) C3/3CD4: A05049 LDY #$4950 C3/3CD7: 20F902 JSR $02F9 (display "Memory") C3/3CDA: 60 RTS
C3/3CDB unknow
C3/3CDB: AD4E1D LDA $1D4E C3/3CDE: 2910 AND #$10 C3/3CE0: F009 BEQ $3CEB C3/3CE2: A928 LDA #$28 (set text color to gray) C3/3CE4: 20F43C JSR $3CF4 C3/3CE7: A920 LDA #$20 (set text color to white) C3/3CE9: 8012 BRA $3CFD C3/3CEB: A920 LDA #$20 (set text color to white) C3/3CED: 20F43C JSR $3CF4 C3/3CF0: A928 LDA #$28 (set text color to gray) C3/3CF2: 8009 BRA $3CFD C3/3CF4: 8529 STA $29 (set text color) C3/3CF6: A05949 LDY #$4959 C3/3CF9: 20F902 JSR $02F9 (display "Optimum") C3/3CFC: 60 RTS
C3/3CFD unknow
C3/3CFD: 8529 STA $29 (set text color) C3/3CFF: A00B4A LDY #$4A0B C3/3D02: 20F902 JSR $02F9 (display "Empty") C3/3D05: 60 RTS
C3/3D06 unknow
C3/3D06: AD541D LDA $1D54 C3/3D09: 1009 BPL $3D14 C3/3D0B: A928 LDA #$28 (set text color to gray) C3/3D0D: 201D3D JSR $3D1D C3/3D10: A920 LDA #$20 (set text color to white) C3/3D12: 8012 BRA $3D26 C3/3D14: A920 LDA #$20 (set text color to white) C3/3D16: 201D3D JSR $3D1D C3/3D19: A928 LDA #$28 (set text color to gray) C3/3D1B: 8009 BRA $3D26 C3/3D1D: 8529 STA $29 (set text color) C3/3D1F: A0134A LDY #$4A13 C3/3D22: 20F902 JSR $02F9 (display "Single") C3/3D25: 60 RTS
C3/3D26 unknow
C3/3D26: 8529 STA $29 (set text color) C3/3D28: A06349 LDY #$4963 C3/3D2B: 20F902 JSR $02F9 (display "Multiple") C3/3D2E: 60 RTS
C3/3D2F unknow
C3/3D2F: 7B TDC C3/3D30: A54B LDA $4B C3/3D32: 0A ASL A C3/3D33: AA TAX C3/3D34: A54A LDA $4A C3/3D36: F008 BEQ $3D40 C3/3D38: DA PHX C3/3D39: 20A30E JSR $0EA3 C3/3D3C: FA PLX C3/3D3D: 7C553D JMP ($3D55,X) C3/3D40: 7C433D JMP ($3D43,X)
Pointers for functions in the Config menu C3/3D43: 613D (Battle mode) C3/3D45: 7A3D (Battle speed) C3/3D47: AB3D (Message speed) C3/3D49: E83D (Command set) C3/3D4B: 013E (Reequip) C3/3D4D: 1A3E (Sound) C3/3D4F: 4E3E (Cursor) C3/3D51: 6D3E (Gauge) C3/3D53: 863E (Controller setting) C3/3D55: 9F3E (Magic order) C3/3D57: CD3E (Window) C3/3D59: 013F (Color (font vs. window components)) C3/3D5B: 3C3F (Change window component color) C3/3D5D: 5B3F (Change window component color) C3/3D5F: 7A3F (Change window component color)
C3/3D61 battle mode setting
Battle Mode setting (Active vs. Wait) C3/3D61: 20A30E JSR $0EA3 C3/3D64: A50B LDA $0B C3/3D66: 8901 BIT #$01 C3/3D68: D008 BNE $3D72 C3/3D6A: A908 LDA #$08 C3/3D6C: 1C4D1D TRB $1D4D C3/3D6F: 4C8C3B JMP $3B8C C3/3D72: A908 LDA #$08 C3/3D74: 0C4D1D TSB $1D4D C3/3D77: 4C8C3B JMP $3B8C
C3/3D7A battle speed setting
C3/3D7A: 20A30E JSR $0EA3 C3/3D7D: AD4D1D LDA $1D4D C3/3D80: 2907 AND #$07 C3/3D82: 85E0 STA $E0 C3/3D84: A50B LDA $0B C3/3D86: 8901 BIT #$01 C3/3D88: F00B BEQ $3D95 C3/3D8A: A5E0 LDA $E0 C3/3D8C: C905 CMP #$05 C3/3D8E: F004 BEQ $3D94 C3/3D90: E6E0 INC $E0 C3/3D92: 800A BRA $3D9E C3/3D94: 60 RTS C3/3D95: A5E0 LDA $E0 C3/3D97: F004 BEQ $3D9D C3/3D99: C6E0 DEC $E0 C3/3D9B: 8001 BRA $3D9E C3/3D9D: 60 RTS C3/3D9E: AD4D1D LDA $1D4D C3/3DA1: 29F8 AND #$F8 C3/3DA3: 05E0 ORA $E0 C3/3DA5: 8D4D1D STA $1D4D C3/3DA8: 4CB73B JMP $3BB7
C3/3DAB message speed setting
C3/3DAB: 20A30E JSR $0EA3 C3/3DAE: AD4D1D LDA $1D4D C3/3DB1: 2970 AND #$70 C3/3DB3: 4A LSR A C3/3DB4: 4A LSR A C3/3DB5: 4A LSR A C3/3DB6: 4A LSR A C3/3DB7: 85E0 STA $E0 C3/3DB9: A50B LDA $0B C3/3DBB: 8901 BIT #$01 C3/3DBD: F00B BEQ $3DCA C3/3DBF: A5E0 LDA $E0 C3/3DC1: C905 CMP #$05 C3/3DC3: F004 BEQ $3DC9 C3/3DC5: E6E0 INC $E0 C3/3DC7: 800A BRA $3DD3 C3/3DC9: 60 RTS C3/3DCA: A5E0 LDA $E0 C3/3DCC: F004 BEQ $3DD2 C3/3DCE: C6E0 DEC $E0 C3/3DD0: 8001 BRA $3DD3 C3/3DD2: 60 RTS C3/3DD3: A5E0 LDA $E0 C3/3DD5: 0A ASL A C3/3DD6: 0A ASL A C3/3DD7: 0A ASL A C3/3DD8: 0A ASL A C3/3DD9: 85E0 STA $E0 C3/3DDB: AD4D1D LDA $1D4D C3/3DDE: 298F AND #$8F C3/3DE0: 05E0 ORA $E0 C3/3DE2: 8D4D1D STA $1D4D C3/3DE5: 4CF23B JMP $3BF2
C3/3DE8 command set setting
C3/3DE8: 20A30E JSR $0EA3 C3/3DEB: A50B LDA $0B C3/3DED: 8901 BIT #$01 C3/3DEF: D008 BNE $3DF9 C3/3DF1: A980 LDA #$80 C3/3DF3: 1C4D1D TRB $1D4D (Clear short command list (makes it go to long list) setting) C3/3DF6: 4C333C JMP $3C33 C3/3DF9: A980 LDA #$80 C3/3DFB: 0C4D1D TSB $1D4D (Set short command list setting) C3/3DFE: 4C333C JMP $3C33
C3/3E01 reequip mode setting
C3/3E01: 20A30E JSR $0EA3 C3/3E04: A50B LDA $0B C3/3E06: 8901 BIT #$01 C3/3E08: D008 BNE $3E12 C3/3E0A: A980 LDA #$80 C3/3E0C: 1C4E1D TRB $1D4E (Clear reequip party setting (makes it go to empty)) C3/3E0F: 4C5C3C JMP $3C5C C3/3E12: A980 LDA #$80 C3/3E14: 0C4E1D TSB $1D4E (Set optimum party setting) C3/3E17: 4C5C3C JMP $3C5C
C3/3E1A sound mode setting
C3/3E1A: A50B LDA $0B C3/3E1C: 8901 BIT #$01 C3/3E1E: D00F BNE $3E2F C3/3E20: 7B TDC C3/3E21: 203F3E JSR $3E3F C3/3E24: A920 LDA #$20 C3/3E26: 1C4E1D TRB $1D4E (Set sound stereo setting) C3/3E29: 20A30E JSR $0EA3 C3/3E2C: 4C853C JMP $3C85 C3/3E2F: A9FF LDA #$FF C3/3E31: 203F3E JSR $3E3F C3/3E34: A920 LDA #$20 C3/3E36: 0C4E1D TSB $1D4E (Set sound mono setting) C3/3E39: 20A30E JSR $0EA3 C3/3E3C: 4C853C JMP $3C85 C3/3E3F: 8F011300 STA $001301 C3/3E43: A9F3 LDA #$F3 C3/3E45: 8F001300 STA $001300 C3/3E49: 220400C5 JSL $C50004 C3/3E4D: 60 RTS
C3/3E4E cursor mode setting
C3/3E4E: 20A30E JSR $0EA3 C3/3E51: A50B LDA $0B C3/3E53: 8901 BIT #$01 C3/3E55: D00B BNE $3E62 C3/3E57: 20F748 JSR $48F7 C3/3E5A: A940 LDA #$40 C3/3E5C: 1C4E1D TRB $1D4E (Clear cursor memory setting) C3/3E5F: 4CB03C JMP $3CB0 C3/3E62: A940 LDA #$40 C3/3E64: 0C4E1D TSB $1D4E (Set cursor memory setting) C3/3E67: 206870 JSR $7068 C3/3E6A: 4CB03C JMP $3CB0
C3/3E6D gauge mode setting
C3/3E6D: 20A30E JSR $0EA3 C3/3E70: A50B LDA $0B C3/3E72: 8901 BIT #$01 C3/3E74: D008 BNE $3E7E C3/3E76: A910 LDA #$10 C3/3E78: 1C4E1D TRB $1D4E (Clear gauge off setting (makes gauge be on)) C3/3E7B: 4CDB3C JMP $3CDB C3/3E7E: A910 LDA #$10 C3/3E80: 0C4E1D TSB $1D4E (Set gauge off setting) C3/3E83: 4CDB3C JMP $3CDB
C3/3E86 controller mode setting
C3/3E86: 20A30E JSR $0EA3 C3/3E89: A50B LDA $0B C3/3E8B: 8901 BIT #$01 C3/3E8D: D008 BNE $3E97 C3/3E8F: A980 LDA #$80 C3/3E91: 1C541D TRB $1D54 C3/3E94: 4C063D JMP $3D06 C3/3E97: A980 LDA #$80 C3/3E99: 0C541D TSB $1D54 C3/3E9C: 4C063D JMP $3D06
C3/3E9F magic order mode setting
C3/3E9F: AD541D LDA $1D54 C3/3EA2: 2907 AND #$07 C3/3EA4: 85E0 STA $E0 C3/3EA6: A50B LDA $0B C3/3EA8: 8901 BIT #$01 C3/3EAA: F00B BEQ $3EB7 C3/3EAC: A5E0 LDA $E0 C3/3EAE: C905 CMP #$05 C3/3EB0: F004 BEQ $3EB6 C3/3EB2: E6E0 INC $E0 C3/3EB4: 800A BRA $3EC0 C3/3EB6: 60 RTS C3/3EB7: A5E0 LDA $E0 C3/3EB9: F004 BEQ $3EBF C3/3EBB: C6E0 DEC $E0 C3/3EBD: 8001 BRA $3EC0 C3/3EBF: 60 RTS C3/3EC0: AD541D LDA $1D54 C3/3EC3: 29F8 AND #$F8 C3/3EC5: 05E0 ORA $E0 C3/3EC7: 8D541D STA $1D54 C3/3ECA: 4CFD3F JMP $3FFD
C3/3ECD window selection setting
C3/3ECD: AD4E1D LDA $1D4E C3/3ED0: 290F AND #$0F C3/3ED2: 85E0 STA $E0 C3/3ED4: A50B LDA $0B C3/3ED6: 8901 BIT #$01 C3/3ED8: F00B BEQ $3EE5 C3/3EDA: A5E0 LDA $E0 C3/3EDC: C907 CMP #$07 C3/3EDE: F004 BEQ $3EE4 C3/3EE0: E6E0 INC $E0 C3/3EE2: 800A BRA $3EEE C3/3EE4: 60 RTS C3/3EE5: A5E0 LDA $E0 C3/3EE7: F004 BEQ $3EED C3/3EE9: C6E0 DEC $E0 C3/3EEB: 8001 BRA $3EEE C3/3EED: 60 RTS C3/3EEE: AD4E1D LDA $1D4E C3/3EF1: 29F0 AND #$F0 C3/3EF3: 05E0 ORA $E0 C3/3EF5: 8D4E1D STA $1D4E C3/3EF8: 20EA40 JSR $40EA C3/3EFB: 20873A JSR $3A87 C3/3EFE: 4CC341 JMP $41C3
C3/3F01 color setting
Color (Font vs. Window components) settting C3/3F01: AD541D LDA $1D54 C3/3F04: 2938 AND #$38 C3/3F06: 4A LSR A C3/3F07: 4A LSR A C3/3F08: 4A LSR A C3/3F09: 85E0 STA $E0 C3/3F0B: A50B LDA $0B C3/3F0D: 8901 BIT #$01 C3/3F0F: F00B BEQ $3F1C C3/3F11: A5E0 LDA $E0 C3/3F13: C907 CMP #$07 C3/3F15: F004 BEQ $3F1B C3/3F17: E6E0 INC $E0 C3/3F19: 800A BRA $3F25 C3/3F1B: 60 RTS C3/3F1C: A5E0 LDA $E0 C3/3F1E: F004 BEQ $3F24 C3/3F20: C6E0 DEC $E0 C3/3F22: 8001 BRA $3F25 C3/3F24: 60 RTS C3/3F25: A5E0 LDA $E0 C3/3F27: 0A ASL A C3/3F28: 0A ASL A C3/3F29: 0A ASL A C3/3F2A: 85E0 STA $E0 C3/3F2C: AD541D LDA $1D54 C3/3F2F: 29C7 AND #$C7 C3/3F31: 05E0 ORA $E0 C3/3F33: 8D541D STA $1D54 C3/3F36: 203341 JSR $4133 C3/3F39: 4CC341 JMP $41C3
C3/3F3C change font or window red component
C3/3F3C: 20FE41 JSR $41FE C3/3F3F: A50B LDA $0B C3/3F41: 8901 BIT #$01 C3/3F43: F00A BEQ $3F4F C3/3F45: A5E2 LDA $E2 C3/3F47: C91F CMP #$1F C3/3F49: F00A BEQ $3F55 C3/3F4B: E6E2 INC $E2 C3/3F4D: 8006 BRA $3F55 C3/3F4F: A5E2 LDA $E2 C3/3F51: F002 BEQ $3F55 C3/3F53: C6E2 DEC $E2 C3/3F55: 202142 JSR $4221 C3/3F58: 4CC43F JMP $3FC4
C3/3F5B change font or window green component
C3/3F5B: 20FE41 JSR $41FE C3/3F5E: A50B LDA $0B C3/3F60: 8901 BIT #$01 C3/3F62: F00A BEQ $3F6E C3/3F64: A5E1 LDA $E1 C3/3F66: C91F CMP #$1F C3/3F68: F00A BEQ $3F74 C3/3F6A: E6E1 INC $E1 C3/3F6C: 8006 BRA $3F74 C3/3F6E: A5E1 LDA $E1 C3/3F70: F002 BEQ $3F74 C3/3F72: C6E1 DEC $E1 C3/3F74: 202142 JSR $4221 C3/3F77: 4CC43F JMP $3FC4
C3/3F7A change font or window blue component
C3/3F7A: 20FE41 JSR $41FE C3/3F7D: A50B LDA $0B C3/3F7F: 8901 BIT #$01 C3/3F81: F00A BEQ $3F8D C3/3F83: A5E0 LDA $E0 C3/3F85: C91F CMP #$1F C3/3F87: F00A BEQ $3F93 C3/3F89: E6E0 INC $E0 C3/3F8B: 8006 BRA $3F93 C3/3F8D: A5E0 LDA $E0 C3/3F8F: F002 BEQ $3F93 C3/3F91: C6E0 DEC $E0 C3/3F93: 202142 JSR $4221 C3/3F96: 4CC43F JMP $3FC4
C3/3F99 unknow
C3/3F99: C220 REP #$20 (16 bit memory/accum.) C3/3F9B: AD551D LDA $1D55 (font color) C3/3F9E: 8F4F307E STA $7E304F C3/3FA2: 8F73307E STA $7E3073 C3/3FA6: 8F77307E STA $7E3077 C3/3FAA: E220 SEP #$20 (8 bit memory/accum.) C3/3FAC: 60 RTS
C3/3FAD unknow
C3/3FAD: A600 LDX $00 C3/3FAF: C220 REP #$20 (16 bit memory/accum.) C3/3FB1: B9571D LDA $1D57,Y C3/3FB4: 9F2B317E STA $7E312B,X C3/3FB8: C8 INY C3/3FB9: C8 INY C3/3FBA: E8 INX C3/3FBB: E8 INX C3/3FBC: E00E00 CPX #$000E C3/3FBF: D0F0 BNE $3FB1 C3/3FC1: E220 SEP #$20 (8 bit memory/accum.) C3/3FC3: 60 RTS
C3/3FC4 unknow
C3/3FC4: 7B TDC C3/3FC5: AD4E1D LDA $1D4E C3/3FC8: 290F AND #$0F C3/3FCA: 8D0242 STA $4202 C3/3FCD: A90E LDA #$0E C3/3FCF: 8D0342 STA $4203 C3/3FD2: AD541D LDA $1D54 C3/3FD5: 2938 AND #$38 C3/3FD7: F019 BEQ $3FF2 C3/3FD9: 4A LSR A C3/3FDA: 4A LSR A C3/3FDB: 18 CLC C3/3FDC: 6D1642 ADC $4216 C3/3FDF: AA TAX C3/3FE0: A59A LDA $9A C3/3FE2: 9D551D STA $1D55,X C3/3FE5: A59B LDA $9B C3/3FE7: 9D561D STA $1D56,X C3/3FEA: AC1642 LDY $4216 C3/3FED: 20AD3F JSR $3FAD C3/3FF0: 8008 BRA $3FFA C3/3FF2: A49A LDY $9A C3/3FF4: 8C551D STY $1D55 C3/3FF7: 20993F JSR $3F99 C3/3FFA: 4CC341 JMP $41C3
C3/3FFD setting magic order
C3/3FFD: A928 LDA #$28 C3/3FFF: 8529 STA $29 (set text color to gray) C3/4001: A0A54A LDY #$4AA5 C3/4004: 20F902 JSR $02F9 (display "1 2 3 4 5 6") C3/4007: A920 LDA #$20 C3/4009: 8529 STA $29 (set text color to white) C3/400B: 7B TDC C3/400C: AD541D LDA $1D54 C3/400F: 2907 AND #$07 C3/4011: 0A ASL A C3/4012: AA TAX C3/4013: C220 REP #$20 (16 bit memory/accum.) C3/4015: BF2F40C3 LDA $C3402F,X C3/4019: 85F7 STA $F7 C3/401B: E220 SEP #$20 (8 bit memory/accum.) C3/401D: AD541D LDA $1D54 C3/4020: 2907 AND #$07 C3/4022: 18 CLC C3/4023: 69B5 ADC #$B5 C3/4025: 85F9 STA $F9 C3/4027: 64FA STZ $FA C3/4029: 201641 JSR $4116 C3/402C: 4C3B40 JMP $403B (BRA would work here)