Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Final Fantasy VI/ROM map/Assembly C37: Difference between revisions
< Final Fantasy VI | ROM map
Jump to navigation
Jump to search
(assembly C37) |
(clean up) |
||
Line 36: | Line 36: | ||
C3/7049: 38 SEC | C3/7049: 38 SEC | ||
C3/704A: 60 RTS | C3/704A: 60 RTS | ||
==C3/704B blank sram files== | |||
Blank all 3 SRAM files, plus the padded $200 bytes after that | Blank all 3 SRAM files, plus the padded $200 bytes after that | ||
C3/704B: 8B PHB | C3/704B: 8B PHB | ||
Line 55: | Line 55: | ||
C3/7066: AB PLB | C3/7066: AB PLB | ||
C3/7067: 60 RTS | C3/7067: 60 RTS | ||
==C3/7068 unknow== | |||
C3/7068: A20000 LDX #$0000 | C3/7068: A20000 LDX #$0000 | ||
C3/706B: 9E2B02 STZ $022B,X | C3/706B: 9E2B02 STZ $022B,X | ||
Line 67: | Line 67: | ||
C3/707F: 8D3D02 STA $023D | C3/707F: 8D3D02 STA $023D | ||
C3/7082: 60 RTS | C3/7082: 60 RTS | ||
==C3/7083 unknow== | |||
C3/7083: C220 REP #$20 (16 bit memory/accum.) | C3/7083: C220 REP #$20 (16 bit memory/accum.) | ||
C3/7085: A91BE4 LDA #$E41B | C3/7085: A91BE4 LDA #$E41B | ||
Line 107: | Line 107: | ||
C3/70E3: 20BC6B JSR $6BBC (JMP fool!) | C3/70E3: 20BC6B JSR $6BBC (JMP fool!) | ||
C3/70E6: 60 RTS | C3/70E6: 60 RTS | ||
==C3/70E7:initiate party select screen== | ==C3/70E7:initiate party select screen== | ||
C3/70E7 20 FC 70 JSR $70FC screen transition? | C3/70E7 20 FC 70 JSR $70FC screen transition? | ||
Line 117: | Line 116: | ||
C3/70F6 20 8B 74 JSR $748B load finger positions data | C3/70F6 20 8B 74 JSR $748B load finger positions data | ||
C3/70F9 4C 14 71 JMP $7114 | C3/70F9 4C 14 71 JMP $7114 | ||
==C3/70FC | ==C3/70FC unknow== | ||
C3/70FC: 202F35 JSR $352F (fade out screen, disable H/DMA) | C3/70FC: 202F35 JSR $352F (fade out screen, disable H/DMA) | ||
C3/70FF: 200469 JSR $6904 | C3/70FF: 200469 JSR $6904 | ||
Line 129: | Line 128: | ||
C3/7111: 0447 TSB $47 | C3/7111: 0447 TSB $47 | ||
C3/7113: 60 RTS | C3/7113: 60 RTS | ||
==C3/7114 | ==C3/7114 unknow== | ||
C3/7114: 20B007 JSR $07B0 (finger OAM initiating) | C3/7114: 20B007 JSR $07B0 (finger OAM initiating) | ||
C3/7117: 20C575 JSR $75C5 | C3/7117: 20C575 JSR $75C5 | ||
Line 141: | Line 140: | ||
C3/712C: 8526 STA $26 | C3/712C: 8526 STA $26 | ||
C3/712E: 4C4135 JMP $3541 | C3/712E: 4C4135 JMP $3541 | ||
==C3/7131 returning to party selection screen from status menu== | |||
DP $26 is #$7D | DP $26 is #$7D | ||
C3/7131: 20FC70 JSR $70FC (from C3/02D5) | C3/7131: 20FC70 JSR $70FC (from C3/02D5) | ||
C3/7134: A55D LDA $5D | C3/7134: A55D LDA $5D | ||
Line 201: | Line 200: | ||
C3/71A5: 205D30 JSR $305D (mosaic effect) | C3/71A5: 205D30 JSR $305D (mosaic effect) | ||
C3/71A8: 60 RTS | C3/71A8: 60 RTS | ||
==C3/71A9 unknow== | |||
C3/71A9: A509 LDA $09 | C3/71A9: A509 LDA $09 | ||
C3/71AB: 8910 BIT #$10 (did you press start?) | C3/71AB: 8910 BIT #$10 (did you press start?) | ||
Line 210: | Line 209: | ||
C3/71B5: 209672 JSR $7296 | C3/71B5: 209672 JSR $7296 | ||
C3/71B8: 60 RTS | C3/71B8: 60 RTS | ||
==C3/71B9 unknow== | |||
C3/71B9: 20B875 JSR $75B8 | C3/71B9: 20B875 JSR $75B8 | ||
C3/71BC: A50B LDA $0B | C3/71BC: A50B LDA $0B | ||
Line 230: | Line 229: | ||
C3/71DC: 18 CLC | C3/71DC: 18 CLC | ||
C3/71DD: 60 RTS | C3/71DD: 60 RTS | ||
==C3/71DE unknow== | |||
C3/71DE: A50B LDA $0B | C3/71DE: A50B LDA $0B | ||
C3/71E0: 8908 BIT #$08 | C3/71E0: 8908 BIT #$08 | ||
Line 250: | Line 249: | ||
C3/7204: 18 CLC | C3/7204: 18 CLC | ||
C3/7205: 60 RTS | C3/7205: 60 RTS | ||
==C3/7206 unknow== | |||
C3/7206: 201574 JSR $7415 | C3/7206: 201574 JSR $7415 | ||
C3/7209: 38 SEC | C3/7209: 38 SEC | ||
C3/720A: 60 RTS | C3/720A: 60 RTS | ||
C3/720B: 60 RTS | C3/720B: 60 RTS | ||
==C3/720C:selecting a character - party select screen== | ==C3/720C:selecting a character - party select screen== | ||
Line 335: | Line 333: | ||
C3/7292: 205D30 JSR $305D (mosiac effect) | C3/7292: 205D30 JSR $305D (mosiac effect) | ||
C3/7295: 60 RTS | C3/7295: 60 RTS | ||
==C3/7296 unknow== | |||
C3/7296: 7B TDC | C3/7296: 7B TDC | ||
C3/7297: AA TAX | C3/7297: AA TAX | ||
Line 363: | Line 361: | ||
C3/72C8: 8526 STA $26 (execute at C3/79F0) | C3/72C8: 8526 STA $26 (execute at C3/79F0) | ||
C3/72CA: 60 RTS | C3/72CA: 60 RTS | ||
==C3/72CB unknow== | |||
C3/72CB: 20C00E JSR $0EC0 (makes the buzzer sound) | C3/72CB: 20C00E JSR $0EC0 (makes the buzzer sound) | ||
C3/72CE: A920 LDA #$20 | C3/72CE: A920 LDA #$20 | ||
Line 383: | Line 381: | ||
C3/72F5: 8526 STA $26 (execute at C3/7A87) | C3/72F5: 8526 STA $26 (execute at C3/7A87) | ||
C3/72F7: 60 RTS | C3/72F7: 60 RTS | ||
==C3/72F8 | ==C3/72F8 unknow== | ||
offset for character A | offset for character A | ||
C3/72F8 7B TDC null A | C3/72F8 7B TDC null A | ||
Line 486: | Line 484: | ||
C3/73AA 9F 89 9D 7E STA $7E9D89,X character index for B | C3/73AA 9F 89 9D 7E STA $7E9D89,X character index for B | ||
C3/73AE 60 RTS | C3/73AE 60 RTS | ||
==C3/73AF | ==C3/73AF data== | ||
C3/73AF: 40 | C3/73AF: 40 | ||
C3/73B0: 40 | C3/73B0: 40 | ||
Line 532: | Line 529: | ||
C3/73D9: 50 | C3/73D9: 50 | ||
C3/73DA: 58 | C3/73DA: 58 | ||
==C3/73DB unknow== | |||
C3/73DB: A54D LDA $4D (from C3/7153, C3/71D6) | C3/73DB: A54D LDA $4D (from C3/7153, C3/71D6) | ||
C3/73DD: 855E STA $5E | C3/73DD: 855E STA $5E | ||
Line 544: | Line 541: | ||
C3/73EF: 203274 JSR $7432 | C3/73EF: 203274 JSR $7432 | ||
C3/73F2: 4CB874 JMP $74B8 (finger positioning data for 3 party setup) | 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/73F5: 209174 JSR $7491 (hotspot data for 1 party setup) | ||
C3/73F8: A55E LDA $5E | C3/73F8: A55E LDA $5E | ||
Line 552: | Line 549: | ||
C3/7400: 854D STA $4D | C3/7400: 854D STA $4D | ||
C3/7402: 4C9A74 JMP $749A (finger positioning data for 1 party setup) | 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/7405: 20A074 JSR $74A0 (hotspot data for 2 party setup) | ||
C3/7408: A55E LDA $5E | C3/7408: A55E LDA $5E | ||
Line 560: | Line 557: | ||
C3/7410: 854D STA $4D | C3/7410: 854D STA $4D | ||
C3/7412: 4CA974 JMP $74A9 (finger positioning data for 2 party setup) | C3/7412: 4CA974 JMP $74A9 (finger positioning data for 2 party setup) | ||
==C3/7415 unknow== | |||
C3/7415: A54A LDA $4A | 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/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) | ||
Line 576: | Line 573: | ||
C3/742F: 4C8874 JMP $7488 | C3/742F: 4C8874 JMP $7488 | ||
==C3/7432 unknow== | |||
C3/7432: A55E LDA $5E | C3/7432: A55E LDA $5E | ||
C3/7434: A600 LDX $00 | C3/7434: A600 LDX $00 | ||
Line 586: | Line 583: | ||
C3/7441: D0F3 BNE $7436 | C3/7441: D0F3 BNE $7436 | ||
C3/7443: 60 RTS | C3/7443: 60 RTS | ||
==C3/7444 unknow== | |||
C3/7444: E8 INX | C3/7444: E8 INX | ||
C3/7445: BF6674C3 LDA $C37466,X | C3/7445: BF6674C3 LDA $C37466,X | ||
C3/7449: 854D STA $4D | C3/7449: 854D STA $4D | ||
C3/744B: 60 RTS | C3/744B: 60 RTS | ||
==C3/744C unknow== | |||
C3/744C: A55E LDA $5E | C3/744C: A55E LDA $5E | ||
C3/744E: A600 LDX $00 | C3/744E: A600 LDX $00 | ||
Line 601: | Line 598: | ||
C3/745B: D0F3 BNE $7450 | C3/745B: D0F3 BNE $7450 | ||
C3/745D: 60 RTS | C3/745D: 60 RTS | ||
==C3/745E unknow== | |||
C3/745E: E8 INX | C3/745E: E8 INX | ||
C3/745F: BF7674C3 LDA $C37476,X | C3/745F: BF7674C3 LDA $C37476,X | ||
C3/7463: 854D STA $4D | C3/7463: 854D STA $4D | ||
C3/7465: 60 RTS | C3/7465: 60 RTS | ||
==C3/7466 unknow== | |||
C3/7466: 0000 | C3/7466: 0000 | ||
C3/7468: 0101 | C3/7468: 0101 | ||
Line 615: | Line 612: | ||
C3/7472: 0604 | C3/7472: 0604 | ||
C3/7474: 0705 | C3/7474: 0705 | ||
==C3/7476 unknow== | |||
C3/7476: 0000 | C3/7476: 0000 | ||
C3/7478: 0101 | C3/7478: 0101 | ||
Line 622: | Line 619: | ||
C3/747E: 0406 | C3/747E: 0406 | ||
C3/7480: 0507 | C3/7480: 0507 | ||
==C3/7482 unknow== | |||
C3/7482: A0BE74 LDY #$74BE | C3/7482: A0BE74 LDY #$74BE | ||
C3/7485: 4CFE05 JMP $05FE (hotspot data for group of characters in select screen) | C3/7485: 4CFE05 JMP $05FE (hotspot data for group of characters in select screen) | ||
==C3/7488 unknow== | |||
C3/7488: 202D07 JSR $072D | C3/7488: 202D07 JSR $072D | ||
C3/748B: A0C374 LDY #$74C3 | C3/748B: A0C374 LDY #$74C3 | ||
C3/748E: 4C4006 JMP $0640 (finger positioning data for group of characters in select screen) | C3/748E: 4C4006 JMP $0640 (finger positioning data for group of characters in select screen) | ||
==C3/7491 unknow== | |||
C3/7491: A0E374 LDY #$74E3 | C3/7491: A0E374 LDY #$74E3 | ||
C3/7494: 4CFE05 JMP $05FE (hotspot data for 1 party window setup) | C3/7494: 4CFE05 JMP $05FE (hotspot data for 1 party window setup) | ||
==C3/7497 unknow== | |||
C3/7497: 202D07 JSR $072D | C3/7497: 202D07 JSR $072D | ||
C3/749A: A0E874 LDY #$74E8 | C3/749A: A0E874 LDY #$74E8 | ||
C3/749D: 4C3706 JMP $0637 (finger positioning data for 1 party window setup) | C3/749D: 4C3706 JMP $0637 (finger positioning data for 1 party window setup) | ||
==C3/74A0 unknow== | |||
C3/74A0: A0F074 LDY #$74F0 | C3/74A0: A0F074 LDY #$74F0 | ||
C3/74A3: 4CFE05 JMP $05FE (hotspot data for 2 party window setup) | C3/74A3: 4CFE05 JMP $05FE (hotspot data for 2 party window setup) | ||
==C3/74A6 unknow== | |||
C3/74A6: 202D07 JSR $072D | C3/74A6: 202D07 JSR $072D | ||
C3/74A9: A0F574 LDY #$74F5 | C3/74A9: A0F574 LDY #$74F5 | ||
C3/74AC: 4C3706 JMP $0637 (finger positioning data for 2 party window setup) | C3/74AC: 4C3706 JMP $0637 (finger positioning data for 2 party window setup) | ||
==C3/74AF unknow== | |||
C3/74AF: A00575 LDY #$7505 | C3/74AF: A00575 LDY #$7505 | ||
C3/74B2: 4CFE05 JMP $05FE (hotspot data for 3 party window setup) | C3/74B2: 4CFE05 JMP $05FE (hotspot data for 3 party window setup) | ||
==C3/74B5 unknow== | |||
C3/74B5: 202D07 JSR $072D | C3/74B5: 202D07 JSR $072D | ||
C3/74B8: A00A75 LDY #$750A | C3/74B8: A00A75 LDY #$750A | ||
C3/74BB: 4C3706 JMP $0637 (finger positioning data for 3 party window setup) | 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/74BE: 81 00 00 08 02 | ||
==C3/74C3 data: finger positions, group of characters== | |||
C3/74C3: 0864 | C3/74C3: 0864 | ||
C3/74C5: 2464 | C3/74C5: 2464 | ||
Line 663: | Line 658: | ||
C3/74CF: B064 | C3/74CF: B064 | ||
C3/74D1: CC64 | C3/74D1: CC64 | ||
==C3/74D3 unknow== | |||
C3/74D3: 0880 | C3/74D3: 0880 | ||
C3/74D5: 2480 | C3/74D5: 2480 | ||
Line 672: | Line 667: | ||
C3/74DF: B080 | C3/74DF: B080 | ||
C3/74E1: CC80 | C3/74E1: CC80 | ||
==C3/74E3 data: hotspot, 1 party== | |||
C3/74E3: 81 00 00 02 02 | C3/74E3: 81 00 00 02 02 | ||
==C3/74E8 data: finger position, 1 party== | |||
C3/74E8: 08A4 | C3/74E8: 08A4 | ||
C3/74EA: 28A4 | C3/74EA: 28A4 | ||
C3/74EC: 08C0 | C3/74EC: 08C0 | ||
C3/74EE: 28C0 | C3/74EE: 28C0 | ||
==C3/74F0 data: hotspot, 2 parties== | |||
C3/74F0: 81 00 00 04 02 | C3/74F0: 81 00 00 04 02 | ||
==C3/74F5 data: finger positions, 2 parties== | |||
C3/74F5: 08A4 | C3/74F5: 08A4 | ||
C3/74F7: 28A4 | C3/74F7: 28A4 | ||
C3/74F9: 58A4 | C3/74F9: 58A4 | ||
C3/74FB: 78A4 | C3/74FB: 78A4 | ||
C3/74FD: 08C0 | C3/74FD: 08C0 | ||
C3/74FF: 28C0 | C3/74FF: 28C0 | ||
C3/7501: 58C0 | C3/7501: 58C0 | ||
C3/7503: 78C0 | C3/7503: 78C0 | ||
==C3/7505 data: hotspot, 3 parties== | |||
C3/7505: 81 00 00 06 02 | C3/7505: 81 00 00 06 02 | ||
==C3/750A data: finger positions, 3 parties== | |||
C3/750A: 08A4 | C3/750A: 08A4 | ||
C3/750C: 28A4 | C3/750C: 28A4 | ||
C3/750E: 58A4 | C3/750E: 58A4 | ||
C3/7510: 78A4 | C3/7510: 78A4 | ||
C3/7512: A8A4 | C3/7512: A8A4 | ||
C3/7514: C8A4 | C3/7514: C8A4 | ||
C3/7516: 08C0 | C3/7516: 08C0 | ||
C3/7518: 28C0 | C3/7518: 28C0 | ||
C3/751A: 58C0 | C3/751A: 58C0 | ||
C3/751C: 78C0 | C3/751C: 78C0 | ||
C3/751E: A8C0 | C3/751E: A8C0 | ||
C3/7520: C8C0 | C3/7520: C8C0 | ||
==C3/7522 unknow== | |||
C3/7522: A0A075 LDY #$75A0 | C3/7522: A0A075 LDY #$75A0 | ||
C3/7525: 204103 JSR $0341 | C3/7525: 204103 JSR $0341 | ||
Line 742: | Line 722: | ||
C3/7559: 206275 JSR $7562 | C3/7559: 206275 JSR $7562 | ||
C3/755C: 4C280E JMP $0E28 | C3/755C: 4C280E JMP $0E28 | ||
C3/755F: 4C3C6A JMP $6A3C | C3/755F: 4C3C6A JMP $6A3C | ||
==C3/7562 unknow== | |||
C3/7562: A920 LDA #$20 | C3/7562: A920 LDA #$20 | ||
C3/7564: 8529 STA $29 (set text color to white) | C3/7564: 8529 STA $29 (set text color to white) | ||
Line 751: | Line 730: | ||
C3/756C: A22739 LDX #$3927 | C3/756C: A22739 LDX #$3927 | ||
C3/756F: 4CF775 JMP $75F7 | C3/756F: 4CF775 JMP $75F7 | ||
==C3/7572 unknow== | |||
C3/7572: 7B TDC | C3/7572: 7B TDC | ||
C3/7573: AD0102 LDA $0201 | C3/7573: AD0102 LDA $0201 | ||
Line 758: | Line 737: | ||
C3/7579: AA TAX | C3/7579: AA TAX | ||
C3/757A: 7C7D75 JMP ($757D,X) | C3/757A: 7C7D75 JMP ($757D,X) | ||
==C3/757D pointers== | |||
C3/757D: 0000 | C3/757D: 0000 | ||
C3/757F: 9175 | C3/757F: 9175 | ||
C3/7581: 8B75 | C3/7581: 8B75 | ||
C3/7583: 8575 | C3/7583: 8575 | ||
==C3/7585 unknow== | |||
C3/7585: A0B475 LDY #$75B4 | C3/7585: A0B475 LDY #$75B4 | ||
C3/7588: 204103 JSR $0341 (window that holds party 3) | C3/7588: 204103 JSR $0341 (window that holds party 3) | ||
Line 773: | Line 750: | ||
C3/7594: 204103 JSR $0341 (window that holds party 1) | C3/7594: 204103 JSR $0341 (window that holds party 1) | ||
C3/7597: 60 RTS | C3/7597: 60 RTS | ||
==C3/7598 data: window== | |||
C3/7598: 8B580602 | C3/7598: 8B580602 | ||
C3/759C: CB5C1C07 | C3/759C: CB5C1C07 | ||
Line 780: | Line 756: | ||
C3/75A4: 0B5B1C06 | C3/75A4: 0B5B1C06 | ||
C3/75A8: 9B581402 | C3/75A8: 9B581402 | ||
==C3/75AC data: window== | |||
C3/75AC: 0B5D0806 (party 1 window) | C3/75AC: 0B5D0806 (party 1 window) | ||
C3/75B0: 1F5D0806 (party 2 window) | C3/75B0: 1F5D0806 (party 2 window) | ||
C3/75B4: 335D0806 (party 3 window) | C3/75B4: 335D0806 (party 3 window) | ||
==C3/75B8 unknow== | |||
C3/75B8: A906 LDA #$06 | C3/75B8: A906 LDA #$06 | ||
C3/75BA: 0447 TSB $47 | C3/75BA: 0447 TSB $47 | ||
Line 791: | Line 766: | ||
C3/75BF: 20AE7C JSR $7CAE | C3/75BF: 20AE7C JSR $7CAE | ||
C3/75C1: 4C5379 JMP $7953 | C3/75C1: 4C5379 JMP $7953 | ||
==C3/75C4 unknow== | |||
C3/75C4: A902 LDA #$02 | C3/75C4: A902 LDA #$02 | ||
C3/75C7: 8D5043 STA $4350 | C3/75C7: 8D5043 STA $4350 | ||
Line 805: | Line 780: | ||
C3/75E1: 0443 TSB $43 (eventually enable channel 5 of HDMA) | C3/75E1: 0443 TSB $43 (eventually enable channel 5 of HDMA) | ||
C3/75E3: 60 RTS | C3/75E3: 60 RTS | ||
==C3/75E4 data: hdma transfer table== | |||
C3/75E4: 200200 | C3/75E4: 200200 | ||
C3/75E7: 080000 | C3/75E7: 080000 | ||
Line 814: | Line 788: | ||
C3/75F3: 0C1000 | C3/75F3: 0C1000 | ||
C3/75F6: 00 (end) | C3/75F6: 00 (end) | ||
==C3/75F7 unknow== | |||
C3/75F7: 7B TDC | C3/75F7: 7B TDC | ||
C3/75F8: AD0102 LDA $0201 | C3/75F8: AD0102 LDA $0201 | ||
Line 829: | Line 803: | ||
C3/760F: 20FF02 JSR $02FF | C3/760F: 20FF02 JSR $02FF | ||
C3/7612: 60 RTS | C3/7612: 60 RTS | ||
==C3/7613 unknow== | |||
C3/7613: A9FF LDA #$FF | C3/7613: A9FF LDA #$FF | ||
C3/7615: A600 LDX $00 | C3/7615: A600 LDX $00 | ||
Line 839: | Line 813: | ||
C3/7624: 205378 JSR $7853 | C3/7624: 205378 JSR $7853 | ||
C3/7627: 4C8376 JMP $7683 (BRA would work here) | C3/7627: 4C8376 JMP $7683 (BRA would work here) | ||
==C3/762A | ==C3/762A set roster characters== | ||
null 16 slots | null 16 slots | ||
C3/762A A9 FF LDA #$FF | C3/762A A9 FF LDA #$FF | ||
Line 885: | Line 859: | ||
C3/767D 20 83 76 JSR $7683 | C3/767D 20 83 76 JSR $7683 | ||
C3/7680 4C 0C 79 JMP $790C | C3/7680 4C 0C 79 JMP $790C | ||
==C3/7683 | ==C3/7683 unknow (related to OAM)== | ||
C3/7683 A6 00 LDX $00 null X | C3/7683 A6 00 LDX $00 null X | ||
C3/7685 7B TDC null A | C3/7685 7B TDC null A | ||
C3/7686 BF 89 9D 7E LDA $7E9D89,X character index | C3/7686 BF 89 9D 7E LDA $7E9D89,X character index | ||
C3/768A 30 33 BMI $76BF not available? | C3/768A 30 33 BMI $76BF not available? | ||
C3/768C DA PHX | C3/768C DA PHX | ||
C3/768D 48 PHA | C3/768D 48 PHA | ||
Line 1,093: | Line 1,067: | ||
C3/77E3: D0F3 BNE $77D8 | C3/77E3: D0F3 BNE $77D8 | ||
C3/77E5: 60 RTS | C3/77E5: 60 RTS | ||
==C3/77E6 | ==C3/77E6 data== | ||
C3/77E6 C1 9D 30 00 | C3/77E6 C1 9D 30 00 | ||
C3/77EA D1 9D 40 00 | C3/77EA D1 9D 40 00 | ||
Line 1,101: | Line 1,075: | ||
C3/77FA 11 9E 80 00 | C3/77FA 11 9E 80 00 | ||
C3/77FE 21 9E 90 00 | C3/77FE 21 9E 90 00 | ||
==C3/7802 | ==C3/7802 unknow== | ||
C3/7802: A2519E LDX #$9E51 | C3/7802: A2519E LDX #$9E51 | ||
C3/7805: 8E8121 STX $2181 | C3/7805: 8E8121 STX $2181 | ||
Line 1,125: | Line 1,099: | ||
C3/7834: A907 LDA #$07 | C3/7834: A907 LDA #$07 | ||
C3/7836: 4C4678 JMP $7846 (BRA would work here) | C3/7836: 4C4678 JMP $7846 (BRA would work here) | ||
==C3/7839 unknow== | |||
C3/7839: A901 LDA #$01 | C3/7839: A901 LDA #$01 | ||
C3/783B: 4C4678 JMP $7846 (BRA would work here) | C3/783B: 4C4678 JMP $7846 (BRA would work here) | ||
==C3/783E unknow== | |||
C3/783E: 203978 JSR $7839 | C3/783E: 203978 JSR $7839 | ||
C3/7841: A902 LDA #$02 | C3/7841: A902 LDA #$02 | ||
C3/7843: 4C4678 JMP $7846 (BRA would work here, then again so would nothing at all) | 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/7846: 8D8021 STA $2180 | ||
C3/7849: 8D8021 STA $2180 | C3/7849: 8D8021 STA $2180 | ||
Line 1,138: | Line 1,112: | ||
C3/784F: 8D8021 STA $2180 | C3/784F: 8D8021 STA $2180 | ||
C3/7852: 60 RTS | C3/7852: 60 RTS | ||
==C3/7853 unknow== | |||
C3/7853: AD0102 LDA $0201 | C3/7853: AD0102 LDA $0201 | ||
C3/7856: 2907 AND #$07 | C3/7856: 2907 AND #$07 | ||
Line 1,208: | Line 1,182: | ||
C3/78E1: AB PLB | C3/78E1: AB PLB | ||
C3/78E2: 60 RTS | C3/78E2: 60 RTS | ||
==C3/78E3 data== | |||
C3/78E3: 18 | C3/78E3: 18 | ||
C3/78E4: 18 | C3/78E4: 18 | ||
C3/78E5: 38 | C3/78E5: 38 | ||
C3/78E6: 38 | C3/78E6: 38 | ||
==C3/78E7 data== | |||
C3/78E7: 9C | C3/78E7: 9C | ||
C3/78E8: B8 | C3/78E8: B8 | ||
C3/78E9: 9C | C3/78E9: 9C | ||
C3/78EA: B8 | C3/78EA: B8 | ||
==C3/78EB unknow== | |||
C3/78EB: 0A ASL A | C3/78EB: 0A ASL A | ||
C3/78EC: AA TAX | C3/78EC: AA TAX | ||
Line 1,239: | Line 1,211: | ||
C3/7909: E220 SEP #$20 (8 bit memory/accum.) | C3/7909: E220 SEP #$20 (8 bit memory/accum.) | ||
C3/790B: 60 RTS | C3/790B: 60 RTS | ||
==C3/790C unknow== | |||
C3/790C: A28DAC LDX #$AC8D | C3/790C: A28DAC LDX #$AC8D | ||
C3/790F: 8E8121 STX $2181 | C3/790F: 8E8121 STX $2181 | ||
Line 1,266: | Line 1,238: | ||
C3/793C: D0D6 BNE $7914 | C3/793C: D0D6 BNE $7914 | ||
C3/793E: 60 RTS | C3/793E: 60 RTS | ||
==C3/793F unknow== | |||
C3/793F: 6428 STZ $28 | C3/793F: 6428 STZ $28 | ||
C3/7941: 20E57A JSR $7AE5 | C3/7941: 20E57A JSR $7AE5 | ||
Line 1,274: | Line 1,246: | ||
C3/794D: 202F7C JSR $7C2F | C3/794D: 202F7C JSR $7C2F | ||
C3/7950: 4CAE7C JMP $7CAE | C3/7950: 4CAE7C JMP $7CAE | ||
==C3/7953 unknow== | |||
C3/7953: 20AC79 JSR $79AC | C3/7953: 20AC79 JSR $79AC | ||
C3/7956: 7B TDC | C3/7956: 7B TDC | ||
Line 1,312: | Line 1,284: | ||
C3/79A8: 206C0C JSR $0C6C (display level, HP, MP, etc) | C3/79A8: 206C0C JSR $0C6C (display level, HP, MP, etc) | ||
C3/79AB: 60 RTS | C3/79AB: 60 RTS | ||
==C3/79AC unknow== | |||
C3/79AC: A2C001 LDX #$01C0 | C3/79AC: A2C001 LDX #$01C0 | ||
C3/79AF: C220 REP #$20 (16 bit memory/accum.) | C3/79AF: C220 REP #$20 (16 bit memory/accum.) | ||
Line 1,328: | Line 1,300: | ||
C3/79C6: E220 SEP #$20 (8 bit memory/accum.) | C3/79C6: E220 SEP #$20 (8 bit memory/accum.) | ||
C3/79C8: 60 RTS | C3/79C8: 60 RTS | ||
==C3/79C9 data== | |||
C3/79C9: CF79 | C3/79C9: CF79 | ||
C3/79CB: D479 | C3/79CB: D479 | ||
C3/79CD: D979 | C3/79CD: D979 | ||
==C3/79CF data: strings== | |||
C3/79CF: 6D3A8B9500 (position of and word "LV") | C3/79CF: 6D3A8B9500 (position of and word "LV") | ||
C3/79D4: ED3A878F00 (position of and word "HP") | C3/79D4: ED3A878F00 (position of and word "HP") | ||
Line 1,339: | Line 1,310: | ||
C3/79DE: FB3AC000 (position of and character "/") | C3/79DE: FB3AC000 (position of and character "/") | ||
C3/79E2: 7B3BC000 (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/79E6: 773A (level's position) | ||
C3/79E8: F33A (current HP's position) | C3/79E8: F33A (current HP's position) | ||
Line 1,346: | Line 1,316: | ||
C3/79EC: 733B (current MP's position) | C3/79EC: 733B (current MP's position) | ||
C3/79EE: 7D3B (max MP's position) | C3/79EE: 7D3B (max MP's position) | ||
==C3/79F0 unknow== | |||
C3/79F0: 204F30 JSR $304F | C3/79F0: 204F30 JSR $304F | ||
C3/79F1: A00800 LDY #$0008 | C3/79F1: A00800 LDY #$0008 | ||
Line 1,353: | Line 1,323: | ||
C3/79FA: 8526 STA $26 | C3/79FA: 8526 STA $26 | ||
C3/79FC: 4CB875 JMP $75B8 | C3/79FC: 4CB875 JMP $75B8 | ||
==C3/79FF unknow== | |||
C3/79FF: 205630 JSR $3056 | C3/79FF: 205630 JSR $3056 | ||
C3/7A02: A00800 LDY #$0008 | C3/7A02: A00800 LDY #$0008 | ||
Line 1,360: | Line 1,330: | ||
C3/7A09: 8526 STA $26 | C3/7A09: 8526 STA $26 | ||
C3/7A0B: 4CB875 JMP $75B8 | C3/7A0B: 4CB875 JMP $75B8 | ||
==C3/7A0E unknow== | |||
C3/7A0E: A420 LDY $20 | C3/7A0E: A420 LDY $20 | ||
C3/7A10: D004 BNE $7A16 | C3/7A10: D004 BNE $7A16 | ||
Line 1,366: | Line 1,336: | ||
C3/7A14: 8526 STA $26 | C3/7A14: 8526 STA $26 | ||
C3/7A16: 4CB875 JMP $75B8 | C3/7A16: 4CB875 JMP $75B8 | ||
==C3/7A19 code for jump table== | |||
C3/7A19: AA TAX | C3/7A19: AA TAX | ||
C3/7A1A: 7C1D7A JMP ($7A1D,X) | C3/7A1A: 7C1D7A JMP ($7A1D,X) | ||
Line 1,372: | Line 1,342: | ||
C3/7A1D: 217A | C3/7A1D: 217A | ||
C3/7A1F: 3E7A | C3/7A1F: 3E7A | ||
==C3/7A21 unknow== | |||
C3/7A21: A62D LDX $2D | C3/7A21: A62D LDX $2D | ||
C3/7A23: C220 REP #$20 | C3/7A23: C220 REP #$20 | ||
Line 1,403: | Line 1,373: | ||
C3/7A5D: 18 CLC (this queue can be removed) | C3/7A5D: 18 CLC (this queue can be removed) | ||
C3/7A5E: 60 RTS | C3/7A5E: 60 RTS | ||
==C3/7A5F code for jump table== | |||
C3/7A5F: AA TAX | C3/7A5F: AA TAX | ||
C3/7A60: 7C637A JMP ($7A63,X) | C3/7A60: 7C637A JMP ($7A63,X) | ||
Line 1,409: | Line 1,379: | ||
C3/7A63: 677A | C3/7A63: 677A | ||
C3/7A65: 787A | C3/7A65: 787A | ||
==C3/7A67 unknow== | |||
C3/7A67: A901 LDA #$01 | C3/7A67: A901 LDA #$01 | ||
C3/7A69: 0447 TSB $47 | C3/7A69: 0447 TSB $47 | ||
Line 1,427: | Line 1,397: | ||
C3/7A85: 18 CLC (this queue can be removed) | C3/7A85: 18 CLC (this queue can be removed) | ||
C3/7A86: 60 RTS | C3/7A86: 60 RTS | ||
==C3/7A87 unknow== | |||
C3/7A87: A520 LDA $20 | C3/7A87: A520 LDA $20 | ||
C3/7A89: D007 BNE $7A92 | C3/7A89: D007 BNE $7A92 | ||
Line 1,434: | Line 1,404: | ||
C3/7A8F: 206275 JSR $7562 | C3/7A8F: 206275 JSR $7562 | ||
C3/7A92: 4CB875 JMP $75B8 | C3/7A92: 4CB875 JMP $75B8 | ||
==C3/7A95 unknow== | |||
C3/7A95: 1D3985 ORA $8539,X | C3/7A95: 1D3985 ORA $8539,X | ||
C3/7A98: A8 TAY | C3/7A98: A8 TAY | ||
Line 1,465: | Line 1,435: | ||
C3/7ADE: FFFFFFFF SBC $FFFFFF,X | C3/7ADE: FFFFFFFF SBC $FFFFFF,X | ||
C3/7AE2: FFFF00 | C3/7AE2: FFFF00 | ||
==C3/7AE5 unknow== | |||
DP $26 is #$2F | DP $26 is #$2F | ||
C3/7AE5: A903 LDA #$03 | C3/7AE5: A903 LDA #$03 | ||
Line 1,488: | Line 1,458: | ||
C3/7B0C: AB PLB | C3/7B0C: AB PLB | ||
C3/7B0D: 60 RTS | C3/7B0D: 60 RTS | ||
==C3/7B0E unknow== | |||
C3/7B0E: DA PHX | C3/7B0E: DA PHX | ||
C3/7B0F: DA PHX | C3/7B0F: DA PHX | ||
Line 1,502: | Line 1,472: | ||
C3/7B23: FA PLX | C3/7B23: FA PLX | ||
C3/7B24: 60 RTS | C3/7B24: 60 RTS | ||
==C3/7B25 unknow== | |||
DP $26 is #$30, #$31, or #$32 | DP $26 is #$30, #$31, or #$32 | ||
C3/7B25: 7B TDC | C3/7B25: 7B TDC | ||
Line 1,522: | Line 1,492: | ||
C3/7B3F: 80E4 BRA $7B25 | C3/7B3F: 80E4 BRA $7B25 | ||
C3/7B41: 60 RTS | C3/7B41: 60 RTS | ||
==C3/7B42 code for jump table== | |||
C3/7B42: AA TAX | C3/7B42: AA TAX | ||
C3/7B43: 7C467B JMP ($7B46,X) | C3/7B43: 7C467B JMP ($7B46,X) | ||
Line 1,532: | Line 1,502: | ||
C3/7B4E: 8D7B | C3/7B4E: 8D7B | ||
C3/7B50: A17B | C3/7B50: A17B | ||
==C3/7B52 unknow== | |||
C3/7B52: A901 LDA #$01 | C3/7B52: A901 LDA #$01 | ||
C3/7B54: 0447 TSB $47 | C3/7B54: 0447 TSB $47 | ||
Line 1,542: | Line 1,512: | ||
C3/7B61: 20AE7B JSR $7BAE | C3/7B61: 20AE7B JSR $7BAE | ||
C3/7B64: 8018 BRA $7B7E | C3/7B64: 8018 BRA $7B7E | ||
==C3/7B66 unknow== | |||
C3/7B66: A62D LDX $2D | C3/7B66: A62D LDX $2D | ||
C3/7B68: A904 LDA #$04 | C3/7B68: A904 LDA #$04 | ||
Line 1,548: | Line 1,518: | ||
C3/7B6D: 200612 JSR $1206 | C3/7B6D: 200612 JSR $1206 | ||
C3/7B70: 801B BRA $7B8D | C3/7B70: 801B BRA $7B8D | ||
==C3/7B72 unknow== | |||
C3/7B72: A62D LDX $2D | C3/7B72: A62D LDX $2D | ||
C3/7B74: A905 LDA #$05 | C3/7B74: A905 LDA #$05 | ||
Line 1,554: | Line 1,524: | ||
C3/7B79: 200612 JSR $1206 | C3/7B79: 200612 JSR $1206 | ||
C3/7B7C: 8023 BRA $7BA1 | C3/7B7C: 8023 BRA $7BA1 | ||
==C3/7B7E unknow== | |||
C3/7B7E: A547 LDA $47 | C3/7B7E: A547 LDA $47 | ||
C3/7B80: 2901 AND #$01 | C3/7B80: 2901 AND #$01 | ||
Line 1,565: | Line 1,535: | ||
C3/7B8B: 18 CLC | C3/7B8B: 18 CLC | ||
C3/7B8C: 60 RTS | C3/7B8C: 60 RTS | ||
==C3/7B8D unknow== | |||
C3/7B8D: A547 LDA $47 | C3/7B8D: A547 LDA $47 | ||
C3/7B8F: 2902 AND #$02 | C3/7B8F: 2902 AND #$02 | ||
Line 1,578: | Line 1,548: | ||
C3/7B9F: 38 SEC | C3/7B9F: 38 SEC | ||
C3/7BA0: 60 RTS | C3/7BA0: 60 RTS | ||
==C3/7BA1 unknow== | |||
C3/7BA1: A547 LDA $47 | C3/7BA1: A547 LDA $47 | ||
C3/7BA3: 2904 AND #$04 | C3/7BA3: 2904 AND #$04 | ||
Line 1,586: | Line 1,556: | ||
C3/7BAC: 18 CLC | C3/7BAC: 18 CLC | ||
C3/7BAD: 60 RTS | C3/7BAD: 60 RTS | ||
==C3/7BAE unknow== | |||
C3/7BAE: 85E6 STA $E6 | C3/7BAE: 85E6 STA $E6 | ||
C3/7BB0: AD0002 LDA $0200 | C3/7BB0: AD0002 LDA $0200 | ||
Line 1,631: | Line 1,601: | ||
C3/7C0B: 9DCA35 STA $35CA,X (save bank pointer to OAM data) | C3/7C0B: 9DCA35 STA $35CA,X (save bank pointer to OAM data) | ||
C3/7C0E: 60 RTS | C3/7C0E: 60 RTS | ||
==C3/7C0F data== | |||
C3/7C0F: 0100 | C3/7C0F: 0100 | ||
C3/7C11: 0200 | C3/7C11: 0200 | ||
Line 1,648: | Line 1,618: | ||
C3/7C2B: 0040 | C3/7C2B: 0040 | ||
C3/7C2D: 0080 | C3/7C2D: 0080 | ||
==C3/7C2F unknow== | |||
C3/7C2F: A00026 LDY #$2600 | C3/7C2F: A00026 LDY #$2600 | ||
C3/7C32: 841B STY $1B | C3/7C32: 841B STY $1B | ||
Line 1,705: | Line 1,675: | ||
C3/7CA1: 851F STA $1F | C3/7CA1: 851F STA $1F | ||
C3/7CA3: 60 RTS | C3/7CA3: 60 RTS | ||
==C3/7CA4 unknow== | |||
C3/7CA4: A0519F LDY #$9F51 | C3/7CA4: A0519F LDY #$9F51 | ||
C3/7CA7: 841D STY $1D | C3/7CA7: 841D STY $1D | ||
Line 1,711: | Line 1,681: | ||
C3/7CAB: 851F STA $1F | C3/7CAB: 851F STA $1F | ||
C3/7CAD: 60 RTS | C3/7CAD: 60 RTS | ||
==C3/7CAE unknow== | |||
C3/7CAE: A400 LDY $00 (Y = #$0000) | C3/7CAE: A400 LDY $00 (Y = #$0000) | ||
C3/7CB0: 5A PHY | C3/7CB0: 5A PHY | ||
Line 1,774: | Line 1,744: | ||
C3/7D19: E220 SEP #$20 (8 bit memory/accum.) | C3/7D19: E220 SEP #$20 (8 bit memory/accum.) | ||
C3/7D1B: 60 RTS | 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/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/7D1F: 4CFE05 JMP $05FE | ||
==C3/7D22 unknow== | |||
C3/7D22: 20C781 JSR $81C7 | C3/7D22: 20C781 JSR $81C7 | ||
C3/7D25: A0307D LDY #$7D30 | C3/7D25: A0307D LDY #$7D30 | ||
C3/7D28: 4C4806 JMP $0648 | C3/7D28: 4C4806 JMP $0648 | ||
==C3/7D2B data: hotspot for item screen== | |||
C3/7D2B: 01 00 00 01 0A | C3/7D2B: 01 00 00 01 0A | ||
==C3/7D30 data: finger positions for item screen== | |||
C3/7D30: 085C | C3/7D30: 085C | ||
C3/7D32: 0868 | C3/7D32: 0868 | ||
Line 1,796: | Line 1,764: | ||
C3/7D40: 08BC | C3/7D40: 08BC | ||
C3/7D42: 08C8 | C3/7D42: 08C8 | ||
==C3/7D44 unknow== | |||
C3/7D44: A0537D LDY #$7D53 | C3/7D44: A0537D LDY #$7D53 | ||
C3/7D47: 4CFE05 JMP $05FE | C3/7D47: 4CFE05 JMP $05FE | ||
==C3/7D4A unknow== | |||
C3/7D4A: 202D07 JSR $072D | C3/7D4A: 202D07 JSR $072D | ||
C3/7D4D: A0587D LDY #$7D58 | C3/7D4D: A0587D LDY #$7D58 | ||
C3/7D50: 4C4006 JMP $0640 | C3/7D50: 4C4006 JMP $0640 | ||
==C3/7D53 data: hotspot== | |||
C3/7D53: 00 00 00 02 0A | C3/7D53: 00 00 00 02 0A | ||
==C3/7D58 data: finger positions== | |||
C3/7D58: 085C | C3/7D58: 085C | ||
C3/7D5A: 785C | C3/7D5A: 785C | ||
Line 1,829: | Line 1,795: | ||
C3/7D7C: 08C8 | C3/7D7C: 08C8 | ||
C3/7D7E: 78C8 | C3/7D7E: 78C8 | ||
==C3/7D80 unknow== | |||
C3/7D80: A0987D LDY #$7D98 | C3/7D80: A0987D LDY #$7D98 | ||
C3/7D83: 4CFE05 JMP $05FE | C3/7D83: 4CFE05 JMP $05FE | ||
==C3/7D86 unknow== | |||
C3/7D86: A09D7D LDY #$7D9D | C3/7D86: A09D7D LDY #$7D9D | ||
C3/7D89: 4C4006 JMP $0640 | C3/7D89: 4C4006 JMP $0640 | ||
==C3/7D8C unknow== | |||
C3/7D8C: 202D07 JSR $072D (determine current finger position to get to new position) | C3/7D8C: 202D07 JSR $072D (determine current finger position to get to new position) | ||
C3/7D8F: 20867D JSR $7D86 (load finger positioning data) | C3/7D8F: 20867D JSR $7D86 (load finger positioning data) | ||
Line 1,841: | Line 1,807: | ||
C3/7D94: 8C3402 STY $0234 | C3/7D94: 8C3402 STY $0234 | ||
C3/7D97: 60 RTS | C3/7D97: 60 RTS | ||
==C3/7D98 data: hotspot== | |||
C3/7D98: 01 00 00 03 01 | C3/7D98: 01 00 00 03 01 | ||
==C3/7D9D data: finger positions== | |||
C3/7D9D: 4016 (position for "USE") | C3/7D9D: 4016 (position for "USE") | ||
C3/7D9F: 6816 (position for "ARRANGE") | C3/7D9F: 6816 (position for "ARRANGE") | ||
C3/7DA1: B016 (position for "RARE") | C3/7DA1: B016 (position for "RARE") | ||
==C3/7DA3 item screen setup== | |||
C3/7DA3: A901 LDA #$01 (from C3/1B0B, C3/1B52) | C3/7DA3: A901 LDA #$01 (from C3/1B0B, C3/1B52) | ||
C3/7DA5: 8D0721 STA $2107 | C3/7DA5: 8D0721 STA $2107 | ||
Line 1,891: | Line 1,854: | ||
C3/7E0D: 20156A JSR $6A15 | C3/7E0D: 20156A JSR $6A15 | ||
C3/7E10: 4C887F JMP $7F88 | C3/7E10: 4C887F JMP $7F88 | ||
==C3/7E13 data: windows for item screen== | |||
C3/7E13: 8B580402 | C3/7E13: 8B580402 | ||
C3/7E17: 97581602 | C3/7E17: 97581602 | ||
Line 1,899: | Line 1,861: | ||
C3/7E23: AD600D18 | C3/7E23: AD600D18 | ||
C3/7E27: 85580118 | C3/7E27: 85580118 | ||
==C3/7E2B unknow== | |||
C3/7E2B: A902 LDA #$02 (from C3/1B0E, C3/B48A) | C3/7E2B: A902 LDA #$02 (from C3/1B0E, C3/B48A) | ||
C3/7E2D: 8D5043 STA $4350 | C3/7E2D: 8D5043 STA $4350 | ||
Line 1,942: | Line 1,904: | ||
C3/7E92: 0443 TSB $43 (eventually enable channels 6 and 7 of HDMA) | C3/7E92: 0443 TSB $43 (eventually enable channels 6 and 7 of HDMA) | ||
C3/7E94: 60 RTS | C3/7E94: 60 RTS | ||
==C3/7E95 unknow== | |||
C3/7E95: A600 LDX $00 (from C3/1FD0, C3/7E49) | C3/7E95: A600 LDX $00 (from C3/1FD0, C3/7E49) | ||
C3/7E97: BFE77EC3 LDA $C37EE7,X | C3/7E97: BFE77EC3 LDA $C37EE7,X | ||
Line 1,974: | Line 1,936: | ||
C3/7ED7: D0F2 BNE $7ECB | C3/7ED7: D0F2 BNE $7ECB | ||
C3/7ED9: 60 RTS | C3/7ED9: 60 RTS | ||
==C3/7EDA data: hdma transfer table== | |||
C3/7EDA: 280001 (40 scanlines, ?? pixel shift) | C3/7EDA: 280001 (40 scanlines, ?? pixel shift) | ||
C3/7EDD: 2F0001 (47 scanlines, ?? pixel shift) | C3/7EDD: 2F0001 (47 scanlines, ?? pixel shift) | ||
Line 1,981: | Line 1,942: | ||
C3/7EE3: 1E0001 (30 scanlines, ?? pixel shift, 237 scanlines total) | C3/7EE3: 1E0001 (30 scanlines, ?? pixel shift, 237 scanlines total) | ||
C3/7EE6: 00 (end) | C3/7EE6: 00 (end) | ||
==C3/7EE7 data== | |||
C3/7EE7: 2780 | C3/7EE7: 2780 | ||
C3/7EE9: 0008 | C3/7EE9: 0008 | ||
Line 1,991: | Line 1,952: | ||
C3/7EF5: 0008 | C3/7EF5: 0008 | ||
C3/7EF7: 0000 | C3/7EF7: 0000 | ||
==C3/7EF9 unknow== | |||
C3/7EF9: 04AC TSB $AC | C3/7EF9: 04AC TSB $AC | ||
C3/7EFB: FF04ACFF SBC $FFAC04,X | C3/7EFB: FF04ACFF SBC $FFAC04,X | ||
Line 2,024: | Line 1,985: | ||
C3/7F53: 1E0000 ASL $0000,X | C3/7F53: 1E0000 ASL $0000,X | ||
C3/7F56: 00 | C3/7F56: 00 | ||
==C3/7F57 data: hdma transfer table== | |||
C3/7F57: 2F0000 (47 scanlines, 0 pixel shift) | C3/7F57: 2F0000 (47 scanlines, 0 pixel shift) | ||
C3/7F5A: 0C0400 (12 scanlines, 4 pixel shift) | C3/7F5A: 0C0400 (12 scanlines, 4 pixel shift) | ||
Line 2,043: | Line 2,003: | ||
C3/7F84: 0C3C00 (12 scanlines, 60 pixel shift, 227 scanlines) | C3/7F84: 0C3C00 (12 scanlines, 60 pixel shift, 227 scanlines) | ||
C3/7F87: 00 (end) | C3/7F87: 00 (end) | ||
==C3/7F88 unknow== | |||
C3/7F88: 20F783 JSR $83F7 | C3/7F88: 20F783 JSR $83F7 | ||
C3/7F8B: A00A00 LDY #$000A | C3/7F8B: A00A00 LDY #$000A | ||
Line 2,058: | Line 2,018: | ||
C3/7F9E: D0EE BNE $7F8E | C3/7F9E: D0EE BNE $7F8E | ||
C3/7FA0: 60 RTS | C3/7FA0: 60 RTS | ||
==C3/7FA1 unknow== | |||
C3/7FA1: 7B TDC | C3/7FA1: 7B TDC | ||
C3/7FA2: A5E5 LDA $E5 | C3/7FA2: A5E5 LDA $E5 | ||
Line 2,084: | Line 2,044: | ||
C3/7FD3: 20D97F JSR $7FD9 | C3/7FD3: 20D97F JSR $7FD9 | ||
C3/7FD6: 4CE67F JMP $7FE6 | 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. | 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. | All it does is set the bank and location ($7E9E89) and then jump to fetch the text. | ||
Line 2,093: | Line 2,053: | ||
C3/7FE2: 20FF02 JSR $02FF | C3/7FE2: 20FF02 JSR $02FF | ||
C3/7FE5: 60 RTS | C3/7FE5: 60 RTS | ||
==C3/7FE6 unknow== | |||
C3/7FE6: C220 REP #$20 (16 bit memory/accum.) | C3/7FE6: C220 REP #$20 (16 bit memory/accum.) | ||
C3/7FE8: AF899E7E LDA $7E9E89 | C3/7FE8: AF899E7E LDA $7E9E89 |
Revision as of 08:43, 10 January 2014
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