If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Final Fantasy VI/ROM map/Assembly C36
< Final Fantasy VI | ROM map(Redirected from Final Fantasy VI:ROM map/Assembly C36)
Jump to navigation
Jump to search
This is a sub-page of Final Fantasy VI/ROM map.
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