Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Final Fantasy VI/ROM map/Assembly C36
< Final Fantasy VI | ROM map
Jump to navigation
Jump to search
C3/6096: 273A (level's position) C3/6098: 633A (current HP's position) C3/609A: 6D3A (max HP's position) C3/609C: A33A (current MP's position) C3/609E: AD3A (max MP's position)
C3/60A0 unknow
C3/60A0: A667 LDX $67 C3/60A2: 7B TDC C3/60A3: BD0800 LDA $0008,X (Level) C3/60A6: C963 CMP #$63 C3/60A8: F019 BEQ $60C3 C3/60AA: 20CA60 JSR $60CA C3/60AD: A667 LDX $67 C3/60AF: 38 SEC C3/60B0: A5F1 LDA $F1 C3/60B2: FD1100 SBC $0011,X C3/60B5: 85F1 STA $F1 C3/60B7: C220 REP #$20 (16 bit memory/accum.) C3/60B9: A5F2 LDA $F2 C3/60BB: FD1200 SBC $0012,X C3/60BE: 85F2 STA $F2 C3/60C0: E220 SEP #$20 (8 bit memory/accum.) C3/60C2: 60 RTS
C3/60C3 unknow
C3/60C3: 7B TDC C3/60C4: AA TAX C3/60C5: 86F1 STX $F1 C3/60C7: 64F3 STZ $F3 C3/60C9: 60 RTS
C3/60CA unknow
C3/60CA: 0A ASL A C3/60CB: 85EB STA $EB C3/60CD: 7B TDC C3/60CE: AA TAX C3/60CF: 86F1 STX $F1 C3/60D1: 86F3 STX $F3 C3/60D3: 64EC STZ $EC C3/60D5: 18 CLC C3/60D6: BF2082ED LDA $ED8220,X (experience needed for level up) C3/60DA: 65F1 ADC $F1 C3/60DC: 85F1 STA $F1 C3/60DE: E8 INX C3/60DF: BF2082ED LDA $ED8220,X (experience needed for level up) C3/60E3: 65F2 ADC $F2 C3/60E5: 85F2 STA $F2 C3/60E7: 7B TDC C3/60E8: 65F3 ADC $F3 C3/60EA: 85F3 STA $F3 C3/60EC: E8 INX C3/60ED: E4EB CPX $EB C3/60EF: D0E4 BNE $60D5 C3/60F1: C220 REP #$20 (16 bit memory/accum.) C3/60F3: 06F1 ASL $F1 C3/60F5: 26F3 ROL $F3 C3/60F7: 06F1 ASL $F1 C3/60F9: 26F3 ROL $F3 C3/60FB: 06F1 ASL $F1 C3/60FD: 26F3 ROL $F3 C3/60FF: E220 SEP #$20 (8 bit memory/accum.) C3/6101: 60 RTS
C3/6102 unknow
C3/6102: A0F17B LDY #$7BF1 C3/6105: 201935 JSR $3519 C3/6108: 20E15E JSR $5EE1 (check for blanked and grayed commands) C3/610B: A0717C LDY #$7C71 C3/610E: 201935 JSR $3519 C3/6111: C8 INY C3/6112: 20E15E JSR $5EE1 (check for blanked and grayed commands) C3/6115: A0F17C LDY #$7CF1 C3/6118: 201935 JSR $3519 C3/611B: C8 INY C3/611C: C8 INY C3/611D: 20E15E JSR $5EE1 (check for blanked and grayed commands) C3/6120: A0717D LDY #$7D71 C3/6123: 201935 JSR $3519 C3/6126: C8 INY C3/6127: C8 INY C3/6128: C8 INY C3/6129: 4CE15E JMP $5EE1 (check for blanked and grayed commands)
C3/612C check for blanked commands
C3/612C: B91600 LDA $0016,Y C3/612F: C902 CMP #$02 (is it magic?) C3/6131: D00B BNE $613E C3/6133: 5A PHY C3/6134: 202B0D JSR $0D2B (check to see if character knows magic) C3/6137: B004 BCS $613D (branch if magic is known) C3/6139: 7A PLY C3/613A: A9FF LDA #$FF (no command) C3/613C: 60 RTS
C3/613D unknow
C3/613D: 7A PLY C3/613E: B91600 LDA $0016,Y C3/6141: C903 CMP #$03 (is it morph?) C3/6143: D00A BNE $614F C3/6145: ADD11D LDA $1DD1 C3/6148: 8904 BIT #$04 (has the second Tritoch event happened yet?) C3/614A: D003 BNE $614F (branch if so) C3/614C: A9FF LDA #$FF (no command) C3/614E: 60 RTS
C3/614F unknow
C3/614F: B91600 LDA $0016,Y C3/6152: C911 CMP #$11 (is it leap?) C3/6154: D00A BNE $6160 C3/6156: ADE411 LDA $11E4 C3/6159: 8904 BIT #$04 (are we on the Veldt?) C3/615B: D003 BNE $6160 (branch if so) C3/615D: A9FF LDA #$FF (no command) C3/615F: 60 RTS
C3/6160 unknow
C3/6160: B91600 LDA $0016,Y C3/6163: C913 CMP #$13 (is it dance?) C3/6165: D008 BNE $616F C3/6167: AD4C1D LDA $1D4C (bitfield of known dances) C3/616A: D003 BNE $616F (branch if no dances known) C3/616C: A9FF LDA #$FF (no command) C3/616E: 60 RTS
C3/616F unknow
C3/616F: B91600 LDA $0016,Y (unmodified commands) C3/6172: 85E0 STA $E0 C3/6174: 7B TDC C3/6175: AA TAX C3/6176: ADD611 LDA $11D6 C3/6179: 297C AND #$7C (Filter out bit 7, bit 1, and bit 0 [bits which don't change commands]) C3/617B: 0A ASL A C3/617C: 0A ASL A (Multiply by 4) C3/617D: 900A BCC $6189 (if carry was clear, this command does not need to be changed) C3/617F: 48 PHA C3/6180: BF9861C3 LDA $C36198,X (load command to change from) C3/6184: C5E0 CMP $E0 (is this the command?) C3/6186: F00A BEQ $6192 (branch if so) C3/6188: 68 PLA C3/6189: E8 INX C3/618A: E00500 CPX #$0005 (otherwise loop and try again) C3/618D: D0ED BNE $617C (branch if 5 commands haven't been checked) C3/618F: A5E0 LDA $E0 (load command) C3/6191: 60 RTS
C3/6192 unknow
C3/6192: 68 PLA C3/6193: BF9D61C3 LDA $C3619D,X (Replace it with this command) C3/6197: 60 RTS
C3/6198 data: commands to change (from)
C3/6198: 05 (Steal) C3/6199: 0F (Slot) C3/619A: 0D (Sketch) C3/619B: 02 (Magic) C3/619C: 00 (Fight)
C3/619D data: commands to change (to)
C3/619D: 06 (Capture) C3/619E: 18 (GP Rain) C3/619F: 0E (Control) C3/61A0: 17 (X-Magic) C3/61A1: 16 (Jump)
C3/61A2 unknow
C3/61A2: 7B TDC C3/61A3: A560 LDA $60 C3/61A5: AA TAX C3/61A6: A9FF LDA #$FF C3/61A8: 9FC9357E STA $7E35C9,X C3/61AC: 20DA61 JSR $61DA C3/61AF: 4CE661 JMP $61E6
C3/61B2 unknow
C3/61B2: 20DA61 JSR $61DA C3/61B5: 8B PHB C3/61B6: A97E LDA #$7E C3/61B8: 48 PHA C3/61B9: AB PLB C3/61BA: C220 REP #$20 (16 bit memory/accum.) C3/61BC: A9C800 LDA #$00C8 C3/61BF: 9DCA33 STA $33CA,X C3/61C2: E220 SEP #$20 (8 bit memory/accum.) C3/61C4: 7B TDC C3/61C5: A528 LDA $28 C3/61C7: A8 TAY C3/61C8: 20CC0A JSR $0ACC C3/61CB: C220 REP #$20 (16 bit memory/accum.) C3/61CD: A93000 LDA #$0030 C3/61D0: 9D4A34 STA $344A,X C3/61D3: E220 SEP #$20 (8 bit memory/accum.) C3/61D5: 200612 JSR $1206 C3/61D8: AB PLB C3/61D9: 60 RTS
C3/61DA unknow
C3/61DA: A903 LDA #$03 C3/61DC: A0120B LDY #$0B12 C3/61DF: 207311 JSR $1173 (put C3/0B12 in the queue) C3/61E2: 8A TXA C3/61E3: 8560 STA $60 C3/61E5: 60 RTS
C3/61E6 unknow
C3/61E6: 8B PHB C3/61E7: A97E LDA #$7E C3/61E9: 48 PHA C3/61EA: AB PLB C3/61EB: 7B TDC C3/61EC: A528 LDA $28 C3/61EE: A8 TAY C3/61EF: 20F10A JSR $0AF1 C3/61F2: 7B TDC C3/61F3: A528 LDA $28 C3/61F5: A8 TAY C3/61F6: 20FB61 JSR $61FB C3/61F9: AB PLB C3/61FA: 60 RTS
C3/61FB unknow
C3/61FB: 20CC0A JSR $0ACC C3/61FE: C220 REP #$20 (16 bit memory/accum.) C3/6200: A93800 LDA #$0038 C3/6203: 9D4A34 STA $344A,X C3/6206: E220 SEP #$20 (8 bit memory/accum.) C3/6208: 4C0612 JMP $1206
C3/620B unknow
C3/620B: A902 LDA #$02 (from C3/1C49, C3/632E) C3/620D: 8D5043 STA $4350 C3/6210: A912 LDA #$12 C3/6212: 8D5143 STA $4351 (register address becomes $2112) C3/6215: A02A62 LDY #$622A C3/6218: 8C5243 STY $4352 (set address) C3/621B: A9C3 LDA #$C3 C3/621D: 8D5443 STA $4354 (set bank, C3/622A) C3/6220: A9C3 LDA #$C3 C3/6222: 8D5743 STA $4357 C3/6225: A920 LDA #$20 C3/6227: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/6229: 60 RTS
C3/622A data: hdma transfer table
C3/622A: 270000 (39 scanlines, 0 pixel shift) C3/622C: 0C0400 (12 scanlines, 4 pixel shift) C3/6230: 0C0800 (12 scanlines, 8 pixel shift) C3/6233: 0C0C00 (12 scanlines, 12 pixel shift) C3/6236: 0C1000 (12 scanlines, 16 pixel shift) C3/6239: 0C1400 (12 scanlines, 20 pixel shift) C3/623C: 0C1800 (12 scanlines, 24 pixel shift) C3/623F: 0C1C00 (12 scanlines, 28 pixel shift) C3/6242: 0C2000 (12 scanlines, 32 pixel shift) C3/6245: 0C2400 (12 scanlines, 36 pixel shift) C3/6248: 0C2800 (12 scanlines, 40 pixel shift) C3/624B: 0C2C00 (12 scanlines, 44 pixel shift) C3/624E: 0C3000 (12 scanlines, 48 pixel shift) C3/6251: 0C3400 (12 scanlines, 52 pixel shift) C3/6254: 0C3800 (12 scanlines, 56 pixel shift) C3/6257: 0C3C00 (12 scanlines, 60 pixel shift, 219 scanlines total) C3/625A: 00 (end)
C3/625B unknow
C3/625B: A09D39 LDY #$399D (position of ailment icons) C3/625E: A250 STY $50 C3/6260: 2086E7 JSR $E786 C3/6263: 201935 JSR $3519 C3/6266: B91400 LDA $0014,Y (Statuses) C3/6269: 307C BMI $62E7 C3/626B: 2970 AND #$70 C3/626D: 85E1 STA $E1 C3/626F: B91400 LDA $0014,Y (Statuses) C3/6272: 2907 AND #$07 C3/6274: 0A ASL A C3/6275: 85E2 STA $E2 C3/6277: B91500 LDA $0015,Y (Statuses) C3/627A: 2980 AND #$80 C3/627C: 05E1 ORA $E1 C3/627E: 05E2 ORA $E2 C3/6280: 85E1 STA $E1 C3/6282: F05D BEQ $62E1 C3/6284: 64F1 STZ $F1 C3/6286: 64F2 STZ $F2 C3/6288: A20700 LDX #$0007 C3/628B: DA PHX C3/628C: 0A ASL A C3/628D: 9046 BCC $62D5 C3/628F: 48 PHA C3/6290: A903 LDA #$03 C3/6292: A0427B LDY #$7B42 C3/6295: 207311 JSR $1173 (put C3/7B42 in the queue) C3/6298: A901 LDA #$01 C3/629A: 9F4A367E STA $7E364A,X C3/629E: 7B TDC C3/629F: 9F49367E STA $7E3649,X C3/62A3: 9B TXY C3/62A4: A6F1 LDX $F1 C3/62A6: 8B PHB C3/62A7: A97E LDA #$7E C3/62A9: 48 PHA C3/62AA: AB PLB C3/62AB: C220 REP #$20 (16 bit memory/accum.) C3/62AD: BF25ECD8 LDA $D8EC25,X (ailment icons in VWF) C3/62B1: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/62B4: E220 SEP #$20 (8 bit memory/accum.) C3/62B6: A5E7 LDA $E7 C3/62B8: 99CA33 STA $33CA,Y C3/62BB: A5E8 LDA $E8 C3/62BD: 994A34 STA $344A,Y C3/62C0: 7B TDC C3/62C1: 99CB33 STA $33CB,Y C3/62C4: 994B34 STA $344B,Y C3/62C7: A9D8 LDA #$D8 C3/62C9: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/62CC: AB PLB C3/62CD: 18 CLC C3/62CE: A90A LDA #$0A C3/62D0: 65E7 ADC $E7 C3/62D2: 85E7 STA $E7 C3/62D4: 68 PLA C3/62D5: E6F1 INC $F1 C3/62D7: E6F1 INC $F1 C3/62D9: FA PLX C3/62DA: CA DEX C3/62DB: D0AE BNE $628B C3/62DD: A920 LDA #$20 C3/62DF: 8529 STA $29 (set text color to white) C3/62E1: 200663 JSR $6306 C3/62E4: 4CD97F JMP $7FD9
C3/62E7 unknow
C3/62E7: A28B9E LDX #$9E8B C3/62EA: 8E8121 STX $2181 C3/62ED: A600 LDX $00 C3/62EF: BF1B37C3 LDA $C3371B,X C3/62F3: 8D8021 STA $2180 C3/62F6: E8 INX C3/62F7: E00800 CPX #$0008 C3/62FA: D0F3 BNE $62EF C3/62FC: 9C8021 STZ $2180 (end this string) C3/62FF: A928 LDA #$28 C3/6301: 8529 STA $29 (set text color to gray) C3/6303: 4CD97F JMP $7FD9
C3/6306 unknow
C3/6306: A28B9E LDX #$9E8B C3/6309: 8E8121 STX $2181 C3/630C: A600 LDX $00 C3/630E: A9FF LDA #$FF C3/6310: 8D8021 STA $2180 C3/6313: E8 INX C3/6314: E00800 CPX #$0008 C3/6317: D0F7 BNE $6310 C3/6319: 9C8021 STZ $2180 (end this string) C3/631C: 60 RTS
C3/631D unknow
C3/631D: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/6320: AD0002 LDA $0200 C3/6323: 8522 STA $22 C3/6325: 9C0002 STZ $0200 C3/6328: 6425 STZ $25 C3/632A: A940 LDA #$40 C3/632C: 1443 TRB $43 (eventually disable channel 6 of HDMA) C3/632E: 200B62 JSR $620B C3/6331: 205463 JSR $6354 C3/6334: A901 LDA #$01 C3/6336: 8526 STA $26 (transition) C3/6338: A943 LDA #$43 C3/633A: 8527 STA $27 (queue up to execute at C3/633F) C3/633C: 4C4135 JMP $3541
C3/633F unknow
C3/633F: A509 LDA $09 C3/6341: 8980 BIT #$80 (did you press B?) C3/6343: F00E BEQ $6353 (branch if not, BPL...) C3/6345: 20A90E JSR $0EA9 C3/6348: A54C LDA $4C C3/634A: 8527 STA $27 C3/634C: 6426 STZ $26 (fade out) C3/634E: A522 LDA $22 C3/6350: 8D0002 STA $0200 C3/6353: 60 RTS
C3/6354 unknow
C3/6354: 20175D JSR $5D17 C3/6357: 203C5D JSR $5D3C C3/635A: 207963 JSR $6379 C3/635D: 20C25F JSR $5FC2 C3/6360: 20775D JSR $5D77 C3/6363: 20DA61 JSR $61DA C3/6366: 8B PHB C3/6367: A97E LDA #$7E C3/6369: 48 PHA C3/636A: AB PLB C3/636B: 7B TDC C3/636C: A528 LDA $28 C3/636E: A8 TAY C3/636F: 208E63 JSR $638E C3/6372: 7B TDC C3/6373: A8 TAY C3/6374: 20FB61 JSR $61FB C3/6377: AB PLB C3/6378: 60 RTS
C3/6379 unknow
C3/6379: 7B TDC C3/637A: A5C9 LDA $C9 C3/637C: 8528 STA $28 C3/637E: 0A ASL A C3/637F: AA TAX C3/6380: C220 REP #$20 (16 bit memory/accum.) C3/6382: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/6386: 8567 STA $67 C3/6388: E220 SEP #$20 (8 bit memory/accum.) C3/638A: 7B TDC C3/638B: A5C9 LDA $C9 C3/638D: 60 RTS
C3/638E unknow
C3/638E: B95018 LDA $1850,Y C3/6391: 8920 BIT #$20 C3/6393: F007 BEQ $639C C3/6395: C220 REP #$20 (16 bit memory/accum.) C3/6397: A91A00 LDA #$001A C3/639A: 8005 BRA $63A1 C3/639C: C220 REP #$20 (16 bit memory/accum.) C3/639E: A90E00 LDA #$000E C3/63A1: 9DCA33 STA $33CA,X C3/63A4: E220 SEP #$20 (8 bit memory/accum.) C3/63A6: 60 RTS
C3/63A7: 200964 JSR $6409 (from C3/02AF, the massive jump table; $26 = #$6A) C3/63AA: A508 LDA $08 C3/63AC: 8980 BIT #$80 (did you press A?) C3/63AE: F02A BEQ $63DA (branch if not, BPL...) C3/63B0: 20B20E JSR $0EB2 (makes the click sound) C3/63B3: 9C6500 STZ $0065 C3/63B6: 7B TDC C3/63B7: A54B LDA $4B C3/63B9: AA TAX C3/63BA: BF8A9D7E LDA $7E9D8A,X C3/63BE: 85E0 STA $E0 C3/63C0: 7B TDC C3/63C1: A528 LDA $28 C3/63C3: 0A ASL A C3/63C4: AA TAX C3/63C5: B46D LDY $6D,X (wouldn't REP #$21, LDA $6D,X work better here?) C3/63C7: C220 REP #$20 (16 bit memory/accum.) C3/63C9: 98 TYA C3/63CA: 18 CLC C3/63CB: 6564 ADC $64 C3/63CD: A8 TAY C3/63CE: E220 SEP #$20 (8 bit memory/accum.) C3/63D0: A5E0 LDA $E0 C3/63D2: 991600 STA $0016,Y (unmodified commands) C3/63D5: 200261 JSR $6102 (check for grayed and blanked commands) C3/63D8: 8009 BRA $63E3 C3/63DA: A509 LDA $09 C3/63DC: 8980 BIT #$80 (did you press B?) C3/63DE: F022 BEQ $6402 (branch if not, BPL...) C3/63E0: 20A90E JSR $0EA9 C3/63E3: A901 LDA #$01 C3/63E5: 1446 TRB $46 C3/63E7: A906 LDA #$06 C3/63E9: 8520 STA $20 C3/63EB: A0F4FF LDY #$FFF4 C3/63EE: 849C STY $9C C3/63F0: A90C LDA #$0C C3/63F2: 8527 STA $27 (queue up to execute at C3/21F5) C3/63F4: A965 LDA #$65 C3/63F6: 8526 STA $26 (execute at C3/36E7) C3/63F8: 20FF36 JSR $36FF (hotspot data for the four commands in status menu) C3/63FB: A55E LDA $5E C3/63FD: 854E STA $4E C3/63FF: 200837 JSR $3708 (set finger positioning for the four commands in the status menu) C3/6402: 60 RTS C3/6403: A01264 LDY #$6412 C3/6406: 4CFE05 JMP $05FE C3/6409: 202D07 JSR $072D C3/640C: A01764 LDY #$6417 C3/640F: 4C4006 JMP $0640
C3/6412 data: hotspot data
C3/6412: 80 00 00 01 10
C3/6417 data: finger positions
C3/6417: F010 C3/6419: F01C C3/641B: F028 C3/641D: F034 C3/641F: F040 C3/6421: F04C C3/6423: F058 C3/6425: F064 C3/6427: F070 C3/6429: F07C C3/642B: F088 C3/642D: F094 C3/642F: F0A0 C3/6431: F0AC C3/6433: F0B8 C3/6435: F0C4
C3/6437 data: unknow
C3/6437: 9764 (from C3/5D60) C3/6439: 9F64 C3/643B: A964 C3/643D: B364 C3/643F: BD64 C3/6441: C764 C3/6443: CB64 C3/6445: CF64 C3/6447: D364 C3/6449: D764 C3/644B: DB64 C3/644D: DF64 C3/644F: E364 C3/6451: E764 C3/6453: 6F64
C3/6455 data: unknow
Data: Used by C3/69BA C3/6455: 8864 (from C3/5D52) C3/6457: 8D64 C3/6459: 9264
C3/645B data: unknow
Data: Used by C3/69BA C3/645B: 7864 (from C3/5D45) C3/645D: 7C64 C3/645F: 8064 C3/6461: 8464
C3/6463 data: unknow
Data: Used by C3/69BA C3/6463: EB64 (from C3/5D6D) C3/6465: F364 C3/6467: FD64 C3/6469: 0765 C3/646B: 1165 C3/646D: 1D65
C3/646F data: strings
C3/646F: CD7892AD9AADAEAC00 (position of and word "Status") C3/6478: 6B3AC000 (position of and word "/") C3/647C: AB3AC000 (position of and word "/") C3/6480: 837FCD00 (position of and word "%") C3/6484: 8388CD00 (position of and word "%") C3/6488: 1D3A8B9500 (position of and word "LV") C3/648D: 5D3A878F00 (position of and word "HP") C3/6492: 9D3A8C8F00 (position of and word "MP") C3/6497: CF7E95A2A0A8AB00 (position of and word "Vigor") C3/649F: CF7F92AD9AA6A2A79A00 (position of and word "Stamina") C3/64A9: 4F888C9AA0C58FB0AB00 (position of and word "Mag.Pwr") C3/64B3: 697F84AF9A9D9EFFCD00 (position of and word "Evade%") C3/64BD: 69888C81A5A89CA4CD00 (position of and word "MBlock%") C3/64C7: DD7ED300 (position of and word "..") C3/64CB: 5D7FD300 (position of and word "..") C3/64CF: DD7FD300 (position of and word "..") C3/64D3: 5D88D300 (position of and word "..") C3/64D7: FB7ED300 (position of and word "..") C3/64DB: 7B7FD300 (position of and word "..") C3/64DF: 7B7ED300 (position of and word "..") C3/64E3: FB7FD300 (position of and word "..") C3/64E7: 7B88D300 (position of and word "..") C3/64EB: 4F7F92A99E9E9D00 (position of and word "Speed") C3/64F3: 697E819AADC58FB0AB00 (position of and word "Bat.Pwr") C3/64FD: E97E839E9F9EA7AC9E00 (position of and word "Defense") C3/6507: E97F8C9AA0C5839E9F00 (position of and word "Mag.Def") C3/6511: 4D7C98A8AEABFF84B1A9C100 (position of and words "Your Exp:") C3/651D: 4D7D85A8ABFFA59EAF9EA5FFAEA9C100 (position of and words "For level up:")
C3/652D unknow
C3/652D: 202F35 JSR $352F (turn off screen and H/DMA) C3/6520: AC0102 LDY $0201 (load availibility bits, tent useage, warping, etc) C3/6533: 8467 STY $67 C3/6535: 200469 JSR $6904 C3/6538: A902 LDA #$02 C3/653A: 8546 STA $46 C3/653C: 644A STZ $4A C3/653E: 203866 JSR $6638 (get hotspot data for naming screen) C3/6541: 204166 JSR $6641 (get finger positioning data for naming screen) C3/6544: 20B007 JSR $07B0 (finger OAM initiating) C3/6547: 200567 JSR $6705 (name your character) C3/654A: 202166 JSR $6621 (check name?) C3/654D: 203C68 JSR $683C C3/6550: 208C67 JSR $678C C3/6553: 207167 JSR $6771 C3/6556: 20D866 JSR $66D8 C3/6559: A902 LDA #$02 C3/655B: A0A368 LDY #$68A3 C3/655E: 207311 JSR $1173 (put C3/68A3 in the queue) C3/6561: A95F LDA #$5F C3/6563: 8527 STA $27 (queue up to execute code at C3/656C) C3/6565: A901 LDA #$01 C3/6567: 8526 STA $26 (fade out the screen for menu loading) C3/6569: 4C4135 JMP $3541
C3/656C unknow
C3/656C: 20E90E JSR $0EE9 (from C3/0299, the huge pointer table) C3/656F: 203E66 JSR $663E (determine new position of finger after pressing a direction) C3/6572: 205B67 JSR $675B (get character's default name displayed) C3/6575: A509 LDA $09 C3/6577: 8910 BIT #$10 (did you press start?) C3/6579: F003 BEQ $657E (branch if not) C3/657B: 4CC265 JMP $65C2 (pressed start, confirm the name if possible)
C3/657E add a letter to character name
C3/657E: A508 LDA $08 C3/6580: 8980 BIT #$80 (did you press A?) C3/6582: F011 BEQ $6595 (branch if not, BPL...) C3/6584: 20B20E JSR $0EB2 (makes the click sound) C3/6587: 7B TDC C3/6588: 20E865 JSR $65E8 C3/658B: A528 LDA $28 C3/658D: C905 CMP #$05 (Is it at position 5?) C3/658F: F001 BEQ $6592 (If so, branch and exit) C3/6591: 1A INC A (Increment cursor position) C3/6592: 8528 STA $28 (Store cursor position) C3/6594: 60 RTS
C3/6595 delete a letter from character name
C3/6595: A509 LDA $09 C3/6597: 8980 BIT #$80 (did you press B?) C3/6599: F026 BEQ $65C1 (branch if not, BPL...) C3/659B: 20C70E JSR $0EC7 (makes the shift sound) C3/659E: A528 LDA $28 (get cursor position) C3/65A0: F01F BEQ $65C1 (branch if position is 0) C3/65A2: C905 CMP #$05 C3/65A4: D00F BNE $65B5 (branch if position is 5) C3/65A6: 200F66 JSR $660F C3/65A9: B90200 LDA $0002,Y C3/65AC: C9FF CMP #$FF C3/65AE: F005 BEQ $65B5 C3/65B0: A9FF LDA #$FF C3/65B2: 4CE865 JMP $65E8
C3/65B5 unknow
C3/65B5: A901 LDA #$01 C3/65B7: 20E865 JSR $65E8 C3/65BA: A528 LDA $28 (Load cursor position) C3/65BC: F001 BEQ $65BF (Branch to exit if it is at position 0) C3/65BE: 3A DEC A (Decrement cursor position) C3/65BF: 8528 STA $28 (Store cursor position) C3/65C1: 60 RTS
C3/65C2 press start at naming screen
C3/65C2: A467 LDY $67 C3/65C4: A600 LDX $00 C3/65C6: B90200 LDA $0002,Y C3/65C9: C9FF CMP #$FF C3/65CB: D00E BNE $65DB C3/65CD: C8 INY C3/65CE: E8 INX C3/65CF: E00600 CPX #$0006 (have we checked 6 letters yet?) C3/65D2: D0F2 BNE $65C6 (branch if we haven't) C3/65D4: 20C00E JSR $0EC0 (makes the buzzer sound if no name exists) C3/65D7: 205D30 JSR $305D (mosaic effect) C3/65DA: 60 RTS
C3/65DB unknow
C3/65DB: 20B20E JSR $0EB2 (makes the click sound) C3/65DE: 9C0502 STZ $0205 C3/65E1: A9FF LDA #$FF C3/65E3: 8527 STA $27 C3/65E5: 6426 STZ $26 C3/65E7: 60 RTS
C3/65E8 unknow
C3/65E8: 48 PHA C3/65E9: 200F66 JSR $660F C3/65EC: 68 PLA C3/65ED: 300B BMI $65FA (this branch should execute only when A = #$FF) C3/65EF: F00F BEQ $6600 C3/65F1: A9FF LDA #$FF C3/65F3: 990200 STA $0002,Y C3/65F6: 990100 STA $0001,Y C3/65F9: 60 RTS C3/65FA: A9FF LDA #$FF C3/65FC: 990200 STA $0002,Y C3/65FF: 60 RTS C3/6600: 7B TDC C3/6601: A54B LDA $4B C3/6603: 18 CLC C3/6604: 654A ADC $4A C3/6606: AA TAX C3/6607: BFC8E8D8 LDA $D8E8C8,X (the alphabet for the naming screen) C3/660B: 990200 STA $0002,Y C3/660E: 60 RTS
C3/660F update ram adress when cursor moves
When cursor moves, update RAM address to point at... C3/660F: A467 LDY $67 (Load character RAM offset) C3/6611: A528 LDA $28 (Load A with position) C3/6613: 85E7 STA $E7 (Store position to $E7) C3/6615: 64E8 STZ $E8 (Zero $E8) C3/6617: C220 REP #$20 (16 bit memory/accum.) C3/6619: 98 TYA (Transfer character RAM offset to A) C3/661A: 18 CLC (Clear Carry) C3/661B: 65E7 ADC $E7 (Add the cursor position) C3/661D: A8 TAY (Transfer the RAM offset + cursor position to Y) C3/661E: E220 SEP #$20 (8 bit memory/accum.) C3/6620: 60 RTS
C3/6621 unknow
C3/6621: A467 LDY $67 (from C3/654A) C3/6623: A600 LDX $00 C3/6625: B90200 LDA $0002,Y C3/6628: C9FF CMP #$FF C3/662A: F008 BEQ $6634 C3/662C: C8 INY C3/662D: E8 INX C3/662E: E00600 CPX #$0006 (check all 6 letters of character name) C3/6631: D0F2 BNE $6625 C3/6633: CA DEX C3/6634: 8A TXA C3/6635: 8528 STA $28 C3/6637: 60 RTS
C3/6638 unknow
C3/6638: A04766 LDY #$6647 C3/663B: 4CFE05 JMP $05FE
C3/663E unknow
C3/663E: 202D07 JSR $072D (determine current finger position, move to new position based on the location; from C3/656F) C3/6641: A04C66 LDY #$664C C3/6644: 4C4006 JMP $0640
C3/6647 data: hotspot for character naming screen
C3/6647: 01 00 00 0A 07
C3/664C data: positions for characters in naming screen
C3/664C: 3858 (finger over 'A') C3/664E: 4858 (finger over 'B') C3/6650: 5858 (finger over 'C') C3/6652: 6858 (finger over 'D') C3/6654: 7858 (finger over 'E') C3/6656: 9058 (finger over 'a') C3/6658: A058 (finger over 'b') C3/665B: B058 (finger over 'c') C3/665C: C058 (finger over 'd') C3/665E: D058 (finger over 'e') C3/6660: 3868 (finger over 'F') C3/6662: 4868 (finger over 'G') C3/6664: 5868 (finger over 'H') C3/6666: 6868 (finger over 'I') C3/6668: 7868 (finger over 'J') C3/666A: 9068 (finger over 'f') C3/666C: A068 (finger over 'g') C3/666E: B068 (finger over 'h') C3/6670: C068 (finger over 'i') C3/6672: D068 (finger over 'j') C3/6674: 3878 (finger over 'K') C3/6676: 4878 (finger over 'L') C3/6678: 5878 (finger over 'M') C3/667A: 6878 (finger over 'N') C3/667C: 7878 (finger over 'O') C3/667E: 9078 (finger over 'k') C3/6680: A078 (finger over 'l') C3/6682: B078 (finger over 'm') C3/6684: C078 (finger over 'n') C3/6686: B078 (finger over 'o') C3/6688: 3888 (finger over 'P') C3/668A: 4888 (finger over 'Q') C3/668C: 5888 (finger over 'R') C3/668E: 6888 (finger over 'S') C3/6690: 7888 (finger over 'T') C3/6692: 9088 (finger over 'p') C3/6694: A088 (finger over 'q') C3/6696: B088 (finger over 'r') C3/6698: C088 (finger over 's') C3/669A: B088 (finger over 't') C3/669C: 3898 (finger over 'U') C3/669E: 4898 (finger over 'V') C3/66A0: 5898 (finger over 'W') C3/66A2: 6898 (finger over 'X') C3/66A4: 7898 (finger over 'Y') C3/66A6: 9098 (finger over 'u') C3/66A8: A098 (finger over 'v') C3/66AA: B098 (finger over 'w') C3/66AC: C098 (finger over 'x') C3/66AE: B098 (finger over 'y') C3/66B0: 38A8 (finger over 'Z') C3/66B2: 48A8 (finger over '!') C3/66B4: 58A8 (finger over '?') C3/66B6: 68A8 (finger over '/') C3/66B8: 78A8 (finger over ':') C3/66BA: 90A8 (finger over 'z') C3/66BC: A0A8 (finger over '"') C3/66BF: B0A8 (finger over ) C3/66C0: C0A8 (finger over '-') C3/66C3: B0A8 (finger over '.') C3/66C4: 38B8 (finger over '0') C3/66C6: 48B8 (finger over '1') C3/66C8: 58B8 (finger over '2') C3/66CA: 68B8 (finger over '3') C3/66CC: 78B8 (finger over '4') C3/66CE: 90B8 (finger over '5') C3/66D0: A0B8 (finger over '6') C3/66D2: B0B8 (finger over '7') C3/66D4: C0B8 (finger over '8') C3/66D6: D0B8 (finger over '9')
C3/66D8 unknow
C3/66D8: A903 LDA #$03 C3/66DA: A0120B LDY #$0B12 C3/66DD: 207311 JSR $1173 (put C3/0B12 in queue) C3/66E0: 8B PHB C3/66E1: A97E LDA #$7E C3/66E3: 48 PHA C3/66E4: AB PLB C3/66E5: C220 REP #$20 (16 bit memory/accum.) C3/66E7: A98C0B LDA #$0B8C C3/66EA: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/66ED: A91000 LDA #$0010 C3/66F0: 9DCA33 STA $33CA,X C3/66F3: A91000 LDA #$0010 C3/66F6: 9D4A34 STA $344A,X C3/66F9: E220 SEP #$20 (8 bit memory/accum.) C3/66FB: A9C3 LDA #$C3 C3/66FD: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/6700: 200612 JSR $1206 C3/6703: AB PLB C3/6704: 60 RTS
C3/6705 character naming screen
C3/6705: 20286A JSR $6A28 C3/6708: A06567 LDY #$6765 C3/670B: 204103 JSR $0341 (draw window that holds alphabet) C3/670E: A06967 LDY #$6769 C3/6711: 204103 JSR $0341 (draw window that holds character portrait) C3/6714: A06D67 LDY #$676D C3/6717: 204103 JSR $0341 (draw window that holds "Please enter a name.") C3/671A: A06167 LDY #$6761 C3/671D: 204103 JSR $0341 (draw window that holds character name) C3/6720: 20520E JSR $0E52 C3/6723: 20156A JSR $6A15 C3/6726: 20196A JSR $6A19 C3/6729: 201E6A JSR $6A1E C3/672C: A920 LDA #$20 C3/672E: 8529 STA $29 (set text color to white) C3/6730: A25B39 LDX #$395B C3/6733: A0C8E8 LDY #$E8C8 C3/6736: 84E7 STY $E7 C3/6738: A9D8 LDA #$D8 C3/673A: 85E9 STA $E9 (D8/E8C8 seems to hold the alphabet for the naming screen) C3/673C: A907 LDA #$07 C3/673E: 85E5 STA $E5 C3/6740: 20BF67 JSR $67BF C3/6743: 205B67 JSR $675B (display default name for character) C3/6746: A0E368 LDY #$68E3 C3/6749: 20F902 JSR $02F9 (display "Please enter a name.") C3/674C: 20280E JSR $0E28 C3/674F: 20360E JSR $0E36 C3/6752: 20440E JSR $0E44 C3/6755: 203C6A JSR $6A3C C3/6758: 4C6E0E JMP $0E6E
C3/675B unknow
C3/675B: A02942 LDY #$4229 C3/675E: 4CCF34 JMP $34CF (display default name for character)
C3/6761 data: window for character naming screen
C3/6761: 9B591202 (window that holds character name) C3/6765: 575A1611 (window that holds alphabet) C3/6769: 8B580505 (window that holds character portrait) C3/676D: 99581402 (window that holds "Please enter a name.")
C3/6771 unknow
C3/6771: A467 LDY $67 C3/6773: 7B TDC C3/6774: B90100 LDA $0001,Y C3/6777: C220 REP #$20 (16 bit memory/accum.) C3/6779: 0A ASL A C3/677A: AA TAX C3/677B: A90026 LDA #$2600 C3/677E: 8D1621 STA $2116 C3/6781: BF1B6FC3 LDA $C36F1B,X C3/6785: AA TAX C3/6786: 200070 JSR $7000 C3/6789: E220 SEP #$20 (8 bit memory/accum.) C3/678B: 60 RTS
C3/678C unknow
C3/678C: A910 LDA #$10 C3/678E: 85E3 STA $E3 C3/6790: A467 LDY $67 C3/6792: 7B TDC C3/6793: B90100 LDA $0001,Y C3/6796: AA TAX C3/6797: BF006FC3 LDA $C36F00,X C3/679B: C220 REP #$20 (16 bit memory/accum.) C3/679D: 0A ASL A C3/679E: 0A ASL A C3/679F: 0A ASL A C3/67A0: 0A ASL A C3/67A1: 0A ASL A C3/67A2: AA TAX C3/67A3: A400 LDY $00 C3/67A5: C220 REP #$20 (16 bit memory/accum.) C3/67A7: DA PHX C3/67A8: BF6058ED LDA $ED5860,X C3/67AC: BB TYX C3/67AD: 9F49317E STA $7E3149,X C3/67B1: E220 SEP #$20 (8 bit memory/accum.) C3/67B3: FA PLX C3/67B4: E8 INX C3/67B5: E8 INX C3/67B6: C8 INY C3/67B7: C8 INY C3/67B8: C6E3 DEC $E3 C3/67BA: D0E9 BNE $67A5 C3/67BC: E220 SEP #$20 (8 bit memory/accum.) C3/67BE: 60 RTS
C3/67BF unknow
C3/67BF: 86EB STX $EB C3/67C1: A97E LDA #$7E C3/67C3: 85ED STA $ED C3/67C5: A400 LDY $00 C3/67C7: A90A LDA #$0A C3/67C9: 85E6 STA $E6 C3/67CB: A600 LDX $00 C3/67CD: B7E7 LDA [$E7],Y C3/67CF: 85E0 STA $E0 C3/67D1: 5A PHY C3/67D2: C953 CMP #$53 C3/67D4: 9006 BCC $67DC C3/67D6: A9FF LDA #$FF C3/67D8: 85E1 STA $E1 C3/67DA: 8020 BRA $67FC C3/67DC: C949 CMP #$49 C3/67DE: 900D BCC $67ED C3/67E0: A952 LDA #$52 C3/67E2: 85E1 STA $E1 C3/67E4: A5E0 LDA $E0 C3/67E6: 18 CLC C3/67E7: 6917 ADC #$17 C3/67E9: 85E0 STA $E0 C3/67EB: 800F BRA $67FC C3/67ED: C920 CMP #$20 C3/67EF: 900B BCC $67FC C3/67F1: A951 LDA #$51 C3/67F3: 85E1 STA $E1 C3/67F5: A5E0 LDA $E0 C3/67F7: 18 CLC C3/67F8: 6940 ADC #$40 C3/67FA: 85E0 STA $E0 C3/67FC: 9B TXY C3/67FD: A5E1 LDA $E1 C3/67FF: 97EB STA [$EB],Y C3/6801: C8 INY C3/6802: A529 LDA $29 C3/6804: 97EB STA [$EB],Y C3/6806: C220 REP #$20 (16 bit memory/accum.) C3/6808: 8A TXA C3/6809: 18 CLC C3/680A: 694000 ADC #$0040 C3/680D: A8 TAY C3/680E: E220 SEP #$20 (8 bit memory/accum.) C3/6810: A5E0 LDA $E0 C3/6812: 97EB STA [$EB],Y C3/6814: C8 INY C3/6815: A529 LDA $29 C3/6817: 97EB STA [$EB],Y C3/6819: E8 INX C3/681A: E8 INX C3/681B: E8 INX C3/681C: E8 INX C3/681D: 7A PLY C3/681E: C8 INY C3/681F: A5E6 LDA $E6 C3/6821: C906 CMP #$06 C3/6823: D002 BNE $6827 C3/6825: E8 INX C3/6826: E8 INX C3/6827: C6E6 DEC $E6 C3/6829: D0A2 BNE $67CD C3/682B: C220 REP #$20 (16 bit memory/accum.) C3/682D: A5EB LDA $EB C3/682F: 18 CLC C3/6830: 698000 ADC #$0080 C3/6833: 85EB STA $EB C3/6835: E220 SEP #$20 (8 bit memory/accum.) C3/6837: C6E5 DEC $E5 C3/6839: D08C BNE $67C7 C3/683B: 60 RTS
C3/683C unknow
C3/683C: A600 LDX $00 (from C3/654D) C3/683E: BF9668C3 LDA $C36896,X C3/6842: 9FC99B7E STA $7E9BC9,X C3/6846: E8 INX C3/6847: E00D00 CPX #$000D C3/684A: D0F2 BNE $683E C3/684C: A902 LDA #$02 C3/684E: 8D5043 STA $4350 C3/6851: A90E LDA #$0E C3/6853: 8D5143 STA $4351 (register address becomes $210E) C3/6856: A0C99B LDY #$9BC9 C3/6859: 8C5243 STY $4352 (set address) C3/685C: A97E LDA #$7E C3/685E: 8D5443 STA $4354 (set bank, 7E/9BC9) C3/6861: A97E LDA #$7E C3/6863: 8D5743 STA $4357 C3/6866: A920 LDA #$20 C3/6868: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/686A: A902 LDA #$02 C3/686C: 8D6043 STA $4360 C3/686F: A90D LDA #$0D C3/6871: 8D6143 STA $4361 (register address becomes $210D) C3/6874: A08968 LDY #$6889 C3/6877: 8C6243 STY $4362 (set address) C3/687A: A9C3 LDA #$C3 C3/687C: 8D6443 STA $4364 (set bank, C3/6889) C3/687F: A9C3 LDA #$C3 C3/6881: 8D6743 STA $4367 (store indirect HDMA table bank) C3/6884: A940 LDA #$40 C3/6886: 0443 TSB $43 (eventually enable channel 6 of HDMA) C3/6888: 60 RTS
C3/6889 data: hdma transfer table
C3/6889: 470001 (71 scanlines, ?? pixel shift) C3/688C: 500000 (80 scanlines, 0 pixel shift) C3/688F: 500000 (80 scanlines, 0 pixel shift) C3/6892: 100001 (16 scanlines, ?? pixel shift, 247 scanlines total) C3/6895: 00 (end)
C3/6896 data: hdma transfer table
C3/6896: 470000 (71 scanlines, 0 pixel shift) C3/6899: 50D0FF (80 scanlines, ?? pixel shift) C3/689C: 50D0FF (80 scanlines, ?? pixel shift) C3/689F: 100000 (16 scanlines, 0 pixel shift, 247 scanlines total) C3/68A2: 00 (end)
C3/68A3 code and jump table
C3/68A3: AA TAX C3/68A4: 7CA768 JMP ($68A7,X) C3/68A7: AB68 C3/68A9: CB68
C3/68AB unknow
C3/68AB: A62D LDX $2D C3/68AD: C220 REP #$20 (16 bit memory/accum.) C3/68AF: A952B4 LDA #$B452 C3/68B2: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/68B5: A94000 LDA #$0040 C3/68B8: 9D4A34 STA $344A,X C3/68BB: E220 SEP #$20 (8 bit memory/accum.) C3/68BD: 9ECB33 STZ $33CB,X C3/68C0: A9C3 LDA #$C3 C3/68C2: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/68C5: 200612 JSR $1206 C3/68C8: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/68CB: A42D LDY $2D C3/68CD: 7B TDC C3/68CE: A528 LDA $28 C3/68D0: AA TAX C3/68D1: BFDD68C3 LDA $C368DD,X C3/68D5: 99CA33 STA $33CA,Y C3/68D8: 202112 JSR $1221 (draw the sprites!) C3/68DB: 38 SEC (not done with this queue yet) C3/68DC: 60 RTS
C3/68DD data: position for cursor (not finger) in character naming screen
C3/68DD: 78 C3/68DE: 80 C3/68DF: 88 C3/68E0: 90 C3/68E1: 98 C3/68E2: A0
C3/68E3 data: string
C3/68E3: 1B418FA59E9AAC9EFF9EA7AD9EABFF9AFFA79AA69EC500 (position of and words "Please enter a name.")
C3/68FA unknow
C3/68FA: 22F3CDD4 JSL $D4CDF3 C3/68FE: 200469 JSR $6904 C3/6901: 4C96A7 JMP $A796
C3/6904 unknow
C3/6904: A400 LDY $00 (from C3/6535) C3/6906: 8435 STY $35 C3/6908: 8439 STY $39 C3/690A: 843D STY $3D C3/690C: 8437 STY $37 C3/690E: 843B STY $3B C3/6910: 843F STY $3F C3/6912: 8441 STY $41 C3/6914: 60 RTS
C3/6915 unknow
C3/6915: 2200CAD4 JSL $D4CA00 (from various (frequently called in this bank)) C3/6919: 7B TDC C3/691A: AA TAX C3/691B: 9B TXY C3/691C: BD5018 LDA $1850,X C3/691F: 2940 AND #$40 C3/6921: F01E BEQ $6941 C3/6923: BD5018 LDA $1850,X C3/6926: 2907 AND #$07 C3/6928: CD6D1A CMP $1A6D C3/692B: D014 BNE $6941 C3/692D: BD5018 LDA $1850,X C3/6930: 48 PHA C3/6931: 2918 AND #$18 C3/6933: 85E0 STA $E0 C3/6935: 4A LSR A C3/6936: 4A LSR A C3/6937: 4A LSR A C3/6938: A8 TAY C3/6939: 68 PLA C3/693A: 997500 STA $0075,Y C3/693D: 8A TXA C3/693E: 996900 STA $0069,Y C3/6941: E8 INX C3/6942: E01000 CPX #$0010 C3/6945: D0D5 BNE $691C C3/6947: A400 LDY $00 C3/6949: 7B TDC C3/694A: B96900 LDA $0069,Y C3/694D: C9FF CMP #$FF C3/694F: F011 BEQ $6962 C3/6951: 0A ASL A C3/6952: AA TAX C3/6953: C220 REP #$20 (16 bit memory/accum.) C3/6955: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/6959: 48 PHA C3/695A: 98 TYA C3/695B: 0A ASL A C3/695C: AA TAX C3/695D: 68 PLA C3/695E: 956D STA $6D,X C3/6960: E220 SEP #$20 (8 bit memory/accum.) C3/6962: C8 INY C3/6963: C00400 CPY #$0004 C3/6966: D0E1 BNE $6949 C3/6968: 60 RTS
C3/6969 data: ram offsets for characters
C3/6969: 0016 C3/696B: 2516 C3/696D: 4A16 C3/696F: 6F16 C3/6971: 9416 C3/6973: B916 C3/6975: DE16 C3/6977: 0317 C3/6979: 2817 C3/697B: 4D17 C3/697D: 7217 C3/697F: 9717 C3/6981: BC17 C3/6983: E117 C3/6985: 0618 C3/6987: 2B18
C3/6989 set party setup
C3/6989: 7B TDC C3/698A: AA TAX C3/698B: A8 TAY C3/698C: B569 LDA $69,X C3/698E: 3012 BMI $69A2 C3/6990: A8 TAY C3/6991: B575 LDA $75,X C3/6993: 29E7 AND #$E7 C3/6995: 85E0 STA $E0 C3/6997: 7B TDC C3/6998: 8A TXA C3/6999: 0A ASL A C3/699A: 0A ASL A C3/699B: 0A ASL A C3/699C: 18 CLC C3/699D: 65E0 ADC $E0 C3/699F: 995018 STA $1850,Y (current party setup) C3/69A2: E8 INX C3/69A3: E00400 CPX #$0004 C3/69A6: D0E4 BNE $698C C3/69A8: 60 RTS
C3/69A9 unknow
C3/69A9: C220 REP #$20 (16 bit memory/accum.) C3/69AB: A569 LDA $69 C3/69AD: 8F89AA7E STA $7EAA89 C3/69B1: A56B LDA $6B C3/69B3: 8F8BAA7E STA $7EAA8B C3/69B7: E220 SEP #$20 (8 bit memory/accum.) C3/69B9: 60 RTS
C3/69BA draw text
This routine does a lot to draw text, but here's the rundown. 16-bit X holds the location of the pointer, which holds the location of the text as well as where to draw it onscreen. 16-bit Y holds how many pointers to grab, and a pointer makes up two bytes. So for every pointer to get, add 2 bytes. In the end, take all of this information and head to our text drawing routine at $02FF. C3/69BA: 86F1 STX $F1 C3/69BC: 84EF STY $EF C3/69BE: A9C3 LDA #$C3 C3/69C0: 85F3 STA $F3 C3/69C2: A400 LDY $00 C3/69C4: C220 REP #$20 (16 bit memory/accum.) C3/69C6: B7F1 LDA [$F1],Y C3/69C8: 85E7 STA $E7 C3/69CA: 5A PHY C3/69CB: E220 SEP #$20 (8 bit memory/accum.) C3/69CD: A9C3 LDA #$C3 C3/69CF: 85E9 STA $E9 (this is redundant, JSR $02FB and be done with it) C3/69D1: 20FF02 JSR $02FF (bank and location set, draw text) C3/69D4: 7A PLY C3/69D5: C8 INY C3/69D6: C8 INY C3/69D7: C4EF CPY $EF C3/69D9: D0E9 BNE $69C4 C3/69DB: 60 RTS
C3/69DC unknow
C3/69DC: A901 LDA #$01 (from C3/010E, C3/ADC8) C3/69DE: 8D2043 STA $4320 C3/69E1: A926 LDA #$26 C3/69E3: 8D2143 STA $4321 (register address becomes $2126) C3/69E6: A0FB69 LDY #$69FB C3/69E9: 8C2243 STY $4322 (set address) C3/69EC: A9C3 LDA #$C3 C3/69EE: 8D2443 STA $4324 (set bank, C3/69FB) C3/69F1: A9C3 LDA #$C3 C3/69F3: 8D2743 STA $4327 C3/69F6: A904 LDA #$04 C3/69F8: 0443 TSB $43 (eventually enable channel 2 of HDMA) C3/69FA: 60 RTS
C3/69FB data: hdma transfer table
C3/69FB: 07FF00 (7 scanlines, ??) C3/69FE: 7808F7 (120 scanlines, ??) C3/6A01: 5808F7 (88 scanlines, ??) C3/6A04: 08FF00 (8 scanlines, ??) C3/6A07: 00 (end)
C3/6A08 unknow
C3/6A08: A904 LDA #$04 C3/6A0A: 1443 TRB $43 (eventually disable channel 2 of HDMA) C3/6A0C: 9C2621 STZ $2126 C3/6A0F: A9FF LDA #$FF C3/6A11: 8D2721 STA $2127 C3/6A14: 60 RTS
C3/6A15 unknow
C3/6A15: A600 LDX $00 C3/6A17: 8035 BRA $6A4E C3/6A19: A20008 LDX #$0800 C3/6A1C: 8030 BRA $6A4E C3/6A1E: A20010 LDX #$1000 C3/6A21: 802B BRA $6A4E C3/6A23: A20018 LDX #$1800 C3/6A26: 8026 BRA $6A4E C3/6A28: A20020 LDX #$2000 C3/6A2B: 8021 BRA $6A4E C3/6A2D: A20028 LDX #$2800 C3/6A30: 801C BRA $6A4E C3/6A32: A20030 LDX #$3000 C3/6A35: 8017 BRA $6A4E C3/6A37: A20038 LDX #$3800 C3/6A3A: 8012 BRA $6A4E C3/6A3C: A20040 LDX #$4000 C3/6A3F: 800D BRA $6A4E C3/6A41: A20048 LDX #$4800 C3/6A44: 8008 BRA $6A4E C3/6A46: A20050 LDX #$5000 C3/6A49: 8003 BRA $6A4E C3/6A4B: A20058 LDX #$5800 C3/6A4E: C220 REP #$20 (16 bit memory/accum.) C3/6A50: 7B TDC C3/6A51: A00002 LDY #$0200 C3/6A54: 9F49387E STA $7E3849,X C3/6A58: E8 INX C3/6A59: E8 INX C3/6A5A: 9F49387E STA $7E3849,X C3/6A5E: E8 INX C3/6A5F: E8 INX C3/6A60: 88 DEY C3/6A61: D0F1 BNE $6A54 C3/6A63: E220 SEP #$20 (8 bit memory/accum.) C3/6A65: 60 RTS
C3/6A66 unknow
C3/6A66: 201070 JSR $7010 C3/6A69: 20136B JSR $6B13 C3/6A6C: 20E86B JSR $6BE8 C3/6A6F: 20096C JSR $6C09 C3/6A72: 20676E JSR $6E67 C3/6A75: 20C76C JSR $6CC7 (get character sprite palettes) C3/6A78: 20846C JSR $6C84 C3/6A7B: 20826E JSR $6E82 C3/6A7E: 20E96C JSR $6CE9 C3/6A81: 2046AF JSR $AF46 C3/6A84: 4C4BB3 JMP $B34B
C3/6A87 unknow
C3/6A87: 7B TDC C3/6A88: AD0002 LDA $0200 C3/6A8B: 0A ASL A C3/6A8C: AA TAX C3/6A8D: 7C906A JMP ($6A90,X)
C3/6A90 pointers
C3/6A90: E96A C3/6A92: 046B C3/6A94: E96A C3/6A96: CE6A C3/6A98: B06A C3/6A9A: B06A C3/6A9C: A46A C3/6A9E: E96A C3/6AA0: B06A C3/6AA2: B06A
C3/6AA4 unknow
C3/6AA4: 20376B JSR $6B37 (Function loads graphics for Menu) C3/6AA7: 20E86B JSR $6BE8 (Function loads Menu Cursor Palette) C3/6AAA: 20676E JSR $6E67 (Function loads Hand Cursor Graphics) C3/6AAD: 4C846C JMP $6C84
C3/6AB0 unknow
C3/6AB0: 201070 JSR $7010 C3/6AB3: 20136B JSR $6B13 (Function loads Fixed-Width Font Graphics Data) C3/6AB6: 20376B JSR $6B37 (Function loads graphics for Menu) C3/6AB9: 20E86B JSR $6BE8 (Function loads Menu Cursor Palette) C3/6ABC: 20096C JSR $6C09 (Function loads Menu Portrait Palettes) C3/6ABF: 20676E JSR $6E67 (Function loads Hand Cursor Graphics) C3/6AC2: 20C76C JSR $6CC7 (Function loads Battle/Menu Character Sprite Palette) C3/6AC5: 20846C JSR $6C84 C3/6AC8: 20826E JSR $6E82 C3/6ACB: 4CE96C JMP $6CE9
C3/6ACE unknow
C3/6ACE: 20136B JSR $6B13 (Function loads Fixed-Width Font Graphics Data) C3/6AD1: 20376B JSR $6B37 (Function loads graphics for Menu) C3/6AD4: 20E86B JSR $6BE8 (Function loads Menu Cursor Palette) C3/6AD7: 20096C JSR $6C09 (Function loads Menu Portrait Palettes) C3/6ADA: 20676E JSR $6E67 (Function loads Hand Cursor Graphics) C3/6ADD: 20C76C JSR $6CC7 (Function loads Battle/Menu Character Sprite Palette) C3/6AE0: 20846C JSR $6C84 C3/6AE3: 20826E JSR $6E82 C3/6AE6: 4C796D JMP $6D79
C3/6AE9 unknow
C3/6AE9: 20136B JSR $6B13 (Function loads Fixed-Width Font Graphics Data) C3/6AEC: 20376B JSR $6B37 (Function loads graphics for Menu) C3/6AEF: 20E86B JSR $6BE8 (Function loads Menu Cursor Palette) C3/6AF2: 20676E JSR $6E67 (Function loads Hand Cursor Graphics) C3/6AF5: 20826E JSR $6E82 C3/6AF8: 20096C JSR $6C09 (Function loads Menu Portrait Palettes) C3/6AFB: 20E96C JSR $6CE9 C3/6AFE: 20846C JSR $6C84 C3/6B01: 4C606C JMP $6C60
C3/6B04 unknow
C3/6B04: 20136B JSR $6B13 (Function loads Fixed-Width Font Graphics Data) C3/6B07: 20376B JSR $6B37 (Function loads graphics for Menu) C3/6B0A: 20E86B JSR $6BE8 (Function loads Menu Cursor Palette) C3/6B0D: 20676E JSR $6E67 (Function loads Hand Cursor Graphics) C3/6B10: 4C846C JMP $6C84
C3/6B13 fixed width font loading routine
C3/6B13: C220 REP #$20 (16 bit memory/accum.) C3/6B15: A00060 LDY #$6000 C3/6B18: 8C1621 STY $2116 C3/6B1B: A600 LDX $00 C3/6B1D: BFC07FC4 LDA $C47FC0,X (Load Fixed-Width Font Graphics Data) C3/6B21: 8D1821 STA $2118 C3/6B24: E8 INX C3/6B25: E8 INX C3/6B26: E00010 CPX #$1000 C3/6B29: D0F2 BNE $6B1D C3/6B2B: 8D1821 STA $2118 C3/6B2E: E8 INX C3/6B2F: E00014 CPX #$1400 C3/6B32: D0F7 BNE $6B2B C3/6B34: E220 SEP #$20 (8 bit memory/accum.) C3/6B36: 60 RTS
C3/6B37 unknow
C3/6B37: A00050 LDY #$5000 C3/6B3A: 8C1621 STY $2116 C3/6B3D: C220 REP #$20 (16 bit memory/accum.) C3/6B3F: 7B TDC C3/6B40: AA TAX C3/6B41: A00800 LDY #$0008 C3/6B44: BF9C6BC3 LDA $C36B9C,X C3/6B48: 8D1821 STA $2118 C3/6B4B: 88 DEY C3/6B4C: D0F6 BNE $6B44 C3/6B4E: E8 INX C3/6B4F: E8 INX C3/6B50: E02000 CPX #$0020 C3/6B53: D0EC BNE $6B41 C3/6B55: A600 LDX $00 C3/6B57: A00800 LDY #$0008 C3/6B5A: BF4080C4 LDA $C48040,X (Load Fixed-Width Font Graphics Data) C3/6B5E: 8D1821 STA $2118 C3/6B61: E8 INX C3/6B62: E8 INX C3/6B63: 88 DEY C3/6B64: D0F4 BNE $6B5A C3/6B66: 9C1821 STZ $2118 C3/6B69: 9C1821 STZ $2118 C3/6B6C: 9C1821 STZ $2118 C3/6B6F: 9C1821 STZ $2118 C3/6B72: 9C1821 STZ $2118 C3/6B75: 9C1821 STZ $2118 C3/6B78: 9C1821 STZ $2118 C3/6B7B: 9C1821 STZ $2118 C3/6B7E: E0800F CPX #$0F80 C3/6B81: D0D4 BNE $6B57 C3/6B83: A00078 LDY #$7800 C3/6B86: 8C1621 STY $2116 C3/6B89: A600 LDX $00 C3/6B8B: BF0000ED LDA $ED0000,X (loads graphics for menu) C3/6B8F: 8D1821 STA $2118 C3/6B92: E8 INX C3/6B93: E8 INX C3/6B94: E00010 CPX #$1000 C3/6B97: D0F2 BNE $6B8B C3/6B99: E220 SEP #$20 (8 bit memory/accum.) C3/6B9B: 60 RTS
C3/6B9C data
C3/6B9C: 0000 C3/6B9E: 0000 C3/6BA0: FF00 C3/6BA2: 0000 C3/6BA4: 00FF C3/6BA6: 0000 C3/6BA8: FFFF C3/6BAA: 0000 C3/6BAC: 0000 C3/6BAE: FF00 C3/6BB0: FF00 C3/6BB2: FF00 C3/6BB4: 00FF C3/6BB6: FF00 C3/6BB8: FFFF C3/6BBA: FF00
C3/6BBC unknow
C3/6BBC: A20800 LDY #$0800 C3/6BBF: 86E7 STY $E7 C3/6BC1: A20000 LDY #$0000 C3/6BC4: 9B TXY C3/6BC5: C220 REP #$20 (16 bit memory/accum.) C3/6BC7: A90700 LDA #$0007 C3/6BCA: 85E9 STA $E9 C3/6BCC: BF021CED LDA $ED1C02,X C3/6BD0: 99571D STA $1D57,Y C3/6BD3: E8 INX C3/6BD4: E8 INX C3/6BD5: C8 INY C3/6BD6: C8 INY C3/6BD7: C6E9 DEC $E9 C3/6BD9: D0F1 BNE $6BCC C3/6BDB: 8A TXA C3/6BDC: 18 CLC C3/6BDD: 691200 ADC #$0012 C3/6BE0: AA TAX C3/6BE1: C6E7 DEC $E7 C3/6BE3: D0E2 BNE $6BC7 C3/6BE5: E220 SEP #$20 (8 bit memory/accum.) C3/6BE7: 60 RTS
C3/6BE8 unknow
C3/6BE8: A600 LDX $00 C3/6BEA: 8A TXA C3/6BEB: 8D2121 STA $2121 C3/6BEE: C220 REP #$20 (16 bit memory/accum.) C3/6BF0: BF00E8D8 LDA $D8E800,X (Menu cursor palette X) C3/6BF4: 9F49307E STA $7E3049,X C3/6BF8: E220 SEP #$20 (8 bit memory/accum.) C3/6BFA: 8D2221 STA $2122 C3/6BFD: EB XBA C3/6BFE: 8D2221 STA $2122 C3/6C01: E8 INX C3/6C02: E8 INX C3/6C03: E0A000 CPX #$00A0 C3/6C06: D0E6 BNE $6BEE C3/6C08: 60 RTS
C3/6C09 unknow
C3/6C09: A600 LDX $00 C3/6C0B: 9B TXY C3/6C0C: C220 REP #$20 (16 bit memory/accum.) C3/6C0E: B56D LDA $6D,X C3/6C10: DA PHX C3/6C11: 5A PHY C3/6C12: A8 TAY C3/6C13: 7B TDC C3/6C14: E220 SEP #$20 (8 bit memory/accum.) C3/6C16: A910 LDA #$10 C3/6C18: 85E3 STA $E3 C3/6C1A: B91400 LDA $0014,Y (Statuses) C3/6C1D: 2920 AND #$20 C3/6C1F: F004 BEQ $6C25 C3/6C21: A90F LDA #$0F C3/6C23: 800B BRA $6C30 C3/6C25: 7B TDC C3/6C26: B90000 LDA $0000,Y C3/6C29: C901 CMP #$01 C3/6C2B: F003 BEQ $6C30 C3/6C2D: B90100 LDA $0001,Y C3/6C30: AA TAX C3/6C31: BF006FC3 LDA $C36F00,X C3/6C35: C220 REP #$20 (16 bit memory/accum.) C3/6C37: 0A ASL A C3/6C38: 0A ASL A C3/6C39: 0A ASL A C3/6C3A: 0A ASL A C3/6C3B: 0A ASL A C3/6C3C: AA TAX C3/6C3D: 7A PLY C3/6C3E: C220 REP #$20 (16 bit memory/accum.) C3/6C40: DA PHX C3/6C41: BF6058ED LDA $ED5860,X (Load Menu Portrait Palette) C3/6C45: BB TYX C3/6C46: 9F49317E STA $7E3149,X C3/6C4A: E220 SEP #$20 (8 bit memory/accum.) C3/6C4C: FA PLX C3/6C4D: E8 INX C3/6C4E: E8 INX C3/6C4F: C8 INY C3/6C50: C8 INY C3/6C51: C6E3 DEC $E3 C3/6C53: D0E9 BNE $6C3E C3/6C55: FA PLX C3/6C56: E8 INX C3/6C57: E8 INX C3/6C58: E00800 CPX #$0008 C3/6C5B: D0AF BNE $6C0C C3/6C5D: E220 SEP #$20 (8 bit memory/accum.) C3/6C5F: 60 RTS
C3/6C60 unknow
C3/6C60: A990 LDA #$90 C3/6C62: 8D2121 STA $2121 C3/6C65: A600 LDX $00 C3/6C67: C220 REP #$20 (16 bit memory/accum.) C3/6C69: BFA0E8D8 LDA $D8E8A0,X C3/6C6D: 9F69317E STA $7E3169,X C3/6C71: E220 SEP #$20 (8 bit memory/accum.) C3/6C73: 8D2221 STA $2122 C3/6C76: EB XBA C3/6C77: 8D2221 STA $2122 C3/6C7A: C8 INY C3/6C7B: C8 INY C3/6C7C: E8 INX C3/6C7D: E8 INX C3/6C7E: E02000 CPX #$0020 C3/6C81: D0E4 BNE $6C67 C3/6C83: 60 RTS
C3/6C84 unknow
C3/6C84: A600 LDX $00 C3/6C86: A9EC LDA #$EC C3/6C88: 8D2121 STA $2121 C3/6C8B: C220 REP #$20 (16 bit memory/accum.) C3/6C8D: BFC0E8D8 LDA $D8E8C0,X C3/6C91: 9F21327E STA $7E3221,X C3/6C95: E220 SEP #$20 (8 bit memory/accum.) C3/6C97: 8D2221 STA $2122 C3/6C9A: EB XBA C3/6C9B: 8D2221 STA $2122 C3/6C9E: E8 INX C3/6C9F: E8 INX C3/6CA0: E00800 CPX #$0008 C3/6CA3: D0E6 BNE $6C8B C3/6CA5: A600 LDX $00 C3/6CA7: A9FC LDA #$FC C3/6CA9: 8D2121 STA $2121 C3/6CAC: C220 REP #$20 (16 bit memory/accum.) C3/6CAE: BFB8E8D8 LDA $D8E8B8,X C3/6CB2: 9F41327E STA $7E3241,X C3/6CB6: E220 SEP #$20 (8 bit memory/accum.) C3/6CB8: 8D2221 STA $2122 C3/6CBB: EB XBA C3/6CBC: 8D2221 STA $2122 C3/6CBF: E8 INX C3/6CC0: E8 INX C3/6CC1: E00800 CPX #$0008 C3/6CC4: D0E6 BNE $6CAC C3/6CC6: 60 RTS
C3/6CC7 unknow
C3/6CC7: A600 LDX $00 C3/6CC9: A9A0 LDA #$A0 C3/6CCB: 8D2121 STA $2121 C3/6CCE: C220 REP #$20 (16 bit memory/accum.) C3/6CD0: BF0063ED LDA $ED6300,X (Load Battle/Menu Character Sprite Palette) C3/6CD4: 9F89317E STA $7E3189,X C3/6CD8: E220 SEP #$20 (8 bit memory/accum.) C3/6CDA: 8D2221 STA $2122 C3/6CDD: EB XBA C3/6CDE: 8D2221 STA $2122 C3/6CE1: E8 INX C3/6CE2: E8 INX C3/6CE3: E0C000 CPX #$00C0 C3/6CE6: D0E6 BNE $6CCE C3/6CE8: 60 RTS
C3/6CE9 unknow
C3/6CE9: 7B TDC (from C3/6A7E, C3/6ACB, C3/6AFB) C3/6CEA: AA TAX C3/6CEB: DA PHX C3/6CEC: C220 REP #$20 (16 bit memory/accum.) C3/6CEE: BFE5F8CF LDA $CFF8E5,X C3/6CF2: 85F3 STA $F3 C3/6CF4: 8A TXA C3/6CF5: 0A ASL A C3/6CF6: AA TAX C3/6CF7: BF13F9CF LDA $CFF913,X C3/6CFB: 85E7 STA $E7 C3/6CFD: BF11F9CF LDA $CFF911,X C3/6D01: 85E9 STA $E9 C3/6D03: A600 LDX $00 C3/6D05: BFDFF8CF LDA $CFF8DF,X C3/6D09: 85EF STA $EF C3/6D0B: 20446D JSR $6D44 C3/6D0E: A5F3 LDA $F3 C3/6D10: 18 CLC C3/6D11: 690001 ADC #$0100 C3/6D14: 85F3 STA $F3 C3/6D16: E8 INX C3/6D17: E8 INX C3/6D18: E00400 CPX #$0004 C3/6D1B: D0E8 BNE $6D05 C3/6D1D: A5F3 LDA $F3 C3/6D1F: 38 SEC C3/6D20: E9E001 SBC #$01E0 C3/6D23: 85F3 STA $F3 C3/6D25: BFDFF8CF LDA $CFF8DF,X C3/6D29: 85EF STA $EF C3/6D2B: 20446D JSR $6D44 C3/6D2E: A5F3 LDA $F3 C3/6D30: 18 CLC C3/6D31: 690001 ADC #$0100 C3/6D34: 85F3 STA $F3 C3/6D36: 20676D JSR $6D67 C3/6D39: FA PLX C3/6D3A: E8 INX C3/6D3B: E8 INX C3/6D3C: E02C00 CPX #$002C C3/6D3F: D0AA BNE $6CEB C3/6D41: E220 SEP #$20 (8 bit memory/accum.) C3/6D43: 60 RTS
C3/6D44 unknow
C3/6D44: 18 CLC C3/6D45: A5EF LDA $EF C3/6D47: 65E7 ADC $E7 C3/6D49: 85EB STA $EB C3/6D4B: 7B TDC C3/6D4C: 65E9 ADC $E9 C3/6D4E: 85ED STA $ED C3/6D50: A4F3 LDY $F3 C3/6D52: 8C1621 STY $2116 C3/6D55: 4C586D JMP $6D58 (...why?)
C3/6D58 unknow
C3/6D58: A400 LDY $00 C3/6D5A: B7EB LDA [$EB],Y C3/6D5C: 8D1821 STA $2118 C3/6D5F: C8 INY C3/6D60: C8 INY C3/6D61: C04000 CPY #$0040 C3/6D64: D0F4 BNE $6D5A C3/6D66: 60 RTS
C3/6D67 unknow
C3/6D67: A4F3 LDY $F3 C3/6D69: 8C1621 STY $2116 C3/6D6C: A92000 LDA #$0020 C3/6D6F: 85E7 STA $E7 C3/6D71: 9C1821 STZ $2118 C3/6D74: C6E7 DEC $E7 C3/6D76: D0F9 BNE $6D71 C3/6D78: 60 RTS
C3/6D79 unknow
C3/6D79: A00030 LDY #$3000 C3/6D7C: 8C1621 STY $2116 C3/6D7F: 64E3 STZ $E3 C3/6D81: A400 LDY $00 C3/6D83: E220 SEP #$20 (8 bit memory/accum.) C3/6D85: 7B TDC C3/6D86: BB TYX C3/6D87: BF076EC3 LDA $C36E07,X C3/6D8B: 0A ASL A C3/6D8C: AA TAX C3/6D8D: C220 REP #$20 (16 bit memory/accum.) C3/6D8F: BF276EC3 LDA $C36E27,X C3/6D93: C9FFFF CMP #$FFFF C3/6D96: F052 BEQ $6DEA C3/6D98: 48 PHA C3/6D99: A9A016 LDA #$16A0 C3/6D9C: E220 SEP #$20 (8 bit memory/accum.) C3/6D9E: 8D1B21 STA $211B C3/6DA1: EB XBA C3/6DA2: 8D1B21 STA $211B C3/6DA5: A5E3 LDA $E3 C3/6DA7: 8D1C21 STA $211C C3/6DAA: 8D1C21 STA $211C C3/6DAD: C220 REP #$20 (16 bit memory/accum.) C3/6DAF: 68 PLA C3/6DB0: 18 CLC C3/6DB1: 6D3421 ADC $2134 C3/6DB4: 85EB STA $EB C3/6DB6: E220 SEP #$20 (8 bit memory/accum.) C3/6DB8: AD3621 LDA $2136 C3/6DBB: 69D5 ADC #$D5 C3/6DBD: 85ED STA $ED C3/6DBF: C221 REP #$21 C3/6DC1: A5EB LDA $EB C3/6DC3: 690000 ADC #$0000 C3/6DC6: 85EB STA $EB C3/6DC8: E220 SEP #$20 (8 bit memory/accum.) C3/6DCA: A5ED LDA $ED C3/6DCC: 6900 ADC #$00 C3/6DCE: 85ED STA $ED C3/6DD0: C220 REP #$20 (16 bit memory/accum.) C3/6DD2: 5A PHY C3/6DD3: 20F86D JSR $6DF8 C3/6DD6: 7A PLY C3/6DD7: C8 INY C3/6DD8: C02000 CPY #$0020 C3/6DDB: D0A6 BNE $6D83 C3/6DDD: E220 SEP #$20 (8 bit memory/accum.) C3/6DDF: E6E3 INC $E3 C3/6DE1: E6E3 INC $E3 C3/6DE3: A5E3 LDA $E3 C3/6DE5: C910 CMP #$10 C3/6DE7: D098 BNE $6D81 C3/6DE9: 60 RTS
C3/6DEA unknow
C3/6DEA: A91000 LDA #$0010 C3/6DED: 85E7 STA $E7 C3/6DEF: 9C1821 STZ $2118 C3/6DF2: C6E7 DEC $E7 C3/6DF4: D0F9 BNE $6DEF C3/6DF6: 80DF BRA $6DD7
C3/6DF8 unknow
C3/6DF8: A400 LDY $00 C3/6DFA: B7EB LDA [$EB],Y C3/6DFC: 8D1821 STA $2118 C3/6DFF: C8 INY C3/6E00: C8 INY C3/6E01: C02000 CPY #$0020 C3/6E04: D0F4 BNE $6DFA C3/6E06: 60 RTS
C3/6E07 data
C3/6E07: 0001 BRK #$01 C3/6E09: 0405 TSB $05 C3/6E0B: 08 PHP C3/6E0C: 090C ORA #$0C C3/6E0E: 0D1011 ORA $1110 C3/6E11: 1415 TRB $15 C3/6E13: 18 CLC C3/6E14: 191C1D ORA $1D1C,Y C3/6E17: 0203 COP #$03 C3/6E19: 0607 ASL $07 C3/6E1B: 0A ASL A C3/6E1C: 0B PHD C3/6E1D: 0E0F12 ASL $120F C3/6E20: 1316 ORA ($16,S),Y C3/6E22: 171A ORA [$1A],Y C3/6E24: 1B TCS C3/6E25: 1E1FC0 ASL $C01F,X C3/6E28: 03E0 ORA $E0,S C3/6E2A: 0300 ORA $00,S C3/6E2C: 0520 ORA $20 C3/6E2E: 0540 ORA $40 C3/6E30: 0560 ORA $60 C3/6E32: 05FF ORA $FF C3/6E34: FFFFFFC0 SBC $C0FFFF,X C3/6E38: 0360 ORA $60,S C3/6E3A: 0680 ASL $80 C3/6E3C: 06A0 ASL $A0 C3/6E3E: 06C0 ASL $C0 C3/6E40: 06E0 ASL $E0 C3/6E42: 06FF ASL $FF C3/6E44: FFFFFF60 SBC $60FFFF,X C3/6E48: 1A INC A C3/6E49: 801A BRA $6E65 C3/6E4B: A01BC0 LDY #$C01B C3/6E4E: 1B TCS C3/6E4F: E01B00 CPX #$001B C3/6E52: 1CFFFF TRB $FFFF C3/6E55: FFFF601A SBC $1A60FF,X C3/6E59: 001D BRK #$1D C3/6E5B: 201D40 JSR $401D C3/6E5E: 1D601D ORA $1D60,X C3/6E61: 801D BRA $6E80 C3/6E63: FFFFFFFF SBC $FFFFFF,X
C3/6E67 unknow
C3/6E67: C220 REP #$20 (16 bit memory/accum.) C3/6E69: A00020 LDY #$2000 C3/6E6C: 8C1621 STY $2116 C3/6E6F: A600 LDX $00 C3/6E71: BFC05AED LDA $ED5AC0,X (Load Hand Cursor Graphics) C3/6E75: 8D1821 STA $2118 C3/6E78: E8 INX C3/6E79: E8 INX C3/6E7A: E00014 CPX #$1400 C3/6E7D: D0F2 BNE $6E71 C3/6E7F: E220 SEP #$20 (8 bit memory/accum.) C3/6E81: 60 RTS
C3/6E82 unknow
C3/6E82: A600 LDX $00 C3/6E84: C220 REP #$20 (16 bit memory/accum.) C3/6E86: BF516FC3 LDA $C36F51,X C3/6E8A: 8D1621 STA $2116 C3/6E8D: B46D LDY $6D,X C3/6E8F: DA PHX C3/6E90: 7B TDC C3/6E91: E220 SEP #$20 (8 bit memory/accum.) C3/6E93: B91400 LDA $0014,Y (Statuses) C3/6E96: 2920 AND #$20 C3/6E98: F004 BEQ $6E9E C3/6E9A: A90F LDA #$0F C3/6E9C: 800A BRA $6EA8 C3/6E9E: B90000 LDA $0000,Y C3/6EA1: C901 CMP #$01 C3/6EA3: F003 BEQ $6EA8 C3/6EA5: B90100 LDA $0001,Y C3/6EA8: C220 REP #$20 (16 bit memory/accum.) C3/6EAA: 0A ASL A C3/6EAB: AA TAX C3/6EAC: BF1B6FC3 LDA $C36F1B,X C3/6EB0: AA TAX C3/6EB1: 200070 JSR $7000 C3/6EB4: FA PLX C3/6EB5: E8 INX C3/6EB6: E8 INX C3/6EB7: E00800 CPX #$0008 C3/6EBA: D0C8 BNE $6E84 C3/6EBC: E220 SEP #$20 (8 bit memory/accum.) C3/6EBE: 60 RTS
C3/6EBF unknow
C3/6EBF: A9ED LDA #$ED C3/6EC1: 851F STA $1F C3/6EC3: A02003 LDY #$0320 C3/6EC6: 8419 STY $19 C3/6EC8: 7B TDC C3/6EC9: A59C LDA $9C C3/6ECB: 0A ASL A C3/6ECC: AA TAX C3/6ECD: C220 REP #$20 (16 bit memory/accum.) C3/6ECF: BF516FC3 LDA $C36F51,X C3/6ED3: 851B STA $1B C3/6ED5: B46D LDY $6D,X C3/6ED7: 7B TDC C3/6ED8: E220 SEP #$20 (8 bit memory/accum.) C3/6EDA: B91400 LDA $0014,Y (Statuses) C3/6EDD: 2920 AND #$20 C3/6EDF: F004 BEQ $6EE5 C3/6EE1: A90F LDA #$0F C3/6EE3: 800A BRA $6EEF C3/6EE5: B90000 LDA $0000,Y C3/6EE8: C901 CMP #$01 C3/6EEA: F003 BEQ $6EEF C3/6EEC: B90100 LDA $0001,Y C3/6EEF: C220 REP #$20 (16 bit memory/accum.) C3/6EF1: 0A ASL A C3/6EF2: AA TAX C3/6EF3: BF1B6FC3 LDA $C36F1B,X C3/6EF7: 18 CLC C3/6EF8: 69001D ADC #$1D00 C3/6EFB: 851D STA $1D C3/6EFD: E220 SEP #$20 (8 bit memory/accum.) C3/6EFF: 60 RTS
C3/6F00 data
C3/6F00: 00 C3/6F01: 01 C3/6F02: 02 C3/6F03: 03 C3/6F04: 04 C3/6F05: 05 C3/6F06: 06 C3/6F07: 07 C3/6F08: 08 C3/6F09: 09 C3/6F0A: 0A C3/6F0B: 0B C3/6F0C: 0C C3/6F0D: 0D C3/6F0E: 0E C3/6F0F: 0F C3/6F10: 10 C3/6F11: 11 C3/6F12: 00 C3/6F13: 0E C3/6F14: 12 C3/6F15: 00 C3/6F16: 00 C3/6F17: 00 C3/6F18: 00 C3/6F19: 00 C3/6F1A: 06
C3/6F1B data
C3/6F1B: 0000 C3/6F1D: 2003 C3/6F1F: 4006 C3/6F21: 6009 C3/6F23: 800C C3/6F25: A00F C3/6F27: C012 C3/6F29: E015 C3/6F2B: 0019 C3/6F2D: 201C C3/6F2F: 401F C3/6F31: 6022 C3/6F33: 8025 C3/6F35: A028 C3/6F37: C02B C3/6F39: E02E
C3/6F3B data
C3/6F3B: 0032 C3/6F3D: 2035 C3/6F3F: 0000 C3/6F41: C02B C3/6F43: 4038 C3/6F45: 0000 C3/6F47: 0000 C3/6F49: 0000 C3/6F4B: 0000 C3/6F4D: 0000 C3/6F4F: C012
C3/6F51 data
C3/6F51: 0026 C3/6F53: 0028 C3/6F55: 002A C3/6F57: 002C C3/6F59: 002E C3/6F5B: 0030 C3/6F5D: 0032 C3/6F5F: 0034
C3/6F61 unknow
C3/6F61: A491 LDY $91 C3/6F63: F01B BEQ $6F80 C3/6F65: A600 LDX $00 C3/6F67: B569 LDA $69,X C3/6F69: 3008 BMI $6F73 C3/6F6B: 20976F JSR $6F97 C3/6F6E: 20A66F JSR $6FA6 C3/6F71: 8002 BRA $6F75 C3/6F73: A9FF LDA #$FF C3/6F75: 9F71AA7E STA $7EAA71,X C3/6F79: E8 INX C3/6F7A: E00400 CPX #$0004 C3/6F7D: D0E8 BNE $6F67 C3/6F7F: 60 RTS
C3/6F80 unknow
C3/6F80: A600 LDX $00 C3/6F82: 8000 BRA $6F84 (Another pointless branch) C3/6F84: A9FF LDA #$FF C3/6F86: 9F71AA7E STA $7EAA71,X C3/6F8A: 9F72AA7E STA $7EAA72,X C3/6F8E: 9F73AA7E STA $7EAA73,X C3/6F92: 9F74AA7E STA $7EAA74,X C3/6F96: 60 RTS
C3/6F97 unknow
C3/6F97: DA PHX C3/6F98: C220 REP #$20 (16 bit memory/accum.) C3/6F9A: 8A TXA C3/6F9B: 0A ASL A C3/6F9C: AA TAX C3/6F9D: B46D LDY $6D,X C3/6F9F: E220 SEP #$20 (8 bit memory/accum.) C3/6FA1: FA PLX C3/6FA2: B90100 LDA $0001,Y C3/6FA5: 60 RTS
C3/6FA6: C90E CMP #$0E C3/6FA8: D00D BNE $6FB7 C3/6FAA: ADA01E LDA $1EA0 C3/6FAD: 8908 BIT #$08 (This bit is set by the event code when you are an officer) C3/6FAF: F004 BEQ $6FB5 (branch if not dressed up as an officer) C3/6FB1: A916 LDA #$16 (load...Gestahl's spritesheet?) C3/6FB3: 8002 BRA $6FB7 C3/6FB5: A90E LDA #$0E (load soldier spritesheet) C3/6FB7: 60 RTS
C3/6FB8 unknow
C3/6FB8: A493 LDY $93 C3/6FBA: F01B BEQ $6FD7 C3/6FBC: A600 LDX $00 C3/6FBE: B569 LDA $69,X C3/6FC0: 3008 BMI $6FCA C3/6FC2: 20976F JSR $6F97 C3/6FC5: 20A66F JSR $6FA6 C3/6FC8: 8002 BRA $6FCC C3/6FCA: A9FF LDA #$FF C3/6FCC: 9F75AA7E STA $7EAA75,X C3/6FD0: E8 INX C3/6FD1: E00400 CPX #$0004 C3/6FD4: D0E8 BNE $6FBE C3/6FD6: 60 RTS
C3/6FD7 unknow
C3/6FD7: A20400 LDX #$0004 C3/6FDA: 80A8 BRA $6F84 C3/6FDC: A495 LDY $95 C3/6FDE: F01B BEQ $6FFB C3/6FE0: A600 LDX $00 C3/6FE2: B569 LDA $69,X C3/6FE4: 3008 BMI $6FEE C3/6FE6: 20976F JSR $6F97 C3/6FE9: 20A66F JSR $6FA6 C3/6FEC: 8002 BRA $6FF0 C3/6FEE: A9FF LDA #$FF C3/6FF0: 9F79AA7E STA $7EAA79,X C3/6FF4: E8 INX C3/6FF5: E00400 CPX #$0004 C3/6FF8: D0E8 BNE $6FE2 C3/6FFA: 60 RTS
C3/6FFB unknow
C3/6FFB: A20800 LDX #$0008 C3/6FFE: 8084 BRA $6F84