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 C37
< Final Fantasy VI | ROM map(Redirected from Final Fantasy VI:ROM map/Assembly C37)
Jump to navigation
Jump to search
This is a sub-page of Final Fantasy VI/ROM map.
C3/7000:display character portrait
C3/7000: A09001 LDY #$0190 C3/7003: BF001DED LDA $ED1D00,X (get character portrait data) C3/7007: 8D1821 STA $2118 C3/700A: E8 INX C3/700B: E8 INX C3/700C: 88 DEY C3/700D: D0F4 BNE $7003 C3/700F: 60 RTS
C3/7010:blank character portrait
C3/7010: A2519F LDX #$9F51 C3/7013: 8E8121 STX $2181 C3/7016: A29001 LDX #$0190 C3/7019: 9C8021 STZ $2180 (end this string) C3/701C: 9C8021 STZ $2180 (end this string) C3/701F: CA DEX C3/7020: D0F7 BNE $7019 C3/7022: 60 RTS
C3/7023:unknow
C3/7023: C220 REP #$20 (16 bit memory/accum.) C3/7025: A91BE4 LDA #$E41B C3/7028: CFF87F30 CMP $307FF8 C3/702C: F019 BEQ $7047 C3/702E: CFFA7F30 CMP $307FFA C3/7032: F013 BEQ $7047 C3/7034: CFFC7F30 CMP $307FFC C3/7038: F00D BEQ $7047 C3/703A: CFFE7F30 CMP $307FFE C3/703E: F007 BEQ $7047 C3/7040: E220 SEP #$20 (8 bit memory/accum.) C3/7042: 204B70 JSR $704B C3/7045: 18 CLC C3/7046: 60 RTS C3/7047: E220 SEP #$20 (8 bit memory/accum...SEP #$21!) C3/7049: 38 SEC C3/704A: 60 RTS
C3/704B blank sram files
Blank all 3 SRAM files, plus the padded $200 bytes after that C3/704B: 8B PHB C3/704C: A930 LDA #$30 C3/704E: 48 PHA C3/704F: AB PLB C3/7050: A20000 LDX #$0000 C3/7053: C220 REP #$20 (16 bit memory/accum.) C3/7055: 9E0060 STZ $6000,X C3/7058: E8 INX C3/7059: E8 INX C3/705A: 9E0060 STZ $6000,X C3/705D: E8 INX C3/705E: E8 INX C3/705F: E00020 CPX #$2000 C3/7062: D0F1 BNE $7055 C3/7064: E220 SEP #$20 (8 bit memory/accum.) C3/7066: AB PLB C3/7067: 60 RTS
C3/7068 unknow
C3/7068: A20000 LDX #$0000 C3/706B: 9E2B02 STZ $022B,X C3/706E: E8 INX C3/706F: E01F00 CPX #$001F C3/7072: D0F7 BNE $706B C3/7074: A901 LDA #$01 C3/7076: 8D3702 STA $0237 C3/7079: 8D3902 STA $0239 C3/707C: 8D3B02 STA $023B C3/707F: 8D3D02 STA $023D C3/7082: 60 RTS
C3/7083 unknow
C3/7083: C220 REP #$20 (16 bit memory/accum.) C3/7085: A91BE4 LDA #$E41B C3/7088: 8FF87F30 STA $307FF8 C3/708C: 8FFA7F30 STA $307FFA C3/7090: 8FFC7F30 STA $307FFC C3/7094: 8FFE7F30 STA $307FFE C3/7098: E220 SEP #$20 (8 bit memory/accum.) C3/709A: 60 RTS
C3/709B:init SRAM
SRAM initializing: C3/709B: 206870 JSR $7068 C3/709E: A0FF7F LDY #$7FFF C3/70A1: 8C551D STY $1D55 (set R, G, and B for font to 31, aka white) C3/70A4: A912 LDA #$12 C3/70A6: 8D501D STA $1D50 (set A to confirm, B to cancel) C3/70A9: A934 LDA #$34 C3/70AB: 8D511D STA $1D51 (set X to menu, Y to switch) C3/70AE: A956 LDA #$56 C3/70B0: 8D521D STA $1D52 (set L to row, R to defend) C3/70B3: A906 LDA #$06 C3/70B5: 8D531D STA $1D53 (set select to defend) C3/70B8: A92A LDA #$2A C3/70BA: 8D4D1D STA $1D4D C3/70BD: 7B TDC C3/70BE: A8 TAY C3/70BF: 8CC71D STY $1DC7 (set number of times saved to 0) C3/70C2: 9C541D STZ $1D54 (turn multiplayer off, controller setup to "normal", and other stuff) C3/70C5: 9C4E1D STZ $1D4E C3/70C8: 9C4F1D STZ $1D4F C3/70CB: 8C6318 STY $1863 (set game time to 0) C3/70CE: 9C6518 STZ $1865 (set byte 3 of game time to 0) C3/70D1: 8C6018 STY $1860 (set gil to 0) C3/70D4: 9C6218 STZ $1862 (set byte 3 of gil to 0) C3/70D7: 8C6618 STY $1866 (set number of steps to 0) C3/70DA: 9C6818 STZ $1868 (set byte 3 of number of steps to 0) C3/70DD: 8C1B02 STY $021B C3/70E0: 8C1D02 STY $021D C3/70E3: 20BC6B JSR $6BBC (JMP fool!) C3/70E6: 60 RTS
C3/70E7:initiate party select screen
C3/70E7 20 FC 70 JSR $70FC screen transition? C3/70EA 64 4A STZ $4A C3/70EC 64 5A STZ $5A C3/70EE 64 99 STZ $99 C3/70F0 20 2A 76 JSR $762A C3/70F3 20 82 74 JSR $7482 load hotspot data C3/70F6 20 8B 74 JSR $748B load finger positions data C3/70F9 4C 14 71 JMP $7114
C3/70FC unknow
C3/70FC: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/70FF: 200469 JSR $6904 C3/7102: A903 LDA #$03 C3/7104: 8D0721 STA $2107 C3/7107: A9C0 LDA #$C0 C3/7109: 1443 TRB $43 (eventually disable channels 6 and 7 of HDMA) C3/710B: A902 LDA #$02 C3/710D: 8546 STA $46 C3/710F: A906 LDA #$06 C3/7111: 0447 TSB $47 C3/7113: 60 RTS
C3/7114 unknow
C3/7114: 20B007 JSR $07B0 (finger OAM initiating) C3/7117: 20C575 JSR $75C5 C3/711A: 202275 JSR $7522 C3/711D: 203F79 JSR $793F C3/7120: 205379 JSR $7953 C3/7123: 20FD0E JSR $0EFD C3/7126: A92D LDA #$2D C3/7128: 8527 STA $27 C3/712A: A966 LDA #$66 C3/712C: 8526 STA $26 C3/712E: 4C4135 JMP $3541
DP $26 is #$7D C3/7131: 20FC70 JSR $70FC (from C3/02D5) C3/7134: A55D LDA $5D C3/7136: 8599 STA $99 C3/7138: 207776 JSR $7677 C3/713B: A590 LDA $90 C3/713D: D00C BNE $714B C3/713F: 208274 JSR $7482 C3/7142: A48E LDY $8E C3/7144: 844D STY $4D C3/7146: 208B74 JSR $748B C3/7149: 801A BRA $7165 C3/714B: A590 LDA $90 C3/714D: 854A STA $4A C3/714F: A58D LDA $8D C3/7151: 855A STA $5A C3/7153: 20DB73 JSR $73DB (initiate character select screen) C3/7156: A48E LDY $8E C3/7158: 844D STY $4D C3/715A: A579 LDA $79 C3/715C: 8559 STA $59 C3/715E: A47A LDY $7A C3/7160: 8453 STY $53 C3/7162: 201574 JSR $7415 C3/7165: 4C1471 JMP $7114
C3/7168:sustain party select screen
C3/7168 20 B9 71 JSR $71B9 C3/716B 90 4B BCC $71B8 exit skip if button A is off C3/716D A5 08 LDA $08 C3/716F 89 80 BIT #$80 C3/7171 F0 36 BEQ $71A9 button A is on C3/7173 A5 4B LDA $4B C3/7175 18 CLC C3/7176 65 4A ADC $4A C3/7178 65 5A ADC $5A C3/717A AA TAX C3/717B BF 8D AC 7E LDA $7EAC8D,X C3/717F 30 21 BMI $71A2 fail C3/7181 20 B2 0E JSR $0EB2 click sound C3/7184 A5 4B LDA $4B C3/7186 85 28 STA $28 C3/7188 A5 4A LDA $4A C3/718A 85 49 STA $49 C3/718C A5 5A LDA $5A C3/718E 85 5B STA $5B C3/7190 A9 2E LDA #$2E C3/7192 85 26 STA $26 C3/7194 20 21 2F JSR $2F21 C3/7197 A5 4A LDA $4A C3/7199 F0 06 BEQ $71A1 C3/719B A9 02 LDA #$02 C3/719D 9F 49 36 7E STA $7E3649,X C3/71A1 60 RTS fail C3/71A2: 20C00E JSR $0EC0 (makes the buzzer sound) C3/71A5: 205D30 JSR $305D (mosaic effect) C3/71A8: 60 RTS
C3/71A9 unknow
C3/71A9: A509 LDA $09 C3/71AB: 8910 BIT #$10 (did you press start?) C3/71AD: D006 BNE $71B5 (branch if so) C3/71AF: A509 LDA $09 (A already holds the contents of $09) C3/71B1: 8980 BIT #$80 (did you press B?) C3/71B3: F003 BEQ $71B8 (branch if not, BPL...) C3/71B5: 209672 JSR $7296 C3/71B8: 60 RTS
C3/71B9 unknow
C3/71B9: 20B875 JSR $75B8 C3/71BC: A50B LDA $0B C3/71BE: 8904 BIT #$04 C3/71C0: F01C BEQ $71DE C3/71C2: A54E LDA $4E C3/71C4: C901 CMP #$01 C3/71C6: D016 BNE $71DE C3/71C8: A54A LDA $4A C3/71CA: D012 BNE $71DE C3/71CC: A910 LDA #$10 C3/71CE: 854A STA $4A C3/71D0: A599 LDA $99 C3/71D2: 0A ASL A C3/71D3: 0A ASL A C3/71D4: 855A STA $5A C3/71D6: 20DB73 JSR $73DB (initiate character select screen) C3/71D9: 20A30E JSR $0EA3 C3/71DC: 18 CLC C3/71DD: 60 RTS
C3/71DE unknow
C3/71DE: A50B LDA $0B C3/71E0: 8908 BIT #$08 C3/71E2: F022 BEQ $7206 C3/71E4: A54E LDA $4E C3/71E6: D01E BNE $7206 C3/71E8: A54A LDA $4A C3/71EA: F01A BEQ $7206 C3/71EC: A54D LDA $4D C3/71EE: 855E STA $5E C3/71F0: 644A STZ $4A C3/71F2: 645A STZ $5A C3/71F4: 208274 JSR $7482 C3/71F7: A901 LDA #$01 C3/71F9: 854E STA $4E C3/71FB: 204C74 JSR $744C C3/71FE: 208B74 JSR $748B C3/7201: 20A30E JSR $0EA3 C3/7204: 18 CLC C3/7205: 60 RTS
C3/7206 unknow
C3/7206: 201574 JSR $7415 C3/7209: 38 SEC C3/720A: 60 RTS C3/720B: 60 RTS
C3/720C:selecting a character - party select screen
check if available? C3/720C 20 B9 71 JSR $71B9 C3/720F 90 FA BCC $720B exit skip if button A is off C3/7211 A5 08 LDA $08 C3/7213 89 80 BIT #$80 C3/7215 F0 66 BEQ $727D button A is on C3/7217 7B TDC C3/7218 A5 4B LDA $4B C3/721A 18 CLC C3/721B 65 4A ADC $4A C3/721D 65 5A ADC $5A C3/721F 85 E0 STA $E0 C3/7221 AA TAX check if selection is valid C3/7222 BF 8D AC 7E LDA $7EAC8D,X C3/7226 30 67 BMI $728F fail to select
C3/7228 7B TDC C3/7229 A5 28 LDA $28 C3/722B 18 CLC C3/722C 65 49 ADC $49 C3/722E 65 5B ADC $5B C3/7230 C5 E0 CMP $E0 C3/7232 D0 31 BNE $7265
C3/7234 A5 E0 LDA $E0 C3/7236 AA TAX C3/7237 BF 89 9D 7E LDA $7E9D89,X character position? C3/723B 30 3A BMI $7277 fail if empty? C3/723D 20 B2 0E JSR $0EB2 click sound C3/7240 A5 59 LDA $59 C3/7242 85 79 STA $79 C3/7244 A4 53 LDY $53 C3/7246 84 7A STY $7A C3/7248 A4 4D LDY $4D C3/724A 84 8E STY $8E C3/724C A5 4A LDA $4A C3/724E 85 90 STA $90 C3/7250 A5 5A LDA $5A C3/7252 85 8D STA $8D C3/7254 A5 99 LDA $99 C3/7256 85 5D STA $5D C3/7258 A9 42 LDA #$42 C3/725A 85 27 STA $27 queue up C3/725C A9 67 LDA #$67 C3/725E 85 26 STA $26 queue up C3/7260 A9 7D LDA #$7D C3/7262 85 4C STA $4C C3/7264 60 RTS C3/7265 20 B2 0E JSR $0EB2 click sound C3/7268 A9 07 LDA #$07 C3/726A 14 47 TRB $47 C3/726C 20 F8 72 JSR $72F8 C3/726F 20 B0 11 JSR $11B0 execute everything in OAM queue C3/7272 20 13 76 JSR $7613 C3/7275 80 0F BRA $7286
C3/7277 20 C0 0E JSR $0EC0 buzzer sound C3/727A 20 5D 30 JSR $305D mosaic effect skip if button B is off C3/727D A5 09 LDA $09 C3/727F 89 80 BIT #$80 C3/7281 F0 0B BEQ $728E button B is on C3/7283 20 A9 0E JSR $0EA9 C3/7286 A9 2D LDA #$2D C3/7288 85 26 STA $26 queue up C3/728A A9 05 LDA #$05 C3/728C 14 46 TRB $46 C3/728E 60 RTS fail and exit C3/728F: 20C00E JSR $0EC0 (makes the buzzer sound) C3/7292: 205D30 JSR $305D (mosiac effect) C3/7295: 60 RTS
C3/7296 unknow
C3/7296: 7B TDC C3/7297: AA TAX C3/7298: AD0102 LDA $0201 C3/729B: 297F AND #$7F C3/729D: 0A ASL A C3/729E: 0A ASL A C3/729F: 85F3 STA $F3 C3/72A1: 64F4 STZ $F4 C3/72A3: 64E0 STZ $E0 C3/72A5: A00400 LDY #$0004 C3/72A8: BF999D7E LDA $7E9D99,X C3/72AC: 3002 BMI $72B0 C3/72AE: E6E0 INC $E0 C3/72B0: E8 INX C3/72B1: 88 DEY C3/72B2: D0F4 BNE $72A8 C3/72B4: A5E0 LDA $E0 C3/72B6: F013 BEQ $72CB C3/72B8: E4F3 CPX $F3 C3/72BA: D0E7 BNE $72A3 C3/72BC: 20A90E JSR $0EA9 C3/72BF: 9C0502 STZ $0205 C3/72C2: A9FF LDA #$FF C3/72C4: 8527 STA $27 (queue up to exit the menu) C3/72C6: A967 LDA #$67 C3/72C8: 8526 STA $26 (execute at C3/79F0) C3/72CA: 60 RTS
C3/72CB unknow
C3/72CB: 20C00E JSR $0EC0 (makes the buzzer sound) C3/72CE: A920 LDA #$20 C3/72D0: 8529 STA $29 (set text color to white) C3/72D2: AD0102 LDA $0201 C3/72D5: 2907 AND #$07 C3/72D7: C901 CMP #$01 C3/72D9: F00E BEQ $72E9 C3/72DB: A0B77A LDY #$7AB7 C3/72DE: 20F902 JSR $02F9 (display "You need group(s)!") C3/72E1: A22F39 LDX #$392F C3/72E4: 20F775 JSR $75F7 C3/72E7: 8006 BRA $72EF C3/72E9: A0CE7A LDY #$7ACE C3/72EC: 20F902 JSR $02F9 (display "No one there!") C3/72EF: A920 LDA #$20 C3/72F1: 8520 STA $20 C3/72F3: A969 LDA #$69 C3/72F5: 8526 STA $26 (execute at C3/7A87) C3/72F7: 60 RTS
C3/72F8 unknow
offset for character A C3/72F8 7B TDC null A C3/72F9 A5 28 LDA $28 C3/72FB 18 CLC C3/72FC 65 49 ADC $49 C3/72FE 65 5B ADC $5B C3/7300 AA TAX C3/7301 BF 89 9D 7E LDA $7E9D89,X character index C3/7305 85 E5 STA $E5 C3/7307 10 0E BPL $7317 character A is invalid (blank spot) C3/7309 BF 51 9E 7E LDA $7E9E51,X C3/730D 1F AF 73 C3 ORA $C373AF,X C3/7311 85 E0 STA $E0 C3/7313 64 E1 STZ $E1 C3/7315 80 0F BRA $7326 character A is valid C3/7317 A8 TAY C3/7318 B9 50 18 LDA $1850,Y roster info C3/731B 29 DF AND #$DF remove row C3/731D 85 E0 STA $E0 C3/731F B9 50 18 LDA $1850,Y C3/7322 29 20 AND #$20 isolate row only C3/7324 85 E1 STA $E1 calculate character B C3/7326 A5 4B LDA $4B C3/7328 18 CLC C3/7329 65 4A ADC $4A C3/732B 65 5A ADC $5A C3/732D AA TAX C3/732E BF 89 9D 7E LDA $7E9D89,X character index C3/7332 85 E6 STA $E6 C3/7334 10 0E BPL $7344 character B is invalid (blank spot) C3/7336 BF 51 9E 7E LDA $7E9E51,X C3/733A 1F AF 73 C3 ORA $C373AF,X C3/733E 85 E2 STA $E2 C3/7340 64 E3 STZ $E3 C3/7342 80 0F BRA $7353 character B is valid C3/7344 A8 TAY C3/7345 B9 50 18 LDA $1850,Y roster info C3/7348 29 DF AND #$DF exclude row C3/734A 85 E2 STA $E2 C3/734C B9 50 18 LDA $1850,Y roster info C3/734F 29 20 AND #$20 isolate row C3/7351 85 E3 STA $E3 check character A availability C3/7353 A5 E0 LDA $E0 roster info without row C3/7355 29 40 AND #$40 isolate availability C3/7357 D0 08 BNE $7361 check character B availability C3/7359 A5 E2 LDA $E2 roster info without row C3/735B 29 40 AND #$40 isolate availability C3/735D D0 1B BNE $737A C3/735F 80 30 BRA $7391 switch characters A and B character A is available C3/7361 7B TDC null A C3/7362 A5 28 LDA $28 C3/7364 18 CLC C3/7365 65 49 ADC $49 C3/7367 65 5B ADC $5B C3/7369 AA TAX C3/736A BF 89 9D 7E LDA $7E9D89,X character index C3/736E 30 E9 BMI $7359 C3/7370 AA TAX C3/7371 A5 E2 LDA $E2 C3/7373 05 E1 ORA $E1 C3/7375 9D 50 18 STA $1850,X C3/7378 80 DF BRA $7359 C3/737A 7B TDC C3/737B A5 4B LDA $4B C3/737D 18 CLC C3/737E 65 4A ADC $4A C3/7380 65 5A ADC $5A C3/7382 AA TAX C3/7383 BF 89 9D 7E LDA $7E9D89,X character index C3/7387 30 08 BMI $7391 C3/7389 AA TAX C3/738A A5 E0 LDA $E0 C3/738C 05 E3 ORA $E3 C3/738E 9D 50 18 STA $1850,X switch characters A and B C3/7391 7B TDC C3/7392 A5 4B LDA $4B C3/7394 18 CLC C3/7395 65 4A ADC $4A C3/7397 65 5A ADC $5A C3/7399 AA TAX C3/739A A5 E5 LDA $E5 C3/739C 9F 89 9D 7E STA $7E9D89,X character index for A C3/73A0 A5 28 LDA $28 C3/73A2 18 CLC C3/73A3 65 49 ADC $49 C3/73A5 65 5B ADC $5B C3/73A7 AA TAX C3/73A8 A5 E6 LDA $E6 C3/73AA 9F 89 9D 7E STA $7E9D89,X character index for B C3/73AE 60 RTS
C3/73AF data
C3/73AF: 40 C3/73B0: 40 C3/73B1: 40 C3/73B2: 40 C3/73B3: 40 C3/73B4: 40 C3/73B5: 40 C3/73B6: 40 C3/73B7: 40 C3/73B8: 40 C3/73B9: 40 C3/73BA: 40 C3/73BB: 40 C3/73BC: 40 C3/73BD: 40 C3/73BE: 40 C3/73BF: 40 C3/73C0: 48 C3/73C1: 50 C3/73C2: 58 C3/73C3: 40 C3/73C4: 48 C3/73C5: 50 C3/73C6: 58 C3/73C7: 40 C3/73C8: 48 C3/73C9: 50 C3/73CA: 58 C3/73CB: 40 C3/73CC: 48 C3/73CD: 50 C3/73CE: 58 C3/73CF: 40 C3/73D0: 48 C3/73D1: 50 C3/73D2: 58 C3/73D3: 40 C3/73D4: 48 C3/73D5: 50 C3/73D6: 58 C3/73D7: 40 C3/73D8: 48 C3/73D9: 50 C3/73DA: 58
C3/73DB unknow
C3/73DB: A54D LDA $4D (from C3/7153, C3/71D6) C3/73DD: 855E STA $5E C3/73DF: AD0102 LDA $0201 C3/73E2: 297F AND #$7F C3/73E4: C901 CMP #$01 C3/73E6: F00D BEQ $73F5 (go to character select screen, set 1 party needed) C3/73E8: C902 CMP #$02 C3/73EA: F019 BEQ $7405 (go to character select screen, set 2 parties needed) C3/73EC: 20AF74 JSR $74AF (hotspot data for 3 party setup) C3/73EF: 203274 JSR $7432 C3/73F2: 4CB874 JMP $74B8 (finger positioning data for 3 party setup)
C3/73F5 unknow
C3/73F5: 209174 JSR $7491 (hotspot data for 1 party setup) C3/73F8: A55E LDA $5E C3/73FA: C901 CMP #$01 C3/73FC: 9002 BCC $7400 C3/73FE: A901 LDA #$01 C3/7400: 854D STA $4D C3/7402: 4C9A74 JMP $749A (finger positioning data for 1 party setup)
C3/7405 unknow
C3/7405: 20A074 JSR $74A0 (hotspot data for 2 party setup) C3/7408: A55E LDA $5E C3/740A: C903 CMP #$03 C3/740C: 9002 BCC $7410 C3/740E: A903 LDA #$03 C3/7410: 854D STA $4D C3/7412: 4CA974 JMP $74A9 (finger positioning data for 2 party setup)
C3/7415 unknow
C3/7415: A54A LDA $4A C3/7417: F016 BEQ $742F (go to character select screen, get and adjust finger positioning for selecting characters; plus this could branch there without the jump) C3/7419: AD0102 LDA $0201 C3/741C: 297F AND #$7F C3/741E: C901 CMP #$01 C3/7420: F00A BEQ $742C (go to character select screen, get and adjust finger positioning for 1 party setup; plus this could branch there without the jump) C3/7422: C902 CMP #$02 C3/7424: F003 BEQ $7429 (go to character select screen, get and adjust finger positioning for 2 party setup) C3/7426: 4CB574 JMP $74B5 C3/7429: 4CA674 JMP $74A6 C3/742C: 4C9774 JMP $7497 C3/742F: 4C8874 JMP $7488
C3/7432 unknow
C3/7432: A55E LDA $5E C3/7434: A600 LDX $00 C3/7436: DF6674C3 CMP $C37466,X C3/743A: F008 BEQ $7444 C3/743C: E8 INX C3/743D: E8 INX C3/743E: E01000 CPX #$0010 C3/7441: D0F3 BNE $7436 C3/7443: 60 RTS
C3/7444 unknow
C3/7444: E8 INX C3/7445: BF6674C3 LDA $C37466,X C3/7449: 854D STA $4D C3/744B: 60 RTS
C3/744C unknow
C3/744C: A55E LDA $5E C3/744E: A600 LDX $00 C3/7450: DF7674C3 CMP $C37476,X C3/7454: F008 BEQ $745E C3/7456: E8 INX C3/7457: E8 INX C3/7458: E00C00 CPX #$000C C3/745B: D0F3 BNE $7450 C3/745D: 60 RTS
C3/745E unknow
C3/745E: E8 INX C3/745F: BF7674C3 LDA $C37476,X C3/7463: 854D STA $4D C3/7465: 60 RTS
C3/7466 unknow
C3/7466: 0000 C3/7468: 0101 C3/746A: 0201 C3/746C: 0302 C3/746E: 0403 C3/7470: 0504 C3/7472: 0604 C3/7474: 0705
C3/7476 unknow
C3/7476: 0000 C3/7478: 0101 C3/747A: 0203 C3/747C: 0304 C3/747E: 0406 C3/7480: 0507
C3/7482 unknow
C3/7482: A0BE74 LDY #$74BE C3/7485: 4CFE05 JMP $05FE (hotspot data for group of characters in select screen)
C3/7488 unknow
C3/7488: 202D07 JSR $072D C3/748B: A0C374 LDY #$74C3 C3/748E: 4C4006 JMP $0640 (finger positioning data for group of characters in select screen)
C3/7491 unknow
C3/7491: A0E374 LDY #$74E3 C3/7494: 4CFE05 JMP $05FE (hotspot data for 1 party window setup)
C3/7497 unknow
C3/7497: 202D07 JSR $072D C3/749A: A0E874 LDY #$74E8 C3/749D: 4C3706 JMP $0637 (finger positioning data for 1 party window setup)
C3/74A0 unknow
C3/74A0: A0F074 LDY #$74F0 C3/74A3: 4CFE05 JMP $05FE (hotspot data for 2 party window setup)
C3/74A6 unknow
C3/74A6: 202D07 JSR $072D C3/74A9: A0F574 LDY #$74F5 C3/74AC: 4C3706 JMP $0637 (finger positioning data for 2 party window setup)
C3/74AF unknow
C3/74AF: A00575 LDY #$7505 C3/74B2: 4CFE05 JMP $05FE (hotspot data for 3 party window setup)
C3/74B5 unknow
C3/74B5: 202D07 JSR $072D C3/74B8: A00A75 LDY #$750A C3/74BB: 4C3706 JMP $0637 (finger positioning data for 3 party window setup)
C3/74BE data: hotspot, group of characters
C3/74BE: 81 00 00 08 02
C3/74C3 data: finger positions, group of characters
C3/74C3: 0864 C3/74C5: 2464 C3/74C7: 4064 C3/74C9: 5C64 C3/74CB: 7864 C3/74CD: 9464 C3/74CF: B064 C3/74D1: CC64
C3/74D3 unknow
C3/74D3: 0880 C3/74D5: 2480 C3/74D7: 4080 C3/74D9: 5C80 C3/74DB: 7880 C3/74DD: 9480 C3/74DF: B080 C3/74E1: CC80
C3/74E3 data: hotspot, 1 party
C3/74E3: 81 00 00 02 02
C3/74E8 data: finger position, 1 party
C3/74E8: 08A4 C3/74EA: 28A4 C3/74EC: 08C0 C3/74EE: 28C0
C3/74F0 data: hotspot, 2 parties
C3/74F0: 81 00 00 04 02
C3/74F5 data: finger positions, 2 parties
C3/74F5: 08A4 C3/74F7: 28A4 C3/74F9: 58A4 C3/74FB: 78A4 C3/74FD: 08C0 C3/74FF: 28C0 C3/7501: 58C0 C3/7503: 78C0
C3/7505 data: hotspot, 3 parties
C3/7505: 81 00 00 06 02
C3/750A data: finger positions, 3 parties
C3/750A: 08A4 C3/750C: 28A4 C3/750E: 58A4 C3/7510: 78A4 C3/7512: A8A4 C3/7514: C8A4 C3/7516: 08C0 C3/7518: 28C0 C3/751A: 58C0 C3/751C: 78C0 C3/751E: A8C0 C3/7520: C8C0
C3/7522 unknow
C3/7522: A0A075 LDY #$75A0 C3/7525: 204103 JSR $0341 C3/7528: A09C75 LDY #$759C C3/752B: 204103 JSR $0341 C3/752E: A0A475 LDY #$75A4 C3/7531: 204103 JSR $0341 C3/7534: A0A875 LDY #$75A8 C3/7537: 204103 JSR $0341 C3/753A: A09875 LDY #$7598 C3/753D: 204103 JSR $0341 C3/7540: 207275 JSR $7572 C3/7543: 20520E JSR $0E52 C3/7546: 205F75 JSR $755F C3/7549: 206E0E JSR $0E6E C3/754C: 20156A JSR $6A15 C3/754F: A924 LDA #$24 C3/7551: 8529 STA $29 C3/7553: A0AE7A LDY #$7AAE C3/7556: 20F902 JSR $02F9 (display "Lineup") C3/7559: 206275 JSR $7562 C3/755C: 4C280E JMP $0E28 C3/755F: 4C3C6A JMP $6A3C
C3/7562 unknow
C3/7562: A920 LDA #$20 C3/7564: 8529 STA $29 (set text color to white) C3/7566: A0957A LDY #$7A95 C3/7569: 20F902 JSR $02F9 (display "Form group(s). ") C3/756C: A22739 LDX #$3927 C3/756F: 4CF775 JMP $75F7
C3/7572 unknow
C3/7572: 7B TDC C3/7573: AD0102 LDA $0201 C3/7576: 297F AND #$7F C3/7578: 0A ASL A C3/7579: AA TAX C3/757A: 7C7D75 JMP ($757D,X)
C3/757D pointers
C3/757D: 0000 C3/757F: 9175 C3/7581: 8B75 C3/7583: 8575
C3/7585 unknow
C3/7585: A0B475 LDY #$75B4 C3/7588: 204103 JSR $0341 (window that holds party 3) C3/758B: A0B075 LDY #$75B0 C3/758E: 204103 JSR $0341 (window that holds party 2) C3/7591: A0AC75 LDY #$75AC C3/7594: 204103 JSR $0341 (window that holds party 1) C3/7597: 60 RTS
C3/7598 data: window
C3/7598: 8B580602 C3/759C: CB5C1C07 C3/75A0: 8B591C05 C3/75A4: 0B5B1C06 C3/75A8: 9B581402
C3/75AC data: window
C3/75AC: 0B5D0806 (party 1 window) C3/75B0: 1F5D0806 (party 2 window) C3/75B4: 335D0806 (party 3 window)
C3/75B8 unknow
C3/75B8: A906 LDA #$06 C3/75BA: 0447 TSB $47 C3/75BC: 202F7C JSR $7C2F C3/75BF: 20AE7C JSR $7CAE C3/75C1: 4C5379 JMP $7953
C3/75C4 unknow
C3/75C4: A902 LDA #$02 C3/75C7: 8D5043 STA $4350 C3/75CA: A90E LDA #$0E C3/75CC: 8D5143 STA $4351 (register address becomes $210E) C3/75CF: A0E475 LDY #$75E4 C3/75D2: 8C5243 STY $4352 (set address) C3/75D5: A9C3 LDA #$C3 C3/75D7: 8D5443 STA $4354 (set bank, C3/75E4) C3/75DA: A9C3 LDA #$C3 C3/75DC: 8D5743 STA $4357 C3/75DF: A920 LDA #$20 C3/75E1: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/75E3: 60 RTS
C3/75E4 data: hdma transfer table
C3/75E4: 200200 C3/75E7: 080000 C3/75EA: 0B0400 C3/75ED: 0C0800 C3/75F0: 0C0C00 C3/75F3: 0C1000 C3/75F6: 00 (end)
C3/75F7 unknow
C3/75F7: 7B TDC C3/75F8: AD0102 LDA $0201 C3/75FB: 2907 AND #$07 C3/75FD: 18 CLC C3/75FE: 69B4 ADC #$B4 C3/7600: 85F9 STA $F9 C3/7602: 64FA STZ $FA C3/7604: 86F7 STX $F7 C3/7606: A0F700 LDY #$00F7 C3/7609: 84E7 STY $E7 C3/760B: A900 LDA #$00 C3/760D: 85E9 STA $E9 C3/760F: 20FF02 JSR $02FF C3/7612: 60 RTS
C3/7613 unknow
C3/7613: A9FF LDA #$FF C3/7615: A600 LDX $00 C3/7617: 9F999D7E STA $7E9D99,X C3/761B: E8 INX C3/761C: E09000 CPX #$0090 C3/761F: D0F6 BNE $7617 C3/7621: 20EA76 JSR $76EA C3/7624: 205378 JSR $7853 C3/7627: 4C8376 JMP $7683 (BRA would work here)
C3/762A set roster characters
null 16 slots C3/762A A9 FF LDA #$FF C3/762C A6 00 LDX $00 C3/762E 9F 89 9D 7E STA $7E9D89,X C3/7632 E8 INX C3/7633 E0 A0 00 CPX #$00A0 C3/7636 D0 F6 BNE $762E set WRAM address C3/7638 A2 89 9D LDX #$9D89 C3/763B 8E 81 21 STX $2181 set WRAM to 7E9D89 check availability for character C3/763E AD 01 02 LDA $0201 availability bits C3/7641 30 22 BMI $7665 is not multi-party? C3/7643 A6 00 LDX $00 null A C3/7645 BD 50 18 LDA $1850,X roster info C3/7648 29 40 AND #$40 is character available? C3/764A F0 0B BEQ $7657 skip if not C3/764C BD 50 18 LDA $1850,X roster info C3/764F 29 07 AND #$07 party identifier C3/7651 D0 04 BNE $7657 skip if not main party transfer sequence of available characters C3/7653 8A TXA C3/7654 8D 80 21 STA $2180 check all characters C3/7657 E8 INX C3/7658 E0 10 00 CPX #$0010 C3/765B D0 E8 BNE $7645 end transfer C3/765D A9 FF LDA #$FF C3/765F 8D 80 21 STA $2180 C3/7662 4C 77 76 JMP $7677 set default party identifier for all characters C3/7665 A6 00 LDX $00 null A C3/7667 BD 50 18 LDA $1850,X roster info C3/766A 29 F8 AND #$F8 set default party identifier C3/766C 9D 50 18 STA $1850,X C3/766F E8 INX C3/7670 E0 10 00 CPX #$0010 max number of characters C3/7673 D0 F2 BNE $7667 try all characters C3/7675 80 CC BRA $7643 continue C3/7677 20 EA 76 JSR $76EA C3/767A 20 53 78 JSR $7853 C3/767D 20 83 76 JSR $7683 C3/7680 4C 0C 79 JMP $790C
C3/7683 A6 00 LDX $00 null X C3/7685 7B TDC null A C3/7686 BF 89 9D 7E LDA $7E9D89,X character index C3/768A 30 33 BMI $76BF not available?
C3/768C DA PHX C3/768D 48 PHA C3/768E A9 00 LDA #$00 C3/7690 48 PHA C3/7691 AB PLB C3/7692 A9 02 LDA #$02 C3/7694 A0 5F 7A LDY #$7A5F C3/7697 20 73 11 JSR $1173 queue C3/7A5F. draw sprites? C3/769A 9B TXY C3/769B 7B TDC C3/769C 68 PLA null A C3/769D 9F C9 35 7E STA $7E35C9,X C3/76A1 20 EB 78 JSR $78EB C3/76A4 FA PLX C3/76A5 BF CA 76 C3 LDA $C376CA,X x position of sprite C3/76A9 99 CA 33 STA $33CA,Y C3/76AC BF DA 76 C3 LDA $C376DA,X y position of sprite C3/76B0 99 4A 34 STA $344A,Y OAM setup? C3/76B3 7B TDC C3/76B4 99 CB 33 STA $33CB,Y C3/76B7 99 4B 34 STA $344B,Y C3/76BA A9 D8 LDA #$D8 C3/76BC 99 CA 35 STA $35CA,Y bank pointer to OAM data try all characters C3/76BF E8 INX C3/76C0 E0 10 00 CPX #$0010 max number of characters C3/76C3 D0 C0 BNE $7685 exit C3/76C5: A900 LDA #$00 C3/76C7: 48 PHA C3/76C8: AB PLB C3/76C9: 60 RTS
C3/76CA:data for position X of characters: character select screen
C3/76CA 18 C3/76CB 34 C3/76CC 50 C3/76CD 6C C3/76CE 88 C3/76CF A4 C3/76D0 C0 C3/76D1 DC C3/76D2 18 C3/76D3 34 C3/76D4 50 C3/76D5 6C C3/76D6 88 C3/76D7 A4 C3/76D8 C0 C3/76D9 DC
C3/76DA:data for position Y of characters: character select screen
C3/76DA 5C C3/76DB 5C C3/76DC 5C C3/76DD 5C C3/76DE 5C C3/76DF 5C C3/76E0 5C C3/76E1 5C C3/76E2 78 C3/76E3 78 C3/76E4 78 C3/76E5 78 C3/76E6 78 C3/76E7 78 C3/76E8 78 C3/76E9 78
C3/76EA: set 3 groups in party selection screen
C3/76EA A2 B9 9D LDX #$9DB9 C3/76ED 86 E7 STX $E7 C3/76EF AD 01 02 LDA $0201 availability bits C3/76F2 29 07 AND #$07 C3/76F4 85 E6 STA $E6 C3/76F6 A9 01 LDA #$01 C3/76F8 85 E0 STA $E0 C3/76FA A6 E7 LDX $E7 C3/76FC 8E 81 21 STX $2181 set wram address C3/76FF A6 00 LDX $00 null X C3/7701 BD 50 18 LDA $1850,X roster info C3/7704 29 40 AND #$40 is it available? C3/7706 F0 0D BEQ $7715 skip if not C3/7708 BD 50 18 LDA $1850,X roster info C3/770B 29 07 AND #$07 party id C3/770D C5 E0 CMP $E0 actual party C3/770F D0 04 BNE $7715 save character ID C3/7711 8A TXA C3/7712 8D 80 21 STA $2180 try all characters C3/7715 E8 INX C3/7716 E0 10 00 CPX #$0010 C3/7719 D0 E6 BNE $7701 end sequence C3/771B A9 FF LDA #$FF C3/771D 8D 80 21 STA $2180 update wram address C3/7720 C2 20 REP #$20 16-bit A C3/7722 A5 E7 LDA $E7 wram address C3/7724 18 CLC C3/7725 69 10 00 ADC #$0010 C3/7728 85 E7 STA $E7 C3/772A E2 20 SEP #$20 8-bit A try all groups C3/772C E6 E0 INC $E0 increase party number C3/772E C6 E6 DEC $E6 number of groups C3/7730 D0 C8 BNE $76FA C3/7732 20 38 77 JSR $7738 C3/7735 4C 02 78 JMP $7802
C3/7738:unknow
C3/7738 AD 01 02 LDA $0201 availability bits C3/773B 29 07 AND #$07 ?isolate active groups C3/773D 85 E6 STA $E6 C3/773F A6 00 LDX $00 null X C3/7741 A9 7E LDA #$7E C3/7743 85 E9 STA $E9 C3/7745 C2 20 REP #$20 16-bit A C3/7747 BF E6 77 C3 LDA $C377E6,X C3/774B 85 E7 STA $E7 C3/774D BF E8 77 C3 LDA $C377E8,X C3/7751 DA PHX C3/7752 AA TAX C3/7753 E2 20 SEP #$20 8-bit A C3/7755 20 25 7B JSR $7B25 ?setup party C3/7758 FA PLX C3/7759 E8 INX C3/775A E8 INX C3/775B E8 INX C3/775C E8 INX C3/775D C6 E6 DEC $E6 active groups C3/775F D0 E0 BNE $7741 set wram address C3/7761 A2 99 9D LDX #$9D99 C3/7764 8E 81 21 STX $2181 C3/7767 AD 01 02 LDA $0201 C3/776A 29 7F AND #$7F C3/776C C9 01 CMP #$01 C3/776E F0 66 BEQ $77D6 C3/7770 C9 02 CMP #$02 C3/7772 F0 4F BEQ $77C3 C3/7774 20 C3 77 JSR $77C3 C3/7777 A6 00 LDX $00 C3/7779 BF E1 9D 7E LDA $7E9DE1,X C3/777D 8D 80 21 STA $2180 C3/7780 E8 INX C3/7781 E0 04 00 CPX #$0004 C3/7784 D0 F3 BNE $7779 C3/7786 A6 00 LDX $00 null X C3/7788 BF F1 9D 7E LDA $7E9DF1,X C3/778C 8D 80 21 STA $2180 C3/778F E8 INX C3/7790 E0 04 00 CPX #$0004 C3/7793 D0 F3 BNE $7788 C3/7795 A6 00 LDX $00 C3/7797 BF 01 9E 7E LDA $7E9E01,X C3/779B 8D 80 21 STA $2180 C3/779E E8 INX C3/779F E0 04 00 CPX #$0004 C3/77A2 D0 F3 BNE $7797 C3/77A4 A6 00 LDX $00 C3/77A6 BF 11 9E 7E LDA $7E9E11,X C3/77AA 8D 80 21 STA $2180 C3/77AD E8 INX C3/77AE E0 04 00 CPX #$0004 C3/77B1 D0 F3 BNE $77A6 C3/77B3 A6 00 LDX $00 C3/77B5 BF 21 9E 7E LDA $7E9E21,X C3/77B9 8D 80 21 STA $2180 C3/77BC E8 INX C3/77BD E0 04 00 CPX #$0004 C3/77C0 D0 F3 BNE $77B5 C3/77C2 60 RTS
C3/77C3:unknow
C3/77C3: 20D677 JSR $77D6 C3/77C6: A600 LDX $00 C3/77C8: BFD19D7E LDA $7E9DD1,X C3/77CC: 8D8021 STA $2180 C3/77CF: E8 INX C3/77D0: E00400 CPX #$0004 C3/77D3: D0F3 BNE $77C8 C3/77D5: 60 RTS C3/77D6: A600 LDX $00 C3/77D8: BFC19D7E LDA $7E9DC1,X C3/77DC: 8D8021 STA $2180 C3/77DF: E8 INX C3/77E0: E00400 CPX #$0004 C3/77E3: D0F3 BNE $77D8 C3/77E5: 60 RTS
C3/77E6 data
C3/77E6 C1 9D 30 00 C3/77EA D1 9D 40 00 C3/77EE E1 9D 50 00 C3/77F2 F1 9D 60 00 C3/77F6 01 9E 70 00 C3/77FA 11 9E 80 00 C3/77FE 21 9E 90 00
C3/7802 unknow
C3/7802: A2519E LDX #$9E51 C3/7805: 8E8121 STX $2181 C3/7808: A910 LDA #$10 C3/780A: 9C8021 STZ $2180 (16 null terminators to VRAM) C3/780D: 3A DEC A C3/780E: D0FA BNE $780A C3/7810: AD0102 LDA $0201 C3/7813: 2907 AND #$07 C3/7815: C901 CMP #$01 C3/7817: F020 BEQ $7839 C3/7819: C902 CMP #$02 C3/781B: F021 BEQ $783E C3/781D: 203E78 JSR $783E C3/7820: A903 LDA #$03 C3/7822: 204678 JSR $7846 C3/7825: A904 LDA #$04 C3/7827: 204678 JSR $7846 C3/782A: A905 LDA #$05 C3/782C: 204678 JSR $7846 C3/782F: A906 LDA #$06 C3/7831: 204678 JSR $7846 C3/7834: A907 LDA #$07 C3/7836: 4C4678 JMP $7846 (BRA would work here)
C3/7839 unknow
C3/7839: A901 LDA #$01 C3/783B: 4C4678 JMP $7846 (BRA would work here)
C3/783E unknow
C3/783E: 203978 JSR $7839 C3/7841: A902 LDA #$02 C3/7843: 4C4678 JMP $7846 (BRA would work here, then again so would nothing at all)
C3/7846 unknow
C3/7846: 8D8021 STA $2180 C3/7849: 8D8021 STA $2180 C3/784C: 8D8021 STA $2180 C3/784F: 8D8021 STA $2180 C3/7852: 60 RTS
C3/7853 unknow
C3/7853: AD0102 LDA $0201 C3/7856: 2907 AND #$07 C3/7858: 85E6 STA $E6 C3/785A: A2C19D LDX #$9DC1 C3/785D: 86F3 STX $F3 C3/785F: A97E LDA #$7E C3/7861: 85F5 STA $F5 C3/7863: AD1242 LDA $4212 C3/7866: 2940 AND #$40 (are we in H-blank?) C3/7868: F0F9 BEQ $7863 (branch if not) C3/786A: A599 LDA $99 C3/786C: 8D1B21 STA $211B C3/786F: 9C1B21 STZ $211B C3/7872: A9B0 LDA #$B0 C3/7874: 8D1C21 STA $211C C3/7877: 8D1C21 STA $211C C3/787A: AE3421 LDX $2134 C3/787D: 86E4 STX $E4 C3/787F: A600 LDX $00 C3/7881: 7B TDC C3/7882: 9B TXY C3/7883: B7F3 LDA [$F3],Y C3/7885: 85F6 STA $F6 C3/7887: 3037 BMI $78C0 C3/7889: DA PHX C3/788A: 48 PHA C3/788B: A900 LDA #$00 C3/788D: 48 PHA C3/788E: AB PLB (set bank to 0) C3/788F: A902 LDA #$02 C3/7891: A0427B LDY #$7B42 C3/7894: 207311 JSR $1173 (put C3/7B42 in the queue) C3/7897: 9B TXY C3/7898: 7B TDC C3/7899: 68 PLA C3/789A: 9FC9357E STA $7E35C9,X C3/789E: 20EB78 JSR $78EB C3/78A1: FA PLX C3/78A2: 7B TDC C3/78A3: BFE378C3 LDA $C378E3,X C3/78A7: C221 REP #$21 C3/78A9: 65E4 ADC $E4 C3/78AB: 99CA33 STA $33CA,Y C3/78AE: E220 SEP #$20 (8 bit memory/accum.) C3/78B0: BFE778C3 LDA $C378E7,X C3/78B4: 994A34 STA $344A,Y C3/78B7: 7B TDC C3/78B8: 994B34 STA $344B,Y C3/78BB: A9D8 LDA #$D8 C3/78BD: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/78C0: E8 INX C3/78C1: E00400 CPX #$0004 C3/78C4: D0BB BNE $7881 C3/78C6: C220 REP #$20 (16 bit memory/accum.) C3/78C8: A5F3 LDA $F3 C3/78CA: 18 CLC C3/78CB: 691000 ADC #$0010 C3/78CE: 85F3 STA $F3 C3/78D0: A5E4 LDA $E4 C3/78D2: 18 CLC C3/78D3: 695000 ADC #$0050 C3/78D6: 85E4 STA $E4 C3/78D8: E220 SEP #$20 (8 bit memory/accum.) C3/78DA: C6E6 DEC $E6 C3/78DC: D0A1 BNE $787F C3/78DE: A900 LDA #$00 C3/78E0: 48 PHA C3/78E1: AB PLB C3/78E2: 60 RTS
C3/78E3 data
C3/78E3: 18 C3/78E4: 18 C3/78E5: 38 C3/78E6: 38
C3/78E7 data
C3/78E7: 9C C3/78E8: B8 C3/78E9: 9C C3/78EA: B8
C3/78EB unknow
C3/78EB: 0A ASL A C3/78EC: AA TAX C3/78ED: C220 REP #$20 (16 bit memory/accum.) C3/78EF: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/78F3: AA TAX C3/78F4: E220 SEP #$20 (8 bit memory/accum.) C3/78F6: 7B TDC C3/78F7: BD0100 LDA $0001,X C3/78FA: 0A ASL A C3/78FB: AA TAX C3/78FC: A97E LDA #$7E C3/78FE: 48 PHA C3/78FF: AB PLB C3/7900: C220 REP #$20 (16 bit memory/accum.) C3/7902: BF17E9D8 LDA $D8E917,X (determine which sprites to load) C3/7906: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/7909: E220 SEP #$20 (8 bit memory/accum.) C3/790B: 60 RTS
C3/790C unknow
C3/790C: A28DAC LDX #$AC8D C3/790F: 8E8121 STX $2181 C3/7912: 7B TDC C3/7913: AA TAX C3/7914: DA PHX C3/7915: 7B TDC C3/7916: BF899D7E LDA $7E9D89,X C3/791A: 3017 BMI $7933 C3/791C: C220 REP #$20 (16 bit memory/accum.) C3/791E: 0A ASL A C3/791F: AA TAX C3/7920: BF0F7CC3 LDA $C37C0F,X C3/7924: 85E7 STA $E7 C3/7926: AD0202 LDA $0202 C3/7929: 25E7 AND $E7 C3/792B: E220 SEP #$20 (8 bit memory/accum.) C3/792D: F004 BEQ $7933 C3/792F: A9FF LDA #$FF C3/7931: 8001 BRA $7934 C3/7933: 7B TDC C3/7934: 8D8021 STA $2180 C3/7937: FA PLX C3/7938: E8 INX C3/7939: E02C00 CPX #$002C C3/793C: D0D6 BNE $7914 C3/793E: 60 RTS
C3/793F unknow
C3/793F: 6428 STZ $28 C3/7941: 20E57A JSR $7AE5 C3/7944: A92F LDA #$2F C3/7946: 9F4A347E STA $7E344A,X C3/794A: 20AC14 JSR $14AC C3/794D: 202F7C JSR $7C2F C3/7950: 4CAE7C JMP $7CAE
C3/7953 unknow
C3/7953: 20AC79 JSR $79AC C3/7956: 7B TDC C3/7957: A54B LDA $4B C3/7959: 18 CLC C3/795A: 654A ADC $4A C3/795C: 655A ADC $5A C3/795E: AA TAX C3/795F: BF899D7E LDA $7E9D89,X C3/7963: 3046 BMI $79AB C3/7965: 85C9 STA $C9 C3/7967: 0A ASL A C3/7968: AA TAX C3/7969: C220 REP #$20 (16 bit memory/accum.) C3/796B: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/796F: 8567 STA $67 C3/7971: E220 SEP #$20 (8 bit memory/accum.) C3/7973: A924 LDA #$24 C3/7975: 8529 STA $29 (set text color to blue) C3/7977: A2C979 LDX #$79C9 C3/797A: A00600 LDY #$0006 C3/797D: 20BA69 JSR $69BA (display "LV," "HP," and "MP") C3/7980: A05B3A LDY #$3A5B C3/7983: A24830 LDX #$3048 C3/7986: A901 LDA #$01 C3/7988: 8548 STA $48 C3/798A: 202734 JSR $3427 (display status ailments) C3/798D: A0DB3A LDY #$3ADB C3/7990: 20CF34 JSR $34CF (display character name) C3/7993: A05B3B LDY #$3B5B C3/7996: 20E634 JSR $34E6 (display currently equipped Esper) C3/7999: A0DE79 LDY #$79DE C3/799C: 20F902 JSR $02F9 (display HP's "/") C3/799F: A0E279 LDY #$79E2 C3/79A2: 20F902 JSR $02F9 (display MP's "/") C3/79A5: A2E679 LDX #$79E6 C3/79A8: 206C0C JSR $0C6C (display level, HP, MP, etc) C3/79AB: 60 RTS
C3/79AC unknow
C3/79AC: A2C001 LDX #$01C0 C3/79AF: C220 REP #$20 (16 bit memory/accum.) C3/79B1: 7B TDC C3/79B2: A500 LDA $00 C3/79B4: A06000 LDY #$0060 C3/79B7: 9F49387E STA $7E3849,X C3/79BB: E8 INX C3/79BC: E8 INX C3/79BD: 9F49387E STA $7E3849,X C3/79C1: E8 INX C3/79C2: E8 INX C3/79C3: 88 DEY C3/79C4: D0F1 BNE $79B7 C3/79C6: E220 SEP #$20 (8 bit memory/accum.) C3/79C8: 60 RTS
C3/79C9 data
C3/79C9: CF79 C3/79CB: D479 C3/79CD: D979
C3/79CF data: strings
C3/79CF: 6D3A8B9500 (position of and word "LV") C3/79D4: ED3A878F00 (position of and word "HP") C3/79D9: 6D3B8C8F00 (position of and word "MP") C3/79DE: FB3AC000 (position of and character "/") C3/79E2: 7B3BC000 (position of and character "/")
C3/79E6 data: positions for level, hp and mp (airship)
C3/79E6: 773A (level's position) C3/79E8: F33A (current HP's position) C3/79EA: FD3A (max HP's position) C3/79EC: 733B (current MP's position) C3/79EE: 7D3B (max MP's position)
C3/79F0 unknow
C3/79F0: 204F30 JSR $304F C3/79F1: A00800 LDY #$0008 C3/79F5: 8420 STY $20 C3/79F7: A968 LDA #$68 C3/79FA: 8526 STA $26 C3/79FC: 4CB875 JMP $75B8
C3/79FF unknow
C3/79FF: 205630 JSR $3056 C3/7A02: A00800 LDY #$0008 C3/7A05: 8420 STY $20 C3/7A07: A968 LDA #$68 C3/7A09: 8526 STA $26 C3/7A0B: 4CB875 JMP $75B8
C3/7A0E unknow
C3/7A0E: A420 LDY $20 C3/7A10: D004 BNE $7A16 C3/7A12: A527 LDA $27 C3/7A14: 8526 STA $26 C3/7A16: 4CB875 JMP $75B8
C3/7A19 code for jump table
C3/7A19: AA TAX C3/7A1A: 7C1D7A JMP ($7A1D,X) C3/7A1D: 217A C3/7A1F: 3E7A
C3/7A21 unknow
C3/7A21: A62D LDX $2D C3/7A23: C220 REP #$20 C3/7A25: A96FEC LDA #$EC6F C3/7A28: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/7A2B: A90800 LDA #$0008 C3/7A2E: 9DCA33 STA #33CA,X C3/7A31: E220 SEP #$20 C3/7A33: A9D8 LDA #$D8 C3/7A35: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/7A38: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/7A3B: 200612 JSR $1206 C3/7A3E: A42D LDY $2D C3/7A40: A599 LDA $99 C3/7A42: F007 BEQ $7A4B C3/7A44: 3017 BMI $7A5D C3/7A46: 7B TDC C3/7A47: A902 LDA #$02 C3/7A49: 8001 BRA $7A4C C3/7A4B: 7B TDC C3/7A4C: AA TAX C3/7A4D: C220 REP #$20 (16 bit memory/accum.) C3/7A4F: BF6BECD8 LDA $D8EC6B,X C3/7A53: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/7A56: E220 SEP #$20 (8 bit memory/accum.) C3/7A58: 202112 JSR $1221 (draw the sprites!) C3/7A5B: 38 SEC (not done with this queue yet) C3/7A5C: 60 RTS C3/7A5D: 18 CLC (this queue can be removed) C3/7A5E: 60 RTS
C3/7A5F code for jump table
C3/7A5F: AA TAX C3/7A60: 7C637A JMP ($7A63,X) C3/7A63: 677A C3/7A65: 787A
C3/7A67 unknow
C3/7A67: A901 LDA #$01 C3/7A69: 0447 TSB $47 C3/7A6B: A62D LDX $2D C3/7A6D: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/7A70: A901 LDA #$01 C3/7A72: 200612 JSR $1206 C3/7A75: 20AE7B JSR $7BAE C3/7A78: A547 LDA $47 C3/7A7A: 2901 AND #$01 C3/7A7C: F007 BEQ $7A85 C3/7A7E: A62D LDX $2D C3/7A80: 202112 JSR $1221 (draw the sprites!) C3/7A83: 38 SEC (not done with this queue yet) C3/7A84: 60 RTS C3/7A85: 18 CLC (this queue can be removed) C3/7A86: 60 RTS
C3/7A87 unknow
C3/7A87: A520 LDA $20 C3/7A89: D007 BNE $7A92 C3/7A8B: A92D LDA #$2D C3/7A8D: 8526 STA $26 (execute at C3/7168) C3/7A8F: 206275 JSR $7562 C3/7A92: 4CB875 JMP $75B8
C3/7A95 unknow
C3/7A95: 1D3985 ORA $8539,X C3/7A98: A8 TAY C3/7A99: AB PLB C3/7A9A: A6FF LDX $FF C3/7A9C: FFFFA0AB SBC $ABA0FF,X C3/7AA0: A8 TAY C3/7AA1: AEA9CB LDX $CBA9 C3/7AA4: ACCCC5 LDY $C5CC C3/7AA7: FFFFFFFF SBC $FFFFFF,X C3/7AAB: FFFF000D SBC $0D00FF,X C3/7AAF: 398BA2 AND $A28B,Y C3/7AB2: A79E LDA [$9E] C3/7AB4: AEA900 LDX $00A9 C3/7AB7: 1D3998 ORA $9839,X C3/7ABA: A8 TAY C3/7ABB: AEFFA7 LDX $A7FF C3/7ABE: 9E9E9D STZ $9D9E,X C3/7AC1: FFFFFFA0 SBC $A0FFFF,X C3/7AC5: AB PLB C3/7AC6: A8 TAY C3/7AC7: AEA9CB LDX $CBA9 C3/7ACA: ACCCBE LDY $BECC C3/7ACD: 001D BRK #$1D C3/7ACF: 398DA8 AND $A88D,Y C3/7AD2: FFA8A79E SBC $9EA7A8,X C3/7AD6: FFADA19E SBC $9EA1AD,X C3/7ADA: AB PLB C3/7ADB: 9EBEFF STZ $FFBE,X C3/7ADE: FFFFFFFF SBC $FFFFFF,X C3/7AE2: FFFF00
C3/7AE5 unknow
DP $26 is #$2F C3/7AE5: A903 LDA #$03 C3/7AE7: A0120B LDY #$0B12 C3/7AEA: 207311 JSR $1173 (put C3/0B12 in the queue) C3/7AED: 8A TXA C3/7AEE: 8560 STA $60 C3/7AF0: 8B PHB C3/7AF1: A97E LDA #$7E C3/7AF3: 48 PHA C3/7AF4: AB PLB C3/7AF5: C220 REP #$20 (16 bit memory/accum.) C3/7AF7: A91A00 LDA #$001A C3/7AFA: 9DCA33 STA $33CA,X C3/7AFD: E220 SEP #$20 (8 bit memory/accum.) C3/7AFF: 7B TDC C3/7B00: A528 LDA $28 C3/7B02: 200E7B JSR $7B0E C3/7B05: 7B TDC C3/7B06: 9D4B34 STA $344B,X C3/7B09: 200612 JSR $1206 C3/7B0C: AB PLB C3/7B0D: 60 RTS
C3/7B0E unknow
C3/7B0E: DA PHX C3/7B0F: DA PHX C3/7B10: 0A ASL A C3/7B11: AA TAX C3/7B12: C220 REP #$20 (16 bit memory/accum.) C3/7B14: BFE90AC3 LDA $C30AE9,X C3/7B18: 7A PLY C3/7B19: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/7B1C: E220 SEP #$20 (8 bit memory/accum.) C3/7B1E: A9C3 LDA #$C3 C3/7B20: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/7B23: FA PLX C3/7B24: 60 RTS
C3/7B25 unknow
DP $26 is #$30, #$31, or #$32 C3/7B25: 7B TDC C3/7B26: BF899D7E LDA $7E9D89,X (X will be #$0060, #$0062, or #$0064 coming in. is that safe?) C3/7B2A: 85E1 STA $E1 C3/7B2C: 3013 BMI $7B41 C3/7B2E: DA PHX C3/7B2F: AA TAX C3/7B30: BD5018 LDA $1850,X (setup of current parties) C3/7B33: 2918 AND #$18 C3/7B35: 4A LSR A C3/7B36: 4A LSR A C3/7B37: 4A LSR A C3/7B38: A8 TAY C3/7B39: A5E1 LDA $E1 C3/7B3B: 97E7 STA [$E7],Y C3/7B3D: FA PLX C3/7B3E: E8 INX C3/7B3F: 80E4 BRA $7B25 C3/7B41: 60 RTS
C3/7B42 code for jump table
C3/7B42: AA TAX C3/7B43: 7C467B JMP ($7B46,X) C3/7B46: 527B C3/7B48: 667B C3/7B4A: 727B C3/7B4C: 7E7B C3/7B4E: 8D7B C3/7B50: A17B
C3/7B52 unknow
C3/7B52: A901 LDA #$01 C3/7B54: 0447 TSB $47 C3/7B56: A62D LDX $2D C3/7B58: A903 LDA #$03 C3/7B5A: 9D4936 STA $3649,X (execute the fourth entry in this queue's jump table) C3/7B5D: 200612 JSR $1206 C3/7B60: 7B TDC C3/7B61: 20AE7B JSR $7BAE C3/7B64: 8018 BRA $7B7E
C3/7B66 unknow
C3/7B66: A62D LDX $2D C3/7B68: A904 LDA #$04 C3/7B6A: 9D4936 STA $3649,X (execute the fifth entry in this queue's jump table) C3/7B6D: 200612 JSR $1206 C3/7B70: 801B BRA $7B8D
C3/7B72 unknow
C3/7B72: A62D LDX $2D C3/7B74: A905 LDA #$05 C3/7B76: 9D4936 STA $3649,X (execute the sixth entry in this queue's jump table) C3/7B79: 200612 JSR $1206 C3/7B7C: 8023 BRA $7BA1
C3/7B7E unknow
C3/7B7E: A547 LDA $47 C3/7B80: 2901 AND #$01 C3/7B82: F007 BEQ $7B8B C3/7B84: A62D LDX $2D C3/7B86: 202112 JSR $1221 (draw the sprites!) C3/7B89: 38 SEC C3/7B8A: 60 RTS C3/7B8B: 18 CLC C3/7B8C: 60 RTS
C3/7B8D unknow
C3/7B8D: A547 LDA $47 C3/7B8F: 2902 AND #$02 C3/7B91: F007 BEQ $7B9A C3/7B93: A62D LDX $2D C3/7B95: 202112 JSR $1221 (draw the sprites!) C3/7B98: 18 CLC C3/7B99: 60 RTS C3/7B9A: A62D LDX $2D C3/7B9C: 202112 JSR $1221 (draw the sprites!) C3/7B9F: 38 SEC C3/7BA0: 60 RTS
C3/7BA1 unknow
C3/7BA1: A547 LDA $47 C3/7BA3: 2904 AND #$04 C3/7BA5: F0F3 BEQ $7B9A C3/7BA7: A62D LDX $2D C3/7BA9: 202112 JSR $1221 (draw the sprites!) C3/7BAC: 18 CLC C3/7BAD: 60 RTS
C3/7BAE unknow
C3/7BAE: 85E6 STA $E6 C3/7BB0: AD0002 LDA $0200 C3/7BB3: C904 CMP #$04 C3/7BB5: D057 BNE $7C0E C3/7BB7: A62D LDX $2D C3/7BB9: 7B TDC C3/7BBA: BDC935 LDA $35C9,X C3/7BBD: 304F BMI $7C0E C3/7BBF: 0A ASL A C3/7BC0: C220 REP #$20 (16 bit memory/accum.) C3/7BC2: AA TAX C3/7BC3: BF0F7CC3 LDA $C37C0F,X C3/7BC7: 85E7 STA $E7 C3/7BC9: AD0202 LDA $0202 C3/7BCC: 25E7 AND $E7 C3/7BCE: E220 SEP #$20 (8 bit memory/accum.) C3/7BD0: F03C BEQ $7C0E C3/7BD2: A900 LDA #$00 C3/7BD4: 48 PHA C3/7BD5: AB PLB C3/7BD6: A5E6 LDA $E6 C3/7BD8: D005 BNE $7BDF C3/7BDA: A0427B LDY #$7B42 C3/7BDD: 8003 BRA $7BE2 C3/7BDF: A05F7A LDY #$7A5F C3/7BE2: A903 LDA #$03 C3/7BE4: 207311 JSR $1173 (put C3/7A5F in the queue) C3/7BE7: A97E LDA #$7E C3/7BE9: 48 PHA C3/7BEA: AB PLB C3/7BEB: A9FF LDA #$FF C3/7BED: 9DC935 STA $35C9,X C3/7BF0: BC4A37 LDY $374A,X C3/7BF3: C220 REP #$20 (16 bit memory/accum.) C3/7BF5: B9CA33 LDA $33CA,Y C3/7BF8: 9DCA33 STA $33CA,X C3/7BFB: B94A34 LDA $344A,Y C3/7BFE: 9D4A34 STA $344A,X C3/7C01: A9A9EB LDA #$EBA9 C3/7C04: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/7C07: E220 SEP #$20 (8 bit memory/accum.) C3/7C09: A9D8 LDA #$D8 C3/7C0B: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/7C0E: 60 RTS
C3/7C0F data
C3/7C0F: 0100 C3/7C11: 0200 C3/7C13: 0400 C3/7C15: 0800 C3/7C17: 1000 C3/7C19: 2000 C3/7C1B: 4000 C3/7C1D: 8000 C3/7C1F: 0001 C3/7C21: 0002 C3/7C23: 0004 C3/7C25: 0008 C3/7C27: 0010 C3/7C29: 0020 C3/7C2B: 0040 C3/7C2D: 0080
C3/7C2F unknow
C3/7C2F: A00026 LDY #$2600 C3/7C32: 841B STY $1B C3/7C34: A02003 LDY #$0320 C3/7C37: 8419 STY $19 C3/7C39: 7B TDC C3/7C3A: A54B LDA $4B C3/7C3C: 18 CLC C3/7C3D: 654A ADC $4A C3/7C3F: 655A ADC $5A C3/7C41: AA TAX C3/7C42: BF899D7E LDA $7E9D89,X C3/7C46: 305C BMI $7CA4 C3/7C48: 8024 BRA $7C6E C3/7C4A: A00026 LDY #$2600 C3/7C4D: 841B STY $1B C3/7C4F: 800E BRA $7C5F C3/7C51: A00028 LDY #$2800 C3/7C54: 841B STY $1B C3/7C56: 8007 BRA $7C5F C3/7C58: A00028 LDY #$2800 C3/7C5B: 841B STY $1B C3/7C5D: 8045 BRA $7CA4 C3/7C5F: A02003 LDY #$0320 C3/7C62: 8419 STY $19 C3/7C64: 7B TDC C3/7C65: A54B LDA $4B C3/7C67: AA TAX C3/7C68: BFA99D7E LDA $7E9DA9,X C3/7C6C: 3036 BMI $7CA4 C3/7C6E: 0A ASL A C3/7C6F: AA TAX C3/7C70: C220 REP #$20 (16 bit memory/accum.) C3/7C72: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/7C76: A8 TAY C3/7C77: 7B TDC C3/7C78: E220 SEP #$20 (8 bit memory/accum.) C3/7C7A: B91400 LDA $0014,Y (status byte 1) C3/7C7D: 2920 AND #$20 (does character have imp status?) C3/7C7F: F004 BEQ $7C85 (branch if not) C3/7C81: A90F LDA #$0F (set sprite ID to imp) C3/7C83: 800A BRA $7C8F C3/7C85: B90000 LDA $0000,Y (character ID) C3/7C88: C901 CMP #$01 (is character Locke?) C3/7C8A: F003 BEQ $7C8F (branch if so) C3/7C8C: B90100 LDA $0001,Y (sprite ID) C3/7C8F: C220 REP #$20 (16 bit memory/accum.) C3/7C91: 0A ASL A C3/7C92: AA TAX C3/7C93: BF1B6FC3 LDA $C36F1B,X C3/7C97: 18 CLC C3/7C98: 69001D ADC #$1D00 C3/7C9B: 851D STA $1D C3/7C9D: E220 SEP #$20 (8 bit memory/accum.) C3/7C9F: A9ED LDA #$ED C3/7CA1: 851F STA $1F C3/7CA3: 60 RTS
C3/7CA4 unknow
C3/7CA4: A0519F LDY #$9F51 C3/7CA7: 841D STY $1D C3/7CA9: A97E LDA #$7E C3/7CAB: 851F STA $1F C3/7CAD: 60 RTS
C3/7CAE unknow
C3/7CAE: A400 LDY $00 (Y = #$0000) C3/7CB0: 5A PHY C3/7CB1: 7B TDC (A = #$0000) C3/7CB2: A54B LDA $4B C3/7CB4: 18 CLC C3/7CB5: 654A ADC $4A C3/7CB7: 655A ADC $5A C3/7CB9: AA TAX C3/7CBA: BF899D7E LDA $7E9D89,X C3/7CBE: 1016 BPL $7CD6 C3/7CC0: 7B TDC (A = #$0000) C3/7CC1: 8013 BRA $7CD6 C3/7CC3: A400 LDY $00 (Y = #$0000) C3/7CC5: 8003 BRA $7CCA C3/7CC7: A02000 LDY #$0020 C3/7CCA: 5A PHY C3/7CCB: 7B TDC C3/7CCC: A54B LDA $4B C3/7CCE: AA TAX C3/7CCF: BFA99D7E LDA $7E9DA9,X C3/7CD3: 1001 BPL $7CD6 C3/7CD5: 7B TDC C3/7CD6: 0A ASL A C3/7CD7: AA TAX C3/7CD8: C220 REP #$20 (16 bit memory/accum.) C3/7CDA: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/7CDE: A8 TAY C3/7CDF: 7B TDC C3/7CE0: E220 SEP #$20 (8 bit memory/accum.) C3/7CE2: A910 LDA #$10 C3/7CE4: 85E3 STA $E3 C3/7CE6: B91400 LDA $0014,Y (status byte 1) C3/7CE9: 2920 AND #$20 (does character have imp status?) C3/7CEB: F004 BEQ $7CF1 (branch if not) C3/7CED: A90F LDA #$0F (set sprite ID to imp) C3/7CEF: 8003 BRA $7CF4 C3/7CF1: B90100 LDA $0001,Y (load sprite ID) C3/7CF4: AA TAX C3/7CF5: BF006FC3 LDA $C36F00,X C3/7CF9: C220 REP #$20 (16 bit memory/accum.) C3/7CFB: 0A ASL A C3/7CFC: 0A ASL A C3/7CFD: 0A ASL A C3/7CFE: 0A ASL A C3/7CFF: 0A ASL A C3/7D00: AA TAX C3/7D01: 7A PLY C3/7D02: C220 REP #$20 (16 bit memory/accum.) C3/7D04: DA PHX C3/7D05: BF6058ED LDA $ED5860,X (menu portrait palettes) C3/7D09: BB TYX C3/7D0A: 9F49317E STA $7E3149,X C3/7D0E: E220 SEP #$20 (8 bit memory/accum.) C3/7D10: FA PLX C3/7D11: E8 INX C3/7D12: E8 INX C3/7D13: C8 INY C3/7D14: C8 INY C3/7D15: C6E3 DEC $E3 C3/7D17: D0E9 BNE $7D02 C3/7D19: E220 SEP #$20 (8 bit memory/accum.) C3/7D1B: 60 RTS
C3/7D1C unknow
C3/7D1C: A02B7D LDY #$7D2B (from C3/0263, C3/0265, C3/0267, the massive jump table; $26 = #$44, #$45, #$46) C3/7D1F: 4CFE05 JMP $05FE
C3/7D22 unknow
C3/7D22: 20C781 JSR $81C7 C3/7D25: A0307D LDY #$7D30 C3/7D28: 4C4806 JMP $0648
C3/7D2B data: hotspot for item screen
C3/7D2B: 01 00 00 01 0A
C3/7D30 data: finger positions for item screen
C3/7D30: 085C C3/7D32: 0868 C3/7D34: 0874 C3/7D36: 0880 C3/7D38: 088C C3/7D3A: 0898 C3/7D3C: 08A4 C3/7D3E: 08B0 C3/7D40: 08BC C3/7D42: 08C8
C3/7D44 unknow
C3/7D44: A0537D LDY #$7D53 C3/7D47: 4CFE05 JMP $05FE
C3/7D4A unknow
C3/7D4A: 202D07 JSR $072D C3/7D4D: A0587D LDY #$7D58 C3/7D50: 4C4006 JMP $0640
C3/7D53 data: hotspot
C3/7D53: 00 00 00 02 0A
C3/7D58 data: finger positions
C3/7D58: 085C C3/7D5A: 785C C3/7D5C: 0868 C3/7D5E: 7868 C3/7D60: 0874 C3/7D62: 7874 C3/7D64: 0880 C3/7D66: 7880 C3/7D68: 088C C3/7D6A: 788C C3/7D6C: 0898 C3/7D6E: 7898 C3/7D70: 08A4 C3/7D72: 78A4 C3/7D74: 08B0 C3/7D76: 78B0 C3/7D78: 08BC C3/7D7A: 78BC C3/7D7C: 08C8 C3/7D7E: 78C8
C3/7D80 unknow
C3/7D80: A0987D LDY #$7D98 C3/7D83: 4CFE05 JMP $05FE
C3/7D86 unknow
C3/7D86: A09D7D LDY #$7D9D C3/7D89: 4C4006 JMP $0640
C3/7D8C unknow
C3/7D8C: 202D07 JSR $072D (determine current finger position to get to new position) C3/7D8F: 20867D JSR $7D86 (load finger positioning data) C3/7D92: A44D LDY $4D C3/7D94: 8C3402 STY $0234 C3/7D97: 60 RTS
C3/7D98 data: hotspot
C3/7D98: 01 00 00 03 01
C3/7D9D data: finger positions
C3/7D9D: 4016 (position for "USE") C3/7D9F: 6816 (position for "ARRANGE") C3/7DA1: B016 (position for "RARE")
C3/7DA3 item screen setup
C3/7DA3: A901 LDA #$01 (from C3/1B0B, C3/1B52) C3/7DA5: 8D0721 STA $2107 C3/7DA8: A0237E LDY #$7E23 C3/7DAB: 204103 JSR $0341 (draw a window) C3/7DAE: A0277E LDY #$7E27 C3/7DB1: 204103 JSR $0341 (draw a window) C3/7DB4: A0177E LDY #$7E17 C3/7DB7: 204103 JSR $0341 (draw a window) C3/7DBA: A0137E LDY #$7E13 C3/7DBD: 204103 JSR $0341 (draw a window) C3/7DC0: A01B7E LDY #$7E1B C3/7DC3: 204103 JSR $0341 (draw a window) C3/7DC6: A01F7E LDY #$7E1F C3/7DC9: 204103 JSR $0341 (draw a window) C3/7DCC: 20520E JSR $0E52 C3/7DCF: 203C6A JSR $6A3C C3/7DD2: 20416A JSR $6A41 C3/7DD5: 20466A JSR $6A46 C3/7DD8: 204B6A JSR $6A4B C3/7DDB: A92C LDA #$2C C3/7DDD: 8529 STA $29 (set text color to blue) C3/7DDF: A0168D LDY #$8D16 C3/7DE2: 20F902 JSR $02F9 (display "Item") C3/7DE5: A920 LDA #$20 C3/7DE7: 8529 STA $29 (set text color to white) C3/7DE9: A2108D LDX #$8D10 C3/7DEC: A00600 LDY #$0006 C3/7DEF: 20BA69 JSR $69BA (display "USE", "ARRANGE", "RARE") C3/7DF2: 203DA7 JSR $A73D C3/7DF5: 20A9A9 JSR $A9A9 C3/7DF8: 20196A JSR $6A19 C3/7DFB: 200D7E JSR $7E0D C3/7DFE: 20F182 JSR $82F1 C3/7E01: 20280E JSR $0E28 C3/7E04: 20360E JSR $0E36 C3/7E07: 206E0E JSR $0E6E C3/7E0A: 4C7C0E JMP $0E7C C3/7E0D: 20156A JSR $6A15 C3/7E10: 4C887F JMP $7F88
C3/7E13 data: windows for item screen
C3/7E13: 8B580402 C3/7E17: 97581602 C3/7E1B: 8B591C03 C3/7E1F: CB5A1C0F C3/7E23: AD600D18 C3/7E27: 85580118
C3/7E2B unknow
C3/7E2B: A902 LDA #$02 (from C3/1B0E, C3/B48A) C3/7E2D: 8D5043 STA $4350 C3/7E30: A912 LDA #$12 C3/7E32: 8D5143 STA $4351 (register address becomes $2112) C3/7E35: A0577F LDY #$7F57 C3/7E38: 8C5243 STY $4352 (set address) C3/7E3B: A9C3 LDA #$C3 C3/7E3D: 8D5443 STA $4354 (set bank, C3/7F57) C3/7E40: A9C3 LDA #$C3 C3/7E42: 8D5743 STA $4357 C3/7E45: A920 LDA #$20 C3/7E47: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/7E49: 20957E JSR $7E95 C3/7E4C: A600 LDX $00 C3/7E4E: BFDA7EC3 LDA $C37EDA,X C3/7E52: 9F099A7E STA $7E9A09,X C3/7E56: E8 INX C3/7E57: E00D00 CPX #$000D C3/7E5A: D0F2 BNE $7E4E C3/7E5C: A902 LDA #$02 C3/7E5E: 8D6043 STA $4360 C3/7E61: A90D LDA #$0D C3/7E63: 8D6143 STA $4361 (register address becomes $210D) C3/7E66: A0099A LDY #$9A09 C3/7E69: 8C6243 STY $4362 (set address) C3/7E6C: A97E LDA #$7E C3/7E6E: 8D6443 STA $4364 (set bank, 7E/9A09) C3/7E71: A97E LDA #$7E C3/7E73: 8D6743 STA $4367 C3/7E76: A902 LDA #$02 C3/7E78: 8D7043 STA $4370 C3/7E7B: A90E LDA #$0E C3/7E7D: 8D7143 STA $4371 (register address becomes $210E) C3/7E80: A04998 LDY #$9849 C3/7E83: 8C7243 STY $4372 (set address) C3/7E86: A97E LDA #$7E C3/7E88: 8D7443 STA $4374 (set bank, 7E/9849) C3/7E8B: A97E LDA #$7E C3/7E8D: 8D7743 STA $4377 C3/7E90: A9C0 LDA #$C0 C3/7E92: 0443 TSB $43 (eventually enable channels 6 and 7 of HDMA) C3/7E94: 60 RTS
C3/7E95 unknow
C3/7E95: A600 LDX $00 (from C3/1FD0, C3/7E49) C3/7E97: BFE77EC3 LDA $C37EE7,X C3/7E9B: 9F49987E STA $7E9849,X C3/7E9F: E8 INX C3/7EA0: E01200 CPX #$0012 C3/7EA3: D0F2 BNE $7E97 C3/7EA5: BFE77EC3 LDA $C37EE7,X C3/7EA9: 9F49987E STA $7E9849,X C3/7EAD: E8 INX C3/7EAE: 7B TDC C3/7EAF: A549 LDA $49 C3/7EB1: 0A ASL A C3/7EB2: 0A ASL A C3/7EB3: 0A ASL A C3/7EB4: 0A ASL A C3/7EB5: 29FF AND #$FF C3/7EB7: C220 REP #$20 (16 bit memory/accum.) C3/7EB9: 18 CLC C3/7EBA: 7FE77EC3 ADC $C37EE7,X C3/7EBE: 9F49987E STA $7E9849,X C3/7EC2: E220 SEP #$20 (8 bit memory/accum.) C3/7EC4: E8 INX C3/7EC5: E8 INX C3/7EC6: E06C00 CPX #$006C C3/7EC9: D0DA BNE $7EA5 C3/7ECB: BFE77EC3 LDA $C37EE7,X C3/7ECF: 9F49987E STA $7E9849,X C3/7ED3: E8 INX C3/7ED4: E07000 CPX #$0070 C3/7ED7: D0F2 BNE $7ECB C3/7ED9: 60 RTS
C3/7EDA data: hdma transfer table
C3/7EDA: 280001 (40 scanlines, ?? pixel shift) C3/7EDD: 2F0001 (47 scanlines, ?? pixel shift) C3/7EE0: 780000 (120 scanlines, 0 pixel shift) C3/7EE3: 1E0001 (30 scanlines, ?? pixel shift, 237 scanlines total) C3/7EE6: 00 (end)
C3/7EE7 data
C3/7EE7: 2780 C3/7EE9: 0008 C3/7EEB: 0000 C3/7EED: 0C04 C3/7EEF: 000C C3/7EF1: 0800 C3/7EF3: 0880 C3/7EF5: 0008 C3/7EF7: 0000
C3/7EF9 unknow
C3/7EF9: 04AC TSB $AC C3/7EFB: FF04ACFF SBC $FFAC04,X C3/7EFF: 04AC TSB $AC C3/7F01: FF04B0FF SBC $FFB004,X C3/7F05: 04B0 TSB $B0 C3/7F07: FF04B0FF SBC $FFB004,X C3/7F0B: 04B4 TSB $B4 C3/7F0D: FF04B4FF SBC $FFB404,X C3/7F11: 04B4 TSB $B4 C3/7F13: FF04B8FF SBC $FFB804,X C3/7F17: 04B8 TSB $B8 C3/7F19: FF04B8FF SBC $FFB804,X C3/7F1D: 04BC TSB $BC C3/7F1F: FF04BCFF SBC $FFBC04,X C3/7F23: 04BC TSB $BC C3/7F25: FF04C0FF SBC $FFC004,X C3/7F29: 04C0 TSB $C0 C3/7F2B: FF04C0FF SBC $FFC004,X C3/7F2F: 04C4 TSB $C4 C3/7F31: FF04C4FF SBC $FFC404,X C3/7F35: 04C4 TSB $C4 C3/7F37: FF04C8FF SBC $FFC804,X C3/7F3B: 04C8 TSB $C8 C3/7F3D: FF04C8FF SBC $FFC804,X C3/7F41: 04CC TSB $CC C3/7F43: FF04CCFF SBC $FFCC04,X C3/7F47: 04CC TSB $CC C3/7F49: FF04D0FF SBC $FFD004,X C3/7F4D: 04D0 TSB $D0 C3/7F4F: FF04D0FF SBC $FFD004,X C3/7F53: 1E0000 ASL $0000,X C3/7F56: 00
C3/7F57 data: hdma transfer table
C3/7F57: 2F0000 (47 scanlines, 0 pixel shift) C3/7F5A: 0C0400 (12 scanlines, 4 pixel shift) C3/7F5D: 0C0800 (12 scanlines, 8 pixel shift) C3/7F60: 0C0C00 (12 scanlines, 12 pixel shift) C3/7F63: 0C1000 (12 scanlines, 16 pixel shift) C3/7F66: 0C1400 (12 scanlines, 20 pixel shift) C3/7F69: 0C1800 (12 scanlines, 24 pixel shift) C3/7F6C: 0C1C00 (12 scanlines, 28 pixel shift) C3/7F6F: 0C2000 (12 scanlines, 32 pixel shift) C3/7F72: 0C2400 (12 scanlines, 36 pixel shift) C3/7F75: 0C2800 (12 scanlines, 40 pixel shift) C3/7F78: 0C2C00 (12 scanlines, 44 pixel shift) C3/7F7B: 0C3000 (12 scanlines, 48 pixel shift) C3/7F7E: 0C3400 (12 scanlines, 52 pixel shift) C3/7F81: 0C3800 (12 scanlines, 56 pixel shift) C3/7F84: 0C3C00 (12 scanlines, 60 pixel shift, 227 scanlines) C3/7F87: 00 (end)
C3/7F88 unknow
C3/7F88: 20F783 JSR $83F7 C3/7F8B: A00A00 LDY #$000A C3/7F8E: 5A PHY C3/7F8F: 20A17F JSR $7FA1 C3/7F92: E6E5 INC $E5 C3/7F94: A5E6 LDA $E6 C3/7F96: 1A INC A C3/7F97: 1A INC A C3/7F98: 291F AND #$1F C3/7F9A: 85E6 STA $E6 C3/7F9C: 7A PLY C3/7F9D: 88 DEY C3/7F9E: D0EE BNE $7F8E C3/7FA0: 60 RTS
C3/7FA1 unknow
C3/7FA1: 7B TDC C3/7FA2: A5E5 LDA $E5 C3/7FA4: A8 TAY C3/7FA5: 204580 JSR $8045 C3/7FA8: B96919 LDA $1969,Y (Quantity of items) C3/7FAB: 20E004 JSR $04E0 C3/7FAE: A5E6 LDA $E6 C3/7FB0: 1A INC A C3/7FB1: A21100 LDX #$0011 C3/7FB4: 209F80 JSR $809F C3/7FB7: 20B604 JSR $04B6 C3/7FBA: A5E6 LDA $E6 C3/7FBC: 1A INC A C3/7FBD: A20300 LDX #$0003 C3/7FC0: 209F80 JSR $809F C3/7FC3: C220 REP #$20 (16 bit memory/accum.) C3/7FC5: 8A TXA C3/7FC6: 8F899E7E STA $7E9E89 C3/7FCA: E220 SEP #$20 (8 bit memory/accum.) C3/7FCC: 7B TDC C3/7FCD: A5E5 LDA $E5 C3/7FCF: A8 TAY C3/7FD0: 20B980 JSR $80B9 C3/7FD3: 20D97F JSR $7FD9 C3/7FD6: 4CE67F JMP $7FE6
C3/7FD9 generic text drawing
Like C3/69BA, this is a generalized text drawing routine. This one is much simpler though. All it does is set the bank and location ($7E9E89) and then jump to fetch the text. C3/7FD9: A0899E LDY #$9E89 C3/7FDC: 84E7 STY $E7 C3/7FDE: A97E LDA #$7E C3/7FE0: 85E9 STA $E9 (JMP $02FD would work here) C3/7FE2: 20FF02 JSR $02FF C3/7FE5: 60 RTS
C3/7FE6 unknow
C3/7FE6: C220 REP #$20 (16 bit memory/accum.) C3/7FE8: AF899E7E LDA $7E9E89 C3/7FEC: 18 CLC C3/7FED: 692400 ADC #$0024 C3/7FF0: 8F899E7E STA $7E9E89 C3/7FF4: E220 SEP #$20 (8 bit memory/accum.) C3/7FF6: 7B TDC C3/7FF7: AF8B9E7E LDA $7E9E8B (get the item's icon [leading character]) C3/7FFB: C9FF CMP #$FF (is it null? this indicates a plain Item.) C3/7FFD: F02D BEQ $802C (branch if so, and just display blank spaces for the item type.) C3/7FFF: 38 SEC C3/8000: E9D8 SBC #$D8 (otherwise, put icon index - D8h into A) C3/8002: 85E0 STA $E0 (save our new relative index) C3/8004: 0A ASL A C3/8005: 0A ASL A C3/8006: 85E2 STA $E2 (save relative index * 4) C3/8008: A5E0 LDA $E0 (get relative index again) C3/800A: 0A ASL A (multiply it by 2) C3/800B: 18 CLC C3/800C: 65E2 ADC $E2 (add it to relative index * 4) C3/800E: 65E0 ADC $E0 (and add that to relative index. this gives us relative index * 7 in A.) C3/8010: AA TAX (copy into X so we can address data) C3/8011: A08B9E LDY #$9E8B C3/8014: 8C8121 STY $2181 (output icon to something WRAM-related) C3/8017: A00700 LDY #$0007 (Indirectly says that below is 7 chars long) C3/801A: BF006FD2 LDA $D26F00,X (get character of item type name) C3/801E: 8D8021 STA $2180 (output it to WRAM) C3/8021: E8 INX (point to next character) C3/8022: 88 DEY C3/8023: D0F5 BNE $801A (loop 7 times, as there are 7 characters in an item type name.) C3/8025: 7B TDC C3/8026: 8D8021 STA $2180 C3/8029: 4CD97F JMP $7FD9