C3/0000: 4C1B00 JMP $001B (open main menu; from C0/C6F9, EE/03EB) C3/0003: 4C45A4 JMP $A445 C3/0006: 4C24A4 JMP $A424 (timer resetting for input decoding; from C0/0053) C3/0009: 4C7AA4 JMP $A47A (decode joypad status register 1; from C0/056D, EE/0139, EE/03A6, EE/04FF) C3/000C: 4CC813 JMP $13C8 (adjust in-game time; from C0/024F, EE/A51E, EE/A73D, EE/A966) C3/000F: 4CFE14 JMP $14FE (from C0/C4F0) C3/0012: 4C1CC5 JMP $C51C (event command BA; from C0/BA3C) C3/0015: 4CD296 JMP $96D2 (empties and fully equips a character; from C0/C6BC) C3/0018: 4C7FD5 JMP $D57F (from EE/8ED8) Main menu loop? C3/001B: C210 REP #$10 (16 bit index registers) C3/001D: E220 SEP #$20 (8 bit memory/accum.) C3/001F: A900 LDA #$00 C3/0021: 48 PHA C3/0022: AB PLB (make the data bank reg. hold #$00) C3/0023: A20000 LDX #$0000 C3/0026: DA PHX C3/0027: 2B PLD (make the direct page reg. hold #$0000) C3/0028: A20000 LDX #$0000 (X still holds this) C3/002B: 8600 STX $00 ($00 should already hold this) C3/002D: A97E LDA #$7E C3/002F: 8D8321 STA $2183 C3/0032: 20C000 JSR $00C0 C3/0035: AD0002 LDA $0200 C3/0038: C902 CMP #$02 C3/003A: D003 BNE $003F C3/003C: 209B70 JSR $709B (set defaults for a new game) C3/003F: 20F800 JSR $00F8 C3/0042: 20DD00 JSR $00DD (based on $0200's value, jump to different spots in the menu) C3/0045: 2224A4C3 JSL $C3A424 (timer resetting for input decoding) C3/0049: A98F LDA #$8F C3/004B: 8D0021 STA $2100 C3/004E: 9C0042 STZ $4200 (turn off NMI, auto joypad read, etc) C3/0051: 9C0B42 STZ $420B (turn off DMA) C3/0054: 9C0C42 STZ $420C (turn off HDMA) C3/0057: AD0002 LDA $0200 C3/005A: C902 CMP #$02 C3/005C: D011 BNE $006F C3/005E: AD0502 LDA $0205 C3/0061: 100C BPL $006F C3/0063: AD4E1D LDA $1D4E C3/0066: 2920 AND #$20 C3/0068: F005 BEQ $006F (Branch if stereo set) C3/006A: A9FF LDA #$FF C3/006C: 203F3E JSR $3E3F C3/006F: AD0002 LDA $0200 C3/0072: D04B BNE $00BF C3/0074: AD0502 LDA $0205 C3/0077: 1046 BPL $00BF (branch if we are exiting out of the main menu?) C3/0079: C9FE CMP #$FE C3/007B: D021 BNE $009E C3/007D: A901 LDA #$01 C3/007F: 8D0002 STA $0200 C3/0082: AD0102 LDA $0201 C3/0085: 8D0F02 STA $020F C3/0088: AC0602 LDY $0206 C3/008B: 8C0102 STY $0201 C3/008E: 220000C3 JSL $C30000 (Interestingly, this makes it a recursive call--C30000 just jumps to this function) C3/0092: AD0F02 LDA $020F C3/0095: 8D0102 STA $0201 C3/0098: 9C0002 STZ $0200 C3/009B: 4C1B00 JMP $001B C3/009E: A906 LDA #$06 C3/00A0: 8D0002 STA $0200 (BRA $007F...) C3/00A3: AD0102 LDA $0201 C3/00A6: 8D0F02 STA $020F C3/00A9: AD0602 LDA $0206 C3/00AC: 8D0102 STA $0201 C3/00AF: 220000C3 JSL $C30000 C3/00B3: AD0F02 LDA $020F C3/00B6: 8D0102 STA $0201 C3/00B9: 9C0002 STZ $0200 C3/00BC: 4C1B00 JMP $001B C3/00BF: 6B RTL C3/00C0: A95C LDA #$5C C3/00C2: 8D0015 STA $1500 C3/00C5: 8D0415 STA $1504 (set instruction to JML) C3/00C8: A28713 LDX #$1387 C3/00CB: 8E0115 STX $1501 (set NMI to C3/1387) C3/00CE: A2C713 LDX #$13C7 C3/00D1: 8E0515 STX $1505 (set IRQ to C3/13C7) C3/00D4: A9C3 LDA #$C3 C3/00D6: 8D0315 STA $1503 C3/00D9: 8D0715 STA $1507 C3/00DC: 60 RTS C3/00DD: 7B TDC C3/00DE: AD0002 LDA $0200 C3/00E1: 0A ASL A C3/00E2: AA TAX C3/00E3: 7CE600 JMP ($00E6,X) This table seems to be for menu calls from C0 (event commands), and regular calls to the menu. C3/00E6: 1A01 (pressed X/menu, initiate the menu) C3/00E8: B301 (used a Rename Card, or event command $98) C3/00EA: 6F01 (calling the loading screen) C3/00EC: 2101 (invoke a shop) C3/00EE: 2B01 (party selection screen with number of groups) C3/00F0: 3D01 C3/00F2: 4901 C3/00F4: 5201 (colliseum item selection) C3/00F6: 6601 (party select screen for final battle sequence) C3/00F8: 20FA68 JSR $68FA C3/00FB: 201569 JSR $6915 C3/00FE: 20A969 JSR $69A9 C3/0101: 2248CDD4 JSL $D4CD48 C3/0105: 2224A4C3 JSL $C3A424 (timer resetting for input decoding) C3/0109: 7B TDC C3/010A: 221DCAD4 JSL $D4CA1D (do gradient 0 for the screen) C3/010E: 20DC69 JSR $69DC C3/0111: 201411 JSR $1114 (erase all onscreen sprites) C3/0114: 20876A JSR $6A87 (load font and menu graphics) C3/0117: 4C873A JMP $3A87 $0200 is #$00, initiate the main menu C3/011A: A904 LDA #$04 C3/011C: 8526 STA $26 (execute at C3/1A8A) C3/011E: 4CBA01 JMP $01BA (could use BRL instead) $0200 is #$03, invoke a shop C3/0121: 20993F JSR $3F99 C3/0124: A924 LDA #$24 C3/0126: 8526 STA $26 (execute at C3/B466) C3/0128: 4CBA01 JMP $01BA (could use BRL instead) $0200 is #$04, invoke party selection screen with number of groups C3/012B: 20993F JSR $3F99 C3/012E: 203801 JSR $0138 C3/0131: A92C LDA #$2C C3/0133: 8526 STA $26 (execute at C3/70E7) C3/0135: 4CBA01 JMP $01BA (could use BRL instead) C3/0138: 7B TDC C3/0139: A8 TAY C3/013A: 848E STY $8E C3/013C: 60 RTS $0200 is #$05 C3/013D: 20993F JSR $3F99 C3/0140: 203801 JSR $0138 C3/0143: A92F LDA #$2F C3/0145: 8526 STA $26 (execute at C3/7AE5) C3/0147: 8071 BRA $01BA $0200 is #$06 C3/0149: 20993F JSR $3F99 C3/014C: A93F LDA #$3F C3/014E: 8526 STA $26 (execute at C3/B437) C3/0150: 8068 BRA $01BA $0200 is #$07, invoke colliseum item selection screen C3/0152: 20993F JSR $3F99 C3/0155: 6479 STZ $79 C3/0157: 647A STZ $7A C3/0159: 647B STZ $7B C3/015B: A9FF LDA #$FF C3/015D: 8D0502 STA $0205 (set item bet to nothing) C3/0160: A971 LDA #$71 C3/0162: 8526 STA $26 (execute at C3/ACAA) C3/0164: 8054 BRA $01BA $0200 is #$08, invoke party select screen for the final battle C3/0166: 20993F JSR $3F99 C3/0169: A973 LDA #$73 C3/016B: 8526 STA $26 (execute at C3/A9F8, init final battle setup screen) C3/016D: 804B BRA $01BA $0200 is #$02, used when the loading screen is called C3/016F: AFF17F30 LDA $307FF1 C3/0173: 1A INC A C3/0174: 8FF17F30 STA $307FF1 C3/0178: 2224A4C3 JSL $C3A424 (timer resetting for input decoding) C3/017C: 202370 JSR $7023 (make sure SRAM markers are intact) C3/017F: 901E BCC $019F (branch if not, which forces a new game) C3/0181: A901 LDA #$01 C3/0183: 8D0113 STA $1301 (set song as the Prelude) C3/0186: A910 LDA #$10 C3/0188: 8D0013 STA $1300 C3/018B: A980 LDA #$80 C3/018D: 8D0213 STA $1302 (normal volume) C3/0190: 220400C5 JSL $C50004 (play the Prelude) C3/0194: A9FF LDA #$FF C3/0196: 8D0502 STA $0205 C3/0199: A920 LDA #$20 C3/019B: 8526 STA $26 (execute at C3/1D03) C3/019D: 801B BRA $01BA C3/019F: 20212A JSR $2A21 C3/01A2: A901 LDA #$01 C3/01A4: 8D2402 STA $0224 C3/01A7: 9C1F02 STZ $021F C3/01AA: A9FF LDA #$FF C3/01AC: 8526 STA $26 (exit the menu) C3/01AE: 9C0502 STZ $0205 C3/01B1: 8007 BRA $01BA $0200 is #$01, used a Rename Card or event command $98 C3/01B3: 20993F JSR $3F99 C3/01B6: A95D LDA #$5D C3/01B8: 8526 STA $26 (execute at C3/652D) The menu loop code. Execute code based on the value of $26 C3/01BA: 201214 JSR $1412 (from C3/011E, C3/0128, C3/0135) C3/01BD: 7B TDC C3/01BE: A526 LDA $26 C3/01C0: C9FF CMP #$FF C3/01C2: F014 BEQ $01D8 C3/01C4: C220 REP #$20 (16 bit memory/accum.) C3/01C6: 0A ASL A C3/01C7: AA TAX C3/01C8: E220 SEP #$20 (8 bit memory/accum.) C3/01CA: FCDB01 JSR ($01DB,X) C3/01CD: 20B011 JSR $11B0 (execute everything in the OAM queue) C3/01D0: 204D13 JSR $134D C3/01D3: 20DB02 JSR $02DB (determine if we should exit the menu) C3/01D6: 80E5 BRA $01BD C3/01D8: 6443 STZ $43 (eventually disable all 8 channels of HDMA) C3/01DA: 60 RTS $26's jump table. The entire backbone of the menu system is here. C3/01DB: 711D (#$00, fade out) C3/01DD: 7E1D (#$01, most, if not all screens call this as a transition to the next screen) C3/01DF: 8B1D (#$02, both #$00 and #$01 call this to finish transition, then $27 is transfered to $26) C3/01E1: 941D (#$03, ) C3/01E3: 8A1A (#$04, initiate the main menu) C3/01E5: A41D (#$05, sustain the main menu) C3/01E7: E81D (#$06, selecting one character in the main menu) C3/01E9: D61A (#$07, inititate the item menu) C3/01EB: F71E (#$08, sustain the item menu) C3/01ED: 5B1B (#$09, initiate the skills menu) C3/01EF: F41F (#$0A, sustain the skills menu) C3/01F1: 461C (#$0B, initiate the status screen) C3/01F3: F521 (#$0C, sustain the status screen) C3/01F5: 7D1C (#$0D, initiate the config screen) C3/01F7: C522 (#$0E, sustain the config screen) C3/01F9: 0C24 (#$0F, browsing the order menu) C3/01FB: 5324 (#$10, a character is selected in the order menu) C3/01FD: A924 (#$11, switching characters in the order menu) C3/01FF: 3725 (#$12, changing a character's row) C3/0201: A01C (#$13, initiate the save screen) C3/0203: 4025 (#$14, sustain the save screen) C3/0205: E31C (#$15, inititate the "Erasing data. Okay?" menu) C3/0207: 9D25 (#$16, sustain the "Erasing data. Okay?" menu) C3/0209: F425 (#$17, "USE ARRANGE RARE") C3/020B: 4127 (#$18, the rare item menu) C3/020D: 7927 (#$19, an item is selected in the item menu) C3/020F: E227 (#$1A, handle the preloading for Magic descriptions) C3/0211: 8A28 (#$1B, handle the preloading for Lore descriptions) C3/0213: AA28 (#$1C, the Dance menu) C3/0215: BA28 (#$1D, the Rage menu) C3/0217: D328 (#$1E, the Espers menu) C3/0219: 9D25 (#$1F, ) C3/021B: 031D (#$20, initiate the SRAM load screen) C3/021D: C229 (#$21, sustain the SRAM load screen) C3/021F: 511D (#$22, initiate the "This data?" screen) C3/0221: 2A2A (#$23, sustain the "This data?" screen) C3/0223: 66B4 (#$24, initiate the shop menu) C3/0225: 9BB4 (#$25, sustain the shop menu) C3/0227: BDB4 (#$26, the buy menu) C3/0229: 05B5 (#$27, deciding how many items to buy) C3/022B: 0EB6 (#$28, bought an item, or can't buy any more) C3/022D: 16B6 (#$29, the sell menu) C3/022F: 76B6 (#$2A, deciding how many items to sell) C3/0231: 52B7 (#$2B, sold an item) C3/0233: E770 (#$2C, initiate the party selection screen) C3/0235: 6871 (#$2D, sustain the party selection screen) C3/0237: 0C72 (#$2E, selecting a character in the party selection screen) C3/0239: E57A (#$2F, ) C3/023B: 257B (#$30, ) C3/023D: 257B (#$31, ) C3/023F: 257B (#$32, ) C3/0241: 7729 (#$33, handle the preloading for Blitz descriptions) C3/0243: 3A29 (#$34, ??? selected an Esper that is equipped by someone else) C3/0245: B81B (#$35, initiate the equip menu) C3/0247: 2196 (#$36, sustain the equip menu) C3/0249: B51E (#$37, selecting all characters in the main menu) C3/024B: 321C (#$38, initiate the screen that displays the equipment of all members) C3/024D: 6629 (#$39, sustain the screen that displays the equipment of all members) C3/024F: 652A (#$3A, initiate the screen where you decide whom to use a spell on) C3/0251: AE2A (#$3B, sustain the screen where you decide whom to use a spell on) C3/0253: 1C2D (#$3C, returning to the magic list) C3/0255: 782D (#$3D, selecting all characters with a spell) C3/0257: 8E29 (#$3E, handle the preloading for SwdTech descriptions) C3/0259: 37B4 (#$3F, initiate the SwdTech naming screen (unused in SNES version)) C3/025B: 37B4 (#$40, sustain the SwdTech naming screen (unused in SNES version)) C3/025D: 37B4 (#$41, browsing the list of characters for the SwdTech naming screen (unused in SNES version)) C3/025F: 1D63 (#$42, initiate the status screen for the party selection screen) C3/0261: 3F63 (#$43, sustain the status screen for the party selection screen) C3/0263: 1C7D (#$44, ) C3/0265: 1C7D (#$45, ) C3/0267: 1C7D (#$46, ) C3/0269: C242 (#$47, initiate the Arrange screen) C3/026B: DF42 (#$48, sustain the Arrange screen) C3/026D: AD46 (#$49, initiate the button menu (unused in SNES version)) C3/026F: AD46 (#$4A, sustain the button menu (unused in SNES version)) C3/0271: AD46 (#$4B, initiate the Controller menu) C3/0273: CA46 (#$4C, sustain the Controller menu) C3/0275: CE58 (#$4D, viewing an Esper's specifics) C3/0277: 37B4 (#$4E, move to the second window of the SwdTech naming screen (unused in SNES version)) C3/0279: 37B4 (#$4F, move to the first window of the SwdTech naming screen (unused in SNES version)) C3/027B: 003A (#$50, move to the second window of the config menu) C3/027D: 213A (#$51, move to the first window of the config menu) C3/027F: 0A1A (#$52, ) C3/0281: FB19 (#$53, ) C3/0283: 191A (#$54, ??? exiting the save menu) C3/0285: 8498 (#$55, selecting a body slot to fill) C3/0287: CF98 (#$56, selecting a body slot to empty) C3/0289: 0F99 (#$57, selecting an item to put in body slot) C3/028B: 4B9E (#$58, initiate the relic menu) C3/028D: B89E (#$59, "EQUIP REMOVE" in the relic menu) C3/028F: FD9F (#$5A, selecting a relic slot to fill) C3/0291: 97A0 (#$5B, selecting an item to put in relic slot) C3/0293: 0AA1 (#$5C, selecting a relic slot to empty) C3/0295: 2D65 (#$5D, initiate the character naming screen) C3/0297: E689 (#$5E, viewing an item's statistics) C3/0299: 6C65 (#$5F, sustain the character naming screen) C3/029B: E865 (#$60, move to the second window of the character naming screen (unused in SNES version)) C3/029D: E865 (#$61, move to the first window of the character naming screen down (unused in SNES version)) C3/029F: 3843 (#$62, browsing the "Arrange" screen) C3/02A1: 7643 (#$63, selecting a command in the "Arrange" screen) C3/02A3: 8389 (#$64, viewing an item's specifics) C3/02A5: E736 (#$65, shift the screen) C3/02A7: FF79 (#$66, ) C3/02A9: F079 (#$67, ) C3/02AB: 0E7A (#$68, ??? related to party selection screen) C3/02AD: 877A (#$69, ??? cannot exit party selection screen) C3/02AF: A763 (#$6A, browsing the command list in Gogo's status screen) C3/02B1: B422 (#$6B, ) C3/02B3: B19F (#$6C, notifications that modifications to relics have affected equipment) C3/02B5: 1A1C (#$6D, automatically opening equip menu after changing relics) C3/02B7: 261C (#$6E, removing all equipment, called only when relics alter equipment) C3/02B9: 848A (#$6F, initiate the menu where you decide whom to use an item on) C3/02BB: 968A (#$70, sustain the menu where you decide whom to use an item on) C3/02BD: AAAC (#$71, initiate the main colosseum menu) C3/02BF: DCAC (#$72, sustain the main colosseum menu) C3/02C1: F8A9 (#$73, initiate screen for determining party order for final battle) C3/02C3: 25AA (#$74, sustain screen for determining party order for final battle) C3/02C5: B7AD (#$75, initiate the colosseum matchup screen) C3/02C7: 0FAE (#$76, sustain the colosseum matchup screen) C3/02C9: 351B (#$77, returning to the item list) C3/02CB: 8AAD (#$78, jumps to data, dummy?) C3/02CC: 7D9E (#$79, switching characters while selecting a relic slot to fill) C3/02CF: 8B9E (#$7A, switching characters while selecting a relic slot to empty) C3/02D1: 0000 (#$7B, a dummied entry) C3/02D3: 0000 (#$7C, a dummied entry) C3/02D5: 3171 (#$7D, returning to party selection screen from status screen) C3/02D7: E51B (#$7E, switching characters in the equip menu while selecting a body slot to fill) C3/02D9: F31B (#$7F, switching characters in the equip menu while selecting a body slot to empty) C3/02DB: A5B4 LDA $B4 C3/02DD: D019 BNE $02F8 C3/02DF: AD8811 LDA $1188 C3/02E2: 8920 BIT #$20 C3/02E4: F012 BEQ $02F8 C3/02E6: AC8911 LDY $1189 C3/02E9: D00D BNE $02F8 C3/02EB: A9FF LDA #$FF C3/02ED: 8527 STA $27 (exit the menu) C3/02EF: 6426 STZ $26 (fade out, transition to above) C3/02F1: A905 LDA #$05 C3/02F3: 8D0502 STA $0205 C3/02F6: 85B4 STA $B4 C3/02F8: 60 RTS Main text drawing routine. Coming in: 16 bit Y holds location in rom C3/7FD9 calls this after writes to $2180, but jumps to C3/02FF because of bad planning C3/02F9: 84E7 STY $E7 C3/02FB: A9C3 LDA #$C3 C3/02FD: 85E9 STA $E9 (C3/xxxx holds the string) C3/02FF: A600 LDX $00 C3/0301: 9B TXY C3/0302: C220 REP #$20 (16 bit memory/accum.) C3/0304: A7E7 LDA [$E7] (get the position, determine which BG layer it will go on) C3/0306: 85EB STA $EB (save it) C3/0308: E6E7 INC $E7 C3/030A: E6E7 INC $E7 (increment twice, now get the string) C3/030C: E220 SEP #$20 (8 bit memory/accum.) C3/030E: A97E LDA #$7E C3/0310: 85ED STA $ED C3/0312: B7E7 LDA [$E7],Y (load letter) C3/0314: F00F BEQ $0325 (branch if null terminator) C3/0316: 5A PHY (save our current position) C3/0317: 9B TXY (get position for tilemap) C3/0318: 97EB STA [$EB],Y (save it there) C3/031A: E8 INX C3/031B: 9B TXY (INY?) C3/031C: A529 LDA $29 (load text color) C3/031E: 97EB STA [$EB],Y (save it) C3/0320: E8 INX (increment tilemap position again) C3/0321: 7A PLY (get our current string position) C3/0322: C8 INY (...and add 1) C3/0323: 80ED BRA $0312 (loop and keep grabbing letters) C3/0325: 60 RTS ((Deleted function C3/0326 from FF6j goes here)) C3/0326: 84E7 STY $E7 (from C3/171A, C3/3A9E, C3/3ABA, C3/3AD6, C3/3AF2) C3/0328: A600 LDX $00 C3/032A: C220 REP #$20 (16 bit memory/accum.) C3/032C: BF4E04C3 LDA $C3044E,X C3/0330: 18 CLC C3/0331: 65E7 ADC $E7 C3/0333: 9F199F7E STA $7E9F19,X C3/0337: E8 INX C3/0338: E8 INX C3/0339: E03800 CPX #$0038 C3/033C: D0EE BNE $032C C3/033E: E220 SEP #$20 (8 bit memory/accum.) C3/0340: 60 RTS Draw a window, 4 sides. 16-bit Y holds the location in C3 of where the window data is. The first two bytes are the starting location onscreen of where to draw the window. The third byte is the width, and the fourth byte is the height. C3/0341: A9C3 LDA #$C3 (from many places, all in C3) C3/0343: 85E9 STA $E9 C3/0345: 84E7 STY $E7 (window data is at C3/xxxx) C3/0347: A600 LDX $00 C3/0349: 9B TXY C3/034A: C220 REP #$20 (16 bit memory/accum.) C3/034C: B7E7 LDA [$E7],Y (get position for tilemap) C3/034E: 85EB STA $EB (save it) C3/0350: C8 INY C3/0351: C8 INY C3/0352: B7E7 LDA [$E7],Y (get horizontal and vertical sizes) C3/0354: 85E0 STA $E0 (save vertical size) C3/0356: E220 SEP #$20 (8 bit memory/accum.) C3/0358: 85E2 STA $E2 (save horizontal size) C3/035A: A97E LDA #$7E C3/035C: 85ED STA $ED C3/035E: A600 LDX $00 (clear X) C3/0360: 9B TXY (and clear Y) C3/0361: E210 SEP #$10 (8 bit index registers) C3/0363: A6E0 LDX $E0 (get vertical size) C3/0365: A4E1 LDY $E1 (this should be holding the horizontal size) C3/0367: C210 REP #$10 (16 bit index registers) C3/0369: 86EF STX $EF C3/036B: 84F1 STY $F1 C3/036D: C220 REP #$20 (16 bit memory/accum.) C3/036F: 207503 JSR $0375 C3/0372: E220 SEP #$20 (8 bit memory/accum.) C3/0374: 60 RTS C3/0375: 20A303 JSR $03A3 C3/0378: A600 LDX $00 C3/037A: A04000 LDY #$0040 C3/037D: 84F3 STY $F3 C3/037F: DA PHX C3/0380: 8A TXA C3/0381: 290300 AND #$0003 C3/0384: 0A ASL A C3/0385: AA TAX C3/0386: FC9B03 JSR ($039B,X) C3/0389: A5F3 LDA $F3 C3/038B: 18 CLC C3/038C: 694000 ADC #$0040 C3/038E: 85F3 STA $F3 C3/0390: A8 TAY C3/0392: FA PLX C3/0393: E8 INX C3/0394: E4F1 CPX $F1 C3/0396: D0E7 BNE $037F C3/0398: 4CBB03 JMP $03BB Data: jump table for above C3/039B: D103 C3/039D: DB03 C3/039F: E803 C3/03A1: F503 C3/03A3: A400 LDY $00 C3/03A5: 200804 JSR $0408 C3/03A8: AF499F7E LDA $7E9F49 C3/03AC: 85E3 STA $E3 C3/03AE: AF4B9F7E LDA $7E9F4B C3/03B2: 85E5 STA $E5 C3/03B4: A22000 LDX #$0020 C3/03B7: 86E0 STX $E0 C3/03B9: 806D BRA $0428 C3/03BB: 200804 JSR $0408 C3/03BE: AF4D9F7E LDA $7E9F4D C3/03C2: 85E3 STA $E3 C3/03C4: AF4F9F7E LDA $7E9F4F C3/03C8: 85E5 STA $E5 C3/03CA: A22400 LDX #$0024 C3/03CD: 86E0 STX $E0 C3/03CF: 8057 BRA $0428 C3/03D1: 200204 JSR $0402 (from C3/039B) C3/03D4: 200E04 JSR $040E C3/03D7: 64E0 STZ $E0 C3/03D9: 804D BRA $0428 C3/03DB: 200204 JSR $0402 (from C3/039D) C3/03DE: 201B04 JSR $041B C3/03E1: A20800 LDX #$0008 C3/03E4: 86E0 STX $E0 C3/03E6: 8040 BRA $0428 C3/03E8: 200204 JSR $0402 (from C3/039F) C3/03EB: 200E04 JSR $040E C3/03EE: A21000 LDX #$0010 C3/03F1: 86E0 STX $E0 C3/03F3: 8033 BRA $0428 C3/03F5: 200204 JSR $0402 (from C3/03A1) C3/03F8: 201B04 JSR $041B C3/03FB: A21800 LDX #$0018 C3/03FE: 86E0 STX $E0 C3/0400: 8026 BRA $0428 C3/0402: A20300 LDX #$0003 C3/0405: 86F5 STX $F5 C3/0407: 60 RTS C3/0408: A20100 LDX #$0001 (from C3/03A5, C3/03BB) C3/040B: 86F5 STX $F5 C3/040D: 60 RTS C3/040E: AF419F7E LDA $7E9F41 (from C3/03D4, C3/03EB) C3/0412: 85E3 STA $E3 C3/0414: AF439F7E LDA $7E9F43 C3/0418: 85E5 STA $E5 C3/041A: 60 RTS C3/041B: AF459F7E LDA $7E9F45 (from C3/03DE, C3/03F8) C3/041F: 85E3 STA $E3 C3/0421: AF479F7E LDA $7E9F47 C3/0425: 85E5 STA $E5 C3/0427: 60 RTS C3/0428: A600 LDX $00 (from C3/03B9, C3/03CF, C3/03D9, C3/03E6, C3/03F3, C3/0400) C3/042A: A5E3 LDA $E3 C3/042C: 97EB STA [$EB],Y C3/042E: C8 INY C3/042F: C8 INY C3/0430: DA PHX C3/0431: 8A TXA C3/0432: 25F5 AND $F5 C3/0434: 0A ASL A C3/0435: 18 CLC C3/0436: 65E0 ADC $E0 C3/0438: AA TAX C3/0439: BF199F7E LDA $7E9F19,X C3/043D: FA PLX C3/043E: E4EF CPX $EF C3/0440: F007 BEQ $0449 C3/0442: 97EB STA [$EB],Y C3/0444: C8 INY C3/0445: C8 INY C3/0446: E8 INX C3/0447: 80E7 BRA $0430 C3/0449: A5E5 LDA $E5 C3/044B: 97EB STA [$EB],Y C3/044D: 60 RTS Smells like data C3/044E: 8001 C3/0450: 8101 C3/0452: 8201 C3/0454: 8301 C3/0456: 8401 C3/0458: 8501 C3/045A: 8601 C3/045C: 8701 C3/045E: 8801 C3/0460: 8901 C3/0462: 8A01 C3/0464: 8B01 C3/0466: 8C01 C3/0468: 8D01 C3/046A: 8E01 C3/046C: 8F01 C3/046E: 9101 C3/0470: 9201 C3/0472: 9901 C3/0474: 9A01 C3/0476: 9401 C3/0478: 9501 C3/047A: 9601 C3/047C: 9701 C3/047E: 9001 C3/0480: 9301 C3/0482: 9801 C3/0484: 9B01 Following are several buffer-clipping functions. I believe they basically print from the first position to the second one. C3/0486: A00500 LDY #$0005 (maximum of 5 digits) C3/0489: 84E0 STY $E0 C3/048B: A00200 LDY #$0002 (5 - 2 = 3 digits to display) C3/048E: 8037 BRA $04C7 C3/0490: A00500 LDY #$0005 (maximum of 5 digits) C3/0493: 84E0 STY $E0 C3/0495: A00100 LDY #$0001 (5 - 1 = 4 digits to display) C3/0498: 802D BRA $04C7 C3/049A: A00500 LDY #$0005 (maximum of 5 digits) C3/049D: 84E0 STY $E0 C3/049F: A400 LDY $00 (5 - 0 = 5 digits to display) C3/04A1: 8024 BRA $04C7 C3/04A3: A00800 LDY #$0008 (maximum of 8 digits) C3/04A6: 84E0 STY $E0 C3/04A8: A400 LDY $00 (8 - 0 = 8 digits to display) C3/04AA: 801B BRA $04C7 C3/04AC: A00800 LDY #$0008 (maximum of 8 digits) C3/04AF: 84E0 STY $E0 C3/04B1: A00100 LDY #$0001 (8 - 1 = 7 digits to display) C3/04B4: 8011 BRA $04C7 C3/04B6: A00300 LDY #$0003 (maximum of 3 digits) C3/04B9: 84E0 STY $E0 C3/04BB: A00100 LDY #$0001 (3 - 1 = 2 digits to display) C3/04BE: 8007 BRA $04C7 C3/04C0: A00300 LDY #$0003 (maximum of 3 digits) C3/04C3: 84E0 STY $E0 C3/04C5: A400 LDY $00 (3 - 0 = 3 digits to display, but why a variation of C3/0486?) C3/04C7: 86EB STX $EB C3/04C9: A97E LDA #$7E C3/04CB: 85ED STA $ED C3/04CD: BB TYX C3/04CE: A400 LDY $00 C3/04D0: B5F7 LDA $F7,X C3/04D2: 97EB STA [$EB],Y C3/04D4: C8 INY C3/04D5: A529 LDA $29 (get text color) C3/04D7: 97EB STA [$EB],Y C3/04D9: C8 INY C3/04DA: E8 INX C3/04DB: E4E0 CPX $E0 C3/04DD: D0F1 BNE $04D0 C3/04DF: 60 RTS This calls the function below here, then any leading zeros are converted to spaces. A zero in the third position (ones place) is not converted. C3/04E0: 20F904 JSR $04F9 C3/04E3: A400 LDY $00 C3/04E5: A20200 LDX #$0002 C3/04E8: B9F700 LDA $00F7,Y C3/04EB: C9B4 CMP #$B4 C3/04ED: D009 BNE $04F8 C3/04EF: A9FF LDA #$FF C3/04F1: 99F700 STA $00F7,Y C3/04F4: C8 INY C3/04F5: CA DEX C3/04F6: D0F0 BNE $04E8 C3/04F8: 60 RTS Takes a number from A (which is put into $E0 internally) and converts it into a number up to 3 digits in decimal text. The digits are stored to $F7, $F8, and $F9. C3/04F9: 85E0 STA $E0 C3/04FB: A903 LDA #$03 C3/04FD: 85E4 STA $E4 C3/04FF: A400 LDY $00 C3/0501: BB TYX C3/0502: 64E1 STZ $E1 C3/0504: BF2B05C3 LDA $C3052B,X C3/0508: E8 INX C3/0509: 85E3 STA $E3 C3/050B: A5E0 LDA $E0 C3/050D: 38 SEC C3/050E: E5E3 SBC $E3 C3/0510: 9006 BCC $0518 C3/0512: 85E0 STA $E0 C3/0514: E6E1 INC $E1 C3/0516: 80F3 BRA $050B C3/0518: 18 CLC C3/0519: 65ED ADC $ED C3/051B: 85F3 STA $F3 C3/051D: A5E1 LDA $E1 C3/051F: 18 CLC C3/0520: 69B4 ADC #$B4 C3/0522: 99F700 STA $00F7,Y C3/0525: C8 INY C3/0526: C6E4 DEC $E4 C3/0528: D0D8 BNE $0502 C3/052A: 60 RTS Data (for decimal place-values) C3/052B: 64 (100) C3/052C: 0A (10) C3/052D: 01 (1) Takes a number from $F3 and $F4 (or 16-bit $F3 if you prefer to say that) and converts it to a number up to 5 digits in decimal text. Unlike the above, it automatically changes leading zeros to spaces. This is stored to a buffer from $F7 to $FB. C3/052E: A905 LDA #$05 C3/0530: 85E0 STA $E0 C3/0532: A400 LDY $00 C3/0534: BB TYX C3/0535: C220 REP #$20 (16 bit memory/accum.) C3/0537: BF7805C3 LDA $C30578,X C3/053B: E8 INX C3/053C: E8 INX C3/053D: 85ED STA $ED C3/053F: 64EB STZ $EB C3/0541: 38 SEC C3/0542: A5F3 LDA $F3 C3/0544: E5ED SBC $ED C3/0546: 9006 BCC $054E C3/0548: 85F3 STA $F3 C3/054A: E6EB INC $EB C3/054C: 80F3 BRA $0541 C3/054E: 18 CLC C3/054F: 65ED ADC $ED C3/0551: 85F3 STA $F3 C3/0553: E220 SEP #$20 (8 bit memory/accum.) C3/0555: A5EB LDA $EB C3/0557: 18 CLC C3/0558: 69B4 ADC #$B4 C3/055A: 99F700 STA $00F7,Y C3/055D: C8 INY C3/055E: C6E0 DEC $E0 C3/0560: D0D3 BNE $0535 C3/0562: A400 LDY $00 C3/0564: A20400 LDX #$0004 (Only check the first 4 digits for 0) C3/0567: B9F700 LDA $00F7,Y C3/056A: C9B4 CMP #$B4 (That's text for "0") C3/056C: D009 BNE $0577 C3/056E: A9FF LDA #$FF (Change to a space) C3/0570: 99F700 STA $00F7,Y C3/0573: C8 INY C3/0574: CA DEX C3/0575: D0F0 BNE $0567 C3/0577: 60 RTS Data C3/0578: 1027 (10000) C3/057A: E803 (1000) C3/057C: 6400 (100) C3/057E: 0A00 (10) C3/0580: 0100 (1) C3/0582: 64F4 STZ $F4 C3/0584: A908 LDA #$08 C3/0586: 85E0 STA $E0 C3/0588: A400 LDY $00 C3/058A: BB TYX C3/058B: C220 REP #$20 (16 bit memory/accum.) C3/058D: 64EB STZ $EB C3/058F: 38 SEC C3/0590: A5F1 LDA $F1 C3/0592: FFDE05C3 SBC $C305DE,X C3/0596: 85F1 STA $F1 C3/0598: A5F3 LDA $F3 C3/059A: FFEE05C3 SBC $C305EE,X C3/059E: 85F3 STA $F3 C3/05A0: 9004 BCC $05A6 C3/05A2: E6EB INC $EB C3/05A4: 80E9 BRA $058F C3/05A6: A5F1 LDA $F1 C3/05A8: 18 CLC C3/05A9: 7FDE05C3 ADC $C305DE,X C3/05AD: 85F1 STA $F1 C3/05AF: A5F3 LDA $F3 C3/05B1: 7FEE05C3 ADC $C305EE,X C3/05B5: 85F3 STA $F3 C3/05B7: E220 SEP #$20 (8 bit memory/accum.) C3/05B9: A5EB LDA $EB C3/05BB: 18 CLC C3/05BC: 69B4 ADC #$B4 C3/05BE: 99F700 STA $00F7,Y C3/05C1: C8 INY C3/05C2: E8 INX C3/05C3: E8 INX C3/05C4: C6E0 DEC $E0 C3/05C6: D0C3 BNE $058B C3/05C8: A400 LDY $00 C3/05CA: A20700 LDX #$0007 C3/05CD: B9F700 LDA $00F7,Y C3/05D0: C9B4 CMP #$B4 C3/05D2: D009 BNE $05DD C3/05D4: A9FF LDA #$FF C3/05D6: 99F700 STA $00F7,Y C3/05D9: C8 INY C3/05DA: CA DEX C3/05DB: D0F0 BNE $05CD C3/05DD: 60 RTS In case this wasn't obvious from the others, here ya go: C3/05DE: 8096 (10000000) C3/05E0: 4042 (1000000) C3/05E2: A086 (100000) C3/05E4: 1027 (10000) C3/05E6: E803 (1000) C3/05E8: 6400 (100) C3/05EA: 0A00 (10) C3/05EC: 0100 (1) C3/05EE: 9800 C3/05F1: 0F00 C3/05F3: 0100 C3/05F5: 0000 C3/05F7: 0000 C3/05F9: 0000 C3/05FA: 0000 C3/05FC: 0000 Hotspot loading function? C3/05FE: A9C3 LDA #$C3 C3/0600: 85ED STA $ED C3/0602: 84EB STY $EB C3/0604: A400 LDY $00 C3/0606: B7EB LDA [$EB],Y C3/0608: 8559 STA $59 C3/060A: C8 INY C3/060B: C220 REP #$20 (16 bit memory/accum.) C3/060D: 6451 STZ $51 C3/060F: B7EB LDA [$EB],Y C3/0611: 854D STA $4D C3/0613: C8 INY C3/0614: C8 INY C3/0615: B7EB LDA [$EB],Y C3/0617: 8553 STA $53 C3/0619: 644F STZ $4F C3/061B: E220 SEP #$20 (8 bit memory/accum.) C3/061D: 60 RTS C3/061E: 7B TDC (set A to 0) C3/061F: A8 TAY (set Y to 0) C3/0620: 98 TYA C3/0621: 0A ASL A C3/0622: AA TAX C3/0623: B585 LDA $85,X C3/0625: D008 BNE $062F C3/0627: E64E INC $4E C3/0629: C8 INY C3/062A: C00400 CPY #$0004 C3/062D: D0F1 BNE $0620 C3/062F: 60 RTS C3/0630: 84E7 STY $E7 C3/0632: A9C3 LDA #$C3 C3/0634: 85E9 STA $E9 C3/0636: 60 RTS C3/0637: 203006 JSR $0630 C3/063A: 205006 JSR $0650 C3/063D: 4CC506 JMP $06C5 Finger positioning decoding function! C3/0640: 203006 JSR $0630 C3/0643: 207706 JSR $0677 C3/0646: 807D BRA $06C5 C3/0648: 203006 JSR $0630 C3/064B: 209E06 JSR $069E C3/064E: 8075 BRA $06C5 C3/0650: 8B PHB C3/0651: A900 LDA #$00 C3/0653: 48 PHA C3/0654: AB PLB C3/0655: AF124200 LDA $004212 C3/0659: 2940 AND #$40 (are we in H-blank?) C3/065B: F0F8 BEQ $0655 (branch if not) C3/065D: A554 LDA $54 C3/065F: 8D1B21 STA $211B C3/0662: 9C1B21 STZ $211B C3/0665: A54D LDA $4D C3/0667: 8D1C21 STA $211C C3/066A: 8D1C21 STA $211C C3/066D: AD3421 LDA $2134 C3/0670: 18 CLC C3/0671: 654E ADC $4E C3/0673: 854B STA $4B C3/0675: AB PLB C3/0676: 60 RTS C3/0677: 8B PHB C3/0678: A900 LDA #$00 C3/067A: 48 PHA C3/067B: AB PLB C3/067C: AF124200 LDA $004212 C3/0680: 2940 AND #$40 (are we in H-blank?) C3/0682: F0F8 BEQ $067C (branch if not) C3/0684: A553 LDA $53 C3/0686: 8D1B21 STA $211B C3/0689: 9C1B21 STZ $211B C3/068C: A54E LDA $4E C3/068E: 8D1C21 STA $211C C3/0691: 8D1C21 STA $211C C3/0694: AD3421 LDA $2134 C3/0697: 18 CLC C3/0698: 654D ADC $4D C3/069A: 854B STA $4B C3/069C: AB PLB C3/069D: 60 RTS C3/069E: 8B PHB C3/069F: A900 LDA #$00 C3/06A1: 48 PHA C3/06A2: AB PLB C3/06A3: AF124200 LDA $004212 C3/06A7: 2940 AND #$40 (are we in H-blank?) C3/06A9: F0F8 BEQ $06A3 (branch if not) C3/06AB: A553 LDA $53 C3/06AD: 8D1B21 STA $211B C3/06B0: 9C1B21 STZ $211B C3/06B3: A550 LDA $50 C3/06B5: 8D1C21 STA $211C C3/06B8: 8D1C21 STA $211C C3/06BB: AD3421 LDA $2134 C3/06BE: 18 CLC C3/06BF: 654F ADC $4F C3/06C1: 854B STA $4B C3/06C3: AB PLB C3/06C4: 60 RTS C3/06C5: 8B PHB C3/06C6: A900 LDA #$00 C3/06C8: 48 PHA C3/06C9: AB PLB C3/06CA: A553 LDA $53 C3/06CC: 3A DEC A C3/06CD: C54D CMP $4D C3/06CF: B00C BCS $06DD C3/06D1: A553 LDA $53 C3/06D3: 3A DEC A C3/06D4: 38 SEC C3/06D5: E551 SBC $51 C3/06D7: 85E0 STA $E0 C3/06D9: 85E2 STA $E2 C3/06DB: 8008 BRA $06E5 C3/06DD: A553 LDA $53 C3/06DF: 85E0 STA $E0 C3/06E1: A54D LDA $4D C3/06E3: 85E2 STA $E2 C3/06E5: A554 LDA $54 C3/06E7: 3A DEC A C3/06E8: C54E CMP $4E C3/06EA: B00A BCS $06F6 C3/06EC: A554 LDA $54 C3/06EE: 3A DEC A C3/06EF: 38 SEC C3/06F0: E552 SBC $52 C3/06F2: 85E1 STA $E1 C3/06F4: 8004 BRA $06FA C3/06F6: A54E LDA $4E C3/06F8: 85E1 STA $E1 C3/06FA: AF124200 LDA $004212 C3/06FE: 2940 AND #$40 (are we in H-blank?) C3/0700: F0F8 BEQ $06FA (branch if not) C3/0702: A5E0 LDA $E0 C3/0704: 8D1B21 STA $211B C3/0707: 9C1B21 STZ $211B C3/070A: A5E1 LDA $E1 C3/070C: 8D1C21 STA $211C C3/070F: 8D1C21 STA $211C C3/0712: AD3421 LDA $2134 C3/0715: 18 CLC C3/0716: 65E2 ADC $E2 C3/0718: 0A ASL A C3/0719: EB XBA C3/071A: A500 LDA $00 C3/071C: EB XBA C3/071D: A8 TAY C3/071E: B7E7 LDA [$E7],Y C3/0720: 8555 STA $55 C3/0722: 6456 STZ $56 C3/0724: C8 INY C3/0725: B7E7 LDA [$E7],Y C3/0727: 8557 STA $57 C3/0729: 6458 STZ $58 C3/072B: AB PLB C3/072C: 60 RTS Used by finger positioning data, determine current position and move to a new position based on direction pressed C3/072D: A50B LDA $0B (from various) C3/072F: 8908 BIT #$08 (did you press up?) C3/0731: F01D BEQ $0750 (branch if not) C3/0733: A54E LDA $4E (byte 3 of hotspot data) C3/0735: D011 BNE $0748 (branch if not on position 0) C3/0737: A559 LDA $59 (byte 1 of hotspot data) C3/0739: 2901 AND #$01 (check lowest bit, if set it will allow left/right) C3/073B: D072 BNE $07AF C3/073D: A554 LDA $54 C3/073F: 3A DEC A C3/0740: 854E STA $4E (byte 3 of hotspot data) C3/0742: 20A30E JSR $0EA3 C3/0745: 4CAF07 JMP $07AF (BRA would save a byte) C3/0748: C64E DEC $4E C3/074A: 20A30E JSR $0EA3 C3/074D: 4CAF07 JMP $07AF (BRA would save a byte) C3/0750: A50B LDA $0B (A already holds the contents of $0B) C3/0752: 8904 BIT #$04 (did you press down?) C3/0754: F01D BEQ $0773 (branch if not) C3/0756: A554 LDA $54 (byte 5 of hotspot data) C3/0758: 3A DEC A C3/0759: C54E CMP $4E (byte 3 of hotspot data) C3/075B: D00E BNE $076B C3/075D: A559 LDA $59 (byte 1 of hotspot data) C3/075F: 2901 AND #$01 (check lowest bit, if set it will allow left/right) C3/0761: D04C BNE $07AF C3/0763: 644E STZ $4E C3/0765: 20A30E JSR $0EA3 C3/0768: 4CAF07 JMP $07AF (BRA would save a byte) C3/076B: E64E INC $4E (byte 3 of hotspot data) C3/076D: 20A30E JSR $0EA3 C3/0770: 4CAF07 JMP $07AF C3/0773: A50B LDA $0B (A already holds the contents of $0B) C3/0775: 8902 BIT #$02 (did you press left?) C3/0777: F019 BEQ $0792 (branch if not) C3/0779: A54D LDA $4D (bytes 2 and 3 of hotspot data) C3/077B: D00E BNE $078B C3/077D: A559 LDA $59 (byte 1 of hotspot data) C3/077F: 302E BMI $07AF (check highest bit, if set it will allow up/down) C3/0781: A553 LDA $53 (byte 4 of hotspot data) C3/0783: 3A DEC A C3/0784: 854D STA $4D (byte 2 of hotspot data) C3/0786: 20A30E JSR $0EA3 C3/0789: 8024 BRA $07AF C3/078B: C64D DEC $4D (byte 2 of hotspot data) C3/078D: 20A30E JSR $0EA3 C3/0790: 801D BRA $07AF C3/0792: A50B LDA $0B (A already holds the contents of $0B) C3/0794: 8901 BIT #$01 (did you press right?) C3/0796: F017 BEQ $07AF (branch if not) C3/0798: A553 LDA $53 (byte 4 of hotspot data) C3/079A: 3A DEC A C3/079B: C54D CMP $4D (byte 2 of hotspot data) C3/079D: D00B BNE $07AA C3/079F: A559 LDA $59 (byte 1 of hotspot data) C3/07A1: 300C BMI $07AF (check highest bit, if set it will allow up/down) C3/07A3: 644D STZ $4D (byte 2 of hotspot data) C3/07A5: 20A30E JSR $0EA3 C3/07A8: 8005 BRA $07AF C3/07AA: E64D INC $4D (byte 2 of hotspot data) C3/07AC: 20A30E JSR $0EA3 C3/07AF: 60 RTS OAM initiating routine for hotspots C3/07B0: A901 LDA #$01 C3/07B2: A0B807 LDY #$07B8 C3/07B5: 4C7311 JMP $1173 (put C3/07B8 in the queue) C3/07B8: AA TAX C3/07B9: 7CBC07 JMP ($07BC,X) C3/07BC: C007 C3/07BE: DC07 C3/07C0: A62D LDX $2D C3/07C3: C220 REP #$20 C3/07C4: A98D08 LDA #$088D C3/07C7: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/07CA: E220 SEP #$20 (8 bit memory/accum.) C3/07CC: A9C3 LDA #$C3 C3/07CE: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/07D1: 200612 JSR $1206 C3/07D4: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/07D7: A901 LDA #$01 C3/07D9: 9D4A36 STA $364A,X C3/07DC: A546 LDA $46 C3/07DE: 2906 AND #$06 C3/07E0: F01B BEQ $07FD C3/07E2: A545 LDA $45 C3/07E4: 8904 BIT #$04 C3/07E6: F013 BEQ $07FB C3/07E8: A62D LDX $2D C3/07EA: C220 REP #$20 (16 bit memory/accum.) C3/07EC: A555 LDA $55 C3/07EE: 9DCA33 STA $33CA,X C3/07F1: A557 LDA $57 C3/07F3: 9D4A34 STA $344A,X C3/07F6: E220 SEP #$20 (8 bit memory/accum.) C3/07F8: 202112 JSR $1221 (draw the sprites!) C3/07FB: 38 SEC (not done with this queue yet) C3/07FC: 60 RTS C3/07FD: 18 CLC (flag that this queue can be removed) C3/07FE: 60 RTS C3/07FF: AA TAX C3/0800: 7C0308 JMP ($0803,X) C3/0803: 0B08 C3/0805: 2B08 C3/0807: 0B08 C3/0809: 6708 C3/080B: A62D LDX $2D (from C3/0803, C3/0807) C3/080D: A901 LDA #$01 C3/080F: 0446 TSB $46 C3/0811: C220 REP #$20 (16 bit memory/accum.) C3/0813: A99608 LDA #$0896 C3/0816: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/0819: E220 SEP #$20 (8 bit memory/accum.) C3/081B: A9C3 LDA #$C3 C3/081D: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/0820: 200612 JSR $1206 C3/0823: A901 LDA #$01 C3/0825: 9D4A36 STA $364A,X C3/0828: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/082B: A546 LDA $46 (from C3/0805) C3/082D: 8901 BIT #$01 C3/082F: F034 BEQ $0865 C3/0831: A62D LDX $2D C3/0833: C220 REP #$20 (16 bit memory/accum.) C3/0835: A541 LDA $41 C3/0837: 49FFFF EOR #$FFFF C3/083A: 1A INC A C3/083B: 18 CLC C3/083C: 7D4A34 ADC $344A,X C3/083F: 9D4A34 STA $344A,X C3/0842: E220 SEP #$20 (8 bit memory/accum.) C3/0844: A546 LDA $46 C3/0846: 29C0 AND #$C0 C3/0848: F016 BEQ $0860 C3/084A: A528 LDA $28 C3/084C: 85E1 STA $E1 C3/084E: 1A INC A C3/084F: 85E0 STA $E0 C3/0851: A54A LDA $4A C3/0853: 18 CLC C3/0854: 6909 ADC #$09 C3/0856: C5E1 CMP $E1 C3/0858: 9009 BCC $0863 C3/085A: A54A LDA $4A C3/085C: C5E0 CMP $E0 C3/085E: B003 BCS $0863 C3/0860: 202112 JSR $1221 (draw the sprites!) C3/0863: 38 SEC C3/0864: 60 RTS C3/0865: 18 CLC C3/0866: 60 RTS C3/0867: A546 LDA $46 (from C3/0809) C3/0869: 8901 BIT #$01 C3/086B: F0F8 BEQ $0865 C3/086D: A62D LDX $2D C3/086F: C220 REP #$20 (16 bit memory/accum.) C3/0871: A597 LDA $97 C3/0873: 49FFFF EOR #$FFFF C3/0876: 1A INC A C3/0877: 18 CLC C3/0878: 7DCA33 ADC $33CA,X C3/087B: 9DCA33 STA $33CA,X C3/087E: E220 SEP #$20 (8 bit memory/accum.) C3/0880: BCCA33 LDY $33CA,X C3/0883: C00001 CPY #$0100 C3/0886: B003 BCS $088B C3/0888: 202112 JSR $1221 (draw the sprites!) C3/088B: 38 SEC C3/088C: 60 RTS OAM data for finger C3/088D: 9008 C3/088F: FE (???) C3/0890: 01 (one set of data) C3/0891: 8000003E (position 80,0, 0 is ?, finger) C3/0895: 00 (no data) Cycle to create blinking effect for finger C3/0896: 9008 C3/0898: 02 C3/0899: 9508 C3/089B: 02 C3/089C: 9008 C3/089E: FF C3/089F: 7B TDC C3/08A0: AA TAX C3/08A1: B585 LDA $85,X C3/08A3: F024 BEQ $08C9 C3/08A5: DA PHX C3/08A6: A901 LDA #$01 C3/08A8: A0D108 LDY #$08D1 C3/08AB: 207311 JSR $1173 (put C3/08D1 in the queue) C3/08AE: 9B TXY C3/08AF: FA PLX C3/08B0: A97E LDA #$7E C3/08B2: 48 PHA C3/08B3: AB PLB C3/08B4: B585 LDA $85,X C3/08B6: 99CA33 STA $33CA,Y C3/08B9: B586 LDA $86,X C3/08BB: 994A34 STA $344A,Y C3/08BE: 7B TDC C3/08BF: 99CB33 STA $33CB,Y C3/08C2: 994B34 STA $344B,Y C3/08C5: A900 LDA #$00 C3/08C7: 48 PHA C3/08C8: AB PLB C3/08C9: E8 INX C3/08CA: E8 INX C3/08CB: E00800 CPX #$0008 C3/08CE: D0D1 BNE $08A1 C3/08D0: 60 RTS C3/08D1: AA TAX C3/08D2: 7CD508 JMP ($08D5,X) C3/08D5: D908 C3/08D7: F908 C3/08D9: A62D LDX $2D C3/08DB: A908 LDA #$08 C3/08DD: 0446 TSB $46 C3/08DF: C220 REP #$20 (16 bit memory/accum.) C3/08E1: A99608 LDA #$0896 C3/08E4: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/08E7: E220 SEP #$20 (8 bit memory/accum.) C3/08E9: A9C3 LDA #$C3 C3/08EB: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/08EE: 200612 JSR $1206 C3/08F1: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/08F4: A901 LDA #$01 C3/08F6: 9D4A36 STA $364A,X C3/08F9: A546 LDA $46 C3/08FB: 8908 BIT #$08 C3/08FD: F007 BEQ $0906 C3/08FF: A62D LDX $2D C3/0901: 202112 JSR $1221 (draw the sprites!) C3/0904: 38 SEC (not done yet with this queue) C3/0905: 60 RTS C3/0906: 18 CLC (this queue can be removed) C3/0907: 60 RTS C3/0908: A9C0 LDA #$C0 C3/090A: 0446 TSB $46 C3/090C: A54A LDA $4A C3/090E: D004 BNE $0914 C3/0910: A940 LDA #$40 C3/0912: 1446 TRB $46 C3/0914: A54A LDA $4A C3/0916: C55C CMP $5C C3/0918: D004 BNE $091E C3/091A: A980 LDA #$80 C3/091C: 1446 TRB $46 C3/091E: 60 RTS C3/091F: A903 LDA #$03 (from C3/1B14, C3/20B5, C3/2132, C3/2170, C3/21A8, C3/265A, C3/591E, C3/89DE, C3/BC05) C3/0921: A04709 LDY #$0947 C3/0924: 207311 JSR $1173 (put C3/0947 in the queue) C3/0927: C220 REP #$20 (16 bit memory/accum.) C3/0929: A9E800 LDA #$00E8 (arrow's initial position, E8 is X, 00 is Y) C3/092C: 9FCA337E STA $7E33CA,X C3/0930: E220 SEP #$20 (8 bit memory/accum.) C3/0932: 60 RTS C3/0933: A903 LDA #$03 (only from C3/9B0F) C3/0935: A04709 LDY #$0947 C3/0938: 207311 JSR $1173 (put C3/0947 in the queue) C3/093B: C220 REP #$20 (16 bit memory/accum.) C3/093D: A97800 LDA #$0078 (arrow's initial position in equip screen, 78 is X, 00 is Y) C3/0940: 9FCA337E STA $7E33CA,X C3/0944: E220 SEP #$20 (8 bit memory/accum.) C3/0946: 60 RTS C3/0947: AA TAX C3/0948: 7C4B09 JMP ($094B,X) C3/094B: 4F09 C3/094D: 6A09 C3/094F: A62D LDX $2D C3/0951: C220 REP #$20 (16 bit memory/accum.) C3/0953: A9E309 LDA #$09E3 C3/0956: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/0959: E220 SEP #$20 (8 bit memory/accum.) C3/095B: A9C3 LDA #$C3 C3/095D: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/0960: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/0963: 200612 JSR $1206 C3/0966: A9C0 LDA #$C0 C3/0968: 0446 TSB $46 C3/096A: A546 LDA $46 C3/096C: 29C0 AND #$C0 C3/096E: F069 BEQ $09D9 C3/0970: A62D LDX $2D C3/0972: 200809 JSR $0908 C3/0975: AF124200 LDA $004212 C3/0979: 2940 AND #$40 C3/097B: F0F8 BEQ $0975 C3/097D: BD4A35 LDA $354A,X C3/0980: 8F1B2100 STA $00211B C3/0984: BD4B35 LDA $354B,X C3/0987: 8F1B2100 STA $00211B C3/098B: A54A LDA $4A C3/098D: 8F1C2100 STA $00211C C3/0991: 8F1C2100 STA $00211C C3/0995: A54A LDA $4A C3/0997: 3011 BMI $09AA C3/0999: 7B TDC C3/099A: AF352100 LDA $002135 C3/099E: C221 REP #$21 C3/09A0: 7DCA34 ADC $34CA,X C3/09A3: 9D4A34 STA $344A,X C3/09A6: E220 SEP #$20 (8 bit memory/accum.) C3/09A8: 8013 BRA $09BD C3/09AA: 7B TDC C3/09AB: AF352100 LDA $002135 C3/09AF: C221 REP #$21 C3/09B1: 697000 ADC #$0070 C3/09B4: 18 CLC C3/09B5: 7DCA34 ADC $34CA,X C3/09B8: 9D4A34 STA $344A,X C3/09BB: E220 SEP #$20 (8 bit memory/accum.) C3/09BD: 7B TDC C3/09BE: A546 LDA $46 C3/09C0: 29C0 AND #$C0 C3/09C2: 4A LSR A C3/09C3: 4A LSR A C3/09C4: 4A LSR A C3/09C5: 4A LSR A C3/09C6: 4A LSR A C3/09C7: 9B TXY C3/09C8: AA TAX C3/09C9: C220 REP #$20 (16 bit memory/accum.) C3/09CB: BFDB09C3 LDA $C309DB,X C3/09CF: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/09D2: E220 SEP #$20 (8 bit memory/accum.) C3/09D4: 202112 JSR $1221 (draw the sprites!) C3/09D7: 38 SEC (not done yet with this queue) C3/09D8: 60 RTS C3/09D9: 18 CLC (this queue can be removed) C3/09DA: 60 RTS Data: pointers for OAM arrow cycle C3/09DB: E309 C3/09DD: EC09 C3/09DF: F509 C3/09E1: E309 OAM format: pointer, timer, pointer, timer, pointer, end C3/09E3: FE09 C3/09E5: 10 C3/09E6: 070A C3/09E8: 10 C3/09E9: FE09 C3/09EB: FF C3/09EC: FE09 C3/09EE: 10 C3/09EF: 100A C3/09F1: 10 C3/09F2: FE09 C3/09F4: FF C3/09F5: FE09 C3/09F7: 10 C3/09F8: 190A C3/09FA: 10 C3/09FB: FE09 C3/09FD: FF Data: OAM arrow position....GENERAL PURPOSE! format is X Y state sprite, X and Y are relative to starting and current positions C3/09FE: 02 (no idea...) C3/09FF: 0000023E (upper arrow, 02 is not flashing) (position 0,0, disabled, arrow pointing up) C3/0A03: 000802BE (lower arrow, 02 is not flashing) (position 0,8, disabled, arrow pointing down) C3/0A07: 02 (no idea...) C3/0A08: 0000123E (upper arrow, 12 is flashing) (position 0,0, enabled, arrow pointing up) C3/0A0C: 000812BE (lower arrow, 12 is flashing) (position 0,8, enabled, arrow pointing down) C3/0A10: 02 (no idea...) C3/0A11: 0000123E (upper arrow) (position 0,0, enabled, arrow pointing up) C3/0A15: 000802BE (lower arrow) (position 0,8, disabled, arrow pointing down) C3/0A19: 02 (no idea...) C3/0A1A: 0000023E (upper arrow) (position 0,0, disabled, arrow pointing up) C3/0A1E: 000812BE (lower arrow) (position 0,8, enabled, arrow pointing down) C3/0A22: A903 LDA #$03 C3/0A24: A0120B LDY #$0B12 C3/0A27: 207311 JSR $1173 (put C3/0B12 in the queue) C3/0A2A: 8A TXA C3/0A2B: 8560 STA $60 C3/0A2D: 8B PHB C3/0A2E: A97E LDA #$7E C3/0A30: 48 PHA C3/0A31: AB PLB C3/0A32: A400 LDY $00 C3/0A34: 20F10A JSR $0AF1 C3/0A37: A400 LDY $00 C3/0A39: 20CC0A JSR $0ACC C3/0A3C: C220 REP #$20 (16 bit memory/accum.) C3/0A3E: A91500 LDA #$0015 C3/0A41: 9D4A34 STA $344A,X C3/0A44: E220 SEP #$20 (8 bit memory/accum.) C3/0A46: 200612 JSR $1206 C3/0A49: AB PLB C3/0A4A: 60 RTS C3/0A4B: A903 LDA #$03 C3/0A4D: A0120B LDY #$0B12 C3/0A50: 207311 JSR $1173 (put C3/0B12 in the queue) C3/0A53: 8A TXA C3/0A54: 8561 STA $61 C3/0A56: 8B PHB C3/0A57: A97E LDA #$7E C3/0A59: 48 PHA C3/0A5A: AB PLB C3/0A5B: A00100 LDY #$0001 C3/0A5E: 20F10A JSR $0AF1 C3/0A61: A00100 LDY #$0001 C3/0A64: 20CC0A JSR $0ACC C3/0A67: C220 REP #$20 (16 bit memory/accum.) C3/0A69: A94500 LDA #$0045 C3/0A6C: 9D4A34 STA $344A,X C3/0A6F: E220 SEP #$20 (8 bit memory/accum.) C3/0A71: 200612 JSR $1206 C3/0A74: AB PLB C3/0A75: 60 RTS C3/0A76: A903 LDA #$03 C3/0A78: A0120B LDY #$0B12 C3/0A7B: 207311 JSR $1173 (put C3/0B12 in the queue) C3/0A7E: 8A TXA C3/0A7F: 8562 STA $62 C3/0A81: 8B PHB C3/0A82: A97E LDA #$7E C3/0A84: 48 PHA C3/0A85: AB PLB C3/0A86: A00200 LDY #$0002 C3/0A89: 20F10A JSR $0AF1 C3/0A8C: A00200 LDY #$0002 C3/0A8F: 20CC0A JSR $0ACC C3/0A92: C220 REP #$20 (16 bit memory/accum.) C3/0A94: A97500 LDA #$0075 C3/0A97: 9D4A34 STA $344A,X C3/0A9A: E220 SEP #$20 (8 bit memory/accum.) C3/0A9C: 200612 JSR $1206 C3/0A9F: AB PLB C3/0AA0: 60 RTS C3/0AA1: A903 LDA #$03 C3/0AA3: A0120B LDY #$0B12 C3/0AA6: 207311 JSR $1173 (put C3/0B12 in the queue) C3/0AA9: 8A TXA C3/0AAA: 8563 STA $63 C3/0AAC: 8B PHB C3/0AAD: A97E LDA #$7E C3/0AAF: 48 PHA C3/0AB0: AB PLB C3/0AB1: A00300 LDY #$0003 C3/0AB4: 20F10A JSR $0AF1 C3/0AB7: A00300 LDY #$0003 C3/0ABA: 20CC0A JSR $0ACC C3/0ABD: C220 REP #$20 (16 bit memory/accum.) C3/0ABF: A9A500 LDA #$00A5 C3/0AC2: 9D4A34 STA $344A,X C3/0AC5: E220 SEP #$20 (8 bit memory/accum.) C3/0AC7: 200612 JSR $1206 C3/0ACA: AB PLB C3/0ACB: 60 RTS C3/0ACC: DA PHX C3/0ACD: DA PHX (o_O, maybe this should be PHY? Y isn't touched at all, but still) C3/0ACE: BB TYX C3/0ACF: B575 LDA $75,X C3/0AD1: 2918 AND #$18 C3/0AD3: 4A LSR A C3/0AD4: 4A LSR A C3/0AD5: AA TAX C3/0AD6: C220 REP #$20 (16 bit memory/accum.) C3/0AD8: BFE90AC3 LDA $C30AE9,X C3/0ADC: 7A PLY (Y is lost) C3/0ADD: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/0AE0: E220 SEP #$20 (8 bit memory/accum.) C3/0AE2: A9C3 LDA #$C3 C3/0AE4: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/0AE7: FA PLX (no stack mismatch, but something has to have bugged... Kejardon claims this to be intentional) C3/0AE8: 60 RTS C3/0AE9: 8C0B C3/0AEB: C40B C3/0AED: FC0B C3/0AEF: 340C C3/0AF1: DA PHX C3/0AF2: BB TYX C3/0AF3: A902 LDA #$02 C3/0AF5: 2445 BIT $45 C3/0AF7: D006 BNE $0AFF C3/0AF9: B575 LDA $75,X C3/0AFB: 8920 BIT #$20 C3/0AFD: F007 BEQ $0B06 C3/0AFF: C220 REP #$20 (16 bit memory/accum.) C3/0B01: A91A00 LDA #$001A C3/0B04: 8005 BRA $0B0B C3/0B06: C220 REP #$20 (16 bit memory/accum.) C3/0B08: A90E00 LDA #$000E C3/0B0B: FA PLX C3/0B0C: 9DCA33 STA $33CA,X C3/0B0F: E220 SEP #$20 (8 bit memory/accum.) C3/0B11: 60 RTS C3/0B12: AA TAX C3/0B13: 7C160B JMP ($0B16,X) C3/0B16: 200B C3/0B18: 2A0B C3/0B1A: 380B C3/0B1C: 4C0B C3/0B1E: 5E0B C3/0B20: A62D LDX $2D C3/0B22: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/0B25: A901 LDA #$01 C3/0B27: 9D4A36 STA $364A,X C3/0B2A: A62D LDX $2D C3/0B2C: BDC935 LDA $35C9,X C3/0B2F: 3005 BMI $0B36 C3/0B31: 202112 JSR $1221 (draw the sprites!) C3/0B34: 38 SEC (not done yet with this queue) C3/0B35: 60 RTS C3/0B36: 18 CLC (this queue can be removed) C3/0B37: 60 RTS C3/0B38: A62D LDX $2D C3/0B3A: C220 REP #$20 (16 bit memory/accum.) C3/0B3C: A90100 LDA #$0001 C3/0B3F: 9DCA34 STA $34CA,X C3/0B42: A90C00 LDA #$000C C3/0B45: 9D4933 STA $3349,X C3/0B48: E220 SEP #$20 (8 bit memory/accum.) C3/0B4A: 8012 BRA $0B5E C3/0B4C: A62D LDX $2D C3/0B4E: C220 REP #$20 (16 bit memory/accum.) C3/0B50: A9FFFF LDA #$FFFF (TDC then DEC would do the same) C3/0B53: 9DCA34 STA $34CA,X C3/0B56: A90C00 LDA #$000C C3/0B59: 9D4933 STA $3349,X C3/0B5C: E220 SEP #$20 (8 bit memory/accum.) C3/0B5E: A62D LDX $2D C3/0B60: A904 LDA #$04 C3/0B62: 9D4936 STA $3649,X (execute the fifth entry in this queue's jump table) C3/0B65: C220 REP #$20 (16 bit memory/accum.) C3/0B67: BD4933 LDA $3349,X C3/0B6A: F014 BEQ $0B80 C3/0B6C: BDCA34 LDA $34CA,X C3/0B6F: 18 CLC C3/0B70: 7DCA33 ADC $33CA,X C3/0B73: 9DCA33 STA $33CA,X C3/0B76: DE4933 DEC $3349,X C3/0B79: E220 SEP #$20 (8 bit memory/accum.) C3/0B7B: 202112 JSR $1221 (draw the sprites!) C3/0B7E: 38 SEC (not done yet with this queue) C3/0B7F: 60 RTS C3/0B80: E220 SEP #$20 (8 bit memory/accum.) C3/0B82: A901 LDA #$01 C3/0B84: 9D4936 STA $3649,X (execute the second entry in this queue's jump table) C3/0B87: 202112 JSR $1221 (draw the sprites!) C3/0B8A: 38 SEC (not done yet with this queue) C3/0B8B: 60 RTS OAM data C3/0B8C: 8F0B C3/0B8E: FE (...) C3/0B8F: 0D (13 sets of data) C3/0B90: 80006020 (position 80,00, 60 is ?, 20 is ?) C3/0B94: 90006220 (position 90,00, 62 is ?, 20 is ?) C3/0B98: 80106420 (position 80,10, 64 is ?, 20 is ?) C3/0B9C: 90106620 (position 90,10, 66 is ?, 20 is ?) C3/0BA0: 20006820 (position 20,00, 68 is ?, 20 is ?) C3/0BA4: 20086920 (position 20,08, 69 is ?, 20 is ?) C3/0BA8: 20106A20 (position 20,10, 6A is ?, 20 is ?) C3/0BAC: 20186B20 (position 20,18, 6B is ?, 20 is ?) C3/0BB0: 20206C20 (position 20,20, 6C is ?, 20 is ?) C3/0BB4: 00206D20 (position 00,20, 6D is ?, 20 is ?) C3/0BB8: 08206E20 (position 08,20, 6E is ?, 20 is ?) C3/0BBC: 10206F20 (position 10,20, 6F is ?, 20 is ?) C3/0BC0: 18207820 (position 18,20, 78 is ?, 20 is ?) C3/0BC4: C70B C3/0BC6: FE (...) C3/0BC7: 0D (13 sets of data) C3/0BC8: 80008022 (position 80,00, 80 is ?, 22 is ?) C3/0BCC: 90008222 (position 90,00, 82 is ?, 22 is ?) C3/0BD0: 80108422 (position 80,10, 84 is ?, 22 is ?) C3/0BD4: 90108622 (position 90,10, 86 is ?, 22 is ?) C3/0BD8: 20008822 (position 20,00, 88 is ?, 22 is ?) C3/0BDC: 20088922 (position 20,08, 89 is ?, 22 is ?) C3/0BE0: 20108A22 (position 20,10, 8A is ?, 22 is ?) C3/0BE4: 20188B22 (position 20,18, 8B is ?, 22 is ?) C3/0BE8: 20208C22 (position 20,20, 8C is ?, 22 is ?) C3/0BEC: 00208D22 (position 00,20, 8D is ?, 22 is ?) C3/0BF0: 08208E22 (position 08,20, 8E is ?, 22 is ?) C3/0BF4: 10208F22 (position 10,20, 8F is ?, 22 is ?) C3/0BF8: 18209822 (position 18,20, 98 is ?, 22 is ?) C3/0BFC: FF0B C3/0BFE: FE (...) C3/0BFF: 0D (13 sets of data) C3/0C00: 8000A024 C3/0C04: 9000A224 C3/0C08: 8010A424 C3/0C0C: 9010A624 C3/0C10: 2000A824 C3/0C14: 2008A924 C3/0C18: 2010AA24 C3/0C1C: 2018AB24 C3/0C20: 2020AC24 C3/0C24: 0020AD24 C3/0C28: 0820AE24 C3/0C2C: 1020AF24 C3/0C30: 1820B824 C3/0C34: 370C C3/0C36: FE (...) C3/0C37: 0D (13 sets of data) C3/0C38: 8000C026 C3/0C3C: 9000C226 C3/0C40: 8010C426 C3/0C44: 9010C626 C3/0C48: 2000C826 C3/0C4C: 2008C926 C3/0C50: 2010CA26 C3/0C54: 2018CB26 C3/0C58: 2020CC26 C3/0C5C: 0020CD26 C3/0C60: 0820CE26 C3/0C64: 1020CF26 C3/0C68: 1820D826 Display a character's level, HP, and MP This same function is used for main menu, skills screen, status screen, equipment, relics, or save screen C3/0C6C: 86EF STX $EF (save position to look in rom) C3/0C6E: A9C3 LDA #$C3 C3/0C70: 85F1 STA $F1 (C3/xxxx holds the stats for this character) C3/0C72: A667 LDX $67 C3/0C74: BD0800 LDA $0008,X (Level) C3/0C77: 20E004 JSR $04E0 C3/0C7A: C220 REP #$20 C3/0C7C: A7EF LDA [$EF] (load stat position for tilemap) C3/0C7E: AA TAX C3/0C7F: E220 SEP #$20 C3/0C81: 20B604 JSR $04B6 C3/0C84: A667 LDX $67 C3/0C86: BD0B00 LDA $000B,X (maximum HP, high byte) C3/0C89: 85F3 STA $F3 C3/0C8B: BD0C00 LDA $000C,X (maximum HP, low byte) C3/0C8E: 85F4 STA $F4 C3/0C90: 20650D JSR $0D65 (boost HP according to equipment) C3/0C93: 20920D JSR $0D92 (truncate HP display to 9999) C3/0C96: 202E05 JSR $052E (convert to displayable digits) C3/0C99: A00400 LDY #$0004 C3/0C9C: 20210D JSR $0D21 C3/0C9F: A467 LDY $67 C3/0CA1: 209A2B JSR $2B9A C3/0CA4: B90900 LDA $0009,Y (current HP, high byte) C3/0CA7: 85F3 STA $F3 C3/0CA9: B90A00 LDA $000A,Y (current HP, low byte) C3/0CAC: 85F4 STA $F4 C3/0CAE: 202E05 JSR $052E (convert to displayable digits) C3/0CB1: A00200 LDY #$0002 C3/0CB4: 20210D JSR $0D21 C3/0CB7: 202B0D JSR $0D2B (check to see if this character knows magic) C3/0CBA: 9033 BCC $0CEF (branch if character doesn't know any magic) C3/0CBC: A667 LDX $67 C3/0CBE: BD0F00 LDA $000F,X (maximum MP, high byte) C3/0CC1: 85F3 STA $F3 C3/0CC3: BD1000 LDA $0010,X (maximum MP, low byte) C3/0CC6: 85F4 STA $F4 C3/0CC8: 20650D JSR $0D65 (boost MP according to equipment) C3/0CCB: 209F0D JSR $0D9F (truncate MP display to 999) C3/0CCE: 202E05 JSR $052E (convert to displayable digits) C3/0CD1: A00800 LDY #$0008 C3/0CD4: 20210D JSR $0D21 C3/0CD7: A467 LDY $67 C3/0CD9: 20BC2B JSR $2BBC C3/0CDC: B90D00 LDA $000D,Y (current MP, high byte) C3/0CDF: 85F3 STA $F3 C3/0CE1: B90E00 LDA $000E,Y (current MP, low byte) C3/0CE4: 85F4 STA $F4 C3/0CE6: 202E05 JSR $052E (convert to displayable digits) C3/0CE9: A00600 LDY #$0006 C3/0CEC: 4C210D JMP $0D21 (BRA fool!) C3/0CEF: A28B9E LDX #$9E8B C3/0CF2: 8E8121 STX $2181 C3/0CF5: C220 REP #$20 (16 bit memory/accum.) C3/0CF7: A00600 LDY #$0006 C3/0CFA: B7EF LDA [$EF],Y C3/0CFC: 38 SEC C3/0CFD: E90600 SBC #$0006 C3/0D00: 8F899E7E STA $7E9E89 C3/0D04: E220 SEP #$20 (8 bit memory/accum.) C3/0D06: A20C00 LDX #$000C C3/0D09: A9FF LDA #$FF C3/0D0B: 8D8021 STA $2180 C3/0D0E: CA DEX C3/0D0F: D0FA BNE $0D0B (draw 12 spaces) C3/0D11: 9C8021 STZ $2180 (end this string) C3/0D14: A0899E LDY #$9E89 (JMP $7FD9 fool!) C3/0D17: 84E7 STY $E7 C3/0D19: A97E LDA #$7E C3/0D1B: 85E9 STA $E9 C3/0D1D: 20FF02 JSR $02FF (JMP fool!) C3/0D20: 60 RTS C3/0D21: C220 REP #$20 (16 bit memory/accum.) C3/0D23: B7EF LDA [$EF],Y C3/0D25: AA TAX C3/0D26: E220 SEP #$20 (8 bit memory/accum.) C3/0D28: 4C9004 JMP $0490 Determine if a character actually knows magic C3/0D2B: AD691A LDA $1A69 (from C3/0CB7) C3/0D2E: 0D6A1A ORA $1A6A C3/0D31: 0D6B1A ORA $1A6B C3/0D34: 0D6C1A ORA $1A6C C3/0D37: D02A BNE $0D63 (branch if you have at least one esper) C3/0D39: A667 LDX $67 C3/0D3B: 7B TDC C3/0D3C: BD0000 LDA $0000,X (character ID) C3/0D3F: C90C CMP #$0C C3/0D41: F020 BEQ $0D63 (Branch if it's Gogo) C3/0D43: B01C BCS $0D61 (Branch if it's Umaro or higher) C3/0D45: 8D0242 STA $4202 (we're here if character is below Gogo, and you have no espers) C3/0D48: A936 LDA #$36 C3/0D4A: 8D0342 STA $4203 (#$36 as multiplier) C3/0D4D: EA NOP C3/0D4E: EA NOP C3/0D4F: EA NOP C3/0D50: A03600 LDY #$0036 (TAY?) C3/0D53: AE1642 LDX $4216 (load character * spell total) C3/0D56: BD6E1A LDA $1A6E,X (load spell at X) C3/0D59: C9FF CMP #$FF (learned it?) C3/0D5B: F006 BEQ $0D63 (branch if so) C3/0D5D: E8 INX C3/0D5E: 88 DEY C3/0D5F: D0F5 BNE $0D56 (branch if we haven't checked every spell) C3/0D61: 18 CLC (used by C3/0C6C, says that this character doesn't know magic) C3/0D62: 60 RTS C3/0D63: 38 SEC (flag MP as ok to display) C3/0D64: 60 RTS This is called by both HP and MP to adjust their values based on boosting equipment C3/0D65: C220 REP #$20 (16 bit memory/accum.) C3/0D67: A5F3 LDA $F3 (load HP/MP) C3/0D69: 29FF3F AND #$3FFF (only keep the HP/MP) C3/0D6C: 85E7 STA $E7 (save it to a temp location) C3/0D6E: A5F3 LDA $F3 (load HP/MP again) C3/0D70: 2900C0 AND #$C000 (this time keep only the boosts) C3/0D73: 18 CLC (this is crucial) C3/0D74: 2A ROL A C3/0D75: 2A ROL A C3/0D76: 2A ROL A C3/0D77: 2A ROL A (transfer boosts to lower two bits) C3/0D78: AA TAX (index them) C3/0D79: A5E7 LDA $E7 (load our non-boosted HP/MP) C3/0D7B: 7C7E0D JMP ($0D7E,X) C3/0D7E: 860D (no HP/MP boost) C3/0D80: 880D (25% HP/MP boost) C3/0D82: 890D (50% HP/MP boost) C3/0D84: 870D (12.5% HP/MP boost) C3/0D86: 7B TDC C3/0D87: 4A LSR A C3/0D88: 4A LSR A C3/0D89: 4A LSR A C3/0D8A: 18 CLC C3/0D8B: 65E7 ADC $E7 (add in the non-boosted HP/MP) C3/0D8D: 85F3 STA $F3 (save new boosted HP/MP) C3/0D8F: E220 SEP #$20 (8 bit memory/accum.) C3/0D91: 60 RTS If you somehow got more than 9999 HP, trim display to 9999 C3/0D92: A6F3 LDX $F3 C3/0D94: E01027 CPX #$2710 C3/0D97: 9005 BCC $0D9E C3/0D99: A20F27 LDX #$270F C3/0D9C: 86F3 STX $F3 C3/0D9E: 60 RTS If you somehow got more than 999 MP, trim display to 999 C3/0D9F: A6F3 LDX $F3 C3/0DA1: E0E803 CPX #$03E8 C3/0DA4: 9005 BCC $0DAB C3/0DA6: A2E703 LDX #$03E7 C3/0DA9: 86F3 STX $F3 C3/0DAB: 60 RTS C3/0DAC: AC2F02 LDY $022F C3/0DAF: 844F STY $4F C3/0DB1: A54F LDA $4F C3/0DB3: 854D STA $4D C3/0DB5: AD3102 LDA $0231 C3/0DB8: 8064 BRA $0E1E C3/0DBA: 7B TDC C3/0DBB: A54B LDA $4B C3/0DBD: 0A ASL A C3/0DBE: AA TAX C3/0DBF: A528 LDA $28 C3/0DC1: 0A ASL A C3/0DC2: A8 TAY C3/0DC3: C220 REP #$20 (16 bit memory/accum.) C3/0DC5: BD3602 LDA $0236,X C3/0DC8: 85E7 STA $E7 C3/0DCA: B93602 LDA $0236,Y C3/0DCD: 9D3602 STA $0236,X C3/0DD0: A5E7 LDA $E7 C3/0DD2: 993602 STA $0236,Y C3/0DD5: BD3E02 LDA $023E,X C3/0DD8: 85E7 STA $E7 C3/0DDA: B93E02 LDA $023E,Y C3/0DDD: 9D3E02 STA $023E,X C3/0DE0: A5E7 LDA $E7 C3/0DE2: 993E02 STA $023E,Y C3/0DE5: E220 SEP #$20 (8 bit memory/accum.) C3/0DE7: 7B TDC C3/0DE8: A54B LDA $4B C3/0DEA: AA TAX C3/0DEB: A528 LDA $28 C3/0DED: A8 TAY C3/0DEE: BD4602 LDA $0246,X C3/0DF1: 85E0 STA $E0 C3/0DF3: B94602 LDA $0246,Y C3/0DF6: 9D4602 STA $0246,X C3/0DF9: A5E0 LDA $E0 C3/0DFB: 994602 STA $0246,Y C3/0DFE: 60 RTS C3/0DFF: 7B TDC C3/0E00: A528 LDA $28 C3/0E02: 0A ASL A C3/0E03: AA TAX C3/0E04: BC3602 LDY $0236,X C3/0E07: 844D STY $4D C3/0E09: 60 RTS C3/0E0A: 7B TDC C3/0E0B: A528 LDA $28 C3/0E0D: 0A ASL A C3/0E0E: AA TAX C3/0E0F: BC3E02 LDY $023E,X C3/0E12: 844F STY $4F C3/0E14: A54F LDA $4F C3/0E16: 854D STA $4D C3/0E18: A528 LDA $28 C3/0E1A: AA TAX C3/0E1B: BD4602 LDA $0246,X C3/0E1E: 854A STA $4A C3/0E20: A550 LDA $50 C3/0E22: 38 SEC C3/0E23: E54A SBC $4A C3/0E25: 854E STA $4E C3/0E27: 60 RTS C3/0E28: A00000 LDY #$0000 (LDY $00..., from C3/1890, C3/319F, C3/3941, C3/448A, C3/4CCC, C3/5D7A, C3/674C, C3/755C, C3/7E01, C3/8F10, C3/90E1, C3/AB43, C3/AD68, C3/AE8A, C3/AE90, C3/B930) C3/0E2B: 8C1621 STY $2116 C3/0E2E: A04938 LDY #$3849 C3/0E31: 8C0243 STY $4302 (set address, 7E/3849) C3/0E34: 8052 BRA $0E88 (BRA $0E85...) C3/0E36: A00004 LDY #$0400 (from C3/674F, C3/7E04, C3/8F13, C3/90E4, C3/AB46, C3/AD6B) C3/0E39: 8C1621 STY $2116 C3/0E3C: A04940 LDY #$4049 C3/0E3F: 8C0243 STY $4302 (set address, 7E/4049) C3/0E42: 8044 BRA $0E88 (BRA $0E85...) C3/0E44: A00008 LDY #$0800 (from C3/6752, C3/B933) C3/0E47: 8C1621 STY $2116 C3/0E4A: A04948 LDY #$4849 C3/0E4D: 8C0243 STY $4302 (set address, 7E/4849) C3/0E50: 8036 BRA $0E88 (BRA $0E85...) C3/0E52: A00010 LDY #$1000 (from C3/1893, C3/3181, C3/38B7, C3/4465, C3/46FB, C3/4CC6, C3/5827, C3/5D77, C3/6720, C3/7543, C3/7DCC, C3/8A23, C3/8EFB, C3/90D8, C3/AB1E, C3/AD44, C3/AE4B, C3/B927) C3/0E55: 8C1621 STY $2116 C3/0E58: A04958 LDY #$5849 C3/0E5B: 8C0243 STY $4302 (set address, 7E/5849) C3/0E5E: 8028 BRA $0E88 (BRA $0E85...) C3/0E60: A00018 LDY #$1800 (from C3/B92A) C3/0E63: 8C1621 STY $2116 C3/0E66: A04968 LDY #$6849 C3/0E69: 8C0243 STY $4302 (set address, 7E/6849) C3/0E6C: 801A BRA $0E88 (BRA $0E85...) C3/0E6E: A00040 LDY #$4000 (from C3/1896, C3/2D59, C3/31A2, C3/3944, C3/448D, C3/4714, C3/4D24, C3/5D7D, C3/6758, C3/7549, C3/7E07, C3/8F19, C3/9048, C3/9090, C3/910D, C3/AB24, C3/AD59, C3/AE70, C3/B948) C3/0E71: 8C1621 STY $2116 C3/0E74: A04978 LDY #$7849 C3/0E77: 8C0243 STY $4302 (set address, 7E/7849) C3/0E7A: 800C BRA $0E88 (BRA $0E85...) C3/0E7C: A00048 LDY #$4800 (from C3/1899, C3/31A5, C3/5D80, C3/7E0A, C3/AD5C, C3/B94B) C3/0E7F: 8C1621 STY $2116 C3/0E82: A04988 LDY #$8849 C3/0E85: 8C0243 STY $4302 (set address, 7E/8849) C3/0E88: A901 LDA #$01 C3/0E8A: 8D0043 STA $4300 C3/0E8D: A918 LDA #$18 C3/0E8F: 8D0143 STA $4301 (register address becomes $2118) C3/0E92: A97E LDA #$7E C3/0E94: 8D0443 STA $4304 (set bank) C3/0E97: A00010 LDY #$1000 C3/0E9A: 8C0543 STY $4305 (amount to transfer) C3/0E9D: A901 LDA #$01 C3/0E9F: 8D0B42 STA $420B (turn on channel 0 of DMA) C3/0EA2: 60 RTS C3/0EA3: A5AE LDA $AE C3/0EA5: C921 CMP #$21 C3/0EA7: F008 BEQ $0EB1 (if $AE is already #$21, don't output any sound for moving the finger) C3/0EA9: A921 LDA #$21 C3/0EAB: 85AE STA $AE C3/0EAD: 8F402100 STA $002140 (here if you can move and have moved, output sound and trigger no more sound) C3/0EB1: 60 RTS Makes a Click Sound C3/0EB2: A920 LDA #$20 (20 is the familiar "click" sound) C3/0EB4: 8F402100 STA $002140 C3/0EB8: 60 RTS Makes the Healing Sound C3/0EB9: A923 LDA #$23 (23 is the "heal" sound, like when you use a potion) C3/0EBB: 8F402100 STA $002140 C3/0EBF: 60 RTS Makes the Buzzer Sound C3/0EC0: A922 LDA #$22 (22 is the "buzz" sound, as in "No, you can't do that") C3/0EC2: 8F402100 STA $002140 C3/0EC6: 60 RTS Makes the Shift Sound C3/0EC7: A924 LDA #$24 (24 is the "shift" sound, deleting letters while naming a character) C3/0EC9: 8F402100 STA $002140 C3/0ECD: 60 RTS Makes the Cha-ching Sound (I'm guessing) C3/0ECE: A9BF LDA #$BF C3/0ED0: 8F011300 STA $001301 C3/0ED4: A918 LDA #$18 C3/0ED6: 8F001300 STA $001300 C3/0EDA: A980 LDA #$80 C3/0EDC: 8F021300 STA $001302 C3/0EE0: 220400C5 JSL $C50004 C3/0EE4: 60 RTS Makes the "Trueeeeeeee" Sound C3/0EE5: A9C5 LDA #$C5 C3/0EE7: 80E7 BRA $0ED0 C3/0EE9: A00000 LDY #$0000 C3/0EEC: 8414 STY $14 C3/0EEE: A04938 LDY #$3849 C3/0EF1: 8416 STY $16 C3/0EF3: A97E LDA #$7E C3/0EF5: 8518 STA $18 C3/0EF7: A00010 LDY #$1000 C3/0EFA: 8412 STY $12 C3/0EFC: 60 RTS C3/0EFD: A00000 LDY #$0000 C3/0F00: 8414 STY $14 C3/0F02: A04938 LDY #$3849 C3/0F05: 8416 STY $16 C3/0F07: A97E LDA #$7E C3/0F09: 8518 STA $18 C3/0F0B: A00008 LDY #$0800 C3/0F0E: 8412 STY $12 C3/0F10: 60 RTS C3/0F11: A00004 LDY #$0400 C3/0F14: 8414 STY $14 C3/0F16: A04940 LDY #$4049 C3/0F19: 8416 STY $16 C3/0F1B: A97E LDA #$7E C3/0F1D: 8518 STA $18 C3/0F1F: A00008 LDY #$0800 C3/0F22: 8412 STY $12 C3/0F24: 60 RTS C3/0F25: A00040 LDY #$4000 C3/0F28: 8414 STY $14 C3/0F2A: A04978 LDY #$7849 C3/0F2D: 8416 STY $16 C3/0F2F: A97E LDA #$7E C3/0F31: 8518 STA $18 C3/0F33: A00010 LDY #$1000 C3/0F36: 8412 STY $12 C3/0F38: 60 RTS C3/0F39: A00040 LDY #$4000 C3/0F3C: 8414 STY $14 C3/0F3E: A04978 LDY #$7849 C3/0F41: 8416 STY $16 C3/0F43: A97E LDA #$7E C3/0F45: 8518 STA $18 C3/0F47: A00008 LDY #$0800 C3/0F4A: 8412 STY $12 C3/0F4C: 60 RTS C3/0F4D: A00044 LDY #$4400 C3/0F50: 8414 STY $14 C3/0F52: A04980 LDY #$8049 C3/0F55: 8416 STY $16 C3/0F57: A97E LDA #$7E C3/0F59: 8518 STA $18 C3/0F5B: A00008 LDY #$0800 C3/0F5E: 8412 STY $12 C3/0F60: 60 RTS C3/0F61: A00040 LDY #$4000 C3/0F64: 841B STY $1B C3/0F66: A04978 LDY #$7849 C3/0F69: 841D STY $1D C3/0F6B: A97E LDA #$7E C3/0F6D: 851F STA $1F C3/0F6F: A00008 LDY #$0800 C3/0F72: 8419 STY $19 C3/0F74: 60 RTS C3/0F75: A00044 LDY #$4400 C3/0F78: 841B STY $1B C3/0F7A: A04980 LDY #$8049 C3/0F7D: 841D STY $1D C3/0F7F: A97E LDA #$7E C3/0F81: 851F STA $1F C3/0F83: A00008 LDY #$0800 C3/0F86: 8419 STY $19 C3/0F88: 60 RTS C3/0F89: 641B STZ $1B C3/0F8B: 641C STZ $1C C3/0F8D: 60 RTS Copy a block of 32 bytes Coming in: 8-bit A holds bank source 16-bit Y holds destination 16-bit X holds address source C3/0F8E: 85ED STA $ED (source bank) C3/0F90: 84E7 STY $E7 (destination address) C3/0F92: 86EB STX $EB (source address) C3/0F94: A97E LDA #$7E C3/0F96: 85E9 STA $E9 (destination bank) C3/0F98: A400 LDY $00 C3/0F9A: C220 REP #$20 (16 bit memory/accum.) C3/0F9C: B7EB LDA [$EB],Y C3/0F9E: 97E7 STA [$E7],Y C3/0FA0: C8 INY C3/0FA1: C8 INY C3/0FA2: C02000 CPY #$0020 C3/0FA5: D0F5 BNE $0F9C C3/0FA7: E220 SEP #$20 (8 bit memory/accum.) C3/0FA9: 60 RTS C3/0FAA: 48 PHA C3/0FAB: 84E7 STY $E7 C3/0FAD: 86EB STX $EB C3/0FAF: A97E LDA #$7E C3/0FB1: 85E9 STA $E9 C3/0FB3: A900 LDA #$00 C3/0FB5: A0DD0F LDY #$0FDD C3/0FB8: 207311 JSR $1173 (put C3/0FDD in the queue) C3/0FBB: 68 PLA C3/0FBC: 9FCA377E STA $7E37CA,X C3/0FC0: A5E9 LDA $E9 C3/0FC2: 9FC9367E STA $7E36C9,X C3/0FC6: A5ED LDA $ED C3/0FC8: 9FCA367E STA $7E36CA,X C3/0FCC: C220 REP #$20 (16 bit memory/accum.) C3/0FCE: A5E7 LDA $E7 C3/0FD0: 9FC9337E STA $7E33C9,X C3/0FD4: A5EB LDA $EB C3/0FD6: 9F49347E STA $7E3449,X C3/0FDA: E220 SEP #$20 (8 bit memory/accum.) C3/0FDC: 60 RTS C3/0FDD: AA TAX C3/0FDE: 7CE10F JMP ($0FE1,X) C3/0FE1: E50F C3/0FE3: F60F C3/0FE5: A62D LDX $2D C3/0FE7: A91F LDA #$1F C3/0FE9: 9D4933 STA $3349,X C3/0FEC: A500 LDA $00 C3/0FEE: 9D4A33 STA $334A,X C3/0FF1: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/0FF4: 38 SEC (not done yet with this queue) C3/0FF5: 60 RTS C3/0FF6: A62D LDX $2D C3/0FF8: BDC935 LDA $35C9,X C3/0FFB: D035 BNE $1032 C3/0FFD: BDCA37 LDA $37CA,X C3/1000: 9DC935 STA $35C9,X C3/1003: BDC936 LDA $36C9,X C3/1006: 85E2 STA $E2 C3/1008: BDCA36 LDA $36CA,X C3/100B: 85E5 STA $E5 C3/100D: C220 REP #$20 (16 bit memory/accum.) C3/100F: BDC933 LDA $33C9,X C3/1012: 85E0 STA $E0 C3/1014: BD4934 LDA $3449,X C3/1017: 85E3 STA $E3 C3/1019: BD4933 LDA $3349,X C3/101C: 85F1 STA $F1 C3/101E: 203710 JSR $1037 C3/1021: E220 SEP #$20 (8 bit memory/accum.) C3/1023: AE2D00 LDX $002D C3/1026: BD4933 LDA $3349,X C3/1029: F005 BEQ $1030 C3/102B: DE4933 DEC $3349,X C3/102E: D002 BNE $1032 C3/1030: 18 CLC (this queue can be removed) C3/1031: 60 RTS C3/1032: DEC935 DEC $35C9,X C3/1035: 38 SEC (not done yet with this queue) C3/1036: 60 RTS C3/1037: A21000 LDX #$0010 C3/103A: A400 LDY $00 C3/103C: B7E0 LDA [$E0],Y C3/103E: 85E7 STA $E7 C3/1040: B7E3 LDA [$E3],Y C3/1042: 85E9 STA $E9 C3/1044: 205110 JSR $1051 C3/1047: A5E7 LDA $E7 C3/1049: 97E0 STA [$E0],Y C3/104B: C8 INY C3/104C: C8 INY C3/104D: CA DEX C3/104E: D0EC BNE $103C C3/1050: 60 RTS C3/1051: A5E7 LDA $E7 C3/1053: 291F00 AND #$001F C3/1056: 85EB STA $EB C3/1058: A5E9 LDA $E9 C3/105A: 291F00 AND #$001F C3/105D: 38 SEC C3/105E: E5EB SBC $EB C3/1060: F00C BEQ $106E C3/1062: 9008 BCC $106C C3/1064: C5F1 CMP $F1 C3/1066: 9006 BCC $106E C3/1068: E6EB INC $EB C3/106A: 8002 BRA $106E C3/106C: C6EB DEC $EB C3/106E: A5E7 LDA $E7 C3/1070: 29E003 AND #$03E0 C3/1073: 85ED STA $ED C3/1075: A5E9 LDA $E9 C3/1077: 29E003 AND #$03E0 C3/107A: 38 SEC C3/107B: E5ED SBC $ED C3/107D: F01C BEQ $109B C3/107F: 9012 BCC $1093 C3/1081: 0A ASL A C3/1082: 0A ASL A C3/1083: 0A ASL A C3/1084: EB XBA C3/1085: C5F1 CMP $F1 C3/1087: 9012 BCC $109B C3/1089: 18 CLC C3/108A: A5ED LDA $ED C3/108C: 692000 ADC #$0020 C3/108F: 85ED STA $ED C3/1091: 8008 BRA $109B C3/1093: A5ED LDA $ED C3/1095: 38 SEC C3/1096: E92000 SBC #$0020 C3/1099: 85ED STA $ED C3/109B: A5E7 LDA $E7 C3/109D: 29007C AND #$7C00 C3/10A0: 85EF STA $EF C3/10A2: A5E9 LDA $E9 C3/10A4: 29007C AND #$7C00 C3/10A7: 38 SEC C3/10A8: E5EF SBC $EF C3/10AA: F01F BEQ $10CB C3/10AC: 9015 BCC $10C3 C3/10AE: E220 SEP #$20 C3/10B0: EB XBA C3/10B1: 4A LSR A C3/10B2: 4A LSR A C3/10B3: C220 REP #$20 (16 bit memory/accum.) C3/10B5: C5F1 CMP $F1 C3/10B7: 9012 BCC $10CB C3/10B9: 18 CLC C3/10BA: A5EF LDA $EF C3/10BC: 690004 ADC #$0400 C3/10BF: 85EF STA $EF C3/10C1: 8008 BRA $10CB C3/10C3: A5EF LDA $EF C3/10C5: 38 SEC C3/10C6: E90004 SBC #$0400 C3/10C9: 85EF STA $EF C3/10CB: A5EB LDA $EB C3/10CD: 05ED ORA $ED C3/10CF: 05EF ORA $EF C3/10D1: 85E7 STA $E7 C3/10D3: 60 RTS Data C3/10D4: 0000 C3/10D6: FF7F C3/10D8: FF7F C3/10DA: FF7F C3/10DC: FF7F C3/10DE: FF7F C3/10E0: FF7F C3/10E2: FF7F C3/10E4: FF7F C3/10E6: FF7F C3/10E8: FF7F C3/10EA: FF7F C3/10EC: FF7F C3/10EE: FF7F C3/10F0: FF7F C3/10F2: FF7F Data, loaded from C3/D15C via C3/0F8E We need a table for a bunch of zeroes? C3/10F4: 0000 C3/10F6: 0000 C3/10F8: 0000 C3/10FA: 0000 C3/10FC: 0000 C3/10FE: 0000 C3/1100: 0000 C3/1102: 0000 C3/1104: 0000 C3/1106: 0000 C3/1108: 0000 C3/110A: 0000 C3/110C: 0000 C3/110E: 0000 C3/1110: 0000 C3/1112: 0000 C3/1114: A600 LDX $00 C3/1116: 862D STX $2D (set queue position to 0) C3/1118: 862F STX $2F C3/111A: C220 REP #$20 (16 bit memory/accum.) C3/111C: 204E11 JSR $114E C3/111F: E210 SEP #$10 (8 bit index registers) C3/1121: A27E LDX #$7E C3/1123: DA PHX C3/1124: AB PLB (set bank to 7E) C3/1125: A200 LDX #$00 C3/1127: 9E4932 STZ $3249,X (zero this jump address) C3/112A: 9E4936 STZ $3649,X (zero this jump entry) C3/112D: 9EC935 STZ $35C9,X (zero this pointer to OAM) C3/1130: 9E4937 STZ $3749,X C3/1133: 9EC933 STZ $33C9,X C3/1136: 9E4934 STZ $3449,X C3/1139: 9EC934 STZ $34C9,X C3/113C: 9E4935 STZ $3549,X C3/113F: E8 INX C3/1140: E8 INX C3/1141: E080 CPX #$80 (have we done the whole "stack" yet?) C3/1143: D0E2 BNE $1127 (branch if not) C3/1145: A200 LDX #$00 C3/1147: DA PHX C3/1148: AB PLB (set bank to 0) C3/1149: E220 SEP #$20 (8 bit memory/accum.) C3/114B: C210 REP #$10 (16 bit index registers) C3/114D: 60 RTS Clean out all OAM data C3/114E: A600 LDX $00 C3/1150: A901E0 LDA #$E001 C3/1152: 9D0003 STA $0300,X C3/1155: E8 INX C3/1157: E8 INX C3/1158: A90100 LDA #$0001 (TDC then INC A...) C3/115A: 9D0003 STA $0300,X C3/115E: E8 INX C3/115F: E8 INX C3/1160: E00002 CPX #$0200 C3/1163: D0EB BNE $1150 C3/1165: A400 LDY $00 C3/1167: 98 TYA C3/1168: 990005 STA $0500,Y C3/116B: C8 INY C3/116C: C8 INY C3/116D: C02000 CPY #$0020 C3/1170: D0F6 BNE $1168 C3/1172: 60 RTS Queue up routines for OAM purposes Coming in: 8-bit A holds position in queue to execute? 16-bit Y holds address in bank C3 to execute C3/1173: AA TAX C3/1174: A97E LDA #$7E C3/1176: 48 PHA C3/1177: AB PLB C3/1178: 8A TXA C3/1179: 208B11 JSR $118B (set the jump address) C3/117C: E220 SEP #$20 (8 bit memory/accum.) C3/117E: A900 LDA #$00 C3/1180: 48 PHA C3/1181: AB PLB C3/1182: A52D LDA $2D C3/1184: 9F4A377E STA $7E374A,X C3/1188: E62F INC $2F C3/118A: 60 RTS C3/118B: EB XBA C3/118C: A900 LDA #$00 C3/118E: EB XBA C3/118F: 0A ASL A C3/1190: 0A ASL A C3/1191: 0A ASL A C3/1192: 0A ASL A C3/1193: C220 REP #$20 (16 bit memory/accum.) C3/1195: AA TAX C3/1196: BD4932 LDA $3249,X (load this jump address) C3/1199: D005 BNE $11A0 (branch if one exists) C3/119B: 98 TYA C3/119C: 9D4932 STA $3249,X (otherwise save the jump address here) C3/119F: 60 RTS C3/11A0: E8 INX C3/11A1: E8 INX C3/11A2: E08000 CPX #$0080 (have we run through the whole "stack?") C3/11A5: D0EF BNE $1196 (branch if not) C3/11A7: CA DEX C3/11A8: CA DEX C3/11A9: 98 TYA C3/11AA: 9D4932 STA $3249,X C3/11AD: 80FE BRA $11AD (Changing this to 80 ED unfreezes Novalia Spirit's Shop bug) C3/11AF: 60 RTS Execute the entire OAM queue C3/11B0: 8B PHB C3/11B1: A97E LDA #$7E C3/11B3: 48 PHA C3/11B4: AB PLB C3/11B5: A20003 LDX #$0300 C3/11B8: 860E STX $0E C3/11BA: A20005 LDX #$0500 C3/11BD: 8610 STX $10 C3/11BF: A903 LDA #$03 C3/11C1: 8533 STA $33 (LDX #$0003...) C3/11C3: 6434 STZ $34 (STX $34?) C3/11C5: A28000 LDX #$0080 C3/11C8: 8631 STX $31 C3/11CA: A600 LDX $00 C3/11CC: C220 REP #$20 (16 bit memory/accum.) C3/11CE: BD4932 LDA $3249,X (jump address) C3/11D1: F022 BEQ $11F5 (branch if none) C3/11D3: 862D STX $2D (save X's position for now) C3/11D5: DA PHX C3/11D6: 852B STA $2B (save the jump address) C3/11D8: E220 SEP #$20 (8 bit memory/accum.) C3/11DA: 7B TDC C3/11DB: BD4936 LDA $3649,X (jump entry) C3/11DE: 0A ASL A (double it, since we're executing a jump table most of the time) C3/11DF: 200312 JSR $1203 C3/11E2: C220 REP #$20 (16 bit memory/accum.) C3/11E4: FA PLX C3/11E5: B00E BCS $11F5 C3/11E7: 9E4932 STZ $3249,X (zero this jump address) C3/11EA: 9E4936 STZ $3649,X (zero this jump entry) C3/11ED: 9EC935 STZ $35C9,X (zero this pointer to OAM) C3/11F0: 9E4937 STZ $3749,X C3/11F3: C62F DEC $2F C3/11F5: E8 INX C3/11F6: E8 INX C3/11F7: E08000 CPX #$0080 (have we run through the whole "stack" yet?) C3/11FA: D0D2 BNE $11CE (branch if not) C3/11FC: 203813 JSR $1338 C3/11FF: E220 SEP #$20 (8 bit memory/accum.) C3/1201: AB PLB C3/1202: 60 RTS C3/1203: 6C2B00 JMP ($002B) (execute whatever is queued up) C3/1206: 7B TDC C3/1207: 9DC936 STA $36C9,X C3/120A: C220 REP #$20 (16 bit memory/accum.) C3/120C: BDC932 LDA $32C9,X (load pointer to OAM data) C3/120F: 85EB STA $EB C3/1211: E220 SEP #$20 (8 bit memory/accum.) C3/1213: BDCA35 LDA $35CA,X (load bank pointer to OAM data) C3/1216: 85ED STA $ED C3/1218: A00200 LDY #$0002 C3/121B: B7EB LDA [$EB],Y C3/121D: 9DCA36 STA $36CA,X C3/1220: 60 RTS C3/1221: 202712 JSR $1227 (prep the sprites?) C3/1224: 4C7312 JMP $1273 (draw the sprites, also BRA fool!) C3/1227: A62D LDX $2D C3/1229: A400 LDY $00 C3/122B: C220 REP #$20 (16 bit memory/accum.) C3/122D: BDC932 LDA $32C9,X (load pointer to OAM data) C3/1230: 85EB STA $EB C3/1232: E220 SEP #$20 (8 bit memory/accum.) C3/1234: BDCA35 LDA $35CA,X (load bank pointer to OAM data) C3/1237: 85ED STA $ED C3/1239: BDCA36 LDA $36CA,X C3/123C: C9FE CMP #$FE C3/123E: F022 BEQ $1262 C3/1240: C9FF CMP #$FF C3/1242: D008 BNE $124C C3/1244: 9EC936 STZ $36C9,X C3/1247: 206312 JSR $1263 C3/124A: 80ED BRA $1239 C3/124C: BDCA36 LDA $36CA,X C3/124F: D00E BNE $125F C3/1251: BDC936 LDA $36C9,X C3/1254: 18 CLC C3/1255: 6903 ADC #$03 C3/1257: 9DC936 STA $36C9,X C3/125A: 206312 JSR $1263 C3/125D: 80DA BRA $1239 C3/125F: DECA36 DEC $36CA,X C3/1262: 60 RTS C3/1263: E210 SEP #$10 (8 bit index registers) C3/1265: BDC936 LDA $36C9,X C3/1268: A8 TAY C3/1269: C8 INY C3/126A: C8 INY C3/126B: B7EB LDA [$EB],Y C3/126D: 9DCA36 STA $36CA,X C3/1270: C210 REP #$10 (16 bit index registers) C3/1272: 60 RTS C3/1273: E210 SEP #$10 (8 bit index registers) C3/1275: BDC936 LDA $36C9,X C3/1278: A8 TAY C3/1279: C220 REP #$20 (16 bit memory/accum.) C3/127B: B7EB LDA [$EB],Y C3/127D: 85E7 STA $E7 C3/127F: C8 INY C3/1280: C8 INY C3/1281: E220 SEP #$20 (8 bit memory/accum.) C3/1283: BDCA35 LDA $35CA,X (load bank pointer to OAM data) C3/1286: 85E9 STA $E9 C3/1288: C210 REP #$10 (16 bit index registers) C3/128A: A400 LDY $00 C3/128C: A531 LDA $31 C3/128E: F06B BEQ $12FB C3/1290: B7E7 LDA [$E7],Y C3/1292: 85E6 STA $E6 C3/1294: F065 BEQ $12FB C3/1296: C8 INY C3/1297: B7E7 LDA [$E7],Y C3/1299: 85E0 STA $E0 C3/129B: 1013 BPL $12B0 C3/129D: 7B TDC C3/129E: A533 LDA $33 C3/12A0: AA TAX C3/12A1: BF3413C3 LDA $C31334,X C3/12A5: 18 CLC C3/12A6: 6534 ADC $34 C3/12A8: 8534 STA $34 C3/12AA: 9210 STA ($10) C3/12AC: A62D LDX $2D C3/12AE: 8004 BRA $12B4 C3/12B0: A534 LDA $34 C3/12B2: 9210 STA ($10) C3/12B4: A5E0 LDA $E0 C3/12B6: 297F AND #$7F C3/12B8: 85E0 STA $E0 C3/12BA: BD4A36 LDA $364A,X C3/12BD: 8901 BIT #$01 C3/12BF: F00D BEQ $12CE C3/12C1: 64E1 STZ $E1 C3/12C3: C220 REP #$20 (16 bit memory/accum.) C3/12C5: A5E0 LDA $E0 C3/12C7: 38 SEC C3/12C8: E535 SBC $35 C3/12CA: 85E0 STA $E0 C3/12CC: E220 SEP #$20 (8 bit memory/accum.) C3/12CE: 20FC12 JSR $12FC C3/12D1: C633 DEC $33 C3/12D3: 100A BPL $12DF C3/12D5: A903 LDA #$03 C3/12D7: 8533 STA $33 C3/12D9: 6434 STZ $34 C3/12DB: C220 REP #$20 (16 bit memory/accum.) C3/12DD: E610 INC $10 C3/12DF: C220 REP #$20 (16 bit memory/accum.) C3/12E1: A5E0 LDA $E0 C3/12E3: 920E STA ($0E) C3/12E5: E60E INC $0E C3/12E7: E60E INC $0E C3/12E9: A5E2 LDA $E2 C3/12EB: 920E STA ($0E) C3/12ED: E60E INC $0E C3/12EF: E60E INC $0E C3/12F1: E220 SEP #$20 (8 bit memory/accum.) C3/12F3: C631 DEC $31 C3/12F5: F004 BEQ $12FB C3/12F7: C6E6 DEC $E6 C3/12F9: D09C BNE $1297 C3/12FB: 60 RTS C3/12FC: A5E0 LDA $E0 C3/12FE: 18 CLC C3/12FF: 7DCA33 ADC $33CA,X C3/1302: 85E0 STA $E0 C3/1304: C8 INY C3/1305: B7E7 LDA [$E7],Y C3/1307: 18 CLC C3/1308: 7D4A34 ADC $344A,X C3/130B: 85E1 STA $E1 C3/130D: C8 INY C3/130E: B7E7 LDA [$E7],Y C3/1310: 85E2 STA $E2 C3/1312: C8 INY C3/1313: BD4A36 LDA $364A,X C3/1316: 8902 BIT #$02 C3/1318: F006 BEQ $1320 C3/131A: B7E7 LDA [$E7],Y C3/131C: 0940 ORA #$40 C3/131E: 8002 BRA $1322 C3/1320: B7E7 LDA [$E7],Y C3/1322: 85E3 STA $E3 C3/1324: BD4937 LDA $3749,X C3/1327: F009 BEQ $1332 C3/1329: A5E3 LDA $E3 C3/132B: 29F1 AND #$F1 C3/132D: 1D4937 ORA $3749,X C3/1330: 85E3 STA $E3 C3/1332: C8 INY C3/1333: 60 RTS Data: accessed from above (C3/12A1) C3/1334: 8020 C3/1336: 0802 C3/1338: A434 LDY $34 C3/133A: F010 BEQ $134C C3/133C: A2FC01 LDX #$01FC C3/133F: A901E0 LDA #$E001 C3/1342: 9D0003 STA $0300,X C3/1345: CA DEX C3/1346: CA DEX C3/1347: CA DEX C3/1348: CA DEX C3/1349: 88 DEY C3/134A: D0F6 BNE $1342 C3/134C: 60 RTS C3/134D: 206813 JSR $1368 (trigger NMI) C3/1350: A546 LDA $46 C3/1352: 8920 BIT #$20 C3/1354: F003 BEQ $1359 C3/1356: 200581 JSR $8105 C3/1359: 226EA4C3 JSL $C3A46E (get Joypad status 1) C3/135D: A520 LDA $20 C3/135F: F006 BEQ $1367 C3/1361: 7B TDC C3/1362: A8 TAY C3/1363: 8408 STY $08 C3/1365: 840A STY $0A C3/1367: 60 RTS C3/1368: A981 LDA #$81 C3/136A: 8D0042 STA $4200 C3/136D: 8524 STA $24 C3/136F: 58 CLI C3/1370: A524 LDA $24 C3/1372: D0FC BNE $1370 (wait for NMI to finish before proceeding) C3/1374: 78 SEI C3/1375: A544 LDA $44 C3/1377: 8D0021 STA $2100 C3/137A: A543 LDA $43 C3/137C: 8D0C42 STA $420C (turn on all enabled channels of HDMA) C3/137F: A5B5 LDA $B5 C3/1381: 8D0621 STA $2106 (and now it's mosaic!) C3/1384: 64AE STZ $AE C3/1386: 60 RTS NMI interrupt C3/1387: 08 PHP (from 00/1500, set at C3/00CB) C3/1388: C230 REP #$30 C3/138A: 48 PHA C3/138B: DA PHX C3/138C: 5A PHY C3/138D: 8B PHB C3/138E: 0B PHD C3/138F: E220 SEP #$20 (8 bit memory/accum.) C3/1391: AD1042 LDA $4210 C3/1394: A900 LDA #$00 C3/1396: 48 PHA C3/1397: AB PLB C3/1398: A20000 LDX #$0000 (LDX $00?) C3/139B: DA PHX C3/139C: 2B PLD C3/139D: A524 LDA $24 C3/139F: F010 BEQ $13B1 C3/13A1: 201214 JSR $1412 (execute a bunch of DMA) C3/13A4: C220 REP #$20 (16 bit memory/accum.) C3/13A6: E6CF INC $CF C3/13A8: E220 SEP #$20 (8 bit memory/accum.) C3/13AA: A420 LDY $20 C3/13AC: F003 BEQ $13B1 C3/13AE: 88 DEY C3/13AF: 8420 STY $20 C3/13B1: 221500C0 JSL $C00015 C3/13B5: 22C813C3 JSL $C313C8 (get the game time played) C3/13B9: E623 INC $23 C3/13BB: 7B TDC C3/13BC: 8524 STA $24 (STZ $24?) C3/13BE: C230 REP #$30 (16 bit memory, accum., X, and Y registers) C3/13C0: 2B PLD C3/13C1: AB PLB C3/13C2: 7A PLY C3/13C3: FA PLX C3/13C4: 68 PLA C3/13C5: 28 PLP C3/13C6: 40 RTI C3/13C7: 40 RTI (IRQ jumps here, from 00/1504, set at C3/00D1) C3/13C8: AD1E02 LDA $021E (Load frame count) C3/13CB: C93C CMP #$3C (Is it 60?) C3/13CD: F002 BEQ $13D1 (If so, branch to below "carry out" into seconds) C3/13CF: 802B BRA $13FC (Otherwise, branch directly to overflow checks) C3/13D1: 9C1E02 STZ $021E (Set frames to 0) C3/13D4: AD1D02 LDA $021D (Load seconds) C3/13D7: C93B CMP #$3B (Is it 59?) C3/13D9: F005 BEQ $13E0 (If so, branch to below "carry out" into minutes) C3/13DB: EE1D02 INC $021D (Increment seconds) C3/13DE: 801C BRA $13FC (Branch to overflow checks) C3/13E0: 9C1D02 STZ $021D (Set seconds to 0) C3/13E3: AD1C02 LDA $021C (Load minutes) C3/13E6: C93B CMP #$3B (Is it 59?) C3/13E8: F005 BEQ $13EF (If so, branch to below "carry out" into hours) C3/13EA: EE1C02 INC $021C (Increment minutes) C3/13ED: 800D BRA $13FC (Branch to overflow checks) C3/13EF: 9C1C02 STZ $021C (Set minutes to 0) C3/13F2: AD1B02 LDA $021B (Load hours) C3/13F5: C963 CMP #$63 (Is it 99?) C3/13F7: F003 BEQ $13FC (If so, branch to overflow checks) C3/13F9: EE1B02 INC $021B (Increment hours) C3/13FC: AD1B02 LDA $021B (Load hours) C3/13FF: C963 CMP #$63 (Is it 99 now?) C3/1401: D00A BNE $140D (If not, branch to frame increment; hours haven't overflowed) C3/1403: AD1C02 LDA $021C (Otherwise, check minutes) C3/1406: C93B CMP #$3B (Is it 59?) C3/1408: D003 BNE $140D (If not, branch to frame increment; minutes haven't overflowed) C3/140A: 9C1D02 STZ $021D (Set seconds to 0) C3/140D: EE1E02 INC $021E (Increment frames) C3/1410: 7B TDC C3/1411: 6B RTL C3/1412: 9C0C42 STZ $420C (turn off HDMA) C3/1415: 9C0B42 STZ $420B (turn off DMA) C3/1418: A535 LDA $35 C3/141A: 8D0D21 STA $210D C3/141D: A536 LDA $36 C3/141F: 8D0D21 STA $210D C3/1422: A537 LDA $37 C3/1424: 8D0E21 STA $210E C3/1427: A538 LDA $38 C3/1429: 8D0E21 STA $210E C3/142C: A539 LDA $39 C3/142E: 8D0F21 STA $210F C3/1431: A53A LDA $3A C3/1433: 8D0F21 STA $210F C3/1436: A53B LDA $3B C3/1438: 8D1021 STA $2110 C3/143B: A53C LDA $3C C3/143D: 8D1021 STA $2110 C3/1440: A53D LDA $3D C3/1442: 8D1121 STA $2111 C3/1445: A53E LDA $3E C3/1447: 8D1121 STA $2111 C3/144A: A53F LDA $3F C3/144C: 8D1221 STA $2112 C3/144F: A540 LDA $40 C3/1451: 8D1221 STA $2112 C3/1454: 2063D2 JSR $D263 C3/1457: 206314 JSR $1463 C3/145A: 20D214 JSR $14D2 C3/145D: 208814 JSR $1488 C3/1460: 4CAC14 JMP $14AC (BRA fool!) DMA routine 1 C3/1463: A600 LDX $00 (X = #$0000) C3/1465: 8E0221 STX $2102 C3/1468: 8A TXA (A = #$0000) C3/1469: 8D0443 STA $4304 (starting bank, $00) C3/146C: A902 LDA #$02 C3/146E: 8D0043 STA $4300 (set transfer method to...?) C3/1471: A904 LDA #$04 C3/1473: 8D0143 STA $4301 (register address becomes $2104) C3/1476: A00003 LDY #$0300 C3/1479: 8C0243 STY $4302 (starting location, 00/0300, OAM!) C3/147C: A02002 LDY #$0220 C3/147F: 8C0543 STY $4305 (amount to transfer) C3/1482: A901 LDA #$01 C3/1484: 8D0B42 STA $420B (turn on channel 0 of DMA) C3/1487: 60 RTS DMA routine 3 C3/1488: A414 LDY $14 C3/148A: 8C1621 STY $2116 C3/148D: A901 LDA #$01 C3/148F: 8D0043 STA $4300 (set transfer method to...?) C3/1492: A918 LDA #$18 C3/1494: 8D0143 STA $4301 (register address becomes $2118) C3/1497: A416 LDY $16 C3/1499: 8C0243 STY $4302 (starting location) C3/149C: A518 LDA $18 C3/149E: 8D0443 STA $4304 (starting bank) C3/14A1: A412 LDY $12 C3/14A3: 8C0543 STY $4305 (amount to transfer) C3/14A6: A901 LDA #$01 C3/14A8: 8D0B42 STA $420B (turn on channel 0 of DMA) C3/14AB: 60 RTS DMA routine 4 C3/14AC: A41B LDY $1B C3/14AE: F021 BEQ $14D1 C3/14B0: 8C1621 STY $2116 C3/14B3: A901 LDA #$01 C3/14B5: 8D0043 STA $4300 (set transfer method to...?) C3/14B8: A918 LDA #$18 C3/14BA: 8D0143 STA $4301 (register address becomes $2118) C3/14BD: A41D LDY $1D C3/14BF: 8C0243 STY $4302 (starting location) C3/14C2: A51F LDA $1F C3/14C4: 8D0443 STA $4304 (starting bank) C3/14C7: A419 LDY $19 C3/14C9: 8C0543 STY $4305 (amount to transfer) C3/14CC: A901 LDA #$01 C3/14CE: 8D0B42 STA $420B (turn on channel 0 of DMA) C3/14D1: 60 RTS DMA routine 2 C3/14D2: A545 LDA $45 C3/14D4: 8901 BIT #$01 C3/14D6: F025 BEQ $14FD C3/14D8: A500 LDA $00 C3/14DA: 8D2121 STA $2121 C3/14DD: A902 LDA #$02 C3/14DF: 8D0043 STA $4300 (set transfer method to...?) C3/14E2: A922 LDA #$22 C3/14E4: 8D0143 STA $4301 (register address becomes $2122) C3/14E7: A04930 LDY #$3049 C3/14EA: 8C0243 STY $4302 (starting location) C3/14ED: A97E LDA #$7E C3/14EF: 8D0443 STA $4304 (starting bank, 7E/3049, palettes?) C3/14F2: A00002 LDY #$0200 C3/14F5: 8C0543 STY $4305 (amount to transfer) C3/14F8: A901 LDA #$01 C3/14FA: 8D0B42 STA $420B (turn on channel 0 of DMA) C3/14FD: 60 RTS C3/14FE: AD1F02 LDA $021F (from C0/C4F0) C3/1501: F011 BEQ $1514 C3/1503: 206615 JSR $1566 (Load everything from SRAM) C3/1506: 20D119 JSR $19D1 (Calculate SRAM checksum) C3/1509: 20EB19 JSR $19EB (determine if save file exists) C3/150C: F006 BEQ $1514 (branch if not) C3/150E: 209515 JSR $1595 C3/1511: 7B TDC C3/1512: 8004 BRA $1518 C3/1514: E220 SEP #$20 (8 bit memory/accum.) C3/1516: A9FF LDA #$FF C3/1518: 8D0502 STA $0205 C3/151B: 7B TDC C3/151C: 6B RTL Store everything to SRAM C3/151D: 2903 AND #$03 C3/151F: 8FF07F30 STA $307FF0 C3/1523: 8D2402 STA $0224 C3/1526: 48 PHA (save current save slot) C3/1527: AC1B02 LDY $021B C3/152A: 8C6318 STY $1863 (save current time, lower two bytes) C3/152D: AD1D02 LDA $021D C3/1530: 8D6518 STA $1865 (save current time, upper byte) C3/1533: 208615 JSR $1586 C3/1536: 20D119 JSR $19D1 (Calculate SRAM checksum) C3/1539: A4E7 LDY $E7 (load checksum) C3/153B: 8CFE1F STY $1FFE (save it) C3/153E: 7B TDC C3/153F: 68 PLA (get current save slot) C3/1540: 0A ASL A C3/1541: AA TAX C3/1542: C220 REP #$20 (16 bit memory/accum.) C3/1544: BF5E15C3 LDA $C3155E,X C3/1548: AA TAX C3/1549: E220 SEP #$20 (8 bit memory/accum.) C3/154B: A400 LDY $00 C3/154D: B90016 LDA $1600,Y (current working RAM) C3/1550: 9F006030 STA $306000,X (save to SRAM) C3/1554: E8 INX C3/1555: C8 INY C3/1556: C0000A CPY #$0A00 (have we done all bytes for this save slot?) C3/1559: D0F2 BNE $154D (branch if not) C3/155B: 4C8370 JMP $7083 (write SRAM markers) Data: Different Slots start at different offsets in the SRAM C3/155E: 0000 (New game) C3/1560: 0000 (Slot 1) C3/1562: 000A (Slot 2) C3/1564: 0014 (Slot 3) Load everything from SRAM C3/1566: EB XBA C3/1567: A500 LDA $00 C3/1569: EB XBA C3/156A: 0A ASL A C3/156B: AA TAX C3/156C: C220 REP #$20 (16 bit memory/accum.) C3/156E: BF5E15C3 LDA $C3155E,X C3/1572: AA TAX C3/1573: E220 SEP #$20 (8 bit memory/accum.) C3/1575: A400 LDY $00 C3/1577: BF006030 LDA $306000,X C3/157B: 990016 STA $1600,Y C3/157E: E8 INX C3/157F: C8 INY C3/1580: C0000A CPY #$0A00 C3/1583: D0F2 BNE $1577 C3/1585: 60 RTS C3/1586: 7B TDC C3/1587: AA TAX C3/1588: BD8811 LDA $1188,X C3/158B: 9DA81F STA $1FA8,X C3/158E: E8 INX C3/158F: E01800 CPX #$0018 C3/1592: D0F4 BNE $1588 C3/1594: 60 RTS C3/1595: 7B TDC C3/1596: AA TAX C3/1597: BDA81F LDA $1FA8,X C3/159A: 9D8811 STA $1188,X C3/159D: E8 INX C3/159E: E01800 CPX #$0018 C3/15A1: D0F4 BNE $1597 C3/15A3: 60 RTS C3/15A4: A0B315 LDY #$15B3 (get save screen hotspot data) C3/15A7: 4CFE05 JMP $05FE C3/15AA: 202D07 JSR $072D C3/15AD: A0CE15 LDY #$15CE (get finger positioning for save screen) C3/15B0: 4C4006 JMP $0640 Data: Save screen hotspots C3/15B3: 80 00 00 01 03 C3/15B8: A0C715 LDY #$15C7 (get load screen hotspot data) C3/15BB: 4CFE05 JMP $05FE C3/15BE: 202D07 JSR $072D C3/15C1: A0CC15 LDY #$15CC (get finger positioning for load screen) C3/15C4: 4C4006 JMP $0640 Data: Load screen hotspots C3/15C7: 80 00 00 01 04 Data: finger positions in save/load screen C3/15CC: 081C (X/Y position of finger in "new game" slot) C3/15CE: 083C (X/Y position of finger in slot 1) C3/15D0: 0874 (X/Y position of finger in slot 2) C3/15D2: 08AC (X/Y position of finger in slot 3) C3/15D4: A0E315 LDY #$15E3 C3/15D7: 4CFE05 JMP $05FE C3/15DA: 202D07 JSR $072D C3/15DD: A0E815 LDY #$15E8 C3/15E0: 4C4006 JMP $0640 Data: Confirm save/load hotspots C3/15E3: 80 00 00 01 02 Data: finger positioning for confirming save/load C3/15E8: BF44 C3/15EA: BF54 C3/15EC: 20286A JSR $6A28 C3/15EF: 203216 JSR $1632 (get all 3 save files, display as needed) C3/15F2: 20873A JSR $3A87 C3/15F5: A09C18 LDY #$189C C3/15F8: 204103 JSR $0341 (draw new game window) C3/15FB: A920 LDA #$20 C3/15FD: 8529 STA $29 (set text color to white) C3/15FF: A0781A LDY #$1A78 C3/1602: 20F902 JSR $02F9 (display "Save") C3/1605: 4C9018 JMP $1890 C3/1608: 20286A JSR $6A28 C3/160B: 9C4E1D STZ $1D4E C3/160E: 20BC6B JSR $6BBC C3/1611: 20873A JSR $3A87 (determine new game window background) C3/1614: A09C18 LDY #$189C C3/1617: 204103 JSR $0341 (draw the "New game" window) C3/161A: AD4E1D LDA $1D4E (load saved bits) C3/161D: 2970 AND #$70 (keep cursor memory, sound mono, and gauge off) C3/161F: 8D4E1D STA $1D4E C3/1622: 203216 JSR $1632 (get all 3 save files, display as needed) C3/1625: A920 LDA #$20 C3/1627: 8529 STA $29 (set text color to white) C3/1629: A07F1A LDY #$1A7F C3/162C: 20F902 JSR $02F9 (display "New game") C3/162F: 4C9018 JMP $1890 C3/1632: 20606C JSR $6C60 C3/1635: A920 LDA #$20 C3/1637: 1443 TRB $43 (eventually disable channel 5 of HDMA) C3/1639: A00200 LDY #$0002 C3/163C: 8437 STY $37 C3/163E: AC551D LDY $1D55 (load font palette) C3/1641: 84E7 STY $E7 (save it for now) C3/1643: A0FF7F LDY #$7FFF C3/1646: 8C551D STY $1D55 C3/1649: 20993F JSR $3F99 C3/164C: A4E7 LDY $E7 C3/164E: 8C551D STY $1D55 C3/1651: A901 LDA #$01 C3/1653: 221DCAD4 JSL $D4CA1D (do gradient effect for save slot window 1, 2, and 3) C3/1657: 20156A JSR $6A15 C3/165A: 203C6A JSR $6A3C C3/165D: 20466A JSR $6A46 C3/1660: 20AC18 JSR $18AC (backup new game data) C3/1663: A901 LDA #$01 C3/1665: 8566 STA $66 (save slot 1) C3/1667: 206615 JSR $1566 (load this slots contents) C3/166A: 201569 JSR $6915 C3/166D: 20D119 JSR $19D1 (Calculate SRAM checksum) C3/1670: 20EB19 JSR $19EB (determine if save file exists) C3/1673: 8491 STY $91 (save result) C3/1675: F00B BEQ $1682 (branch if save file 1 is empty) C3/1677: 20616F JSR $6F61 C3/167A: 201D17 JSR $171D C3/167D: 20F53A JSR $3AF5 C3/1680: 8013 BRA $1695 (save file 1 exists) C3/1682: 20C118 JSR $18C1 (restore new game data) C3/1685: 20616F JSR $6F61 C3/1688: A920 LDA #$20 C3/168A: 8529 STA $29 (set text color to white) C3/168C: A0241A LDY #$1A24 C3/168F: 20F902 JSR $02F9 (display save file 1's "Empty") C3/1692: 20F53A JSR $3AF5 C3/1695: A902 LDA #$02 C3/1697: 8566 STA $66 (save slot 2) C3/1699: 206615 JSR $1566 (load this slots contents) C3/169C: 201569 JSR $6915 C3/169F: 20D119 JSR $19D1 (Calculate SRAM checksum) C3/16A2: 20EB19 JSR $19EB (determine if save file exists) C3/16A5: 8493 STY $93 (save result) C3/16A7: F00B BEQ $16B4 (branch if save file 2 is empty) C3/16A9: 20B86F JSR $6FB8 C3/16AC: 20CA17 JSR $17CA C3/16AF: 20093B JSR $3B09 C3/16B2: 8013 BRA $16C7 (save file 2 exists) C3/16B4: 20C118 JSR $18C1 (restore new game data) C3/16B7: 20B86F JSR $6FB8 C3/16BA: A920 LDA #$20 C3/16BC: 8529 STA $29 (set text color to white) C3/16BE: A02C1A LDY #$1A2C C3/16C1: 20F902 JSR $02F9 (display save file 2's "Empty") C3/16C4: 20093B JSR $3B09 C3/16C7: A903 LDA #$03 C3/16C9: 8566 STA $66 (save slot 3) C3/16CB: 206615 JSR $1566 (load this slots contents) C3/16CE: 201569 JSR $6915 C3/16D1: 20D119 JSR $19D1 (Calculate SRAM checksum) C3/16D4: 20EB19 JSR $19EB (determine if save file exists) C3/16D7: 8495 STY $95 (save result) C3/16D9: F00B BEQ $16E6 (branch if save file 3 is empty) C3/16DB: 20DC6F JSR $6FDC C3/16DE: 202D18 JSR $182D C3/16E1: 201D3B JSR $3B1D C3/16E4: 8013 BRA $16F9 (save file 3 exists) C3/16E6: 20C118 JSR $18C1 (restore new game data) C3/16E9: 20DC6F JSR $6FDC C3/16EC: A920 LDA #$20 C3/16EE: 8529 STA $29 (set text color to white) C3/16F0: A0341A LDY #$1A34 C3/16F3: 20F902 JSR $02F9 (display save file 3's "Empty") C3/16F6: 201D3B JSR $3B1D C3/16F9: 20C118 JSR $18C1 (restore new game data) C3/16FC: 20A13A JSR $3AA1 (determine save file 1 window background) C3/16FF: A0A018 LDY #$18A0 C3/1702: 204103 JSR $0341 (draw save file 1 window) C3/1705: 20BD3A JSR $3ABD (determine save file 2 window background) C3/1708: A0A418 LDY #$18A4 C3/170B: 204103 JSR $0341 (draw save file 2 window) C3/170E: 20D93A JSR $3AD9 (determine save file 3 window background) C3/1711: A0A818 LDY #$18A8 C3/1714: 204103 JSR $0341 (draw save file 3 window) C3/1717: A0001C LDY #$1C00 C3/171A: 4C2603 JMP $0326 C3/171D: A920 LDA #$20 C3/171F: 8529 STA $29 (set text color to white) C3/1721: A0511A LDY #$1A51 C3/1724: 20F902 JSR $02F9 (display save file 1's ":") C3/1727: AD6318 LDA $1863 C3/172A: 20E004 JSR $04E0 C3/172D: A20D7B LDX #$7B0D C3/1730: 20B604 JSR $04B6 (display save file 1's hours) C3/1733: AD6418 LDA $1864 C3/1736: 20F904 JSR $04F9 C3/1739: A2137B LDX #$7B13 C3/173C: 20B604 JSR $04B6 (display save file 1's minutes) C3/173F: 204D17 JSR $174D C3/1742: A92C LDA #$2C C3/1744: 8529 STA $29 (set text color to blue) C3/1746: A03C1A LDY #$1A3C C3/1749: 20F902 JSR $02F9 (display save file 1's "Time") C3/174C: 60 RTS C3/174D: 7B TDC C3/174E: AA TAX C3/174F: B569 LDA $69,X C3/1751: 3029 BMI $177C C3/1753: 20BE17 JSR $17BE C3/1756: A92C LDA #$2C C3/1758: 8529 STA $29 (set text color to blue) C3/175A: A05D1A LDY #$1A5D C3/175D: 20F902 JSR $02F9 (display save file 1's "LV") C3/1760: A920 LDA #$20 C3/1762: 8529 STA $29 (set text color to white) C3/1764: A06C1A LDY #$1A6C C3/1767: 20F902 JSR $02F9 (display save file 1's "/") C3/176A: A04F3A LDY #$3A4F C3/176D: 5A PHY (save file 1's lead character name position) C3/176E: A2FD7A LDX #$7AFD C3/1771: DA PHX (save file 1's max HP position) C3/1772: A2F37A LDX #$7AF3 C3/1775: DA PHX (save file 1's current HP position) C3/1776: A2817A LDX #$7A81 C3/1779: DA PHX (save file 1's level position) C3/177A: 8003 BRA $177F C3/177C: E8 INX C3/177D: 80D0 BRA $174F C3/177F: A667 LDX $67 C3/1781: BD0800 LDA $0008,X (level) C3/1784: 20E004 JSR $04E0 C3/1787: FA PLX C3/1788: 20B604 JSR $04B6 (display level) C3/178B: A467 LDY $67 C3/178D: 209A2B JSR $2B9A C3/1790: B90900 LDA $0009,Y (current HP, high byte) C3/1793: 85F3 STA $F3 C3/1795: B90A00 LDA $000A,Y (current HP, low byte) C3/1798: 85F4 STA $F4 C3/179A: 202E05 JSR $052E (convert HP to digits) C3/179D: FA PLX C3/179E: 209004 JSR $0490 (display HP) C3/17A1: A667 LDX $67 C3/17A3: BD0B00 LDA $000B,X (maximum HP, high byte) C3/17A6: 85F3 STA $F3 C3/17A8: BD0C00 LDA $000C,X (maximum HP, low byte) C3/17AB: 85F4 STA $F4 C3/17AD: 20650D JSR $0D65 C3/17B0: 20920D JSR $0D92 C3/17B3: 202E05 JSR $052E (convert HP to digits) C3/17B6: FA PLX C3/17B7: 209004 JSR $0490 (display HP) C3/17BA: 7A PLY C3/17BB: 4CCF34 JMP $34CF C3/17BE: C220 REP #$20 (16 bit memory/accum.) C3/17C0: 8A TXA C3/17C1: 0A ASL A C3/17C2: AA TAX C3/17C3: B56D LDA $6D,X C3/17C5: 8567 STA $67 C3/17C7: E220 SEP #$20 (8 bit memory/accum.) C3/17C9: 60 RTS C3/17CA: A920 LDA #$20 C3/17CC: 8529 STA $29 (set text color to white) C3/17CE: A0551A LDY #$1A55 C3/17D1: 20F902 JSR $02F9 (display save file 2's ":") C3/17D4: AD6318 LDA $1863 C3/17D7: 20E004 JSR $04E0 C3/17DA: A2CD7C LDX #$7CCD C3/17DD: 20B604 JSR $04B6 (display save file 2's hours) C3/17E0: AD6418 LDA $1864 C3/17E3: 20F904 JSR $04F9 C3/17E6: A2D37C LDX #$7CD3 C3/17E9: 20B604 JSR $04B6 (display save file 2's minutes) C3/17EC: 20FA17 JSR $17FA C3/17EF: A92C LDA #$2C C3/17F1: 8529 STA $29 (set text color to blue) C3/17F3: A0431A LDY #$1A43 C3/17F6: 20F902 JSR $02F9 (display save file 2's "Time") C3/17F9: 60 RTS C3/17FA: 7B TDC C3/17FB: AA TAX C3/17FC: B569 LDA $69,X C3/17FE: 302A BMI $182A C3/1800: 20BE17 JSR $17BE C3/1803: A92C LDA #$2C C3/1805: 8529 STA $29 (set text color to blue) C3/1807: A0621A LDY #$1A62 C3/180A: 20F902 JSR $02F9 (display save file 2's "LV") C3/180D: A920 LDA #$20 C3/180F: 8529 STA $29 (set text color to white) C3/1811: A0701A LDY #$1A70 C3/1814: 20F902 JSR $02F9 (display save file 2's "/") C3/1817: A00F3C LDY #$3C0F C3/181A: 5A PHY (save file 2's lead character name position) C3/181B: A2BD7C LDX #$7CBD C3/181E: DA PHX (save file 2's max HP position) C3/181F: A2B37C LDX #$7CB3 C3/1822: DA PHX (save file 2's current HP position) C3/1823: A2417C LDX #$7C41 C3/1826: DA PHX (save file 2's level position) C3/1827: 4C7F17 JMP $177F C3/182A: E8 INX C3/182B: 80CF BRA $17FC C3/182D: A920 LDA #$20 C3/182F: 8529 STA $29 (set text color to white) C3/1831: A0591A LDY #$1A59 C3/1834: 20F902 JSR $02F9 (display save file 3's ":") C3/1837: AD6318 LDA $1863 C3/183A: 20E004 JSR $04E0 C3/183D: A28D7E LDX #$7E8D C3/1840: 20B604 JSR $04B6 (display save file 3's hours) C3/1843: AD6418 LDA $1864 C3/1846: 20F904 JSR $04F9 C3/1849: A2937E LDX #$7E93 C3/184C: 20B604 JSR $04B6 (display save file 3's minutes) C3/184F: 205D18 JSR $185D C3/1852: A92C LDA #$2C C3/1854: 8529 STA $29 (set text color to blue) C3/1856: A04A1A LDY #$1A4A C3/1859: 20F902 JSR $02F9 (display save file 3's "Time") C3/185C: 60 RTS C3/185D: 7B TDC C3/185E: AA TAX C3/185F: B569 LDA $69,X C3/1861: 302A BMI $188D C3/1863: 20BE17 JSR $17BE C3/1866: A92C LDA #$2C C3/1868: 8529 STA $29 (set text color to blue) C3/186A: A0671A LDY #$1A67 C3/186D: 20F902 JSR $02F9 (display save file 3's "LV") C3/1870: A920 LDA #$20 C3/1872: 8529 STA $29 (set text color to white) C3/1874: A0741A LDY #$1A74 C3/1877: 20F902 JSR $02F9 (display save file 3's "/") C3/187A: A0CF3D LDY #$3DCF C3/187D: 5A PHY (save file 3's lead character name position) C3/187E: A27D7E LDX #$7E7D C3/1881: DA PHX (save file 3's max HP position) C3/1882: A2737E LDX #$7E73 C3/1885: DA PHX (save file 3's current HP position) C3/1886: A2017E LDX #$7E01 C3/1889: DA PHX (save file 3's level position) C3/188A: 4C7F17 JMP $177F C3/188D: E8 INX C3/188E: 80CF BRA $185F C3/1890: 20280E JSR $0E28 C3/1893: 20520E JSR $0E52 C3/1896: 206E0E JSR $0E6E C3/1899: 4C7C0E JMP $0E7C Data: window sizes for save/load screen C3/189C: CB581C02 ("New game" window) C3/18A0: CB591C05 (save file 1 window) C3/18A4: 8B5B1C05 (save file 2 window) C3/18A8: 4B5D1C05 (save file 3 window) C3/18AC: A08DAC LDY #$AC8D C3/18AF: 8C8121 STY $2181 C3/18B2: A600 LDX $00 C3/18B4: BD0016 LDA $1600,X C3/18B7: 8D8021 STA $2180 C3/18BA: E8 INX C3/18BB: E0000A CPX #$0A00 C3/18BE: D0F4 BNE $18B4 C3/18C0: 60 RTS C3/18C1: A600 LDX $00 C3/18C3: BF8DAC7E LDA $7EAC8D,X C3/18C7: 9D0016 STA $1600,X C3/18CA: E8 INX C3/18CB: E0000A CPX #$0A00 C3/18CE: D0F3 BNE $18C3 C3/18D0: 60 RTS C3/18D1: A902 LDA #$02 (from C3/1CF5, C3/1D63, C3/ADDE) C3/18D3: 8D5043 STA $4350 C3/18D6: A912 LDA #$12 C3/18D8: 8D5143 STA $4351 (register address becomes $2112) C3/18DB: A0F018 LDY #$18F0 C3/18DE: 8C5243 STY $4352 (set address) C3/18E1: A9C3 LDA #$C3 C3/18E3: 8D5443 STA $4354 (set bank, C3/18F0) C3/18E6: A9C3 LDA #$C3 C3/18E8: 8D5743 STA $4357 C3/18EB: A920 LDA #$20 C3/18ED: 0443 TSB $43 (eventually enable channel channel 5 of HDMA) C3/18EF: 60 RTS HDMA transfer table C3/18F0: 200000 (32 scanlines, 0 pixel shift) C3/18F3: 0C0400 (12 scanlines, 4 pixel shift) C3/18F6: 0C0800 (12 scanlines, 8 pixel shift) C3/18F9: 08C8FF (8 scanlines, ?? pixel shift) C3/18FC: 500000 (80 scanlines, 0 pixel shift) C3/18FF: 580000 (88 scanlines, 0 pixel shift, 232 scanlines total) C3/1902: 00 (end) C3/1903: A600 LDX $00 C3/1905: BF71AA7E LDA $7EAA71,X C3/1909: 306C BMI $1977 C3/190B: DA PHX C3/190C: DA PHX C3/190D: A903 LDA #$03 C3/190F: A0C719 LDY #$19C7 C3/1912: 207311 JSR $1173 (put C3/19C7 in the queue) C3/1915: 9B TXY C3/1916: FA PLX C3/1917: 8B PHB C3/1918: A97E LDA #$7E C3/191A: 48 PHA C3/191B: AB PLB C3/191C: A566 LDA $66 (load finger's position) C3/191E: F011 BEQ $1931 (branch if on "New Game") C3/1920: C901 CMP #$01 C3/1922: F01F BEQ $1943 (branch if on slot 1) C3/1924: C902 CMP #$02 C3/1926: F012 BEQ $193A (branch if on slot 2) C3/1928: BFBB19C3 LDA $C319BB,X (set slot 3's sprites to "enabled") C3/192C: 994937 STA $3749,Y C3/192F: 8019 BRA $194A C3/1931: BF9719C3 LDA $C31997,X (set all slot's sprites to "disabled") C3/1935: 994937 STA $3749,Y C3/1938: 8010 BRA $194A C3/193A: BFAF19C3 LDA $C319AF,X (set slot 2's sprites to "enabled") C3/193E: 994937 STA $3749,Y C3/1941: 8007 BRA $194A C3/1943: BFA319C3 LDA $C319A3,X (set slot 1's sprites to "enabled") C3/1947: 994937 STA $3749,Y C3/194A: A9D8 LDA #$D8 C3/194C: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/194F: 7B TDC C3/1950: 99CB33 STA $33CB,Y C3/1953: 994B34 STA $344B,Y C3/1956: BF7F19C3 LDA $C3197F,X (get horizontal sprite positions) C3/195A: 99CA33 STA $33CA,Y C3/195D: BF8B19C3 LDA $C3198B,X (get vertical sprite positions) C3/1961: 994A34 STA $344A,Y C3/1964: BF71AA7E LDA $7EAA71,X C3/1968: C220 REP #$20 (16 bit memory/accum.) C3/196A: 0A ASL A C3/196B: AA TAX C3/196C: BF17E9D8 LDA $D8E917,X (determine which sprites to load?) C3/1970: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/1973: E220 SEP #$20 (8 bit memory/accum.) C3/1975: AB PLB C3/1976: FA PLX C3/1977: E8 INX C3/1978: E00C00 CPX #$000C (have we done all 12 sprites?) C3/197B: D088 BNE $1905 (branch if not) C3/197D: 38 SEC C3/197E: 60 RTS Data: Sprite positions for the three save files C3/197F: 50688098 (X position for sprites in save slot 1) C3/1983: 50688098 (X position for sprites in save slot 2) C3/1987: 50688098 (X position for sprites in save slot 3) C3/198B: 40404040 (Y position for sprites in save slot 1) C3/198F: 78787878 (Y position for sprites in save slot 2) C3/1993: B0B0B0B0 (Y position for sprites in save slot 3) Data: set sprites to "enabled" or "disabled" based on finger position C3/1997: 02020202 (disable all three slot's sprites) C3/199B: 02020202 C3/199F: 02020202 C3/19A3: 00000000 (enable slot 1's sprites) C3/19A7: 02020202 C3/19AB: 02020202 C3/19AF: 02020202 (enable slot 2's sprites) C3/19B3: 00000000 C3/19B7: 02020202 C3/19BB: 02020202 (enable slot 3's sprites) C3/19BF: 02020202 C3/19C3: 00000000 C3/19C7: A62D LDX $2D C3/19C9: 200612 JSR $1206 C3/19CC: 202112 JSR $1221 (draw the sprites!) C3/19CF: 18 CLC (this queue can be removed) C3/19D0: 60 RTS Calculate SRAM checksum C3/19D1: 64E7 STZ $E7 C3/19D3: 64E8 STZ $E8 C3/19D5: A600 LDX $00 C3/19D7: 18 CLC C3/19D8: BD0016 LDA $1600,X C3/19DB: 65E7 ADC $E7 C3/19DD: 85E7 STA $E7 C3/19DF: 7B TDC C3/19E0: 65E8 ADC $E8 C3/19E2: 85E8 STA $E8 C3/19E4: E8 INX C3/19E5: E0FE09 CPX #$09FE C3/19E8: D0EE BNE $19D8 C3/19EA: 60 RTS Determine if save file exists C3/19EB: C220 REP #$20 (16 bit memory/accum.) C3/19ED: A5E7 LDA $E7 (load calculated checksum) C3/19EF: CDFE1F CMP $1FFE (does it match this file's checksum?) C3/19F2: D002 BNE $19F6 (they don't match, save file was tampered with or corrupt) C3/19F4: 8001 BRA $19F7 (they do match, everything's ok) C3/19F6: 7B TDC C3/19F7: A8 TAY C3/19F8: E220 SEP #$20 (8 bit memory/accum.) C3/19FA: 60 RTS DP $26 is #$53 C3/19FB: 204F30 JSR $304F C3/19FE: A00800 LDY #$0008 C3/1A01: 8420 STY $20 C3/1A03: A954 LDA #$54 C3/1A05: 8526 STA $26 (execute at C3/1A19) C3/1A07: 4C0319 JMP $1903 DP $26 is #$52 C3/1A0A: 205630 JSR $3056 C3/1A0D: A00800 LDY #$0008 C3/1A10: 8420 STY $20 C3/1A12: A954 LDA #$54 C3/1A14: 8526 STA $26 (execute at C3/1A19) C3/1A16: 4C0319 JMP $1903 DP $26 is #$54 C3/1A19: A420 LDY $20 (from C3/0283, the massive jump table; $26 = #$54) C3/1A1B: D004 BNE $1A21 C3/1A1D: A527 LDA $27 (load the queue to execute) C3/1A1F: 8526 STA $26 (transfer it to be executed next) C3/1A21: 4C0319 JMP $1903 C3/1A24: 4F7A84A6A9ADB200 (position of and word "Empty") C3/1A2C: 0F7C84A6A9ADB200 (position of and word "Empty") C3/1A34: CF7D84A6A9ADB200 (position of and word "Empty") C3/1A3C: CF7A93A2A69E00 (position of and word "Time") C3/1A45: 8F7C93A2A69E00 (position of and word "Time") C3/1A4A: 4F7E93A2A69E00 (position of and word "Time") C3/1A51: 117BC100 (position of and word ":") C3/1A55: D17CC100 (position of and word ":") C3/1A59: 917EC100 (position of and word ":") C3/1A5D: 7B7A8B9500 (position of and word "LV") C3/1A62: 3B7C8B9500 (position of and word "LV") C3/1A67: FB7D8B9500 (position of and word "LV") C3/1A6C: FB7AC000 (position of and word "/") C3/1A70: BB7CC000 (position of and word "/") C3/1A74: 7B7EC000 (position of and word "/") C3/1A78: 6779929AAF9E00 (position of and word "Save") C3/1A7F: 63798D9EB0FF869AA69E00 (position of and word "New Game") DP $26 is #$04 - initiate the main menu C3/1A8A: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/1A8D: 20A81B JSR $1BA8 C3/1A90: 20890F JSR $0F89 C3/1A93: 206B3A JSR $3A6B C3/1A96: A904 LDA #$04 C3/1A98: 0443 TSB $43 (eventually enable channel 2 of HDMA) C3/1A9A: 20890F JSR $0F89 C3/1A9D: 200469 JSR $6904 C3/1AA0: A903 LDA #$03 C3/1AA2: 8D0721 STA $2107 C3/1AA5: A943 LDA #$43 C3/1AA7: 8D0921 STA $2109 C3/1AAA: A9C0 LDA #$C0 C3/1AAC: 1443 TRB $43 (eventually disable channels 6 and 7 of HDMA) C3/1AAE: A902 LDA #$02 C3/1AB0: 8546 STA $46 C3/1AB2: 20F530 JSR $30F5 C3/1AB5: A900 LDA #$00 C3/1AB7: A0422F LDY #$2F42 C3/1ABA: 207311 JSR $1173 (put C3/2F42 in the queue) C3/1ABD: 20B007 JSR $07B0 (finger OAM initiating) C3/1AC0: 204E35 JSR $354E C3/1AC3: A00200 LDY #$0002 C3/1AC6: 8437 STY $37 C3/1AC8: 20A336 JSR $36A3 C3/1ACB: A905 LDA #$05 C3/1ACD: 8527 STA $27 (sustain main menu, queue up to execute at C3/1D4A) C3/1ACF: A901 LDA #$01 C3/1AD1: 8526 STA $26 (transition process) C3/1AD3: 4C4135 JMP $3541 DP $26 is #$07 - initiate the item menu C3/1AD6: 20E21A JSR $1AE2 C3/1AD9: 20FE1A JSR $1AFE C3/1ADC: 200E1B JSR $1B0E C3/1ADF: 4C2E1B JMP $1B2E C3/1AE2: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/1AE5: 20991B JSR $1B99 C3/1AE8: 200469 JSR $6904 C3/1AEB: 644A STZ $4A C3/1AED: 6449 STZ $49 C3/1AEF: A9F5 LDA #$F5 C3/1AF1: 855C STA $5C (set item screen's maximum scroll range) C3/1AF3: A90A LDA #$0A C3/1AF5: 855A STA $5A C3/1AF7: A901 LDA #$01 C3/1AF9: 855B STA $5B C3/1AFB: 4C1C7D JMP $7D1C C3/1AFE: AD4E1D LDA $1D4E (load some config stuff) C3/1B01: 2940 AND #$40 (cursor on memory set?) C3/1B03: F003 BEQ $1B08 (branch if not) C3/1B05: 20AC0D JSR $0DAC C3/1B08: 20257D JSR $7D25 C3/1B0B: 4CA37D JMP $7DA3 C3/1B0E: 202B7E JSR $7E2B C3/1B11: 20B007 JSR $07B0 (finger OAM initiating) C3/1B14: 201F09 JSR $091F (set arrow's initial position) C3/1B17: C220 REP #$20 (16 bit memory/accum.) C3/1B19: A97000 LDA #$0070 C3/1B1C: 9F4A357E STA $7E354A,X C3/1B20: A95800 LDA #$0058 C3/1B23: 9FCA347E STA $7E34CA,X C3/1B27: E220 SEP #$20 (8 bit memory/accum.) C3/1B29: A901 LDA #$01 C3/1B2B: 8526 STA $26 (transition process) C3/1B2D: 60 RTS C3/1B2E: A908 LDA #$08 C3/1B30: 8527 STA $27 (queue up to execute at C3/1EF7) C3/1B32: 4C4135 JMP $3541 C3/1B35: 20E21A JSR $1AE2 (from C3/02C9, the massive jump table; $26 = #$77) C3/1B38: A58E LDA $8E C3/1B3A: 854D STA $4D C3/1B3C: A48E LDY $8E C3/1B3E: 844F STY $4F C3/1B40: A590 LDA $90 C3/1B42: 854A STA $4A C3/1B44: A54A LDA $4A (...really?) C3/1B46: 85E0 STA $E0 C3/1B48: A550 LDA $50 C3/1B4A: 38 SEC C3/1B4B: E5E0 SBC $E0 C3/1B4D: 854E STA $4E C3/1B4F: 20257D JSR $7D25 C3/1B52: 20A37D JSR $7DA3 C3/1B55: 200E1B JSR $1B0E C3/1B58: 4C2E1B JMP $1B2E DP $26 is #$09 - initiate the skills menu C3/1B5B: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/1B5E: 7B TDC C3/1B5F: A528 LDA $28 C3/1B61: AA TAX C3/1B62: B569 LDA $69,X C3/1B64: 220600C2 JSL $C20006 C3/1B68: 20A81B JSR $1BA8 C3/1B6B: 20086A JSR $6A08 C3/1B6E: 644A STZ $4A C3/1B70: 6449 STZ $49 C3/1B72: 20BC4D JSR $4DBC C3/1B75: 20804C JSR $4C80 C3/1B78: 20504B JSR $4B50 C3/1B7B: AD4E1D LDA $1D4E (various saved things in config screen) C3/1B7E: 2940 AND #$40 (Re-equip set to empty?) C3/1B80: F003 BEQ $1B85 (branch if not) C3/1B82: 20FF0D JSR $0DFF C3/1B85: 20594B JSR $4B59 C3/1B88: 20B007 JSR $07B0 (finger OAM initiating) C3/1B8B: 20991B JSR $1B99 C3/1B8E: A901 LDA #$01 C3/1B90: 8526 STA $26 (transition process) C3/1B92: A90A LDA #$0A C3/1B94: 8527 STA $27 (queue up to execute at C3/1FF4) C3/1B96: 4C4135 JMP $3541 C3/1B99: 2096A7 JSR $A796 C3/1B9C: 2091A9 JSR $A991 C3/1B9F: A900 LDA #$00 C3/1BA1: A00EA8 LDY #$A80E C3/1BA4: 207311 JSR $1173 (put C3/A80E in the queue) C3/1BA7: 60 RTS C3/1BA8: 201569 JSR $6915 C3/1BAB: 20826E JSR $6E82 C3/1BAE: 20096C JSR $6C09 C3/1BB1: A905 LDA #$05 C3/1BB3: 0445 TSB $45 C3/1BB5: 4CD214 JMP $14D2 DB $26 is #$35 - initiate the equip menu C3/1BB8: 20BD1B JSR $1BBD C3/1BBB: 801A BRA $1BD7 C3/1BBD: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/1BC0: 20086A JSR $6A08 C3/1BC3: A906 LDA #$06 C3/1BC5: 0446 TSB $46 C3/1BC7: 644A STZ $4A C3/1BC9: 6449 STZ $49 C3/1BCB: 20B694 JSR $94B6 C3/1BCE: 20508E JSR $8E50 C3/1BD1: 20598E JSR $8E59 C3/1BD4: 4CB007 JMP $07B0 (finger OAM initiating) C3/1BD7: 203290 JSR $9032 C3/1BDA: A901 LDA #$01 C3/1BDC: 8526 STA $26 (transition process) C3/1BDE: A936 LDA #$36 C3/1BE0: 8527 STA $27 (queue up to execute at C3/9621) C3/1BE2: 4C4135 JMP $3541 DP $26 is #$7E C3/1BE5: 20011C JSR $1C01 (from C3/02D7) C3/1BE8: 204F96 JSR $964F C3/1BEB: 200A1C JSR $1C0A C3/1BEE: A955 LDA #$55 (queue up to execute at C3/9884) C3/1BF0: 4C151C JMP $1C15 (BRA would work here) DP $26 is #$7F C3/1BF3: 20011C JSR $1C01 (from C3/02D9) C3/1BF6: 205696 JSR $9656 C3/1BF9: 200A1C JSR $1C0A C3/1BFC: A956 LDA #$56 (queue up to execute at C3/98CF) C3/1BFE: 4C151C JMP $1C15 (BRA would work here) C3/1C01: 20BD1B JSR $1BBD C3/1C04: 203290 JSR $9032 C3/1C07: 4C1496 JMP $9614 C3/1C0A: 206C8E JSR $8E6C C3/1C0D: 20758E JSR $8E75 C3/1C10: A901 LDA #$01 C3/1C12: 8526 STA $26 (transition process) C3/1C14: 60 RTS C3/1C15: 8527 STA $27 C3/1C17: 4C4135 JMP $3541 DP $26 is #$6D - "Reequip" is set to Optimum in config; called when relics change equipment C3/1C1A: 20BD1B JSR $1BBD (from C3/02B5) C3/1C1D: 20F096 JSR $96F0 (Optimum command - fully equips standard equipment) C3/1C20: A902 LDA #$02 C3/1C22: 8525 STA $25 C3/1C24: 80B1 BRA $1BD7 DP $26 is #$6E - "Reequip" is set to Empty in config; called when relics change equipment C3/1C26: 20BD1B JSR $1BBD (from C3/02B7) C3/1C29: 20A896 JSR $96A8 (Empty command - removes standard equipment) C3/1C2C: A902 LDA #$02 C3/1C2E: 8525 STA $25 C3/1C30: 80A5 BRA $1BD7 DP $26 is #$38 - initiate screen that displays equipment for all characters C3/1C32: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/1C35: 209794 JSR $9497 (get DMA transfer initiated) C3/1C38: 20ED8E JSR $8EED C3/1C3B: A901 LDA #$01 C3/1C3D: 8526 STA $26 (transition process) C3/1C3F: A939 LDA #$39 C3/1C41: 8527 STA $27 (queue up to execute at C3/2966) C3/1C43: 4C4135 JMP $3541 DP $26 is #$0B - initiate the status screen C3/1C46: 202F35 JSR $352F (from C3/01F1, turns off DMA and HDMA transfers, turns the screen off) C3/1C49: 200B62 JSR $620B (do a DMA transfer) C3/1C4C: 20055D JSR $5D05 (put status screen in VRAM?) C3/1C4F: 205D1C JSR $1C5D C3/1C52: A901 LDA #$01 C3/1C54: 8526 STA $26 (transition process) C3/1C56: A90C LDA #$0C C3/1C58: 8527 STA $27 (queue up to execute at C3/21F5) C3/1C5A: 4C4135 JMP $3541 C3/1C5D: 7B TDC C3/1C5E: A528 LDA $28 C3/1C60: 0A ASL A C3/1C61: AA TAX C3/1C62: B46D LDY $6D,X C3/1C64: B90000 LDA $0000,Y (load character ID) C3/1C67: C90C CMP #$0C (Is this Gogo?) C3/1C69: D00D BNE $1C78 (branch if not) C3/1C6B: 20FF36 JSR $36FF (get hotspot data) C3/1C6E: 200837 JSR $3708 (set finger positioning) C3/1C71: A906 LDA #$06 C3/1C73: 0446 TSB $46 C3/1C75: 4CB007 JMP $07B0 (finger OAM initiating) C3/1C78: A906 LDA #$06 C3/1C7A: 1446 TRB $46 C3/1C7C: 60 RTS DP $26 is #$0D - initiate the config screen C3/1C7D: 202F35 JSR $352F (fade out screen, disable H/DMA, from C3/01F5) C3/1C80: 644A STZ $4A C3/1C82: 204C3A JSR $3A4C (do a DMA transfer) C3/1C85: 209E38 JSR $389E (draw the config screen) C3/1C88: 205838 JSR $3858 (get hotspot data for config screen 1) C3/1C8B: A55F LDA $5F C3/1C8D: 854E STA $4E C3/1C8F: 206138 JSR $3861 (get finger positioning data for config screen 1) C3/1C92: 20B007 JSR $07B0 (finger OAM initiating) C3/1C95: A901 LDA #$01 C3/1C97: 8526 STA $26 (transition process) C3/1C99: A90E LDA #$0E C3/1C9B: 8527 STA $27 (queue up to execute at C3/22C5) C3/1C9D: 4C4135 JMP $3541 DP $26 is #$13 - initiate the save menu C3/1CA0: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/1CA3: A00200 LDY #$0002 C3/1CA6: 8437 STY $37 C3/1CA8: 20A336 JSR $36A3 (do an HDMA transfer) C3/1CAB: A9E3 LDA #$E3 C3/1CAD: 1443 TRB $43 (eventually disable channels 0, 1, 5-7 of HDMA) C3/1CAF: 20EC15 JSR $15EC (draw save screen and get data of the three save files) C3/1CB2: 20C76C JSR $6CC7 (get character sprite palettes) C3/1CB5: 20846C JSR $6C84 (palette of finger) C3/1CB8: 20A415 JSR $15A4 (hotspot data for save screen) C3/1CBB: A491 LDY $91 C3/1CBD: D008 BNE $1CC7 C3/1CBF: A493 LDY $93 C3/1CC1: D004 BNE $1CC7 C3/1CC3: A495 LDY $95 C3/1CC5: F006 BEQ $1CCD C3/1CC7: AD2402 LDA $0224 C3/1CCA: 3A DEC A C3/1CCB: 854E STA $4E C3/1CCD: 20AD15 JSR $15AD (finger positioning for save screen) C3/1CD0: 20B007 JSR $07B0 (finger OAM initiating) C3/1CD3: A54B LDA $4B C3/1CD5: 1A INC A C3/1CD6: 8566 STA $66 C3/1CD8: A952 LDA #$52 C3/1CDA: 8526 STA $26 (execute at C3/1A0A) C3/1CDC: A914 LDA #$14 C3/1CDE: 8527 STA $27 (queue up to execute at C3/2540) C3/1CE0: 4C4135 JMP $3541 DP $26 is #$15 - initiate "Erasing data" screen C3/1CE3: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/1CE6: 201569 JSR $6915 C3/1CE9: 202831 JSR $3128 C3/1CEC: 20D415 JSR $15D4 (hotspot data for confirming save) C3/1CEF: 20DD15 JSR $15DD (finger positioning for confirming save) C3/1CF2: 20B007 JSR $07B0 (finger OAM initiating) C3/1CF5: 20D118 JSR $18D1 C3/1CF8: A916 LDA #$16 C3/1CFA: 8527 STA $27 (queue up to execute at C3/259D) C3/1CFC: A901 LDA #$01 C3/1CFE: 8526 STA $26 (transition process to above) C3/1D00: 4C4135 JMP $3541 DP $26 is #$20 - initiate SRAM loading screen C3/1D03: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/1D06: A00200 LDY #$0002 C3/1D09: 8437 STY $37 C3/1D0B: 20A336 JSR $36A3 (do an HDMA transfer) C3/1D0E: A9E3 LDA #$E3 C3/1D10: 1443 TRB $43 (eventually disable channels 0, 1, 5-7 of HDMA) C3/1D12: A400 LDY $00 C3/1D14: 8435 STY $35 C3/1D16: 8439 STY $39 C3/1D18: 843D STY $3D C3/1D1A: A902 LDA #$02 C3/1D1C: 8546 STA $46 C3/1D1E: 200816 JSR $1608 (draw all windows, get screen filled with data) C3/1D21: 20C76C JSR $6CC7 (get character sprite palettes) C3/1D24: 20846C JSR $6C84 (palette of finger) C3/1D27: 20B815 JSR $15B8 (load screen's hotspot data) C3/1D2A: A491 LDY $91 C3/1D2C: D008 BNE $1D36 C3/1D2E: A493 LDY $93 C3/1D30: D004 BNE $1D36 C3/1D32: A495 LDY $95 C3/1D34: F006 BEQ $1D3C C3/1D36: AFF07F30 LDA $307FF0 C3/1D3A: 854E STA $4E C3/1D3C: 20C115 JSR $15C1 (finger positioning data) C3/1D3F: 20B007 JSR $07B0 (finger OAM initiating) C3/1D42: A54B LDA $4B C3/1D44: 8566 STA $66 C3/1D46: A921 LDA #$21 C3/1D48: 8527 STA $27 (queue up to execute at C3/29C2) C3/1D4A: A952 LDA #$52 C3/1D4C: 8526 STA $26 (execute at C3/1A0A) C3/1D4E: 4C4135 JMP $3541 DP $26 is #$22 - initiate the "This data?" screen C3/1D51: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/1D54: 201569 JSR $6915 C3/1D57: 204C31 JSR $314C C3/1D5A: 20D415 JSR $15D4 (confirm save/load hotspots) C3/1D5D: 20DD15 JSR $15DD (confirm save/load finger positioning data) C3/1D60: 20B007 JSR $07B0 (finger OAM initiating) C3/1D63: 20D118 JSR $18D1 C3/1D66: A923 LDA #$23 C3/1D68: 8527 STA $27 (queue up to execute at C3/2A2A) C3/1D6A: A901 LDA #$01 C3/1D6C: 8526 STA $26 (transition process to above) C3/1D6E: 4C4135 JMP $3541 DP $26 is #$00, general fade out C3/1D71: 204F30 JSR $304F C3/1D74: A00800 LDY #$0008 C3/1D77: 8420 STY $20 C3/1D79: A902 LDA #$02 C3/1D7B: 8526 STA $26 (execute at C3/1D8B) C3/1D7D: 60 RTS DP $26 is #$01, general fade out C3/1D7E: 205630 JSR $3056 C3/1D81: A00800 LDY #$0008 C3/1D84: 8420 STY $20 C3/1D86: A902 LDA #$02 C3/1D88: 8526 STA $26 (execute at C3/1D8B) C3/1D8A: 60 RTS DP $26 is #$02, transfers $27 to $26 C3/1D8B: A420 LDY $20 C3/1D8D: D004 BNE $1D93 C3/1D8F: A527 LDA $27 (load queued) C3/1D91: 8526 STA $26 (transfer it to execute) C3/1D93: 60 RTS DP $26, value of #$03 C3/1D94: A900 LDA #$00 C3/1D96: A0422F LDY #$2F42 C3/1D99: 207311 JSR $1173 (put C3/2F42 in the queue) C3/1D9C: 20B007 JSR $07B0 (finger OAM initiating) C3/1D9F: A905 LDA #$05 C3/1DA1: 8526 STA $26 (execute at C3/1DA4) C3/1DA3: 60 RTS DP $26 is #$05 - sustain the main menu C3/1DA4: 204835 JSR $3548 C3/1DA7: A508 LDA $08 C3/1DA9: 8980 BIT #$80 (did you press A?) C3/1DAB: F003 BEQ $1DB0 (branch if not, BPL...) C3/1DAD: 4C622E JMP $2E62 C3/1DB0: A509 LDA $09 C3/1DB2: 8902 BIT #$02 C3/1DB4: F006 BEQ $1DBC C3/1DB6: 20A30E JSR $0EA3 C3/1DB9: 4CC62E JMP $2EC6 C3/1DBC: A509 LDA $09 (A already holds the contents of $09) C3/1DBE: 8980 BIT #$80 (did you press B?) C3/1DC0: F00F BEQ $1DD1 (branch if not, BPL...) C3/1DC2: 9C0502 STZ $0205 C3/1DC5: 20A90E JSR $0EA9 C3/1DC8: 20D21D JSR $1DD2 C3/1DCB: A9FF LDA #$FF C3/1DCD: 8527 STA $27 (exit the menu) C3/1DCF: 6426 STZ $26 (fade out) C3/1DD1: 60 RTS C3/1DD2: 9CDF11 STZ $11DF C3/1DD5: A600 LDX $00 C3/1DD7: B569 LDA $69,X C3/1DD9: 3006 BMI $1DE1 C3/1DDB: DA PHX C3/1DDC: 220600C2 JSL $C20006 (equipment check function) C3/1DE0: FA PLX C3/1DE1: E8 INX C3/1DE2: E00400 CPX #$0004 C3/1DE5: D0F0 BNE $1DD7 C3/1DE7: 60 RTS DP $26 is #$06 C3/1DE8: 204835 JSR $3548 C3/1DEB: A509 LDA $09 C3/1DED: 8980 BIT #$80 (did you press B?) C3/1DEF: F00C BEQ $1DFD (branch if not, BPL...) C3/1DF1: 20A90E JSR $0EA9 C3/1DF4: A905 LDA #$05 C3/1DF6: 1446 TRB $46 C3/1DF8: A903 LDA #$03 C3/1DFA: 8526 STA $26 (execute at C3/1D94) C3/1DFC: 60 RTS C3/1DFD: A509 LDA $09 (A already holds the contents of $09) C3/1DFF: 8902 BIT #$02 (did you press left?) C3/1E01: F01C BEQ $1E1F (branch if not) C3/1E03: A525 LDA $25 C3/1E05: C902 CMP #$02 C3/1E07: F004 BEQ $1E0D C3/1E09: C903 CMP #$03 C3/1E0B: D012 BNE $1E1F C3/1E0D: 20A30E JSR $0EA3 C3/1E10: A906 LDA #$06 C3/1E12: 1446 TRB $46 C3/1E14: A937 LDA #$37 C3/1E16: 8526 STA $26 (execute at C3/1EB5) C3/1E18: A54E LDA $4E C3/1E1A: 855E STA $5E C3/1E1C: 4C9F08 JMP $089F C3/1E1F: A508 LDA $08 C3/1E21: 8980 BIT #$80 (did you press A?) C3/1E23: F007 BEQ $1E2C (branch if not, BPL... and branch backwards!) C3/1E25: A54B LDA $4B C3/1E27: 8528 STA $28 C3/1E29: 4C2D1E JMP $1E2D (BRA would work here) C3/1E2C: 60 RTS (this RTS doesn't need to be here, good ol compilers :P) C3/1E2D: 204E1E JSR $1E4E C3/1E30: B010 BCS $1E42 C3/1E32: 7B TDC C3/1E33: A525 LDA $25 C3/1E35: AA TAX C3/1E36: BF491EC3 LDA $C31E49,X C3/1E3A: 8527 STA $27 (queue up an exit, C3/5B1B, C3/1BB8, C3/9E4B, or the status screen at C3/1C46) C3/1E3C: 6426 STZ $26 (fade out) C3/1E3E: 20B20E JSR $0EB2 (makes the click sound) C3/1E41: 60 RTS C3/1E42: 20C00E JSR $0EC0 (makes the buzzer sound) C3/1E45: 205D30 JSR $305D (mosaic effect) C3/1E48: 60 RTS C3/1E49: FF C3/1E4A: 09 C3/1E4B: 35 C3/1E4C: 58 C3/1E4D: 0B Determine if a character can be equipped C3/1E4E: 7B TDC C3/1E4F: A525 LDA $25 C3/1E51: C901 CMP #$01 C3/1E53: F034 BEQ $1E89 C3/1E55: C902 CMP #$02 C3/1E57: F006 BEQ $1E5F C3/1E59: C903 CMP #$03 C3/1E5B: F017 BEQ $1E74 C3/1E5D: 8054 BRA $1EB3 Fork: Standard equipment C3/1E5F: 7B TDC (upper 8 bits of A are already 0...) C3/1E60: A528 LDA $28 C3/1E62: 0A ASL A C3/1E63: AA TAX C3/1E64: C220 REP #$20 (16 bit memory/accum.) C3/1E66: B56D LDA $6D,X C3/1E68: E220 SEP #$20 (8 bit memory/accum.) C3/1E6A: AA TAX C3/1E6B: BD0000 LDA $0000,X C3/1E6E: C90D CMP #$0D (Umaro or higher?) (NOTE: NOP these two out to let anyone be equippable) C3/1E70: B03F BCS $1EB1 C3/1E72: 8028 BRA $1E9C Fork: Relics C3/1E74: 7B TDC (upper 8 bits of A are already 0...) C3/1E75: A528 LDA $28 C3/1E77: 0A ASL A C3/1E78: AA TAX C3/1E79: C220 REP #$20 (16 bit memory/accum.) C3/1E7B: B56D LDA $6D,X C3/1E7D: E220 SEP #$20 (8 bit memory/accum.) C3/1E7F: AA TAX C3/1E80: BD0000 LDA $0000,X C3/1E83: C90E CMP #$0E (Leo or higher?) C3/1E85: B02A BCS $1EB1 C3/1E87: 8013 BRA $1E9C Fork: Espers C3/1E89: 203D4D JSR $4D3D (enable and disable skills) C3/1E8C: A924 LDA #$24 C3/1E8E: A600 LDX $00 C3/1E90: D579 CMP $79,X C3/1E92: D008 BNE $1E9C C3/1E94: E8 INX C3/1E95: E00700 CPX #$0007 C3/1E98: D0F6 BNE $1E90 C3/1E9A: 8015 BRA $1EB1 Fork: Check for status ineligibility C3/1E9C: 7B TDC C3/1E9D: A528 LDA $28 C3/1E9F: 0A ASL A C3/1EA0: AA TAX C3/1EA1: C220 REP #$20 (16 bit memory/accum.) C3/1EA3: B56D LDA $6D,X C3/1EA5: E220 SEP #$20 (8 bit memory/accum.) C3/1EA7: AA TAX C3/1EA8: BD1400 LDA $0014,X (status byte 1) C3/1EAB: 29C2 AND #$C2 (Check Death, Zombie, Stone) C3/1EAD: D002 BNE $1EB1 (branch if any are set) C3/1EAF: 8002 BRA $1EB3 C3/1EB1: 38 SEC C3/1EB2: 60 RTS C3/1EB3: 18 CLC C3/1EB4: 60 RTS C3/1EB5: 204835 JSR $3548 C3/1EB8: A509 LDA $09 C3/1EBA: 8980 BIT #$80 (did you press B?) C3/1EBC: D006 BNE $1EC4 (branch if so, BMI...) C3/1EBE: A509 LDA $09 (A already holds the contents of $09) C3/1EC0: 8901 BIT #$01 (did you press right? LSR A...) C3/1EC2: F021 BEQ $1EE5 (branch if not, BCC...) C3/1EC4: 20A90E JSR $0EA9 C3/1EC7: 20982F JSR $2F98 C3/1ECA: 20B007 JSR $07B0 (finger OAM initiating) C3/1ECD: A900 LDA #$00 C3/1ECF: A0C02F LDY #$2FC0 C3/1ED2: 207311 JSR $1173 (put C3/2FC0 in the queue) C3/1ED5: 20B011 JSR $11B0 (execute everything in OAM queue) C3/1ED8: A55E LDA $5E C3/1EDA: 854E STA $4E C3/1EDC: A906 LDA #$06 C3/1EDE: 8526 STA $26 (execute at C3/1DE8) C3/1EE0: A908 LDA #$08 C3/1EE2: 1446 TRB $46 C3/1EE4: 60 RTS C3/1EE5: A508 LDA $08 C3/1EE7: 8980 BIT #$80 (did you press A?) C3/1EE9: F00A BEQ $1EF5 (branch if not, BPL...) C3/1EEB: 20B20E JSR $0EB2 (makes the click sound) C3/1EEE: 6426 STZ $26 (fade out) C3/1EF0: A938 LDA #$38 C3/1EF2: 8527 STA $27 (queue up to execute at C3/1C32) C3/1EF4: 60 RTS C3/1EF5: 60 RTS C3/1EF6: 60 RTS DP $26 is #$08 - sustain the item menu C3/1EF7: A910 LDA #$10 C3/1EF9: 1445 TRB $45 C3/1EFB: 7B TDC C3/1EFC: 852A STA $2A C3/1EFE: 20FD0E JSR $0EFD C3/1F01: 20641F JSR $1F64 C3/1F04: B0F0 BCS $1EF6 C3/1F06: 20227D JSR $7D22 C3/1F09: 20F182 JSR $82F1 C3/1F0C: A509 LDA $09 C3/1F0E: 8980 BIT #$80 (did you press B?) C3/1F10: F029 BEQ $1F3B (branch if not, BPL...) C3/1F12: 20A90E JSR $0EA9 C3/1F15: A44F LDY $4F C3/1F17: 8C2F02 STY $022F C3/1F1A: A54A LDA $4A C3/1F1C: 8D3102 STA $0231 C3/1F1F: 20807D JSR $7D80 C3/1F22: AD4E1D LDA $1D4E (various things set in the config screen) C3/1F25: 2940 AND #$40 (cursor memory set?) C3/1F27: F005 BEQ $1F2E (branch if not) C3/1F29: AC3402 LDY $0234 C3/1F2C: 844D STY $4D C3/1F2E: 20867D JSR $7D86 C3/1F31: A917 LDA #$17 C3/1F33: 8526 STA $26 (execute at C3/25F4) C3/1F35: 208583 JSR $8385 C3/1F38: 4C390F JMP $0F39 C3/1F3B: A508 LDA $08 C3/1F3D: 8980 BIT #$80 (did you press A?) C3/1F3F: F00E BEQ $1F4F (branch if not, BPL...) C3/1F41: 20B20E JSR $0EB2 (makes the click sound) C3/1F44: A54B LDA $4B C3/1F46: 8528 STA $28 C3/1F48: A919 LDA #$19 C3/1F4A: 8526 STA $26 (execute at C3/2779) C3/1F4C: 4C212F JMP $2F21 C3/1F4F: 60 RTS C3/1F50: 6450 STZ $50 C3/1F52: 644E STZ $4E C3/1F54: 38 SEC C3/1F55: 60 RTS C3/1F56: A554 LDA $54 C3/1F58: 3A DEC A C3/1F59: 854E STA $4E C3/1F5B: 18 CLC C3/1F5C: 654A ADC $4A C3/1F5E: 8550 STA $50 C3/1F60: 38 SEC C3/1F61: 60 RTS C3/1F62: 18 CLC C3/1F63: 60 RTS Scroll through pages in a scrolling screen C3/1F64: A520 LDA $20 C3/1F66: D0FA BNE $1F62 C3/1F68: A50A LDA $0A C3/1F6A: 8910 BIT #$10 C3/1F6C: F025 BEQ $1F93 C3/1F6E: A54A LDA $4A C3/1F70: C55C CMP $5C C3/1F72: F0E2 BEQ $1F56 C3/1F74: A55C LDA $5C C3/1F76: 38 SEC C3/1F77: E54A SBC $4A C3/1F79: C55A CMP $5A C3/1F7B: B002 BCS $1F7F C3/1F7D: 8002 BRA $1F81 C3/1F7F: A55A LDA $5A C3/1F81: 85E0 STA $E0 C3/1F83: A54A LDA $4A C3/1F85: 18 CLC C3/1F86: 65E0 ADC $E0 C3/1F88: 854A STA $4A C3/1F8A: A550 LDA $50 C3/1F8C: 18 CLC C3/1F8D: 65E0 ADC $E0 C3/1F8F: 8550 STA $50 C3/1F91: 8024 BRA $1FB7 C3/1F93: A50A LDA $0A C3/1F95: 8920 BIT #$20 C3/1F97: F0C9 BEQ $1F62 C3/1F99: A54A LDA $4A C3/1F9B: F0B3 BEQ $1F50 C3/1F9D: C55A CMP $5A C3/1F9F: B004 BCS $1FA5 C3/1FA1: A54A LDA $4A C3/1FA3: 8002 BRA $1FA7 C3/1FA5: A55A LDA $5A C3/1FA7: 85E0 STA $E0 C3/1FA9: A54A LDA $4A C3/1FAB: 38 SEC C3/1FAC: E5E0 SBC $E0 C3/1FAE: 854A STA $4A C3/1FB0: A550 LDA $50 C3/1FB2: 38 SEC C3/1FB3: E5E0 SBC $E0 C3/1FB5: 8550 STA $50 C3/1FB7: 20A30E JSR $0EA3 C3/1FBA: 7B TDC C3/1FBB: A52A LDA $2A C3/1FBD: 0A ASL A C3/1FBE: AA TAX C3/1FBF: FCC41F JSR ($1FC4,X) C3/1FC2: 38 SEC C3/1FC3: 60 RTS C3/1FC4: D01F C3/1FC6: D61F C3/1FC8: DC1F C3/1FCA: E21F C3/1FCC: E81F C3/1FCE: EE1F C3/1FD0: 20957E JSR $7E95 C3/1FD3: 4C887F JMP $7F88 C3/1FD6: 202D4E JSR $4E2D C3/1FD9: 4C874F JMP $4F87 C3/1FDC: 202D4E JSR $4E2D C3/1FDF: 4C3C52 JMP $523C C3/1FE2: 202D4E JSR $4E2D C3/1FE5: 4CA753 JMP $53A7 C3/1FE8: 202D4E JSR $4E2D C3/1FEB: 4C6C54 JMP $546C C3/1FEE: 202095 JSR $9520 C3/1FF1: 4CAC9C JMP $9CAC DP $26 is #$0A - sustain the skills menu C3/1FF4: A910 LDA #$10 C3/1FF6: 0445 TSB $45 C3/1FF8: A9C0 LDA #$C0 C3/1FFA: 1446 TRB $46 C3/1FFC: 20564B JSR $4B56 C3/1FFF: A509 LDA $09 C3/2001: 8980 BIT #$80 (did you press B?) C3/2003: F00A BEQ $200F (branch if not, BPL...) C3/2005: 20A90E JSR $0EA9 C3/2008: A904 LDA #$04 C3/200A: 8527 STA $27 (init the main menu, queue up to execute at C3/1A8A) C3/200C: 6426 STZ $26 (fade out) C3/200E: 60 RTS C3/200F: A508 LDA $08 C3/2011: 8980 BIT #$80 (did you press A?) C3/2013: F007 BEQ $201C (branch if not, BPL...) C3/2015: A54E LDA $4E C3/2017: 855E STA $5E C3/2019: 4C8A20 JMP $208A C3/201C: A909 LDA #$09 C3/201E: 85E0 STA $E0 C3/2020: 8000 BRA $2022 (...why?) C3/2022: A5B5 LDA $B5 (mosaic intensity) C3/2024: 29F0 AND #$F0 (keep the intensity, remove the on/off flags) C3/2026: D061 BNE $2089 (branch if there's any intensity) C3/2028: A508 LDA $08 C3/202A: 8910 BIT #$10 (did you press L?) C3/202C: F02B BEQ $2059 (branch if not) C3/202E: A525 LDA $25 C3/2030: C903 CMP #$03 C3/2032: D00B BNE $203F C3/2034: 20EB9E JSR $9EEB C3/2037: A599 LDA $99 C3/2039: F004 BEQ $203F C3/203B: 20A30E JSR $0EA3 (JMP fool!) C3/203E: 60 RTS C3/203F: 7B TDC C3/2040: A528 LDA $28 C3/2042: 1A INC A C3/2043: 2903 AND #$03 C3/2045: 8528 STA $28 C3/2047: AA TAX C3/2048: B569 LDA $69,X C3/204A: 30F3 BMI $203F C3/204C: 204E1E JSR $1E4E C3/204F: B0EE BCS $203F C3/2051: A5E0 LDA $E0 C3/2053: 8526 STA $26 C3/2055: 20A30E JSR $0EA3 (JMP fool!) C3/2058: 60 RTS C3/2059: A508 LDA $08 (A already holds the contents of $08) C3/205B: 8920 BIT #$20 (did you press R?) C3/205D: F02A BEQ $2089 (branch if not) C3/205F: A525 LDA $25 C3/2061: C903 CMP #$03 C3/2063: D00B BNE $2070 C3/2065: 20EB9E JSR $9EEB C3/2068: A599 LDA $99 C3/206A: F004 BEQ $2070 C3/206C: 20A30E JSR $0EA3 (JMP fool!) C3/206F: 60 RTS C3/2070: 7B TDC C3/2071: A528 LDA $28 C3/2073: 3A DEC A C3/2074: 2903 AND #$03 C3/2076: 8528 STA $28 C3/2078: AA TAX C3/2079: B569 LDA $69,X C3/207B: 30F3 BMI $2070 C3/207D: 204E1E JSR $1E4E C3/2080: B0EE BCS $2070 C3/2082: A5E0 LDA $E0 C3/2084: 8526 STA $26 C3/2086: 20A30E JSR $0EA3 (JMP fool!) C3/2089: 60 RTS C3/208A: 7B TDC C3/208B: A54B LDA $4B C3/208D: AA TAX C3/208E: B579 LDA $79,X C3/2090: C920 CMP #$20 C3/2092: D00A BNE $209E C3/2094: 20B20E JSR $0EB2 (makes the click sound) C3/2097: A54B LDA $4B C3/2099: 0A ASL A C3/209A: AA TAX C3/209B: 7CA520 JMP ($20A5,X) C3/209E: 20C00E JSR $0EC0 (makes the buzzer sound) C3/20A1: 205D30 JSR $305D (mosaic effect) C3/20A4: 60 RTS C3/20A5: B320 (Espers) C3/20A7: 1C21 (magic) C3/20A9: EE20 (SwdTech) C3/20AB: 0521 (Blitz) C3/20AD: 6E21 (Lore) C3/20AF: A621 (Rage) C3/20B1: DE21 (Dance) C3/20B3: 644A STZ $4A C3/20B5: 201F09 JSR $091F (set arrow's initial position) C3/20B8: C220 REP #$20 (16 bit memory/accum.) C3/20BA: A90010 LDA #$1000 C3/20BD: 9F4A357E STA $7E354A,X C3/20C1: A96800 LDA #$0068 C3/20C4: 9FCA347E STA $7E34CA,X C3/20C8: E220 SEP #$20 (8 bit memory/accum.) C3/20CA: 20184C JSR $4C18 (hotspot data for Esper menu) C3/20CD: 20214C JSR $4C21 (finger positioning data for Esper menu) C3/20D0: A906 LDA #$06 C3/20D2: 855C STA $5C C3/20D4: A908 LDA #$08 C3/20D6: 855A STA $5A C3/20D8: A902 LDA #$02 C3/20DA: 855B STA $5B C3/20DC: A00001 LDY #$0100 C3/20DF: 8439 STY $39 C3/20E1: 843D STY $3D C3/20E3: 205254 JSR $5452 (print out the currently obtained espers) C3/20E6: A91E LDA #$1E C3/20E8: 8526 STA $26 (execute at C3/28D3) C3/20EA: 20EB2E JSR $2EEB (JMP fool!) C3/20ED: 60 RTS C3/20EE: 644A STZ $4A C3/20F0: 20CE4B JSR $4BCE C3/20F3: 20D74B JSR $4BD7 C3/20F6: A00001 LDY #$0100 C3/20F9: 8439 STY $39 C3/20FB: 843D STY $3D C3/20FD: 20D752 JSR $52D7 (Basically tells it to print out "SwdTech") C3/2100: A93E LDA #$3E C3/2102: 8526 STA $26 (execute at C3/298E) C3/2104: 60 RTS C3/2105: 644A STZ $4A C3/2107: 20CE4B JSR $4BCE C3/210A: 20D74B JSR $4BD7 C3/210D: A00001 LDY #$0100 C3/2110: 8439 STY $39 C3/2112: 843D STY $3D C3/2114: 20D455 JSR $55D4 (Basically tells it to print out "Blitz") C3/2117: A933 LDA #$33 C3/2119: 8526 STA $26 (execute at C3/2977) C3/211B: 60 RTS C3/211C: 203021 JSR $2130 C3/211F: 204821 JSR $2148 C3/2122: 205821 JSR $2158 C3/2125: 20C651 JSR $51C6 C3/2128: 204D0F JSR $0F4D C3/212B: A91A LDA #$1A C3/212D: 8526 STA $26 (execute at C3/27E2) C3/212F: 60 RTS C3/2130: 644A STZ $4A C3/2132: 201F09 JSR $091F (set arrow's initial position) C3/2135: C220 REP #$20 (16 bit memory/accum.) C3/2137: A90D05 LDA #$050D C3/213A: 9F4A357E STA $7E354A,X C3/213E: A96800 LDA #$0068 C3/2141: 9FCA347E STA $7E34CA,X C3/2145: E220 SEP #$20 (8 bit memory/accum.) C3/2147: 60 RTS C3/2148: 20824B JSR $4B82 C3/214B: AD4E1D LDA $1D4E (load some config settings) C3/214E: 2940 AND #$40 (is cursor memory set?) C3/2150: F003 BEQ $2155 (branch if not) C3/2152: 200A0E JSR $0E0A C3/2155: 4C8B4B JMP $4B8B C3/2158: A913 LDA #$13 C3/215A: 855C STA $5C C3/215C: A908 LDA #$08 C3/215E: 855A STA $5A C3/2160: A902 LDA #$02 C3/2162: 855B STA $5B C3/2164: A00001 LDY #$0100 C3/2167: 8439 STY $39 C3/2169: 843D STY $3D C3/216B: 4C7F4D JMP $4D7F C3/216E: 644A STZ $4A C3/2170: 201F09 JSR $091F (set arrow's initial position) C3/2173: C220 REP #$20 (16 bit memory/accum.) C3/2175: A90006 LDA #$0600 C3/2178: 9F4A357E STA $7E354A,X C3/217C: A96800 LDA #$0068 C3/217F: 9FCA347E STA $7E34CA,X C3/2183: E220 SEP #$20 (8 bit memory/accum.) C3/2185: 20F44B JSR $4BF4 C3/2188: 20FD4B JSR $4BFD C3/218B: A910 LDA #$10 C3/218D: 855C STA $5C C3/218F: A908 LDA #$08 C3/2191: 855A STA $5A C3/2193: A901 LDA #$01 C3/2195: 855B STA $5B C3/2197: A00001 LDY #$0100 C3/219A: 8439 STY $39 C3/219C: 843D STY $3D C3/219E: 20F951 JSR $51F9 (Basically tells it to print out "Lore") C3/21A1: A91B LDA #$1B C3/21A3: 8526 STA $26 (execute at C3/288A) C3/21A5: 60 RTS C3/21A6: 644A STZ $4A C3/21A8: 201F09 JSR $091F (set arrow's initial position) C3/21AB: C220 REP #$20 (16 bit memory/accum.) C3/21AD: A9CC00 LDA #$00CC C3/21B0: 9F4A357E STA $7E354A,X C3/21B4: A96800 LDA #$0068 C3/21B7: 9FCA347E STA $7E34CA,X C3/21BB: E220 SEP #$20 (8 bit memory/accum.) C3/21BD: 204C4C JSR $4C4C C3/21C0: 20554C JSR $4C55 C3/21C3: A978 LDA #$78 C3/21C5: 855C STA $5C C3/21C7: A908 LDA #$08 C3/21C9: 855A STA $5A C3/21CB: A902 LDA #$02 C3/21CD: 855B STA $5B C3/21CF: A00001 LDY #$0100 C3/21D2: 8439 STY $39 C3/21D4: 843D STY $3D C3/21D6: 209153 JSR $5391 (Basically tells it to print out "Rage") C3/21D9: A91D LDA #$1D C3/21DB: 8526 STA $26 (execute at C3/28BA) C3/21DD: 60 RTS C3/21DE: 644A STZ $4A C3/21E0: 20CE4B JSR $4BCE C3/21E3: 20D74B JSR $4BD7 C3/21E6: A00001 LDY #$0100 C3/21E9: 8439 STY $39 C3/21EB: 843D STY $3D C3/21ED: 207457 JSR $5774 (Basically tells it to print out "Dance") C3/21F0: A91C LDA #$1C C3/21F2: 8526 STA $26 (execute at C3/28AA) C3/21F4: 60 RTS DP $26 is #$0C - sustain the status screen C3/21F5: 20390F JSR $0F39 (from C3/01F3) C3/21F8: A508 LDA $08 C3/21FA: 8910 BIT #$10 (are you pressing L?) C3/21FC: F020 BEQ $221E (branch if not) C3/21FE: A528 LDA $28 C3/2200: 8579 STA $79 C3/2202: 7B TDC C3/2203: A528 LDA $28 C3/2205: 1A INC A C3/2206: 2903 AND #$03 C3/2208: 8528 STA $28 C3/220A: AA TAX C3/220B: B569 LDA $69,X C3/220D: 30F3 BMI $2202 C3/220F: A528 LDA $28 C3/2211: C579 CMP $79 C3/2213: F003 BEQ $2218 C3/2215: 20A30E JSR $0EA3 C3/2218: 205D1C JSR $1C5D C3/221B: 4C835D JMP $5D83 C3/221E: A508 LDA $08 (A already holds the contents of $08) C3/2220: 8920 BIT #$20 (are you pressing R?) C3/2222: F020 BEQ $2244 (branch if not) C3/2224: A528 LDA $28 C3/2226: 8579 STA $79 C3/2228: 7B TDC C3/2229: A528 LDA $28 C3/222B: 3A DEC A (this is the only difference from C3/21F5) C3/222C: 2903 AND #$03 C3/222E: 8528 STA $28 C3/2230: AA TAX C3/2231: B569 LDA $69,X C3/2233: 30F3 BMI $2228 C3/2235: A528 LDA $28 C3/2237: C579 CMP $79 C3/2239: F003 BEQ $223E C3/223B: 20A30E JSR $0EA3 C3/223E: 205D1C JSR $1C5D C3/2241: 4C835D JMP $5D83 C3/2244: A509 LDA $09 (from C3/2222) C3/2246: 8980 BIT #$80 (did you press B?) C3/2248: F00A BEQ $2254 (branch if not, BPL...) C3/224A: 20A90E JSR $0EA9 C3/224D: A904 LDA #$04 C3/224F: 8527 STA $27 (init the main menu, queue up to execute at C3/1A8A) C3/2251: 6426 STZ $26 (fade out) C3/2253: 60 RTS One portion of Gogo's custom command setting in status menu C3/2254: 7B TDC (from C3/2248) C3/2255: A528 LDA $28 C3/2257: 0A ASL A C3/2258: AA TAX C3/2259: B46D LDY $6D,X C3/225B: B90000 LDA $0000,Y (character ID) C3/225E: C90C CMP #$0C (is character Gogo?) C3/2260: D051 BNE $22B3 (branch if not, and go backwards!) C3/2262: 200537 JSR $3705 (set finger positioning data for the four commands in status menu) C3/2265: A508 LDA $08 C3/2267: 8980 BIT #$80 (did you press A?) C3/2269: F048 BEQ $22B3 (branch if not, BPL... and go backwards!) C3/226B: 20B20E JSR $0EB2 (makes the click sound) C3/226E: A54B LDA $4B C3/2270: 85E7 STA $E7 C3/2272: 64E8 STZ $E8 C3/2274: 7B TDC C3/2275: A528 LDA $28 C3/2277: 0A ASL A C3/2278: AA TAX C3/2279: B46D LDY $6D,X C3/227B: C220 REP #$20 (16 bit memory/accum.) C3/227D: 98 TYA C3/227E: 18 CLC C3/227F: 65E7 ADC $E7 C3/2281: A8 TAY C3/2282: E220 SEP #$20 (8 bit memory/accum.) C3/2284: B91600 LDA $0016,Y (unmodified commands) C3/2287: C912 CMP #$12 (is command Mimic?) C3/2289: F028 BEQ $22B3 (branch if so, there's enough room to branch backwards to the last RTS...) C3/228B: 20062F JSR $2F06 C3/228E: A54E LDA $4E C3/2290: 855E STA $5E C3/2292: A54B LDA $4B C3/2294: 8564 STA $64 C3/2296: A906 LDA #$06 C3/2298: 8520 STA $20 C3/229A: A00C00 LDY #$000C C3/229D: 849C STY $9C C3/229F: A96A LDA #$6A C3/22A1: 8527 STA $27 (queue up to execute at C3/63A7) C3/22A3: A965 LDA #$65 C3/22A5: 8526 STA $26 (execute at C3/36E7) C3/22A7: 200364 JSR $6403 C3/22AA: AF899D7E LDA $7E9D89 C3/22AE: 8554 STA $54 C3/22B0: 4C0C64 JMP $640C (set finger positioning data for Gogo's customizable commands) C3/22B3: 60 RTS (no point for this) C3/22B4: A509 LDA $09 C3/22B6: 8980 BIT #$80 (did you press B?) C3/22B8: F00A BEQ $22C4 (branch if not, BPL...) C3/22BA: 20A90E JSR $0EA9 C3/22BD: A904 LDA #$04 C3/22BF: 8527 STA $27 (init the main menu, queue up to execute at C3/1A8A) C3/22C1: 6426 STZ $26 (fade out) C3/22C3: 60 RTS C3/22C4: 60 RTS (no point for this) DP $26 is #$0E - sustain the config screen C3/22C5: 20E90E JSR $0EE9 C3/22C8: A50B LDA $0B C3/22CA: 8904 BIT #$04 C3/22CC: F012 BEQ $22E0 C3/22CE: A54E LDA $4E C3/22D0: C908 CMP #$08 (are we at the last hotspot of config screen 1?) C3/22D2: D00C BNE $22E0 (branch if not) C3/22D4: A950 LDA #$50 C3/22D6: 8526 STA $26 (execute at C3/3A00) C3/22D8: A911 LDA #$11 C3/22DA: 8520 STA $20 C3/22DC: 20A30E JSR $0EA3 (JMP fool!) C3/22DF: 60 RTS C3/22E0: A50B LDA $0B C3/22E2: 8908 BIT #$08 C3/22E4: F014 BEQ $22FA C3/22E6: A54E LDA $4E C3/22E8: D010 BNE $22FA C3/22EA: A54A LDA $4A C3/22EC: F00C BEQ $22FA C3/22EE: A951 LDA #$51 C3/22F0: 8526 STA $26 (execute at C3/3A21) C3/22F2: A911 LDA #$11 C3/22F4: 8520 STA $20 C3/22F6: 20A30E JSR $0EA3 (JMP fool!) C3/22F9: 60 RTS C3/22FA: A54A LDA $4A C3/22FC: F005 BEQ $2303 C3/22FE: 208438 JSR $3884 C3/2301: 8003 BRA $2306 C3/2303: 205E38 JSR $385E C3/2306: A509 LDA $09 C3/2308: 8980 BIT #$80 (did you press B?) C3/230A: F00A BEQ $2316 (branch if not, BPL...) C3/230C: 20A90E JSR $0EA9 C3/230F: A904 LDA #$04 C3/2311: 8527 STA $27 (init main menu, queue up to execute at C3/1A8A) C3/2313: 6426 STZ $26 (fade out) C3/2315: 60 RTS C3/2316: A50B LDA $0B C3/2318: 8901 BIT #$01 (did you press right?) C3/231A: D006 BNE $2322 (branch if so) C3/231C: A50B LDA $0B (A already holds this) C3/231E: 8902 BIT #$02 (did you press left?) C3/2320: F003 BEQ $2325 (branch if not) C3/2322: 4C2F3D JMP $3D2F (config screen 2) C3/2325: A508 LDA $08 C3/2327: 8980 BIT #$80 (did you press A?) C3/2329: F003 BEQ $232E (branch if not, BPL...) C3/232B: 4C3123 JMP $2331 (BRA fool!) C3/232E: 4CEC23 JMP $23EC (from C3/2329) C3/2331: A54E LDA $4E C3/2333: 855F STA $5F C3/2335: A54A LDA $4A C3/2337: D009 BNE $2342 C3/2339: 7B TDC C3/233A: A54B LDA $4B C3/233C: 0A ASL A C3/233D: AA TAX C3/233E: 7C4A23 JMP ($234A,X) C3/2341: 60 RTS C3/2342: 7B TDC C3/2343: A54B LDA $4B C3/2345: 0A ASL A C3/2346: AA TAX C3/2347: 7C5C23 JMP ($235C,X) "Press A" jump table for config screens 1 and 2 C3/234A: 4123 (RTS) C3/234C: 4123 (RTS) C3/234E: 4123 (RTS) C3/2350: 6823 ("Short" command rearranging) C3/2352: 4123 (RTS) C3/2354: 4123 (RTS) C3/2356: 4123 (RTS) C3/2358: 4123 (RTS) C3/235A: 7923 C3/235C: 4123 (RTS) C3/235E: 4123 (RTS) C3/2360: 8823 (you have hit accept, set value back to default) C3/2362: 8823 (you have hit accept, set value back to default) C3/2364: 8823 (you have hit accept, set value back to default) C3/2366: 8823 (you have hit accept, set value back to default) C3/2368: AD4D1D LDA $1D4D (various settings set in config) C3/236B: 8980 BIT #$80 ("short" command set?) C3/236D: F0D2 BEQ $233E (branch if not) C3/236F: 20B20E JSR $0EB2 (makes the click sound) C3/2372: A947 LDA #$47 C3/2374: 8527 STA $27 (queue up to execute at C3/42C2) C3/2376: 6426 STZ $26 (fade out) C3/2378: 60 RTS C3/2379: AD541D LDA $1D54 (various settings set in config) C3/237C: 10C3 BPL $2341 (branch if multiplayer isn't set) C3/237E: 20B20E JSR $0EB2 (makes the click sound) C3/2381: A94B LDA #$4B C3/2383: 8527 STA $27 (queue up to execute at C3/46AD) C3/2385: 6426 STZ $26 (fade out) C3/2387: 60 RTS C3/2388: 20B20E JSR $0EB2 (makes the click sound) C3/238B: AD541D LDA $1D54 (various settings set in config) C3/238E: 2938 AND #$38 C3/2390: F009 BEQ $239B C3/2392: 20A723 JSR $23A7 C3/2395: 20873A JSR $3A87 C3/2398: 4CC341 JMP $41C3 C3/239B: A0FF7F LDY #$7FFF C3/239E: 8C551D STY $1D55 (set font color to white) C3/23A1: 20993F JSR $3F99 C3/23A4: 4CC341 JMP $41C3 C3/23A7: 7B TDC C3/23A8: AD4E1D LDA $1D4E (various settings set in config) C3/23AB: 290F AND #$0F (keep only wallpaper, and something to the color component settings) C3/23AD: C220 REP #$20 (16 bit memory/accum.) C3/23AF: A8 TAY C3/23B0: 64EB STZ $EB C3/23B2: 64ED STZ $ED C3/23B4: 88 DEY C3/23B5: 3012 BMI $23C9 C3/23B7: A90E00 LDA #$000E C3/23BA: 18 CLC C3/23BB: 65EB ADC $EB C3/23BD: 85EB STA $EB C3/23BF: A92000 LDA #$0020 C3/23C2: 18 CLC C3/23C3: 65ED ADC $ED C3/23C5: 85ED STA $ED C3/23C7: 80EB BRA $23B4 C3/23C9: A22B31 LDX #$312B C3/23CC: 8E8121 STX $2181 C3/23CF: A5EB LDA $EB C3/23D1: A8 TAY C3/23D2: A5ED LDA $ED C3/23D4: AA TAX C3/23D5: E220 SEP #$20 (8 bit memory/accum.) C3/23D7: A90E LDA #$0E C3/23D9: 85E9 STA $E9 C3/23DB: BF021CED LDA $ED1C02,X C3/23DF: 99571D STA $1D57,Y (save color components for each wallpaper) C3/23E2: 8D8021 STA $2180 C3/23E5: E8 INX C3/23E6: C8 INY C3/23E7: C6E9 DEC $E9 C3/23E9: D0F0 BNE $23DB C3/23EB: 60 RTS C3/23EC: A508 LDA $08 C3/23EE: 8910 BIT #$10 (did you press L?) C3/23F0: D004 BNE $23F6 (branch if so) C3/23F2: 8920 BIT #$20 (did you press R?) C3/23F4: F015 BEQ $240B (branch if not) C3/23F6: 20A30E JSR $0EA3 C3/23F9: 645F STZ $5F C3/23FB: A54A LDA $4A C3/23FD: D007 BNE $2406 C3/23FF: A901 LDA #$01 C3/2401: 854A STA $4A C3/2403: 4CEA39 JMP $39EA C3/2406: 644A STZ $4A C3/2408: 20F539 JSR $39F5 (JMP fool!) C3/240B: 60 RTS DP $26 is #$0F C3/240C: 204835 JSR $3548 C3/240F: 208969 JSR $6989 C3/2412: A509 LDA $09 C3/2414: 8980 BIT #$80 (did you press B?) C3/2416: D006 BNE $241E (branch if so, BPL...) C3/2418: A509 LDA $09 (A already holds the contents of $09) C3/241A: 8901 BIT #$01 (did you press right? LSR A...) C3/241C: F019 BEQ $2437 (branch if not, BCC...) C3/241E: 20A90E JSR $0EA9 C3/2421: A906 LDA #$06 C3/2423: 8520 STA $20 C3/2425: A00C00 LDY #$000C C3/2428: 849C STY $9C C3/242A: A905 LDA #$05 C3/242C: 1446 TRB $46 C3/242E: A903 LDA #$03 C3/2430: 8527 STA $27 (queue up to execute at C3/1D94) C3/2432: A965 LDA #$65 C3/2434: 8526 STA $26 (execute at C3/36E7) C3/2436: 60 RTS C3/2437: A508 LDA $08 C3/2439: 8980 BIT #$80 (did you press A?) C3/243B: F015 BEQ $2452 (branch if not, BPL...) C3/243D: 20B20E JSR $0EB2 (makes the click sound) C3/2440: A54B LDA $4B C3/2442: 8528 STA $28 C3/2444: A910 LDA #$10 C3/2446: 8526 STA $26 (execute at C3/2453) C3/2448: 20212F JSR $2F21 C3/244B: 20B12F JSR $2FB1 C3/244E: A54E LDA $4E C3/2450: 855E STA $5E C3/2452: 60 RTS DP $26 is #$10 C3/2453: 204835 JSR $3548 C3/2456: A509 LDA $09 C3/2458: 8980 BIT #$80 (did you press B?) C3/245A: F013 BEQ $246F (branch if not, BPL...) C3/245C: 20A90E JSR $0EA9 C3/245F: A901 LDA #$01 C3/2461: 1446 TRB $46 C3/2463: A90F LDA #$0F C3/2465: 8526 STA $26 (execute at C3/240C) C3/2467: 20982F JSR $2F98 C3/246A: A55E LDA $5E C3/246C: 854E STA $4E C3/246E: 60 RTS C3/246F: A508 LDA $08 C3/2471: 8980 BIT #$80 (did you press A?) C3/2473: F033 BEQ $24A8 (branch if not, BPL...) C3/2475: 20B20E JSR $0EB2 (makes the click sound) C3/2478: A528 LDA $28 C3/247A: C54B CMP $4B C3/247C: D013 BNE $2491 C3/247E: A901 LDA #$01 C3/2480: 1446 TRB $46 C3/2482: A912 LDA #$12 C3/2484: 8526 STA $26 (execute at C3/2537) C3/2486: 20102E JSR $2E10 C3/2489: A00C00 LDY #$000C C3/248C: 8420 STY $20 C3/248E: 4C982F JMP $2F98 C3/2491: A910 LDA #$10 C3/2493: 1446 TRB $46 C3/2495: A90C LDA #$0C C3/2497: 1445 TRB $45 C3/2499: 208235 JSR $3582 C3/249C: A918 LDA #$18 C3/249E: 8522 STA $22 C3/24A0: A901 LDA #$01 C3/24A2: 1446 TRB $46 C3/24A4: A911 LDA #$11 C3/24A6: 8526 STA $26 (execute at C3/24A9) C3/24A8: 60 RTS DP $26 is #$11 C3/24A9: 204835 JSR $3548 C3/24AC: A522 LDA $22 C3/24AE: F030 BEQ $24E0 C3/24B0: C90C CMP #$0C C3/24B2: D039 BNE $24ED C3/24B4: 20F824 JSR $24F8 C3/24B7: 20D12D JSR $2DD1 C3/24BA: 20EE24 JSR $24EE C3/24BD: 20156A JSR $6A15 C3/24C0: 20F132 JSR $32F1 (get character 1 name, HP, MP, displayed) C3/24C3: 203D33 JSR $333D (get character 2 name, HP, MP, displayed) C3/24C6: 208933 JSR $3389 (get character 3 name, HP, MP, displayed) C3/24C9: 20D533 JSR $33D5 (get character 4 name, HP, MP, displayed) C3/24CC: 20BA0D JSR $0DBA C3/24CF: 20FD0E JSR $0EFD C3/24D2: 20982F JSR $2F98 C3/24D5: 20B011 JSR $11B0 (execute everything in OAM queue) C3/24D8: 206813 JSR $1368 (trigger NMI) C3/24DB: A908 LDA #$08 C3/24DD: 0445 TSB $45 C3/24DF: 60 RTS C3/24E0: A90F LDA #$0F C3/24E2: 8526 STA $26 (execute at C3/240C) C3/24E4: A910 LDA #$10 C3/24E6: 0446 TSB $46 C3/24E8: A904 LDA #$04 C3/24EA: 0445 TSB $45 C3/24EC: 60 RTS C3/24ED: 60 RTS (no point for this) C3/24EE: 203C2E JSR $2E3C C3/24F1: A901 LDA #$01 C3/24F3: 1447 TRB $47 C3/24F5: 4CB011 JMP $11B0 (execute everything in OAM queue) C3/24F8: 7B TDC C3/24F9: AA TAX C3/24FA: 86E0 STX $E0 C3/24FC: 86E2 STX $E2 C3/24FE: AD4F1D LDA $1D4F C3/2501: 18 CLC C3/2502: 6A ROR A C3/2503: 9002 BCC $2507 C3/2505: F6E0 INC $E0,X C3/2507: E8 INX C3/2508: E00400 CPX #$0004 C3/250B: D0F5 BNE $2502 C3/250D: 7B TDC C3/250E: A54B LDA $4B C3/2510: AA TAX C3/2511: B5E0 LDA $E0,X C3/2513: 85E5 STA $E5 C3/2515: A528 LDA $28 C3/2517: AA TAX C3/2518: B5E0 LDA $E0,X C3/251A: 85E6 STA $E6 C3/251C: A5E5 LDA $E5 C3/251E: 95E0 STA $E0,X C3/2520: A54B LDA $4B C3/2522: AA TAX C3/2523: A5E6 LDA $E6 C3/2525: 95E0 STA $E0,X C3/2527: 18 CLC C3/2528: A5E3 LDA $E3 C3/252A: 0A ASL A C3/252B: 65E2 ADC $E2 C3/252D: 0A ASL A C3/252E: 65E1 ADC $E1 C3/2530: 0A ASL A C3/2531: 65E0 ADC $E0 C3/2533: 8D4F1D STA $1D4F C3/2536: 60 RTS DP $26 is #$12 C3/2537: A420 LDY $20 C3/2539: D004 BNE $253F C3/253B: A90F LDA #$0F C3/253D: 8526 STA $26 (execute at C3/240C) C3/253F: 60 RTS DP $26 is #$14 - sustain the save menu C3/2540: A54B LDA $4B C3/2542: 1A INC A C3/2543: 8566 STA $66 C3/2545: 200319 JSR $1903 (sprite enabling and disabling for save screen) C3/2548: 20AA15 JSR $15AA (finger positioning for save screen) C3/254B: A509 LDA $09 C3/254D: 8980 BIT #$80 (did you press B?) C3/254F: F00C BEQ $255D (branch if not, BPL...) C3/2551: 20A90E JSR $0EA9 C3/2554: A59F LDA $9F C3/2556: 8527 STA $27 (queue up to execute) C3/2558: A953 LDA #$53 C3/255A: 8526 STA $26 (execute C3/19FB) C3/255C: 60 RTS C3/255D: A508 LDA $08 C3/255F: 8980 BIT #$80 (did you press A?) C3/2561: F039 BEQ $259C (branch if not, BPL...) C3/2563: 7B TDC C3/2564: A54B LDA $4B C3/2566: 0A ASL A C3/2567: AA TAX C3/2568: B491 LDY $91,X C3/256A: D014 BNE $2580 C3/256C: A566 LDA $66 C3/256E: 8D1F02 STA $021F C3/2571: 20B90E JSR $0EB9 (makes the healing sound) C3/2574: 20DF25 JSR $25DF C3/2577: A59E LDA $9E C3/2579: 8527 STA $27 (queue up to execute) C3/257B: A953 LDA #$53 C3/257D: 8526 STA $26 (execute C3/19FB) C3/257F: 60 RTS C3/2580: 20B20E JSR $0EB2 (makes the click sound) C3/2583: 20AC18 JSR $18AC C3/2586: A54B LDA $4B C3/2588: 1A INC A C3/2589: 8566 STA $66 C3/258B: 206615 JSR $1566 (load everything from SRAM) C3/258E: 201569 JSR $6915 C3/2591: 208969 JSR $6989 C3/2594: A915 LDA #$15 C3/2596: 8527 STA $27 (queue up to execute at C3/1CE3) C3/2598: A953 LDA #$53 C3/259A: 8526 STA $26 (execute C3/19FB) C3/259C: 60 RTS DP $26 is #$16 or #$1F - sustain "Erasing data" screen C3/259D: 20DA15 JSR $15DA (finger positioning data for confirming save) C3/25A0: A509 LDA $09 C3/25A2: 8980 BIT #$80 (did you press B?) C3/25A4: D01C BNE $25C2 (branch if so, BMI...) C3/25A6: A508 LDA $08 C3/25A8: 8980 BIT #$80 (did you press A?) C3/25AA: F032 BEQ $25DE (branch if not, BPL...) C3/25AC: A54B LDA $4B (load finger position) C3/25AE: D017 BNE $25C7 (branch if not on "yes") C3/25B0: A566 LDA $66 C3/25B2: 8D1F02 STA $021F C3/25B5: 20B90E JSR $0EB9 (makes the healing sound) C3/25B8: 20DF25 JSR $25DF C3/25BB: A59E LDA $9E C3/25BD: 8527 STA $27 (queue up to execute) C3/25BF: 6426 STZ $26 (fade out) C3/25C1: 60 RTS C3/25C2: 20A90E JSR $0EA9 (from C3/25A4) C3/25C5: 8003 BRA $25CA C3/25C7: 20B20E JSR $0EB2 (makes the click sound) C3/25CA: 20C118 JSR $18C1 (restore the current data, since it was overwritten by the save preview) C3/25CD: 201569 JSR $6915 C3/25D0: 208969 JSR $6989 C3/25D3: A913 LDA #$13 C3/25D5: 8527 STA $27 (init the save screen, queue up to execute at C3/1CA0) C3/25D7: 6426 STZ $26 (fade out) C3/25D9: A566 LDA $66 C3/25DB: 8D2402 STA $0224 C3/25DE: 60 RTS C3/25DF: 20C118 JSR $18C1 (restore the current data, since it was overwritten by the save preview) C3/25E2: 201569 JSR $6915 C3/25E5: 208969 JSR $6989 C3/25E8: C220 REP #$20 (16 bit memory/accum.) C3/25EA: EEC71D INC $1DC7 (number of times you saved) C3/25ED: E220 SEP #$20 (8 bit memory/accum.) C3/25EF: A566 LDA $66 C3/25F1: 4C1D15 JMP $151D (Store data to SRAM) DP $26 is #$17 C3/25F4: A9C0 LDA #$C0 C3/25F6: 1446 TRB $46 C3/25F8: A910 LDA #$10 C3/25FA: 0445 TSB $45 C3/25FC: 20FD0E JSR $0EFD C3/25FF: 208C7D JSR $7D8C C3/2602: A509 LDA $09 C3/2604: 8980 BIT #$80 (did you press B?) C3/2606: F009 BEQ $2611 (branch if not, BPL...) C3/2608: 20A90E JSR $0EA9 C3/260B: A904 LDA #$04 C3/260D: 8527 STA $27 (init main menu, queue up to execute at C3/1A8A) C3/260F: 6426 STZ $26 (fade out) C3/2611: A508 LDA $08 C3/2613: 8980 BIT #$80 (did you press A?) C3/2615: F006 BEQ $261D (branch if not, BPL...) C3/2617: 20B20E JSR $0EB2 (makes the click sound) C3/261A: 201E26 JSR $261E (BRA fool!) C3/261D: 60 RTS C3/261E: 7B TDC C3/261F: A54B LDA $4B C3/2621: 0A ASL A C3/2622: AA TAX C3/2623: 7C2626 JMP ($2626,X) C3/2626: 2C26 C3/2628: 7C26 C3/262A: 8E26 C3/262C: 201C7D JSR $7D1C C3/262F: AD4E1D LDA $1D4E (various settings in config) C3/2632: 2940 AND #$40 (cursor memory set?) C3/2634: F005 BEQ $263B (branch if not) C3/2636: 20AC0D JSR $0DAC C3/2639: 8010 BRA $264B C3/263B: AD3102 LDA $0231 C3/263E: 854A STA $4A C3/2640: A44D LDY $4D C3/2642: 844F STY $4F C3/2644: A54A LDA $4A C3/2646: 18 CLC C3/2647: 6550 ADC $50 C3/2649: 8550 STA $50 C3/264B: 20257D JSR $7D25 C3/264E: 200D7E JSR $7E0D C3/2651: 20F182 JSR $82F1 C3/2654: 20390F JSR $0F39 C3/2657: 206813 JSR $1368 (trigger NMI) C3/265A: 201F09 JSR $091F (set arrow's initial position) C3/265D: C220 REP #$20 (16 bit memory/accum.) C3/265F: A97000 LDA #$0070 C3/2662: 9F4A357E STA $7E354A,X C3/2666: A95800 LDA #$0058 C3/2669: 9FCA347E STA $7E34CA,X C3/266D: E220 SEP #$20 (8 bit memory/accum.) C3/266F: A908 LDA #$08 C3/2671: 8526 STA $26 (execute at C3/1EF7) C3/2673: A900 LDA #$00 C3/2675: A00EA8 LDY #$A80E C3/2678: 207311 JSR $1173 (put C3/A80E in the queue, also JMP fool!) C3/267B: 60 RTS C3/267C: 20156A JSR $6A15 C3/267F: 20B826 JSR $26B8 C3/2682: 20E026 JSR $26E0 C3/2685: 20887F JSR $7F88 C3/2688: 20807D JSR $7D80 C3/268B: 4C2E1F JMP $1F2E C3/268E: 20447D JSR $7D44 C3/2691: AD4E1D LDA $1D4E (various settings in config) C3/2694: 2940 AND #$40 (cursor memory set?) C3/2696: F005 BEQ $269D (branch if not) C3/2698: AC3202 LDY $0232 C3/269B: 844D STY $4D C3/269D: 204D7D JSR $7D4D C3/26A0: 208B83 JSR $838B C3/26A3: 20991B JSR $1B99 C3/26A6: 203983 JSR $8339 C3/26A9: 20390F JSR $0F39 C3/26AC: 206813 JSR $1368 (trigger NMI) C3/26AF: A9C0 LDA #$C0 C3/26B1: 1446 TRB $46 C3/26B3: A918 LDA #$18 C3/26B5: 8526 STA $26 (execute at C3/2741) C3/26B7: 60 RTS C3/26B8: 7B TDC (Put 0 in A) C3/26B9: AA TAX (Transfer A = 0 to X) C3/26BA: BD6918 LDA $1869,X (Load inventory item at position X) C3/26BD: 9F8DAA7E STA $7EAA8D,X (Store in RAM location) C3/26C1: A9FF LDA #$FF (Load an "empty" value) C3/26C3: 9D6918 STA $1869,X (Put it in inventory location X) C3/26C6: E8 INX (Increment X) C3/26C7: E00001 CPX #$0100 (Is X over 256?) C3/26CA: D0EE BNE $26BA (If not, branch -> Load inventory item X) C3/26CC: 7B TDC (Otherwise, put a 0 in A) C3/26CD: AA TAX (Transfer A = 0 to X) C3/26CE: BD6919 LDA $1969,X (Get quantity of item X) C3/26D1: 9F8DAB7E STA $7EAB8D,X (Store the quantity in a RAM location) C3/26D5: 7B TDC (Put 0 in A) C3/26D6: 9D6919 STA $1969,X (Put it in for quantity of item X) C3/26D9: E8 INX (Increment X) C3/26DA: E00001 CPX #$0100 (Is X 256 yet?) C3/26DD: D0EF BNE $26CE (If not, branch -> Get quantity of item X) C3/26DF: 60 RTS (Exit) C3/26E0: 7B TDC C3/26E1: A8 TAY C3/26E2: AA TAX C3/26E3: BFF526C3 LDA $C326F5,X (get current icon) C3/26E7: DA PHX (save position in icon list) C3/26E8: 85E0 STA $E0 (save current icon) C3/26EA: 200627 JSR $2706 (output any items whose icon matches the one in $E0 to our new item list.) C3/26ED: FA PLX (restore position in icon list) C3/26EE: E8 INX (move to next icon) C3/26EF: E01100 CPX #$0011 (loop for all 17 icons or item types) C3/26F2: D0EF BNE $26E3 C3/26F4: 60 RTS Icons: C3/26F5: FF (No icon. i.e., blank leading character, plain arse Item) C3/26F6: D8 (Dirk icon) C3/26F7: D9 (Sword icon) C3/26F8: DA (Lance icon) C3/26F9: DB (Knife icon) C3/26FA: DC (Rod icon) C3/26FB: DD (Brush icon) C3/26FC: DE (Stars icon) C3/26FD: DF (Special icon) C3/26FE: E0 (Gambler icon) C3/26FF: E1 (Claw icon) C3/2700: E2 (Shield icon) C3/2701: E3 (Helmet icon) C3/2702: E4 (Armor icon) C3/2703: E5 (Tool icon) C3/2704: E6 (Skean icon) C3/2705: E7 (Relic icon) Takes item from RAM and puts it in WRAM? C3/2706: 7B TDC (Put 0 in A) C3/2707: AA TAX (Transfer A to X) C3/2708: DA PHX (Push item index) C3/2709: BF8DAA7E LDA $7EAA8D,X (Load RAM inventory item, index X) C3/270D: C9FF CMP #$FF (Is it the empty item?) C3/270F: F028 BEQ $2739 (If so, branch -> Pull index for next item) C3/2711: 8D0242 STA $4202 (Otherwise, set it to be multiplied) C3/2714: A90D LDA #$0D (13 = item name length) C3/2716: 8D0342 STA $4203 (Set name length to be multiplied) C3/2719: EA NOP C3/271A: EA NOP C3/271B: EA NOP C3/271C: AE1642 LDX $4216 (Put index * 13 in X) C3/271F: BF00B3D2 LDA $D2B300,X (Get letter at D2B300 + (index * 13) of item name) C3/2723: C5E0 CMP $E0 (Is this letter the same as the value in $E0?) C3/2725: D012 BNE $2739 (If not, branch -> Pull out the index) C3/2727: FA PLX (Pull out the original index) C3/2728: BF8DAA7E LDA $7EAA8D,X (Load RAM inventory item, index X) C3/272C: 996918 STA $1869,Y (Add it to items currently in inventory) C3/272F: BF8DAB7E LDA $7EAB8D,X (Load RAM inventory quantity) C3/2733: 996919 STA $1969,Y (Make it the quantity of this item) C3/2736: C8 INY (Increase index on inventory list) C3/2737: 8001 BRA $273A (Go to the next index) C3/2739: FA PLX (Pull out the index) C3/273A: E8 INX (Increase the index by 1) C3/273B: E00001 CPX #$0100 (Is it 256 yet?) C3/273E: D0C8 BNE $2708 (If not, branch -> Push X (do the next item)) C3/2740: 60 RTS DP $26 is #$18 C3/2741: A910 LDA #$10 C3/2743: 1445 TRB $45 C3/2745: 20FD0E JSR $0EFD C3/2748: 204A7D JSR $7D4A C3/274B: 203983 JSR $8339 C3/274E: A509 LDA $09 C3/2750: 8980 BIT #$80 (did you press B?) C3/2752: F024 BEQ $2778 (branch if not, BPL...) C3/2754: 20A90E JSR $0EA9 C3/2757: A917 LDA #$17 C3/2759: 8526 STA $26 (execute at C3/25F4) C3/275B: A44D LDY $4D C3/275D: 8C3202 STY $0232 C3/2760: 20807D JSR $7D80 C3/2763: AD4E1D LDA $1D4E (various settings in config) C3/2766: 2940 AND #$40 (cursor memory set?) C3/2768: F005 BEQ $276F (branch if not) C3/276A: AC3402 LDY $0234 C3/276D: 844D STY $4D C3/276F: 20867D JSR $7D86 C3/2772: 208583 JSR $8385 C3/2775: 4C390F JMP $0F39 C3/2778: 60 RTS DP $26 is #$19 C3/2779: 20FD0E JSR $0EFD C3/277C: 20227D JSR $7D22 C3/277F: 20F182 JSR $82F1 C3/2782: A509 LDA $09 C3/2784: 8980 BIT #$80 (did you press B?) C3/2786: F00C BEQ $2794 (branch if not, BPL..., Swap two items function) C3/2788: 20A90E JSR $0EA9 C3/278B: A901 LDA #$01 C3/278D: 1446 TRB $46 C3/278F: A908 LDA #$08 C3/2791: 8526 STA $26 (execute at C3/1EF7) C3/2793: 60 RTS Swaps two items on the inventory list C3/2794: A508 LDA $08 C3/2796: 8980 BIT #$80 (did you press A?) C3/2798: F047 BEQ $27E1 (branch if not, BPL..., branch backwards!) C3/279A: 20B20E JSR $0EB2 (makes the click sound) C3/279D: A528 LDA $28 (Load index from $28) C3/279F: C54B CMP $4B (Is it the same as the index at $4B?) C3/27A1: D007 BNE $27AA (If not, branch -> Load 16 into A [start of the swap function]) C3/27A3: A901 LDA #$01 (Otherwise, load 1 into A) C3/27A5: 1446 TRB $46 (Clear bit 0 of $46) C3/27A7: 4C9784 JMP $8497 (Jump to function at $8497 [double-clicked an item]) C3/27AA: A910 LDA #$10 (Load 16 into A) C3/27AC: 0445 TSB $45 (Set bit 4 of $45) C3/27AE: A901 LDA #$01 (Load 1 into A) C3/27B0: 1446 TRB $46 (Clear bit 0 of $46) C3/27B2: A908 LDA #$08 C3/27B4: 8526 STA $26 (execute at C3/1EF7) C3/27B6: 7B TDC (Clear A) C3/27B7: A528 LDA $28 (Load index from $28 into A) C3/27B9: A8 TAY (Transfer A to Y) C3/27BA: B96918 LDA $1869,Y (Load inventory item Y) C3/27BD: 85E0 STA $E0 (Store it in $E0) C3/27BF: B96919 LDA $1969,Y (Load quantity of item Y) C3/27C2: 85E1 STA $E1 (Store it in $E1) C3/27C4: 7B TDC (Clear A) C3/27C5: A54B LDA $4B (Load index from $4B into A) C3/27C7: AA TAX (Transfer A into X) C3/27C8: BD6918 LDA $1869,X (Load inventory item X) C3/27CB: 996918 STA $1869,Y (Store it postion Y) C3/27CE: A5E0 LDA $E0 (Load inventory item stored above in $E0) C3/27D0: 9D6918 STA $1869,X (Store it in position Y [now they're swapped]) C3/27D3: BD6919 LDA $1969,X (Load quantity of item X) C3/27D6: 996919 STA $1969,Y (Store it in item quantity Y) C3/27D9: A5E1 LDA $E1 (Load inventory quantity stored above in $E1) C3/27DB: 9D6919 STA $1969,X (Store it in item quantity position X) C3/27DE: 4C887F JMP $7F88 C3/27E1: 60 RTS (no point for this) DP $26 is #$1A C3/27E2: A910 LDA #$10 C3/27E4: 1445 TRB $45 C3/27E6: A901 LDA #$01 C3/27E8: 852A STA $2A C3/27EA: 20FD0E JSR $0EFD C3/27ED: AD1E02 LDA $021E (load 0-60 frame count) C3/27F0: 6A ROR A C3/27F1: 9005 BCC $27F8 C3/27F3: 20750F JSR $0F75 (set something for DMA) C3/27F6: 8003 BRA $27FB C3/27F8: 2091A9 JSR $A991 (set something for DMA) C3/27FB: 20641F JSR $1F64 C3/27FE: B061 BCS $2861 C3/2800: 20884B JSR $4B88 C3/2803: 20E556 JSR $56E5 (Go load address for Magic descriptions) C3/2806: 20C651 JSR $51C6 C3/2809: A509 LDA $09 C3/280B: 8940 BIT #$40 (did you press Y?) C3/280D: F013 BEQ $2822 (branch if not, don't toggle MP cost displaying) C3/280F: 20B20E JSR $0EB2 (makes the click sound) C3/2812: A59E LDA $9E C3/2814: 49FF EOR #$FF C3/2816: 859E STA $9E C3/2818: A910 LDA #$10 C3/281A: 0445 TSB $45 C3/281C: 201C4F JSR $4F1C C3/281F: 4C874F JMP $4F87 C3/2822: A508 LDA $08 C3/2824: 8980 BIT #$80 (did you press A?) C3/2826: F02D BEQ $2855 (branch if not, BPL...) C3/2828: 7B TDC C3/2829: A54B LDA $4B C3/282B: AA TAX C3/282C: BF099E7E LDA $7E9E09,X C3/2830: C920 CMP #$20 C3/2832: D02E BNE $2862 C3/2834: 20B20E JSR $0EB2 (makes the click sound) C3/2837: A44F LDY $4F C3/2839: 848E STY $8E C3/283B: A54A LDA $4A C3/283D: 8590 STA $90 C3/283F: A54B LDA $4B C3/2841: 8599 STA $99 C3/2843: 20132D JSR $2D13 C3/2846: C912 CMP #$12 (is this X-Zone?) C3/2848: F01F BEQ $2869 (branch if so) C3/284A: C92A CMP #$2A (is this Warp?) C3/284C: F026 BEQ $2874 (branch if so) C3/284E: A93A LDA #$3A C3/2850: 8527 STA $27 (queue up to execute at C3/2A65) C3/2852: 6426 STZ $26 (fade out) C3/2854: 60 RTS C3/2855: A509 LDA $09 C3/2857: 8980 BIT #$80 (did you press B?) C3/2859: F006 BEQ $2861 (branch if not, BPL...) C3/285B: 20FD0E JSR $0EFD C3/285E: 20A529 JSR $29A5 (JMP fool!) C3/2861: 60 RTS C3/2862: 20C00E JSR $0EC0 (makes the buzzer sound) C3/2865: 205D30 JSR $305D (mosaic effect, also JMP fool!) C3/2868: 60 RTS C3/2869: AD0102 LDA $0201 (load availability bits) C3/286C: 8901 BIT #$01 (check for X-Zone use) C3/286E: F0F2 BEQ $2862 (branch if can't) C3/2870: A904 LDA #$04 (exit the menu, unfinished feature) C3/2872: 8009 BRA $287D C3/2874: AD0102 LDA $0201 (load availability bits) C3/2877: 8902 BIT #$02 (check for warp useage) C3/2879: F0E7 BEQ $2862 (branch if can't warp) C3/287B: A903 LDA #$03 C3/287D: 8D0502 STA $0205 C3/2880: 20EA2C JSR $2CEA C3/2883: A9FF LDA #$FF C3/2885: 8527 STA $27 (exit the menu) C3/2887: 6426 STZ $26 (fade out) C3/2889: 60 RTS DP $26 is #$1B C3/288A: A910 LDA #$10 C3/288C: 1445 TRB $45 C3/288E: A902 LDA #$02 C3/2890: 852A STA $2A C3/2892: 20FD0E JSR $0EFD C3/2895: 20641F JSR $1F64 C3/2898: B00F BCS $28A9 C3/289A: 20FA4B JSR $4BFA C3/289D: 20EB56 JSR $56EB (Load addresses for Lore descriptions) C3/28A0: A509 LDA $09 C3/28A2: 8980 BIT #$80 (did you press B?) C3/28A4: F003 BEQ $28A9 (branch if not, BPL...) C3/28A6: 20A529 JSR $29A5 (JMP fool!) C3/28A9: 60 RTS DP $26 is #$1C C3/28AA: 20FD0E JSR $0EFD C3/28AD: 20D44B JSR $4BD4 C3/28B0: A509 LDA $09 C3/28B2: 8980 BIT #$80 (did you press B?) C3/28B4: F003 BEQ $28B9 (branch if not, BPL...) C3/28B6: 20A529 JSR $29A5 (JMP fool!) C3/28B9: 60 RTS DP $26 is #$1D C3/28BA: A903 LDA #$03 (?? - I suspect this is for the Rage "description" area) C3/28BC: 852A STA $2A C3/28BE: 20FD0E JSR $0EFD C3/28C1: 20641F JSR $1F64 C3/28C4: B00C BCS $28D2 C3/28C6: 20524C JSR $4C52 C3/28C9: A509 LDA $09 C3/28CB: 8980 BIT #$80 (did you press B?) C3/28CD: F003 BEQ $28D2 (branch if not, BPL...) C3/28CF: 20A529 JSR $29A5 (JMP fool!) C3/28D2: 60 RTS DP $26 is #$1E C3/28D3: A910 LDA #$10 C3/28D5: 1445 TRB $45 C3/28D7: A904 LDA #$04 C3/28D9: 852A STA $2A C3/28DB: 20FD0E JSR $0EFD C3/28DE: 20641F JSR $1F64 C3/28E1: B045 BCS $2928 C3/28E3: 201E4C JSR $4C1E C3/28E6: 20DF56 JSR $56DF C3/28E9: A508 LDA $08 C3/28EB: 8980 BIT #$80 (did you press B?) C3/28ED: F02C BEQ $291B (branch if not, BPL...) C3/28EF: 20B20E JSR $0EB2 (makes the click sound) C3/28F2: 7B TDC C3/28F3: A54B LDA $4B C3/28F5: AA TAX C3/28F6: BF899D7E LDA $7E9D89,X C3/28FA: C9FF CMP #$FF C3/28FC: F00A BEQ $2908 C3/28FE: 8599 STA $99 C3/2900: 209758 JSR $5897 C3/2903: A94D LDA #$4D C3/2905: 8526 STA $26 (execute at C3/58CE) C3/2907: 60 RTS C3/2908: A9FF LDA #$FF C3/290A: 85E0 STA $E0 C3/290C: 202929 JSR $2929 C3/290F: 206C54 JSR $546C C3/2912: 20110F JSR $0F11 C3/2915: 206813 JSR $1368 (trigger NMI) C3/2918: 4CFD0E JMP $0EFD C3/291B: A509 LDA $09 C3/291D: 8980 BIT #$80 (did you press B?) C3/291F: F007 BEQ $2928 (branch if not, BPL...) C3/2921: A908 LDA #$08 C3/2923: 1446 TRB $46 C3/2925: 20A529 JSR $29A5 (JMP fool!) C3/2928: 60 RTS C3/2929: 7B TDC C3/292A: A528 LDA $28 C3/292C: 0A ASL A C3/292D: AA TAX C3/292E: B46D LDY $6D,X C3/2930: A5E0 LDA $E0 C3/2932: 991E00 STA $001E,Y C3/2935: A5E0 LDA $E0 C3/2937: 4C084F JMP $4F08 DP $26 is #$34 C3/293A: A420 LDY $20 C3/293C: D009 BNE $2947 (branch backwards!) C3/293E: A04829 LDY #$2948 C3/2941: 20F902 JSR $02F9 (" ") C3/2944: 4C1359 JMP $5913 C3/2947: 60 RTS (no point for this) C3/2948: CD40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 C3/2966: A509 LDA $09 C3/2968: 8980 BIT #$80 (did you press B?) C3/296A: F00A BEQ $2976 (branch if not, BPL...) C3/296C: 20A90E JSR $0EA9 C3/296F: A904 LDA #$04 C3/2971: 8527 STA $27 (init the main menu, queue up to execute at C3/1A8A) C3/2973: 6426 STZ $26 (fade out) C3/2975: 60 RTS C3/2976: 60 RTS DP $26 is #$33 C3/2977: A910 LDA #$10 C3/2979: 1445 TRB $45 C3/297B: 20FD0E JSR $0EFD C3/297E: 20D44B JSR $4BD4 C3/2981: 201557 JSR $5715 (Load addresses for Blitz descriptions) C3/2984: A509 LDA $09 C3/2986: 8980 BIT #$80 (did you press B?) C3/2988: F003 BEQ $298D (branch if not, BPL...) C3/298A: 20A529 JSR $29A5 (BRA fool!) C3/298D: 60 RTS C3/298E: A910 LDA #$10 C3/2990: 1445 TRB $45 C3/2992: 20FD0E JSR $0EFD C3/2995: 20D44B JSR $4BD4 C3/2998: 200057 JSR $5700 (Load addresses for SwdTech descriptions) C3/299B: A509 LDA $09 C3/299D: 8980 BIT #$80 (did you press B?) C3/299F: F003 BEQ $29A4 (branch if not, BPL...) C3/29A1: 20A529 JSR $29A5 (BRA fool!, though with proper management, no BRA at all would be needed here) C3/29A4: 60 RTS C3/29A5: 20A90E JSR $0EA9 C3/29A8: A400 LDY $00 C3/29AA: 8439 STY $39 C3/29AC: 843D STY $3D C3/29AE: A90A LDA #$0A C3/29B0: 8526 STA $26 (execute at C3/1FF4) C3/29B2: 20274D JSR $4D27 C3/29B5: 20504B JSR $4B50 C3/29B8: A55E LDA $5E C3/29BA: 854E STA $4E C3/29BC: 20594B JSR $4B59 C3/29BF: 4C0758 JMP $5807 DP $26 is #$21 - sustain the SRAM loading screen C3/29C2: A54B LDA $4B C3/29C4: 8566 STA $66 C3/29C6: 200319 JSR $1903 C3/29C9: 20BE15 JSR $15BE C3/29CC: A508 LDA $08 C3/29CE: 8980 BIT #$80 (did you press A?) C3/29D0: F034 BEQ $2A06 (branch if not, BPL...) C3/29D2: 7B TDC C3/29D3: A54B LDA $4B C3/29D5: F030 BEQ $2A07 C3/29D7: 8566 STA $66 C3/29D9: 3A DEC A C3/29DA: 0A ASL A C3/29DB: AA TAX C3/29DC: B491 LDY $91,X C3/29DE: F020 BEQ $2A00 C3/29E0: 20AC18 JSR $18AC C3/29E3: 20B20E JSR $0EB2 (makes the click sound) C3/29E6: A566 LDA $66 C3/29E8: 8D2402 STA $0224 C3/29EB: 206615 JSR $1566 C3/29EE: 201569 JSR $6915 C3/29F1: 208969 JSR $6989 C3/29F4: 209515 JSR $1595 C3/29F7: A922 LDA #$22 C3/29F9: 8527 STA $27 (queue up to execute at C3/1D51) C3/29FB: A953 LDA #$53 C3/29FD: 8526 STA $26 (execute at C3/19FB) C3/29FF: 60 RTS C3/2A00: 20C00E JSR $0EC0 (makes the buzzer sound) C3/2A03: 205D30 JSR $305D (mosaic effect, also JMP fool!) C3/2A06: 60 RTS C3/2A07: 20B20E JSR $0EB2 (makes the click sound) C3/2A0A: 20212A JSR $2A21 C3/2A0D: A901 LDA #$01 C3/2A0F: 8D2402 STA $0224 C3/2A12: 9C1F02 STZ $021F C3/2A15: 9C0502 STZ $0205 C3/2A18: A9FF LDA #$FF C3/2A1A: 8527 STA $27 (queue up to exit the menu) C3/2A1C: A953 LDA #$53 C3/2A1E: 8526 STA $26 (execute at C3/19FB) C3/2A20: 60 RTS C3/2A21: 7B TDC C3/2A22: A8 TAY C3/2A23: 8C1B02 STY $021B C3/2A26: 8C1D02 STY $021D C3/2A29: 60 RTS DP $26 is #$23 - sustain the "This data?" screen C3/2A2A: 20DA15 JSR $15DA C3/2A2D: A509 LDA $09 C3/2A2F: 8980 BIT #$80 (did you press B?) C3/2A31: D025 BNE $2A58 (branch if so, BMI...) C3/2A33: A508 LDA $08 C3/2A35: 8980 BIT #$80 (did you press A?) C3/2A37: F02B BEQ $2A64 (branch if not, BPL...) C3/2A39: 20B20E JSR $0EB2 (makes the click sound) C3/2A3C: A54B LDA $4B C3/2A3E: D01B BNE $2A5B C3/2A40: AC6318 LDY $1863 (game time bytes 1 & 2) C3/2A43: 8C1B02 STY $021B C3/2A46: AD6518 LDA $1865 (game time byte 3) C3/2A49: 8D1D02 STA $021D C3/2A4C: A566 LDA $66 C3/2A4E: 8D1F02 STA $021F C3/2A51: A9FF LDA #$FF C3/2A53: 8527 STA $27 (exit the menu) C3/2A55: 6426 STZ $26 (fade out) C3/2A57: 60 RTS C3/2A58: 20A90E JSR $0EA9 C3/2A5B: 20C118 JSR $18C1 (restore the current data, since it was overwritten by the load preview) C3/2A5E: A920 LDA #$20 C3/2A60: 8527 STA $27 (queue up to execute at C3/1D03) C3/2A62: 6426 STZ $26 (fade out) C3/2A64: 60 RTS C3/2A65: A940 LDA #$40 C3/2A67: 0445 TSB $45 C3/2A69: 20762A JSR $2A76 C3/2A6C: 201258 JSR $5812 C3/2A6F: 20B007 JSR $07B0 (finger OAM initiating) C3/2A72: A93B LDA #$3B C3/2A74: 802F BRA $2AA5 C3/2A76: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/2A79: A901 LDA #$01 C3/2A7B: 0445 TSB $45 C3/2A7D: A904 LDA #$04 C3/2A7F: 0443 TSB $43 (eventually enable channel 2 of HDMA) C3/2A81: 641B STZ $1B C3/2A83: 641C STZ $1C C3/2A85: 200469 JSR $6904 C3/2A88: 20A81B JSR $1BA8 C3/2A8B: A903 LDA #$03 C3/2A8D: 8D0721 STA $2107 C3/2A90: A9C0 LDA #$C0 C3/2A92: 1443 TRB $43 (eventually disable channels 6 and 7 of HDMA) C3/2A94: A00200 LDY #$0002 C3/2A97: 8437 STY $37 C3/2A99: 20982F JSR $2F98 C3/2A9C: A900 LDA #$00 C3/2A9E: A0C02F LDY #$2FC0 C3/2AA1: 207311 JSR $1173 (put C3/2FC0 in the queue, also JMP fool!) C3/2AA4: 60 RTS C3/2AA5: 8527 STA $27 (queue up either C3/2AAE or C3/8A96) C3/2AA7: A901 LDA #$01 C3/2AA9: 8526 STA $26 (transition process) C3/2AAB: 4C4135 JMP $3541 C3/2AAE: A508 LDA $08 C3/2AB0: 8910 BIT #$10 (did you press L?) C3/2AB2: D012 BNE $2AC6 (branch if so) C3/2AB4: A508 LDA $08 (A already holds the contents of $08) C3/2AB6: 8920 BIT #$20 (did you press R?) C3/2AB8: D00C BNE $2AC6 (branch if so) C3/2ABA: A509 LDA $09 C3/2ABC: 8901 BIT #$01 (did you press right? LSR A...) C3/2ABE: D006 BNE $2AC6 (branch if so, BCS...) C3/2AC0: A509 LDA $09 (A already holds the contents of $09) C3/2AC2: 8902 BIT #$02 (did you press left?) C3/2AC4: F02D BEQ $2AF3 (branch if not) C3/2AC6: 20A30E JSR $0EA3 C3/2AC9: 20132D JSR $2D13 C3/2ACC: 20F550 JSR $50F5 (A * 14, 24-bit result) C3/2ACF: C221 REP #$21 C3/2AD1: AD3421 LDA $2134 C3/2AD4: 690000 ADC #$0000 C3/2AD7: AA TAX C3/2AD8: 7B TDC C3/2AD9: E220 SEP #$20 (8 bit memory/accum.) C3/2ADB: BFC06AC4 LDA $C46AC0,X (magic data, targetting) C3/2ADF: 2920 AND #$20 (manual selecting?) C3/2AE1: F010 BEQ $2AF3 (branch if not) C3/2AE3: A54E LDA $4E C3/2AE5: 855F STA $5F C3/2AE7: A906 LDA #$06 C3/2AE9: 1446 TRB $46 C3/2AEB: 209F08 JSR $089F C3/2AEE: A93D LDA #$3D C3/2AF0: 8526 STA $26 (execute at C3/2D78) C3/2AF2: 60 RTS C3/2AF3: A508 LDA $08 C3/2AF5: 8980 BIT #$80 (did you press A?) C3/2AF7: F003 BEQ $2AFC (branch if not, BPL...) C3/2AF9: 4C0C2B JMP $2B0C (BRA would work here) C3/2AFC: A509 LDA $09 C3/2AFE: 8980 BIT #$80 (did you press B?) C3/2B00: F009 BEQ $2B0B (branch if not, BPL...) C3/2B02: 20A90E JSR $0EA9 C3/2B05: A93C LDA #$3C C3/2B07: 8527 STA $27 (queue up to execute at C3/2D1C) C3/2B09: 6426 STZ $26 (fade out) C3/2B0B: 60 RTS C3/2B0C: 649C STZ $9C C3/2B0E: 20CC2C JSR $2CCC C3/2B11: 200B2D JSR $2D0B C3/2B14: 20142C JSR $2C14 C3/2B17: 9019 BCC $2B32 C3/2B19: 20EA2C JSR $2CEA C3/2B1C: 20E50E JSR $0EE5 C3/2B1F: 200B2D JSR $2D0B C3/2B22: B91400 LDA $0014,Y (status byte 1) C3/2B25: 85F8 STA $F8 C3/2B27: B91500 LDA $0015,Y (status byte 4) C3/2B2A: 85FB STA $FB C3/2B2C: 20392B JSR $2B39 C3/2B2F: 4CDE2B JMP $2BDE C3/2B32: 20C00E JSR $0EC0 (makes the buzzer sound) C3/2B35: 205D30 JSR $305D (mosaic effect, also JMP fool!) C3/2B38: 60 RTS C3/2B39: B90B00 LDA $000B,Y (max MP, byte 1) C3/2B3C: 8DB211 STA $11B2 C3/2B3F: B90C00 LDA $000C,Y (max MP, byte 2) C3/2B42: 8DB311 STA $11B3 C3/2B45: 5A PHY (the upcoming call preserves Y already) C3/2B46: 20132D JSR $2D13 C3/2B49: A600 LDX $00 (with upcoming call, do spell useage) C3/2B4B: 220900C2 JSL $C20009 C3/2B4F: 7A PLY C3/2B50: A59C LDA $9C C3/2B52: F008 BEQ $2B5C C3/2B54: C221 REP #$21 C3/2B56: ADB011 LDA $11B0 (load damage dealt) C3/2B59: 4A LSR A (cut it in half) C3/2B5A: 8005 BRA $2B61 C3/2B5C: C221 REP #$21 C3/2B5E: ADB011 LDA $11B0 (load damage dealt) C3/2B61: 790900 ADC $0009,Y (add it with current HP) C3/2B64: 990900 STA $0009,Y (save as new current HP) C3/2B67: E220 SEP #$20 (8 bit memory/accum.) C3/2B69: 209A2B JSR $2B9A (deal with healing) C3/2B6C: A5FC LDA $FC C3/2B6E: 991400 STA $0014,Y (save new status byte 1) C3/2B71: A5FF LDA $FF C3/2B73: 991500 STA $0015,Y (save new status byte 4) C3/2B76: A59C LDA $9C C3/2B78: D01F BNE $2B99 (branch backwards!) C3/2B7A: 7B TDC C3/2B7B: A54B LDA $4B C3/2B7D: AA TAX C3/2B7E: B569 LDA $69,X (who this is being cast on) C3/2B80: 220600C2 JSL $C20006 (equipment check function) C3/2B84: 7B TDC C3/2B85: A54B LDA $4B C3/2B87: 0A ASL A C3/2B88: AA TAX C3/2B89: B46D LDY $6D,X C3/2B8B: 8467 STY $67 C3/2B8D: ADD211 LDA $11D2 (statuses blocked byte 1) C3/2B90: 20EC91 JSR $91EC C3/2B93: ADD411 LDA $11D4 C3/2B96: 4CFB91 JMP $91FB C3/2B99: 60 RTS (no point in this) Heal HP (Tonic, Potion, X-Potion, Dried Meat) C3/2B9A: B90B00 LDA $000B,Y (max HP byte 1) C3/2B9D: 85F3 STA $F3 C3/2B9F: B90C00 LDA $000C,Y (max HP byte 2) C3/2BA2: 85F4 STA $F4 C3/2BA4: 20650D JSR $0D65 (factor in HP boosts from items) C3/2BA7: 20920D JSR $0D92 (trim displaying HP to a max of 9999) C3/2BAA: C220 REP #$20 (16 bit memory/accum.) C3/2BAC: B90900 LDA $0009,Y (current HP) C3/2BAF: C5F3 CMP $F3 C3/2BB1: 9006 BCC $2BB9 C3/2BB3: A5F3 LDA $F3 C3/2BB5: 990900 STA $0009,Y (save new current HP) C3/2BB8: 38 SEC C3/2BB9: E220 SEP #$20 (8 bit memory/accum.) C3/2BBB: 60 RTS C3/2BBC: B90F00 LDA $000F,Y (max MP byte 1) C3/2BBF: 85F3 STA $F3 C3/2BC1: B91000 LDA $0010,Y (max MP byte 2) C3/2BC4: 85F4 STA $F4 C3/2BC6: 20650D JSR $0D65 (factor in MP boosts from items) C3/2BC9: 209F0D JSR $0D9F (trim displaying MP to a max of 999) C3/2BCC: C220 REP #$20 (16 bit memory/accum.) C3/2BCE: B90D00 LDA $000D,Y (current MP) C3/2BD1: C5F3 CMP $F3 (compare it to max MP) C3/2BD3: 9006 BCC $2BDB (branch if it's more than max MP) C3/2BD5: A5F3 LDA $F3 C3/2BD7: 990D00 STA $000D,Y (save new current MP) C3/2BDA: 38 SEC C3/2BDB: E220 SEP #$20 (8 bit memory/accum.) C3/2BDD: 60 RTS C3/2BDE: 20012C JSR $2C01 C3/2BE1: 20DF2C JSR $2CDF C3/2BE4: 20032D JSR $2D03 C3/2BE7: 20132D JSR $2D13 C3/2BEA: 200D51 JSR $510D C3/2BED: 86E7 STX $E7 C3/2BEF: BE0D00 LDX $000D,Y (current MP) C3/2BF2: E4E7 CPX $E7 C3/2BF4: B00A BCS $2C00 C3/2BF6: A902 LDA #$02 C3/2BF8: 8546 STA $46 C3/2BFA: A93C LDA #$3C C3/2BFC: 8527 STA $27 (queue up to execute at C3/2D1C) C3/2BFE: 6426 STZ $26 (fade out) C3/2C00: 60 RTS C3/2C01: A54B LDA $4B C3/2C03: 859C STA $9C C3/2C05: 20EE24 JSR $24EE C3/2C08: 20156A JSR $6A15 C3/2C0B: 209331 JSR $3193 C3/2C0E: 20096C JSR $6C09 C3/2C11: 4CBF6E JMP $6EBF C3/2C14: B91400 LDA $0014,Y (status byte 1) C3/2C17: 2980 AND #$80 (filter out all status except death) C3/2C19: D025 BNE $2C40 (branch if dead) C3/2C1B: 20132D JSR $2D13 C3/2C1E: C92D CMP #$2D (is spell Cure?) C3/2C20: F054 BEQ $2C76 (branch if so, check for terminal ailments) C3/2C22: C92E CMP #$2E (is spell Cure 2?) C3/2C24: F050 BEQ $2C76 (branch if so, check for terminal ailments) C3/2C26: C92F CMP #$2F (is spell Cure 3?) C3/2C28: F04C BEQ $2C76 (branch if so, check for terminal ailments) C3/2C2A: C932 CMP #$32 (is spell Antdot?) C3/2C2C: F03F BEQ $2C6D (branch if so, check for poison) C3/2C2E: C933 CMP #$33 (is spell Remedy?) C3/2C30: F032 BEQ $2C64 (branch if so, check for blind, poison, and stone) C3/2C32: C922 CMP #$22 (is spell Float?) C3/2C34: F017 BEQ $2C4D (branch if so, check for float) C3/2C36: C923 CMP #$23 (is spell Imp?) C3/2C38: F04A BEQ $2C84 (branch if so) C3/2C3A: C92C CMP #$2C (is spell Dispel?) C3/2C3C: F018 BEQ $2C56 (branch if so, check for float and invis) C3/2C3E: 8042 BRA $2C82 (otherwise flag spell as can't be used) C3/2C40: 20132D JSR $2D13 C3/2C43: C930 CMP #$30 (is spell Life?) C3/2C45: F03D BEQ $2C84 (branch if so) C3/2C47: C931 CMP #$31 (is spell Life 2?) C3/2C49: F039 BEQ $2C84 (branch if so) C3/2C4B: 8035 BRA $2C82 (otherwise flag spell as can't be used) C3/2C4D: B91500 LDA $0015,Y (status byte 4) C3/2C50: 2980 AND #$80 (filter out all status except float) C3/2C52: D02E BNE $2C82 (branch if floating, flag spell as can't be used) C3/2C54: 802E BRA $2C84 C3/2C56: B91400 LDA $0014,Y (status byte 1) C3/2C59: 297F AND #$7F (filter death, leave rest intact) C3/2C5B: 191500 ORA $0015,Y (status byte 4) C3/2C5E: 2990 AND #$90 (mask all except float, invisible) C3/2C60: F020 BEQ $2C82 (branch if none set, flag spell as can't be used) C3/2C62: 8020 BRA $2C84 C3/2C64: B91400 LDA $0014,Y (status byte 1) C3/2C67: 2945 AND #$45 (character has blind, poison, or stone?) C3/2C69: F017 BEQ $2C82 (branch if not, flag spell as can't be used) C3/2C6B: 8017 BRA $2C84 C3/2C6D: B91400 LDA $0014,Y (status byte 1) C3/2C70: 2904 AND #$04 (character has poison?) C3/2C72: F00E BEQ $2C82 (branch if not, flag spell as can't be used) C3/2C74: 800E BRA $2C84 C3/2C76: B91400 LDA $0014,Y (status byte 1) C3/2C79: 29C2 AND #$C2 (filter out all status except zombie, stone, and death) C3/2C7B: D005 BNE $2C82 (branch if any are set, flag spell as can't be used) C3/2C7D: 209A2B JSR $2B9A (heal HP) C3/2C80: 9002 BCC $2C84 (branch if below max HP) C3/2C82: 18 CLC C3/2C83: 60 RTS C3/2C84: 38 SEC C3/2C85: 60 RTS C3/2C86: 64AF STZ $AF C3/2C88: A901 LDA #$01 C3/2C8A: 859C STA $9C C3/2C8C: 20CC2C JSR $2CCC C3/2C8F: 7B TDC C3/2C90: 48 PHA C3/2C91: 0A ASL A C3/2C92: AA TAX C3/2C93: B46D LDY $6D,X C3/2C95: F021 BEQ $2CB8 C3/2C97: 20142C JSR $2C14 C3/2C9A: 901C BCC $2CB8 C3/2C9C: B91400 LDA $0014,Y (status byte 1) C3/2C9F: 85F8 STA $F8 C3/2CA1: B91500 LDA $0015,Y (status byte 4) C3/2CA4: 85FB STA $FB C3/2CA6: 20392B JSR $2B39 C3/2CA9: 20CC2C JSR $2CCC C3/2CAC: A5AF LDA $AF C3/2CAE: D008 BNE $2CB8 C3/2CB0: 20E50E JSR $0EE5 C3/2CB3: 20EA2C JSR $2CEA C3/2CB6: E6AF INC $AF C3/2CB8: 7B TDC C3/2CB9: 68 PLA C3/2CBA: 1A INC A C3/2CBB: C904 CMP #$04 C3/2CBD: D0D1 BNE $2C90 C3/2CBF: A5AF LDA $AF C3/2CC1: D006 BNE $2CC9 C3/2CC3: 20C00E JSR $0EC0 (makes the buzzer sound) C3/2CC6: 205D30 JSR $305D (mosaic effect) C3/2CC9: 4CDE2B JMP $2BDE C3/2CCC: 20DF2C JSR $2CDF C3/2CCF: ADA011 LDA $11A0 (targetting) C3/2CD2: 8DAE11 STA $11AE (save as power) C3/2CD5: 20032D JSR $2D03 C3/2CD8: B90800 LDA $0008,Y (level) C3/2CDB: 8DAF11 STA $11AF (save for calculation purposes) C3/2CDE: 60 RTS C3/2CDF: 7B TDC C3/2CE0: A528 LDA $28 C3/2CE2: AA TAX C3/2CE3: B569 LDA $69,X C3/2CE5: 220600C2 JSL $C20006 C3/2CE9: 60 RTS C3/2CEA: 20132D JSR $2D13 C3/2CED: 200D51 JSR $510D C3/2CF0: 86E7 STX $E7 C3/2CF2: 20032D JSR $2D03 C3/2CF5: C220 REP #$20 (16 bit memory/accum.) C3/2CF7: B90D00 LDA $000D,Y (current MP) C3/2CFA: 38 SEC C3/2CFB: E5E7 SBC $E7 (subtract MP cost) C3/2CFD: 990D00 STA $000D,Y (new current MP) C3/2D00: E220 SEP #$20 (8 bit memory/accum.) C3/2D02: 60 RTS C3/2D03: 7B TDC C3/2D04: A528 LDA $28 C3/2D06: 0A ASL A C3/2D07: AA TAX C3/2D08: B46D LDY $6D,X C3/2D0A: 60 RTS C3/2D0B: 7B TDC C3/2D0C: A54B LDA $4B C3/2D0E: 0A ASL A C3/2D0F: AA TAX C3/2D10: B46D LDY $6D,X C3/2D12: 60 RTS C3/2D13: 7B TDC C3/2D14: A599 LDA $99 C3/2D16: AA TAX C3/2D17: BF899D7E LDA $7E9D89,X C3/2D1B: 60 RTS C3/2D1C: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/2D1F: 20086A JSR $6A08 C3/2D22: A942 LDA #$42 C3/2D24: 1445 TRB $45 C3/2D26: 644A STZ $4A C3/2D28: 6449 STZ $49 C3/2D2A: 20BC4D JSR $4DBC C3/2D2D: 20804C JSR $4C80 C3/2D30: 20B007 JSR $07B0 (finger OAM initiating) C3/2D33: 203021 JSR $2130 C3/2D36: 20824B JSR $4B82 C3/2D39: A58E LDA $8E C3/2D3B: 854D STA $4D C3/2D3D: A48E LDY $8E C3/2D3F: 844F STY $4F C3/2D41: A590 LDA $90 C3/2D43: 854A STA $4A C3/2D45: A54A LDA $4A C3/2D47: 85E0 STA $E0 C3/2D49: A550 LDA $50 C3/2D4B: 38 SEC C3/2D4C: E5E0 SBC $E0 C3/2D4E: 854E STA $4E C3/2D50: 208B4B JSR $4B8B C3/2D53: 205821 JSR $2158 C3/2D56: 20C651 JSR $51C6 C3/2D59: 206E0E JSR $0E6E C3/2D5C: 206813 JSR $1368 (trigger NMI) C3/2D5F: A400 LDY $00 C3/2D61: 8435 STY $35 C3/2D63: 20991B JSR $1B99 C3/2D66: A910 LDA #$10 C3/2D68: 0445 TSB $45 C3/2D6A: 20FD0E JSR $0EFD C3/2D6D: A91A LDA #$1A C3/2D6F: 8527 STA $27 (preloading for magic descriptions, execute at C3/27E2) C3/2D71: A901 LDA #$01 C3/2D73: 8526 STA $26 (transition process) C3/2D75: 4C4135 JMP $3541 C3/2D78: A508 LDA $08 C3/2D7A: 8910 BIT #$10 (did you press L?) C3/2D7C: D012 BNE $2D90 (branch if so) C3/2D7E: A508 LDA $08 C3/2D80: 8920 BIT #$20 (did you press R?) C3/2D82: D00C BNE $2D90 (branch if so) C3/2D84: A509 LDA $09 C3/2D86: 8901 BIT #$01 (did you press right?) C3/2D88: D006 BNE $2D90 (branch if so) C3/2D8A: A509 LDA $09 C3/2D8C: 8902 BIT #$02 (did you press left?) C3/2D8E: F00B BEQ $2D9B (branch if not) C3/2D90: 20A30E JSR $0EA3 C3/2D93: 20B72D JSR $2DB7 C3/2D96: A93B LDA #$3B C3/2D98: 8526 STA $26 (execute at C2/2AAE) C3/2D9A: 60 RTS C3/2D9B: A508 LDA $08 C3/2D9D: 8980 BIT #$80 (did you press A?) C3/2D9F: F003 BEQ $2DA4 (branch if not, BPL...) C3/2DA1: 4C862C JMP $2C86 C3/2DA4: A509 LDA $09 C3/2DA6: 8980 BIT #$80 (did you press B?) C3/2DA8: F00C BEQ $2DB6 (branch if not, BPL...) C3/2DAA: 20A90E JSR $0EA9 C3/2DAD: 20B72D JSR $2DB7 C3/2DB0: A93C LDA #$3C C3/2DB2: 8527 STA $27 (queue up to execute at C3/2D1C) C3/2DB4: 6426 STZ $26 (fade out to above) C3/2DB6: 60 RTS C3/2DB7: 20982F JSR $2F98 C3/2DBA: 20B007 JSR $07B0 (finger OAM initiating) C3/2DBD: A900 LDA #$00 C3/2DBF: A0C02F LDY #$2FC0 C3/2DC2: 207311 JSR $1173 (put C3/2FC0 in the queue) C3/2DC5: 20B011 JSR $11B0 (execute everything in OAM queue) C3/2DC8: A55F LDA $5F C3/2DCA: 854E STA $4E C3/2DCC: A908 LDA #$08 C3/2DCE: 1446 TRB $46 C3/2DD0: 60 RTS C3/2DD1: 7B TDC C3/2DD2: A528 LDA $28 C3/2DD4: AA TAX C3/2DD5: A54B LDA $4B C3/2DD7: A8 TAY C3/2DD8: B575 LDA $75,X C3/2DDA: 85E0 STA $E0 C3/2DDC: B97500 LDA $0075,Y C3/2DDF: 9575 STA $75,X C3/2DE1: A5E0 LDA $E0 C3/2DE3: 997500 STA $0075,Y C3/2DE6: B569 LDA $69,X C3/2DE8: 85E0 STA $E0 C3/2DEA: B96900 LDA $0069,Y C3/2DED: 9569 STA $69,X C3/2DEF: A5E0 LDA $E0 C3/2DF1: 996900 STA $0069,Y C3/2DF4: 7B TDC C3/2DF5: A528 LDA $28 C3/2DF7: 0A ASL A C3/2DF8: AA TAX C3/2DF9: A54B LDA $4B C3/2DFB: 0A ASL A C3/2DFC: A8 TAY C3/2DFD: C220 REP #$20 (16 bit memory/accum.) C3/2DFF: B56D LDA $6D,X C3/2E01: 85E7 STA $E7 C3/2E03: B96D00 LDA $006D,Y C3/2E06: 956D STA $6D,X C3/2E08: A5E7 LDA $E7 C3/2E0A: 996D00 STA $006D,Y C3/2E0D: E220 SEP #$20 (8 bit memory/accum.) C3/2E0F: 60 RTS C3/2E10: 7B TDC C3/2E11: A528 LDA $28 C3/2E13: AA TAX C3/2E14: B575 LDA $75,X C3/2E16: 85E0 STA $E0 C3/2E18: B560 LDA $60,X C3/2E1A: AA TAX C3/2E1B: A5E0 LDA $E0 C3/2E1D: 8920 BIT #$20 C3/2E1F: F008 BEQ $2E29 C3/2E21: A920 LDA #$20 C3/2E23: 14E0 TRB $E0 C3/2E25: A903 LDA #$03 C3/2E27: 8006 BRA $2E2F C3/2E29: A920 LDA #$20 C3/2E2B: 04E0 TSB $E0 C3/2E2D: A902 LDA #$02 C3/2E2F: 9F49367E STA $7E3649,X C3/2E33: 7B TDC C3/2E34: A528 LDA $28 C3/2E36: AA TAX C3/2E37: A5E0 LDA $E0 C3/2E39: 9575 STA $75,X C3/2E3B: 60 RTS C3/2E3C: 7B TDC C3/2E3D: A560 LDA $60 C3/2E3F: AA TAX C3/2E40: A9FF LDA #$FF C3/2E42: 9FC9357E STA $7E35C9,X C3/2E46: A561 LDA $61 C3/2E48: AA TAX C3/2E49: A9FF LDA #$FF C3/2E4B: 9FC9357E STA $7E35C9,X C3/2E4F: A562 LDA $62 C3/2E51: AA TAX C3/2E52: A9FF LDA #$FF C3/2E54: 9FC9357E STA $7E35C9,X C3/2E58: A563 LDA $63 C3/2E5A: AA TAX C3/2E5B: A9FF LDA #$FF C3/2E5D: 9FC9357E STA $7E35C9,X C3/2E61: 60 RTS C3/2E62: 7B TDC C3/2E63: A54B LDA $4B C3/2E65: 8525 STA $25 C3/2E67: 0A ASL A C3/2E68: AA TAX C3/2E69: 7C6C2E JMP ($2E6C,X) Jump table for main subscreen (aka main menu) C3/2E6C: 862E ("Item") C3/2E6E: 902E ("Skills") C3/2E70: 902E ("Equip") C3/2E72: 902E ("Relic") C3/2E74: 902E ("Status") C3/2E76: 7A2E ("Config") C3/2E78: AA2E ("Save") C3/2E7A: 20B20E JSR $0EB2 (makes the click sound) C3/2E7D: 645F STZ $5F C3/2E7F: 6426 STZ $26 (fade out) C3/2E81: A90D LDA #$0D C3/2E83: 8527 STA $27 (the config screen, queue up to execute at C3/1C7D) C3/2E85: 60 RTS C3/2E86: 20B20E JSR $0EB2 (makes the click sound) C3/2E89: 6426 STZ $26 (fade out) C3/2E8B: A907 LDA #$07 C3/2E8D: 8527 STA $27 (queue up to execute at C3/1AD6) C3/2E8F: 60 RTS C3/2E90: 20B20E JSR $0EB2 (makes the click sound) C3/2E93: A902 LDA #$02 C3/2E95: 1446 TRB $46 C3/2E97: 20982F JSR $2F98 C3/2E9A: A900 LDA #$00 C3/2E9C: A0C02F LDY #$2FC0 C3/2E9F: 207311 JSR $1173 (put C3/2FC0 in the queue) C3/2EA2: 20062F JSR $2F06 C3/2EA5: A906 LDA #$06 C3/2EA7: 8526 STA $26 (execute at C3/1DE8) C3/2EA9: 60 RTS C3/2EAA: AD0102 LDA $0201 C3/2EAD: 1010 BPL $2EBF C3/2EAF: 20B20E JSR $0EB2 (makes the click sound) C3/2EB2: 6426 STZ $26 (fade out) C3/2EB4: A913 LDA #$13 C3/2EB6: 8527 STA $27 (the save screen, queue up to execute at C3/1CA0) C3/2EB8: 859E STA $9E C3/2EBA: A904 LDA #$04 C3/2EBC: 859F STA $9F C3/2EBE: 60 RTS C3/2EBF: 20C00E JSR $0EC0 (makes the buzzer sound) C3/2EC2: 205D30 JSR $305D (mosaic effect, also JMP fool!) C3/2EC5: 60 RTS C3/2EC6: A902 LDA #$02 C3/2EC8: 1446 TRB $46 C3/2ECA: 20982F JSR $2F98 C3/2ECD: A900 LDA #$00 C3/2ECF: A0C02F LDY #$2FC0 C3/2ED2: 207311 JSR $1173 C3/2ED5: A906 LDA #$06 C3/2ED7: 8520 STA $20 C3/2ED9: A0F4FF LDY #$FFF4 C3/2EDC: 849C STY $9C C3/2EDE: A905 LDA #$05 C3/2EE0: 1446 TRB $46 C3/2EE2: A90F LDA #$0F C3/2EE4: 8527 STA $27 (queue up to execute at C3/240C) C3/2EE6: A965 LDA #$65 C3/2EE8: 8526 STA $26 (execute at C3/36E7) C3/2EEA: 60 RTS C3/2EEB: A902 LDA #$02 C3/2EED: A0D108 LDY #$08D1 C3/2EF0: 207311 JSR $1173 (put C3/07FF in the queue) C3/2EF3: C220 REP #$20 (16 bit memory/accum.) C3/2EF5: A93800 LDA #$0038 C3/2EF8: 9FCA337E STA $7E33CA,X C3/2EFC: A93600 LDA #$0036 C3/2EFF: 9F4A347E STA $7E344A,X C3/2F03: E220 SEP #$20 (8 bit memory/accum.) C3/2F05: 60 RTS C3/2F06: A902 LDA #$02 C3/2F08: A0FF07 LDY #$07FF C3/2F0B: 207311 JSR $1173 (put C3/07FF in the queue) C3/2F0E: C220 REP #$20 (16 bit memory/accum.) C3/2F10: A555 LDA $55 C3/2F12: 1A INC A C3/2F13: 1A INC A C3/2F14: 9FCA337E STA $7E33CA,X C3/2F18: A557 LDA $57 C3/2F1A: 9F4A347E STA $7E344A,X C3/2F1E: E220 SEP #$20 (8 bit memory/accum.) C3/2F20: 60 RTS C3/2F21: A901 LDA #$01 C3/2F23: A0FF07 LDY #$07FF C3/2F26: 207311 JSR $1173 (put C3/07FF in the queue) C3/2F29: C220 REP #$20 (16 bit memory/accum.) C3/2F2B: A555 LDA $55 C3/2F2D: 18 CLC C3/2F2E: 690400 ADC #$0004 C3/2F31: 9FCA337E STA $7E33CA,X C3/2F35: A557 LDA $57 C3/2F37: 38 SEC C3/2F38: E90400 SBC #$0004 C3/2F3B: 9F4A347E STA $7E344A,X C3/2F3F: E220 SEP #$20 (8 bit memory/accum.) C3/2F41: 60 RTS C3/2F42: AA TAX C3/2F43: 7C462F JMP ($2F46,X) C3/2F46: 4A2F C3/2F48: 6B2F C3/2F4A: A62D LDX $2D C3/2F4B: A902 LDA #$02 C3/2F4E: 0446 TSB $46 C3/2F50: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/2F53: A0852F LDY #$2F85 C3/2F56: 20FE05 JSR $05FE (main subscreen hotspot data) C3/2F59: AD4E1D LDA $1D4E (various settings in config) C3/2F5C: 2940 AND #$40 (cursor memory set?) C3/2F5E: F005 BEQ $2F65 (branch if not) C3/2F60: AC2B02 LDY $022B C3/2F63: 844D STY $4D C3/2F65: A08A2F LDY #$2F8A C3/2F68: 204006 JSR $0640 (main subscreen finger positioning data) C3/2F6B: A546 LDA $46 C3/2F6D: 8902 BIT #$02 C3/2F6F: F012 BEQ $2F83 C3/2F71: A62D LDX $2D C3/2F73: 202D07 JSR $072D C3/2F76: A08A2F LDY #$2F8A C3/2F79: 204006 JSR $0640 (main subscreen finger positioning data) C3/2F7C: A44D LDY $4D C3/2F7E: 8C2B02 STY $022B C3/2F81: 38 SEC C3/2F82: 60 RTS C3/2F83: 18 CLC C3/2F84: 60 RTS Main subscreen selection hotspots C3/2F85: 80 00 00 01 07 Finger positioning data for main subscreen C3/2F8A: AF12 ("Item") C3/2F8C: AF21 ("Skills") C3/2F8E: AF30 ("Equip") C3/2F90: AF3F ("Relic") C3/2F92: AF4E ("Status") C3/2F94: AF5D ("Config") C3/2F96: AF6C ("Save") C3/2F98: 20B12F JSR $2FB1 C3/2F9B: 7B TDC C3/2F9C: AA TAX C3/2F9D: A8 TAY C3/2F9E: BD6900 LDA $0069,X C3/2FA1: 1007 BPL $2FAA C3/2FA3: DA PHX C3/2FA4: 8A TXA C3/2FA5: 0A ASL A C3/2FA6: AA TAX C3/2FA7: 7485 STZ $85,X C3/2FA9: FA PLX C3/2FAA: E8 INX C3/2FAB: E00400 CPX #$0004 C3/2FAE: D0EE BNE $2F9E C3/2FB0: 60 RTS C3/2FB1: A600 LDX $00 C3/2FB3: BF4230C3 LDA $C33042,X (party area selection hotspot data) C3/2FB7: 9580 STA $80,X C3/2FB9: E8 INX C3/2FBA: E00D00 CPX #$000D C3/2FBD: D0F4 BNE $2FB3 C3/2FBF: 60 RTS C3/2FC0: AA TAX C3/2FC1: 7CC42F JMP ($2FC4,X) C3/2FC4: C82F C3/2FC6: 1430 C3/2FC8: A62D LDX $2D C3/2FCA: A914 LDA #$14 C3/2FCC: 0446 TSB $46 C3/2FCE: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/2FD1: 20F52F JSR $2FF5 C3/2FD4: A545 LDA $45 C3/2FD6: 8940 BIT #$40 C3/2FD8: D00C BNE $2FE6 C3/2FDA: AD4E1D LDA $1D4E C3/2FDD: 2940 AND #$40 C3/2FDF: F005 BEQ $2FE6 C3/2FE1: AC2D02 LDY $022D C3/2FE4: 844D STY $4D C3/2FE6: 200830 JSR $3008 C3/2FE9: A555 LDA $55 C3/2FEB: D006 BNE $2FF3 C3/2FED: 20F52F JSR $2FF5 C3/2FF0: 200830 JSR $3008 C3/2FF3: 38 SEC (not done with this queue yet) C3/2FF4: 60 RTS C3/2FF5: A08000 LDY #$0080 C3/2FF8: 20FE05 JSR $05FE (finger positioning data in code...) C3/2FFB: A08000 LDY #$0080 C3/2FFE: A900 LDA #$00 C3/3000: 85ED STA $ED C3/3002: 200206 JSR $0602 C3/3005: 4C1E06 JMP $061E C3/3008: A08500 LDY #$0085 C3/300B: 84E7 STY $E7 C3/300D: A900 LDA #$00 C3/300F: 85E9 STA $E9 C3/3011: 4C4306 JMP $0643 C3/3014: A545 LDA $45 C3/3016: 8940 BIT #$40 C3/3018: D005 BNE $301F C3/301A: A44D LDY $4D C3/301C: 8C2D02 STY $022D C3/301F: A546 LDA $46 C3/3021: 8904 BIT #$04 C3/3023: F01B BEQ $3040 C3/3025: 8910 BIT #$10 C3/3027: F015 BEQ $303E C3/3029: A62D LDX $2D C3/302B: 202D07 JSR $072D C3/302E: A08500 LDY #$0085 C3/3031: 84E7 STY $E7 C3/3033: A900 LDA #$00 C3/3035: 85E9 STA $E9 C3/3037: 204306 JSR $0643 C3/303A: A555 LDA $55 C3/303C: F0ED BEQ $302B C3/303E: 38 SEC (not done with this queue yet) C3/303F: 60 RTS C3/3040: 18 CLC (this queue can be removed) C3/3041: 60 RTS Menu Party selection area hotspot data C3/3042: 80 00 00 01 04 Finger positioning data is usually after hotspot data, but as it is this is currently unknown C3/3047: 0828 C3/3049: 0858 C3/304B: 0888 C3/304D: 08B8 C3/304F: 7B TDC C3/3050: A09F30 LDY #$309F C3/3053: 4C7311 JMP $1173 (put C3/309F in the queue) C3/3056: 7B TDC C3/3057: A0CA30 LDY #$30CA C3/305A: 4C7311 JMP $1173 (put C3/30CA in the queue) This appears to be the mosaic effect C3/305D: 7B TDC C3/305E: A06430 LDY #$3064 C3/3061: 4C7311 JMP $1173 (put C3/3064 in the queue) C3/3064: AA TAX C3/3065: 7C6830 JMP ($3068,X) C3/3068: 6C30 C3/306A: 7930 C3/306C: A62D LDX $2D C3/306E: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/3071: 9ECA33 STZ $33CA,X C3/3074: A908 LDA #$08 C3/3076: 9D4933 STA $3349,X C3/3079: A62D LDX $2D C3/307B: BD4933 LDA $3349,X C3/307E: F015 BEQ $3095 C3/3080: 7B TDC C3/3081: BDCA33 LDA $33CA,X C3/3084: AA TAX C3/3085: BF9730C3 LDA $C33097,X (load various mosaic intensities) C3/3089: 85B5 STA $B5 (save them to the variable) C3/308B: A62D LDX $2D C3/308D: FECA33 INC $33CA,X C3/3090: DE4933 DEC $3349,X C3/3093: 38 SEC (not done with this queue yet) C3/3094: 60 RTS C3/3095: 18 CLC (this queue can be removed) C3/3096: 60 RTS Data: mosaic intensities! C3/3097: 17 C3/3098: 27 C3/3099: 37 C3/309A: 47 C3/309B: 37 C3/309C: 27 C3/309D: 17 C3/309E: 07 C3/309F: AA TAX C3/30A0: 7CA330 JMP ($30A3,X) C3/30A3: A730 C3/30A5: B130 C3/30A7: A62D LDX $2D C3/30A9: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/30AC: A90F LDA #$0F C3/30AE: 9DCA33 STA $33CA,X C3/30B1: A420 LDY $20 C3/30B3: F00F BEQ $30C4 C3/30B5: A62D LDX $2D C3/30B7: BDCA33 LDA $33CA,X C3/30BA: 8544 STA $44 C3/30BC: DECA33 DEC $33CA,X C3/30BF: DECA33 DEC $33CA,X C3/30C2: 38 SEC (not done with this queue yet) C3/30C3: 60 RTS C3/30C4: A901 LDA #$01 C3/30C6: 8544 STA $44 C3/30C8: 18 CLC (this queue can be removed) C3/30C9: 60 RTS C3/30CA: AA TAX C3/30CB: 7CCE30 JMP ($30CE,X) C3/30CE: D230 C3/30D0: DC30 C3/30D2: A62D LDX $2D C3/30D4: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/30D7: A901 LDA #$01 C3/30D9: 9D4A34 STA $344A,X C3/30DC: A420 LDY $20 C3/30DE: F00F BEQ $30EF C3/30E0: A62D LDX $2D C3/30E2: BD4A34 LDA $344A,X C3/30E5: 8544 STA $44 C3/30E7: FE4A34 INC $344A,X C3/30EA: FE4A34 INC $344A,X C3/30ED: 38 SEC (not done with this queue yet) C3/30EE: 60 RTS C3/30EF: A90F LDA #$0F C3/30F1: 8544 STA $44 C3/30F3: 18 CLC (this queue can be removed) C3/30F4: 60 RTS C3/30F5: 20993F JSR $3F99 C3/30F8: 20286A JSR $6A28 C3/30FB: 202D6A JSR $6A2D C3/30FE: 20196A JSR $6A19 C3/3101: 20416A JSR $6A41 C3/3104: A0CF31 LDY #$31CF C3/3107: 204103 JSR $0341 (draw window) C3/310A: A0D331 LDY #$31D3 C3/310D: 204103 JSR $0341 (draw window) C3/3110: A0C731 LDY #$31C7 C3/3113: 204103 JSR $0341 (draw window) C3/3116: A0BB31 LDY #$31BB C3/3119: 204103 JSR $0341 (draw window that holds main menu options) C3/311C: 207031 JSR $3170 (apply gradient, and draw a couple windows) C3/311F: 206C32 JSR $326C (prepare time for displaying) C3/3122: 20F331 JSR $31F3 C3/3125: 4C9F31 JMP $319F C3/3128: 20993F JSR $3F99 C3/312B: 20826E JSR $6E82 C3/312E: 20096C JSR $6C09 C3/3131: 20A831 JSR $31A8 C3/3134: A0C731 LDY #$31C7 C3/3137: 204103 JSR $0341 (draw window) C3/313A: A0CB31 LDY #$31CB C3/313D: 204103 JSR $0341 (draw window) C3/3140: 207031 JSR $3170 C3/3143: 209532 JSR $3295 C3/3146: 20D731 JSR $31D7 C3/3149: 4C9F31 JMP $319F C3/314C: 20993F JSR $3F99 C3/314F: 20826E JSR $6E82 C3/3152: 20096C JSR $6C09 C3/3155: 20A831 JSR $31A8 C3/3158: A0C731 LDY #$31C7 C3/315B: 204103 JSR $0341 (draw window) C3/315E: A0CB31 LDY #$31CB C3/3161: 204103 JSR $0341 (draw window) C3/3164: 207031 JSR $3170 C3/3167: 209532 JSR $3295 C3/316A: 20E531 JSR $31E5 C3/316D: 4C9F31 JMP $319F C3/3170: 7B TDC C3/3171: 221DCAD4 JSL $D4CA1D (apply gradient 0 to the screen) C3/3175: A0BF31 LDY #$31BF C3/3178: 204103 JSR $0341 (draw window that holds time) C3/317B: A0C331 LDY #$31C3 C3/317E: 204103 JSR $0341 (draw window that holds steps and money) C3/3181: 20520E JSR $0E52 C3/3184: 208A31 JSR $318A C3/3187: 4C2132 JMP $3221 C3/318A: 20156A JSR $6A15 C3/318D: 203C6A JSR $6A3C C3/3190: 20466A JSR $6A46 C3/3193: 20F132 JSR $32F1 (get character 1 name, stats, etc displayed) C3/3196: 203D33 JSR $333D (get character 2 name, stats, etc displayed) C3/3199: 208933 JSR $3389 (get character 3 name, stats, etc displayed) C3/319C: 4CD533 JMP $33D5 (get character 4 name, stats, etc displayed) C3/319F: 20280E JSR $0E28 C3/31A2: 206E0E JSR $0E6E C3/31A5: 4C7C0E JMP $0E7C C3/31A8: A566 LDA $66 C3/31AA: C901 CMP #$01 C3/31AC: F007 BEQ $31B5 C3/31AE: C902 CMP #$02 C3/31B0: F006 BEQ $31B8 C3/31B2: 4CD93A JMP $3AD9 C3/31B5: 4CA13A JMP $3AA1 C3/31B8: 4CBD3A JMP $3ABD Window data C3/31BB: B758060D (window that holds the main menu options) C3/31BF: 775C0602 (window that holds time) C3/31C3: 755D0705 (window that holds steps and money) Window data C3/31C7: 8B581C18 C3/31CB: B558070A C3/31CF: B9600702 C3/31D3: 85580102 C3/31D7: A920 LDA #$20 C3/31D9: 8529 STA $29 (set text color to white) C3/31DB: A26537 LDX #$3765 C3/31DE: A00A00 LDY #$000A C3/31E1: 20BA69 JSR $69BA (display "Yes/No" "Erasing data. Okay?", also JMP fool!) C3/31E4: 60 RTS C3/31E5: A920 LDA #$20 C3/31E7: 8529 STA $29 (set text color to white) C3/31E9: A25D37 LDX #$375D C3/31EC: A00800 LDY #$0008 C3/31EF: 20BA69 JSR $69BA (display "Yes/No" "This data?", also JMP fool!) C3/31F2: 60 RTS C3/31F3: A920 LDA #$20 C3/31F5: 8529 STA $29 (set text color to white) C3/31F7: A22937 LDX #$3729 C3/31FA: A00800 LDY #$0008 C3/31FD: 20BA69 JSR $69BA (display "Item, Skills, Relic, and Status") C3/3200: A920 LDA #$20 C3/3202: 8529 STA $29 (set text color to white) C3/3204: A25937 LDX #$3759 C3/3207: A00400 LDY #$0004 C3/320A: 20BA69 JSR $69BA (display "Equip and Config") C3/320D: AD0102 LDA $0201 (is saving available?) C3/3210: 1004 BPL $3216 (branch if not) C3/3212: A920 LDA #$20 (set text color to white) C3/3214: 8002 BRA $3218 C3/3216: A924 LDA #$24 (set text color to gray) C3/3218: 8529 STA $29 C3/321A: A0FD37 LDY #$37FD C3/321D: 20F902 JSR $02F9 (display "Save") C3/3220: 60 RTS (no need for this, JMP $02F9 would be just as good) C3/3221: A920 LDA #$20 C3/3223: 8529 STA $29 (set text color to white) C3/3225: A00B38 LDY #$380B C3/3228: 20F902 JSR $02F9 (display ":") C3/322B: A92C LDA #$2C C3/322D: 8529 STA $29 (set text color to ) C3/322F: A22337 LDX #$3723 C3/3232: A00600 LDY #$0006 C3/3235: 20BA69 JSR $69BA (display "Time, Steps, and Order") C3/3238: A01738 LDY #$3817 C3/323B: 20F902 JSR $02F9 (display "GP") C3/323E: 20CE32 JSR $32CE (GP check, make sure it's not beyond 9,999,999) C3/3241: A920 LDA #$20 C3/3243: 8529 STA $29 (set text color to white) C3/3245: AC6618 LDY $1866 (steps, bytes 1 & 2) C3/3248: 84F1 STY $F1 C3/324A: AD6818 LDA $1868 (steps, byte 3) C3/324D: 85F3 STA $F3 C3/324F: 208205 JSR $0582 C3/3252: A2F77D LDX #$7DF7 (position of steps amount) C3/3255: 20AC04 JSR $04AC C3/3258: AC6018 LDY $1860 C3/325B: 84F1 STY $F1 C3/325D: AD6218 LDA $1862 C3/3260: 85F3 STA $F3 C3/3262: 208205 JSR $0582 C3/3265: A2B77E LDX #$7EB7 (position of GP amount) C3/3268: 20AC04 JSR $04AC (JMP fool!) C3/326B: 60 RTS C3/326C: AD8811 LDA $1188 C3/326F: 8910 BIT #$10 C3/3271: F016 BEQ $3289 C3/3273: AC8911 LDY $1189 (is $1189 the elapsed time in seconds?) C3/3276: 20B232 JSR $32B2 (if so, this gives minutes) C3/3279: 20B232 JSR $32B2 (and this would give hours) C3/327C: A5E7 LDA $E7 (load A with hours) C3/327E: 8D6318 STA $1863 (put hours in $1863) C3/3281: AD1642 LDA $4216 (remainder is excess minutes) C3/3284: 8D6418 STA $1864 (put that in $1864) C3/3287: 800C BRA $3295 C3/3289: AC1B02 LDY $021B (Hours and minutes) C3/328C: 8C6318 STY $1863 (store in SRAM) C3/328F: AD1D02 LDA $021D (Seconds amd frames) C3/3292: 8D6518 STA $1865 (store in SRAM) C3/3295: A920 LDA #$20 C3/3297: 8529 STA $29 (set text color to white) C3/3299: AD6318 LDA $1863 (hours) C3/329C: 20E004 JSR $04E0 (convert leading 0's to spaces) C3/329F: A2FB7C LDX #$7CFB (The position, I believe) C3/32A2: 20B604 JSR $04B6 (2 digits to display) C3/32A5: AD6418 LDA $1864 (minutes) C3/32A8: 20F904 JSR $04F9 (convert minutes to a displayable format) C3/32AB: A2017D LDX #$7D01 C3/32AE: 20B604 JSR $04B6 (JMP fool!, 2 digits to display) C3/32B1: 60 RTS Divider Function (Pass in Y, out comes Y/60 in $E7) (Useful for taking frames and getting seconds, minutes and hours) C3/32B2: 8C0442 STY $4204 C3/32B5: A93C LDA #$3C (60) C3/32B7: 8D0642 STA $4206 C3/32BA: EA NOP (2 cycles) C3/32BB: EA NOP (4 cycles) C3/32BC: EA NOP (6 cycles) C3/32BD: EA NOP (8 cycles) C3/32BE: EA NOP (10 cycles) C3/32BF: EA NOP (12 cycles) C3/32C0: EA NOP (14 cycles) C3/32C1: EA NOP (16 cycles) C3/32C2: EA NOP (18 cycles) C3/32C3: EA NOP (20 cycles) C3/32C4: EA NOP (22 cycles) C3/32C5: EA NOP (24 cycles) C3/32C6: EA NOP (26 cycles) C3/32C7: EA NOP (28 cycles) C3/32C8: AC1442 LDY $4214 (32 or 33 cycles, massive overkill) C3/32CB: 84E7 STY $E7 (unless NMI needs to waste this much time, this could be greatly optimized) C3/32CD: 60 RTS Gold handler, make sure that you don't have more than 9,999,999 C3/32CE: A97F LDA #$7F (127...) C3/32D0: CD6018 CMP $1860 (compare against low byte of gold) C3/32D3: A996 LDA #$96 (150...) C3/32D5: ED6118 SBC $1861 (subtract middle byte of gold, carry will be set/clear depending on above) C3/32D8: A998 LDA #$98 (152...) C3/32DA: ED6218 SBC $1862 (subtract high byte of gold, carry will be set/clear depending on previous SBC) C3/32DD: B00B BCS $32EA (if carry is set, there was no overflow, you have less than 9,999,999 gold) C3/32DF: A07F96 LDY #$967F C3/32E2: 8C6018 STY $1860 C3/32E5: A998 LDA #$98 C3/32E7: 8D6218 STA $1862 (make overall gold 9999999) C3/32EA: 60 RTS C3/32EB: 20220A JSR $0A22 C3/32EE: 4C1B34 JMP $341B C3/32F1: A569 LDA $69 C3/32F3: 30F6 BMI $32EB (branch if no character in slot) C3/32F5: A66D LDX $6D C3/32F7: 8667 STX $67 C3/32F9: A924 LDA #$24 C3/32FB: 8529 STA $29 (set text color to blue) C3/32FD: A24137 LDX #$3741 C3/3300: A00600 LDY #$0006 C3/3303: 20BA69 JSR $69BA (display character 1's "LV," "HP," and "MP") C3/3306: A02739 LDY #$3927 C3/3309: A27815 LDX #$1578 C3/330C: 6448 STZ $48 C3/330E: 202734 JSR $3427 (display character 1's status ailments?) C3/3311: A23137 LDX #$3731 C3/3314: 86F1 STX $F1 (C3/69BA handles this already...) C3/3316: A00400 LDY #$0004 C3/3319: 84EF STY $EF (C3/69BA handles this already...) C3/331B: 20BA69 JSR $69BA (display character 1's "/'s") C3/331E: A01939 LDY #$3919 C3/3321: 20CF34 JSR $34CF (display character name) C3/3324: A22D33 LDX #$332D C3/3327: 206C0C JSR $0C6C (display level, HP, MP, etc) C3/332A: 4C220A JMP $0A22 Data: Positioning for Level, HP, MP for character slot 1 in main menu C3/332D: A739 (level's position) C3/332F: E339 (current HP's position) C3/3331: ED39 (max HP's position) C3/3333: 233A (current MP's position) C3/3335: 2D3A (max MP's position) C3/3337: 204B0A JSR $0A4B C3/333A: 4C1B34 JMP $341B C3/333D: A56A LDA $6A C3/333F: 30F6 BMI $3337 (branch if no character in slot) C3/3341: A66F LDX $6F C3/3343: 8667 STX $67 C3/3345: A924 LDA #$24 C3/3347: 8529 STA $29 (set text color to blue) C3/3349: A24737 LDX #$3747 C3/334C: A00600 LDY #$0006 C3/334F: 20BA69 JSR $69BA (display character 2's "LV," "HP," and "MP") C3/3352: A0A73A LDY #$3AA7 C3/3355: A27845 LDX #$4578 C3/3358: 6448 STZ $48 C3/335A: 202734 JSR $3427 (display character 2's status ailments?) C3/335D: A23537 LDX #$3735 C3/3360: 86F1 STX $F1 (C3/69BA handles this already...) C3/3362: A00400 LDY #$0004 C3/3365: 84EF STY $EF (C3/69BA handles this already...) C3/3367: 20BA69 JSR $69BA (display character 2's "/'s") C3/336A: A0993A LDY #$3A99 C3/336D: 20CF34 JSR $34CF (display character name) C3/3370: A27933 LDX #$3379 C3/3373: 206C0C JSR $0C6C (display level, HP, MP, etc) C3/3376: 4C4B0A JMP $0A4B Data: Positioning for Level, HP, MP for character slot 2 in main menu C3/3379: 273B (level's position) C3/337B: 633B (current HP's position) C3/337D: 6D3B (max HP's position) C3/3380: A33B (current MP's position) C3/3381: AD3B (max MP's position) C3/3384: 20760A JSR $0A76 C3/3386: 4C1B34 JMP $341B C3/3389: A56B LDA $6B C3/338B: 30F6 BMI $3383 (branch if no character in slot) C3/338D: A671 LDX $71 C3/338F: 8667 STX $67 C3/3391: A924 LDA #$24 C3/3393: 8529 STA $29 (set text color to blue) C3/3395: A24D37 LDX #$374D C3/3398: A00600 LDY #$0006 C3/339B: 20BA69 JSR $69BA (display character 3's "LV," "HP," and "MP") C3/339E: A0273C LDY #$3C27 C3/33A1: A27875 LDX #$7578 C3/33A4: 6448 STZ $48 C3/33A6: 202734 JSR $3427 (display character 3's status ailments?) C3/33A9: A23937 LDX #$3739 C3/33AC: 86F1 STX $F1 (C3/69BA handles this already...) C3/33AE: A00400 LDY #$0004 C3/33B1: 84EF STY $EF (C3/69BA handles this already...) C3/33B3: 20BA69 JSR $69BA (display character 3's "/'s") C3/33B6: A0193C LDY #$3C19 C3/33B9: 20CF34 JSR $34CF (display character name) C3/33BC: A2C533 LDX #$33C5 C3/33BF: 206C0C JSR $0C6C (display level, HP, MP, etc) C3/33C2: 4C760A JMP $0A76 Data: Positioning for Level, HP, MP, for character slot 3 in main menu C3/33C5: A73C (level's position) C3/33C7: E33C (current HP's position) C3/33C9: ED3C (max HP's position) C3/33CB: 233D (current MP's position) C3/33CD: 2D3D (max MP's position) C3/33CF: 20A10A JSR $0AA1 C3/33D2: 4C1B34 JMP $341B C3/33D5: A56C LDA $6C C3/33D7: 30F6 BMI $33CF (branch if no character in slot) C3/33D9: A673 LDX $73 C3/33DB: 8667 STX $67 C3/33DD: A924 LDA #$24 C3/33DF: 8529 STA $29 (set text color to blue) C3/33E1: A25337 LDX #$3753 C3/33E4: A00600 LDY #$0006 C3/33E7: 20BA69 JSR $69BA (display character 4's "LV," "HP," and "MP") C3/33EA: A0A73D LDY #$3DA7 C3/33ED: A278A5 LDX #$A578 C3/33F0: 6448 STZ $48 C3/33F2: 202734 JSR $3427 (display character 4's status ailments?) C3/33F5: A23D37 LDX #$373D C3/33F8: 86F1 STX $F1 (C3/69BA handles this already...) C3/33FA: A00400 LDY #$0004 C3/33FD: 84EF STY $EF (C3/69BA handles this already...) C3/33FF: 20BA69 JSR $69BA (display character 4's "/'s") C3/3402: A0993D LDY #$3D99 C3/3405: 20CF34 JSR $34CF (display character name) C3/3408: A21134 LDX #$3411 C3/340B: 206C0C JSR $0C6C (display level, HP, MP, etc) C3/340E: 4CA10A JMP $0AA1 Data: Positioning for Level, HP, MP, for character slot 4 in main menu C3/3411: 273E (level's position) C3/3413: 633E (current HP's position) C3/3415: 6D3E (max HP's position) C3/3417: A33E (current MP's position) C3/3419: AD3E (max MP's position) C3/341B: C220 REP #$20 (16 bit memory/accum.) C3/341D: A9D800 LDA #$00D8 C3/3420: 9F4A347E STA $7E344A,X C3/3424: E220 SEP #$20 (8 bit memory/accum.) C3/3426: 60 RTS C3/3427: 86E7 STX $E7 C3/3429: 201935 JSR $3519 C3/342C: B91400 LDA $0014,Y (status byte 1) C3/342F: 307F BMI $34B0 (branch if dead) C3/3431: 2970 AND #$70 C3/3433: 85E1 STA $E1 (save the other statuses) C3/3435: B91400 LDA $0014,Y (status byte 1) C3/3438: 2907 AND #$07 (keep blind, zombie, and poison) C3/343A: 0A ASL A C3/343B: 85E2 STA $E2 C3/343D: B91500 LDA $0015,Y (status byte 4) C3/3440: 2980 AND #$80 (filter out float) C3/3442: 05E1 ORA $E1 C3/3444: 05E2 ORA $E2 C3/3446: 85E1 STA $E1 C3/3448: F05F BEQ $34A9 (status is normal, so exit out) C3/344A: 64F1 STZ $F1 C3/344C: 64F2 STZ $F2 C3/344E: A20700 LDX #$0007 C3/3451: DA PHX C3/3452: 0A ASL A C3/3453: 9047 BCC $349C C3/3455: 48 PHA C3/3456: A903 LDA #$03 C3/3458: A0427B LDY #$7B42 C3/345B: 207311 JSR $1173 (put C3/7B42 in the queue) C3/345E: A901 LDA #$01 C3/3460: 9F4A367E STA $7E364A,X C3/3464: A548 LDA $48 C3/3466: 9F49367E STA $7E3649,X C3/346A: 9B TXY C3/346B: A6F1 LDX $F1 C3/346D: 8B PHB C3/346E: A97E LDA #$7E C3/3470: 48 PHA C3/3471: AB PLB C3/3472: C220 REP #$20 (16 bit memory/accum.) C3/3474: BF25ECD8 LDA $D8EC25,X (get ailment icons from the VWF?) C3/3478: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/347B: E220 SEP #$20 (8 bit memory/accum.) C3/347D: A5E7 LDA $E7 C3/347F: 99CA33 STA $33CA,Y C3/3482: A5E8 LDA $E8 C3/3484: 994A34 STA $344A,Y C3/3487: 7B TDC C3/3488: 99CB33 STA $33CB,Y C3/348B: 994B34 STA $344B,Y C3/348E: A9D8 LDA #$D8 C3/3490: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/3493: AB PLB C3/3494: 18 CLC C3/3495: A90A LDA #$0A C3/3497: 65E7 ADC $E7 C3/3499: 85E7 STA $E7 C3/349B: 68 PLA C3/349C: E6F1 INC $F1 C3/349E: E6F1 INC $F1 C3/34A0: FA PLX C3/34A1: CA DEX C3/34A2: D0AD BNE $3451 C3/34A4: A920 LDA #$20 C3/34A6: 8529 STA $29 (set text color to white) C3/34A8: 60 RTS C3/34A9: A920 LDA #$20 (status is normal) C3/34AB: 8529 STA $29 (set text color to white) C3/34AD: 4CE534 JMP $34E5 (a BRA would work here, and better yet, since it jumps to an RTS, an RTS would work here too) C3/34B0: A28B9E LDX #$9E8B C3/34B3: 8E8121 STX $2181 C3/34B6: A600 LDX $00 C3/34B8: BF1B37C3 LDA $C3371B,X (get finger positioning data) C3/34BC: 8D8021 STA $2180 C3/34BF: E8 INX C3/34C0: E00800 CPX #$0008 C3/34C3: D0F3 BNE $34B8 C3/34C5: 9C8021 STZ $2180 (end this string) C3/34C8: A928 LDA #$28 C3/34CA: 8529 STA $29 (set text color to gray) C3/34CC: 4CD97F JMP $7FD9 Draw name of character onscreen at 16-bit Y C3/34CF: 201935 JSR $3519 C3/34D2: A20600 LDX #$0006 (length of character name) C3/34D5: B90200 LDA $0002,Y C3/34D8: 8D8021 STA $2180 (write a letter) C3/34DB: C8 INY C3/34DC: CA DEX C3/34DD: D0F6 BNE $34D5 C3/34DF: 9C8021 STZ $2180 (end this string) C3/34E2: 4CD97F JMP $7FD9 (finish the drawing process) C3/34E5: 60 RTS (this is left over from the original japanese routine, which displays class names) Esper name displaying in most menus (this is not used to generate the esper list!) C3/34E6: 201935 JSR $3519 C3/34E9: B91E00 LDA $001E,Y C3/34EC: C9FF CMP #$FF C3/34EE: F018 BEQ $3508 (branch if no esper equipped) C3/34F0: 0A ASL A C3/34F1: 0A ASL A C3/34F2: 0A ASL A C3/34F3: AA TAX C3/34F4: A00800 LDY #$0008 (esper name length) C3/34F7: BFE1F6E6 LDA $E6F6E1,X (Load Esper name) C3/34FB: 8D8021 STA $2180 C3/34FE: E8 INX C3/34FF: 88 DEY C3/3500: D0F5 BNE $34F7 C3/3502: 9C8021 STZ $2180 (end this string) C3/3505: 4CD97F JMP $7FD9 C3/3508: A00800 LDY #$0008 C3/350B: A9FF LDA #$FF C3/350D: 8D8021 STA $2180 (blank esper name) C3/3510: 88 DEY (have we done 8 letters yet?) C3/3511: D0FA BNE $350D (branch if not) C3/3513: 9C8021 STZ $2180 (end this string) C3/3516: 4CD97F JMP $7FD9 Take 16-bit Y and make it position onscreen, then transfer it to A and put it in VRAM C3/3519: A2899E LDX #$9E89 C3/351C: 8E8121 STX $2181 C3/351F: C220 REP #$20 (16 bit memory/accum.) C3/3521: 98 TYA C3/3522: E220 SEP #$20 (8 bit memory/accum.) C3/3524: 8D8021 STA $2180 C3/3527: EB XBA C3/3528: 8D8021 STA $2180 C3/352B: 7B TDC C3/352C: A467 LDY $67 C3/352E: 60 RTS This would appear to be the "fade out screen" routine C3/352F: A980 LDA #$80 C3/3531: 8D0021 STA $2100 (turn the screen off) C3/3534: 201411 JSR $1114 (erase all onscreen sprites) C3/3537: 9C0042 STZ $4200 (turn off NMI, auto joypad read, etc) C3/353A: 9C0B42 STZ $420B (turn off DMA) C3/353D: 9C0C42 STZ $420C (turn off HDMA) C3/3540: 60 RTS C3/3541: A901 LDA #$01 C3/3543: 8544 STA $44 C3/3545: 4C6813 JMP $1368 (trigger NMI) C3/3548: 20390F JSR $0F39 C3/354B: 4C6C32 JMP $326C C3/354E: A600 LDX $00 (from C3/1AC0) C3/3550: A917 LDA #$17 C3/3552: 9F099A7E STA $7E9A09,X C3/3556: E8 INX C3/3557: E0DF00 CPX #$00DF C3/355A: D0F6 BNE $3552 C3/355C: A940 LDA #$40 C3/355E: 8D6043 STA $4360 (set transfer method to...?) C3/3561: A92C LDA #$2C C3/3563: 8D6143 STA $4361 (register address becomes $212C) C3/3566: A07B35 LDY #$357B C3/3569: 8C6243 STY $4362 (set address) C3/356C: A9C3 LDA #$C3 C3/356E: 8D6443 STA $4364 (set bank, C3/357B) C3/3571: A97E LDA #$7E C3/3573: 8D6743 STA $4367 C3/3576: A940 LDA #$40 C3/3578: 0443 TSB $43 (eventually enable channel 6 of HDMA) C3/357A: 60 RTS HDMA transfer table C3/357B: F0 C3/357C: 09 C3/357D: 9A C3/357E: F0 C3/357F: 79 C3/3580: 9A C3/3581: 00 C3/3582: A528 LDA $28 C3/3584: C54B CMP $4B C3/3586: 9015 BCC $359D C3/3588: A903 LDA #$03 C3/358A: A0D435 LDY #$35D4 C3/358D: 207311 JSR $1173 (put C3/35D4 in the queue) C3/3590: 20C135 JSR $35C1 C3/3593: A903 LDA #$03 C3/3595: A01F36 LDY #$361F C3/3598: 207311 JSR $1173 (put C3/361F in the queue) C3/359B: 8015 BRA $35B2 C3/359D: A903 LDA #$03 C3/359F: A0D435 LDY #$35D4 C3/35A2: 207311 JSR $1173 (put C3/35D4 in the queue) C3/35A5: 20B235 JSR $35B2 C3/35A8: A903 LDA #$03 C3/35AA: A01F36 LDY #$361F C3/35AD: 207311 JSR $1173 (put C3/361F in the queue) C3/35B0: 800F BRA $35C1 C3/35B2: 9B TXY C3/35B3: 7B TDC C3/35B4: A528 LDA $28 C3/35B6: AA TAX C3/35B7: BFD035C3 LDA $C335D0,X C3/35BB: BB TYX C3/35BC: 9FCA337E STA $7E33CA,X C3/35C0: 60 RTS C3/35C1: 9B TXY C3/35C2: 7B TDC C3/35C3: A54B LDA $4B C3/35C5: AA TAX C3/35C6: BFD035C3 LDA $C335D0,X C3/35CA: BB TYX C3/35CB: 9FCA337E STA $7E33CA,X C3/35CF: 60 RTS C3/35D0: 0D C3/35D1: 3D C3/35D2: 6D C3/35D3: 9D C3/35D4: AA TAX C3/35D5: 7CD835 JMP ($35D8,X) C3/35D8: DE35 C3/35DA: E335 C3/35DC: 0236 C3/35DE: A62D LDX $2D C3/35E0: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/35E3: A42D LDY $2D C3/35E5: A522 LDA $22 C3/35E7: C90C CMP #$0C C3/35E9: F00F BEQ $35FA C3/35EB: 7B TDC C3/35EC: B9CA33 LDA $33CA,Y C3/35EF: AA TAX C3/35F0: A906 LDA #$06 C3/35F2: 207736 JSR $3677 C3/35F5: 99CA33 STA $33CA,Y C3/35F8: 38 SEC (not done with this queue yet) C3/35F9: 60 RTS C3/35FA: A62D LDX $2D C3/35FC: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/35FF: DECA33 DEC $33CA,X C3/3602: A545 LDA $45 C3/3604: 8908 BIT #$08 C3/3606: F013 BEQ $361B C3/3608: A42D LDY $2D C3/360A: A522 LDA $22 C3/360C: F00F BEQ $361D C3/360E: 7B TDC C3/360F: B9CA33 LDA $33CA,Y C3/3612: AA TAX C3/3613: A917 LDA #$17 C3/3615: 208D36 JSR $368D C3/3618: 99CA33 STA $33CA,Y C3/361B: 38 SEC (not done with this queue yet) C3/361C: 60 RTS C3/361D: 18 CLC (this queue can be removed) C3/361E: 60 RTS C3/361F: AA TAX C3/3620: 7C2336 JMP ($3623,X) C3/3623: 2936 C3/3625: 3736 C3/3627: 5836 C3/3629: A62D LDX $2D C3/362B: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/362E: BDCA33 LDA $33CA,X C3/3631: 18 CLC C3/3632: 692F ADC #$2F C3/3634: 9DCA33 STA $33CA,X C3/3637: A42D LDY $2D C3/3639: A522 LDA $22 C3/363B: C90C CMP #$0C C3/363D: F011 BEQ $3650 C3/363F: 7B TDC C3/3640: B9CA33 LDA $33CA,Y C3/3643: AA TAX C3/3644: A906 LDA #$06 C3/3646: 208D36 JSR $368D C3/3649: 99CA33 STA $33CA,Y C3/364C: C622 DEC $22 C3/364E: 38 SEC (not done with this queue yet) C3/364F: 60 RTS C3/3650: A62D LDX $2D C3/3652: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/3655: FECA33 INC $33CA,X C3/3658: A545 LDA $45 C3/365A: 8908 BIT #$08 C3/365C: F015 BEQ $3673 C3/365E: A42D LDY $2D C3/3660: A522 LDA $22 C3/3662: F011 BEQ $3675 C3/3664: 7B TDC C3/3665: B9CA33 LDA $33CA,Y C3/3668: AA TAX C3/3669: A917 LDA #$17 C3/366B: 207736 JSR $3677 C3/366E: 99CA33 STA $33CA,Y C3/3671: C622 DEC $22 C3/3673: 38 SEC (not done with this queue yet) C3/3674: 60 RTS C3/3675: 18 CLC (this queue can be removed) C3/3676: 60 RTS C3/3677: 9F099A7E STA $7E9A09,X C3/367B: E8 INX C3/367C: 9F099A7E STA $7E9A09,X C3/3680: E8 INX C3/3681: 9F099A7E STA $7E9A09,X C3/3685: E8 INX C3/3686: 9F099A7E STA $7E9A09,X C3/368A: E8 INX C3/368B: 8A TXA C3/368C: 60 RTS C3/368D: 9F099A7E STA $7E9A09,X C3/3691: CA DEX C3/3692: 9F099A7E STA $7E9A09,X C3/3696: CA DEX C3/3697: 9F099A7E STA $7E9A09,X C3/369B: CA DEX C3/369C: 9F099A7E STA $7E9A09,X C3/36A0: CA DEX C3/36A1: 8A TXA C3/36A2: 60 RTS C3/36A3: A902 LDA #$02 (from C3/1AC8, C3/1CA8, C3/1D0B) C3/36A5: 8D5043 STA $4350 (set transfer method to...?) C3/36A8: A912 LDA #$12 C3/36AA: 8D5143 STA $4351 (register address becomes $2112) C3/36AD: A0C236 LDY #$36C2 C3/36B0: 8C5243 STY $4352 (set the address) C3/36B3: A9C3 LDA #$C3 C3/36B5: 8D5443 STA $4354 (set the bank, C3/36C2) C3/36B8: A9C3 LDA #$C3 C3/36BA: 8D5743 STA $4357 C3/36BD: A920 LDA #$20 C3/36BF: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/36C1: 60 RTS HDMA transfer table for main menu text on layer 3 (item, skills, equip, etc) C3/36C2: 0F0000 (15 scanlines, 0 pixel shift) C3/36C5: 0F0300 (15 scanlines, 3 pixel shift) C3/36C8: 0F0400 (15 scanlines, 4 pixel shift) C3/36CB: 0F0500 (15 scanlines, 5 pixel shift) C3/36CE: 0F0600 (15 scanlines, 6 pixel shift) C3/36D1: 0F0700 (15 scanlines, 7 pixel shift) C3/36D4: 0F0800 (15 scanlines, 8 pixel shift) C3/36D7: 0F0900 (15 scanlines, 9 pixel shift) C3/36DA: 070800 (7 scanlines, 8 pixel shift) C3/36DD: 080000 (8 scanlines, 0 pixel shift) C3/36E0: 080000 (8 scanlines, 0 pixel shift) C3/36E3: 180000 (24 scanlines, 0 pixel shift, 167 scanlines total) C3/36E6: 00 (end) C3/36E7: A520 LDA $20 C3/36E8: D004 BNE $36EF C3/36EB: A527 LDA $27 C3/36ED: 8526 STA $26 C3/36EF: C220 REP #$20 (16 bit memory/accum.) C3/36F1: A535 LDA $35 C3/36F3: 18 CLC C3/36F4: 659C ADC $9C C3/36F6: 8535 STA $35 C3/36F8: 8539 STA $39 C3/36FA: 853D STA $3D C3/36FC: E220 SEP #$20 (8 bit memory/accum.) C3/36FE: 60 RTS C3/36FF: A00E37 LDY #$370E C3/3702: 4CFE05 JMP $05FE C3/3705: 202D07 JSR $072D C3/3708: A01337 LDY #$3713 C3/370B: 4C4006 JMP $0640 Hotspot data for status menu C3/370E: 80 00 00 01 04 C3/3713: 9059 (first command, normally "Fight") C3/3715: 9065 (second command, normally skill goes here) C3/3717: 9071 (third command, normally "Magic") C3/3719: 907D (fourth command, normally "Item") Finger positioning data for status menu C3/371B: 96A8 C3/371D: AEA7 C3/371F: 9D9E C3/3121: 9DFF C3/3723: 0438 ("Time") C3/3725: 0F38 ("Steps") C3/3727: 5038 ("Order") C3/3729: CB37 ("Item") C3/372B: D237 ("Skills") C3/372D: E337 ("Relic") C3/372F: EB37 ("Status") C3/3731: 7E37 ("/") C3/3733: 8237 ("/") C3/3735: 9537 ("/") C3/3737: 9937 ("/") C3/3739: AC37 ("/") C3/373B: B037 ("/") C3/373D: C337 ("/") C3/373F: C737 ("/") Data: Used by C3/69BA C3/3741: 6F37 ("LV") C3/3743: 7437 ("HP") C3/3745: 7937 ("MP") C3/3747: 8637 ("LV") C3/3749: 8B37 ("HP") C3/374B: 9037 ("MP") C3/374D: 9D37 ("LV") C3/374F: A237 ("HP") C3/3751: A737 ("MP") C3/3753: B437 ("LV") C3/3755: B937 ("HP") C3/3757: BE37 ("MP") C3/3759: DB37 ("Equip") C3/375B: F437 ("Config") Data: Used by C3/69BA C3/375D: 1C38 ("Yes") C3/375F: 2238 ("No") C3/3761: 2738 ("This") C3/3763: 2E38 ("data?") Data: Used by C3/69BA C3/3765: 1C38 ("Yes") C3/3767: 2238 ("No") C3/3769: 3638 ("Erasing") C3/376B: 4038 ("data.") C3/376D: 4838 ("Okay?") C3/376F: 9D398B9500 (LV) C3/3774: DD39878F00 (HP) C3/3779: 1D3A8C8F00 (MP) C3/377E: EB39C000 C3/3782: 2B3AC000 C3/3786: 1D3B8B9500 (LV) C3/378B: 5D3B878F00 (HP) C3/3790: 9D3B8C8F00 (MP) C3/3795: 6B3BC000 C3/3799: AB3BC000 C3/379D: 9D3C8B9500 (LV) C3/37A2: DD3C878F00 (HP) C3/37A7: 1D3D8C8F00 (MP) C3/37AC: EB3CC000 C3/37B0: 2B3DC000 C3/37B4: 1D3E8B9500 (LV) C3/37B9: 5D3E878F00 (HP) C3/37BE: 9D3E8C8F00 (MP) C3/37C3: 6B3EC000 C3/37C7: AB3EC000 C3/37CB: 397988AD9EA600 ("Item") C3/37D2: B97992A4A2A5A5AC00 ("Skills") C3/37DB: 397A84AAAEA2A900 ("Equip") C3/37E3: B97A919EA5A29C00 ("Relic") C3/37EB: 397B92AD9AADAEAC00 ("Status") C3/37F4: B97B82A8A79FA2A000 ("Config") C3/37FD: 397C929AAF9E00 ("Save") C3/3804: BB7C93A2A69E00 ("Time") C3/380B: FF7CC100 (":") C3/380F: B77D92AD9EA9AC00 ("Steps") C3/3817: 777E86A900 ("Gp") C3/381C: BD7A989EAC00 ("Yes") C3/3822: 3D7B8DA800 ("No") C3/3827: 377993A1A2AC00 ("This") C3/382E: B7799D9AAD9ABF00 ("data?") C3/3836: 377984AB9AACA2A7A000 ("Erasing") C3/3840: B7799D9AAD9AC500 ("data.") C3/3848: 377A8EA49AB2BF00 ("Okay?") C3/3850: 3D818EAB9D9EAB00 ("Order") C3/3858: A06738 LDY #$3867 C3/385B: 4CFE05 JMP $05FE C3/385E: 202D07 JSR $072D C3/3861: A06C38 LDY #$386C C3/3864: 4C4006 JMP $0640 Hotspot data for config screen 1 C3/3867: 81 00 00 01 09 Finger positioning for config screen 1 C3/386C: 6029 C3/386E: 6039 C3/3870: 6049 C3/3872: 6059 C3/3874: 6069 C3/3876: 6079 C3/3878: 6089 C3/387A: 6099 C3/387C: 60A9 C3/387E: A08D38 LDY #$388D C3/3881: 4CFE05 JMP $05FE C3/3884: 202D07 JSR $072D C3/3887: A09238 LDY #$3892 C3/388A: 4C4006 JMP $0640 Hotspot data for config screen 2 C3/388D: 81 00 00 01 06 Finger positioning data for config screen 2 C3/3892: 6029 C3/3894: 6069 C3/3896: 6079 C3/3898: 6099 C3/389A: 60A9 C3/389C: 60B9 The config screen (both parts) C3/389E: A902 LDA #$02 C3/38A0: 8D0721 STA $2107 C3/38A3: A0FBFF LDY #$FFFB C3/38A6: 843F STY $3F C3/38A8: 20286A JSR $6A28 C3/38AB: A0E239 LDY #$39E2 C3/38AE: 204103 JSR $0341 (draw config screen) C3/38B1: A0E639 LDY #$39E6 C3/38B4: 204103 JSR $0341 (draw window that holds "Config") C3/38B7: 20520E JSR $0E52 C3/38BA: 205E39 JSR $395E C3/38BD: 20156A JSR $6A15 C3/38C0: 20196A JSR $6A19 C3/38C3: 203C6A JSR $6A3C C3/38C6: 20416A JSR $6A41 C3/38C9: A92C LDA #$2C C3/38CB: 8529 STA $29 (set text color to blue) C3/38CD: A0A149 LDY #$49A1 C3/38D0: 20F902 JSR $02F9 (display "Config") C3/38D3: A924 LDA #$24 C3/38D5: 8529 STA $29 (set text color to blue) C3/38D7: A29349 LDX #$4993 C3/38DA: A00E00 LDY #$000E C3/38DD: 20BA69 JSR $69BA (display "Bat. Mode," "Bat. Speed," "Msg. Speed," "Cmd. Set," "Gauge," "Sound," and "Reequip") C3/38E0: A924 LDA #$24 C3/38E2: 8529 STA $29 (set text color to blue) C3/38E4: A20349 LDX #$4903 C3/38E7: A00400 LDY #$0004 C3/38EA: 20BA69 JSR $69BA (display "Controller" and "Cursor") C3/38ED: A920 LDA #$20 C3/38EF: 8529 STA $29 (set text color to white) C3/38F1: A20749 LDX #$4907 C3/38F4: A00400 LDY #$0004 C3/38F7: 20BA69 JSR $69BA (display "Fast" and "Slow") C3/38FA: 208C3B JSR $3B8C (display battle mode settings) C3/38FD: 20B73B JSR $3BB7 (display battle speed settings) C3/3900: 20F23B JSR $3BF2 (display message speed settings) C3/3903: 20333C JSR $3C33 (display battle window settings) C3/3906: 205C3C JSR $3C5C (display gauge settings) C3/3909: 20853C JSR $3C85 (display sound settings) C3/390C: 20B03C JSR $3CB0 (display menu position settings) C3/390F: 20DB3C JSR $3CDB (display reequipping settings) C3/3912: 20063D JSR $3D06 (display current controller settings) C3/3915: A924 LDA #$24 C3/3917: 8529 STA $29 (set text color to blue) C3/3919: A21C4A LDX #$4A1C C3/391C: A00600 LDY #$0006 C3/391F: 20BA69 JSR $69BA (display "Mag.Order," "Window," and "Color") C3/3922: 205039 JSR $3950 C3/3925: A920 LDA #$20 C3/3927: 8529 STA $29 (set text color to white) C3/3929: A2284A LDX #$4A28 C3/392C: A00C00 LDY #$000C C3/392F: 20BA69 JSR $69BA (display "R," "G," "B," "A..," "B..," and "C..") C3/3932: 20FD3F JSR $3FFD C3/3935: 20EA40 JSR $40EA (display window background) C3/3938: 203341 JSR $4133 C3/393B: 20C341 JSR $41C3 C3/393E: 20F539 JSR $39F5 C3/3941: 20280E JSR $0E28 C3/3944: 206E0E JSR $0E6E C3/3947: A901 LDA #$01 C3/3949: A08039 LDY #$3980 C3/394C: 207311 JSR $1173 (put C3/3980 in the queue) C3/394F: 60 RTS C3/3950: A930 LDA #$30 C3/3952: 8529 STA $29 C3/3954: A2224A LDX #$4A22 C3/3957: A00600 LDY #$0006 C3/395A: 20BA69 JSR $69BA (display what looks like the ATB bars for the color component changing) C3/395D: 60 RTS C3/395E: A600 LDX $00 C3/3960: A940 LDA #$40 C3/3962: 8D2121 STA $2121 C3/3965: C220 REP #$20 (16 bit memory/accum.) C3/3967: BF80E8D8 LDA $D8E880,X C3/396B: 9FC9307E STA $7E30C9,X C3/396F: E220 SEP #$20 (8 bit memory/accum.) C3/3971: 8D2221 STA $2122 C3/3974: EB XBA C3/3975: 8D2221 STA $2122 C3/3978: E8 INX C3/3979: E8 INX C3/397A: E02000 CPX #$0020 C3/397D: D0E6 BNE $3965 C3/397F: 60 RTS C3/3980: AA TAX C3/3981: 7C8439 JMP ($3984,X) C3/3984: 8839 C3/3986: AB39 C3/3988: A62D LDX $2D C3/398A: C220 REP #$20 (16 bit memory/accum.) C3/398C: A9CB39 LDA #$39CB C3/398F: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/3992: A97800 LDA #$0078 C3/3995: 9DCA33 STA $33CA,X C3/3998: A91800 LDA #$0018 C3/399B: 9D4A34 STA $344A,X C3/399E: E220 SEP #$20 (8 bit memory/accum.) C3/39A0: A9C3 LDA #$C3 C3/39A2: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/39A5: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/39A8: 200612 JSR $1206 C3/39AB: A42D LDY $2D C3/39AD: A54A LDA $4A C3/39AF: F004 BEQ $39B5 C3/39B1: A902 LDA #$02 C3/39B3: 8001 BRA $39B6 C3/39B5: 7B TDC C3/39B6: AA TAX C3/39B7: C220 REP #$20 (16 bit memory/accum.) C3/39B9: BFC739C3 LDA $C339C7,X C3/39BD: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/39C0: E220 SEP #$20 (8 bit memory/accum.) C3/39C2: 202112 JSR $1221 (draw the sprites!) C3/39C5: 38 SEC (not done with this queue yet) C3/39C6: 60 RTS OAM pointers, giant arrow for both config screens C3/39C7: CB39 C3/39C9: D439 OAM data: format is pointer, timer, pointer, timer, pointer, end C3/39CB: 5BB4 C3/39CD: 10 C3/39CE: DD39 C3/39D0: 10 C3/39D1: 5BB4 C3/39D3: FF C3/39D4: 5BB4 C3/39D5: 10 C3/39D7: 61B4 C3/39D9: 10 C3/39DA: 5BB4 C3/39DC: FF C3/39DD: 01 C3/39DE: 80D0033E (position 80,D0, 03 is ?, giant arrow pointing down) Window sizes and positions C3/39E2: 0B591C16 (config screen) C3/39E6: B7580602 (window that holds "Config") C3/39EA: A0FB00 LDY #$00FB C3/39ED: 8437 STY $37 C3/39EF: 207E38 JSR $387E (get hotspot data for config screen 2) C3/39F2: 4C8738 JMP $3887 (get finger positioning data for config screen 2) C3/39F5: A0FBFF LDY #$FFFB C3/39F8: 8437 STY $37 C3/39FA: 205838 JSR $3858 (get hotspot data for config screen 1) C3/39FD: 4C6138 JMP $3861 (get finger positioning data for config screen 1) C3/3A00: A520 LDA $20 (from C3/027B, the massive jump table; $26 = #$50) C3/3A02: F011 BEQ $3A15 C3/3A04: A54A LDA $4A C3/3A06: D014 BNE $3A1C C3/3A08: C220 REP #$20 (16 bit memory/accum.) C3/3A0A: A537 LDA $37 C3/3A0C: 18 CLC C3/3A0D: 691000 ADC #$0010 C3/3A10: 8537 STA $37 C3/3A12: E220 SEP #$20 (8 bit memory/accum.) C3/3A14: 60 RTS C3/3A15: A901 LDA #$01 C3/3A17: 854A STA $4A C3/3A19: 20EA39 JSR $39EA C3/3A1C: A90E LDA #$0E C3/3A1E: 8526 STA $26 (execute at C3/22C5) C3/3A20: 60 RTS C3/3A21: A520 LDA $20 (from C3/027D, the massive jump table; $26 = #$51) C3/3A23: F011 BEQ $3A36 C3/3A25: A54A LDA $4A C3/3A27: F01E BEQ $3A47 C3/3A29: C220 REP #$20 (16 bit memory/accum.) C3/3A2B: A537 LDA $37 C3/3A2D: 38 SEC C3/3A2E: E91000 SBC #$0010 C3/3A31: 8537 STA $37 C3/3A33: E220 SEP #$20 (8 bit memory/accum.) C3/3A35: 60 RTS C3/3A36: 644A STZ $4A C3/3A38: A0FBFF LDY #$FFFB C3/3A3B: 8437 STY $37 C3/3A3D: 205838 JSR $3858 C3/3A40: A908 LDA #$08 C3/3A42: 854E STA $4E (set the starting hotspot when pressing up to go back to config screen 1) C3/3A44: 206138 JSR $3861 C3/3A47: A90E LDA #$0E C3/3A49: 8526 STA $26 (execute at C3/22C5) C3/3A4B: 60 RTS C3/3A4C: A901 LDA #$01 (from C3/1C82) C3/3A4E: 8D5043 STA $4350 C3/3A51: A928 LDA #$28 C3/3A53: 8D5143 STA $4351 (register address becomes $2128) C3/3A56: A07A3A LDY #$3A7A C3/3A59: 8C5243 STY $4352 (set address) C3/3A5C: A9C3 LDA #$C3 C3/3A5E: 8D5443 STA $4354 (set bank, C3/3A7A) C3/3A61: A9C3 LDA #$C3 C3/3A63: 8D5743 STA $4357 C3/3A66: A920 LDA #$20 C3/3A68: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/3A6A: 60 RTS C3/3A6B: A920 LDA #$20 C3/3A6D: 1443 TRB $43 (eventually disable channel 5 of HDMA) C3/3A6F: A908 LDA #$08 C3/3A71: 8D2821 STA $2128 C3/3A74: A9F7 LDA #$F7 C3/3A76: 8D2921 STA $2129 C3/3A79: 60 RTS HDMA transfer table C3/3A7A: 27FFFF C3/3A7D: 5008F7 C3/3A80: 5008F7 C3/3A83: 10FFFF C3/3A86: 00 (end) C3/3A87: A00078 LDY #$7800 C3/3A8A: 8414 STY $14 C3/3A8C: AD4E1D LDA $1D4E C3/3A8F: 20303B JSR $3B30 (paint wallpaper for "Save Game" ?) C3/3A92: AD4E1D LDA $1D4E C3/3A95: A26000 LDX #$0060 C3/3A98: 205B3B JSR $3B5B C3/3A9B: A0001C LDY #$1C00 C3/3A9E: 4C2603 JMP $0326 C3/3AA1: A0007A LDY #$7A00 C3/3AA4: 8414 STY $14 C3/3AA6: A491 LDY $91 C3/3AA8: F006 BEQ $3AB0 C3/3AAA: AF4E6730 LDA $30674E (if calculations are correct, this loads $1D4E of save slot 1) C3/3AAE: 8001 BRA $3AB1 C3/3AB0: 7B TDC C3/3AB1: 20303B JSR $3B30 (paint wallpaper of save file 1) C3/3AB4: 208814 JSR $1488 C3/3AB7: A02018 LDY #$1820 C3/3ABA: 4C2603 JMP $0326 C3/3ABD: A0007C LDY #$7C00 C3/3AC0: 8414 STY $14 C3/3AC2: A493 LDY $93 C3/3AC4: F006 BEQ $3ACC C3/3AC6: AF4E7130 LDA $30714E (if calculations are correct, this loads $1D4E of save slot 2) C3/3ACA: 8001 BRA $3ACD C3/3ACC: 7B TDC C3/3ACD: 20303B JSR $3B30 (paint wallpaper of save file 2) C3/3AD0: 208814 JSR $1488 C3/3AD3: A04014 LDY #$1440 C3/3AD6: 4C2603 JMP $0326 C3/3AD9: A0007E LDY #$7E00 C3/3ADC: 8414 STY $14 C3/3ADE: A495 LDY $95 C3/3AE0: F006 BEQ $3AE8 C3/3AE2: AF4E7B30 LDA $307B4E (if calculations are correct, this loads $1D4E of save slot 3) C3/3AE6: 8001 BRA $3AE9 C3/3AE8: 7B TDC C3/3AE9: 20303B JSR $3B30 (paint wallpaper of save file 3) C3/3AEC: 208814 JSR $1488 C3/3AEF: A06010 LDY #$1060 C3/3AF2: 4C2603 JMP $0326 C3/3AF5: A491 LDY $91 C3/3AF7: F006 BEQ $3AFF C3/3AF9: AF4E6730 LDA $30674E (if calculations are correct, this loads $1D4E of save slot 1) C3/3AFD: 8001 BRA $3B00 C3/3AFF: 7B TDC C3/3B00: A24000 LDX #$0040 C3/3B03: 205B3B JSR $3B5B C3/3B06: 4CD214 JMP $14D2 C3/3B09: A493 LDY $93 C3/3B0B: F006 BEQ $3B13 C3/3B0D: AF4E7130 LDA $30714E (if calculations are correct, this loads $1D4E of save slot 2) C3/3B11: 8001 BRA $3B14 C3/3B13: 7B TDC C3/3B14: A22000 LDX #$0020 C3/3B17: 205B3B JSR $3B5B C3/3B1A: 4CD214 JMP $14D2 C3/3B1D: A495 LDY $95 C3/3B1F: F006 BEQ $3B27 C3/3B21: AF4E7B30 LDA $307B4E (if calculations are correct, this loads $1D4E of save slot 3) C3/3B25: 8001 BRA $3B28 C3/3B27: 7B TDC C3/3B28: A600 LDX $00 C3/3B2A: 205B3B JSR $3B5B C3/3B2D: 4CD214 JMP $14D2 Paint the correct wallpaper design for save files on the save screen C3/3B30: 290F AND #$0F C3/3B32: 85E0 STA $E0 C3/3B34: 64E1 STZ $E1 C3/3B36: A00000 LDY #$0000 C3/3B39: 8416 STY $16 C3/3B3B: A9ED LDA #$ED C3/3B3D: 8518 STA $18 C3/3B3F: C220 REP #$20 (16 bit memory/accum.) C3/3B41: 7B TDC C3/3B42: A4E0 LDY $E0 C3/3B44: F008 BEQ $3B4E C3/3B46: 18 CLC C3/3B47: 698003 ADC #$0380 C3/3B4A: C6E0 DEC $E0 C3/3B4C: 80F4 BRA $3B42 C3/3B4E: 18 CLC C3/3B4F: 6516 ADC $16 C3/3B51: 8516 STA $16 C3/3B53: E220 SEP #$20 (8 bit memory/accum.) C3/3B55: A00004 LDY #$0400 C3/3B58: 8412 STY $12 C3/3B5A: 60 RTS C3/3B5B: 290F AND #$0F C3/3B5D: 85E0 STA $E0 C3/3B5F: DA PHX C3/3B60: A900 LDA #$00 C3/3B62: 85E9 STA $E9 C3/3B64: 64E1 STZ $E1 C3/3B66: C220 REP #$20 (16 bit memory/accum.) C3/3B68: A9571D LDA #$1D57 C3/3B6B: A4E0 LDY $E0 C3/3B6D: F008 BEQ $3B77 C3/3B6F: 18 CLC C3/3B70: 690E00 ADC #$000E C3/3B73: C6E0 DEC $E0 C3/3B75: 80F4 BRA $3B6B C3/3B77: 85E7 STA $E7 C3/3B79: E220 SEP #$20 (8 bit memory/accum.) C3/3B7B: A400 LDY $00 C3/3B7D: FA PLX C3/3B7E: B7E7 LDA [$E7],Y C3/3B80: 9FCB307E STA $7E30CB,X C3/3B84: C8 INY C3/3B85: E8 INX C3/3B86: C00E00 CPY #$000E C3/3B89: D0F3 BNE $3B7E C3/3B8B: 60 RTS C3/3B8C: AD4D1D LDA $1D4D C3/3B8F: 2908 AND #$08 C3/3B91: F009 BEQ $3B9C C3/3B93: A928 LDA #$28 (set text color to gray) C3/3B95: 20A53B JSR $3BA5 C3/3B98: A920 LDA #$20 (set text color to white) C3/3B9A: 8012 BRA $3BAE C3/3B9C: A920 LDA #$20 (set text color to white) C3/3B9E: 20A53B JSR $3BA5 C3/3BA1: A928 LDA #$28 (set text color to gray) C3/3BA3: 8009 BRA $3BAE C3/3BA5: 8529 STA $29 C3/3BA7: A0F149 LDY #$49F1 C3/3BAA: 20F902 JSR $02F9 (display "Active") C3/3BAD: 60 RTS C3/3BAE: 8529 STA $29 (set text color) C3/3BB0: A01849 LDY #$4918 C3/3BB3: 20F902 JSR $02F9 (display "Wait") C3/3BB6: 60 RTS C3/3BB7: A928 LDA #$28 C3/3BB9: 8529 STA $29 (set text color to gray) C3/3BBB: A06E49 LDY #$496E C3/3BBE: 20F902 JSR $02F9 (display "1 2 3 4 5 6") C3/3BC1: A920 LDA #$20 C3/3BC3: 8529 STA $29 (set text color to white) C3/3BC5: 7B TDC C3/3BC6: AD4D1D LDA $1D4D C3/3BC9: 2907 AND #$07 C3/3BCB: 0A ASL A C3/3BCC: AA TAX C3/3BCD: C220 REP #$20 (16 bit memory/accum.) C3/3BCF: BFE63BC3 LDA $C33BE6,X C3/3BD3: 85F7 STA $F7 C3/3BD5: E220 SEP #$20 (8 bit memory/accum.) C3/3BD7: AD4D1D LDA $1D4D C3/3BDA: 2907 AND #$07 C3/3BDC: 18 CLC C3/3BDD: 69B5 ADC #$B5 C3/3BDF: 85F9 STA $F9 C3/3BE1: 64FA STZ $FA C3/3BE3: 4C1641 JMP $4116 Data: positions for white value for battle speed (IE, the one currently set) C3/3BE6: 253A (1) C3/3BE8: 293A (2) C3/3BEA: 2D3A (3) C3/3BEC: 313A (4) C3/3BEE: 353A (5) C3/3BF0: 393A (6) C3/3BF2: A928 LDA #$28 C3/3BF4: 8529 STA $29 (set text color to gray) C3/3BF6: A07C49 LDY #$497C C3/3BF9: 20F902 JSR $02F9 (display "1 2 3 4 5 6") C3/3BFC: A920 LDA #$20 C3/3BFE: 8529 STA $29 (set text color to white) C3/3C00: 7B TDC C3/3C01: AD4D1D LDA $1D4D C3/3C04: 2970 AND #$70 C3/3C06: 4A LSR A C3/3C07: 4A LSR A C3/3C08: 4A LSR A C3/3C09: AA TAX C3/3C0A: C220 REP #$20 (16 bit memory/accum.) C3/3C0C: BF273CC3 LDA $C33C27,X C3/3C10: 85F7 STA $F7 C3/3C12: E220 SEP #$20 (8 bit memory/accum.) C3/3C14: AD4D1D LDA $1D4D C3/3C17: 2970 AND #$70 C3/3C19: 4A LSR A C3/3C1A: 4A LSR A C3/3C1B: 4A LSR A C3/3C1C: 4A LSR A C3/3C1D: 18 CLC C3/3C1E: 69B5 ADC #$B5 C3/3C20: 85F9 STA $F9 C3/3C22: 64FA STZ $FA C3/3C24: 4C1641 JMP $4116 Data: positions of white values for message speed (IE, the one currently set) C3/3C27: A53A (1) C3/3C29: A93A (2) C3/3C2B: AD3A (3) C3/3C2E: B13A (4) C3/3C2F: B53A (5) C3/3C31: B93A (6) C3/3C33: AD4D1D LDA $1D4D C3/3C34: 3009 BMI $3C41 C3/3C38: A928 LDA #$28 (set text color to gray) C3/3C3A: 204A3C JSR $3C4A C3/3C3D: A920 LDA #$20 (set text color to white) C3/3C3F: 8012 BRA $3C53 C3/3C41: A920 LDA #$20 (set text color to white) C3/3C43: 204A3C JSR $3C4A C3/3C46: A928 LDA #$28 (set text color to gray) C3/3C48: 8009 BRA $3C53 C3/3C4A: 8529 STA $29 (set text color) C3/3C4C: A02D49 LDY #$492D C3/3C4F: 20F902 JSR $02F9 (display "Short") C3/3C52: 60 RTS C3/3C53: 8529 STA $29 (set text color) C3/3C55: A0FA49 LDY #$49FA C3/3C58: 20F902 JSR $02F9 (display "Window") C3/3C5B: 60 RTS C3/3C5C: AD4E1D LDA $1D4E C3/3C5F: 1009 BPL $3C6A C3/3C61: A928 LDA #$28 (set text color to gray) C3/3C63: 20733C JSR $3C73 C3/3C66: A920 LDA #$20 (set text color to white) C3/3C68: 8012 BRA $3C7C C3/3C6A: A920 LDA #$20 (set text color to white) C3/3C6C: 20733C JSR $3C73 C3/3C6F: A928 LDA #$28 (set text color to gray) C3/3C71: 8009 BRA $3C7C C3/3C73: 8529 STA $29 (set text color) C3/3C75: A03549 LDY #$4935 C3/3C78: 20F902 JSR $02F9 (display "On") C3/3C7B: 60 RTS C3/3C7C: 8529 STA $29 (set text color) C3/3C7E: A03A49 LDY #$493A C3/3C81: 20F902 JSR $02F9 (display "Off") C3/3C84: 60 RTS C3/3C85: AD4E1D LDA $1D4E C3/3C88: 2920 AND #$20 C3/3C8A: F009 BEQ $3C95 C3/3C8C: A928 LDA #$28 (set text color to gray) C3/3C8E: 209E3C JSR $3C9E C3/3C91: A920 LDA #$20 (set text color to white) C3/3C93: 8012 BRA $3CA7 C3/3C95: A920 LDA #$20 (set text color to white) C3/3C97: 209E3C JSR $3C9E C3/3C9A: A928 LDA #$28 (set text color to gray) C3/3C9C: 8009 BRA $3CA7 C3/3C9E: 8529 STA $29 (set text color) C3/3CA0: A04049 LDY #$4940 C3/3CA3: 20F902 JSR $02F9 (display "Stereo") C3/3CA6: 60 RTS C3/3CA7: 8529 STA $29 (set text color) C3/3CA9: A04949 LDY #$4949 C3/3CAC: 20F902 JSR $02F9 (display "Mono") C3/3CAF: 60 RTS C3/3CB0: AD4E1D LDA $1D4E C3/3CB3: 2940 AND #$40 C3/3CB5: F009 BEQ $3CC0 C3/3CB7: A928 LDA #$28 (set text color to gray) C3/3CB9: 20C93C JSR $3CC9 C3/3CBC: A920 LDA #$20 (set text color to white) C3/3CBE: 8012 BRA $3CD2 C3/3CC0: A920 LDA #$20 (set text color to white) C3/3CC2: 20C93C JSR $3CC9 C3/3CC5: A928 LDA #$28 (set text color to gray) C3/3CC7: 8009 BRA $3CD2 C3/3CC9: 8529 STA $29 (set text color) C3/3CCB: A0034A LDY #$4A03 C3/3CCE: 20F902 JSR $02F9 (display "Reset") C3/3CD1: 60 RTS C3/3CD2: 8529 STA $29 (set text color) C3/3CD4: A05049 LDY #$4950 C3/3CD7: 20F902 JSR $02F9 (display "Memory") C3/3CDA: 60 RTS C3/3CDB: AD4E1D LDA $1D4E C3/3CDE: 2910 AND #$10 C3/3CE0: F009 BEQ $3CEB C3/3CE2: A928 LDA #$28 (set text color to gray) C3/3CE4: 20F43C JSR $3CF4 C3/3CE7: A920 LDA #$20 (set text color to white) C3/3CE9: 8012 BRA $3CFD C3/3CEB: A920 LDA #$20 (set text color to white) C3/3CED: 20F43C JSR $3CF4 C3/3CF0: A928 LDA #$28 (set text color to gray) C3/3CF2: 8009 BRA $3CFD C3/3CF4: 8529 STA $29 (set text color) C3/3CF6: A05949 LDY #$4959 C3/3CF9: 20F902 JSR $02F9 (display "Optimum") C3/3CFC: 60 RTS C3/3CFD: 8529 STA $29 (set text color) C3/3CFF: A00B4A LDY #$4A0B C3/3D02: 20F902 JSR $02F9 (display "Empty") C3/3D05: 60 RTS C3/3D06: AD541D LDA $1D54 C3/3D09: 1009 BPL $3D14 C3/3D0B: A928 LDA #$28 (set text color to gray) C3/3D0D: 201D3D JSR $3D1D C3/3D10: A920 LDA #$20 (set text color to white) C3/3D12: 8012 BRA $3D26 C3/3D14: A920 LDA #$20 (set text color to white) C3/3D16: 201D3D JSR $3D1D C3/3D19: A928 LDA #$28 (set text color to gray) C3/3D1B: 8009 BRA $3D26 C3/3D1D: 8529 STA $29 (set text color) C3/3D1F: A0134A LDY #$4A13 C3/3D22: 20F902 JSR $02F9 (display "Single") C3/3D25: 60 RTS C3/3D26: 8529 STA $29 (set text color) C3/3D28: A06349 LDY #$4963 C3/3D2B: 20F902 JSR $02F9 (display "Multiple") C3/3D2E: 60 RTS C3/3D2F: 7B TDC C3/3D30: A54B LDA $4B C3/3D32: 0A ASL A C3/3D33: AA TAX C3/3D34: A54A LDA $4A C3/3D36: F008 BEQ $3D40 C3/3D38: DA PHX C3/3D39: 20A30E JSR $0EA3 C3/3D3C: FA PLX C3/3D3D: 7C553D JMP ($3D55,X) C3/3D40: 7C433D JMP ($3D43,X) Pointers for functions in the Config menu C3/3D43: 613D (Battle mode) C3/3D45: 7A3D (Battle speed) C3/3D47: AB3D (Message speed) C3/3D49: E83D (Command set) C3/3D4B: 013E (Reequip) C3/3D4D: 1A3E (Sound) C3/3D4F: 4E3E (Cursor) C3/3D51: 6D3E (Gauge) C3/3D53: 863E (Controller setting) C3/3D55: 9F3E (Magic order) C3/3D57: CD3E (Window) C3/3D59: 013F (Color (font vs. window components)) C3/3D5B: 3C3F (Change window component color) C3/3D5D: 5B3F (Change window component color) C3/3D5F: 7A3F (Change window component color) ----------------------------------------------- Battle Mode setting (Active vs. Wait) C3/3D61: 20A30E JSR $0EA3 C3/3D64: A50B LDA $0B C3/3D66: 8901 BIT #$01 C3/3D68: D008 BNE $3D72 C3/3D6A: A908 LDA #$08 C3/3D6C: 1C4D1D TRB $1D4D C3/3D6F: 4C8C3B JMP $3B8C C3/3D72: A908 LDA #$08 C3/3D74: 0C4D1D TSB $1D4D C3/3D77: 4C8C3B JMP $3B8C ----------------------------------------------- Battle Speed setting C3/3D7A: 20A30E JSR $0EA3 C3/3D7D: AD4D1D LDA $1D4D C3/3D80: 2907 AND #$07 C3/3D82: 85E0 STA $E0 C3/3D84: A50B LDA $0B C3/3D86: 8901 BIT #$01 C3/3D88: F00B BEQ $3D95 C3/3D8A: A5E0 LDA $E0 C3/3D8C: C905 CMP #$05 C3/3D8E: F004 BEQ $3D94 C3/3D90: E6E0 INC $E0 C3/3D92: 800A BRA $3D9E C3/3D94: 60 RTS C3/3D95: A5E0 LDA $E0 C3/3D97: F004 BEQ $3D9D C3/3D99: C6E0 DEC $E0 C3/3D9B: 8001 BRA $3D9E C3/3D9D: 60 RTS C3/3D9E: AD4D1D LDA $1D4D C3/3DA1: 29F8 AND #$F8 C3/3DA3: 05E0 ORA $E0 C3/3DA5: 8D4D1D STA $1D4D C3/3DA8: 4CB73B JMP $3BB7 ----------------------------------------------- Message Speed setting C3/3DAB: 20A30E JSR $0EA3 C3/3DAE: AD4D1D LDA $1D4D C3/3DB1: 2970 AND #$70 C3/3DB3: 4A LSR A C3/3DB4: 4A LSR A C3/3DB5: 4A LSR A C3/3DB6: 4A LSR A C3/3DB7: 85E0 STA $E0 C3/3DB9: A50B LDA $0B C3/3DBB: 8901 BIT #$01 C3/3DBD: F00B BEQ $3DCA C3/3DBF: A5E0 LDA $E0 C3/3DC1: C905 CMP #$05 C3/3DC3: F004 BEQ $3DC9 C3/3DC5: E6E0 INC $E0 C3/3DC7: 800A BRA $3DD3 C3/3DC9: 60 RTS C3/3DCA: A5E0 LDA $E0 C3/3DCC: F004 BEQ $3DD2 C3/3DCE: C6E0 DEC $E0 C3/3DD0: 8001 BRA $3DD3 C3/3DD2: 60 RTS C3/3DD3: A5E0 LDA $E0 C3/3DD5: 0A ASL A C3/3DD6: 0A ASL A C3/3DD7: 0A ASL A C3/3DD8: 0A ASL A C3/3DD9: 85E0 STA $E0 C3/3DDB: AD4D1D LDA $1D4D C3/3DDE: 298F AND #$8F C3/3DE0: 05E0 ORA $E0 C3/3DE2: 8D4D1D STA $1D4D C3/3DE5: 4CF23B JMP $3BF2 ----------------------------------------------- Command set setting C3/3DE8: 20A30E JSR $0EA3 C3/3DEB: A50B LDA $0B C3/3DED: 8901 BIT #$01 C3/3DEF: D008 BNE $3DF9 C3/3DF1: A980 LDA #$80 C3/3DF3: 1C4D1D TRB $1D4D (Clear short command list (makes it go to long list) setting) C3/3DF6: 4C333C JMP $3C33 C3/3DF9: A980 LDA #$80 C3/3DFB: 0C4D1D TSB $1D4D (Set short command list setting) C3/3DFE: 4C333C JMP $3C33 ----------------------------------------------- Reequip Mode setting C3/3E01: 20A30E JSR $0EA3 C3/3E04: A50B LDA $0B C3/3E06: 8901 BIT #$01 C3/3E08: D008 BNE $3E12 C3/3E0A: A980 LDA #$80 C3/3E0C: 1C4E1D TRB $1D4E (Clear reequip party setting (makes it go to empty)) C3/3E0F: 4C5C3C JMP $3C5C C3/3E12: A980 LDA #$80 C3/3E14: 0C4E1D TSB $1D4E (Set optimum party setting) C3/3E17: 4C5C3C JMP $3C5C ----------------------------------------------- Sound Mode setting C3/3E1A: A50B LDA $0B C3/3E1C: 8901 BIT #$01 C3/3E1E: D00F BNE $3E2F C3/3E20: 7B TDC C3/3E21: 203F3E JSR $3E3F C3/3E24: A920 LDA #$20 C3/3E26: 1C4E1D TRB $1D4E (Set sound stereo setting) C3/3E29: 20A30E JSR $0EA3 C3/3E2C: 4C853C JMP $3C85 C3/3E2F: A9FF LDA #$FF C3/3E31: 203F3E JSR $3E3F C3/3E34: A920 LDA #$20 C3/3E36: 0C4E1D TSB $1D4E (Set sound mono setting) C3/3E39: 20A30E JSR $0EA3 C3/3E3C: 4C853C JMP $3C85 C3/3E3F: 8F011300 STA $001301 C3/3E43: A9F3 LDA #$F3 C3/3E45: 8F001300 STA $001300 C3/3E49: 220400C5 JSL $C50004 C3/3E4D: 60 RTS ----------------------------------------------- Cursor Mode setting C3/3E4E: 20A30E JSR $0EA3 C3/3E51: A50B LDA $0B C3/3E53: 8901 BIT #$01 C3/3E55: D00B BNE $3E62 C3/3E57: 20F748 JSR $48F7 C3/3E5A: A940 LDA #$40 C3/3E5C: 1C4E1D TRB $1D4E (Clear cursor memory setting) C3/3E5F: 4CB03C JMP $3CB0 C3/3E62: A940 LDA #$40 C3/3E64: 0C4E1D TSB $1D4E (Set cursor memory setting) C3/3E67: 206870 JSR $7068 C3/3E6A: 4CB03C JMP $3CB0 ----------------------------------------------- Gauge Mode setting C3/3E6D: 20A30E JSR $0EA3 C3/3E70: A50B LDA $0B C3/3E72: 8901 BIT #$01 C3/3E74: D008 BNE $3E7E C3/3E76: A910 LDA #$10 C3/3E78: 1C4E1D TRB $1D4E (Clear gauge off setting (makes gauge be on)) C3/3E7B: 4CDB3C JMP $3CDB C3/3E7E: A910 LDA #$10 C3/3E80: 0C4E1D TSB $1D4E (Set gauge off setting) C3/3E83: 4CDB3C JMP $3CDB ----------------------------------------------- Controller Mode setting C3/3E86: 20A30E JSR $0EA3 C3/3E89: A50B LDA $0B C3/3E8B: 8901 BIT #$01 C3/3E8D: D008 BNE $3E97 C3/3E8F: A980 LDA #$80 C3/3E91: 1C541D TRB $1D54 C3/3E94: 4C063D JMP $3D06 C3/3E97: A980 LDA #$80 C3/3E99: 0C541D TSB $1D54 C3/3E9C: 4C063D JMP $3D06 ----------------------------------------------- Magic Order Mode setting C3/3E9F: AD541D LDA $1D54 C3/3EA2: 2907 AND #$07 C3/3EA4: 85E0 STA $E0 C3/3EA6: A50B LDA $0B C3/3EA8: 8901 BIT #$01 C3/3EAA: F00B BEQ $3EB7 C3/3EAC: A5E0 LDA $E0 C3/3EAE: C905 CMP #$05 C3/3EB0: F004 BEQ $3EB6 C3/3EB2: E6E0 INC $E0 C3/3EB4: 800A BRA $3EC0 C3/3EB6: 60 RTS C3/3EB7: A5E0 LDA $E0 C3/3EB9: F004 BEQ $3EBF C3/3EBB: C6E0 DEC $E0 C3/3EBD: 8001 BRA $3EC0 C3/3EBF: 60 RTS C3/3EC0: AD541D LDA $1D54 C3/3EC3: 29F8 AND #$F8 C3/3EC5: 05E0 ORA $E0 C3/3EC7: 8D541D STA $1D54 C3/3ECA: 4CFD3F JMP $3FFD ----------------------------------------------- Window selection setting C3/3ECD: AD4E1D LDA $1D4E C3/3ED0: 290F AND #$0F C3/3ED2: 85E0 STA $E0 C3/3ED4: A50B LDA $0B C3/3ED6: 8901 BIT #$01 C3/3ED8: F00B BEQ $3EE5 C3/3EDA: A5E0 LDA $E0 C3/3EDC: C907 CMP #$07 C3/3EDE: F004 BEQ $3EE4 C3/3EE0: E6E0 INC $E0 C3/3EE2: 800A BRA $3EEE C3/3EE4: 60 RTS C3/3EE5: A5E0 LDA $E0 C3/3EE7: F004 BEQ $3EED C3/3EE9: C6E0 DEC $E0 C3/3EEB: 8001 BRA $3EEE C3/3EED: 60 RTS C3/3EEE: AD4E1D LDA $1D4E C3/3EF1: 29F0 AND #$F0 C3/3EF3: 05E0 ORA $E0 C3/3EF5: 8D4E1D STA $1D4E C3/3EF8: 20EA40 JSR $40EA C3/3EFB: 20873A JSR $3A87 C3/3EFE: 4CC341 JMP $41C3 ----------------------------------------------- Color (Font vs. Window components) settting C3/3F01: AD541D LDA $1D54 C3/3F04: 2938 AND #$38 C3/3F06: 4A LSR A C3/3F07: 4A LSR A C3/3F08: 4A LSR A C3/3F09: 85E0 STA $E0 C3/3F0B: A50B LDA $0B C3/3F0D: 8901 BIT #$01 C3/3F0F: F00B BEQ $3F1C C3/3F11: A5E0 LDA $E0 C3/3F13: C907 CMP #$07 C3/3F15: F004 BEQ $3F1B C3/3F17: E6E0 INC $E0 C3/3F19: 800A BRA $3F25 C3/3F1B: 60 RTS C3/3F1C: A5E0 LDA $E0 C3/3F1E: F004 BEQ $3F24 C3/3F20: C6E0 DEC $E0 C3/3F22: 8001 BRA $3F25 C3/3F24: 60 RTS C3/3F25: A5E0 LDA $E0 C3/3F27: 0A ASL A C3/3F28: 0A ASL A C3/3F29: 0A ASL A C3/3F2A: 85E0 STA $E0 C3/3F2C: AD541D LDA $1D54 C3/3F2F: 29C7 AND #$C7 C3/3F31: 05E0 ORA $E0 C3/3F33: 8D541D STA $1D54 C3/3F36: 203341 JSR $4133 C3/3F39: 4CC341 JMP $41C3 ----------------------------------------------- Change Font or Window component's red value C3/3F3C: 20FE41 JSR $41FE C3/3F3F: A50B LDA $0B C3/3F41: 8901 BIT #$01 C3/3F43: F00A BEQ $3F4F C3/3F45: A5E2 LDA $E2 C3/3F47: C91F CMP #$1F C3/3F49: F00A BEQ $3F55 C3/3F4B: E6E2 INC $E2 C3/3F4D: 8006 BRA $3F55 C3/3F4F: A5E2 LDA $E2 C3/3F51: F002 BEQ $3F55 C3/3F53: C6E2 DEC $E2 C3/3F55: 202142 JSR $4221 C3/3F58: 4CC43F JMP $3FC4 ----------------------------------------------- Change Font or Window component's green value C3/3F5B: 20FE41 JSR $41FE C3/3F5E: A50B LDA $0B C3/3F60: 8901 BIT #$01 C3/3F62: F00A BEQ $3F6E C3/3F64: A5E1 LDA $E1 C3/3F66: C91F CMP #$1F C3/3F68: F00A BEQ $3F74 C3/3F6A: E6E1 INC $E1 C3/3F6C: 8006 BRA $3F74 C3/3F6E: A5E1 LDA $E1 C3/3F70: F002 BEQ $3F74 C3/3F72: C6E1 DEC $E1 C3/3F74: 202142 JSR $4221 C3/3F77: 4CC43F JMP $3FC4 ----------------------------------------------- Change Font or Window compenent's blue value C3/3F7A: 20FE41 JSR $41FE C3/3F7D: A50B LDA $0B C3/3F7F: 8901 BIT #$01 C3/3F81: F00A BEQ $3F8D C3/3F83: A5E0 LDA $E0 C3/3F85: C91F CMP #$1F C3/3F87: F00A BEQ $3F93 C3/3F89: E6E0 INC $E0 C3/3F8B: 8006 BRA $3F93 C3/3F8D: A5E0 LDA $E0 C3/3F8F: F002 BEQ $3F93 C3/3F91: C6E0 DEC $E0 C3/3F93: 202142 JSR $4221 C3/3F96: 4CC43F JMP $3FC4 ----------------------------------------------- C3/3F99: C220 REP #$20 (16 bit memory/accum.) C3/3F9B: AD551D LDA $1D55 (font color) C3/3F9E: 8F4F307E STA $7E304F C3/3FA2: 8F73307E STA $7E3073 C3/3FA6: 8F77307E STA $7E3077 C3/3FAA: E220 SEP #$20 (8 bit memory/accum.) C3/3FAC: 60 RTS C3/3FAD: A600 LDX $00 C3/3FAF: C220 REP #$20 (16 bit memory/accum.) C3/3FB1: B9571D LDA $1D57,Y C3/3FB4: 9F2B317E STA $7E312B,X C3/3FB8: C8 INY C3/3FB9: C8 INY C3/3FBA: E8 INX C3/3FBB: E8 INX C3/3FBC: E00E00 CPX #$000E C3/3FBF: D0F0 BNE $3FB1 C3/3FC1: E220 SEP #$20 (8 bit memory/accum.) C3/3FC3: 60 RTS C3/3FC4: 7B TDC C3/3FC5: AD4E1D LDA $1D4E C3/3FC8: 290F AND #$0F C3/3FCA: 8D0242 STA $4202 C3/3FCD: A90E LDA #$0E C3/3FCF: 8D0342 STA $4203 C3/3FD2: AD541D LDA $1D54 C3/3FD5: 2938 AND #$38 C3/3FD7: F019 BEQ $3FF2 C3/3FD9: 4A LSR A C3/3FDA: 4A LSR A C3/3FDB: 18 CLC C3/3FDC: 6D1642 ADC $4216 C3/3FDF: AA TAX C3/3FE0: A59A LDA $9A C3/3FE2: 9D551D STA $1D55,X C3/3FE5: A59B LDA $9B C3/3FE7: 9D561D STA $1D56,X C3/3FEA: AC1642 LDY $4216 C3/3FED: 20AD3F JSR $3FAD C3/3FF0: 8008 BRA $3FFA C3/3FF2: A49A LDY $9A C3/3FF4: 8C551D STY $1D55 C3/3FF7: 20993F JSR $3F99 C3/3FFA: 4CC341 JMP $41C3 Setting magic order C3/3FFD: A928 LDA #$28 C3/3FFF: 8529 STA $29 (set text color to gray) C3/4001: A0A54A LDY #$4AA5 C3/4004: 20F902 JSR $02F9 (display "1 2 3 4 5 6") C3/4007: A920 LDA #$20 C3/4009: 8529 STA $29 (set text color to white) C3/400B: 7B TDC C3/400C: AD541D LDA $1D54 C3/400F: 2907 AND #$07 C3/4011: 0A ASL A C3/4012: AA TAX C3/4013: C220 REP #$20 (16 bit memory/accum.) C3/4015: BF2F40C3 LDA $C3402F,X C3/4019: 85F7 STA $F7 C3/401B: E220 SEP #$20 (8 bit memory/accum.) C3/401D: AD541D LDA $1D54 C3/4020: 2907 AND #$07 C3/4022: 18 CLC C3/4023: 69B5 ADC #$B5 C3/4025: 85F9 STA $F9 C3/4027: 64FA STZ $FA C3/4029: 201641 JSR $4116 C3/402C: 4C3B40 JMP $403B (BRA would work here) Positions of white values for magic order selection C3/402F: A541 C3/4031: A941 C3/4033: AD41 C3/4035: B141 C3/4037: B541 C3/4039: B941 C3/403B: 7B TDC C3/403C: 8F959E7E STA $7E9E95 C3/4040: 7B TDC C3/4041: AD541D LDA $1D54 C3/4044: 2907 AND #$07 C3/4046: 0A ASL A C3/4047: 0A ASL A C3/4048: AA TAX C3/4049: A00300 LDY #$0003 C3/404C: 5A PHY C3/404D: DA PHX C3/404E: 205840 JSR $4058 C3/4051: FA PLX C3/4052: 7A PLY C3/4053: E8 INX C3/4054: 88 DEY C3/4055: D0F5 BNE $404C C3/4057: 60 RTS Display the magic order C3/4058: 7B TDC (from C3/404E) C3/4059: BFD240C3 LDA $C340D2,X C3/405D: AA TAX C3/405E: BFD34AC3 LDA $C34AD3,X C3/4062: 8F8B9E7E STA $7E9E8B C3/4066: BFD44AC3 LDA $C34AD4,X C3/406A: 8F8C9E7E STA $7E9E8C C3/406E: BFD54AC3 LDA $C34AD5,X C3/4072: 8F8D9E7E STA $7E9E8D C3/4076: BFD64AC3 LDA $C34AD6,X C3/407A: 8F8E9E7E STA $7E9E8E C3/407E: BFD74AC3 LDA $C34AD7,X C3/4082: 8F8F9E7E STA $7E9E8F C3/4086: BFD84AC3 LDA $C34AD8,X C3/408A: 8F909E7E STA $7E9E90 C3/408E: BFD94AC3 LDA $C34AD9,X C3/4092: 8F919E7E STA $7E9E91 C3/4096: BFDA4AC3 LDA $C34ADA,X C3/409A: 8F929E7E STA $7E9E92 C3/409E: BFDB4AC3 LDA $C34ADB,X C3/40A2: 8F939E7E STA $7E9E93 C3/40A6: BFDC4AC3 LDA $C34ADC,X C3/40AA: 8F949E7E STA $7E9E94 C3/40AE: 7B TDC C3/40AF: 88 DEY C3/40B0: 98 TYA C3/40B1: 0A ASL A C3/40B2: AA TAX C3/40B3: C220 REP #$20 (16 bit memory/accum.) C3/40B5: BFCC40C3 LDA $C340CC,X C3/40B9: 8F899E7E STA $7E9E89 C3/40BD: E220 SEP #$20 (8 bit memory/accum.) C3/40BF: A0899E LDY #$9E89 C3/40C2: 84E7 STY $E7 C3/40C4: A97E LDA #$7E C3/40C6: 85E9 STA $E9 C3/40C8: 20FF02 JSR $02FF C3/40CB: 60 RTS C3/40CC: 2943 C3/40CE: A942 C3/40D0: 2942 Data: changing magic order in config screen 2 C3/40D2: 00 0A C3/40D4: 14 00 C3/40D6: 00 14 C3/40D8: 0A 00 C3/40DA: 0A 14 C3/409C: 00 00 C3/409E: 0A 00 C3/40E0: 14 00 C3/40E2: 14 00 C3/40E4: 0A 00 C3/40E6: 14 0A C3/40E8: 00 00 Setting the window background C3/40EA: A928 LDA #$28 C3/40EC: 8529 STA $29 (set text color to gray) C3/40EE: A0934A LDY #$4A93 C3/40F1: 20F902 JSR $02F9 (display "1 2 3 4 5 6 7 8") C3/40F4: A920 LDA #$20 C3/40F6: 8529 STA $29 (set text color to white) C3/40F8: 7B TDC C3/40F9: AD4E1D LDA $1D4E C3/40FC: 290F AND #$0F C3/40FE: 0A ASL A C3/40FF: AA TAX C3/4100: C220 REP #$20 (16 bit memory/accum.) C3/4102: BF2341C3 LDA $C34123,X C3/4106: 85F7 STA $F7 C3/4108: E220 SEP #$20 (8 bit memory/accum.) C3/410A: AD4E1D LDA $1D4E C3/410D: 290F AND #$0F C3/410F: 18 CLC C3/4110: 69B5 ADC #$B5 C3/4112: 85F9 STA $F9 C3/4114: 64FA STZ $FA C3/4116: A0F700 LDY #$00F7 C3/4119: 84E7 STY $E7 C3/411B: A900 LDA #$00 C3/411D: 85E9 STA $E9 C3/411F: 20FF02 JSR $02FF (this is normally for text, but this appears to be setting the background) C3/4122: 60 RTS Positions of white values for window background selection C3/4123: A543 C3/4125: A943 C3/4127: AD43 C3/4129: B143 C3/412B: B543 C3/412D: B943 C3/413F: BD43 C3/4131: C143 C3/4133: A93C LDA #$3C C3/4134: 8529 STA $29 (set text color to...) C3/4137: A0C94A LDY #$4AC9 C3/413A: 20F902 JSR $02F9 (display box that holds font palette tweaker?) C3/413D: A09D41 LDY #$419D C3/4140: 20F902 JSR $02F9 (display " ") C3/4143: 7B TDC C3/4144: AD541D LDA $1D54 C3/4147: 2938 AND #$38 C3/4149: F026 BEQ $4171 C3/414B: 4A LSR A C3/414C: 4A LSR A C3/414D: AA TAX C3/414E: A920 LDA #$20 C3/4150: 8529 STA $29 (set text color to white) C3/4152: C220 REP #$20 (16 bit memory/accum.) C3/4154: BF8D41C3 LDA $C3418D,X C3/4158: 85E7 STA $E7 C3/415A: E220 SEP #$20 (8 bit memory/accum.) C3/415C: A9C3 LDA #$C3 C3/415E: 85E9 STA $E9 C3/4160: 20FF02 JSR $02FF C3/4163: A928 LDA #$28 C3/4165: 8529 STA $29 (set text color to gray) C3/4167: 207F41 JSR $417F C3/416A: A920 LDA #$20 C3/416C: 8529 STA $29 (set text color to white) C3/416E: 4C8641 JMP $4186 C3/4171: A920 LDA #$20 C3/4173: 8529 STA $29 (set text color to white) C3/4175: 207F41 JSR $417F C3/4178: A928 LDA #$28 C3/417A: 8529 STA $29 C3/417C: 4C8641 JMP $4186 C3/417F: A0B34A LDY #$4AB3 C3/4182: 20F902 JSR $02F9 (display "Font") C3/4185: 60 RTS C3/4186: A0BA4A LDY #$4ABA C3/4189: 20F902 JSR $02F9 (display "Window") C3/418C: 60 RTS C3/418D: 9D41 (position of " ") C3/418F: A741 (position of character $D4) C3/4191: AB41 (position of character $D4) C3/4193: AF41 (position of character $D4) C3/4195: B341 (position of character $D4) C3/4197: B741 (position of character $D4) C3/4199: BB41 (position of character $D4) C3/419B: BF41 (position of character $D4) C3/419D: F544FFFFFFFFFFFFFF00 (" ") C3/41A7: F544D400 C3/41AB: F744D400 C3/41AF: F944D400 C3/41B3: FB44D400 C3/41B7: FD44D400 C3/41BB: FF44D400 C3/41BF: 0145D400 C3/41C3: 205039 JSR $3950 C3/41C6: 7B TDC C3/41C7: AD4E1D LDA $1D4E C3/41CA: 290F AND #$0F C3/41CC: 8D0242 STA $4202 C3/41CF: A90E LDA #$0E C3/41D1: 8D0342 STA $4203 C3/41D4: AD541D LDA $1D54 C3/41D7: 2938 AND #$38 C3/41D9: F00C BEQ $41E7 C3/41DB: 4A LSR A C3/41DC: 4A LSR A C3/41DD: 18 CLC C3/41DE: 6D1642 ADC $4216 C3/41E1: AA TAX C3/41E2: BC551D LDY $1D55,X C3/41E5: 8003 BRA $41EA C3/41E7: AC551D LDY $1D55 C3/41EA: 849A STY $9A C3/41EC: 20FE41 JSR $41FE C3/41EF: 206342 JSR $4263 C3/41F2: 20FE41 JSR $41FE C3/41F5: 205042 JSR $4250 C3/41F8: 20FE41 JSR $41FE C3/41FB: 4C3D42 JMP $423D (BRA would work here) C3/41FE: A49A LDY $9A C3/4200: 84E7 STY $E7 C3/4202: A5E7 LDA $E7 C3/4204: 291F AND #$1F C3/4206: 85E2 STA $E2 C3/4208: A5E8 LDA $E8 C3/420A: 297C AND #$7C C3/420C: 4A LSR A C3/420D: 4A LSR A C3/420E: 85E0 STA $E0 C3/4210: C220 REP #$20 (16 bit memory/accum.) C3/4212: A5E7 LDA $E7 C3/4214: 29E003 AND #$03E0 C3/4217: 4A LSR A C3/4218: 4A LSR A C3/4219: 4A LSR A C3/421A: 4A LSR A C3/421B: 4A LSR A C3/421C: E220 SEP #$20 (8 bit memory/accum.) C3/421E: 85E1 STA $E1 C3/4220: 60 RTS C3/4221: A5E0 LDA $E0 C3/4223: 0A ASL A C3/4224: 0A ASL A C3/4225: 85E8 STA $E8 C3/4227: A5E2 LDA $E2 C3/4229: 85E7 STA $E7 C3/422B: 7B TDC C3/422C: A5E1 LDA $E1 C3/422E: C220 REP #$20 (16 bit memory/accum.) C3/4230: 0A ASL A C3/4231: 0A ASL A C3/4232: 0A ASL A C3/4233: 0A ASL A C3/4234: 0A ASL A C3/4235: 05E7 ORA $E7 C3/4237: 8D9A00 STA $009A C3/423A: E220 SEP #$20 (8 bit memory/accum.) C3/423C: 60 RTS C3/423D: C220 REP #$20 (16 bit memory/accum.) C3/423F: A92F45 LDA #$452F C3/4242: 8F899E7E STA $7E9E89 C3/4246: E220 SEP #$20 (8 bit memory/accum.) C3/4248: A5E2 LDA $E2 C3/424A: A22945 LDX #$4529 C3/424D: 4C7642 JMP $4276 C3/4250: C220 REP #$20 (16 bit memory/accum.) C3/4252: A9AF45 LDA #$45AF C3/4255: 8F899E7E STA $7E9E89 C3/4259: E220 SEP #$20 (8 bit memory/accum.) C3/425B: A5E1 LDA $E1 C3/425D: A2A945 LDX #$45A9 C3/4260: 4C7642 JMP $4276 C3/4263: C220 REP #$20 (16 bit memory/accum.) C3/4265: A92F46 LDA #$462F C3/4268: 8F899E7E STA $7E9E89 C3/426C: E220 SEP #$20 (8 bit memory/accum.) C3/426E: A5E0 LDA $E0 C3/4270: A22946 LDX #$4629 C3/4273: 4C7642 JMP $4276 C3/4276: 48 PHA C3/4277: 48 PHA C3/4278: DA PHX C3/4279: 20E004 JSR $04E0 C3/427C: FA PLX C3/427D: A920 LDA #$20 C3/427F: 8529 STA $29 C3/4281: 20B604 JSR $04B6 C3/4284: A28B9E LDX #$9E8B C3/4287: 8E8121 STX $2181 C3/428A: 68 PLA C3/428B: EB XBA C3/428C: A500 LDA $00 C3/428E: EB XBA C3/428F: 4A LSR A C3/4290: 4A LSR A C3/4291: AA TAX C3/4292: F008 BEQ $429C C3/4294: A9F8 LDA #$F8 (looks like the full bar character in font) C3/4296: 8D8021 STA $2180 C3/4299: CA DEX C3/429A: D0F8 BNE $4294 C3/429C: 68 PLA C3/429D: 2903 AND #$03 C3/429F: AA TAX C3/42A0: BFBE42C3 LDA $C342BE,X C3/42A4: 8D8021 STA $2180 C3/42A7: 9C8021 STZ $2180 (end this string) C3/42AA: A930 LDA #$30 C3/42AC: 8529 STA $29 C3/42AE: 4CB142 JMP $42B1 (JMP $7FD9 fool!) C3/42B1: A0899E LDY #$9E89 (JMP $7FD9 fool!) C3/42B4: 84E7 STY $E7 C3/42B6: A97E LDA #$7E C3/42B8: 85E9 STA $E9 C3/42BA: 20FF02 JSR $02FF C3/42BD: 60 RTS Data for above C3/42BE: F0F2 C3/42C0: F4F6 C3/42C2: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/42C3: 202C44 JSR $442C C3/42C7: 206F46 JSR $466F C3/42CA: 20B645 JSR $45B6 (get our finger positioning data) C3/42CE: 20BF45 JSR $45BF (get our hotspot data) C3/42D1: 20B007 JSR $07B0 (finger OAM initiating) C3/42D4: A901 LDA #$01 C3/42D6: 8526 STA $26 C3/42D8: A948 LDA #$48 C3/42DA: 8527 STA $27 C3/42DC: 4C4135 JMP $3541 C3/42DF: 20BC45 JSR $45BC C3/42E2: A508 LDA $08 C3/42E4: 8980 BIT #$80 (did you press A?) C3/42E6: F028 BEQ $4310 (branch if not, BPL...) C3/42E8: 7B TDC C3/42E9: A54B LDA $4B C3/42EB: C904 CMP #$04 C3/42ED: F037 BEQ $4326 C3/42EF: AA TAX C3/42F0: B569 LDA $69,X C3/42F2: 3016 BMI $430A C3/42F4: 20B20E JSR $0EB2 (makes the click sound) C3/42F7: A54E LDA $4E C3/42F9: 855E STA $5E C3/42FB: A54B LDA $4B C3/42FD: 8564 STA $64 C3/42FF: 20D445 JSR $45D4 C3/4302: 20DA45 JSR $45DA C3/4305: A962 LDA #$62 C3/4307: 8526 STA $26 C3/4309: 60 RTS C3/430A: 20C00E JSR $0EC0 (makes the buzzer sound) C3/430D: 205D30 JSR $305D (mosaic effect) C3/4310: A509 LDA $09 C3/4312: 8910 BIT #$10 (did you press start?) C3/4314: D006 BNE $431C (branch if so) C3/4316: A509 LDA $09 (A already holds the contents of $09) C3/4318: 8980 BIT #$80 (did you press B?) C3/431A: F009 BEQ $4325 (branch if not, BPL...) C3/431C: 20A90E JSR $0EA9 C3/431F: A90D LDA #$0D C3/4321: 8527 STA $27 (queue up to execute at C3/1C7D) C3/4323: 6426 STZ $26 (fade out) C3/4325: 60 RTS C3/4326: 20B20E JSR $0EB2 (makes the click sound) C3/4329: 20390F JSR $0F39 C3/432C: 20D043 JSR $43D0 C3/432F: 20D843 JSR $43D8 C3/4332: 20E143 JSR $43E1 C3/4335: 4CEA43 JMP $43EA C3/4338: 200246 JSR $4602 C3/433B: A508 LDA $08 C3/433D: 8980 BIT #$80 (did you press A?) C3/433F: F018 BEQ $4359 (branch if not, BPL...) C3/4341: 20B20E JSR $0EB2 (makes the click sound) C3/4344: A54B LDA $4B C3/4346: 8528 STA $28 C3/4348: 20062F JSR $2F06 C3/434B: A963 LDA #$63 C3/434D: 8526 STA $26 (execute at C3/4376) C3/434F: 7B TDC C3/4350: A564 LDA $64 C3/4352: 0A ASL A C3/4353: AA TAX C3/4354: B46D LDY $6D,X C3/4356: 8467 STY $67 C3/4358: 60 RTS C3/4359: A509 LDA $09 C3/435B: 8980 BIT #$80 (did you press B?) C3/435D: F016 BEQ $4375 (branch if not, BPL...) C3/435F: 20A90E JSR $0EA9 C3/4362: 20B645 JSR $45B6 C3/4365: A55E LDA $5E C3/4367: 854E STA $4E C3/4369: 20BF45 JSR $45BF C3/436C: A54E LDA $4E C3/436E: 855E STA $5E C3/4370: A948 LDA #$48 C3/4372: 8526 STA $26 C3/4374: 60 RTS C3/4375: 60 RTS C3/4376: 200246 JSR $4602 C3/4379: A508 LDA $08 C3/437B: 8980 BIT #$80 (did you press A?) C3/437D: F03E BEQ $43BD (branch if not, BPL...) C3/437F: 20B20E JSR $0EB2 (makes the click sound) C3/4382: 7B TDC C3/4383: A54B LDA $4B C3/4385: C221 REP #$21 C3/4387: 6567 ADC $67 C3/4389: A8 TAY C3/438A: 5A PHY C3/438B: E220 SEP #$20 (8 bit memory/accum.) C3/438D: B91600 LDA $0016,Y C3/4390: 85E0 STA $E0 C3/4392: 7B TDC C3/4393: A528 LDA $28 C3/4395: C221 REP #$21 C3/4397: 6567 ADC $67 C3/4399: A8 TAY C3/439A: E220 SEP #$20 (8 bit memory/accum.) C3/439C: B91600 LDA $0016,Y C3/439F: 85E1 STA $E1 C3/43A1: A5E0 LDA $E0 C3/43A3: 991600 STA $0016,Y C3/43A6: 7A PLY C3/43A7: A5E1 LDA $E1 C3/43A9: 991600 STA $0016,Y C3/43AC: 20B444 JSR $44B4 C3/43AF: 20ED44 JSR $44ED C3/43B2: 202645 JSR $4526 C3/43B5: 205F45 JSR $455F C3/43B8: 20390F JSR $0F39 C3/43BB: 8009 BRA $43C6 C3/43BD: A509 LDA $09 C3/43BF: 8980 BIT #$80 (did you press B?) C3/43C1: F00C BEQ $43CF (branch if not, BPL...) C3/43C3: 20A90E JSR $0EA9 C3/43C6: A905 LDA #$05 C3/43C8: 1446 TRB $46 C3/43CA: A962 LDA #$62 C3/43CC: 8526 STA $26 (execute at C3/4338) C3/43CE: 60 RTS C3/43CF: 60 RTS C3/43D0: A600 LDX $00 C3/43D2: 20F343 JSR $43F3 C3/43D5: 4CB444 JMP $44B4 C3/43D8: A20200 LDX #$0002 C3/43DB: 20F343 JSR $43F3 C3/43DE: 4CED44 JMP $44ED C3/43E1: A20400 LDX #$0004 C3/43E4: 20F343 JSR $43F3 C3/43E7: 4C2645 JMP $4526 C3/43EA: A20600 LDX #$0006 C3/43ED: 20F343 JSR $43F3 C3/43F0: 4C5F45 JMP $455F C3/43F3: B46D LDY $6D,X C3/43F5: F033 BEQ $442A C3/43F7: 7B TDC C3/43F8: B90000 LDA $0000,Y (character ID) C3/43FB: C90C CMP #$0C (is it Gogo?) C3/43FD: F02C BEQ $442B (branch if so) C3/43FF: 8D0242 STA $4202 C3/4402: A916 LDA #$16 C3/4404: 8D0342 STA $4203 C3/4407: EA NOP C3/4408: EA NOP C3/4409: EA NOP C3/440A: EA NOP C3/440B: AE1642 LDX $4216 C3/440E: BFA27CED LDA $ED7CA2,X (Load startup command 1) C3/4412: 991600 STA $0016,Y (Store startup command 1) C3/4415: BFA37CED LDA $ED7CA3,X C3/4419: 991700 STA $0017,Y C3/441C: BFA47CED LDA $ED7CA4,X C3/4420: 991800 STA $0018,Y C3/4423: BFA57CED LDA $ED7CA5,X C3/4427: 991900 STA $0019,Y C3/442A: 60 RTS C3/442B: 60 RTS "Short" command list rearranging menu C3/442C: 20286A JSR $6A28 C3/442F: A09044 LDY #$4490 C3/4432: 204103 JSR $0341 (draw character 1 command window) C3/4435: A09444 LDY #$4494 C3/4438: 204103 JSR $0341 (draw character 2 command window) C3/443B: A09844 LDY #$4498 C3/443E: 204103 JSR $0341 (draw character 3 command window) C3/4441: A09C44 LDY #$449C C3/4444: 204103 JSR $0341 (draw character 4 command window) C3/4447: A0A044 LDY #$44A0 C3/444A: 204103 JSR $0341 (draw character 1 name window) C3/444D: A0A444 LDY #$44A4 C3/4450: 204103 JSR $0341 (draw character 2 name window) C3/4453: A0A844 LDY #$44A8 C3/4456: 204103 JSR $0341 (draw character 3 name window) C3/4459: A0AC44 LDY #$44AC C3/445C: 204103 JSR $0341 (draw character 4 name window) C3/445F: A0B044 LDY #$44B0 C3/4462: 204103 JSR $0341 (draw window that holds "Arrange") C3/4465: 20520E JSR $0E52 C3/4468: 20156A JSR $6A15 C3/446B: 20196A JSR $6A19 C3/446E: 203C6A JSR $6A3C C3/4471: 20416A JSR $6A41 C3/4474: A930 LDA #$30 C3/4476: 8529 STA $29 (set text color to blue) C3/4478: A0F14A LDY #$4AF1 C3/447B: 20F902 JSR $02F9 (display "Arrange") C3/447E: 20B444 JSR $44B4 C3/4481: 20ED44 JSR $44ED C3/4484: 202645 JSR $4526 C3/4487: 205F45 JSR $455F C3/448A: 20280E JSR $0E28 C3/448D: 4C6E0E JMP $0E6E Window data C3/4490: 1F591204 (window that holds character 1 commands) C3/4494: 9F5A1204 (window that holds character 2 commands) C3/4498: 1F5C1204 (window that holds character 3 commands) C3/449C: 9F5D1204 (window that holds character 4 commands) C3/44A0: 0B590804 (window that holds character 1 name) C3/44A4: 8B5A0804 (window that holds character 2 name) C3/44A8: 0B5C0804 (window that holds character 3 name) C3/44AC: 8B5D0804 (window that holds character 4 name) C3/44B0: 8B580801 (window that holds "Arrange") C3/44B4: A569 LDA $69 C3/44B6: 3034 BMI $44EC C3/44B8: 220600C2 JSL $C20006 (equipment check function) C3/44BC: A66D LDX $6D C3/44BE: 8667 STX $67 C3/44C0: A930 LDA #$30 C3/44C2: 8529 STA $29 C3/44C4: A08F79 LDY #$798F C3/44C7: 20CF34 JSR $34CF C3/44CA: A920 LDA #$20 C3/44CC: 8529 STA $29 (set text color to white) C3/44CE: A00F7A LDY #$7A0F C3/44D1: 20E534 JSR $34E5 C3/44D4: A0AD79 LDY #$79AD C3/44D7: 209845 JSR $4598 C3/44DA: A0237A LDY #$7A23 C3/44DD: 209E45 JSR $459E C3/44E0: A0377A LDY #$7A37 C3/44E3: 20A545 JSR $45A5 C3/44E6: A0AD7A LDY #$7AAD C3/44E9: 20AD45 JSR $45AD (JMP fool!) C3/44EC: 60 RTS C3/44ED: A56A LDA $6A C3/44EF: 3034 BMI $4525 C3/44F1: 220600C2 JSL $C20006 (equipment check function) C3/44F5: A66F LDX $6F C3/44F7: 8667 STX $67 C3/44F9: A930 LDA #$30 C3/44FB: 8529 STA $29 C3/44FD: A04F7B LDY #$7B4F C3/4500: 20CF34 JSR $34CF C3/4503: A920 LDA #$20 C3/4505: 8529 STA $29 (set text color to white) C3/4507: A0CF7B LDY #$7BCF C3/450A: 20E534 JSR $34E5 C3/450D: A06D7B LDY #$7B6D C3/4510: 209845 JSR $4598 C3/4513: A0E37B LDY #$7BE3 C3/4516: 209E45 JSR $459E C3/4519: A0F77B LDY #$7BF7 C3/451C: 20A545 JSR $45A5 C3/451F: A06D7C LDY #$7C6D C3/4522: 20AD45 JSR $45AD (JMP fool!) C3/4525: 60 RTS C3/4526: A56B LDA $6B C3/4528: 3034 BMI $455E C3/452A: 220600C2 JSL $C20006 (equipment check function) C3/452E: A671 LDX $71 C3/4530: 8667 STX $67 C3/4532: A930 LDA #$30 C3/4534: 8529 STA $29 C3/4536: A00F7D LDY #$7D0F C3/4539: 20CF34 JSR $34CF C3/453C: A920 LDA #$20 C3/453E: 8529 STA $29 (set text color to white) C3/4540: A08F7D LDY #$7D8F C3/4543: 20E534 JSR $34E5 C3/4546: A02D7D LDY #$7D2D C3/4549: 209845 JSR $4598 C3/454C: A0A37D LDY #$7DA3 C3/454F: 209E45 JSR $459E C3/4552: A0B77D LDY #$7DB7 C3/4555: 20A545 JSR $45A5 C3/4558: A02D7E LDY #$7E2D C3/455B: 20AD45 JSR $45AD (JMP fool!) C3/455E: 60 RTS C3/455F: A56C LDA $6C C3/4561: 3034 BMI $4597 C3/4563: 220600C2 JSL $C20006 (equipment check function) C3/4567: A673 LDX $73 C3/4569: 8667 STX $67 C3/456B: A930 LDA #$30 C3/456D: 8529 STA $29 C3/456F: A0CF7E LDY #$7ECF C3/4572: 20CF34 JSR $34CF C3/4575: A920 LDA #$20 C3/4576: 8529 STA $29 (set text color to white) C3/4579: A04F7F LDY #$7F4F C3/457C: 20E534 JSR $34E5 C3/457F: A0ED7E LDY #$7EED C3/4582: 209845 JSR $4598 C3/4585: A0637F LDY #$7F63 C3/4588: 209E45 JSR $459E C3/458B: A0777F LDY #$7F77 C3/458E: 20A545 JSR $45A5 C3/4591: A0ED7F LDY #$7FED C3/4594: 20AD45 JSR $45AD (JMP fool!) C3/4597: 60 RTS C3/4598: 201935 JSR $3519 C3/459B: 4CE15E JMP $5EE1 C3/459E: 201935 JSR $3519 C3/45A1: C8 INY C3/45A2: 4CE15E JMP $5EE1 C3/45A5: 201935 JSR $3519 C3/45A8: C8 INY C3/45A9: C8 INY C3/45AA: 4CE15E JMP $5EE1 C3/45AD: 201935 JSR $3519 C3/45B0: C8 INY C3/45B1: C8 INY C3/45B2: C8 INY C3/45B3: 4CE15E JMP $5EE1 C3/45B6: A0C545 LDY #$45C5 C3/45B9: 4CFE05 JMP $05FE C3/45BC: 202D07 JSR $072D C3/45BF: A0CA45 LDY #$45CA C3/45C2: 4C4006 JMP $0640 Hotspot data for Arrange screen C3/45C5: 80 00 00 01 05 Finger positioning data for Arrange screen C3/45CA: 0820 (X/Y position for character 1 name) C3/45CC: 0850 (X/Y position for character 2 name) C3/45CE: 0880 (X/Y position for character 3 name) C3/45D0: 08B0 (X/Y position for character 4 name) C3/45D2: 080C (X/Y position for Arrange) C3/45D4: A04A46 LDY #$464A C3/45D7: 4CFE05 JMP $05FE C3/45DA: 7B TDC C3/45DB: A564 LDA $64 C3/45DD: 0A ASL A C3/45DE: AA TAX C3/45DF: 7CE245 JMP ($45E2,X) C3/45E2: EA45 (character 1 commands) C3/45E4: F045 (character 2 commands) C3/45E6: F645 (character 3 commands) C3/45E8: FC45 (character 4 commands) C3/45EA: A04F46 LDY #$464F C3/45ED: 4C4006 JMP $0640 C3/45F0: A05746 LDY #$4657 C3/45F3: 4C4006 JMP $0640 C3/45F6: A05F46 LDY #$465F C3/45F9: 4C4006 JMP $0640 C3/45FC: A06746 LDY #$4667 C3/45FF: 4C4006 JMP $0640 C3/4602: 201546 JSR $4615 (from C3/4338) C3/4605: 7B TDC C3/4606: A564 LDA $64 C3/4608: 0A ASL A C3/4609: AA TAX C3/460A: 7C0D46 JMP ($460D,X) C3/460D: EA45 C3/460F: F045 C3/4611: F645 C3/4613: FC45 C3/4615: 644D STZ $4D C3/4617: A50B LDA $0B C3/4619: 8908 BIT #$08 C3/461B: F005 BEQ $4622 C3/461D: 644E STZ $4E C3/461F: 20A30E JSR $0EA3 C3/4622: A50B LDA $0B C3/4624: 8904 ` BIT #$04 C3/4626: F007 BEQ $462F C3/4628: A903 LDA #$03 C3/462A: 854E STA $4E C3/462C: 20A30E JSR $0EA3 C3/462F: A50B LDA $0B C3/4631: 8902 BIT #$02 C3/4633: F007 BEQ $463C C3/4635: A901 LDA #$01 C3/4637: 854E STA $4E C3/4639: 20A30E JSR $0EA3 C3/463C: A50B LDA $0B C3/463E: 8901 BIT #$01 C3/4640: F007 BEQ $4649 C3/4642: A902 LDA #$02 C3/4644: 854E STA $4E C3/4646: 20A30E JSR $0EA3 (JMP fool!) C3/4649: 60 RTS Hotspot data C3/464A: 81 00 00 01 04 Finger positioning data, configuring character 1 commands C3/464F: 8020 C3/4651: 582C C3/4653: A82C C3/4655: 8038 Finger positioning data, configuring character 2 commands C3/4657: 8050 C3/4659: 585C C3/465A: A85C C3/465E: 8068 Finger positioning data, configuring character 3 commands C3/465F: 8080 C3/4661: 588C C3/4662: A88C C3/4665: 8098 Finger positioning data, configuring character 4 commands C3/4667: 80B0 C3/4669: 58BC C3/466A: A8BC C3/466D: 80C8 C3/466F: A902 LDA #$02 (from C3/42C7) C3/4671: 8D5043 STA $4350 C3/4674: A912 LDA #$12 C3/4676: 8D5143 STA $4351 (register address becomes $2112) C3/4679: A08E46 LDY #$468E C3/467C: 8C5243 STY $4352 (set address) C3/467F: A9C3 LDA #$C3 C3/4681: 8D5443 STA $4354 (set bank, C3/468E) C3/4684: A9C3 LDA #$C3 C3/4686: 8D5743 STA $4357 C3/4689: A920 LDA #$20 C3/468B: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/468D: 60 RTS HDMA transfer table C3/468E: 1F0000 (31 scanlines, 0 pixel shift) C3/4691: 0C0400 (12 scanlines, 4 pixel shift) C3/4694: 0C0800 (12 scanlines, 8 pixel shift) C3/4697: 240C00 (36 scanlines, 12 pixel shift) C3/469A: 0C1000 (12 scanlines, 16 pixel shift) C3/469D: 241400 (36 scanlines, 20 pixel shift) C3/46A0: 0C1800 (12 scanlines, 24 pixel shift) C3/46A3: 241C00 (36 scanlines, 28 pixel shift) C3/46A6: 0C2000 (12 scanlines, 32 pixel shift) C3/46A9: 242400 (36 scanlines, 36 pixel shift, 235 scanlines total) C3/46AC: 00 (end) C3/46AD: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/46B0: 20F546 JSR $46F5 C3/46B3: 20A848 JSR $48A8 C3/46B6: 20D748 JSR $48D7 C3/46B9: 20E048 JSR $48E0 C3/46BC: 20B007 JSR $07B0 (finger OAM initiating) C3/46BF: A901 LDA #$01 C3/46C1: 8526 STA $26 (transition) C3/46C3: A94C LDA #$4C C3/46C5: 8527 STA $27 (queue up to execute at C3/46CA) C3/46C7: 4C4135 JMP $3541 C3/46CA: 20390F JSR $0F39 C3/46CD: 20DD48 JSR $48DD C3/46D0: A509 LDA $09 C3/46D2: 8910 BIT #$10 (did you press start?) C3/46D4: D006 BNE $46DC (branch if so) C3/46D6: A509 LDA $09 (A already holds the contents of $09) C3/46D8: 8980 BIT #$80 (did you press B?) C3/46DA: F00A BEQ $46E6 (branch if not, BPL...) C3/46DC: 20A90E JSR $0EA9 C3/46DF: A90D LDA #$0D C3/46E1: 8527 STA $27 (queue up to execute at C3/1C7D) C3/46E3: 6426 STZ $26 (fade out) C3/46E5: 60 RTS C3/46E6: A50B LDA $0B C3/46E8: 8901 BIT #$01 C3/46EA: D006 BNE $46F2 C3/46EC: A50B LDA $0B C3/46EE: 8902 BIT #$02 C3/46F0: F002 BEQ $46F4 C3/46F2: 8023 BRA $4717 C3/46F4: 60 RTS C3/46F5: A0F348 LDY #$48F3 C3/46F8: 204103 JSR $0341 (draw controller assignment window) C3/46FB: 20520E JSR $0E52 C3/46FE: A930 LDA #$30 C3/4701: 8529 STA $29 C3/4704: A0FB4A LDY #$4AFB C3/4705: 20F902 JSR $02F9 (display "Controller") C3/4708: 20B447 JSR $47B4 C3/470B: 20F147 JSR $47F1 C3/470E: 202E48 JSR $482E C3/4711: 206B48 JSR $486B C3/4714: 4C6E0E JMP $0E6E C3/4717: 7B TDC C3/4718: A54B LDA $4B C3/471A: AA TAX C3/471B: B569 LDA $69,X C3/471D: 300A BMI $4729 C3/471F: 20A30E JSR $0EA3 C3/4722: A54B LDA $4B C3/4724: 0A ASL A C3/4725: AA TAX C3/4726: 7C2A47 JMP ($472A,X) C3/4729: 60 RTS C3/472A: 3247 C3/472C: 5147 C3/472E: 7247 C3/4730: 9347 C3/4732: AD4F1D LDA $1D4F C3/4735: 2901 AND #$01 C3/4737: A50B LDA $0B C3/4739: 8901 BIT #$01 C3/473B: F00A BEQ $4747 C3/473D: A901 LDA #$01 C3/473F: 0D4F1D ORA $1D4F C3/4742: 8D4F1F STA $1D4F C3/4745: 806D BRA $47B4 C3/4747: AD4F1D LDA $1D4F C3/474A: 29FE AND #$FE C3/474C: 8D4F1D STA $1D4F C3/474F: 8063 BRA $47B5 C3/4751: AD4F1D LDA $1D4F C3/4754: 2902 AND #$02 C3/4756: A50B LDA $0B C3/4758: 8901 BIT #$01 C3/475A: F00B BEQ $4767 C3/475C: A902 LDA #$02 C3/475E: 0D4F1D ORA $1D4F C3/4761: 8D4F1D STA $1D4F C3/4764: 4CF147 JMP $47F1 C3/4767: AD4F1D LDA $1D4F C3/4768: 29FD AND #$FD C3/476C: 8D4F1D STA $1D4F C3/476F: 4CF147 JMP $47F1 C3/4772: AD4F1D LDA $1D4F C3/4775: 2904 AND #$04 C3/4778: A50B LDA $0B C3/4779: 8901 BIT #$01 C3/477B: F00B BEQ $4788 C3/477D: A904 LDA #$04 C3/477F: 0D4F1D ORA $1D4F C3/4782: 8D4F1D STA $1D4F C3/4785: 4C2E48 JMP $482E C3/4788: AD4F1D LDA $1D4F C3/478B: 29FB AND #$FB C3/478D: 8D4F1D STA $1D4F C3/4790: 4C2E48 JMP $482E C3/4793: AD4F1D LDA $1D4F C3/4796: 2908 AND #$08 C3/4798: A50B LDA $0B C3/479A: 8901 BIT #$01 C3/479C: F00B BEQ $47A9 C3/479E: A908 LDA #$08 C3/47A0: 0D4F1D ORA $1D4F C3/47A3: 8D4F1D STA $1D4F C3/47A6: 4C6B48 JMP $486B C3/47A9: AD4F1D LDA $1D4F C3/47AC: 29F7 AND #$F7 C3/47AE: 8D4F1D STA $1D4F C3/47B1: 4C6B48 JMP $486B C3/47B4: A569 LDA $69 C3/47B6: 3038 BMI $47F0 C3/47B8: A66D LDX $6D C3/47BA: 8667 STX $67 C3/47BC: A920 LDA #$20 C3/47BE: 8529 STA $29 (set text color to white) C3/47C0: A0CF7B LDY #$7BCF C3/47C3: 20CF34 JSR $34CF (display character name 1) C3/47C6: AD4F1D LDA $1D4F C3/47C9: 2901 AND #$01 C3/47CB: F009 BEQ $47D6 C3/47CD: A924 LDA #$24 (set text color to gray) C3/47CF: 20DF47 JSR $47DF C3/47D2: A920 LDA #$20 (set text color to white) C3/47D4: 8012 BRA $47E8 C3/47D6: A920 LDA #$20 (set text color to white) C3/47D8: 20DF47 JSR $47DF C3/47DB: A924 LDA #$24 (set text color to gray) C3/47DD: 8009 BRA $47E8 C3/47DF: 8529 STA $29 C3/47E1: A0084B LDY #$4B08 C3/47E4: 20F902 JSR $02F9 (display "Cntlr1") C3/47E7: 60 RTS C3/47E8: 8529 STA $29 C3/47EA: A0114B LDY #$4B11 C3/47ED: 20F902 JSR $02F9 (display "Cntlr2") C3/47F0: 60 RTS C3/47F1: A56A LDA $6A C3/47F3: 3038 BMI $482D C3/47F5: A66F LDX $6F C3/47F7: 8667 STX $67 C3/47F9: A920 LDA #$20 C3/47FB: 8529 STA $29 (set text color to white) C3/47FD: A04F7C LDY #$7C4F C3/4800: 20CF34 JSR $34CF (display character name 2) C3/4803: AD4F1D LDA $1D4F C3/4806: 2902 AND #$02 C3/4808: F009 BEQ $4813 C3/480A: A924 LDA #$24 (set text color to gray) C3/480C: 201C48 TRB $A948 C3/480F: A920 LDA #$20 (set text color to white) C3/4811: 8012 BRA $4825 C3/4813: A920 LDA #$20 (set text color to white) C3/4815: 201C48 TRB $A948 C3/4818: A924 LDA #$24 (set text color to gray) C3/481A: 8009 BRA $4825 C3/481C: 8529 STA $29 C3/481E: A01A4B LDY #$4B1A C3/4821: 20F902 JSR $02F9 (display "Cntlr1") C3/4824: 60 RTS C3/4825: 8529 STA $29 C3/4827: A0234B LDY #$4B23 C3/482A: 20F902 JSR $02F9 (display "Cntlr2") C3/482D: 60 RTS C3/482E: A56B LDA $6B C3/4830: 3038 BMI $486A C3/4832: A671 LDX $71 C3/4834: 8667 STX $67 C3/4836: A920 LDA #$20 C3/4838: 8529 STA $29 (set text color to white) C3/483A: A0CF7C LDY #$7CCF C3/483D: 20CF34 JSR $34CF (display character name 3?) C3/4840: AD4F1D LDA $1D4F C3/4843: 2904 AND #$04 C3/4845: F009 BEQ $4850 C3/4847: A924 LDA #$24 (set text color to gray) C3/4849: 205948 JSR $4859 C3/484C: A920 LDA #$20 (set text color to white) C3/484E: 8012 BRA $4862 C3/4850: A920 LDA #$20 (set text color to white) C3/4852: 205948 JSR $4859 C3/4855: A924 LDA #$24 (set text color to gray) C3/4857: 8009 BRA $4862 C3/4859: 8529 STA $29 C3/485B: A02C4B LDY #$4B2C C3/485E: 20F902 JSR $02F9 (display "Cntlr1") C3/4861: 60 RTS C3/4862: 8529 STA $29 C3/4864: A0354B LDY #$4B35 C3/4867: 20F902 JSR $02F9 (display "Cntlr2") C3/486A: 60 RTS C3/486B: A56C LDA $6C C3/486D: 3038 BMI $48A7 C3/486F: A673 LDX $73 C3/4871: 8667 STX $67 C3/4873: A920 LDA #$20 C3/4875: 8529 STA $29 (set text color to white) C3/4877: A04F7D LDY #$7D4F C3/487A: 20CF34 JSR $34CF (display character name 4?) C3/487D: AD4F1D LDA $1D4F C3/4880: 2908 AND #$08 C3/4882: F009 BEQ $488D C3/4884: A924 LDA #$24 (set text color to gray) C3/4886: 209648 JSR $4896 C3/4889: A920 LDA #$20 (set text color to white) C3/488B: 8012 BRA $489F C3/488D: A920 LDA #$20 (set text color to white) C3/488F: 209648 JSR $4896 C3/4892: A924 LDA #$24 (set text color to gray) C3/4894: 8009 BRA $489F C3/4896: 8529 STA $29 C3/4898: A03E4B LDY #$4B3E C3/489B: 20F902 JSR $02F9 (display "Cntlr1") C3/489E: 60 RTS C3/489F: 8529 STA $29 C3/48A1: A0474B LDY #$4B47 C3/48A4: 20F902 JSR $02F9 (display "Cntlr2") C3/48A7: 60 RTS C3/48A8: A901 LDA #$01 (from C3/46B0) C3/48AA: 8D5043 STA $4350 C3/48AD: A928 LDA #$28 C3/48AF: 8D5143 STA $4351 (register address becomes $2128) C3/48B2: A0C748 LDY #$48C7 C3/48B5: 8C5243 STY $4352 (set address) C3/48B8: A9C3 LDA #$C3 C3/48BA: 8D5443 STA $4354 (set bank, C3/48C7) C3/48BD: A9C3 LDA #$C3 C3/48BF: 8D5743 STA $4357 C3/48C2: A920 LDA #$20 C3/48C4: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/48C6: 60 RTS HDMA transfer table C3/48C7: 27FFFF C3/48CA: 3008F7 C3/48CD: 68FFFF C3/48D0: 1008F7 C3/48D3: 10FFFF C3/48D6: 00 (end) C3/48D7: A0E648 LDY #$48E6 C3/48DA: 4CFE05 JMP $05FE C3/48DD: 202D07 JSR $072D C3/48E0: A0EB48 LDY #$48EB C3/48E3: 4C4006 JMP $0640 Hotspot data for controller assignment window C3/48E6: 80 00 00 01 04 Finger positioning data for controller assignment window C3/48EB: 507B (character 1) C3/48ED: 508B (character 2) C3/48EF: 509B (character 3) C3/48F1: 50AB (character 4) Window data for changing controller assingments C3/48F3: 0B5B1C0B C3/48F7: 7B TDC (from C3/3E57) C3/48F8: AA TAX C3/48F9: 9D2B02 STA $022B,X C3/48FC: E8 INX C3/48FD: E01F00 CPX #$001F C3/4900: D0F7 BNE $48F9 C3/4902: 60 RTS Data C3/4903: 0B49 (from C3/38E4) C3/4905: 8A49 C3/4907: 1F49 C3/4909: 2649 C3/490B: 8F3D82A8A7ADABA8A5A59EAB00 (position of and word "Controller") C3/4918: B539969AA2AD00 (position of and word "Wait") C3/491F: 653A859AACAD00 (position of and word "Fast") C3/4926: 753A92A5A8B000 (position of and word "Slow") C3/492D: 353B92A1A8ABAD00 (position of and word "Short") C3/4935: A53B8EA700 (position of and word "On") C3/493A: B53B8E9F9F00 (position of and word "Off") C3/4940: 253C92AD9EAB9EA800 (position of and word "Stereo") C3/4949: 353C8CA8A7A800 (position of and word "Mono") C3/4950: B53C8C9EA6A8ABB200 (position of and word "Memory") C3/4959: 253D8EA9ADA2A6AEA600 (position of and word "Optimum") C3/4963: B53D8CAEA5ADA2A9A59E00 (position of and word "Multiple") C3/496E: 253AB5FFB6FFB7FFB8FFB9FFBA00 (position of and word "1 2 3 4 5 6") C3/497C: A53AB5FFB6FFB7FFB8FFB9FFBA00 (position of and word "1 2 3 4 5 6") C3/498A: 8F3C82AEABACA8AB00 (position of and word "Cursor") Data C3/4993: AA49 (from C3/38D7) C3/4995: B549 C3/4997: C149 C3/4999: CD49 C3/499B: D749 C3/499D: DF49 C3/499F: E749 C3/49A1: F97882A8A79FA2A000 (position of and word "Config") C3/49AA: 8F39819AADC58CA89D9E00 (position of and word "Bat. Mode") C3/49B5: 0F3A819AADC592A99E9E9D00 (position of and word "Bat. Speed") C3/49C1: 8F3A8CACA0C592A99E9E9D00 (position of and word "Msg. Speed") C3/49CD: 0F3B82A69DC5929EAD00 (position of and word "Cmd. Set") C3/49D7: 8F3B869AAEA09E00 (position of and word "Gauge") C3/49DF: 0F3C92A8AEA79D00 (position of and word "Sound") C3/49E7: 0F3D919E9EAAAEA2A900 (position of and word "Reequip") C3/49F1: A539809CADA2AF9E00 (position of and word "Active") C3/49FA: 253B96A2A79DA8B000 (position of and word "Window") C3/4A03: A53C919EAC9EAD00 (position of and word "Reset") C3/4A0B: 353D84A6A9ADB200 (position of and word "Empty") C3/4A13: A53D92A2A7A0A59E00 (position of and word "Single") Data C3/4A1C: 344A (from C3/3919) C3/4A1E: 404A C3/4A20: 494A C3/4A22: 604A C3/4A24: 6D4A C3/4A27: 7A4A C3/4A28: 874A C3/4A2A: 8B4A C3/4A2C: 8F4A C3/4A2E: 514A C3/4A30: 564A C3/4A32: 5B4A C3/4A34: 8F418C9AA0C58EAB9D9EAB00 (position of and word "Mag. Order") C3/4A40: 8F4396A2A79DA8B000 (position of and word "Window") C3/4A49: 0F4482A8A5A8AB00 (position of and word "Color") C3/4A51: 254280D300 (position of and word "A..") C3/4A56: A54281D300 (position of and word "B..") C3/4A5B: 254382D300 (position of and word "C..") C3/4A60: 2D45F9F0F0F0F0F0F0F0F0FA00 C3/4A6D: AD45F9F0F0F0F0F0F0F0F0FA00 C3/4A7A: 2D46F9F0F0F0F0F0F0F0F0FA00 C3/4A87: 25459100 (position of and word "R") C3/4A8B: A5458600 (position of and word "G") C3/4A8F: 25468100 (position of and word "B") C3/4A93: A543B5FFB6FFB7FFB8FFB9FFBAFFBBFFBC00 (position of and word "1 2 3 4 5 6 7 8") C3/4AA5: A541B5FFB6FFB7FFB8FFB9FFBA00 (position of and word "1 2 3 4 5 6") C3/4AB3: 254485A8A7AD00 (position of and word "Font") C3/4ABA: 354496A2A79DA8B000 (position of and word "Window") C3/4AC3: FB43 C3/4AC5: A547 C3/4AC7: 7900 C3/4AC9: B544 C3/4ACB: 0102 C3/4ACD: 0304 C3/4ACF: 0506 C3/4AD1: 0700 Data, 10 bytes wide C3/4AD3: E8 87 9E 9A A5 A2 A7 A0 FF FF (Healing ) C3/4ADD: E9 80 AD AD 9A 9C A4 FF FF FF (Attack ) C3/4AE7: EA 84 9F 9F 9E 9C AD FF FF FF (Effect ) C3/4AF1: CF7880ABAB9AA7A09E00 (position of and word "Arrange") C3/4AFB: 4D7B82A8A7ADABA8A5A59EAB00 (position of and word "Controller") C3/4B08: 217C82A7ADA5ABB500 (position of and word "Cntlr1") C3/4B11: 337C82A7ADA5ABB600 (position of and word "Cntlr2") C3/4B1A: A17C82A7ADA5ABB500 (position of and word "Cntlr1") C3/4B23: B37C82A7ADA5ABB600 (position of and word "Cntlr2") C3/4B2C: 217D82A7ADA5ABB500 (position of and word "Cntlr1") C3/4B35: 337D82A7ADA5ABB600 (position of and word "Cntlr2") C3/4B3E: A17D82A7ADA5ABB500 (position of and word "Cntlr1") C3/4B47: B37D82A7ADA5ABB600 (position of and word "Cntlr2") C3/4B50: A06F4B LDY #$4B6F C3/4B53: 4CFE05 JMP $05FE C3/4B56: 202D07 JSR $072D C3/4B59: A0744B LDY #$4B74 C3/4B5C: 204006 JSR $0640 C3/4B5F: 7B TDC C3/4B60: A528 LDA $28 C3/4B62: 0A ASL A C3/4B63: AA TAX C3/4B64: A54D LDA $4D C3/4B66: 9D3602 STA $0236,X C3/4B69: A54E LDA $4E C3/4B6B: 9D3702 STA $0237,X C3/4B6E: 60 RTS Hotspot data for skills menu C3/4B6F: 80 00 01 01 07 Finger positioning data for skills menu C3/4B74: 0014 ("Esper") C3/4B75: 0024 ("Magic") C3/4B77: 0044 ("SwdTech") C3/4B79: 0054 ("Blitz") C3/4B7C: 0064 ("Lore") C3/4B7E: 0074 ("Rage") C3/4B80: 0084 ("Dance") C3/4B82: A0A94B LDY #$4BA9 C3/4B85: 4CFE05 JMP $05FE C3/4B88: 20C781 JSR $81C7 C3/4B8B: A0AE4B LDY #$4BAE C3/4B8E: 204806 JSR $0648 C3/4B91: 7B TDC C3/4B92: A528 LDA $28 C3/4B94: 0A ASL A C3/4B95: AA TAX C3/4B96: A54F LDA $4F C3/4B98: 9D3E02 STA $023E,X C3/4B9B: A550 LDA $50 C3/4B9D: 9D3F02 STA $023F,X C3/4BA0: A528 LDA $28 C3/4BA2: AA TAX C3/4BA3: A54A LDA $4A C3/4BA5: 9D4602 STA $0246,X C3/4BA8: 60 RTS Data: Hotspots C3/4BA9: 01 00 00 02 08 Finger positioning data C3/4BAE: 0874 C3/4BB0: 7074 C3/4BB2: 0880 C3/4BB4: 7080 C3/4BB6: 088C C3/4BB8: 708C C3/4BBA: 0898 C3/4BBC: 7098 C3/4BBE: 08A4 C3/4BC0: 70A4 C3/4BC2: 08B0 C3/4BC4: 70B0 C3/4BC6: 08BC C3/4BC8: 70BC C3/4BCA: 08C8 C3/4BCC: 70C8 C3/4BCE: A0DF4B LDY #$4BDF C3/4BD1: 4CFE05 JMP $05FE C3/4BD4: 202D07 JSR $072D C3/4BD7: A0E44B LDY #$4BE4 C3/4BDA: 84E7 STY $E7 C3/4BDC: 4C4006 JMP $0640 Hotspot data C3/4BDF: 00 00 00 02 04 Finger positioning data C3/4BE4: 0874 C3/4BE6: 7874 C3/4BE8: 088C C3/4BEA: 788C C3/4BEC: 08A4 C3/4BEE: 78A4 C3/4BF0: 08BC C3/4BF2: 78BC C3/4BF4: A0034C LDY #$4C03 C3/4BF7: 4CFE05 JMP $05FE C3/4BFA: 20C781 JSR $81C7 C3/4BFD: A0084C LDY #$4C08 C3/4C00: 4C4806 JMP $0648 Hotspot data C3/4C03: 01 00 00 01 08 Finger positioning data C3/4C08: 0874 C3/4C0A: 0880 C3/4C0C: 088C C3/4C0E: 0898 C3/4C10: 08A4 C3/4C12: 08B0 C3/4C14: 08BC C3/4C16: 08C8 C3/4C18: A0274C LDY #$4C27 C3/4C1B: 4CFE05 JMP $05FE C3/4C1E: 20C781 JSR $81C7 C3/4C21: A02C4C LDY #$4C2C C3/4C24: 4C4806 JMP $0648 Hotspot data for Esper menu C3/4C27: 01 00 00 02 08 Finger positioning data for Esper menu C3/4C2C: 0874 C3/4C2E: 7874 C3/4C30: 0880 C3/4C32: 7880 C3/4C34: 088C C3/4C36: 788C C3/4C38: 0898 C3/4C3A: 7898 C3/4C3C: 08A4 C3/4C3E: 78A4 C3/4C40: 08B0 C3/4C42: 78B0 C3/4C44: 08BC C3/4C46: 78BC C3/4C48: 08C8 C3/4C4A: 78C8 C3/4C4C: A05B4C LDY #$4C5B C3/4C4F: 4CFE05 JMP $05FE C3/4C52: 20C781 JSR $81C7 C3/4C55: A0604C LDY #$4C60 C3/4C58: 4C4806 JMP $0648 Data: Hotspots C3/4C5B: 01 00 00 02 08 Finger positioning data C3/4C60: 1874 C3/4C62: 8874 C3/4C64: 1880 C3/4C66: 8880 C3/4C68: 188C C3/4C6A: 888C C3/4C6C: 1898 C3/4C6E: 8898 C3/4C70: 18A4 C3/4C72: 88A4 C3/4C74: 18B0 C3/4C76: 88B0 C3/4C78: 18BC C3/4C7A: 88BC C3/4C7C: 18C8 C3/4C7E: 88C8 C3/4C80: 649E STZ $9E C3/4C82: 20890F JSR $0F89 C3/4C85: A901 LDA #$01 C3/4C87: 8D0721 STA $2107 C3/4C8A: 20286A JSR $6A28 C3/4C8D: 202D6A JSR $6A2D C3/4C90: A0A44D LDY #$4DA4 C3/4C93: 204103 JSR $0341 (draw blank lower window, holds spells, rages, etc) C3/4C96: A0A04D LDY #$4DA0 C3/4C99: 204103 JSR $0341 (draw window that holds Level, HP, MP) C3/4C9C: A0A84D LDY #$4DA8 C3/4C9F: 204103 JSR $0341 (draw top window that holds spell/esper descriptions) C3/4CA2: A09C4D LDY #$4D9C C3/4CA5: 204103 JSR $0341 (draw window that holds Rage, SwdTech, Blitz, Dance, and Lore) C3/4CA8: A0984D LDY #$4D98 C3/4CAB: 204103 JSR $0341 (draw window that holds Esper and Magic) C3/4CAE: A0B04D LDY #$4DB0 C3/4CB1: 204103 JSR $0341 (draw window that holds spells, rages, etc) C3/4CB4: A0AC4D LDY #$4DAC C3/4CB7: 204103 JSR $0341 C3/4CBA: A0B84D LDY #$4DB8 C3/4CBD: 204103 JSR $0341 C3/4CC0: A0B44D LDY #$4DB4 C3/4CC3: 204103 JSR $0341 C3/4CC6: 20520E JSR $0E52 C3/4CC9: 20274D JSR $4D27 C3/4CCC: 20280E JSR $0E28 C3/4CCF: 203C6A JSR $6A3C C3/4CD2: 20416A JSR $6A41 C3/4CD5: 20466A JSR $6A46 C3/4CD8: 2062A6 JSR $A662 C3/4CDB: 203D4D JSR $4D3D (enable and disable skills) C3/4CDE: A579 LDA $79 C3/4CE0: 8529 STA $29 (set text color) C3/4CE2: A0485C LDY #$5C48 C3/4CE5: 20F902 JSR $02F9 (display the word "Espers") C3/4CE8: A57A LDA $7A C3/4CEA: 8529 STA $29 (set text color) C3/4CEC: A0515C LDY #$5C51 C3/4CEF: 20F902 JSR $02F9 (display the word "Magic") C3/4CF2: A57B LDA $7B C3/4CF4: 8529 STA $29 (set text color) C3/4CF6: A0595C LDY #$5C59 C3/4CF9: 20F902 JSR $02F9 (display the word "SwdTech") C3/4CFC: A57C LDA $7C C3/4CFE: 8529 STA $29 (set text color) C3/4D00: A0635C LDY #$5C63 C3/4D03: 20F902 JSR $02F9 (display the word "Blitz") C3/4D06: A57D LDA $7D C3/4D08: 8529 STA $29 (set text color) C3/4D0A: A06B5C LDY #$5C6B C3/4D0D: 20F902 JSR $02F9 (display the word "Lore") C3/4D10: A57E LDA $7E C3/4D12: 8529 STA $29 (set text color) C3/4D14: A0725C LDY #$5C72 C3/4D17: 20F902 JSR $02F9 (display the word "Rage") C3/4D1A: A57F LDA $7F C3/4D1C: 8529 STA $29 (set text color) C3/4D1E: A0795C LDY #$5C79 C3/4D21: 20F902 JSR $02F9 (display the word "Dance") C3/4D24: 4C6E0E JMP $0E6E C3/4D27: 20156A JSR $6A15 C3/4D2A: 20196A JSR $6A19 C3/4D2D: A924 LDA #$85 C3/4D2F: 8529 STA $29 C3/4D31: A2815C LDX #$5C81 C3/4D34: A00600 LDY #$0006 C3/4D37: 20BA69 JSR $69BA (display "LV," "HP," and "MP") C3/4D3A: 4CE54E JMP $4EE5 Enabling and disabling aspects of the skills menu C3/4D3D: A924 LDA #$24 (from C3/1E89, C3/4CDB) C3/4D3F: A600 LDX $00 C3/4D40: 9579 STA $79,X C3/4D42: E8 INX C3/4D43: E00700 CPX #$0007 C3/4D47: D0F8 BNE $4D40 (disable all commands for that character) C3/4D49: 20DD4E JSR $4EDD C3/4D4C: 5A PHY C3/4D4D: A20400 LDX #$0004 C3/4D50: DA PHX C3/4D51: A600 LDX $00 C3/4D53: B91600 LDA $0016,Y C3/4D56: DF784DC3 CMP $C34D78,X C3/4D5A: D004 BNE $4D5F (branch if skill does not match one on list) C3/4D5C: A920 LDA #$20 C3/4D5E: 9579 STA $79,X (enable the skill for that character) C3/4D5F: E8 INX C3/4D60: E00700 CPX #$0007 C3/4D64: D0ED BNE $4D53 (branch if haven't checked all 7 skills?) C3/4D66: C8 INY C3/4D67: FA PLX C3/4D68: CA DEX C3/4D69: D0E5 BNE $4D50 C3/4D6B: 7A PLY C3/4D6C: B90000 LDA $0000,Y C3/4D6F: C90C CMP #$0C C3/4D71: D004 BNE $4D77 (Branch if it's not Gogo) C3/4D73: A924 LDA #$24 C3/4D75: 8579 STA $79 (disable esper menu) C3/4D77: 60 RTS Data: check for the following commands C3/4D78: 02 (magic) C3/4D79: 02 (magic) C3/4D7A: 07 (SwdTech) C3/4D7B: 0A (blitz) C3/4D7C: 0C (lore) C3/4D7D: 10 (rage) C3/4D7E: 13 (dance) C3/4D7F: 20156A JSR $6A15 C3/4D82: 201C4F JSR $4F1C C3/4D85: 20874F JSR $4F87 C3/4D88: A92C LDA #$24 C3/4D8A: 8529 STA $29 C3/4D8C: A0875C LDY #$5C87 C3/4D8F: 20F902 JSR $02F9 (display "MP...") C3/4D92: 20AC61 JSR $61AC C3/4D95: 4C4D0F JMP $0F4D Data: window sizes, used by C3/0341 C3/4D98: 8B580704 (window that holds Esper and Magic) C3/4D9C: 0B5A070A (window that holds SwdTech, Blitz, Rage, Lore, and Dance) C3/4DA0: CB591C05 C3/4DA4: 8B5B1C0C C3/4DA8: 8B581C03 C3/4DAC: CB611C05 C3/4DB0: 8B631C0C C3/4DB4: 75610701 (window that holds MP cost and whatever skill user selected) C3/4DB8: 8B601C03 (window that holds Esper and Spell descriptions) C3/4DBC: A902 LDA #$02 (from C3/1B72, C3/2D2A) C3/4DBE: 8D5043 STA $4350 C3/4DC1: A912 LDA #$12 C3/4DC3: 8D5143 STA $4351 (register address becomes $2112) C3/4DC6: A0264E LDY #$4E26 C3/4DC9: 8C5243 STY $4352 (set address) C3/4DCC: A9C3 LDA #$C3 C3/4DCE: 8D5443 STA $4354 (set bank, C3/4E26) C3/4DD1: A9C3 LDA #$C3 C3/4DD3: 8D5743 STA $4357 C3/4DD6: A920 LDA #$20 C3/4DD8: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/4DDA: 202D4E JSR $4E2D C3/4DDD: A600 LDX $00 C3/4DDF: BF724EC3 LDA $C34E72,X C3/4DE3: 9F099A7E STA $7E9A09,X C3/4DE7: E8 INX C3/4DE8: E00D00 CPX #$000D C3/4DEB: D0F2 BNE $4DDF C3/4DED: A902 LDA #$02 C3/4DEF: 8D6043 STA $4360 C3/4DF2: A90D LDA #$0D C3/4DF4: 8D6143 STA $4361 (register address becomes $210D) C3/4DF7: A0099A LDY #$9A09 C3/4DFA: 8C6243 STA $4362 (set address) C3/4DFD: A97E LDA #$7E C3/4DFF: 8D6443 STA $4364 (set bank, 7E/9A09) C3/4E02: A97E LDA #$7E C3/4E04: 8D6743 STA $4367 C3/4E07: A902 LDA #$02 C3/4E09: 8D7043 STA $4370 C3/4E0C: A90E LDA #$0E C3/4E0E: 8D7143 STA $4371 (register address becomes $210E) C3/4E11: A04998 LDY #$9849 C3/4E14: 8C7243 STY $4372 (set address) C3/4E17: A97E LDA #$7E C3/4E19: 8D7443 STA $4374 (set bank, 7E/9849) C3/4E1C: A97E LDA #$7E C3/4E1E: 8D7743 STA $4377 C3/4E21: A9C0 LDA #$C0 C3/4E23: 0443 TSB $43 (eventually enable channels 6 and 7 of HDMA) C3/4E25: 60 RTS HDMA transfer table C3/4E26: 4F0200 (79 scanlines, 2 pixel shift) C3/4E29: 400200 (64 scanlines, 2 pixel shift, 143 scanlines total) C3/4E2C: 00 (end) C3/4E2D: A600 LDX $00 C3/4E2F: BF7F4EC3 LDA $C34E7F,X C3/4E33: 9F49987E STA $7E9849,X C3/4E37: E8 INX C3/4E38: E01200 CPX #$0012 C3/4E3B: D0F2 BNE $4E2F C3/4E3D: BF7F4EC3 LDA $C34E7F,X C3/4E41: 9F49987E STA $7E9849,X C3/4E45: E8 INX C3/4E46: 7B TDC C3/4E47: A549 LDA $49 C3/4E49: 0A ASL A C3/4E4A: 0A ASL A C3/4E4B: 0A ASL A C3/4E4C: 0A ASL A C3/4E4D: 29FF AND #$FF C3/4E4F: C220 REP #$20 C3/4E51: 18 CLC C3/4E52: 7F7F4EC3 ADC $C34E7F,X C3/4E56: 9F49987E STA $7E9849,X C3/4E5A: E220 SEP #$20 (8 bit memory/accum.) C3/4E5C: E8 INX C3/4E5D: E8 INX C3/4E5E: E05A00 CPX #$005A C3/4E61: D0DA BNE $4E3D C3/4E63: BF7F4EC3 LDA $C34E7F,X C3/4E67: 9F49987E STA $7E9849,X C3/4E6B: E8 INX C3/4E6C: E05E00 CPX #$005E C3/4E6F: D0F2 BNE $4E63 C3/4E71: 60 RTS Data: copied to $7E9A09 from above C3/4E72: 270001 C3/4E75: 480001 C3/4E78: 600000 C3/4E7B: 1E0001 C3/4E7E: 00 (end) Data: copied to $7E9849 from above C3/4E7F: 3F0000 (63 scanlines, 0 pixel shift) C3/4E82: 0C0400 (12 scanlines, 4 pixel shift) C3/4E85: 0C0800 (12 scanlines, 8 pixel shift) C3/4E88: 0A0C00 (10 scanlines, 12 pixel shift) C3/4E8B: 010C00 (1 scanline, 12 pixel shift) C3/4E8E: 0D0800 (13 scanlines, 8 pixel shift) C3/4E91: 0494FF (4 scanlines, ?? pixel shift) C3/4E94: 0494FF (4 scanlines, ?? pixel shift) C3/4E97: 0494FF (4 scanlines, ?? pixel shift) C3/4E9A: 0498FF (4 scanlines, ?? pixel shift) C3/4E9D: 0498FF (4 scanlines, ?? pixel shift) C3/4EA0: 0498FF (4 scanlines, ?? pixel shift) C3/4EA3: 049CFF (4 scanlines, ?? pixel shift) C3/4EA6: 049CFF (4 scanlines, ?? pixel shift) C3/4EA9: 049CFF (4 scanlines, ?? pixel shift) C3/4EAC: 04A0FF (4 scanlines, ?? pixel shift) C3/4EAF: 04A0FF (4 scanlines, ?? pixel shift) C3/4EB2: 04A0FF (4 scanlines, ?? pixel shift) C3/4EB5: 04A4FF (4 scanlines, ?? pixel shift) C3/4EB8: 04A4FF (4 scanlines, ?? pixel shift) C3/4EBB: 04A4FF (4 scanlines, ?? pixel shift) C3/4EBE: 04A8FF (4 scanlines, ?? pixel shift) C3/4EC1: 04A8FF (4 scanlines, ?? pixel shift) C3/4EC4: 04A8FF (4 scanlines, ?? pixel shift) C3/4EC7: 04ACFF (4 scanlines, ?? pixel shift) C3/4E3A: 04ACFF (4 scanlines, ?? pixel shift) C3/4ECD: 04ACFF (4 scanlines, ?? pixel shift) C3/4ED0: 04B0FF (4 scanlines, ?? pixel shift) C3/4ED3: 04B0FF (4 scanlines, ?? pixel shift) C3/4ED6: 04B0FF (4 scanlines, ?? pixel shift) C3/4ED9: 1E20FF (30 scanlines, ?? pixel shift, 237 scanlines total) C3/4EDC: 00 (end) C3/4EDD: 7B TDC (from C3/4D49, C3/4EE5) C3/4EDE: A528 LDA $28 C3/4EE0: 0A ASL A C3/4EE1: AA TAX C3/4EE2: B46D LDY $6D,X C3/4EE4: 60 RTS C3/4EE5: 20DD4E JSR $4EDD (from C3/4D3A) C3/4EE8: 8467 STY $67 (the current character) C3/4EEA: 4CED4E JMP $4EED (uhhh, hello?) C3/4EED: A0DD42 LDY #$42DD C3/4EF0: A2504F LDX #$4F50 C3/4EF3: 202734 JSR $3427 (display current status ailments) C3/4EF6: A0D15C LDY #$5CD1 C3/4EF9: 20F902 JSR $02F9 (draw HP's "/") C3/4EFC: A0D55C LDY #$5CD5 C3/4EFF: 20F902 JSR $02F9 (draw MP's "/") C3/4F02: A2124F LDX #$4F12 C3/4F05: 206C0C JSR $0C6C (display HP, MP, etc) C3/4F08: A920 LDA #$20 C3/4F0A: 8529 STA $29 (set text color to white) C3/4F0C: A01D42 LDY #$421D C3/4F0F: 4CE634 JMP $34E6 (display currently equipped esper name) Data: positions for HP, MP, etc in skills menu C3/4F12: 3742 (level's position) C3/4F14: B342 (current HP's position) C3/4F16: BD42 (max HP's position) C3/4F18: 3343 (current MP's position) C3/4F1A: 3D43 (max MP's position) C3/4F1C: A2899D LDX #$9D89 C3/4F1F: 8E8121 STX $2181 C3/4F22: A23600 LDX #$0036 C3/4F25: A9FF LDA #$FF C3/4F27: 8D8021 STA $2180 C3/4F2A: CA DEX C3/4F2B: D0FA BNE $4F27 C3/4F2D: 7B TDC C3/4F2E: A8 TAY C3/4F2F: AD541D LDA $1D54 C3/4F32: 2907 AND #$07 C3/4F34: 0A ASL A C3/4F35: 0A ASL A C3/4F36: AA TAX C3/4F37: DA PHX C3/4F38: BF494FC3 LDA $C34F49,X C3/4F3C: C9FF CMP #$FF C3/4F3E: F007 BEQ $4F47 C3/4F40: 20614F JSR $4F61 C3/4F43: FA PLX C3/4F44: E8 INX C3/4F45: 80F0 BRA $4F37 C3/4F47: FA PLX C3/4F48: 60 RTS Data: Perhaps the order of how to arrange the spells? C3/4F49: 2D 00 18 FF C3/4F4D: 2D 18 00 FF C3/4F51: 00 18 2D FF C3/4F55: 00 2D 18 FF C3/4F59: 18 2D 00 FF C3/4F5D: 18 00 2D FF C3/4F61: C900 CMP #$00 (is it Fire?) C3/4F63: F009 BEQ $4F6E C3/4F64: C92D CMP #$2D (is it Cure?) C3/4F66: F00A BEQ $4F73 C3/4F69: A21500 LDX #$0015 (the number of "Effect" type spells) C3/4F6C: 800A BRA $4F78 C3/4F6E: A21800 LDX #$0018 (the number of "Attack" type spells) C3/4F71: 8005 BRA $4F78 C3/4F73: A20900 LDX #$0009 (the number of "Healing" type spells) C3/4F76: 8000 BRA $4F78 (there is no point for this) C3/4F78: 86E0 STX $E0 C3/4F7A: AA TAX C3/4F7B: BB TYX C3/4F7C: 9F899D7E STA $7E9D89,X C3/4F80: 1A INC A C3/4F81: C8 INY C3/4F82: C6E0 DEC $E0 C3/4F84: D0F5 BNE $4F7B C3/4F86: 60 RTS C3/4F87: 20F783 JSR $83F7 (from C3/4D85) C3/4F8A: A00800 LDY #$0008 C3/4F8D: 5A PHY C3/4F8E: 209E4F JSR $4F9E C3/4F91: A5E6 LDA $E6 C3/4F93: 1A INC A C3/4F94: 1A INC A C3/4F95: 291F AND #$1F C3/4F97: 85E6 STA $E6 C3/4F99: 7A PLY C3/4F9A: 88 DEY C3/4F9B: D0F0 BNE $4F8D C3/4F9D: 60 RTS C3/4F9E: 20B54F JSR $4FB5 C3/4FA1: A20300 LDX #$0003 (X position of left half of spells) C3/4FA4: 20C44F JSR $4FC4 (draws the spell names) C3/4FA7: E6E5 INC $E5 C3/4FA9: 20B54F JSR $4FB5 C3/4FAC: A21000 LDX #$0010 (X position of right half of spells) C3/4FAF: 20C44F JSR $4FC4 (draws the spell names) C3/4FB2: E6E5 INC $E5 C3/4FB4: 60 RTS C3/4FB5: A00700 LDY #$0007 (spell letter length) C3/4FB8: 84EB STY $EB C3/4FBA: A067F5 LDY #$F567 (spell name address) C3/4FBD: 84EF STY $EF C3/4FBF: A9E6 LDA #$E6 (spell name bank) C3/4FC1: 85F1 STA $F1 C3/4FC3: 60 RTS Draw a column of spells C3/4FC4: A5E6 LDA $E6 C3/4FC6: 1A INC A C3/4FC7: 209F80 JSR $809F C3/4FCA: C220 REP #$20 (16 bit memory/accum.) C3/4FCC: 8A TXA C3/4FCD: 8F899E7E STA $7E9E89 C3/4FD1: E220 SEP #$20 (8 bit memory/accum.) C3/4FD3: A59E LDA $9E C3/4FD5: F067 BEQ $503E C3/4FD7: 20EC50 JSR $50EC (get the current spell to check) C3/4FDA: 204D51 JSR $514D (determine if spells are useable?) C3/4FDD: 20EC50 JSR $50EC (get the current spell to check) C3/4FE0: C9FF CMP #$FF C3/4FE2: F036 BEQ $501A (branch if no spell to draw) C3/4FE4: 20A250 JSR $50A2 (get spells learned amount) C3/4FE7: C9FF CMP #$FF C3/4FE9: D02F BNE $501A (branch if spell is already learned?) C3/4FEB: 20EC50 JSR $50EC (get the current spell to check) C3/4FEE: 206784 JSR $8467 (draw the current spell name) C3/4FF1: A2929E LDX #$9E92 (position of MP cost) C3/4FF4: 8E8121 STX $2181 C3/4FF7: A9FF LDA #$FF C3/4FF9: 8D8021 STA $2180 (insert a space) C3/4FFC: 20EC50 JSR $50EC (get the current spell to check) C3/4FFF: 200D51 JSR $510D (get spell's MP cost) C3/5002: 20E004 JSR $04E0 (turn MP cost into digits) C3/5005: A5F8 LDA $F8 C3/5007: 8D8021 STA $2180 (draw tens digit of MP cost) C3/500A: A5F9 LDA $F9 C3/500C: 8D8021 STA $2180 (draw ones digit of MP cost) C3/500F: A9FF LDA #$FF C3/5011: 8D8021 STA $2180 (insert a space) C3/5014: 9C8021 STZ $2180 (end this string) C3/5017: 4CD97F JMP $7FD9 (draw MP cost) Blank out the current spell (MP cost and spell learn rate too) C3/501A: 7B TDC C3/501B: A5E5 LDA $E5 C3/501D: AA TAX C3/501E: A9FF LDA #$FF C3/5020: 9F899D7E STA $7E9D89,X C3/5024: 20B951 JSR $51B9 (set's the text color to gray among other things) C3/5027: A00B00 LDY #$000B C3/502A: A28B9E LDX #$9E8B (position of where it is to be blanked) C3/502D: 8E8121 STX $2181 C3/5030: A9FF LDA #$FF C3/5032: 8D8021 STA $2180 (insert a space) C3/5035: 88 DEY C3/5036: D0FA BNE $5032 (do 11 times?) C3/5038: 9C8021 STZ $2180 (end this string) C3/503B: 4CD97F JMP $7FD9 (display the blanked name) C3/503E: 20EC50 JSR $50EC (get the current spell to check) C3/5041: C9FF CMP #$FF C3/5043: F0D5 BEQ $501A C3/5045: 20A250 JSR $50A2 (get spell's learned rate) C3/5048: C900 CMP #$00 (is it zero? also no need for this CMP here...) C3/504A: F0CE BEQ $501A (branch if so) C3/504C: 20EC50 JSR $50EC (get the current spell to check) C3/504F: 206784 JSR $8467 (draw the current spell name) C3/5052: A2929E LDX #$9E92 (position of spell progress) C3/5055: 8E8121 STX $2181 C3/5058: 20EC50 JSR $50EC (get the current spell to check) C3/505B: 20A250 JSR $50A2 (get spell's learned rate) C3/505E: C9FF CMP #$FF (is it learned?) C3/5060: F026 BEQ $5088 (branch if so) C3/5062: 48 PHA C3/5063: 20B951 JSR $51B9 C3/5066: A92C LDA #$2C C3/5068: 8529 STA $29 (set text color to blue) C3/506A: A9C7 LDA #$C7 (the "..." character in the font) C3/506C: 8D8021 STA $2180 C3/506F: 68 PLA C3/5070: 20E004 JSR $04E0 (turn spell progress into digits) C3/5073: A5F8 LDA $F8 C3/5075: 8D8021 STA $2180 (draw the tens digit) C3/5078: A5F9 LDA $F9 C3/507A: 8D8021 STA $2180 (draw the ones digit) C3/507D: A9CD LDA #$CD (the "%" character in the font) C3/507F: 8D8021 STA $2180 C3/5082: 9C8021 STZ $2180 (end this string) C3/5085: 4CD97F JMP $7FD9 (draw the contents of $2180) C3/5088: A924 LDA #$24 C3/508A: 8529 STA $29 (set text color to...dunno) C3/508C: 20EC50 JSR $50EC (get the current spell to check) C3/508F: 204D51 JSR $514D (determine if spells are useable?) C3/5092: A9FF LDA #$FF C3/5094: 8D8021 STA $2180 C3/5097: 8D8021 STA $2180 C3/509A: 8D8021 STA $2180 C3/509D: 8D8021 STA $2180 (four spaces, blank out spell's learn rate since it's already learned) C3/50A0: 80E0 BRA $5082 Get spell's learned amount, or, if it's Gogo, branch below to check everybody else in the party. C3/50A2: 85E0 STA $E0 C3/50A4: 20DD4E JSR $4EDD C3/50A7: B90000 LDA $0000,Y C3/50AA: C90C CMP #$0C C3/50AC: F017 BEQ $50C5 (Branch if it's Gogo) C3/50AE: 8D0242 STA $4202 C3/50B1: A936 LDA #$36 C3/50B3: 8D0342 STA $4203 C3/50B6: 7B TDC C3/50B7: A5E0 LDA $E0 C3/50B9: C220 REP #$20 (16 bit memory/accum.) C3/50BB: 6D1642 ADC $4216 C3/50BE: AA TAX C3/50BF: E220 SEP #$20 (8 bit memory/accum.) C3/50C1: BD6E1A LDA $1A6E,X C3/50C4: 60 RTS C3/50C5: 64E1 STZ $E1 ($E1 = #$00) C3/50C7: 7B TDC (A = #$0000) C3/50C8: A5E1 LDA $E1 (A = $E1) C3/50CA: C528 CMP $28 C3/50CC: F014 BEQ $50E2 C3/50CE: 0A ASL A C3/50CF: AA TAX C3/50D0: B46D LDY $6D,X C3/50D2: F00E BEQ $50E2 C3/50D4: B90000 LDA $0000,Y (load character ID) C3/50D7: C90C CMP #$0C C3/50D9: B007 BCS $50E2 (Branch if it's Gogo or higher) C3/50DB: 20AE50 JSR $50AE C3/50DE: C9FF CMP #$FF C3/50E0: F009 BEQ $50EB C3/50E2: E6E1 INC $E1 C3/50E4: A5E1 LDA $E1 C3/50E6: C904 CMP #$04 C3/50E8: D0DD BNE $50C7 C3/50EA: 7B TDC C3/50EB: 60 RTS C3/50EC: 7B TDC C3/50ED: A5E5 LDA $E5 C3/50EF: AA TAX C3/50F0: BF899D7E LDA $7E9D89,X C3/50F4: 60 RTS C3/50F5: 48 PHA C3/50F6: AD1242 LDA $4212 C3/50F9: 2940 AND #$40 (are we in H-blank?) C3/50FB: F0F9 BEQ $50F6 (branch if not) C3/50FD: 68 PLA C3/50FE: 8D1B21 STA $211B (save spell number as our multiplier) C3/5101: 9C1B21 STZ $211B C3/5104: A90E LDA #$0E (14 = width of magic struct) C3/5106: 8D1C21 STA $211C C3/5109: 8D1C21 STA $211C C3/510C: 60 RTS ($2134 = A * 14) Determine the MP cost to a given spell C3/510D: 48 PHA (save current spell) C3/510E: 20F550 JSR $50F5 (A = A * 14) C3/5111: AE3421 LDX $2134 (X product of previous JSR) C3/5114: BFC56AC4 LDA $C46AC5,X (magic data, MP cost) C3/5118: 85E0 STA $E0 (store MP cost) C3/511A: 68 PLA (get current spell) C3/511B: C999 CMP #$99 (is the current spell Step Mine?) C3/511D: D00F BNE $512E (branch if not) C3/511F: AD1B02 LDA $021B C3/5122: 0A ASL A (* 2) C3/5123: 85E0 STA $E0 (save as new MP cost) C3/5125: AD1C02 LDA $021C C3/5128: C91E CMP #$1E C3/512A: 9002 BCC $512E C3/512C: E6E0 INC $E0 (add 1 to MP cost) C3/512E: ADD711 LDA $11D7 (load accessory byte) C3/5131: 8940 BIT #$40 (Is "reduce MP consumption to 1" bit set, aka Economizer equipped?) C3/5133: F005 BEQ $513A (branch if not, this could branch to the BIT #$20...) C3/5135: 7B TDC (to keep the upper 8 bits of A clean...) C3/5136: A901 LDA #$01 (MP cost is 1) C3/5138: 8011 BRA $514B (branch and exit) C3/513A: ADD711 LDA $11D7 (load accessory byte) C3/513D: 8920 BIT #$20 (Is "halve MP consumption" bit set, aka Gold Hairpin equipped?) C3/513F: F007 BEQ $5148 (branch and exit if not) C3/5141: 7B TDC (to keep the upper 8 bits of A clean...) C3/5142: A5E0 LDA $E0 (load current MP cost) C3/5144: 1A INC A (add one so it rounds up) C3/5145: 4A LSR A (cut in half) C3/5146: 8003 BRA $514B (branch and exit) C3/5148: 7B TDC (to keep the upper 8 bits of A clean...) C3/5149: A5E0 LDA $E0 (load MP cost) C3/514B: AA TAX (transfer MP cost to X) C3/514C: 60 RTS C3/514D: C92A CMP #$2A C3/514F: F02A BEQ $517B (branch if spell is Warp) C3/5151: C912 CMP #$12 C3/5153: F019 BEQ $516E (branch if spell is X-zone) C3/5155: 20F550 JSR $50F5 C3/5158: AE3421 LDX $2134 C3/515B: BFC36AC4 LDA $C46AC3,X (Magic data, where used/damage type) C3/515F: 2901 AND #$01 C3/5161: F009 BEQ $516C (this can BRA to $51B9 just as easily) C3/5163: 20EC50 JSR $50EC (get the current spell to check) C3/5166: 200D51 JSR $510D (get MP cost) C3/5169: 4C8851 JMP $5188 (BRA would work here) C3/516C: 804B BRA $51B9 C3/516E: 85E3 STA $E3 C3/5170: AD0102 LDA $0201 (load availability bits) C3/5173: 8901 BIT #$01 (check for X-Zone use) C3/5175: F0F5 BEQ $516C (branch if not able to, and really, it can branch to $51B9 from here on its own easily enough) C3/5177: A5E3 LDA $E3 C3/5179: 80DA BRA $5155 C3/517B: 85E3 STA $E3 C3/517D: AD0102 LDA $0201 C3/5180: 8902 BIT #$02 (check for Warp useage) C3/5182: F0E8 BEQ $516C (branch if you can't Warp) C3/5184: A5E3 LDA $E3 C3/5186: 80CD BRA $5155 C3/5188: 86E2 STX $E2 (save MP cost) C3/518A: 20DD4E JSR $4EDD C3/518D: B91400 LDA $0014,Y (Statuses) C3/5190: 2920 AND #$20 (Imped?) C3/5192: F007 BEQ $519B (branch if not) C3/5194: 20EC50 JSR $50EC (get the current spell to check) C3/5197: C923 CMP #$23 C3/5199: D01E BNE $51B9 (branch if spell is not Imp) C3/519B: C220 REP #$20 (16 bit memory/accum.) C3/519D: B90D00 LDA $000D,Y (current MP) C3/51A0: 85E0 STA $E0 (save for now) C3/51A2: E220 SEP #$20 (8 bit memory/accum.) C3/51A4: A6E2 LDX $E2 (load MP cost) C3/51A6: E4E0 CPX $E0 (compare to current MP) C3/51A8: F002 BEQ $51AC (if equal, you can use it, this check is necessary because you would need cost +1 to use it otherwise) C3/51AA: B00D BCS $51B9 (if cost is more than current, you can't use it) C3/51AC: 7B TDC C3/51AD: A5E5 LDA $E5 C3/51AF: AA TAX C3/51B0: A920 LDA #$20 C3/51B2: 8529 STA $29 (set text color to white) C3/51B4: 9F099E7E STA $7E9E09,X C3/51B8: 60 RTS C3/51B9: 7B TDC C3/51BA: A5E5 LDA $E5 C3/51BC: AA TAX C3/51BD: A928 LDA #$28 C3/51BF: 8529 STA $29 (set text color to gray) C3/51C1: 9F099E7E STA $7E9E09,X C3/51C5: 60 RTS C3/51C6: A920 LDA #$20 C3/51C8: 8529 STA $29 (set text color to white) C3/51CA: C220 REP #$20 (16 bit memory/accum.) C3/51CC: A9BF81 LDA #$81BF (position of MP cost) C3/51CF: 8F899E7E STA $7E9E89 C3/51D3: E220 SEP #$20 (8 bit memory/accum.) C3/51D5: A28B9E LDX #$9E8B (where to look in VRAM) C3/51D8: 8E8121 STX $2181 C3/51DB: 7B TDC C3/51DC: A54B LDA $4B C3/51DE: AA TAX C3/51DF: BF899D7E LDA $7E9D89,X C3/51E3: 200D51 JSR $510D (get MP cost) C3/51E6: 20E004 JSR $04E0 (turn MP cost into digits) C3/51E9: A5F8 LDA $F8 C3/51EB: 8D8021 STA $2180 C3/51EE: A5F9 LDA $F9 C3/51F0: 8D8021 STA $2180 (MP cost in the upper right hand corner of the menu) C3/51F3: 9C8021 STZ $2180 (end this string) C3/51F6: 4CD97F JMP $7FD9 --------------------------------------------------------------------- C3/51F9: 20156A JSR $6A15 C3/51FC: 203C52 JSR $523C C3/51FF: A92C LDA #$2C C3/5201: 8529 STA $29 C3/5203: A0915C LDY #$5C91 (Address at which you find the word "Lore") C3/5206: 20F902 JSR $02F9 C3/5209: 20AC61 JSR $61AC C3/520C: 4C4D0F JMP $0F4D C3/520F: A2899D LDX #$9D89 C3/5212: 8E8121 STX $2181 C3/5215: A600 LDX $00 C3/5217: 64E0 STZ $E0 C3/5219: A00800 LDY #$0008 C3/521C: BD291D LDA $1D29,X C3/521F: 6A ROR A C3/5220: 48 PHA C3/5221: 9007 BCC $522A C3/5223: A5E0 LDA $E0 C3/5225: 8D8021 STA $2180 C3/5228: 8005 BRA $522F C3/522A: A9FF LDA #$FF C3/522C: 8D8021 STA $2180 C3/522F: E6E0 INC $E0 C3/5231: 68 PLA C3/5232: 88 DEY C3/5233: D0EA BNE $521F C3/5235: E8 INX C3/5236: E00300 CPX #$0003 C3/5239: D0DE BNE $5219 C3/523B: 60 RTS C3/523C: 200F52 JSR $520F C3/523F: 20F783 JSR $83F7 C3/5242: A00800 LDY #$0008 C3/5245: 5A PHY C3/5246: 205652 JSR $5256 C3/5249: A5E6 LDA $E6 C3/524B: 1A INC A C3/524C: 1A INC A C3/524D: 291F AND #$1F C3/524F: 85E6 STA $E6 C3/5251: 7A PLY C3/5252: 88 DEY C3/5253: D0F0 BNE $5245 C3/5255: 60 RTS C3/5256: A920 LDA #$20 C3/5258: 8529 STA $29 C3/525A: 206652 JSR $5266 C3/525D: A20300 LDX #$0003 C3/5260: 207552 JSR $5275 C3/5263: E6E5 INC $E5 C3/5265: 60 RTS C3/5266: A00A00 LDY #$000A (lore name length) C3/5269: 84EB STY $EB C3/526B: A0FDF9 LDY #$F9FD (lore name address) C3/526E: 84EF STY $EF C3/5270: A9E6 LDA #$E6 (lore name bank) C3/5272: 85F1 STA $F1 C3/5274: 60 RTS C3/5275: A5E6 LDA $E6 C3/5277: 1A INC A C3/5278: 209F80 JSR $809F C3/527B: C220 REP #$20 (16 bit memory/accum.) C3/527D: 8A TXA C3/527E: 8F899E7E STA $7E9E89 C3/5282: E220 SEP #$20 (8 bit memory/accum.) C3/5284: 7B TDC C3/5285: A5E5 LDA $E5 C3/5287: AA TAX C3/5288: BF899D7E LDA $7E9D89,X C3/528C: C9FF CMP #$FF C3/528E: F030 BEQ $52C0 C3/5290: A5E5 LDA $E5 C3/5292: 206784 JSR $8467 (draw the current lore name) C3/5295: A2959E LDX #$9E95 C3/5298: 8E8121 STX $2181 C3/529B: A9C7 LDA #$C7 C3/529D: 8D8021 STA $2180 ('...' character in the font) C3/52A0: A5E5 LDA $E5 (get current selection) C3/52A2: 18 CLC C3/52A3: 698B ADC #$8B (add the first lore to it, making the current selection the current lore) C3/52A5: 200D51 JSR $510D (get MP cost of current lore) C3/52A8: 20E004 JSR $04E0 (turn MP cost into displayable digits) C3/52AB: A5F7 LDA $F7 C3/52AD: 8D8021 STA $2180 C3/52B0: A5F8 LDA $F8 C3/52B2: 8D8021 STA $2180 C3/52B5: A5F9 LDA $F9 C3/52B7: 8D8021 STA $2180 C3/52BA: 9C8021 STZ $2180 (end this string) C3/52BD: 4CD97F JMP $7FD9 C3/52C0: A00E00 LDY #$000E (14 letters) C3/52C3: A28B9E LDX #$9E8B C3/52C6: 8E8121 STX $2181 C3/52C9: A9FF LDA #$FF C3/52CB: 8D8021 STA $2180 (insert a space) C3/52CE: 88 DEY C3/52CF: D0FA BNE $52CB (do 13 times) C3/52D1: 9C8021 STZ $2180 (end this string) C3/52D4: 4CD97F JMP $7FD9 --------------------------------------------------- C3/52D7: 20156A JSR $6A15 C3/52DA: 206E53 JSR $536E C3/52DD: A920 LDA #$20 C3/52DF: 8529 STA $29 (set text color to white) C3/52E1: 20F452 JSR $52F4 C3/52E4: A92C LDA #$2C C3/52E6: 8529 STA $29 (set text color to blue) C3/52E8: A0B85C LDY #$5CB8 (Address at which you find the word "SwdTech") C3/52EB: 20F902 JSR $02F9 C3/52EE: 20AC61 JSR $61AC C3/52F1: 4C4D0F JMP $0F4D C3/52F4: 20F783 JSR $83F7 C3/52F7: E6E6 INC $E6 C3/52F9: 64E5 STZ $E5 C3/52FB: A00400 LDY #$0004 C3/52FE: 5A PHY C3/52FF: 201153 JSR $5311 C3/5302: A5E6 LDA $E6 C3/5304: 1A INC A C3/5305: 1A INC A C3/5306: 1A INC A C3/5307: 1A INC A C3/5308: 291F AND #$1F (clear bits 5, 6, 7) C3/530A: 85E6 STA $E6 C3/530C: 7A PLY C3/530D: 88 DEY C3/530E: D0EE BNE $52FE C3/5310: 60 RTS C3/5311: 202853 JSR $5328 C3/5314: A20300 LDX #$0003 (X position of left half of SwdTech) C3/5317: 203753 JSR $5337 C3/531A: E6E5 INC $E5 C3/531C: 202853 JSR $5328 C3/531F: A21100 LDX #$0011 (X position of right half of SwdTech) C3/5322: 203753 JSR $5337 C3/5325: E6E5 INC $E5 C3/5327: 60 RTS C3/5328: A00C00 LDY #$000C (SwdTech name length) C3/532B: 84EB STY $EB C3/532D: A0403C LDY #$3C40 (SwdTech address) C3/5330: 84EF STY $EF C3/5332: A9CF LDA #$CF (SwdTech bank) C3/5334: 85F1 STA $F1 C3/5336: 60 RTS C3/5337: A5E6 LDA $E6 C3/5339: 209F80 JSR $809F C3/533C: C220 REP #$20 (16 bit memory/accum.) C3/533E: 8A TXA C3/533F: 8F899E7E STA $7E9E89 C3/5343: E220 SEP #$20 (8 bit memory/accum.) C3/5345: 7B TDC C3/5346: A5E5 LDA $E5 C3/5348: AA TAX C3/5349: BF899D7E LDA $7E9D89,X C3/534D: C9FF CMP #$FF C3/534F: F006 BEQ $5357 C3/5351: 206784 JSR $8467 (draw the current SwdTech name) C3/5354: 4CD97F JMP $7FD9 C3/5357: A00C00 LDY #$000C C3/535A: A28B9E LDX #$9E8B C3/535D: 8E8121 STX $2181 C3/5360: A9FF LDA #$FF C3/5362: 8D8021 STA $2180 C3/5365: 88 DEY C3/5366: D0FA BNE $5362 C3/5368: 9C8021 STZ $2180 (end this string) C3/536B: 4CD97F JMP $7FD9 C3/536E: A2899D LDX #$9D89 C3/5371: 8E8121 STX $2181 C3/5374: A00800 LDY #$0008 C3/5377: 64E0 STZ $E0 C3/5379: 7B TDC C3/537A: ADF71C LDA $1CF7 (known swdtech's?) C3/537D: 6A ROR A C3/537E: 48 PHA C3/537F: 9004 BCC $5385 C3/5381: A5E0 LDA $E0 C3/5383: 8002 BRA $5387 C3/5385: A9FF LDA #$FF C3/5387: 8D8021 STA $2180 C3/538A: E6E0 INC $E0 C3/538C: 68 PLA C3/538D: 88 DEY C3/538E: D0ED BNE $537D C3/5390: 60 RTS ---------------------------------------------------- C3/5391: 20156A JSR $6A15 C3/5394: 20A753 JSR $53A7 C3/5397: A92C LDA #$2C C3/5399: 8529 STA $29 C3/539B: A0985C LDY #$5C98 (Address at which you find the word "Rage") C3/539E: 20F902 JSR $02F9 C3/53A1: 20AC61 JSR $61AC C3/53A4: 4C4D0F JMP $0F4D C3/53A7: 20C153 JSR $53C1 C3/53AA: 20F783 JSR $83F7 C3/53AD: A00900 LDY #$0009 C3/53B0: 5A PHY C3/53B1: 20EE53 JSR $53EE C3/53B4: A5E6 LDA $E6 C3/53B6: 1A INC A C3/53B7: 1A INC A C3/53B8: 291F AND #$1F C3/53BA: 85E6 STA $E6 C3/53BC: 7A PLY C3/53BD: 88 DEY C3/53BE: D0F0 BNE $53B0 C3/53C0: 60 RTS C3/53C1: A2899D LDX #$9D89 C3/53C4: 8E8121 STX $2181 C3/53C7: A600 LDX $00 C3/53C9: 64E0 STZ $E0 C3/53CB: A00800 LDY #$0008 C3/53CE: BD2C1D LDA $1D2C,X (known rages) C3/53D1: 6A ROR A C3/53D2: 48 PHA C3/53D3: 9007 BCC $53DC C3/53D5: A5E0 LDA $E0 C3/53D7: 8D8021 STA $2180 C3/53DA: 8005 BRA $53E1 C3/53DC: A9FF LDA #$FF C3/53DE: 8D8021 STA $2180 C3/53E1: E6E0 INC $E0 C3/53E3: 68 PLA C3/53E4: 88 DEY C3/53E5: D0EA BNE $53D1 C3/53E7: E8 INX C3/53E8: E02000 CPX #$0020 C3/53EB: D0DE BNE $53CB C3/53ED: 60 RTS C3/53EE: A920 LDA #$20 C3/53F0: 8529 STA $29 C3/53F2: 200954 JSR $5409 C3/53F5: A20500 LDX #$0005 (X position of left half of Rages) C3/53F8: 201854 JSR $5418 C3/53FB: E6E5 INC $E5 C3/53FD: 200954 JSR $5409 C3/5400: A21300 LDX #$0013 (X position of right half of Rages) C3/5403: 201854 JSR $5418 C3/5406: E6E5 INC $E5 C3/5408: 60 RTS C3/5409: A00A00 LDY #$000A (Rage name length, which corresponds with monster name length) C3/540C: 84EB STY $EB C3/540E: A050C0 LDY #$C050 (Rage address) C3/5411: 84EF STY $EF C3/5413: A9CF LDA #$CF (Rage bank) C3/5415: 85F1 STA $F1 C3/5417: 60 RTS C3/5418: A5E6 LDA $E6 C3/541A: 1A INC A C3/541B: 209F80 JSR $809F C3/541E: C220 REP #$20 (16 bit memory/accum.) C3/5420: 8A TXA C3/5421: 8F899E7E STA $7E9E89 C3/5425: E220 SEP #$20 (8 bit memory/accum.) C3/5427: 7B TDC C3/5428: A5E5 LDA $E5 C3/542A: AA TAX C3/542B: BF899D7E LDA $7E9D89,X C3/542F: C9FF CMP #$FF C3/5431: F008 BEQ $543B C3/5433: A5E5 LDA $E5 C3/5435: 206784 JSR $8467 (draw the current monster name for the rage list) C3/5438: 4CD97F JMP $7FD9 C3/543B: A00A00 LDY #$000A (Enemy names are 10 characters long) C3/543E: A28B9E LDX #$9E8B C3/5441: 8E8121 STX $2181 C3/5444: A9FF LDA #$FF C3/5446: 8D8021 STA $2180 C3/5449: 88 DEY C3/544A: D0FA BNE $5446 C3/544C: 9C8021 STZ $2180 (end this string) C3/544F: 4CD97F JMP $7FD9 ---------------------------------------------------- C3/5452: 20156A JSR $6A15 C3/5455: A920 LDA #$20 C3/5457: 8529 STA $29 (set text color to white) C3/5459: 206C54 JSR $546C C3/545C: A92C LDA #$2C C3/545E: 8529 STA $29 (set text color to blue) C3/5460: A0A75C LDY #$5CA7 (Address at which you find the word "Espers") C3/5463: 20F902 JSR $02F9 C3/5466: 20AC61 JSR $61AC C3/5469: 4C4D0F JMP $0F4D C3/546C: 208654 JSR $5486 C3/546F: 20F783 JSR $83F7 C3/5472: A00800 LDY #$0008 C3/5475: 5A PHY C3/5476: 20E354 JSR $54E3 C3/5479: A5E6 LDA $E6 C3/547B: 1A INC A C3/547C: 1A INC A C3/547D: 291F AND #$1F C3/547F: 85E6 STA $E6 C3/5481: 7A PLY C3/5482: 88 DEY C3/5483: D0F0 BNE $5475 C3/5485: 60 RTS C3/5486: A2ED9D LDX #$9DED C3/5489: 8E8121 STX $2181 C3/548C: A600 LDX $00 C3/548E: 64E0 STZ $E0 C3/5490: A00800 LDY #$0008 (8 bits per byte) C3/5493: BD691A LDA $1A69,X (espers collected) C3/5496: 6A ROR A C3/5497: 48 PHA C3/5498: 9007 BCC $54A1 C3/549A: A5E0 LDA $E0 C3/549C: 8D8021 STA $2180 (if $E0 only holds 0 here, STZ $2180 would've been fine) C3/549F: 8005 BRA $54A6 C3/54A1: A9FF LDA #$FF C3/54A3: 8D8021 STA $2180 C3/54A6: E6E0 INC $E0 (increment number of espers collected?) C3/54A8: 68 PLA C3/54A9: 88 DEY (decrement number of bits left to do) C3/54AA: D0EA BNE $5496 (branch if there are any) C3/54AC: E8 INX C3/54AD: E00400 CPX #$0004 (have we done all 4 esper bytes yet?) C3/54B0: D0DE BNE $5490 (branch if not) C3/54B2: A2899D LDX #$9D89 C3/54B5: 8E8121 STX $2181 C3/54B8: A9FF LDA #$FF C3/54BA: A21D00 LDX #$001D C3/54BD: 8D8021 STA $2180 C3/54C0: CA DEX C3/54C1: D0FA BNE $54BD C3/54C3: A2ED9D LDX #$9DED C3/54C6: 8E8121 STX $2181 C3/54C9: A01B00 LDY #$001B C3/54CC: 7B TDC (keep the upper bits of A clean) C3/54CD: AD8021 LDA $2180 (grab something from working ram, aka WRAM) C3/54D0: 300D BMI $54DF (branch if high bit is set; now, considering where the next LDA is looking at, we can assume this: that block of data is no bigger than #$6B bytes in size) C3/54D2: 48 PHA C3/54D3: AA TAX C3/54D4: BFB5F9D1 LDA $D1F9B5,X C3/54D8: 3A DEC A C3/54D9: AA TAX C3/54DA: 68 PLA C3/54DB: 9F899D7E STA $7E9D89,X C3/54DF: 88 DEY C3/54E0: D0EB BNE $54CD C3/54E2: 60 RTS C3/54E3: 20FA54 JSR $54FA C3/54E6: A20300 LDX #$0003 (X position of left half of espers) C3/54E9: 200955 JSR $5509 C3/54EC: E6E5 INC $E5 C3/54EE: 20FA54 JSR $54FA C3/54F1: A21100 LDX #$0011 (X position of right half of espers) C3/54F4: 200955 JSR $5509 C3/54F7: E6E5 INC $E5 C3/54F9: 60 RTS C3/54FA: A00800 LDY #$0008 (esper name length) C3/54FD: 84EB STY $EB C3/54FF: A0E1F6 LDY #$F6E1 (esper name address) C3/5502: 84EF STY $EF C3/5504: A9E6 LDA #$E6 (esper name bank) C3/5506: 85F1 STA $F1 C3/5508: 60 RTS C3/5509: A5E6 LDA $E6 C3/550B: 1A INC A C3/550C: 209F80 JSR $809F C3/550F: C220 REP #$20 (16 bit memory/accum.) C3/5511: 8A TXA C3/5512: 8F899E7E STA $7E9E89 C3/5516: E220 SEP #$20 (8 bit memory/accum.) C3/5518: 7B TDC C3/5519: A5E5 LDA $E5 C3/551B: AA TAX C3/551C: BF899D7E LDA $7E9D89,X C3/5520: C9FF CMP #$FF C3/5522: F039 BEQ $555D C3/5524: 207455 JSR $5574 (determine if the esper is equipped by anybody) C3/5527: 206784 JSR $8467 (draw the current esper name) C3/552A: 7B TDC C3/552B: A5E5 LDA $E5 C3/552D: AA TAX C3/552E: BF899D7E LDA $7E9D89,X C3/5532: 18 CLC C3/5533: 6936 ADC #$36 (add #$36 to get to the current esper) C3/5535: 200D51 JSR $510D (get MP cost) C3/5538: 48 PHA C3/5539: A2939E LDX #$9E93 C3/553C: 8E8121 STX $2181 C3/553F: A9C7 LDA #$C7 (the '...' character in the font) C3/5541: 8D8021 STA $2180 C3/5544: 68 PLA C3/5545: 20E004 JSR $04E0 (convert MP cost to digits) C3/5548: A5F7 LDA $F7 C3/554A: 8D8021 STA $2180 (draw ones digit) C3/554D: A5F8 LDA $F8 C3/554F: 8D8021 STA $2180 (draw tens digit) C3/5552: A5F9 LDA $F9 C3/5554: 8D8021 STA $2180 (draw hundreds digit) C3/5557: 9C8021 STZ $2180 (end this string) C3/555A: 4CD97F JMP $7FD9 C3/555D: A00C00 LDY #$000C (esper name is 8 letters, 1 for space, 3 more for MP cost) C3/5560: A28B9E LDX #$9E8B C3/5563: 8E8121 STX $2181 C3/5566: A9FF LDA #$FF C3/5568: 8D8021 STA $2180 (draw a space) C3/556B: 88 DEY C3/556C: D0FA BNE $5568 (branch if haven't drawn 12 spaces) C3/556E: 9C8021 STZ $2180 (end this string) C3/5571: 4CD97F JMP $7FD9 Determine who is equipping what espers C3/5574: 85E0 STA $E0 (save the esper in question for now) C3/5576: A600 LDX $00 C3/5578: A01000 LDY #$0010 (16 characters to check, yet only 12 of them can equip espers) C3/557B: BD1E16 LDA $161E,X (esper currently equipped by characters) C3/557E: C5E0 CMP $E0 (does it match the one we're looking at?) C3/5580: F011 BEQ $5593 (branch if so) C3/5582: C220 REP #$20 (16 bit memory/accum.) C3/5584: 8A TXA (otherwise, we need to check the next character) C3/5585: 18 CLC C3/5586: 692500 ADC #$0025 (character structure is #$0025 in size) C3/5589: AA TAX (now the next character can be checked) C3/558A: E220 SEP #$20 (8 bit memory/accum.) C3/558C: 88 DEY C3/558D: D0EC BNE $557B (branch if we haven't checked every character) C3/558F: A920 LDA #$20 (white text color, meaning the esper can be equipped) C3/5591: 8002 BRA $5595 C3/5593: A928 LDA #$28 (gray text color, meaning the esper is already equipped) C3/5595: 8529 STA $29 (set text color) C3/5597: A5E0 LDA $E0 C3/5599: 60 RTS C3/559A: A920 LDA #$20 C3/559C: 8529 STA $29 (set text color to white) C3/559E: C220 REP #$20 (16 bit memory/accum.) C3/55A0: A9CD40 LDA #$40CD C3/55A3: 8F899E7E STA $7E9E89 C3/55A7: A98B9E LDA #$9E8B C3/55AA: 8D8121 STA $2181 C3/55AD: E220 SEP #$20 (8 bit memory/accum.) C3/55AF: A00600 LDY #$0006 C3/55B2: BD0216 LDA $1602,X (character's name) C3/55B5: C9FF CMP #$FF (a space?) C3/55B7: F007 BEQ $55C0 (branch if so) C3/55B9: 8D8021 STA $2180 C3/55BC: E8 INX C3/55BD: 88 DEY C3/55BE: D0F2 BNE $55B2 (branch if we haven't done 6 letters yet) C3/55C0: A600 LDX $00 C3/55C2: BFD95CC3 LDA $C35CD9,X (load text for " has it!") C3/55C6: F006 BEQ $55CE (branch if null-terminated) C3/55C8: 8D8021 STA $2180 C3/55CB: E8 INX C3/55CC: 80F4 BRA $55C2 C3/55CE: 9C8021 STZ $2180 (end this string) C3/55D1: 4CD97F JMP $7FD9 ------------------------------------------------------- C3/55D4: 20156A JSR $6A15 C3/55D7: 20EA55 JSR $55EA C3/55DA: A92C LDA #$2C C3/55DC: 8529 STA $29 (set text color to blue) C3/55DE: A0B05C LDY #$5CB0 (Address at which you find the word "Blitz") C3/55E1: 20F902 JSR $02F9 C3/55E4: 20AC61 JSR $61AC C3/55E7: 4C4D0F JMP $0F4D C3/55EA: 201B56 JSR $561B C3/55ED: 20F783 JSR $83F7 C3/55F0: 64E5 STZ $E5 C3/55F2: E6E6 INC $E6 C3/55F4: A00400 LDY #$0004 C3/55F7: 5A PHY C3/55F8: 200A56 JSR $560A (set both positions for blitz combination display) C3/55FB: A5E6 LDA $E6 C3/55FD: 1A INC A C3/55FE: 1A INC A C3/55FF: 1A INC A C3/5600: 1A INC A (two lines for next blitz sequence) C3/5601: 291F AND #$1F C3/5603: 85E6 STA $E6 C3/5605: 7A PLY C3/5606: 88 DEY C3/5607: D0EE BNE $55F7 C3/5609: 60 RTS C3/560A: A20400 LDX #$0004 (X position of left half of Blitz) C3/560D: 204356 JSR $5643 C3/5610: E6E5 INC $E5 C3/5612: A21200 LDX #$0012 (X position of right half of Blitz) C3/5615: 204356 JSR $5643 C3/5618: E6E5 INC $E5 C3/561A: 60 RTS C3/561B: AD281D LDA $1D28 (load Blitz's learned) C3/561E: 8003 BRA $5623 C3/5620: AD4C1D LDA $1D4C (load Dance's learned) C3/5623: A2899D LDX #$9D89 C3/5626: 8E8121 STX $2181 C3/5629: A600 LDX $00 C3/562B: A00800 LDY #$0008 C3/562E: 6A ROR A C3/562F: 48 PHA C3/5630: 9006 BCC $5638 C3/5632: 8A TXA C3/5633: 8D8021 STA $2180 C3/5636: 8005 BRA $563D C3/5638: A9FF LDA #$FF C3/563A: 8D8021 STA $2180 (draw a space) C3/563D: E8 INX C3/563E: 68 PLA C3/563F: 88 DEY C3/5640: D0EC BNE $562E C3/5642: 60 RTS C3/5643: A5E6 LDA $E6 C3/5645: 209F80 JSR $809F C3/5648: C220 REP #$20 (16 bit memory/accum.) C3/564A: 8A TXA C3/564B: 8F899E7E STA $7E9E89 C3/564F: E220 SEP #$20 (8 bit memory/accum.) C3/5651: 7B TDC C3/5652: A5E5 LDA $E5 C3/5654: AA TAX C3/5655: BF899D7E LDA $7E9D89,X C3/5659: C9FF CMP #$FF C3/565B: F00F BEQ $566C C3/565D: 208356 JSR $5683 (get Blitz combinations displayed) C3/5660: A0899E LDY #$9E89 C3/5663: 84E7 STY $E7 C3/5665: A97E LDA #$7E C3/5667: 85E9 STA $E9 C3/5669: 4CBC56 JMP $56BC (display the tiles put into VRAM) C3/566C: A00800 LDY #$0008 C3/566F: A28B9E LDX #$9E8B C3/5672: 8E8121 STX $2181 C3/5675: A9FF LDA #$FF (A already holds #$FF) C3/5677: 8D8021 STA $2180 (draw a blank space) C3/567A: 88 DEY C3/567B: D0FA BNE $5677 (branch if haven't drawn 8 blank spaces) C3/567D: 9C8021 STZ $2180 (end this string) C3/5680: 4CD97F JMP $7FD9 C3/5683: 48 PHA (from only C3/565D) C3/5684: 0A ASL A (multiply by 2) C3/5685: 0A ASL A (multiply by 4) C3/5686: 0A ASL A (mulitply by 8) C3/5687: 85E0 STA $E0 (store * 8 multiplier) C3/5689: 68 PLA C3/568A: 0A ASL A (multiply by 2) C3/568B: 0A ASL A (multiply by 4) C3/568C: 18 CLC (shifting should've taken care of carry) C3/568D: 65E0 ADC $E0 (add both and the multiplier is 12) C3/568F: AA TAX (transfer multiplier to X) C3/5690: A08B9E LDY #$9E8B C3/5693: 8C8121 STY $2181 C3/5696: A00A00 LDY #$000A C3/5699: DA PHX C3/569A: BF407AC4 LDA $C47A40,X (Load blitz specification character) C3/569E: 0A ASL A C3/569F: AA TAX C3/56A0: BF1C5CC3 LDA $C35C1C,X (blitz character determines which number to get from the font for display) C3/56A4: 8D8021 STA $2180 C3/56A7: E8 INX C3/56A8: BF1C5CC3 LDA $C35C1C,X (20 is normal A0 is vertical flip 60 is horizontal flip C0 is vertical and horizontal flip) C3/56AC: 8D8021 STA $2180 C3/56AF: E8 INX C3/56B0: FA PLX (the previous INX is pointless) C3/56B1: E8 INX C3/56B2: 88 DEY C3/56B3: D0E4 BNE $5699 C3/56B5: 9C8021 STZ $2180 (end this string) C3/56B8: 9C8021 STZ $2180 (end this string) C3/56BB: 60 RTS C3/56BC: A400 LDY $00 C3/56BE: C220 REP #$20 (16 bit memory/accum.) C3/56C0: A7E7 LDA [$E7] C3/56C2: 85EB STA $EB C3/56C4: E6E7 INC $E7 C3/56C6: E6E7 INC $E7 C3/56C8: E220 SEP #$20 (8 bit memory/accum.) C3/56CA: A97E LDA #$7E C3/56CC: 85ED STA $ED C3/56CE: C220 REP #$20 (16 bit memory/accum.) C3/56D0: B7E7 LDA [$E7],Y C3/56D2: F008 BEQ $56DC C3/56D4: 97EB STA [$EB],Y C3/56D6: E220 SEP #$20 (8 bit memory/accum.) C3/56D8: C8 INY C3/56D9: C8 INY C3/56DA: 80F2 BRA $56CE C3/56DC: E220 SEP #$20 (8 bit memory/accum.) C3/56DE: 60 RTS C3/56DF: 20095C JSR $5C09 (Load addresses for Esper descriptions) C3/56E2: 4C2A57 JMP $572A C3/56E5: 20E35B JSR $5BE3 (Load addresses for Magic descriptions) C3/56E8: 4C2A57 JMP $572A Load addresses for Lore descriptions C3/56EB: A2707A LDX #$7A70 C3/56EE: 86E7 STX $E7 C3/56F0: A2A077 LDX #$77A0 C3/56F3: 86EB STX $EB C3/56F5: A9ED LDA #$ED C3/56F7: 85E9 STA $E9 C3/56F9: A9ED LDA #$ED C3/56FB: 85ED STA $ED C3/56FD: 4C2A57 JMP $572A Load addresses for SwdTech descriptions C3/5700: A2AEFF LDX #$FFAE C3/5703: 86E7 STX $E7 C3/5705: A200FD LDX #$FD00 C3/5708: 86EB STX $EB C3/570A: A9CF LDA #$CF C3/570C: 85E9 STA $E9 C3/570E: A9CF LDA #$CF C3/5710: 85ED STA $ED C3/5712: 4C2A57 JMP $572A Load addresses for Blitz descriptions C3/5715: A29EFF LDX #$FF9E C3/5718: 86E7 STX $E7 C3/571A: A200FC LDX #$FC00 C3/571D: 86EB STX $EB C3/571F: A9CF LDA #$CF C3/5721: 85E9 STA $E9 C3/5723: A9CF LDA #$CF C3/5725: 85ED STA $ED C3/5727: 4C2A57 JMP $572A Unpack the text given its starting byte, offset, and pointer table C3/572A: A2C99E LDX #$9EC9 C3/572D: 8E8121 STX $2181 C3/5730: 7B TDC C3/5731: A54B LDA $4B C3/5733: AA TAX C3/5734: BF899D7E LDA $7E9D89,X C3/5738: C9FF CMP #$FF C3/573A: F031 BEQ $576D C3/573C: C220 REP #$20 (16 bit memory/accum.) C3/573E: 0A ASL A C3/573F: A8 TAY C3/5740: B7E7 LDA [$E7],Y C3/5742: A8 TAY C3/5743: E220 SEP #$20 (8 bit memory/accum.) C3/5745: B7EB LDA [$EB],Y C3/5747: F006 BEQ $574F C3/5749: 8D8021 STA $2180 C3/574C: C8 INY C3/574D: 80F6 BRA $5745 C3/574F: 88 DEY C3/5750: B7EB LDA [$EB],Y C3/5752: C8 INY C3/5753: C91C CMP #$1C C3/5755: F010 BEQ $5767 C3/5757: C91D CMP #$1D C3/5759: F00C BEQ $5767 C3/575B: C91E CMP #$1E C3/575D: F008 BEQ $5767 C3/575F: C91F CMP #$1F C3/5761: F004 BEQ $5767 C3/5763: 9C8021 STZ $2180 (end this string) C3/5766: 60 RTS C3/5767: 9C8021 STZ $2180 (end this string) C3/576A: C8 INY C3/576B: 80D8 BRA $5745 C3/576D: A9FF LDA #$FF (A would already contain #$FF, so this is pointless) C3/576F: 8D8021 STA $2180 C3/5772: 80EF BRA $5763 ------------------------------------------------------ C3/5774: 20156A JSR $6A15 C3/5777: 208A57 JSR $578A C3/577A: A92C LDA #$2C C3/577C: 8529 STA $29 C3/577E: A09F5C LDY #$5C9F (Address at which you find the word "Dance") C3/5781: 20F902 JSR $02F9 C3/5784: 20AC61 JSR $61AC C3/5787: 4C4D0F JMP $0F4D C3/578A: 202056 JSR $5620 C3/578D: 20F783 JSR $83F7 C3/5790: E6E6 INC $E6 C3/5792: 64E5 STZ $E5 C3/5794: A00400 LDY #$0004 C3/5797: 5A PHY C3/5798: 20AA57 JSR $57AA C3/579B: A5E6 LDA $E6 C3/579D: 1A INC A C3/579E: 1A INC A C3/579F: 1A INC A C3/57A0: 1A INC A C3/57A1: 291F AND #$1F C3/57A3: 85E6 STA $E6 C3/57A5: 7A PLY C3/57A6: 88 DEY C3/57A7: D0EE BNE $5797 C3/57A9: 60 RTS C3/57AA: 20C157 JSR $57C1 C3/57AD: A20300 LDX #$0003 (X position of left half of Dance) C3/57B0: 20D057 JSR $57D0 C3/57B3: E6E5 INC $E5 C3/57B5: 20C157 JSR $57C1 C3/57B8: A21100 LDX #$0011 (X position of right half of Dance) C3/57BB: 20D057 JSR $57D0 C3/57BE: E6E5 INC $E5 C3/57C0: 60 RTS C3/57C1: A00C00 LDY #$000C (Dance name length) C3/57C4: 84EB STY $EB C3/57C6: A09DFF LDY #$FF9D (Dance address) C3/57C9: 84EF STY $EF C3/57CB: A9E6 LDA #$E6 (Dance bank) C3/57CD: 85F1 STA $F1 C3/57CF: 60 RTS C3/57D0: A5E6 LDA $E6 C3/57D2: 209F80 JSR $809F C3/57D5: C220 REP #$20 (16 bit memory/accum.) C3/57D7: 8A TXA C3/57D8: 8F899E7E STA $7E9E89 C3/57DC: E220 SEP #$20 (8 bit memory/accum.) C3/57DE: 7B TDC C3/57DF: A5E5 LDA $E5 C3/57E1: AA TAX C3/57E2: BF899D7E LDA $7E9D89,X C3/57E6: C9FF CMP #$FF C3/57E8: F006 BEQ $57F0 C3/57EA: 206784 JSR $8467 (draw the current dance name) C3/57ED: 4CD97F JMP $7FD9 C3/57F0: A00C00 LDY #$000C (length of dance names) C3/57F3: A28B9E LDX #$9E8B C3/57F6: 8E8121 STX $2181 C3/57F9: A9FF LDA #$FF (A should already hold #$FF) C3/57FB: 8D8021 STA $2180 (draw a space) C3/57FE: 88 DEY C3/57FF: D0FA BNE $57FB (branch if haven't drawn 12 spaces) C3/5801: 9C8021 STZ $2180 (end this string) C3/5804: 4CD97F JMP $7FD9 C3/5807: 7B TDC C3/5808: A560 LDA $60 C3/580A: AA TAX C3/580B: A9FF LDA #$FF C3/580D: 9FC9357E STA $7E35C9,X C3/5811: 60 RTS C3/5812: 20286A JSR $6A28 C3/5815: A03F58 LDY #$583F C3/5818: 204103 JSR $0341 (window that holds C3/581B: A04358 LDY #$5843 C3/581E: 204103 JSR $0341 (window that holds C3/5821: A04758 LDY #$5847 C3/5824: 204103 JSR $0341 (window that holds C3/5827: 20520E JSR $0E52 C3/582A: 20196A JSR $6A19 C3/582D: A0C0FF LDY #$FFC0 C3/5830: 8435 STY $35 C3/5832: A902 LDA #$02 C3/5834: 0445 TSB $45 C3/5836: 208A31 JSR $318A C3/5839: 204B58 JSR $584B C3/583C: 4C9F31 JMP $319F Window data C3/583F: 9D581318 C3/5843: 8B580702 C3/5847: 8B590703 C3/584B: A920 LDA #$20 C3/584D: 8529 STA $29 (set text color to white) C3/584F: A08958 LDY #$5889 C3/5852: 20F902 JSR $02F9 (draw "MP") C3/5855: A08E58 LDY #$588E C3/5858: 20F902 JSR $02F9 (draw "Needed") C3/585B: 7B TDC C3/585C: A54B LDA $4B C3/585E: 85E5 STA $E5 C3/5860: 20B54F JSR $4FB5 C3/5863: C220 REP #$20 (16 bit memory/accum.) C3/5865: A90D79 LDA #$790D C3/5868: 8F899E7E STA $7E9E89 C3/586C: E220 SEP #$20 (8 bit memory/accum.) C3/586E: 20EC50 JSR $50EC C3/5871: 206784 JSR $8467 C3/5874: 20D97F JSR $7FD9 C3/5877: 20EC50 JSR $50EC C3/587A: 200D51 JSR $510D C3/587D: 20E004 JSR $04E0 C3/5880: A20F7A LDX #$7A0F C3/5883: 20B604 JSR $04B6 C3/5886: 4CD97F JMP $7FD9 C3/5889: 15 7A 8C 8F 00 (MP) C3/588E: 4D 7A 8D 9E 9E 9D 9E 9D 00 (Needed) C3/5897: A44F LDY $4F C3/5899: 848E STY $8E C3/589B: A54A LDA $4A C3/589D: 8590 STA $90 C3/589F: 20545B JSR $5B54 C3/58A2: 209F59 JSR $599F C3/58A5: 20110F JSR $0F11 C3/58A8: 206813 JSR $1368 (trigger NMI) C3/58AB: 20FD0E JSR $0EFD C3/58AE: C220 REP #$20 (16 bit memory/accum.) C3/58B0: A90001 LDA #$0100 C3/58B3: 8F109A7E STA $7E9A10 C3/58B7: E220 SEP #$20 (8 bit memory/accum.) C3/58B9: A549 LDA $49 C3/58BB: 855F STA $5F C3/58BD: A907 LDA #$07 (Skill list Y position in Esper Menu) C3/58BF: 8549 STA $49 C3/58C1: 202D4E JSR $4E2D C3/58C4: A9C0 LDA #$C0 C3/58C6: 1446 TRB $46 C3/58C8: 207D59 JSR $597D C3/58CB: 4C8659 JMP $5986 C3/58CE: 208359 JSR $5983 C3/58D1: 20935B JSR $5B93 C3/58D4: A508 LDA $08 C3/58D6: 8980 BIT #$80 (did you press A?) C3/58D8: F030 BEQ $590A (branch if not, BPL...) C3/58DA: 7B TDC C3/58DB: A54B LDA $4B C3/58DD: D02B BNE $590A C3/58DF: A599 LDA $99 C3/58E1: 207455 JSR $5574 C3/58E4: 85E0 STA $E0 C3/58E6: A529 LDA $29 (load text color) C3/58E8: C928 CMP #$28 (is it gray?) C3/58EA: D016 BNE $5902 (branch if not) C3/58EC: 20C00E JSR $0EC0 (makes the buzzer sound) C3/58EF: A910 LDA #$10 C3/58F1: 0445 TSB $45 C3/58F3: 209A55 JSR $559A C3/58F6: A02000 LDY #$0020 C3/58F9: 8420 STY $20 C3/58FB: A934 LDA #$34 C3/58FD: 8526 STA $26 C3/58FF: 4C110F JMP $0F11 C3/5902: 20B20E JSR $0EB2 (makes the click sound) C3/5905: 202929 JSR $2929 C3/5908: 8009 BRA $5913 C3/590A: A509 LDA $09 C3/590C: 8980 BIT #$80 (did you press B?) C3/590E: F06C BEQ $597C (branch if not, BPL...) C3/5910: 20A90E JSR $0EA9 C3/5913: A910 LDA #$10 C3/5915: 0445 TSB $45 C3/5917: A55F LDA $5F C3/5919: 8549 STA $49 C3/591B: 206C54 JSR $546C C3/591E: 201F09 JSR $091F (set arrow's initial position) C3/5921: C220 REP #$20 (16 bit memory/accum.) C3/5923: A90010 LDA #$1000 C3/5926: 9F4A357E STA $7E354A,X C3/592A: A96000 LDA #$0060 (arrow position in esper menu *after* checking an esper, this position is off) C3/592D: 9FCA347E STA $7E34CA,X C3/5931: E220 SEP #$20 (8 bit memory/accum.) C3/5933: 20184C JSR $4C18 C3/5936: A58E LDA $8E C3/5938: 854D STA $4D C3/593A: A48E LDY $8E C3/593C: 844F STY $4F C3/593E: A590 LDA $90 C3/5940: 854A STA $4A C3/5942: A54A LDA $4A C3/5944: 85E0 STA $E0 C3/5946: A550 LDA $50 C3/5948: 38 SEC C3/5949: E5E0 SBC $E0 C3/594B: 854E STA $4E C3/594D: 20214C JSR $4C21 C3/5950: A906 LDA #$06 C3/5952: 855C STA $5C C3/5954: A908 LDA #$08 C3/5956: 855A STA $5A C3/5958: A902 LDA #$02 C3/595A: 855B STA $5B C3/595C: 20FD0E JSR $0EFD C3/595F: 206813 JSR $1368 (trigger NMI) C3/5962: C220 REP #$20 (16 bit memory/accum.) C3/5964: 7B TDC C3/5965: 8F109A7E STA $7E9A10 C3/5969: E220 SEP #$20 (8 bit memory/accum.) C3/596B: A00001 LDY #$0100 C3/596E: 8439 STY $39 C3/5970: 843D STY $3D C3/5972: 202D4E JSR $4E2D C3/5975: 20110F JSR $0F11 C3/5978: A91E LDA #$1E C3/597A: 8526 STA $26 (execute at C3/28D3) C3/597C: 60 RTS C3/597D: A08C59 LDY #$598C C3/5980: 4CFE05 JMP $05FE C3/5983: 202D07 JSR $072D C3/5986: A09159 LDY #$5991 C3/5989: 4C4006 JMP $0640 Hotspot data C3/598C: 80 00 00 01 07 Finger positioning data C3/5991: 1070 (finger at esper name) C3/5993: 187C (finger on spell 1) C3/5995: 1888 (finger on spell 2) C3/5997: 1894 (finger on spell 3) C3/5999: 18A0 (finger on spell 4) C3/599B: 18AC (finger on spell 5) C3/599D: 18B8 (finger on level up bonus) C3/599F: A920 LDA #$20 C3/59A1: 8529 STA $29 (set text color to white) C3/59A3: A0EA5C LDY #$5CEA C3/59A6: 20F902 JSR $02F9 (display "Learn rate") C3/59A9: A0E25C LDY #$5CE2 C3/59AC: 20F902 JSR $02F9 (display "Skill") C3/59AF: A599 LDA $99 C3/59B1: 207455 JSR $5574 C3/59B4: A01144 LDY #$4411 C3/59B7: 201935 JSR $3519 (esper name position) C3/59BA: 7B TDC C3/59BB: A599 LDA $99 C3/59BD: 0A ASL A C3/59BE: 0A ASL A C3/59BF: 0A ASL A C3/59C0: AA TAX C3/59C1: A00800 LDY #$0008 (Indirectly says below is 8 chars long) C3/59C4: BFE1F6E6 LDA $E6F6E1,X (Load Esper X's name) C3/59C8: 8D8021 STA $2180 C3/59CB: E8 INX C3/59CC: 88 DEY C3/59CD: D0F5 BNE $59C4 C3/59CF: 9C8021 STZ $2180 (end this string) C3/59D2: 20D97F JSR $7FD9 (write out esper name) C3/59D5: 7B TDC C3/59D6: A54B LDA $4B C3/59D8: AA TAX C3/59D9: BF899D7E LDA $7E9D89,X C3/59DD: 8D0242 STA $4202 C3/59E0: A90B LDA #$0B C3/59E2: 8D0342 STA $4203 C3/59E5: A920 LDA #$20 C3/59E7: 8529 STA $29 (set text color to white) C3/59E9: A01100 LDY #$0011 C3/59EC: 84F5 STY $F5 C3/59EE: C220 REP #$20 (16 bit memory/accum.) C3/59F0: AD1642 LDA $4216 C3/59F3: AA TAX C3/59F4: E220 SEP #$20 (8 bit memory/accum.) C3/59F6: BF006ED8 LDA $D86E00,X (Load data for esper X) C3/59FA: 85E0 STA $E0 C3/59FC: E8 INX C3/59FD: BF006ED8 LDA $D86E00,X (Load data for esper X) C3/5A01: 85E1 STA $E1 C3/5A03: E8 INX C3/5A04: DA PHX C3/5A05: A20500 LDX #$0005 (up to 5 spells to display) C3/5A08: A4F5 LDY $F5 C3/5A0A: A5E1 LDA $E1 C3/5A0C: 48 PHA C3/5A0D: 20E15A JSR $5AE1 (get a spell to learn) C3/5A10: A21800 LDX #$0018 C3/5A13: A4F5 LDY $F5 C3/5A15: 68 PLA C3/5A16: 85E1 STA $E1 C3/5A18: 20845A JSR $5A84 (get spell's learned %) C3/5A1B: FA PLX C3/5A1C: C220 REP #$20 (16 bit memory/accum.) C3/5A1E: E6F5 INC $F5 C3/5A20: E6F5 INC $F5 C3/5A22: A5F5 LDA $F5 C3/5A24: C91B00 CMP #$001B C3/5A27: D0CB BNE $59F4 C3/5A29: E220 SEP #$20 (8 bit memory/accum.) C3/5A2B: BF006ED8 LDA $D86E00,X (Load data for esper X) C3/5A2F: C9FF CMP #$FF C3/5A31: F034 BEQ $5A67 (branch if no level up bonus) C3/5A33: 8D0242 STA $4202 C3/5A36: A909 LDA #$09 C3/5A38: 8D0342 STA $4203 C3/5A3B: A01347 LDY #$4713 C3/5A3E: 201935 JSR $3519 (position of "At level up...") C3/5A41: A600 LDX $00 C3/5A43: BFF75CC3 LDA $C35CF7,X (get "At level up..." text) C3/5A47: 8D8021 STA $2180 C3/5A4A: E8 INX C3/5A4B: E00E00 CPX #$000E (text is not null-terminated, so keep track of how much of the name has been drawn) C3/5A4E: D0F3 BNE $5A43 (branch if haven't done 14 letters) C3/5A50: AE1642 LDX $4216 C3/5A53: A00900 LDY #$0009 C3/5A56: BFAEFECF LDA $CFFEAE,X (short esper bonus descriptions) C3/5A5A: 8D8021 STA $2180 C3/5A5D: E8 INX C3/5A5E: 88 DEY C3/5A5F: D0F5 BNE $5A56 C3/5A61: 9C8021 STZ $2180 (end this string) C3/5A64: 4CD97F JMP $7FD9 C3/5A67: A01347 LDY #$4713 C3/5A6A: 201935 JSR $3519 (position of "At level up...") C3/5A6D: A01700 LDY #$0017 C3/5A70: A28B9E LDX #$9E8B C3/5A73: 8E8121 STX $2181 C3/5A76: A9FF LDA #$FF C3/5A78: 8D8021 STA $2180 (insert a space) C3/5A7B: 88 DEY C3/5A7C: D0FA BNE $5A78 (do 22 times) C3/5A7E: 9C8021 STZ $2180 (end this string) C3/5A81: 4CD97F JMP $7FD9 C3/5A84: 203D5B JSR $5B3D C3/5A87: C220 REP #$20 (16 bit memory/accum.) C3/5A89: 8A TXA C3/5A8A: 8F899E7E STA $7E9E89 C3/5A8E: E220 SEP #$20 (8 bit memory/accum.) C3/5A90: A28B9E LDX #$9E8B C3/5A93: 8E8121 STX $2181 C3/5A96: A5E1 LDA $E1 C3/5A98: C9FF CMP #$FF C3/5A9A: F035 BEQ $5AD1 (branch if no spell) C3/5A9C: 20A250 JSR $50A2 (get current spell's learn %) C3/5A9F: C9FF CMP #$FF C3/5AA1: F01F BEQ $5AC2 (branch if already learned this spell) C3/5AA3: 48 PHA C3/5AA4: A9FF LDA #$FF C3/5AA6: 8D8021 STA $2180 (insert a space) C3/5AA9: 68 PLA C3/5AAA: 20E004 JSR $04E0 (turn A into displayable digits) C3/5AAD: A5F8 LDA $F8 C3/5AAF: 8D8021 STA $2180 (draw ones digit) C3/5AB2: A5F9 LDA $F9 C3/5AB4: 8D8021 STA $2180 (draw tens digit) C3/5AB7: A9CD LDA #$CD ('%' character in the font) C3/5AB9: 8D8021 STA $2180 C3/5ABC: 9C8021 STZ $2180 (end this string) C3/5ABF: 4CD97F JMP $7FD9 C3/5AC2: A9B5 LDA #$B5 ('1' character in the font) C3/5AC4: 8D8021 STA $2180 C3/5AC7: A9B4 LDA #$B4 ('0' character in the font) C3/5AC9: 8D8021 STA $2180 C3/5ACC: 8D8021 STA $2180 (make '100%', adds the '%' after the branch) C3/5ACF: 80E6 BRA $5AB7 C3/5AD1: A9FF LDA #$FF (spell not learned, blank out) C3/5AD3: 8D8021 STA $2180 C3/5AD6: 8D8021 STA $2180 C3/5AD9: 8D8021 STA $2180 C3/5ADC: 8D8021 STA $2180 (four spaces) C3/5ADF: 80DB BRA $5ABC Display spell to learn, used by Esper menu and item properties menu C3/5AE1: 203D5B JSR $5B3D C3/5AE4: C220 REP #$20 (16 bit memory/accum.) C3/5AE6: 8A TXA C3/5AE7: 8F899E7E STA $7E9E89 C3/5AEB: E220 SEP #$20 (8 bit memory/accum.) C3/5AED: 20B54F JSR $4FB5 (get spell name length and location) C3/5AF0: A5E1 LDA $E1 C3/5AF2: C9FF CMP #$FF C3/5AF4: F030 BEQ $5B26 (branch if no spell) C3/5AF6: 206784 JSR $8467 (draw the spell name) C3/5AF9: A2929E LDX #$9E92 (space between spell name and ':' character) C3/5AFC: 8E8121 STX $2181 C3/5AFF: A9C1 LDA #$C1 (':' character in the font) C3/5B01: 8D8021 STA $2180 C3/5B04: A9FF LDA #$FF C3/5B06: 8D8021 STA $2180 C3/5B09: 8D8021 STA $2180 (two spaces) C3/5B0C: A9D7 LDA #$D7 (special 'x' character in the font) C3/5B0E: 8D8021 STA $2180 C3/5B11: A5E0 LDA $E0 C3/5B13: 20E004 JSR $04E0 (turn A into displayable digits) C3/5B16: A5F8 LDA $F8 C3/5B18: 8D8021 STA $2180 C3/5B1B: A5F9 LDA $F9 C3/5B1D: 8D8021 STA $2180 C3/5B20: 9C8021 STZ $2180 (end this string) C3/5B23: 4CD97F JMP $7FD9 C3/5B26: A00F00 LDY #$000F (15...) C3/5B29: A28B9E LDX #$9E8B C3/5B2C: 8E8121 STX $2181 C3/5B2F: A9FF LDA #$FF C3/5B31: 8D8021 STA $2180 (insert a space) C3/5B34: 88 DEY C3/5B35: D0FA BNE $5B31 (do 14 times?) C3/5B37: 9C8021 STZ $2180 (end this string) C3/5B3A: 4CD97F JMP $7FD9 C3/5B3D: C220 REP #$20 (16 bit memory/accum.) C3/5B3F: 98 TYA C3/5B40: 0A ASL A C3/5B41: 0A ASL A C3/5B42: 0A ASL A C3/5B43: 0A ASL A C3/5B44: 0A ASL A C3/5B45: 0A ASL A C3/5B46: 85E7 STA $E7 C3/5B48: 8A TXA C3/5B49: 0A ASL A C3/5B4A: 18 CLC C3/5B4B: 65E7 ADC $E7 C3/5B4D: 694940 ADC #$4049 C3/5B50: AA TAX C3/5B51: E220 SEP #$20 (8 bit memory/accum.) C3/5B53: 60 RTS C3/5B54: 7B TDC C3/5B55: A599 LDA $99 C3/5B57: 8F8DAB7E STA $7EAB8D C3/5B5B: A54B LDA $4B C3/5B5D: AA TAX C3/5B5E: BF899D7E LDA $7E9D89,X C3/5B62: 8D0242 STA $4202 C3/5B65: A90B LDA #$0B C3/5B67: 8D0342 STA $4203 C3/5B6A: 8B PHB C3/5B6B: A97E LDA #$7E C3/5B6D: 48 PHA C3/5B6E: AB PLB C3/5B6F: A00100 LDY #$0001 C3/5B72: C220 REP #$20 (16 bit memory/accum.) C3/5B74: AF164200 LDA $004216 C3/5B78: AA TAX C3/5B79: E220 SEP #$20 (8 bit memory/accum.) C3/5B7B: E8 INX C3/5B7C: BF006ED8 LDA $D86E00,X (Load data for esper X) C3/5B80: 998DAB STA $AB8D,Y C3/5B83: E8 INX C3/5B84: C8 INY C3/5B85: C00600 CPY #$0006 C3/5B88: D0F1 BNE $5B7B C3/5B8A: BF006ED8 LDA $D86E00,X (Load data for esper X) C3/5B8E: 8D93AB STA $AB93 C3/5B91: AB PLB C3/5B92: 60 RTS C3/5B93: A2C99E LDX #$9EC9 C3/5B96: 8E8121 STX $2181 C3/5B99: 7B TDC C3/5B9A: A54B LDA $4B C3/5B9C: AA TAX C3/5B9D: BF8DAB7E LDA $7EAB8D,X (Load the inventory quantity for X) C3/5BA1: C9FF CMP #$FF C3/5BA3: F02C BEQ $5BD1 C3/5BA5: 48 PHA C3/5BA6: 20DB5B JSR $5BDB C3/5BA9: 68 PLA C3/5BAA: C220 REP #$20 (16 bit memory/accum.) C3/5BAC: 0A ASL A C3/5BAD: A8 TAY C3/5BAE: B7E7 LDA [$E7],Y C3/5BB0: A8 TAY C3/5BB1: E220 SEP #$20 (8 bit memory/accum.) C3/5BB3: B7EB LDA [$EB],Y C3/5BB5: F006 BEQ $5BBD C3/5BB7: 8D8021 STA $2180 C3/5BBA: C8 INY C3/5BBB: 80F6 BRA $5BB3 C3/5BBD: 88 DEY C3/5BBE: B7EB LDA [$EB],Y C3/5BC0: C8 INY C3/5BC1: C91C CMP #$1C C3/5BC3: F010 BEQ $5BD5 C3/5BC5: C91D CMP #$1D C3/5BC7: F00C BEQ $5BD5 C3/5BC9: C91E CMP #$1E C3/5BCB: F008 BEQ $5BD5 C3/5BCD: C91F CMP #$1F C3/5BCF: F004 BEQ $5BD5 C3/5BD1: 9C8021 STZ $2180 (end this string) C3/5BD4: 60 RTS C3/5BD5: 9C8021 STZ $2180 (end this string) C3/5BD8: C8 INY C3/5BD9: 80D8 BRA $5BB3 Load addresses for Magic descriptions C3/5BDB: A54B LDA $4B C3/5BDD: F02A BEQ $5C09 C3/5BDF: C906 CMP #$06 C3/5BE1: F013 BEQ $5BF6 C3/5BE3: A280CF LDX #$CF80 C3/5BE6: 86E7 STX $E7 C3/5BE8: A2A0C9 LDX #$C9A0 C3/5BEB: 86EB STX $EB C3/5BED: A9D8 LDA #$D8 C3/5BEF: 85E9 STA $E9 C3/5BF1: A9D8 LDA #$D8 C3/5BF3: 85ED STA $ED C3/5BF5: 60 RTS Load addresses for Long Esper Bonus descriptions C3/5BF6: A2D0FF LDX #$FFD0 C3/5BF9: 86E7 STX $E7 C3/5BFB: A200FE LDX #$FE00 C3/5BFE: 86EB STX $EB C3/5C00: A9ED LDA #$ED C3/5C02: 85E9 STA $E9 C3/5C04: A9ED LDA #$ED C3/5C06: 85ED STA $ED C3/5C08: 60 RTS Load addresses for Esper descriptions C3/5C09: A240FE LDX #$FE40 C3/5C0C: 86E7 STX $E7 C3/5C0E: A24039 LDX #$3940 C3/5C11: 86EB STX $EB C3/5C13: A9CF LDA #$CF C3/5C15: 85E9 STA $E9 C3/5C17: A9CF LDA #$CF C3/5C19: 85ED STA $ED C3/5C1B: 60 RTS Blitz character table (hint: look in a table file) C3/5C1C: 0000 C3/5C1E: 0000 (A's entry would go here, but there's no point...) C3/5C20: 0000 (B's entry would go here, but there's no point...) C3/5C22: 9720 (X, normal orientation) C3/5C24: 9820 (Y, normal orientation) C3/5C26: 8B20 (L, normal orientation) C3/5C28: 9120 (R, normal orientation) C3/5C2A: D620 (down/left, normal orientation) C3/5C2C: D4A0 (up, flipped vertically, aka down) C3/5C2E: D660 (down/left, flipped horizontally, aka down/right) C3/5C30: D520 (right, normal orientation) C3/5C32: D6C0 (down/left, facing up/right) C3/5C34: D420 (up, normal orientation) C3/5C36: D6A0 (down/left, flipped vertically, aka up/left) C3/5C38: D560 (right, flipped horizontally, aka left) C3/5C3A: 485C C3/5C3C: 515C C3/5C3E: 595C C3/5C40: 635C C3/5C42: 6B5C C3/5C44: 725C C3/5C46: 795C C3/5C48: 0D7984ACA99EABAC00 (position of and word "Espers") C3/5C51: 8D798C9AA0A29C00 (position of and word "Magic") C3/5C59: 8D7A92B09D939E9CA100 (position of and word "SwdTech") C3/5C63: 0D7B81A5A2ADB300 (position of and word "Blitz") C3/5C6B: 8D7B8BA8AB9E00 (position of and word "Lore") C3/5C72: 0D7C919AA09E00 (position of and word "Rage") C3/5C79: 8D7C839AA79C9E00 (position of and word "Dance") Data: Used by C3/69BA C3/5C81: C25C (from C3/4D30?) C3/5C83: C75C C3/5C85: CC5C C3/5C87: B7818C8FC7FFFFFFFF00 (position of and word "MP... ") C3/5C91: B7818BA8AB9E00 (position of and word "Lore") C3/5C98: B781919AA09E00 (position of and word "Rage") C3/5C9F: B781839AA79C9E00 (position of and word "Dance") C3/5CA7: B78184ACA99EABAC00 (position of and word "Espers") C3/5CB0: B78181A5A2ADB300 (position of and word "Blitz") C3/5CB8: B78192B09D939E9CA100 (position of and word "SwdTech") C3/5CC2: 2D428B9500 (position of and word "LV") C3/5CC7: AD42878F00 (position of and word "HP") C3/5CCA: 2D438C8F00 (position of and word "MP") C3/5CD1: BB42C000 (from C3/4EF6, position of and character "/") C3/5CD5: 3B43C000 (from C3/4EFC, position of and character "/") C3/5CD9: FFA19AACFFA2ADBE00 (" has it!") C3/5CE2: 394492A4A2A5A500 (position of and word "Skill") C3/5CEA: 23448B9E9AABA7C5919AAD9E00 (position of and words "Learn rate") C3/5CF7: 80ADFFA59EAF9EA5FFAEA9C5C5C5 (position of and words "At level up...", note this isn't terminated) C3/5D05: 20175D JSR $5D17 (from C3/1C4C) C3/5D08: 20C15D JSR $5DC1 C3/5D0B: 203C5D JSR $5D3C C3/5D0E: 208D5F JSR $5F8D (display stats for status screen) C3/5D11: 20775D JSR $5D77 C3/5D14: 4CAC61 JMP $61AC C3/5D17: 20156A JSR $6A15 C3/5D1A: 20236A JSR $6A23 C3/5D1D: 203C6A JSR $6A3C C3/5D20: 20416A JSR $6A41 C3/5D23: 20466A JSR $6A46 C3/5D26: 204B6A JSR $6A4B C3/5D29: A0815F LDY #$5F81 C3/5D2C: 204103 JSR $0341 (window for the status screen) C3/5D2F: A0795F LDY #$5F79 C3/5D32: 204103 JSR $0341 (window that holds "Status") C3/5D35: A07D5F LDY #$5F7D C3/5D38: 204103 JSR $0341 (window that holds commands) C3/5D3B: 60 RTS C3/5D3C: 20415D JSR $5D41 (from C3/5D0B, C3/6357) C3/5D3F: 801B BRA $5D5C C3/5D41: A920 LDA #$20 (from C3/5D3C, C3/5D83) C3/5D43: 8529 STA $29 (set text color to white) C3/5D45: A25B64 LDX #$645B C3/5D48: A00800 LDY #$0008 C3/5D4B: 20BA69 JSR $69BA (display "/," "/," "%," and "%") C3/5D4E: A924 LDA #$24 C3/5D50: 8529 STA $29 (set text color to blue) C3/5D52: A25564 LDX #$6455 C3/5D55: A00600 LDY #$0006 C3/5D58: 20BA69 JSR $69BA (display "LV," "HP," and "MP") C3/5D5B: 60 RTS C3/5D5C: A92C LDA #$2C C3/5D5E: 8529 STA $29 (set text color to blue) C3/5D60: A23764 LDX #$6437 C3/5D63: A01E00 LDY #$001E C3/5D66: 20BA69 JSR $69BA (display "Vigor," "Stamina," "Mag.Pwr," "Evade%," "MBlock%," "..," "..," "..," "..," "..," "..," "..," "..," "..," and "Status") C3/5D69: A92C LDA #$2C C3/5D6B: 8529 STA $29 (set text color to blue) C3/5D6D: A26364 LDX #$6463 C3/5D70: A00C00 LDY #$000C C3/5D73: 20BA69 JSR $69BA (display "Speed," "Bat. Pwr," "Defense," "Mag.Def," Your Exp:," and "For level up:") C3/5D76: 60 RTS C3/5D77: 20520E JSR $0E52 C3/5D7A: 20280E JSR $0E28 C3/5D7D: 206E0E JSR $0E6E C3/5D80: 4C7C0E JMP $0E7C C3/5D83: 20415D JSR $5D41 C3/5D86: 208D5F JSR $5F8D (display status for status screen) C3/5D89: 20A261 JSR $61A2 C3/5D8C: A00000 LDY #$0000 C3/5D8F: 8414 STY $14 C3/5D91: A04938 LDY #$3849 C3/5D94: 8416 STY $16 C3/5D96: A00008 LDY #$0800 C3/5D99: 8412 STY $12 C3/5D9B: A00040 LDY #$4000 C3/5D9E: 841B STY $1B C3/5DA0: A04978 LDY #$7849 C3/5DA3: 841D STY $1D C3/5DA5: A00008 LDY #$0800 C3/5DA8: 8419 STY $19 C3/5DAA: 20B011 JSR $11B0 (execute everything in OAM queue) C3/5DAD: 206813 JSR $1368 (trigger NMI) C3/5DB0: A400 LDY $00 C3/5DB2: 841B STY $1B C3/5DB4: A00048 LDY #$4800 C3/5DB7: 8414 STY $14 C3/5DB9: A04988 LDY #$8849 C3/5DBC: 8416 STY $16 C3/5DBE: 4C6813 JMP $1368 (trigger NMI) C3/5DC1: A2099E LDX #$9E09 (from C3/5D08) C3/5DC4: 8E8121 STX $2181 C3/5DC7: 7B TDC (A = #$0000) C3/5DC8: AA TAX (X = #$0000) C3/5DC9: DA PHX (save X) C3/5DCA: C220 REP #$20 (16 bit memory/accum.) C3/5DCC: 8A TXA C3/5DCD: 0A ASL A (* 2) C3/5DCE: AA TAX C3/5DCF: ADDC1E LDA $1EDC C3/5DD2: 3F679CC3 AND $C39C67,X C3/5DD6: F023 BEQ $5DFB C3/5DD8: C220 REP #$20 (16 bit memory/accum.) C3/5DDA: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/5DDE: AA TAX C3/5DDF: E220 SEP #$20 (8 bit memory/accum.) C3/5DE1: BD1600 LDA $0016,X (unmodified command 1) C3/5DE4: 8D8021 STA $2180 C3/5DE7: BD1700 LDA $0017,X (unmodified command 2) C3/5DEA: 8D8021 STA $2180 C3/5DED: BD1800 LDA $0018,X (unmodified command 3) C3/5DF0: 8D8021 STA $2180 C3/5DF3: BD1900 LDA $0019,X (unmodified command 4) C3/5DF6: 8D8021 STA $2180 C3/5DF9: 8010 BRA $5E0B C3/5DFB: E220 SEP #$20 (8 bit memory/accum.) C3/5DFD: A9FF LDA #$FF C3/5DFF: 8D8021 STA $2180 C3/5E02: 8D8021 STA $2180 C3/5E05: 8D8021 STA $2180 C3/5E08: 8D8021 STA $2180 (four spaces, 16 loop iterations) C3/5E0B: FA PLX C3/5E0C: E8 INX C3/5E0D: E01000 CPX #$0010 C3/5E10: D0B7 BNE $5DC9 C3/5E12: 7B TDC (A = #$0000) C3/5E13: AA TAX (X = #$0000) C3/5E14: DA PHX (save X) C3/5E15: BF099E7E LDA $7E9E09,X C3/5E19: DF0A9E7E CMP $7E9E0A,X C3/5E1D: D008 BNE $5E27 C3/5E1F: 48 PHA C3/5E20: A9FF LDA #$FF C3/5E22: 9F0A9E7E STA $7E9E0A,X C3/5E26: 68 PLA C3/5E27: E8 INX C3/5E28: E04000 CPX #$0040 C3/5E2B: D0EC BNE $5E19 C3/5E2D: FA PLX C3/5E2E: E8 INX C3/5E2F: E04000 CPX #$0040 C3/5E32: D0E0 BNE $5E14 C3/5E34: A28A9D LDX #$9D8A C3/5E37: 8E8121 STX $2181 C3/5E3A: A9FF LDA #$FF C3/5E3C: 8D8021 STA $2180 C3/5E3F: 7B TDC (A = #$0000) C3/5E40: AA TAX (X = #$0000) C3/5E41: A8 TAY (Y = #$0000) C3/5E42: 7B TDC (A = #$0000) C3/5E43: DA PHX C3/5E44: BF099E7E LDA $7E9E09,X (load command?) C3/5E48: 3016 BMI $5E60 C3/5E4A: C912 CMP #$12 (is command Mimic?) C3/5E4C: F012 BEQ $5E60 (branch if so) C3/5E4E: 85E0 STA $E0 C3/5E50: 0A ASL A C3/5E51: AA TAX C3/5E52: BF00FECF LDA $CFFE00,X (load command info) C3/5E56: 2901 AND #$01 (can Gogo use this command?) C3/5E58: F006 BEQ $5E60 (branch if not) C3/5E5A: A5E0 LDA $E0 C3/5E5C: 8D8021 STA $2180 C3/5E5F: C8 INY C3/5E60: FA PLX C3/5E61: E8 INX C3/5E62: E04000 CPX #$0040 C3/5E65: D0DB BNE $5E42 C3/5E67: C8 INY C3/5E68: 98 TYA C3/5E69: 8F899D7E STA $7E9D89 C3/5E6D: A28DAA LDX #$AA8D C3/5E70: 8E8121 STX $2181 C3/5E73: 7B TDC (A = #$0000) C3/5E74: AA TAX (X = #$0000) C3/5E75: BF855FC3 LDA $C35F85,X (window data for Gogo's command list?) C3/5E79: 8D8021 STA $2180 C3/5E7C: E8 INX C3/5E7D: E00800 CPX #$0008 C3/5E80: D0F3 BNE $5E75 C3/5E82: 98 TYA C3/5E83: 85E2 STA $E2 C3/5E85: 18 CLC C3/5E86: 65E2 ADC $E2 C3/5E88: 65E2 ADC $E2 C3/5E8A: 29FE AND #$FE C3/5E8C: F002 BEQ $5E90 C3/5E8E: 1A INC A C3/5E8F: 1A INC A C3/5E90: 4A LSR A C3/5E91: 8F90AA7E STA $7EAA90 C3/5E95: 8F94AA7E STA $7EAA94 C3/5E99: A08DAA LDY #$AA8D C3/5E9C: A97E LDA #$7E C3/5E9E: 85E9 STA $E9 (JSR $0343 would've worked) C3/5EA0: 204503 JSR $0345 (draw a window, data at 7E/AA8D) C3/5EA3: A091AA LDY #$AA91 C3/5EA6: A97E LDA #$7E C3/5EA8: 85E9 STA $E9 (JSR $0343 would've worked) C3/5EAA: 204503 JSR $0345 (draw a window, data at 7E/AA91) C3/5EAD: AF899D7E LDA $7E9D89 C3/5EB1: 85E5 STA $E5 C3/5EB3: 64E6 STZ $E6 C3/5EB5: 7B TDC (A = #$0000) C3/5EB6: AA TAX (X = #$0000) C3/5EB7: A0C980 LDY #$80C9 C3/5EBA: DA PHX C3/5EBB: 5A PHY C3/5EBC: BF8A9D7E LDA $7E9D8A,X C3/5EC0: 20D75E JSR $5ED7 (check for grayed commands) C3/5EC3: 7A PLY C3/5EC4: C220 REP #$20 (16 bit memory/accum.) C3/5EC6: 98 TYA C3/5EC7: 18 CLC C3/5EC8: 698000 ADC #$0080 C3/5ECB: A8 TAY C3/5ECC: E220 SEP #$20 (8 bit memory/accum.) C3/5ECE: FA PLX C3/5ECF: E8 INX C3/5ED0: E4E5 CPX $E5 C3/5ED2: D0E6 BNE $5EBA C3/5ED4: 4C505F JMP $5F50 (blank out Gogo's portrait for the command list) C3/5ED7: 48 PHA C3/5ED8: 201935 JSR $3519 C3/5EDB: 68 PLA C3/5EDC: 302E BMI $5F0C (blank out the command name) C3/5EDE: 4CE65E JMP $5EE6 (no BRA?) Check for blank and grayed out commands C3/5EE1: 202C61 JSR $612C (Check for blanked commands) C3/5EE4: 3026 BMI $5F0C C3/5EE6: 20255F JSR $5F25 (Check for greyed out commands) C3/5EE9: 85E2 STA $E2 C3/5EEB: 48 PHA C3/5EEC: 0A ASL A C3/5EED: 0A ASL A C3/5EEE: 85E0 STA $E0 C3/5EF0: 68 PLA C3/5EF1: 0A ASL A C3/5EF2: 18 CLC C3/5EF3: 65E0 ADC $E0 C3/5EF5: 65E2 ADC $E2 C3/5EF7: AA TAX C3/5EF8: A00700 LDY #$0007 (Commands are 7 letters long) C3/5EFB: BFA0CED8 LDA $D8CEA0,X (Load Xth letter of Battle Cmd. name) C3/5EFF: 8D8021 STA $2180 C3/5F02: E8 INX C3/5F03: 88 DEY C3/5F04: D0F5 BNE $5EFB C3/5F06: 9C8021 STZ $2180 (end this string) C3/5F09: 4CD97F JMP $7FD9 C3/5F0C: A9FF LDA #$FF C3/5F0E: 8D8021 STA $2180 C3/5F11: 8D8021 STA $2180 C3/5F14: 8D8021 STA $2180 C3/5F17: 8D8021 STA $2180 C3/5F1A: 8D8021 STA $2180 C3/5F1D: 8D8021 STA $2180 C3/5F20: 8D8021 STA $2180 (7 spaces. Blank out command space) C3/5F23: 80E1 BRA $5F06 Check for greyed out commands (judging from this, adding Sketch shouldn't be difficult) C3/5F25: 48 PHA C3/5F26: C90B CMP #$0B (is it runic?) C3/5F28: F010 BEQ $5F3A C3/5F2A: C907 CMP #$07 (is it swdtech?) C3/5F2C: F016 BEQ $5F44 C3/5F2E: A920 LDA #$20 C3/5F30: 8529 STA $29 (set text color to white) C3/5F32: 68 PLA C3/5F33: 60 RTS C3/5F34: A924 LDA #$24 C3/5F36: 8529 STA $29 (set text color to gray) C3/5F38: 68 PLA C3/5F39: 60 RTS Grey out Runic command if no weapons have Runic ability C3/5F3A: ADDA11 LDA $11DA C3/5F3D: 0DDB11 ORA $11DB C3/5F40: 10F2 BPL $5F34 C3/5F42: 80EA BRA $5F2E Grey out SwdTech command if no weapons have SwdTech ability C3/5F44: ADDA11 LDA $11DA C3/5F47: 0DDB11 ORA $11DB C3/5F4A: 8902 BIT #$02 C3/5F4C: F0E6 BEQ $5F34 C3/5F4E: 80DE BRA $5F2E Put Gogo's portrait behind the menu tiles C3/5F50: A2CA61 LDX #$61CA (where to start the portrait overwriting) C3/5F53: 86E7 STX $E7 C3/5F55: A97E LDA #$7E C3/5F57: 85E9 STA $E9 C3/5F59: A20600 LDX #$0006 (how many tiles to do; Note: Gogo's portrait is not completely overwritten here, as the starting position and/or number of tiles is off. The bottom row of pixels for the portrait isn't overwritten, and "Throw" has a nice display error.) C3/5F5C: 7B TDC C3/5F5D: A8 TAY C3/5F5E: A93D LDA #$3D C3/5F60: 97E7 STA [$E7],Y (change top byte of tilemap entry. to my knowledge, it's normally 1Dh, which means we're turning on Bit 13 of the word. this bit gives foreground priority to the tile, thus moving the background in front of the portrait.) C3/5F62: C8 INY C3/5F63: C8 INY (move to next entry in tilemap) C3/5F64: C01200 CPY #$0012 C3/5F67: D0F7 BNE $5F60 (loop for 9 tiles) C3/5F69: C220 REP #$20 (16 bit memory/accum.) C3/5F6B: A5E7 LDA $E7 C3/5F6D: 18 CLC C3/5F6E: 694000 ADC #$0040 C3/5F71: 85E7 STA $E7 C3/5F73: E220 SEP #$20 (8 bit memory/accum.) C3/5F75: CA DEX C3/5F76: D0E4 BNE $5F5C (loop for 6 tile rows) C3/5F78: 60 RTS Data: windows C3/5F79: 8B 58 06 01 C3/5F7D: EB 5A 09 06 C3/5F81: 8B 58 1C 18 C3/5F85: C7 58 00 12 C3/5F89: 87 60 07 12 C3/5F8D: 7B TDC C3/5F8E: A528 LDA $28 C3/5F90: 0A ASL A C3/5F91: AA TAX C3/5F92: 7C955F JMP ($5F95,X) C3/5F95: 9D 5F C3/5F97: A7 5F C3/5F99: B1 5F C3/5F9B: BB 5F C3/5F9D: A66D LDX $6D C3/5F9F: 8667 STX $67 C3/5FA1: 7B TDC C3/5FA2: A569 LDA $69 C3/5FA4: 4CC25F JMP $5FC2 (BRA would work here) C3/5FA7: A66F LDX $6F C3/5FA9: 8667 STX $67 C3/5FAB: 7B TDC C3/5FAC: A56A LDA $6A C3/5FAE: 4CC25F JMP $5FC2 (BRA would work here) C3/5FB1: A671 LDX $71 C3/5FB3: 8667 STX $67 C3/5FB5: 7B TDC C3/5FB6: A56B LDA $6B C3/5FB8: 4CC25F JMP $5FC2 (BRA would work here) C3/5FBB: A673 LDX $73 C3/5FBD: 8667 STX $67 C3/5FBF: 7B TDC C3/5FC0: A56C LDA $6C C3/5FC2: 220600C2 JSL $C20006 (equipment check function) C3/5FC6: A467 LDY $67 C3/5FC8: 20E899 JSR $99E8 C3/5FCB: A920 LDA #$20 C3/5FCD: 8529 STA $29 (set text color to white) C3/5FCF: ADA611 LDA $11A6 (strength) C3/5FD2: 20E004 JSR $04E0 (turn value into displayable digits) C3/5FD5: A2E17E LDX #$7EE1 C3/5FD8: 20C004 JSR $04C0 (display strength) C3/5FDB: ADA411 LDA $11A4 (agility) C3/5FDE: 20E004 JSR $04E0 (turn value into displayable digits) C3/5FE1: A2617F LDX #$7F61 C3/5FE4: 20C004 JSR $04C0 (display agility) C3/5FE7: ADA211 LDA $11A2 (stamina) C3/5FEA: 20E004 JSR $04E0 (turn value into displayable digits) C3/5FED: A2E17F LDX #$7FE1 C3/5FF0: 20C004 JSR $04C0 (display stamina) C3/5FF3: ADA011 LDA $11A0 (magic) C3/5FF6: 20E004 JSR $04E0 (turn value into displayable digits) C3/5FF9: A26188 LDX #$8861 C3/5FFC: 20C004 JSR $04C0 (display magic) C3/5FFF: 207193 JSR $9371 C3/6002: ADAC11 LDA $11AC C3/6005: 18 CLC C3/6006: 6DAD11 ADC $11AD C3/6009: 85F3 STA $F3 C3/600B: 7B TDC C3/600C: 6900 ADC #$00 C3/600E: 85F4 STA $F4 C3/6010: 202E05 JSR $052E C3/6013: A27D7E LDX #$7E7D C3/6016: 208604 JSR $0486 C3/6019: ADBA11 LDA $11BA (defense) C3/601C: 20E004 JSR $04E0 (turn value into displayable digits) C3/601F: A2FD7E LDX #$7EFD C3/6022: 20C004 JSR $04C0 C3/6025: ADA811 LDA $11A8 (hit rate) C3/6028: 20E004 JSR $04E0 (turn value into displayable digits) C3/602B: A27D7F LDX #$7F7D C3/602E: 20C004 JSR $04C0 C3/6031: ADBB11 LDA $11BB (magic defense) C3/6034: 20E004 JSR $04E0 (turn value into displayable digits) C3/6037: A2FD7F LDX #$7FFD C3/603A: 20C004 JSR $04C0 C3/603D: ADAA11 LDA $11AA C3/6040: 20E004 JSR $04E0 C3/6043: A27D88 LDX #$887D C3/6046: 20C004 JSR $04C0 C3/6049: A08F39 LDY #$398F C3/604C: 20CF34 JSR $34CF (display character name) C3/604F: A09D39 LDY #$399D C3/6052: 20E534 JSR $34E5 (JSR's to RTS, but normally this would display status ailments or class names if they existed) C3/6055: A0B139 LDY #$39B1 C3/6058: 20E634 JSR $34E6 (display currently equipped esper) C3/605B: 200261 JSR $6102 C3/605E: A920 LDA #$20 C3/6060: 8529 STA $29 (set text color to white) C3/6062: A29660 LDX #$6096 C3/6065: 206C0C JSR $0C6C (display level, HP, MP, etc) C3/6068: A667 LDX $67 C3/606A: BD1100 LDA $0011,X (experience acquired, low byte) C3/606D: 85F1 STA $F1 C3/606F: BD1200 LDA $0012,X (experience acquired, middle byte) C3/6072: 85F2 STA $F2 C3/6074: BD1300 LDA $0013,X (experience acquired, high byte) C3/6077: 85F3 STA $F3 C3/6079: 208205 JSR $0582 (turn value into displayable digits) C3/607C: A2D77C LDX #$7CD7 C3/607F: 20A304 JSR $04A3 (display experience acquired) C3/6082: 20A060 JSR $60A0 C3/6085: 208205 JSR $0582 C3/6088: A2D77D LDX #$7DD7 C3/608B: 20A304 JSR $04A3 C3/608E: 6447 STZ $47 C3/6090: 20B011 JSR $11B0 (execute everything in OAM queue) C3/6093: 4C5B62 JMP $625B (display any afflicted status ailments) Data: Positioning for Level, HP, MP for status menu C3/6096: 273A (level's position) C3/6098: 633A (current HP's position) C3/609A: 6D3A (max HP's position) C3/609C: A33A (current MP's position) C3/609E: AD3A (max MP's position) C3/60A0: A667 LDX $67 C3/60A2: 7B TDC C3/60A3: BD0800 LDA $0008,X (Level) C3/60A6: C963 CMP #$63 C3/60A8: F019 BEQ $60C3 C3/60AA: 20CA60 JSR $60CA C3/60AD: A667 LDX $67 C3/60AF: 38 SEC C3/60B0: A5F1 LDA $F1 C3/60B2: FD1100 SBC $0011,X C3/60B5: 85F1 STA $F1 C3/60B7: C220 REP #$20 (16 bit memory/accum.) C3/60B9: A5F2 LDA $F2 C3/60BB: FD1200 SBC $0012,X C3/60BE: 85F2 STA $F2 C3/60C0: E220 SEP #$20 (8 bit memory/accum.) C3/60C2: 60 RTS C3/60C3: 7B TDC C3/60C4: AA TAX C3/60C5: 86F1 STX $F1 C3/60C7: 64F3 STZ $F3 C3/60C9: 60 RTS C3/60CA: 0A ASL A C3/60CB: 85EB STA $EB C3/60CD: 7B TDC C3/60CE: AA TAX C3/60CF: 86F1 STX $F1 C3/60D1: 86F3 STX $F3 C3/60D3: 64EC STZ $EC C3/60D5: 18 CLC C3/60D6: BF2082ED LDA $ED8220,X (experience needed for level up) C3/60DA: 65F1 ADC $F1 C3/60DC: 85F1 STA $F1 C3/60DE: E8 INX C3/60DF: BF2082ED LDA $ED8220,X (experience needed for level up) C3/60E3: 65F2 ADC $F2 C3/60E5: 85F2 STA $F2 C3/60E7: 7B TDC C3/60E8: 65F3 ADC $F3 C3/60EA: 85F3 STA $F3 C3/60EC: E8 INX C3/60ED: E4EB CPX $EB C3/60EF: D0E4 BNE $60D5 C3/60F1: C220 REP #$20 (16 bit memory/accum.) C3/60F3: 06F1 ASL $F1 C3/60F5: 26F3 ROL $F3 C3/60F7: 06F1 ASL $F1 C3/60F9: 26F3 ROL $F3 C3/60FB: 06F1 ASL $F1 C3/60FD: 26F3 ROL $F3 C3/60FF: E220 SEP #$20 (8 bit memory/accum.) C3/6101: 60 RTS C3/6102: A0F17B LDY #$7BF1 C3/6105: 201935 JSR $3519 C3/6108: 20E15E JSR $5EE1 (check for blanked and grayed commands) C3/610B: A0717C LDY #$7C71 C3/610E: 201935 JSR $3519 C3/6111: C8 INY C3/6112: 20E15E JSR $5EE1 (check for blanked and grayed commands) C3/6115: A0F17C LDY #$7CF1 C3/6118: 201935 JSR $3519 C3/611B: C8 INY C3/611C: C8 INY C3/611D: 20E15E JSR $5EE1 (check for blanked and grayed commands) C3/6120: A0717D LDY #$7D71 C3/6123: 201935 JSR $3519 C3/6126: C8 INY C3/6127: C8 INY C3/6128: C8 INY C3/6129: 4CE15E JMP $5EE1 (check for blanked and grayed commands) Check for blanked commands? C3/612C: B91600 LDA $0016,Y C3/612F: C902 CMP #$02 (is it magic?) C3/6131: D00B BNE $613E C3/6133: 5A PHY C3/6134: 202B0D JSR $0D2B (check to see if character knows magic) C3/6137: B004 BCS $613D (branch if magic is known) C3/6139: 7A PLY C3/613A: A9FF LDA #$FF (no command) C3/613C: 60 RTS C3/613D: 7A PLY C3/613E: B91600 LDA $0016,Y C3/6141: C903 CMP #$03 (is it morph?) C3/6143: D00A BNE $614F C3/6145: ADD11D LDA $1DD1 C3/6148: 8904 BIT #$04 (has the second Tritoch event happened yet?) C3/614A: D003 BNE $614F (branch if so) C3/614C: A9FF LDA #$FF (no command) C3/614E: 60 RTS C3/614F: B91600 LDA $0016,Y C3/6152: C911 CMP #$11 (is it leap?) C3/6154: D00A BNE $6160 C3/6156: ADE411 LDA $11E4 C3/6159: 8904 BIT #$04 (are we on the Veldt?) C3/615B: D003 BNE $6160 (branch if so) C3/615D: A9FF LDA #$FF (no command) C3/615F: 60 RTS C3/6160: B91600 LDA $0016,Y C3/6163: C913 CMP #$13 (is it dance?) C3/6165: D008 BNE $616F C3/6167: AD4C1D LDA $1D4C (bitfield of known dances) C3/616A: D003 BNE $616F (branch if no dances known) C3/616C: A9FF LDA #$FF (no command) C3/616E: 60 RTS C3/616F: B91600 LDA $0016,Y (unmodified commands) C3/6172: 85E0 STA $E0 C3/6174: 7B TDC C3/6175: AA TAX C3/6176: ADD611 LDA $11D6 C3/6179: 297C AND #$7C (Filter out bit 7, bit 1, and bit 0 [bits which don't change commands]) C3/617B: 0A ASL A C3/617C: 0A ASL A (Multiply by 4) C3/617D: 900A BCC $6189 (if carry was clear, this command does not need to be changed) C3/617F: 48 PHA C3/6180: BF9861C3 LDA $C36198,X (load command to change from) C3/6184: C5E0 CMP $E0 (is this the command?) C3/6186: F00A BEQ $6192 (branch if so) C3/6188: 68 PLA C3/6189: E8 INX C3/618A: E00500 CPX #$0005 (otherwise loop and try again) C3/618D: D0ED BNE $617C (branch if 5 commands haven't been checked) C3/618F: A5E0 LDA $E0 (load command) C3/6191: 60 RTS C3/6192: 68 PLA C3/6193: BF9D61C3 LDA $C3619D,X (Replace it with this command) C3/6197: 60 RTS Data: Commands to change FROM C3/6198: 05 (Steal) C3/6199: 0F (Slot) C3/619A: 0D (Sketch) C3/619B: 02 (Magic) C3/619C: 00 (Fight) Data: Commands to change TO C3/619D: 06 (Capture) C3/619E: 18 (GP Rain) C3/619F: 0E (Control) C3/61A0: 17 (X-Magic) C3/61A1: 16 (Jump) C3/61A2: 7B TDC C3/61A3: A560 LDA $60 C3/61A5: AA TAX C3/61A6: A9FF LDA #$FF C3/61A8: 9FC9357E STA $7E35C9,X C3/61AC: 20DA61 JSR $61DA C3/61AF: 4CE661 JMP $61E6 C3/61B2: 20DA61 JSR $61DA C3/61B5: 8B PHB C3/61B6: A97E LDA #$7E C3/61B8: 48 PHA C3/61B9: AB PLB C3/61BA: C220 REP #$20 (16 bit memory/accum.) C3/61BC: A9C800 LDA #$00C8 C3/61BF: 9DCA33 STA $33CA,X C3/61C2: E220 SEP #$20 (8 bit memory/accum.) C3/61C4: 7B TDC C3/61C5: A528 LDA $28 C3/61C7: A8 TAY C3/61C8: 20CC0A JSR $0ACC C3/61CB: C220 REP #$20 (16 bit memory/accum.) C3/61CD: A93000 LDA #$0030 C3/61D0: 9D4A34 STA $344A,X C3/61D3: E220 SEP #$20 (8 bit memory/accum.) C3/61D5: 200612 JSR $1206 C3/61D8: AB PLB C3/61D9: 60 RTS C3/61DA: A903 LDA #$03 C3/61DC: A0120B LDY #$0B12 C3/61DF: 207311 JSR $1173 (put C3/0B12 in the queue) C3/61E2: 8A TXA C3/61E3: 8560 STA $60 C3/61E5: 60 RTS C3/61E6: 8B PHB C3/61E7: A97E LDA #$7E C3/61E9: 48 PHA C3/61EA: AB PLB C3/61EB: 7B TDC C3/61EC: A528 LDA $28 C3/61EE: A8 TAY C3/61EF: 20F10A JSR $0AF1 C3/61F2: 7B TDC C3/61F3: A528 LDA $28 C3/61F5: A8 TAY C3/61F6: 20FB61 JSR $61FB C3/61F9: AB PLB C3/61FA: 60 RTS C3/61FB: 20CC0A JSR $0ACC C3/61FE: C220 REP #$20 (16 bit memory/accum.) C3/6200: A93800 LDA #$0038 C3/6203: 9D4A34 STA $344A,X C3/6206: E220 SEP #$20 (8 bit memory/accum.) C3/6208: 4C0612 JMP $1206 C3/620B: A902 LDA #$02 (from C3/1C49, C3/632E) C3/620D: 8D5043 STA $4350 C3/6210: A912 LDA #$12 C3/6212: 8D5143 STA $4351 (register address becomes $2112) C3/6215: A02A62 LDY #$622A C3/6218: 8C5243 STY $4352 (set address) C3/621B: A9C3 LDA #$C3 C3/621D: 8D5443 STA $4354 (set bank, C3/622A) C3/6220: A9C3 LDA #$C3 C3/6222: 8D5743 STA $4357 C3/6225: A920 LDA #$20 C3/6227: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/6229: 60 RTS HDMA transfer table C3/622A: 270000 (39 scanlines, 0 pixel shift) C3/622C: 0C0400 (12 scanlines, 4 pixel shift) C3/6230: 0C0800 (12 scanlines, 8 pixel shift) C3/6233: 0C0C00 (12 scanlines, 12 pixel shift) C3/6236: 0C1000 (12 scanlines, 16 pixel shift) C3/6239: 0C1400 (12 scanlines, 20 pixel shift) C3/623C: 0C1800 (12 scanlines, 24 pixel shift) C3/623F: 0C1C00 (12 scanlines, 28 pixel shift) C3/6242: 0C2000 (12 scanlines, 32 pixel shift) C3/6245: 0C2400 (12 scanlines, 36 pixel shift) C3/6248: 0C2800 (12 scanlines, 40 pixel shift) C3/624B: 0C2C00 (12 scanlines, 44 pixel shift) C3/624E: 0C3000 (12 scanlines, 48 pixel shift) C3/6251: 0C3400 (12 scanlines, 52 pixel shift) C3/6254: 0C3800 (12 scanlines, 56 pixel shift) C3/6257: 0C3C00 (12 scanlines, 60 pixel shift, 219 scanlines total) C3/625A: 00 (end) C3/625B: A09D39 LDY #$399D (position of ailment icons) C3/625E: A250 STY $50 C3/6260: 2086E7 JSR $E786 C3/6263: 201935 JSR $3519 C3/6266: B91400 LDA $0014,Y (Statuses) C3/6269: 307C BMI $62E7 C3/626B: 2970 AND #$70 C3/626D: 85E1 STA $E1 C3/626F: B91400 LDA $0014,Y (Statuses) C3/6272: 2907 AND #$07 C3/6274: 0A ASL A C3/6275: 85E2 STA $E2 C3/6277: B91500 LDA $0015,Y (Statuses) C3/627A: 2980 AND #$80 C3/627C: 05E1 ORA $E1 C3/627E: 05E2 ORA $E2 C3/6280: 85E1 STA $E1 C3/6282: F05D BEQ $62E1 C3/6284: 64F1 STZ $F1 C3/6286: 64F2 STZ $F2 C3/6288: A20700 LDX #$0007 C3/628B: DA PHX C3/628C: 0A ASL A C3/628D: 9046 BCC $62D5 C3/628F: 48 PHA C3/6290: A903 LDA #$03 C3/6292: A0427B LDY #$7B42 C3/6295: 207311 JSR $1173 (put C3/7B42 in the queue) C3/6298: A901 LDA #$01 C3/629A: 9F4A367E STA $7E364A,X C3/629E: 7B TDC C3/629F: 9F49367E STA $7E3649,X C3/62A3: 9B TXY C3/62A4: A6F1 LDX $F1 C3/62A6: 8B PHB C3/62A7: A97E LDA #$7E C3/62A9: 48 PHA C3/62AA: AB PLB C3/62AB: C220 REP #$20 (16 bit memory/accum.) C3/62AD: BF25ECD8 LDA $D8EC25,X (ailment icons in VWF) C3/62B1: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/62B4: E220 SEP #$20 (8 bit memory/accum.) C3/62B6: A5E7 LDA $E7 C3/62B8: 99CA33 STA $33CA,Y C3/62BB: A5E8 LDA $E8 C3/62BD: 994A34 STA $344A,Y C3/62C0: 7B TDC C3/62C1: 99CB33 STA $33CB,Y C3/62C4: 994B34 STA $344B,Y C3/62C7: A9D8 LDA #$D8 C3/62C9: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/62CC: AB PLB C3/62CD: 18 CLC C3/62CE: A90A LDA #$0A C3/62D0: 65E7 ADC $E7 C3/62D2: 85E7 STA $E7 C3/62D4: 68 PLA C3/62D5: E6F1 INC $F1 C3/62D7: E6F1 INC $F1 C3/62D9: FA PLX C3/62DA: CA DEX C3/62DB: D0AE BNE $628B C3/62DD: A920 LDA #$20 C3/62DF: 8529 STA $29 (set text color to white) C3/62E1: 200663 JSR $6306 C3/62E4: 4CD97F JMP $7FD9 C3/62E7: A28B9E LDX #$9E8B C3/62EA: 8E8121 STX $2181 C3/62ED: A600 LDX $00 C3/62EF: BF1B37C3 LDA $C3371B,X C3/62F3: 8D8021 STA $2180 C3/62F6: E8 INX C3/62F7: E00800 CPX #$0008 C3/62FA: D0F3 BNE $62EF C3/62FC: 9C8021 STZ $2180 (end this string) C3/62FF: A928 LDA #$28 C3/6301: 8529 STA $29 (set text color to gray) C3/6303: 4CD97F JMP $7FD9 C3/6306: A28B9E LDX #$9E8B C3/6309: 8E8121 STX $2181 C3/630C: A600 LDX $00 C3/630E: A9FF LDA #$FF C3/6310: 8D8021 STA $2180 C3/6313: E8 INX C3/6314: E00800 CPX #$0008 C3/6317: D0F7 BNE $6310 C3/6319: 9C8021 STZ $2180 (end this string) C3/631C: 60 RTS C3/631D: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/6320: AD0002 LDA $0200 C3/6323: 8522 STA $22 C3/6325: 9C0002 STZ $0200 C3/6328: 6425 STZ $25 C3/632A: A940 LDA #$40 C3/632C: 1443 TRB $43 (eventually disable channel 6 of HDMA) C3/632E: 200B62 JSR $620B C3/6331: 205463 JSR $6354 C3/6334: A901 LDA #$01 C3/6336: 8526 STA $26 (transition) C3/6338: A943 LDA #$43 C3/633A: 8527 STA $27 (queue up to execute at C3/633F) C3/633C: 4C4135 JMP $3541 C3/633F: A509 LDA $09 C3/6341: 8980 BIT #$80 (did you press B?) C3/6343: F00E BEQ $6353 (branch if not, BPL...) C3/6345: 20A90E JSR $0EA9 C3/6348: A54C LDA $4C C3/634A: 8527 STA $27 C3/634C: 6426 STZ $26 (fade out) C3/634E: A522 LDA $22 C3/6350: 8D0002 STA $0200 C3/6353: 60 RTS C3/6354: 20175D JSR $5D17 C3/6357: 203C5D JSR $5D3C C3/635A: 207963 JSR $6379 C3/635D: 20C25F JSR $5FC2 C3/6360: 20775D JSR $5D77 C3/6363: 20DA61 JSR $61DA C3/6366: 8B PHB C3/6367: A97E LDA #$7E C3/6369: 48 PHA C3/636A: AB PLB C3/636B: 7B TDC C3/636C: A528 LDA $28 C3/636E: A8 TAY C3/636F: 208E63 JSR $638E C3/6372: 7B TDC C3/6373: A8 TAY C3/6374: 20FB61 JSR $61FB C3/6377: AB PLB C3/6378: 60 RTS C3/6379: 7B TDC C3/637A: A5C9 LDA $C9 C3/637C: 8528 STA $28 C3/637E: 0A ASL A C3/637F: AA TAX C3/6380: C220 REP #$20 (16 bit memory/accum.) C3/6382: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/6386: 8567 STA $67 C3/6388: E220 SEP #$20 (8 bit memory/accum.) C3/638A: 7B TDC C3/638B: A5C9 LDA $C9 C3/638D: 60 RTS C3/638E: B95018 LDA $1850,Y C3/6391: 8920 BIT #$20 C3/6393: F007 BEQ $639C C3/6395: C220 REP #$20 (16 bit memory/accum.) C3/6397: A91A00 LDA #$001A C3/639A: 8005 BRA $63A1 C3/639C: C220 REP #$20 (16 bit memory/accum.) C3/639E: A90E00 LDA #$000E C3/63A1: 9DCA33 STA $33CA,X C3/63A4: E220 SEP #$20 (8 bit memory/accum.) C3/63A6: 60 RTS Gogo's command list in status menu C3/63A7: 200964 JSR $6409 (from C3/02AF, the massive jump table; $26 = #$6A) C3/63AA: A508 LDA $08 C3/63AC: 8980 BIT #$80 (did you press A?) C3/63AE: F02A BEQ $63DA (branch if not, BPL...) C3/63B0: 20B20E JSR $0EB2 (makes the click sound) C3/63B3: 9C6500 STZ $0065 C3/63B6: 7B TDC C3/63B7: A54B LDA $4B C3/63B9: AA TAX C3/63BA: BF8A9D7E LDA $7E9D8A,X C3/63BE: 85E0 STA $E0 C3/63C0: 7B TDC C3/63C1: A528 LDA $28 C3/63C3: 0A ASL A C3/63C4: AA TAX C3/63C5: B46D LDY $6D,X (wouldn't REP #$21, LDA $6D,X work better here?) C3/63C7: C220 REP #$20 (16 bit memory/accum.) C3/63C9: 98 TYA C3/63CA: 18 CLC C3/63CB: 6564 ADC $64 C3/63CD: A8 TAY C3/63CE: E220 SEP #$20 (8 bit memory/accum.) C3/63D0: A5E0 LDA $E0 C3/63D2: 991600 STA $0016,Y (unmodified commands) C3/63D5: 200261 JSR $6102 (check for grayed and blanked commands) C3/63D8: 8009 BRA $63E3 C3/63DA: A509 LDA $09 C3/63DC: 8980 BIT #$80 (did you press B?) C3/63DE: F022 BEQ $6402 (branch if not, BPL...) C3/63E0: 20A90E JSR $0EA9 C3/63E3: A901 LDA #$01 C3/63E5: 1446 TRB $46 C3/63E7: A906 LDA #$06 C3/63E9: 8520 STA $20 C3/63EB: A0F4FF LDY #$FFF4 C3/63EE: 849C STY $9C C3/63F0: A90C LDA #$0C C3/63F2: 8527 STA $27 (queue up to execute at C3/21F5) C3/63F4: A965 LDA #$65 C3/63F6: 8526 STA $26 (execute at C3/36E7) C3/63F8: 20FF36 JSR $36FF (hotspot data for the four commands in status menu) C3/63FB: A55E LDA $5E C3/63FD: 854E STA $4E C3/63FF: 200837 JSR $3708 (set finger positioning for the four commands in the status menu) C3/6402: 60 RTS C3/6403: A01264 LDY #$6412 C3/6406: 4CFE05 JMP $05FE C3/6409: 202D07 JSR $072D C3/640C: A01764 LDY #$6417 C3/640F: 4C4006 JMP $0640 Hotspot data C3/6412: 80 00 00 01 10 Finger positioning data C3/6417: F010 C3/6419: F01C C3/641B: F028 C3/641D: F034 C3/641F: F040 C3/6421: F04C C3/6423: F058 C3/6425: F064 C3/6427: F070 C3/6429: F07C C3/642B: F088 C3/642D: F094 C3/642F: F0A0 C3/6431: F0AC C3/6433: F0B8 C3/6435: F0C4 Data: Used by C3/69BA C3/6437: 9764 (from C3/5D60) C3/6439: 9F64 C3/643B: A964 C3/643D: B364 C3/643F: BD64 C3/6441: C764 C3/6443: CB64 C3/6445: CF64 C3/6447: D364 C3/6449: D764 C3/644B: DB64 C3/644D: DF64 C3/644F: E364 C3/6451: E764 C3/6453: 6F64 Data: Used by C3/69BA C3/6455: 8864 (from C3/5D52) C3/6457: 8D64 C3/6459: 9264 Data: Used by C3/69BA C3/645B: 7864 (from C3/5D45) C3/645D: 7C64 C3/645F: 8064 C3/6461: 8464 Data: Used by C3/69BA C3/6463: EB64 (from C3/5D6D) C3/6465: F364 C3/6467: FD64 C3/6469: 0765 C3/646B: 1165 C3/646D: 1D65 C3/646F: CD7892AD9AADAEAC00 (position of and word "Status") C3/6478: 6B3AC000 (position of and word "/") C3/647C: AB3AC000 (position of and word "/") C3/6480: 837FCD00 (position of and word "%") C3/6484: 8388CD00 (position of and word "%") C3/6488: 1D3A8B9500 (position of and word "LV") C3/648D: 5D3A878F00 (position of and word "HP") C3/6492: 9D3A8C8F00 (position of and word "MP") C3/6497: CF7E95A2A0A8AB00 (position of and word "Vigor") C3/649F: CF7F92AD9AA6A2A79A00 (position of and word "Stamina") C3/64A9: 4F888C9AA0C58FB0AB00 (position of and word "Mag.Pwr") C3/64B3: 697F84AF9A9D9EFFCD00 (position of and word "Evade%") C3/64BD: 69888C81A5A89CA4CD00 (position of and word "MBlock%") C3/64C7: DD7ED300 (position of and word "..") C3/64CB: 5D7FD300 (position of and word "..") C3/64CF: DD7FD300 (position of and word "..") C3/64D3: 5D88D300 (position of and word "..") C3/64D7: FB7ED300 (position of and word "..") C3/64DB: 7B7FD300 (position of and word "..") C3/64DF: 7B7ED300 (position of and word "..") C3/64E3: FB7FD300 (position of and word "..") C3/64E7: 7B88D300 (position of and word "..") C3/64EB: 4F7F92A99E9E9D00 (position of and word "Speed") C3/64F3: 697E819AADC58FB0AB00 (position of and word "Bat.Pwr") C3/64FD: E97E839E9F9EA7AC9E00 (position of and word "Defense") C3/6507: E97F8C9AA0C5839E9F00 (position of and word "Mag.Def") C3/6511: 4D7C98A8AEABFF84B1A9C100 (position of and words "Your Exp:") C3/651D: 4D7D85A8ABFFA59EAF9EA5FFAEA9C100 (position of and words "For level up:") C3/652D: 202F35 JSR $352F (turn off screen and H/DMA) C3/6520: AC0102 LDY $0201 (load availibility bits, tent useage, warping, etc) C3/6533: 8467 STY $67 C3/6535: 200469 JSR $6904 C3/6538: A902 LDA #$02 C3/653A: 8546 STA $46 C3/653C: 644A STZ $4A C3/653E: 203866 JSR $6638 (get hotspot data for naming screen) C3/6541: 204166 JSR $6641 (get finger positioning data for naming screen) C3/6544: 20B007 JSR $07B0 (finger OAM initiating) C3/6547: 200567 JSR $6705 (name your character) C3/654A: 202166 JSR $6621 (check name?) C3/654D: 203C68 JSR $683C C3/6550: 208C67 JSR $678C C3/6553: 207167 JSR $6771 C3/6556: 20D866 JSR $66D8 C3/6559: A902 LDA #$02 C3/655B: A0A368 LDY #$68A3 C3/655E: 207311 JSR $1173 (put C3/68A3 in the queue) C3/6561: A95F LDA #$5F C3/6563: 8527 STA $27 (queue up to execute code at C3/656C) C3/6565: A901 LDA #$01 C3/6567: 8526 STA $26 (fade out the screen for menu loading) C3/6569: 4C4135 JMP $3541 C3/656C: 20E90E JSR $0EE9 (from C3/0299, the huge pointer table) C3/656F: 203E66 JSR $663E (determine new position of finger after pressing a direction) C3/6572: 205B67 JSR $675B (get character's default name displayed) C3/6575: A509 LDA $09 C3/6577: 8910 BIT #$10 (did you press start?) C3/6579: F003 BEQ $657E (branch if not) C3/657B: 4CC265 JMP $65C2 (pressed start, confirm the name if possible) Add a letter to character name C3/657E: A508 LDA $08 C3/6580: 8980 BIT #$80 (did you press A?) C3/6582: F011 BEQ $6595 (branch if not, BPL...) C3/6584: 20B20E JSR $0EB2 (makes the click sound) C3/6587: 7B TDC C3/6588: 20E865 JSR $65E8 C3/658B: A528 LDA $28 C3/658D: C905 CMP #$05 (Is it at position 5?) C3/658F: F001 BEQ $6592 (If so, branch and exit) C3/6591: 1A INC A (Increment cursor position) C3/6592: 8528 STA $28 (Store cursor position) C3/6594: 60 RTS Delete a letter from character name C3/6595: A509 LDA $09 C3/6597: 8980 BIT #$80 (did you press B?) C3/6599: F026 BEQ $65C1 (branch if not, BPL...) C3/659B: 20C70E JSR $0EC7 (makes the shift sound) C3/659E: A528 LDA $28 (get cursor position) C3/65A0: F01F BEQ $65C1 (branch if position is 0) C3/65A2: C905 CMP #$05 C3/65A4: D00F BNE $65B5 (branch if position is 5) C3/65A6: 200F66 JSR $660F C3/65A9: B90200 LDA $0002,Y C3/65AC: C9FF CMP #$FF C3/65AE: F005 BEQ $65B5 C3/65B0: A9FF LDA #$FF C3/65B2: 4CE865 JMP $65E8 C3/65B5: A901 LDA #$01 C3/65B7: 20E865 JSR $65E8 C3/65BA: A528 LDA $28 (Load cursor position) C3/65BC: F001 BEQ $65BF (Branch to exit if it is at position 0) C3/65BE: 3A DEC A (Decrement cursor position) C3/65BF: 8528 STA $28 (Store cursor position) C3/65C1: 60 RTS Pressing start on the naming screen... C3/65C2: A467 LDY $67 C3/65C4: A600 LDX $00 C3/65C6: B90200 LDA $0002,Y C3/65C9: C9FF CMP #$FF C3/65CB: D00E BNE $65DB C3/65CD: C8 INY C3/65CE: E8 INX C3/65CF: E00600 CPX #$0006 (have we checked 6 letters yet?) C3/65D2: D0F2 BNE $65C6 (branch if we haven't) C3/65D4: 20C00E JSR $0EC0 (makes the buzzer sound if no name exists) C3/65D7: 205D30 JSR $305D (mosaic effect) C3/65DA: 60 RTS C3/65DB: 20B20E JSR $0EB2 (makes the click sound) C3/65DE: 9C0502 STZ $0205 C3/65E1: A9FF LDA #$FF C3/65E3: 8527 STA $27 C3/65E5: 6426 STZ $26 C3/65E7: 60 RTS C3/65E8: 48 PHA C3/65E9: 200F66 JSR $660F C3/65EC: 68 PLA C3/65ED: 300B BMI $65FA (this branch should execute only when A = #$FF) C3/65EF: F00F BEQ $6600 C3/65F1: A9FF LDA #$FF C3/65F3: 990200 STA $0002,Y C3/65F6: 990100 STA $0001,Y C3/65F9: 60 RTS C3/65FA: A9FF LDA #$FF C3/65FC: 990200 STA $0002,Y C3/65FF: 60 RTS C3/6600: 7B TDC C3/6601: A54B LDA $4B C3/6603: 18 CLC C3/6604: 654A ADC $4A C3/6606: AA TAX C3/6607: BFC8E8D8 LDA $D8E8C8,X (the alphabet for the naming screen) C3/660B: 990200 STA $0002,Y C3/660E: 60 RTS When cursor moves, update RAM address to point at... C3/660F: A467 LDY $67 (Load character RAM offset) C3/6611: A528 LDA $28 (Load A with position) C3/6613: 85E7 STA $E7 (Store position to $E7) C3/6615: 64E8 STZ $E8 (Zero $E8) C3/6617: C220 REP #$20 (16 bit memory/accum.) C3/6619: 98 TYA (Transfer character RAM offset to A) C3/661A: 18 CLC (Clear Carry) C3/661B: 65E7 ADC $E7 (Add the cursor position) C3/661D: A8 TAY (Transfer the RAM offset + cursor position to Y) C3/661E: E220 SEP #$20 (8 bit memory/accum.) C3/6620: 60 RTS C3/6621: A467 LDY $67 (from C3/654A) C3/6623: A600 LDX $00 C3/6625: B90200 LDA $0002,Y C3/6628: C9FF CMP #$FF C3/662A: F008 BEQ $6634 C3/662C: C8 INY C3/662D: E8 INX C3/662E: E00600 CPX #$0006 (check all 6 letters of character name) C3/6631: D0F2 BNE $6625 C3/6633: CA DEX C3/6634: 8A TXA C3/6635: 8528 STA $28 C3/6637: 60 RTS C3/6638: A04766 LDY #$6647 C3/663B: 4CFE05 JMP $05FE C3/663E: 202D07 JSR $072D (determine current finger position, move to new position based on the location; from C3/656F) C3/6641: A04C66 LDY #$664C C3/6644: 4C4006 JMP $0640 Hotspot data for character naming screen C3/6647: 01 00 00 0A 07 Finger positioning data for character naming screen C3/664C: 3858 (finger over 'A') C3/664E: 4858 (finger over 'B') C3/6650: 5858 (finger over 'C') C3/6652: 6858 (finger over 'D') C3/6654: 7858 (finger over 'E') C3/6656: 9058 (finger over 'a') C3/6658: A058 (finger over 'b') C3/665B: B058 (finger over 'c') C3/665C: C058 (finger over 'd') C3/665E: D058 (finger over 'e') C3/6660: 3868 (finger over 'F') C3/6662: 4868 (finger over 'G') C3/6664: 5868 (finger over 'H') C3/6666: 6868 (finger over 'I') C3/6668: 7868 (finger over 'J') C3/666A: 9068 (finger over 'f') C3/666C: A068 (finger over 'g') C3/666E: B068 (finger over 'h') C3/6670: C068 (finger over 'i') C3/6672: D068 (finger over 'j') C3/6674: 3878 (finger over 'K') C3/6676: 4878 (finger over 'L') C3/6678: 5878 (finger over 'M') C3/667A: 6878 (finger over 'N') C3/667C: 7878 (finger over 'O') C3/667E: 9078 (finger over 'k') C3/6680: A078 (finger over 'l') C3/6682: B078 (finger over 'm') C3/6684: C078 (finger over 'n') C3/6686: B078 (finger over 'o') C3/6688: 3888 (finger over 'P') C3/668A: 4888 (finger over 'Q') C3/668C: 5888 (finger over 'R') C3/668E: 6888 (finger over 'S') C3/6690: 7888 (finger over 'T') C3/6692: 9088 (finger over 'p') C3/6694: A088 (finger over 'q') C3/6696: B088 (finger over 'r') C3/6698: C088 (finger over 's') C3/669A: B088 (finger over 't') C3/669C: 3898 (finger over 'U') C3/669E: 4898 (finger over 'V') C3/66A0: 5898 (finger over 'W') C3/66A2: 6898 (finger over 'X') C3/66A4: 7898 (finger over 'Y') C3/66A6: 9098 (finger over 'u') C3/66A8: A098 (finger over 'v') C3/66AA: B098 (finger over 'w') C3/66AC: C098 (finger over 'x') C3/66AE: B098 (finger over 'y') C3/66B0: 38A8 (finger over 'Z') C3/66B2: 48A8 (finger over '!') C3/66B4: 58A8 (finger over '?') C3/66B6: 68A8 (finger over '/') C3/66B8: 78A8 (finger over ':') C3/66BA: 90A8 (finger over 'z') C3/66BC: A0A8 (finger over '"') C3/66BF: B0A8 (finger over ''') C3/66C0: C0A8 (finger over '-') C3/66C3: B0A8 (finger over '.') C3/66C4: 38B8 (finger over '0') C3/66C6: 48B8 (finger over '1') C3/66C8: 58B8 (finger over '2') C3/66CA: 68B8 (finger over '3') C3/66CC: 78B8 (finger over '4') C3/66CE: 90B8 (finger over '5') C3/66D0: A0B8 (finger over '6') C3/66D2: B0B8 (finger over '7') C3/66D4: C0B8 (finger over '8') C3/66D6: D0B8 (finger over '9') C3/66D8: A903 LDA #$03 C3/66DA: A0120B LDY #$0B12 C3/66DD: 207311 JSR $1173 (put C3/0B12 in queue) C3/66E0: 8B PHB C3/66E1: A97E LDA #$7E C3/66E3: 48 PHA C3/66E4: AB PLB C3/66E5: C220 REP #$20 (16 bit memory/accum.) C3/66E7: A98C0B LDA #$0B8C C3/66EA: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/66ED: A91000 LDA #$0010 C3/66F0: 9DCA33 STA $33CA,X C3/66F3: A91000 LDA #$0010 C3/66F6: 9D4A34 STA $344A,X C3/66F9: E220 SEP #$20 (8 bit memory/accum.) C3/66FB: A9C3 LDA #$C3 C3/66FD: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/6700: 200612 JSR $1206 C3/6703: AB PLB C3/6704: 60 RTS The character naming screen! C3/6705: 20286A JSR $6A28 C3/6708: A06567 LDY #$6765 C3/670B: 204103 JSR $0341 (draw window that holds alphabet) C3/670E: A06967 LDY #$6769 C3/6711: 204103 JSR $0341 (draw window that holds character portrait) C3/6714: A06D67 LDY #$676D C3/6717: 204103 JSR $0341 (draw window that holds "Please enter a name.") C3/671A: A06167 LDY #$6761 C3/671D: 204103 JSR $0341 (draw window that holds character name) C3/6720: 20520E JSR $0E52 C3/6723: 20156A JSR $6A15 C3/6726: 20196A JSR $6A19 C3/6729: 201E6A JSR $6A1E C3/672C: A920 LDA #$20 C3/672E: 8529 STA $29 (set text color to white) C3/6730: A25B39 LDX #$395B C3/6733: A0C8E8 LDY #$E8C8 C3/6736: 84E7 STY $E7 C3/6738: A9D8 LDA #$D8 C3/673A: 85E9 STA $E9 (D8/E8C8 seems to hold the alphabet for the naming screen) C3/673C: A907 LDA #$07 C3/673E: 85E5 STA $E5 C3/6740: 20BF67 JSR $67BF C3/6743: 205B67 JSR $675B (display default name for character) C3/6746: A0E368 LDY #$68E3 C3/6749: 20F902 JSR $02F9 (display "Please enter a name.") C3/674C: 20280E JSR $0E28 C3/674F: 20360E JSR $0E36 C3/6752: 20440E JSR $0E44 C3/6755: 203C6A JSR $6A3C C3/6758: 4C6E0E JMP $0E6E C3/675B: A02942 LDY #$4229 C3/675E: 4CCF34 JMP $34CF (display default name for character) Window data for character naming screen C3/6761: 9B591202 (window that holds character name) C3/6765: 575A1611 (window that holds alphabet) C3/6769: 8B580505 (window that holds character portrait) C3/676D: 99581402 (window that holds "Please enter a name.") C3/6771: A467 LDY $67 C3/6773: 7B TDC C3/6774: B90100 LDA $0001,Y C3/6777: C220 REP #$20 (16 bit memory/accum.) C3/6779: 0A ASL A C3/677A: AA TAX C3/677B: A90026 LDA #$2600 C3/677E: 8D1621 STA $2116 C3/6781: BF1B6FC3 LDA $C36F1B,X C3/6785: AA TAX C3/6786: 200070 JSR $7000 C3/6789: E220 SEP #$20 (8 bit memory/accum.) C3/678B: 60 RTS C3/678C: A910 LDA #$10 C3/678E: 85E3 STA $E3 C3/6790: A467 LDY $67 C3/6792: 7B TDC C3/6793: B90100 LDA $0001,Y C3/6796: AA TAX C3/6797: BF006FC3 LDA $C36F00,X C3/679B: C220 REP #$20 (16 bit memory/accum.) C3/679D: 0A ASL A C3/679E: 0A ASL A C3/679F: 0A ASL A C3/67A0: 0A ASL A C3/67A1: 0A ASL A C3/67A2: AA TAX C3/67A3: A400 LDY $00 C3/67A5: C220 REP #$20 (16 bit memory/accum.) C3/67A7: DA PHX C3/67A8: BF6058ED LDA $ED5860,X C3/67AC: BB TYX C3/67AD: 9F49317E STA $7E3149,X C3/67B1: E220 SEP #$20 (8 bit memory/accum.) C3/67B3: FA PLX C3/67B4: E8 INX C3/67B5: E8 INX C3/67B6: C8 INY C3/67B7: C8 INY C3/67B8: C6E3 DEC $E3 C3/67BA: D0E9 BNE $67A5 C3/67BC: E220 SEP #$20 (8 bit memory/accum.) C3/67BE: 60 RTS C3/67BF: 86EB STX $EB C3/67C1: A97E LDA #$7E C3/67C3: 85ED STA $ED C3/67C5: A400 LDY $00 C3/67C7: A90A LDA #$0A C3/67C9: 85E6 STA $E6 C3/67CB: A600 LDX $00 C3/67CD: B7E7 LDA [$E7],Y C3/67CF: 85E0 STA $E0 C3/67D1: 5A PHY C3/67D2: C953 CMP #$53 C3/67D4: 9006 BCC $67DC C3/67D6: A9FF LDA #$FF C3/67D8: 85E1 STA $E1 C3/67DA: 8020 BRA $67FC C3/67DC: C949 CMP #$49 C3/67DE: 900D BCC $67ED C3/67E0: A952 LDA #$52 C3/67E2: 85E1 STA $E1 C3/67E4: A5E0 LDA $E0 C3/67E6: 18 CLC C3/67E7: 6917 ADC #$17 C3/67E9: 85E0 STA $E0 C3/67EB: 800F BRA $67FC C3/67ED: C920 CMP #$20 C3/67EF: 900B BCC $67FC C3/67F1: A951 LDA #$51 C3/67F3: 85E1 STA $E1 C3/67F5: A5E0 LDA $E0 C3/67F7: 18 CLC C3/67F8: 6940 ADC #$40 C3/67FA: 85E0 STA $E0 C3/67FC: 9B TXY C3/67FD: A5E1 LDA $E1 C3/67FF: 97EB STA [$EB],Y C3/6801: C8 INY C3/6802: A529 LDA $29 C3/6804: 97EB STA [$EB],Y C3/6806: C220 REP #$20 (16 bit memory/accum.) C3/6808: 8A TXA C3/6809: 18 CLC C3/680A: 694000 ADC #$0040 C3/680D: A8 TAY C3/680E: E220 SEP #$20 (8 bit memory/accum.) C3/6810: A5E0 LDA $E0 C3/6812: 97EB STA [$EB],Y C3/6814: C8 INY C3/6815: A529 LDA $29 C3/6817: 97EB STA [$EB],Y C3/6819: E8 INX C3/681A: E8 INX C3/681B: E8 INX C3/681C: E8 INX C3/681D: 7A PLY C3/681E: C8 INY C3/681F: A5E6 LDA $E6 C3/6821: C906 CMP #$06 C3/6823: D002 BNE $6827 C3/6825: E8 INX C3/6826: E8 INX C3/6827: C6E6 DEC $E6 C3/6829: D0A2 BNE $67CD C3/682B: C220 REP #$20 (16 bit memory/accum.) C3/682D: A5EB LDA $EB C3/682F: 18 CLC C3/6830: 698000 ADC #$0080 C3/6833: 85EB STA $EB C3/6835: E220 SEP #$20 (8 bit memory/accum.) C3/6837: C6E5 DEC $E5 C3/6839: D08C BNE $67C7 C3/683B: 60 RTS C3/683C: A600 LDX $00 (from C3/654D) C3/683E: BF9668C3 LDA $C36896,X C3/6842: 9FC99B7E STA $7E9BC9,X C3/6846: E8 INX C3/6847: E00D00 CPX #$000D C3/684A: D0F2 BNE $683E C3/684C: A902 LDA #$02 C3/684E: 8D5043 STA $4350 C3/6851: A90E LDA #$0E C3/6853: 8D5143 STA $4351 (register address becomes $210E) C3/6856: A0C99B LDY #$9BC9 C3/6859: 8C5243 STY $4352 (set address) C3/685C: A97E LDA #$7E C3/685E: 8D5443 STA $4354 (set bank, 7E/9BC9) C3/6861: A97E LDA #$7E C3/6863: 8D5743 STA $4357 C3/6866: A920 LDA #$20 C3/6868: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/686A: A902 LDA #$02 C3/686C: 8D6043 STA $4360 C3/686F: A90D LDA #$0D C3/6871: 8D6143 STA $4361 (register address becomes $210D) C3/6874: A08968 LDY #$6889 C3/6877: 8C6243 STY $4362 (set address) C3/687A: A9C3 LDA #$C3 C3/687C: 8D6443 STA $4364 (set bank, C3/6889) C3/687F: A9C3 LDA #$C3 C3/6881: 8D6743 STA $4367 (store indirect HDMA table bank) C3/6884: A940 LDA #$40 C3/6886: 0443 TSB $43 (eventually enable channel 6 of HDMA) C3/6888: 60 RTS HDMA transfer table C3/6889: 470001 (71 scanlines, ?? pixel shift) C3/688C: 500000 (80 scanlines, 0 pixel shift) C3/688F: 500000 (80 scanlines, 0 pixel shift) C3/6892: 100001 (16 scanlines, ?? pixel shift, 247 scanlines total) C3/6895: 00 (end) Copied to $7E9BC9 from above C3/6896: 470000 (71 scanlines, 0 pixel shift) C3/6899: 50D0FF (80 scanlines, ?? pixel shift) C3/689C: 50D0FF (80 scanlines, ?? pixel shift) C3/689F: 100000 (16 scanlines, 0 pixel shift, 247 scanlines total) C3/68A2: 00 (end) C3/68A3: AA TAX C3/68A4: 7CA768 JMP ($68A7,X) C3/68A7: AB68 C3/68A9: CB68 C3/68AB: A62D LDX $2D C3/68AD: C220 REP #$20 (16 bit memory/accum.) C3/68AF: A952B4 LDA #$B452 C3/68B2: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/68B5: A94000 LDA #$0040 C3/68B8: 9D4A34 STA $344A,X C3/68BB: E220 SEP #$20 (8 bit memory/accum.) C3/68BD: 9ECB33 STZ $33CB,X C3/68C0: A9C3 LDA #$C3 C3/68C2: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/68C5: 200612 JSR $1206 C3/68C8: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/68CB: A42D LDY $2D C3/68CD: 7B TDC C3/68CE: A528 LDA $28 C3/68D0: AA TAX C3/68D1: BFDD68C3 LDA $C368DD,X C3/68D5: 99CA33 STA $33CA,Y C3/68D8: 202112 JSR $1221 (draw the sprites!) C3/68DB: 38 SEC (not done with this queue yet) C3/68DC: 60 RTS Positioning for cursor (not finger) in character naming screen C3/68DD: 78 C3/68DE: 80 C3/68DF: 88 C3/68E0: 90 C3/68E1: 98 C3/68E2: A0 C3/68E3: 1B418FA59E9AAC9EFF9EA7AD9EABFF9AFFA79AA69EC500 (position of and words "Please enter a name.") C3/68FA: 22F3CDD4 JSL $D4CDF3 C3/68FE: 200469 JSR $6904 C3/6901: 4C96A7 JMP $A796 C3/6904: A400 LDY $00 (from C3/6535) C3/6906: 8435 STY $35 C3/6908: 8439 STY $39 C3/690A: 843D STY $3D C3/690C: 8437 STY $37 C3/690E: 843B STY $3B C3/6910: 843F STY $3F C3/6912: 8441 STY $41 C3/6914: 60 RTS C3/6915: 2200CAD4 JSL $D4CA00 (from various (frequently called in this bank)) C3/6919: 7B TDC C3/691A: AA TAX C3/691B: 9B TXY C3/691C: BD5018 LDA $1850,X C3/691F: 2940 AND #$40 C3/6921: F01E BEQ $6941 C3/6923: BD5018 LDA $1850,X C3/6926: 2907 AND #$07 C3/6928: CD6D1A CMP $1A6D C3/692B: D014 BNE $6941 C3/692D: BD5018 LDA $1850,X C3/6930: 48 PHA C3/6931: 2918 AND #$18 C3/6933: 85E0 STA $E0 C3/6935: 4A LSR A C3/6936: 4A LSR A C3/6937: 4A LSR A C3/6938: A8 TAY C3/6939: 68 PLA C3/693A: 997500 STA $0075,Y C3/693D: 8A TXA C3/693E: 996900 STA $0069,Y C3/6941: E8 INX C3/6942: E01000 CPX #$0010 C3/6945: D0D5 BNE $691C C3/6947: A400 LDY $00 C3/6949: 7B TDC C3/694A: B96900 LDA $0069,Y C3/694D: C9FF CMP #$FF C3/694F: F011 BEQ $6962 C3/6951: 0A ASL A C3/6952: AA TAX C3/6953: C220 REP #$20 (16 bit memory/accum.) C3/6955: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/6959: 48 PHA C3/695A: 98 TYA C3/695B: 0A ASL A C3/695C: AA TAX C3/695D: 68 PLA C3/695E: 956D STA $6D,X C3/6960: E220 SEP #$20 (8 bit memory/accum.) C3/6962: C8 INY C3/6963: C00400 CPY #$0004 C3/6966: D0E1 BNE $6949 C3/6968: 60 RTS Data (assumed to be RAM offsets for character data) C3/6969: 0016 C3/696B: 2516 C3/696D: 4A16 C3/696F: 6F16 C3/6971: 9416 C3/6973: B916 C3/6975: DE16 C3/6977: 0317 C3/6979: 2817 C3/697B: 4D17 C3/697D: 7217 C3/697F: 9717 C3/6981: BC17 C3/6983: E117 C3/6985: 0618 C3/6987: 2B18 C3/6989: 7B TDC C3/698A: AA TAX C3/698B: A8 TAY C3/698C: B569 LDA $69,X C3/698E: 3012 BMI $69A2 C3/6990: A8 TAY C3/6991: B575 LDA $75,X C3/6993: 29E7 AND #$E7 C3/6995: 85E0 STA $E0 C3/6997: 7B TDC C3/6998: 8A TXA C3/6999: 0A ASL A C3/699A: 0A ASL A C3/699B: 0A ASL A C3/699C: 18 CLC C3/699D: 65E0 ADC $E0 C3/699F: 995018 STA $1850,Y (current party setup) C3/69A2: E8 INX C3/69A3: E00400 CPX #$0004 C3/69A6: D0E4 BNE $698C C3/69A8: 60 RTS C3/69A9: C220 REP #$20 (16 bit memory/accum.) C3/69AB: A569 LDA $69 C3/69AD: 8F89AA7E STA $7EAA89 C3/69B1: A56B LDA $6B C3/69B3: 8F8BAA7E STA $7EAA8B C3/69B7: E220 SEP #$20 (8 bit memory/accum.) C3/69B9: 60 RTS This routine does a lot to draw text, but here's the rundown. 16-bit X holds the location of the pointer, which holds the location of the text as well as where to draw it onscreen. 16-bit Y holds how many pointers to grab, and a pointer makes up two bytes. So for every pointer to get, add 2 bytes. In the end, take all of this information and head to our text drawing routine at $02FF. C3/69BA: 86F1 STX $F1 C3/69BC: 84EF STY $EF C3/69BE: A9C3 LDA #$C3 C3/69C0: 85F3 STA $F3 C3/69C2: A400 LDY $00 C3/69C4: C220 REP #$20 (16 bit memory/accum.) C3/69C6: B7F1 LDA [$F1],Y C3/69C8: 85E7 STA $E7 C3/69CA: 5A PHY C3/69CB: E220 SEP #$20 (8 bit memory/accum.) C3/69CD: A9C3 LDA #$C3 C3/69CF: 85E9 STA $E9 (this is redundant, JSR $02FB and be done with it) C3/69D1: 20FF02 JSR $02FF (bank and location set, draw text) C3/69D4: 7A PLY C3/69D5: C8 INY C3/69D6: C8 INY C3/69D7: C4EF CPY $EF C3/69D9: D0E9 BNE $69C4 C3/69DB: 60 RTS C3/69DC: A901 LDA #$01 (from C3/010E, C3/ADC8) C3/69DE: 8D2043 STA $4320 C3/69E1: A926 LDA #$26 C3/69E3: 8D2143 STA $4321 (register address becomes $2126) C3/69E6: A0FB69 LDY #$69FB C3/69E9: 8C2243 STY $4322 (set address) C3/69EC: A9C3 LDA #$C3 C3/69EE: 8D2443 STA $4324 (set bank, C3/69FB) C3/69F1: A9C3 LDA #$C3 C3/69F3: 8D2743 STA $4327 C3/69F6: A904 LDA #$04 C3/69F8: 0443 TSB $43 (eventually enable channel 2 of HDMA) C3/69FA: 60 RTS HDMA transfer table C3/69FB: 07FF00 (7 scanlines, ??) C3/69FE: 7808F7 (120 scanlines, ??) C3/6A01: 5808F7 (88 scanlines, ??) C3/6A04: 08FF00 (8 scanlines, ??) C3/6A07: 00 (end) C3/6A08: A904 LDA #$04 C3/6A0A: 1443 TRB $43 (eventually disable channel 2 of HDMA) C3/6A0C: 9C2621 STZ $2126 C3/6A0F: A9FF LDA #$FF C3/6A11: 8D2721 STA $2127 C3/6A14: 60 RTS C3/6A15: A600 LDX $00 C3/6A17: 8035 BRA $6A4E C3/6A19: A20008 LDX #$0800 C3/6A1C: 8030 BRA $6A4E C3/6A1E: A20010 LDX #$1000 C3/6A21: 802B BRA $6A4E C3/6A23: A20018 LDX #$1800 C3/6A26: 8026 BRA $6A4E C3/6A28: A20020 LDX #$2000 C3/6A2B: 8021 BRA $6A4E C3/6A2D: A20028 LDX #$2800 C3/6A30: 801C BRA $6A4E C3/6A32: A20030 LDX #$3000 C3/6A35: 8017 BRA $6A4E C3/6A37: A20038 LDX #$3800 C3/6A3A: 8012 BRA $6A4E C3/6A3C: A20040 LDX #$4000 C3/6A3F: 800D BRA $6A4E C3/6A41: A20048 LDX #$4800 C3/6A44: 8008 BRA $6A4E C3/6A46: A20050 LDX #$5000 C3/6A49: 8003 BRA $6A4E C3/6A4B: A20058 LDX #$5800 C3/6A4E: C220 REP #$20 (16 bit memory/accum.) C3/6A50: 7B TDC C3/6A51: A00002 LDY #$0200 C3/6A54: 9F49387E STA $7E3849,X C3/6A58: E8 INX C3/6A59: E8 INX C3/6A5A: 9F49387E STA $7E3849,X C3/6A5E: E8 INX C3/6A5F: E8 INX C3/6A60: 88 DEY C3/6A61: D0F1 BNE $6A54 C3/6A63: E220 SEP #$20 (8 bit memory/accum.) C3/6A65: 60 RTS C3/6A66: 201070 JSR $7010 C3/6A69: 20136B JSR $6B13 C3/6A6C: 20E86B JSR $6BE8 C3/6A6F: 20096C JSR $6C09 C3/6A72: 20676E JSR $6E67 C3/6A75: 20C76C JSR $6CC7 (get character sprite palettes) C3/6A78: 20846C JSR $6C84 C3/6A7B: 20826E JSR $6E82 C3/6A7E: 20E96C JSR $6CE9 C3/6A81: 2046AF JSR $AF46 C3/6A84: 4C4BB3 JMP $B34B C3/6A87: 7B TDC C3/6A88: AD0002 LDA $0200 C3/6A8B: 0A ASL A C3/6A8C: AA TAX C3/6A8D: 7C906A JMP ($6A90,X) Function Pointers C3/6A90: E96A C3/6A92: 046B C3/6A94: E96A C3/6A96: CE6A C3/6A98: B06A C3/6A9A: B06A C3/6A9C: A46A C3/6A9E: E96A C3/6AA0: B06A C3/6AA2: B06A C3/6AA4: 20376B JSR $6B37 (Function loads graphics for Menu) C3/6AA7: 20E86B JSR $6BE8 (Function loads Menu Cursor Palette) C3/6AAA: 20676E JSR $6E67 (Function loads Hand Cursor Graphics) C3/6AAD: 4C846C JMP $6C84 C3/6AB0: 201070 JSR $7010 C3/6AB3: 20136B JSR $6B13 (Function loads Fixed-Width Font Graphics Data) C3/6AB6: 20376B JSR $6B37 (Function loads graphics for Menu) C3/6AB9: 20E86B JSR $6BE8 (Function loads Menu Cursor Palette) C3/6ABC: 20096C JSR $6C09 (Function loads Menu Portrait Palettes) C3/6ABF: 20676E JSR $6E67 (Function loads Hand Cursor Graphics) C3/6AC2: 20C76C JSR $6CC7 (Function loads Battle/Menu Character Sprite Palette) C3/6AC5: 20846C JSR $6C84 C3/6AC8: 20826E JSR $6E82 C3/6ACB: 4CE96C JMP $6CE9 C3/6ACE: 20136B JSR $6B13 (Function loads Fixed-Width Font Graphics Data) C3/6AD1: 20376B JSR $6B37 (Function loads graphics for Menu) C3/6AD4: 20E86B JSR $6BE8 (Function loads Menu Cursor Palette) C3/6AD7: 20096C JSR $6C09 (Function loads Menu Portrait Palettes) C3/6ADA: 20676E JSR $6E67 (Function loads Hand Cursor Graphics) C3/6ADD: 20C76C JSR $6CC7 (Function loads Battle/Menu Character Sprite Palette) C3/6AE0: 20846C JSR $6C84 C3/6AE3: 20826E JSR $6E82 C3/6AE6: 4C796D JMP $6D79 C3/6AE9: 20136B JSR $6B13 (Function loads Fixed-Width Font Graphics Data) C3/6AEC: 20376B JSR $6B37 (Function loads graphics for Menu) C3/6AEF: 20E86B JSR $6BE8 (Function loads Menu Cursor Palette) C3/6AF2: 20676E JSR $6E67 (Function loads Hand Cursor Graphics) C3/6AF5: 20826E JSR $6E82 C3/6AF8: 20096C JSR $6C09 (Function loads Menu Portrait Palettes) C3/6AFB: 20E96C JSR $6CE9 C3/6AFE: 20846C JSR $6C84 C3/6B01: 4C606C JMP $6C60 C3/6B04: 20136B JSR $6B13 (Function loads Fixed-Width Font Graphics Data) C3/6B07: 20376B JSR $6B37 (Function loads graphics for Menu) C3/6B0A: 20E86B JSR $6BE8 (Function loads Menu Cursor Palette) C3/6B0D: 20676E JSR $6E67 (Function loads Hand Cursor Graphics) C3/6B10: 4C846C JMP $6C84 Fixed-width font loading routine C3/6B13: C220 REP #$20 (16 bit memory/accum.) C3/6B15: A00060 LDY #$6000 C3/6B18: 8C1621 STY $2116 C3/6B1B: A600 LDX $00 C3/6B1D: BFC07FC4 LDA $C47FC0,X (Load Fixed-Width Font Graphics Data) C3/6B21: 8D1821 STA $2118 C3/6B24: E8 INX C3/6B25: E8 INX C3/6B26: E00010 CPX #$1000 C3/6B29: D0F2 BNE $6B1D C3/6B2B: 8D1821 STA $2118 C3/6B2E: E8 INX C3/6B2F: E00014 CPX #$1400 C3/6B32: D0F7 BNE $6B2B C3/6B34: E220 SEP #$20 (8 bit memory/accum.) C3/6B36: 60 RTS C3/6B37: A00050 LDY #$5000 C3/6B3A: 8C1621 STY $2116 C3/6B3D: C220 REP #$20 (16 bit memory/accum.) C3/6B3F: 7B TDC C3/6B40: AA TAX C3/6B41: A00800 LDY #$0008 C3/6B44: BF9C6BC3 LDA $C36B9C,X C3/6B48: 8D1821 STA $2118 C3/6B4B: 88 DEY C3/6B4C: D0F6 BNE $6B44 C3/6B4E: E8 INX C3/6B4F: E8 INX C3/6B50: E02000 CPX #$0020 C3/6B53: D0EC BNE $6B41 C3/6B55: A600 LDX $00 C3/6B57: A00800 LDY #$0008 C3/6B5A: BF4080C4 LDA $C48040,X (Load Fixed-Width Font Graphics Data) C3/6B5E: 8D1821 STA $2118 C3/6B61: E8 INX C3/6B62: E8 INX C3/6B63: 88 DEY C3/6B64: D0F4 BNE $6B5A C3/6B66: 9C1821 STZ $2118 C3/6B69: 9C1821 STZ $2118 C3/6B6C: 9C1821 STZ $2118 C3/6B6F: 9C1821 STZ $2118 C3/6B72: 9C1821 STZ $2118 C3/6B75: 9C1821 STZ $2118 C3/6B78: 9C1821 STZ $2118 C3/6B7B: 9C1821 STZ $2118 C3/6B7E: E0800F CPX #$0F80 C3/6B81: D0D4 BNE $6B57 C3/6B83: A00078 LDY #$7800 C3/6B86: 8C1621 STY $2116 C3/6B89: A600 LDX $00 C3/6B8B: BF0000ED LDA $ED0000,X (loads graphics for menu) C3/6B8F: 8D1821 STA $2118 C3/6B92: E8 INX C3/6B93: E8 INX C3/6B94: E00010 CPX #$1000 C3/6B97: D0F2 BNE $6B8B C3/6B99: E220 SEP #$20 (8 bit memory/accum.) C3/6B9B: 60 RTS Data C3/6B9C: 0000 C3/6B9E: 0000 C3/6BA0: FF00 C3/6BA2: 0000 C3/6BA4: 00FF C3/6BA6: 0000 C3/6BA8: FFFF C3/6BAA: 0000 C3/6BAC: 0000 C3/6BAE: FF00 C3/6BB0: FF00 C3/6BB2: FF00 C3/6BB4: 00FF C3/6BB6: FF00 C3/6BB8: FFFF C3/6BBA: FF00 C3/6BBC: A20800 LDY #$0800 C3/6BBF: 86E7 STY $E7 C3/6BC1: A20000 LDY #$0000 C3/6BC4: 9B TXY C3/6BC5: C220 REP #$20 (16 bit memory/accum.) C3/6BC7: A90700 LDA #$0007 C3/6BCA: 85E9 STA $E9 C3/6BCC: BF021CED LDA $ED1C02,X C3/6BD0: 99571D STA $1D57,Y C3/6BD3: E8 INX C3/6BD4: E8 INX C3/6BD5: C8 INY C3/6BD6: C8 INY C3/6BD7: C6E9 DEC $E9 C3/6BD9: D0F1 BNE $6BCC C3/6BDB: 8A TXA C3/6BDC: 18 CLC C3/6BDD: 691200 ADC #$0012 C3/6BE0: AA TAX C3/6BE1: C6E7 DEC $E7 C3/6BE3: D0E2 BNE $6BC7 C3/6BE5: E220 SEP #$20 (8 bit memory/accum.) C3/6BE7: 60 RTS C3/6BE8: A600 LDX $00 C3/6BEA: 8A TXA C3/6BEB: 8D2121 STA $2121 C3/6BEE: C220 REP #$20 (16 bit memory/accum.) C3/6BF0: BF00E8D8 LDA $D8E800,X (Menu cursor palette X) C3/6BF4: 9F49307E STA $7E3049,X C3/6BF8: E220 SEP #$20 (8 bit memory/accum.) C3/6BFA: 8D2221 STA $2122 C3/6BFD: EB XBA C3/6BFE: 8D2221 STA $2122 C3/6C01: E8 INX C3/6C02: E8 INX C3/6C03: E0A000 CPX #$00A0 C3/6C06: D0E6 BNE $6BEE C3/6C08: 60 RTS C3/6C09: A600 LDX $00 C3/6C0B: 9B TXY C3/6C0C: C220 REP #$20 (16 bit memory/accum.) C3/6C0E: B56D LDA $6D,X C3/6C10: DA PHX C3/6C11: 5A PHY C3/6C12: A8 TAY C3/6C13: 7B TDC C3/6C14: E220 SEP #$20 (8 bit memory/accum.) C3/6C16: A910 LDA #$10 C3/6C18: 85E3 STA $E3 C3/6C1A: B91400 LDA $0014,Y (Statuses) C3/6C1D: 2920 AND #$20 C3/6C1F: F004 BEQ $6C25 C3/6C21: A90F LDA #$0F C3/6C23: 800B BRA $6C30 C3/6C25: 7B TDC C3/6C26: B90000 LDA $0000,Y C3/6C29: C901 CMP #$01 C3/6C2B: F003 BEQ $6C30 C3/6C2D: B90100 LDA $0001,Y C3/6C30: AA TAX C3/6C31: BF006FC3 LDA $C36F00,X C3/6C35: C220 REP #$20 (16 bit memory/accum.) C3/6C37: 0A ASL A C3/6C38: 0A ASL A C3/6C39: 0A ASL A C3/6C3A: 0A ASL A C3/6C3B: 0A ASL A C3/6C3C: AA TAX C3/6C3D: 7A PLY C3/6C3E: C220 REP #$20 (16 bit memory/accum.) C3/6C40: DA PHX C3/6C41: BF6058ED LDA $ED5860,X (Load Menu Portrait Palette) C3/6C45: BB TYX C3/6C46: 9F49317E STA $7E3149,X C3/6C4A: E220 SEP #$20 (8 bit memory/accum.) C3/6C4C: FA PLX C3/6C4D: E8 INX C3/6C4E: E8 INX C3/6C4F: C8 INY C3/6C50: C8 INY C3/6C51: C6E3 DEC $E3 C3/6C53: D0E9 BNE $6C3E C3/6C55: FA PLX C3/6C56: E8 INX C3/6C57: E8 INX C3/6C58: E00800 CPX #$0008 C3/6C5B: D0AF BNE $6C0C C3/6C5D: E220 SEP #$20 (8 bit memory/accum.) C3/6C5F: 60 RTS C3/6C60: A990 LDA #$90 C3/6C62: 8D2121 STA $2121 C3/6C65: A600 LDX $00 C3/6C67: C220 REP #$20 (16 bit memory/accum.) C3/6C69: BFA0E8D8 LDA $D8E8A0,X C3/6C6D: 9F69317E STA $7E3169,X C3/6C71: E220 SEP #$20 (8 bit memory/accum.) C3/6C73: 8D2221 STA $2122 C3/6C76: EB XBA C3/6C77: 8D2221 STA $2122 C3/6C7A: C8 INY C3/6C7B: C8 INY C3/6C7C: E8 INX C3/6C7D: E8 INX C3/6C7E: E02000 CPX #$0020 C3/6C81: D0E4 BNE $6C67 C3/6C83: 60 RTS C3/6C84: A600 LDX $00 C3/6C86: A9EC LDA #$EC C3/6C88: 8D2121 STA $2121 C3/6C8B: C220 REP #$20 (16 bit memory/accum.) C3/6C8D: BFC0E8D8 LDA $D8E8C0,X C3/6C91: 9F21327E STA $7E3221,X C3/6C95: E220 SEP #$20 (8 bit memory/accum.) C3/6C97: 8D2221 STA $2122 C3/6C9A: EB XBA C3/6C9B: 8D2221 STA $2122 C3/6C9E: E8 INX C3/6C9F: E8 INX C3/6CA0: E00800 CPX #$0008 C3/6CA3: D0E6 BNE $6C8B C3/6CA5: A600 LDX $00 C3/6CA7: A9FC LDA #$FC C3/6CA9: 8D2121 STA $2121 C3/6CAC: C220 REP #$20 (16 bit memory/accum.) C3/6CAE: BFB8E8D8 LDA $D8E8B8,X C3/6CB2: 9F41327E STA $7E3241,X C3/6CB6: E220 SEP #$20 (8 bit memory/accum.) C3/6CB8: 8D2221 STA $2122 C3/6CBB: EB XBA C3/6CBC: 8D2221 STA $2122 C3/6CBF: E8 INX C3/6CC0: E8 INX C3/6CC1: E00800 CPX #$0008 C3/6CC4: D0E6 BNE $6CAC C3/6CC6: 60 RTS C3/6CC7: A600 LDX $00 C3/6CC9: A9A0 LDA #$A0 C3/6CCB: 8D2121 STA $2121 C3/6CCE: C220 REP #$20 (16 bit memory/accum.) C3/6CD0: BF0063ED LDA $ED6300,X (Load Battle/Menu Character Sprite Palette) C3/6CD4: 9F89317E STA $7E3189,X C3/6CD8: E220 SEP #$20 (8 bit memory/accum.) C3/6CDA: 8D2221 STA $2122 C3/6CDD: EB XBA C3/6CDE: 8D2221 STA $2122 C3/6CE1: E8 INX C3/6CE2: E8 INX C3/6CE3: E0C000 CPX #$00C0 C3/6CE6: D0E6 BNE $6CCE C3/6CE8: 60 RTS C3/6CE9: 7B TDC (from C3/6A7E, C3/6ACB, C3/6AFB) C3/6CEA: AA TAX C3/6CEB: DA PHX C3/6CEC: C220 REP #$20 (16 bit memory/accum.) C3/6CEE: BFE5F8CF LDA $CFF8E5,X C3/6CF2: 85F3 STA $F3 C3/6CF4: 8A TXA C3/6CF5: 0A ASL A C3/6CF6: AA TAX C3/6CF7: BF13F9CF LDA $CFF913,X C3/6CFB: 85E7 STA $E7 C3/6CFD: BF11F9CF LDA $CFF911,X C3/6D01: 85E9 STA $E9 C3/6D03: A600 LDX $00 C3/6D05: BFDFF8CF LDA $CFF8DF,X C3/6D09: 85EF STA $EF C3/6D0B: 20446D JSR $6D44 C3/6D0E: A5F3 LDA $F3 C3/6D10: 18 CLC C3/6D11: 690001 ADC #$0100 C3/6D14: 85F3 STA $F3 C3/6D16: E8 INX C3/6D17: E8 INX C3/6D18: E00400 CPX #$0004 C3/6D1B: D0E8 BNE $6D05 C3/6D1D: A5F3 LDA $F3 C3/6D1F: 38 SEC C3/6D20: E9E001 SBC #$01E0 C3/6D23: 85F3 STA $F3 C3/6D25: BFDFF8CF LDA $CFF8DF,X C3/6D29: 85EF STA $EF C3/6D2B: 20446D JSR $6D44 C3/6D2E: A5F3 LDA $F3 C3/6D30: 18 CLC C3/6D31: 690001 ADC #$0100 C3/6D34: 85F3 STA $F3 C3/6D36: 20676D JSR $6D67 C3/6D39: FA PLX C3/6D3A: E8 INX C3/6D3B: E8 INX C3/6D3C: E02C00 CPX #$002C C3/6D3F: D0AA BNE $6CEB C3/6D41: E220 SEP #$20 (8 bit memory/accum.) C3/6D43: 60 RTS C3/6D44: 18 CLC C3/6D45: A5EF LDA $EF C3/6D47: 65E7 ADC $E7 C3/6D49: 85EB STA $EB C3/6D4B: 7B TDC C3/6D4C: 65E9 ADC $E9 C3/6D4E: 85ED STA $ED C3/6D50: A4F3 LDY $F3 C3/6D52: 8C1621 STY $2116 C3/6D55: 4C586D JMP $6D58 (...why?) C3/6D58: A400 LDY $00 C3/6D5A: B7EB LDA [$EB],Y C3/6D5C: 8D1821 STA $2118 C3/6D5F: C8 INY C3/6D60: C8 INY C3/6D61: C04000 CPY #$0040 C3/6D64: D0F4 BNE $6D5A C3/6D66: 60 RTS C3/6D67: A4F3 LDY $F3 C3/6D69: 8C1621 STY $2116 C3/6D6C: A92000 LDA #$0020 C3/6D6F: 85E7 STA $E7 C3/6D71: 9C1821 STZ $2118 C3/6D74: C6E7 DEC $E7 C3/6D76: D0F9 BNE $6D71 C3/6D78: 60 RTS C3/6D79: A00030 LDY #$3000 C3/6D7C: 8C1621 STY $2116 C3/6D7F: 64E3 STZ $E3 C3/6D81: A400 LDY $00 C3/6D83: E220 SEP #$20 (8 bit memory/accum.) C3/6D85: 7B TDC C3/6D86: BB TYX C3/6D87: BF076EC3 LDA $C36E07,X C3/6D8B: 0A ASL A C3/6D8C: AA TAX C3/6D8D: C220 REP #$20 (16 bit memory/accum.) C3/6D8F: BF276EC3 LDA $C36E27,X C3/6D93: C9FFFF CMP #$FFFF C3/6D96: F052 BEQ $6DEA C3/6D98: 48 PHA C3/6D99: A9A016 LDA #$16A0 C3/6D9C: E220 SEP #$20 (8 bit memory/accum.) C3/6D9E: 8D1B21 STA $211B C3/6DA1: EB XBA C3/6DA2: 8D1B21 STA $211B C3/6DA5: A5E3 LDA $E3 C3/6DA7: 8D1C21 STA $211C C3/6DAA: 8D1C21 STA $211C C3/6DAD: C220 REP #$20 (16 bit memory/accum.) C3/6DAF: 68 PLA C3/6DB0: 18 CLC C3/6DB1: 6D3421 ADC $2134 C3/6DB4: 85EB STA $EB C3/6DB6: E220 SEP #$20 (8 bit memory/accum.) C3/6DB8: AD3621 LDA $2136 C3/6DBB: 69D5 ADC #$D5 C3/6DBD: 85ED STA $ED C3/6DBF: C221 REP #$21 C3/6DC1: A5EB LDA $EB C3/6DC3: 690000 ADC #$0000 C3/6DC6: 85EB STA $EB C3/6DC8: E220 SEP #$20 (8 bit memory/accum.) C3/6DCA: A5ED LDA $ED C3/6DCC: 6900 ADC #$00 C3/6DCE: 85ED STA $ED C3/6DD0: C220 REP #$20 (16 bit memory/accum.) C3/6DD2: 5A PHY C3/6DD3: 20F86D JSR $6DF8 C3/6DD6: 7A PLY C3/6DD7: C8 INY C3/6DD8: C02000 CPY #$0020 C3/6DDB: D0A6 BNE $6D83 C3/6DDD: E220 SEP #$20 (8 bit memory/accum.) C3/6DDF: E6E3 INC $E3 C3/6DE1: E6E3 INC $E3 C3/6DE3: A5E3 LDA $E3 C3/6DE5: C910 CMP #$10 C3/6DE7: D098 BNE $6D81 C3/6DE9: 60 RTS C3/6DEA: A91000 LDA #$0010 C3/6DED: 85E7 STA $E7 C3/6DEF: 9C1821 STZ $2118 C3/6DF2: C6E7 DEC $E7 C3/6DF4: D0F9 BNE $6DEF C3/6DF6: 80DF BRA $6DD7 C3/6DF8: A400 LDY $00 C3/6DFA: B7EB LDA [$EB],Y C3/6DFC: 8D1821 STA $2118 C3/6DFF: C8 INY C3/6E00: C8 INY C3/6E01: C02000 CPY #$0020 C3/6E04: D0F4 BNE $6DFA C3/6E06: 60 RTS Data C3/6E07: 0001 BRK #$01 C3/6E09: 0405 TSB $05 C3/6E0B: 08 PHP C3/6E0C: 090C ORA #$0C C3/6E0E: 0D1011 ORA $1110 C3/6E11: 1415 TRB $15 C3/6E13: 18 CLC C3/6E14: 191C1D ORA $1D1C,Y C3/6E17: 0203 COP #$03 C3/6E19: 0607 ASL $07 C3/6E1B: 0A ASL A C3/6E1C: 0B PHD C3/6E1D: 0E0F12 ASL $120F C3/6E20: 1316 ORA ($16,S),Y C3/6E22: 171A ORA [$1A],Y C3/6E24: 1B TCS C3/6E25: 1E1FC0 ASL $C01F,X C3/6E28: 03E0 ORA $E0,S C3/6E2A: 0300 ORA $00,S C3/6E2C: 0520 ORA $20 C3/6E2E: 0540 ORA $40 C3/6E30: 0560 ORA $60 C3/6E32: 05FF ORA $FF C3/6E34: FFFFFFC0 SBC $C0FFFF,X C3/6E38: 0360 ORA $60,S C3/6E3A: 0680 ASL $80 C3/6E3C: 06A0 ASL $A0 C3/6E3E: 06C0 ASL $C0 C3/6E40: 06E0 ASL $E0 C3/6E42: 06FF ASL $FF C3/6E44: FFFFFF60 SBC $60FFFF,X C3/6E48: 1A INC A C3/6E49: 801A BRA $6E65 C3/6E4B: A01BC0 LDY #$C01B C3/6E4E: 1B TCS C3/6E4F: E01B00 CPX #$001B C3/6E52: 1CFFFF TRB $FFFF C3/6E55: FFFF601A SBC $1A60FF,X C3/6E59: 001D BRK #$1D C3/6E5B: 201D40 JSR $401D C3/6E5E: 1D601D ORA $1D60,X C3/6E61: 801D BRA $6E80 C3/6E63: FFFFFFFF SBC $FFFFFF,X C3/6E67: C220 REP #$20 (16 bit memory/accum.) C3/6E69: A00020 LDY #$2000 C3/6E6C: 8C1621 STY $2116 C3/6E6F: A600 LDX $00 C3/6E71: BFC05AED LDA $ED5AC0,X (Load Hand Cursor Graphics) C3/6E75: 8D1821 STA $2118 C3/6E78: E8 INX C3/6E79: E8 INX C3/6E7A: E00014 CPX #$1400 C3/6E7D: D0F2 BNE $6E71 C3/6E7F: E220 SEP #$20 (8 bit memory/accum.) C3/6E81: 60 RTS C3/6E82: A600 LDX $00 C3/6E84: C220 REP #$20 (16 bit memory/accum.) C3/6E86: BF516FC3 LDA $C36F51,X C3/6E8A: 8D1621 STA $2116 C3/6E8D: B46D LDY $6D,X C3/6E8F: DA PHX C3/6E90: 7B TDC C3/6E91: E220 SEP #$20 (8 bit memory/accum.) C3/6E93: B91400 LDA $0014,Y (Statuses) C3/6E96: 2920 AND #$20 C3/6E98: F004 BEQ $6E9E C3/6E9A: A90F LDA #$0F C3/6E9C: 800A BRA $6EA8 C3/6E9E: B90000 LDA $0000,Y C3/6EA1: C901 CMP #$01 C3/6EA3: F003 BEQ $6EA8 C3/6EA5: B90100 LDA $0001,Y C3/6EA8: C220 REP #$20 (16 bit memory/accum.) C3/6EAA: 0A ASL A C3/6EAB: AA TAX C3/6EAC: BF1B6FC3 LDA $C36F1B,X C3/6EB0: AA TAX C3/6EB1: 200070 JSR $7000 C3/6EB4: FA PLX C3/6EB5: E8 INX C3/6EB6: E8 INX C3/6EB7: E00800 CPX #$0008 C3/6EBA: D0C8 BNE $6E84 C3/6EBC: E220 SEP #$20 (8 bit memory/accum.) C3/6EBE: 60 RTS C3/6EBF: A9ED LDA #$ED C3/6EC1: 851F STA $1F C3/6EC3: A02003 LDY #$0320 C3/6EC6: 8419 STY $19 C3/6EC8: 7B TDC C3/6EC9: A59C LDA $9C C3/6ECB: 0A ASL A C3/6ECC: AA TAX C3/6ECD: C220 REP #$20 (16 bit memory/accum.) C3/6ECF: BF516FC3 LDA $C36F51,X C3/6ED3: 851B STA $1B C3/6ED5: B46D LDY $6D,X C3/6ED7: 7B TDC C3/6ED8: E220 SEP #$20 (8 bit memory/accum.) C3/6EDA: B91400 LDA $0014,Y (Statuses) C3/6EDD: 2920 AND #$20 C3/6EDF: F004 BEQ $6EE5 C3/6EE1: A90F LDA #$0F C3/6EE3: 800A BRA $6EEF C3/6EE5: B90000 LDA $0000,Y C3/6EE8: C901 CMP #$01 C3/6EEA: F003 BEQ $6EEF C3/6EEC: B90100 LDA $0001,Y C3/6EEF: C220 REP #$20 (16 bit memory/accum.) C3/6EF1: 0A ASL A C3/6EF2: AA TAX C3/6EF3: BF1B6FC3 LDA $C36F1B,X C3/6EF7: 18 CLC C3/6EF8: 69001D ADC #$1D00 C3/6EFB: 851D STA $1D C3/6EFD: E220 SEP #$20 (8 bit memory/accum.) C3/6EFF: 60 RTS C3/6F00: 00 C3/6F01: 01 C3/6F02: 02 C3/6F03: 03 C3/6F04: 04 C3/6F05: 05 C3/6F06: 06 C3/6F07: 07 C3/6F08: 08 C3/6F09: 09 C3/6F0A: 0A C3/6F0B: 0B C3/6F0C: 0C C3/6F0D: 0D C3/6F0E: 0E C3/6F0F: 0F C3/6F10: 10 C3/6F11: 11 C3/6F12: 00 C3/6F13: 0E C3/6F14: 12 C3/6F15: 00 C3/6F16: 00 C3/6F17: 00 C3/6F18: 00 C3/6F19: 00 C3/6F1A: 06 C3/6F1B: 0000 C3/6F1D: 2003 C3/6F1F: 4006 C3/6F21: 6009 C3/6F23: 800C C3/6F25: A00F C3/6F27: C012 C3/6F29: E015 C3/6F2B: 0019 C3/6F2D: 201C C3/6F2F: 401F C3/6F31: 6022 C3/6F33: 8025 C3/6F35: A028 C3/6F37: C02B C3/6F39: E02E C3/6F3B: 0032 C3/6F3D: 2035 C3/6F3F: 0000 C3/6F41: C02B C3/6F43: 4038 C3/6F45: 0000 C3/6F47: 0000 C3/6F49: 0000 C3/6F4B: 0000 C3/6F4D: 0000 C3/6F4F: C012 C3/6F51: 0026 C3/6F53: 0028 C3/6F55: 002A C3/6F57: 002C C3/6F59: 002E C3/6F5B: 0030 C3/6F5D: 0032 C3/6F5F: 0034 C3/6F61: A491 LDY $91 C3/6F63: F01B BEQ $6F80 C3/6F65: A600 LDX $00 C3/6F67: B569 LDA $69,X C3/6F69: 3008 BMI $6F73 C3/6F6B: 20976F JSR $6F97 C3/6F6E: 20A66F JSR $6FA6 C3/6F71: 8002 BRA $6F75 C3/6F73: A9FF LDA #$FF C3/6F75: 9F71AA7E STA $7EAA71,X C3/6F79: E8 INX C3/6F7A: E00400 CPX #$0004 C3/6F7D: D0E8 BNE $6F67 C3/6F7F: 60 RTS C3/6F80: A600 LDX $00 C3/6F82: 8000 BRA $6F84 (Another pointless branch) C3/6F84: A9FF LDA #$FF C3/6F86: 9F71AA7E STA $7EAA71,X C3/6F8A: 9F72AA7E STA $7EAA72,X C3/6F8E: 9F73AA7E STA $7EAA73,X C3/6F92: 9F74AA7E STA $7EAA74,X C3/6F96: 60 RTS C3/6F97: DA PHX C3/6F98: C220 REP #$20 (16 bit memory/accum.) C3/6F9A: 8A TXA C3/6F9B: 0A ASL A C3/6F9C: AA TAX C3/6F9D: B46D LDY $6D,X C3/6F9F: E220 SEP #$20 (8 bit memory/accum.) C3/6FA1: FA PLX C3/6FA2: B90100 LDA $0001,Y C3/6FA5: 60 RTS Assign Officer getup to Locke for the save menu C3/6FA6: C90E CMP #$0E C3/6FA8: D00D BNE $6FB7 C3/6FAA: ADA01E LDA $1EA0 C3/6FAD: 8908 BIT #$08 (This bit is set by the event code when you are an officer) C3/6FAF: F004 BEQ $6FB5 (branch if not dressed up as an officer) C3/6FB1: A916 LDA #$16 (load...Gestahl's spritesheet?) C3/6FB3: 8002 BRA $6FB7 C3/6FB5: A90E LDA #$0E (load soldier spritesheet) C3/6FB7: 60 RTS C3/6FB8: A493 LDY $93 C3/6FBA: F01B BEQ $6FD7 C3/6FBC: A600 LDX $00 C3/6FBE: B569 LDA $69,X C3/6FC0: 3008 BMI $6FCA C3/6FC2: 20976F JSR $6F97 C3/6FC5: 20A66F JSR $6FA6 C3/6FC8: 8002 BRA $6FCC C3/6FCA: A9FF LDA #$FF C3/6FCC: 9F75AA7E STA $7EAA75,X C3/6FD0: E8 INX C3/6FD1: E00400 CPX #$0004 C3/6FD4: D0E8 BNE $6FBE C3/6FD6: 60 RTS C3/6FD7: A20400 LDX #$0004 C3/6FDA: 80A8 BRA $6F84 C3/6FDC: A495 LDY $95 C3/6FDE: F01B BEQ $6FFB C3/6FE0: A600 LDX $00 C3/6FE2: B569 LDA $69,X C3/6FE4: 3008 BMI $6FEE C3/6FE6: 20976F JSR $6F97 C3/6FE9: 20A66F JSR $6FA6 C3/6FEC: 8002 BRA $6FF0 C3/6FEE: A9FF LDA #$FF C3/6FF0: 9F79AA7E STA $7EAA79,X C3/6FF4: E8 INX C3/6FF5: E00400 CPX #$0004 C3/6FF8: D0E8 BNE $6FE2 C3/6FFA: 60 RTS C3/6FFB: A20800 LDX #$0008 C3/6FFE: 8084 BRA $6F84 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 Blank character portrait (presumably because a character isn't in that slot) 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: 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 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: 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: 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 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 DP $26 is #$2C - initiate party select screen C3/70E7: 20FC70 JSR $70FC C3/70EA: 644A STZ $4A C3/70EC: 645A STZ $5A C3/70EE: 6499 STZ $99 C3/70F0: 202A76 JSR $762A C3/70F3: 208274 JSR $7482 C3/70F6: 208B74 JSR $748B C3/70F9: 4C1471 JMP $7114 (no BRA?) 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: 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 - returning to party select screen from status screen 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 DP $26 is #$2D - sustain the party select screen C3/7168: 20B971 JSR $71B9 C3/716B: 904B BCC $71B8 C3/716D: A508 LDA $08 C3/716F: 8980 BIT #$80 C3/7171: F036 BEQ $71A9 C3/7173: A54B LDA $4B C3/7175: 18 CLC C3/7176: 654A ADC $4A C3/7178: 655A ADC $5A C3/717A: AA TAX C3/717B: BF8DAC7E LDA $7EAC8D,X C3/717F: 3021 BMI $71A2 C3/7181: 20B20E JSR $0EB2 (makes the click sound) C3/7184: A54B LDA $4B C3/7186: 8528 STA $28 C3/7188: A54A LDA $4A C3/718A: 8549 STA $49 C3/718C: A55A LDA $5A C3/718E: 855B STA $5B C3/7190: A92E LDA #$2E C3/7192: 8526 STA $26 C3/7194: 20212F JSR $2F21 C3/7197: A54A LDA $4A C3/7199: F006 BEQ $71A1 C3/719B: A902 LDA #$02 C3/719D: 9F49367E STA $7E3649,X C3/71A1: 60 RTS C3/71A2: 20C00E JSR $0EC0 (makes the buzzer sound) C3/71A5: 205D30 JSR $305D (mosaic effect) C3/71A8: 60 RTS 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: 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: 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: 201574 JSR $7415 C3/7209: 38 SEC C3/720A: 60 RTS C3/720B: 60 RTS DP $26 is #$2E - selecting a character in party select screen C3/720C: 20B971 JSR $71B9 C3/720F: 90FA BCC $720B C3/7211: A508 LDA $08 C3/7213: 8980 BIT #$80 (did you press A?) C3/7215: F066 BEQ $727D (branch if not, BPL...) C3/7217: 7B TDC C3/7218: A54B LDA $4B C3/721A: 18 CLC C3/721B: 654A ADC $4A C3/721D: 655A ADC $5A C3/721F: 85E0 STA $E0 C3/7221: AA TAX C3/7222: BF8DAC7E LDA $7EAC8D,X C3/7226: 3067 BMI $728F C3/7228: 7B TDC C3/7229: A528 LDA $28 C3/722B: 18 CLC C3/722C: 6549 ADC $49 C3/722E: 655B ADC $5B C3/7230: C5E0 CMP $E0 C3/7232: D031 BNE $7265 C3/7234: A5E0 LDA $E0 C3/7236: AA TAX C3/7237: BF899D7E LDA $7E9D89,X C3/723B: 303A BMI $7277 C3/723D: 20B20E JSR $0EB2 (makes the click sound) C3/7240: A559 LDA $59 C3/7242: 8579 STA $79 C3/7244: A453 LDY $53 C3/7246: 847A STY $7A C3/7248: A44D LDY $4D C3/724A: 848E STY $8E C3/724C: A54A LDA $4A C3/724E: 8590 STA $90 C3/7250: A55A LDA $5A C3/7252: 858D STA $8D C3/7254: A599 LDA $99 C3/7256: 855D STA $5D C3/7258: A942 LDA #$42 C3/725A: 8527 STA $27 (queue up to execute at C3/631D) C3/725C: A967 LDA #$67 C3/725E: 8526 STA $26 (execute at C3/79F0) C3/7260: A97D LDA #$7D C3/7262: 854C STA $4C C3/7264: 60 RTS C3/7265: 20B20E JSR $0EB2 (makes the click sound) C3/7268: A907 LDA #$07 C3/726A: 1447 TRB $47 C3/726C: 20F872 JSR $72F8 C3/726F: 20B011 JSR $11B0 (execute everything in OAM queue) C3/7272: 201376 JSR $7613 C3/7275: 800F BRA $7286 C3/7277: 20C00E JSR $0EC0 (makes the buzzer sound) C3/727A: 205D30 JSR $305D (mosiac effect) C3/727D: A509 LDA $09 C3/727F: 8980 BIT #$80 (did you press B?) C3/7281: F00B BEQ $728E (branch if not, BPL...) C3/7283: 20A90E JSR $0EA9 C3/7286: A92D LDA #$2D C3/7288: 8526 STA $26 (execute at C3/7168) C3/728A: A905 LDA #$05 C3/728C: 1446 TRB $46 C3/728E: 60 RTS C3/728F: 20C00E JSR $0EC0 (makes the buzzer sound) C3/7292: 205D30 JSR $305D (mosiac effect) C3/7295: 60 RTS 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: 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: 7B TDC C3/72F9: A528 LDA $28 C3/72FB: 18 CLC C3/72FC: 6549 ADC $49 C3/72FE: 655B ADC $5B C3/7300: AA TAX C3/7301: BF899D7E LDA $7E9D89,X (character index) C3/7305: 85E5 STA $E5 C3/7307: 100E BPL $7317 C3/7309: BF519E7E LDA $7E9E51,X C3/730D: 1FAF73C3 ORA $C373AF,X C3/7311: 85E0 STA $E0 C3/7313: 64E1 STZ $E1 C3/7315: 800F BRA $7326 C3/7317: A8 TAY C3/7318: B95018 LDA $1850,Y C3/731B: 29DF AND #$DF C3/731D: 85E0 STA $E0 C3/731F: B95018 LDA $1850,Y C3/7322: 2920 AND #$20 C3/7324: 85E1 STA $E1 C3/7326: A54B LDA $4B C3/7328: 18 CLC C3/7329: 654A ADC $4A C3/732B: 655A ADC $5A C3/732D: AA TAX C3/732E: BF899D7E LDA $7E9D89,X (character index) C3/7332: 85E6 STA $E6 C3/7334: 100E BPL $7344 C3/7336: BF519E7E LDA $7E9E51,X C3/733A: 1FAF73C3 ORA $C373AF,X C3/733E: 85E2 STA $E2 C3/7340: 64E3 STZ $E3 C3/7342: 800F BRA $7353 C3/7344: A8 TAY C3/7345: B95018 LDA $1850,Y C3/7348: 29DF AND #$DF C3/734A: 85E2 STA $E2 C3/734C: B95018 LDA $1850,Y C3/734F: 2920 AND #$20 C3/7351: 85E3 STA $E3 C3/7353: A5E0 LDA $E0 C3/7355: 2940 AND #$40 C3/7357: D008 BNE $7361 C3/7359: A5E2 LDA $E2 C3/735B: 2940 AND #$40 C3/735D: D01B BNE $737A C3/735F: 8030 BRA $7391 C3/7361: 7B TDC C3/7362: A528 LDA $28 C3/7364: 18 CLC C3/7365: 6549 ADC $49 C3/7367: 655B ADC $5B C3/7369: AA TAX C3/736A: BF899D7E LDA $7E9D89,X (character index) C3/736E: 30E9 BMI $7359 C3/7370: AA TAX C3/7371: A5E2 LDA $E2 C3/7373: 05E1 ORA $E1 C3/7375: 9D5018 STA $1850,X C3/7378: 80DF BRA $7359 C3/737A: 7B TDC C3/737B: A54B LDA $4B C3/737D: 18 CLC C3/737E: 654A ADC $4A C3/7380: 655A ADC $5A C3/7382: AA TAX C3/7383: BF899D7E LDA $7E9D89,X (character index) C3/7387: 3008 BMI $7391 C3/7389: AA TAX C3/738A: A5E0 LDA $E0 C3/738C: 05E3 ORA $E3 C3/738E: 9D5018 STA $1850,X C3/7391: 7B TDC C3/7392: A54B LDA $4B C3/7394: 18 CLC C3/7395: 654A ADC $4A C3/7397: 655A ADC $5A C3/7399: AA TAX C3/739A: A5E5 LDA $E5 C3/739C: 9F899D7E STA $7E9D89,X (character index) C3/73A0: A528 LDA $28 C3/73A2: 18 CLC C3/73A3: 6549 ADC $49 C3/73A5: 655B ADC $5B C3/73A7: AA TAX C3/73A8: A5E6 LDA $E6 C3/73AA: 9F899D7E STA $7E9D89,X (character index) C3/73AE: 60 RTS 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: 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: 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: 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: 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: 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: E8 INX C3/7445: BF6674C3 LDA $C37466,X C3/7449: 854D STA $4D C3/744B: 60 RTS 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: E8 INX C3/745F: BF7674C3 LDA $C37476,X C3/7463: 854D STA $4D C3/7465: 60 RTS 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: 0000 C3/7478: 0101 C3/747A: 0203 C3/747C: 0304 C3/747E: 0406 C3/7480: 0507 C3/7482: A0BE74 LDY #$74BE C3/7485: 4CFE05 JMP $05FE (hotspot data for group of characters in select screen) 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: A0E374 LDY #$74E3 C3/7494: 4CFE05 JMP $05FE (hotspot data for 1 party window setup) 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: A0F074 LDY #$74F0 C3/74A3: 4CFE05 JMP $05FE (hotspot data for 2 party window setup) 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: A00575 LDY #$7505 C3/74B2: 4CFE05 JMP $05FE (hotspot data for 3 party window setup) C3/74B5: 202D07 JSR $072D C3/74B8: A00A75 LDY #$750A C3/74BB: 4C3706 JMP $0637 (finger positioning data for 3 party window setup) Hotspot data, group of characters C3/74BE: 81 00 00 08 02 Finger positioning data, 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: 0880 C3/74D5: 2480 C3/74D7: 4080 C3/74D9: 5C80 C3/74DB: 7880 C3/74DD: 9480 C3/74DF: B080 C3/74E1: CC80 Hotspot data, 1 party C3/74E3: 81 00 00 02 02 Finger positioning data, 1 party C3/74E8: 08A4 C3/74EA: 28A4 C3/74EC: 08C0 C3/74EE: 28C0 Hotspot data, 2 parties C3/74F0: 81 00 00 04 02 Finger positioning data, 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 Hotspot data, 3 parties C3/7505: 81 00 00 06 02 Finger positioning data, 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: 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: 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: 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) Function Pointers C3/757D: 0000 C3/757F: 9175 C3/7581: 8B75 C3/7583: 8575 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 Window data C3/7598: 8B580602 C3/759C: CB5C1C07 C3/75A0: 8B591C05 C3/75A4: 0B5B1C06 C3/75A8: 9B581402 Window data C3/75AC: 0B5D0806 (party 1 window) C3/75B0: 1F5D0806 (party 2 window) C3/75B4: 335D0806 (party 3 window) 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: 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 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: 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: 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: A9FF LDA #$FF C3/762C: A600 LDX $00 C3/762E: 9F899D7E STA $7E9D89,X C3/7632: E8 INX C3/7633: E0A000 CPX #$00A0 C3/7636: D0F6 BNE $762E C3/7638: A2899D LDX #$9D89 C3/763B: 8E8121 STX $2181 C3/763E: AD0102 LDA $0201 C3/7641: 3022 BMI $7665 C3/7643: A600 LDX $00 C3/7645: BD5018 LDA $1850,X C3/7648: 2940 AND #$40 C3/764A: F00B BEQ $7657 C3/764C: BD5018 LDA $1850,X C3/764F: 2907 AND #$07 C3/7651: D004 BNE $7657 C3/7653: 8A TXA C3/7654: 8D8021 STA $2180 C3/7657: E8 INX C3/7658: E01000 CPX #$0010 C3/765B: D0E8 BNE $7645 C3/765D: A9FF LDA #$FF C3/765F: 8D8021 STA $2180 C3/7662: 4C7776 JMP $7677 (BRA would work here) C3/7665: A600 LDX $00 C3/7667: BD5018 LDA $1850,X C3/766A: 29F8 AND #$F8 (turn off bits 0, 1, and 2) C3/766C: 9D5018 STA $1850,X C3/766F: E8 INX C3/7670: E01000 CPX #$0010 C3/7673: D0F2 BNE $7667 C3/7675: 80CC BRA $7643 C3/7677: 20EA76 JSR $76EA C3/767A: 205378 JSR $7853 C3/767D: 208376 JSR $7683 C3/7680: 4C0C79 JMP $790C C3/7683: A600 LDX $00 C3/7685: 7B TDC C3/7686: BF899D7E LDA $7E9D89,X C3/768A: 3033 BMI $76BF C3/768C: DA PHX C3/768D: 48 PHA C3/768E: A900 LDA #$00 C3/7690: 48 PHA C3/7691: AB PLB C3/7692: A902 LDA #$02 C3/7694: A05F7A LDY #$7A5F C3/7697: 207311 JSR $1173 (put C3/7A5F in the queue) C3/769A: 9B TXY C3/769B: 7B TDC C3/769C: 68 PLA C3/769D: 9FC9357E STA $7E35C9,X C3/76A1: 20EB78 JSR $78EB C3/76A4: FA PLX C3/76A5: BFCA76C3 LDA $C376CA,X (get X position for sprites) C3/76A9: 99CA33 STA $33CA,Y C3/76AC: BFDA76C3 LDA $C376DA,X (get Y position for sprites) C3/76B0: 994A34 STA $344A,Y C3/76B3: 7B TDC C3/76B4: 99CB33 STA $33CB,Y C3/76B7: 994B34 STA $344B,Y C3/76BA: A9D8 LDA #$D8 C3/76BC: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/76BF: E8 INX C3/76C0: E01000 CPX #$0010 C3/76C3: D0C0 BNE $7685 C3/76C5: A900 LDA #$00 C3/76C7: 48 PHA C3/76C8: AB PLB C3/76C9: 60 RTS X position of characters in 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 (unless a character was put here during moving around, this is a blank spot) C3/76D9: DC (unless a character was put here during moving around, this is a blank spot) Y position of characters in 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 (unless a character was put here during moving around, this is a blank spot) C3/76E9: 78 (unless a character was put here during moving around, this is a blank spot) C3/76EA: A2B99D LDX #$9DB9 C3/76ED: 86E7 STX $E7 C3/76EF: AD0102 LDA $0201 C3/76F2: 2907 AND #$07 C3/76F4: 85E6 STA $E6 C3/76F6: A901 LDA #$01 C3/76F8: 85E0 STA $E0 C3/76FA: A6E7 LDX $E7 C3/76FC: 8E8121 STX $2181 C3/76FF: A600 LDX $00 C3/7701: BD5018 LDA $1850,X C3/7704: 2940 AND #$40 C3/7706: F00D BEQ $7715 C3/7708: BD5018 LDA $1850,X C3/770B: 2907 AND #$07 C3/770D: C5E0 CMP $E0 C3/770F: D004 BNE $7715 C3/7711: 8A TXA C3/7712: 8D8021 STA $2180 C3/7715: E8 INX C3/7716: E01000 CPX #$0010 C3/7719: D0E6 BNE $7701 C3/771B: A9FF LDA #$FF C3/771D: 8D8021 STA $2180 C3/7720: C220 REP #$20 (16 bit memory/accum.) C3/7722: A5E7 LDA $E7 C3/7724: 18 CLC C3/7725: 691000 ADC #$0010 C3/7728: 85E7 STA $E7 C3/772A: E220 SEP #$20 (8 bit memory/accum.) C3/772C: E6E0 INC $E0 C3/772E: C6E6 DEC $E6 C3/7730: D0C8 BNE $76FA C3/7732: 203877 JSR $7738 C3/7735: 4C0278 JMP $7802 C3/7738: AD0102 LDA $0201 C3/773B: 2907 AND #$07 C3/773D: 85E6 STA $E6 C3/773F: A600 LDX $00 C3/7741: A97E LDA #$7E C3/7743: 85E9 STA $E9 C3/7745: C220 REP #$20 (16 bit memory/accum.) C3/7747: BFE677C3 LDA $C377E6,X C3/774B: 85E7 STA $E7 C3/774D: BFE877C3 LDA $C377E8,X C3/7751: DA PHX C3/7752: AA TAX C3/7753: E220 SEP #$20 (8 bit memory/accum.) C3/7755: 20257B JSR $7B25 C3/7758: FA PLX C3/7759: E8 INX C3/775A: E8 INX C3/775B: E8 INX C3/775C: E8 INX C3/775D: C6E6 DEC $E6 C3/775F: D0E0 BNE $7741 C3/7761: A2999D LDX #$9D99 C3/7764: 8E8121 STX $2181 C3/7767: AD0102 LDA $0201 C3/776A: 297F AND #$7F C3/776C: C901 CMP #$01 C3/776E: F066 BEQ $77D6 C3/7770: C902 CMP #$02 C3/7772: F04F BEQ $77C3 C3/7774: 20C377 JSR $77C3 C3/7777: A600 LDX $00 C3/7779: BFE19D7E LDA $7E9DE1,X C3/777D: 8D8021 STA $2180 C3/7780: E8 INX C3/7781: E00400 CPX #$0004 C3/7784: D0F3 BNE $7779 C3/7786: A600 LDX $00 C3/7788: BFF19D7E LDA $7E9DF1,X C3/778C: 8D8021 STA $2180 C3/778F: E8 INX C3/7790: E00400 CPX #$0004 C3/7793: D0F3 BNE $7788 C3/7795: A600 LDX $00 C3/7797: BF019E7E LDA $7E9E01,X C3/779B: 8D8021 STA $2180 C3/779E: E8 INX C3/779F: E00400 CPX #$0004 C3/77A2: D0F3 BNE $7797 C3/77A4: A600 LDX $00 C3/77A6: BF119E7E LDA $7E9E11,X C3/77AA: 8D8021 STA $2180 C3/77AD: E8 INX C3/77AE: E00400 CPX #$0004 C3/77B1: D0F3 BNE $77A6 C3/77B3: A600 LDX $00 C3/77B5: BF219E7E LDA $7E9E21,X C3/77B9: 8D8021 STA $2180 C3/77BC: E8 INX C3/77BD: E00400 CPX #$0004 C3/77C0: D0F3 BNE $77B5 C3/77C2: 60 RTS 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 Data C3/77E6: C19D C3/77E8: 3000 C3/77EA: D19D C3/77EC: 4000 C3/77EE: E19D C3/77F0: 5000 C3/77F2: F19D C3/77F4: 6000 C3/77F6: 019E C3/77F8: 7000 C3/77FA: 119E C3/77FC: 8000 C3/77FE: 219E C3/7800: 9000 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: A901 LDA #$01 C3/783B: 4C4678 JMP $7846 (BRA would work here) 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: 8D8021 STA $2180 C3/7849: 8D8021 STA $2180 C3/784C: 8D8021 STA $2180 C3/784F: 8D8021 STA $2180 C3/7852: 60 RTS 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 Data C3/78E3: 18 C3/78E4: 18 C3/78E5: 38 C3/78E6: 38 Data C3/78E7: 9C C3/78E8: B8 C3/78E9: 9C C3/78EA: B8 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: 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: 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: 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: 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 Data C3/79C9: CF79 C3/79CB: D479 C3/79CD: D979 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 "/") Data: Positioning for Level, HP, MP for 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: 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: 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: 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: AA TAX C3/7A1A: 7C1D7A JMP ($7A1D,X) C3/7A1D: 217A C3/7A1F: 3E7A 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: AA TAX C3/7A60: 7C637A JMP ($7A63,X) C3/7A63: 677A C3/7A65: 787A 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: 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: 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 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: 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 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: A0519F LDY #$9F51 C3/7CA7: 841D STY $1D C3/7CA9: A97E LDA #$7E C3/7CAB: 851F STA $1F C3/7CAD: 60 RTS 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: 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: 20C781 JSR $81C7 C3/7D25: A0307D LDY #$7D30 C3/7D28: 4C4806 JMP $0648 Hotspot data for item screen C3/7D2B: 01 00 00 01 0A Finger positioning data 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: A0537D LDY #$7D53 C3/7D47: 4CFE05 JMP $05FE C3/7D4A: 202D07 JSR $072D C3/7D4D: A0587D LDY #$7D58 C3/7D50: 4C4006 JMP $0640 Hotspot data C3/7D53: 00 00 00 02 0A Finger positioning data 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: A0987D LDY #$7D98 C3/7D83: 4CFE05 JMP $05FE C3/7D86: A09D7D LDY #$7D9D C3/7D89: 4C4006 JMP $0640 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 Hotspot data C3/7D98: 01 00 00 03 01 Finger positioning data C3/7D9D: 4016 (position for "USE") C3/7D9F: 6816 (position for "ARRANGE") C3/7DA1: B016 (position for "RARE") Item screen setup routine it seems 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 Window data for item screen C3/7E13: 8B580402 C3/7E17: 97581602 C3/7E1B: 8B591C03 C3/7E1F: CB5A1C0F C3/7E23: AD600D18 C3/7E27: 85580118 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: 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 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: 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: 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 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: 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: 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 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: 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 C3/802C: A08B9E LDY #$9E8B C3/802F: 8C8121 STY $2181 (output icon to something WRAM-related) C3/8032: A00700 LDY #$0007 C3/8035: A9FF LDA #$FF (blank space) C3/8037: 8D8021 STA $2180 (output it to WRAM) C3/803A: E8 INX (dunno why we need to increment this here, as we're not indexing anything. consistency's sake?) C3/803B: 88 DEY C3/803C: D0F9 BNE $8037 (loop 7 times, as there are 7 characters in an item type name. iow, we want to make sure entire field is blanked.) C3/803E: 7B TDC C3/803F: 8D8021 STA $2180 (STZ $2180 would work here, end this string) C3/8042: 4CD97F JMP $7FD9 C3/8045: AD0002 LDA $0200 C3/8048: C903 CMP #$03 C3/804A: F039 BEQ $8085 (branch if ? is 3, sets text color to white) C3/804C: C907 CMP #$07 C3/804E: F035 BEQ $8085 (branch if ? is 7, sets text color to white) C3/8050: 8004 BRA $8056 C3/8052: 7B TDC C3/8053: A54B LDA $4B C3/8055: A8 TAY C3/8056: B96918 LDA $1869,Y (Items currently in inventory) C3/8059: C9EF CMP #$EF (Is it a megalixer?) C3/805B: F02D BEQ $808A C3/805D: C9FF CMP #$FF (Is it the "empty" item?) C3/805F: F024 BEQ $8085 C3/8061: C9F7 CMP #$F7 (Is it a tent?) C3/8063: F02A BEQ $808F C3/8065: C9F6 CMP #$F6 (Is it a sleeping bag?) C3/8067: F026 BEQ $808F C3/8069: C9FD CMP #$FD (Is it a warp stone?) C3/806B: F029 BEQ $8096 C3/806D: 202183 JSR $8321 (Multiply A by 30) C3/8070: AE3421 LDX $2134 (Load X with the result) C3/8073: BF0050D8 LDA $D85000,X (Load item type data X) C3/8077: 2907 AND #$07 (Zero out the upper nibble) C3/8079: C906 CMP #$06 (Is it an "item" item? [type 6]) C3/807B: D00D BNE $808A (If not, branch -> Put 40 in $29) C3/807D: BF0050D8 LDA $D85000,X (Otherwise, load item type data X) C3/8081: 2940 AND #$40 (Zero out all but bit 6 [usable on the field]) C3/8083: F005 BEQ $808A (If it's usable on the field, branch -> Put 40 in $29) C3/8085: A920 LDA #$20 (Otherwise, get a 32) C3/8087: 8529 STA $29 (set text color to white) C3/8089: 60 RTS C3/808A: A928 LDA #$28 (Load a 40) C3/808C: 8529 STA $29 (set text color to gray) C3/808E: 60 RTS C3/808F: AD0102 LDA $0201 C3/8092: 30F1 BMI $8085 (Check bit 7 of $0201 (allow tent/sleeping bag use, saving)) C3/8094: 80F4 BRA $808A C3/8096: AD0102 LDA $0201 C3/8099: 8902 BIT #$02 (Check bit 1 of $0201 (allow warp stone use, warping)) C3/809B: D0E8 BNE $8085 C3/809D: 80EB BRA $808A C3/809F: EB XBA C3/80A0: A500 LDA $00 C3/80A2: EB XBA C3/80A3: C220 REP #$20 (16 bit memory/accum.) C3/80A5: 0A ASL A C3/80A6: 0A ASL A C3/80A7: 0A ASL A C3/80A8: 0A ASL A C3/80A9: 0A ASL A C3/80AA: 0A ASL A C3/80AB: 85E7 STA $E7 C3/80AD: 8A TXA C3/80AE: 0A ASL A C3/80AF: 18 CLC C3/80B0: 65E7 ADC $E7 C3/80B2: 694938 ADC #$3849 (any text drawn will use layer 1) C3/80B5: AA TAX C3/80B6: E220 SEP #$20 (8 bit memory/accum.) C3/80B8: 60 RTS C3/80B9: A28B9E LDX #$9E8B (position in VRAM) C3/80BC: 8E8121 STX $2181 C3/80BF: AD1242 LDA $4212 C3/80C2: 2940 AND #$40 (are we in H-blank?) C3/80C4: F0F9 BEQ $80BF (branch if not) C3/80C6: 7B TDC C3/80C7: B96918 LDA $1869,Y (Load inventory item Y) C3/80CA: C9FF CMP #$FF (Is it the "empty" item?) C3/80CC: F028 BEQ $80F6 (If so, skip to the next part) C3/80CE: 8D1B21 STA $211B (Write the index out to be multiplied) C3/80D1: 9C1B21 STZ $211B C3/80D4: A90D LDA #$0D C3/80D6: 8D1C21 STA $211C (multiply by 13) C3/80D9: 8D1C21 STA $211C (and again) C3/80DC: AE3421 LDX $2134 (Load X with the result of index * 13) C3/80DF: A00D00 LDY #$000D (Start the count of letters at 13) C3/80E2: BF00B3D2 LDA $D2B300,X (Load letter X of item name) C3/80E6: 8D8021 STA $2180 C3/80E9: E8 INX C3/80EA: 88 DEY C3/80EB: D0F5 BNE $80E2 C3/80ED: A9C1 LDA #$C1 (colon in the font) C3/80EF: 8D8021 STA $2180 C3/80F2: 9C8021 STZ $2180 (end this string) C3/80F5: 60 RTS C3/80F6: A01000 LDY #$0010 (blank out item name, colon, and quantity) C3/80F9: A9FF LDA #$FF C3/80FB: 8D8021 STA $2180 C3/80FE: 88 DEY C3/80FF: D0FA BNE $80FB C3/8101: 9C8021 STZ $2180 (end the string) C3/8104: 60 RTS C3/8105: A21200 LDX #$0012 C3/8108: E220 SEP #$20 (8 bit memory/accum.) C3/810A: BF49987E LDA $7E9849,X C3/810E: C91E CMP #$1E (branch if ? is 30) C3/8110: F04C BEQ $815E C3/8112: E8 INX C3/8113: DA PHX C3/8114: 7B TDC C3/8115: A520 LDA $20 C3/8117: C220 REP #$20 (16 bit memory/accum.) C3/8119: A441 LDY $41 C3/811B: 3002 BMI $811F C3/811D: 8004 BRA $8123 C3/811F: 18 CLC C3/8120: 690300 ADC #$0003 C3/8123: 0A ASL A C3/8124: AA TAX C3/8125: A8 TAY C3/8126: BF5F81C3 LDA $C3815F,X C3/812A: FA PLX C3/812B: 18 CLC C3/812C: 7F49987E ADC $7E9849,X C3/8130: 9F49987E STA $7E9849,X C3/8134: E8 INX C3/8135: E8 INX C3/8136: E8 INX C3/8137: DA PHX C3/8138: BB TYX C3/8139: BF6B81C3 LDA $C3816B,X C3/813D: FA PLX C3/813E: 18 CLC C3/813F: 7F49987E ADC $7E9849,X C3/8143: 9F49987E STA $7E9849,X C3/8147: E8 INX C3/8148: E8 INX C3/8149: E8 INX C3/814A: DA PHX C3/814B: BB TYX C3/814C: BF7781C3 LDA $C38177,X C3/8150: FA PLX C3/8151: 18 CLC C3/8152: 7F49987E ADC $7E9849,X C3/8156: 9F49987E STA $7E9849,X C3/815A: E8 INX C3/815B: E8 INX C3/815C: 80AA BRA $8108 C3/815E: 60 RTS C3/815F: 0800 C3/8161: 0400 C3/8163: 0400 C3/8165: FCFF C3/8167: FCFF C3/8169: F8FF C3/816B: 0400 C3/816D: 0800 C3/816F: 0400 C3/8171: FCFF C3/8173: F8FF C3/8175: FCFF C3/8177: 0400 C3/8179: 0400 C3/817B: 0800 C3/817D: F8FF C3/817F: FCFF C3/8181: FCFF C3/8183: AA TAX C3/8184: 7C8781 JMP ($8187,X) C3/8187: 8F81 C3/8189: 9C81 C3/818B: A781 C3/818D: B081 C3/818F: A62D LDX $2D C3/8190: C220 REP #$20 C3/8193: A9FCFF LDA #$FFFC C3/8196: 8541 STA $41 C3/8198: E220 SEP #$20 (8 bit memory/accum.) C3/819A: 800B BRA $81A7 C3/819C: A62D LDX $2D C3/819E: C220 REP #$20 (16 bit memory/accum.) C3/81A0: A90400 LDA #$0004 C3/81A3: 8541 STA $41 C3/81A5: E220 SEP #$20 (8 bit memory/accum.) C3/81A7: A62D LDX $2D C3/81A9: A903 LDA #$03 C3/81AB: 9D4936 STA $3649,X (execute the fourth entry in this queue's jump table) C3/81AE: 8520 STA $20 C3/81B0: A62D LDX $2D C3/81B2: A520 LDA $20 C3/81B4: F006 BEQ $81BC C3/81B6: A920 LDA #$20 C3/81B8: 0446 TSB $46 C3/81BA: 38 SEC (not done with this queue yet) C3/81BB: 60 RTS C3/81BC: A400 LDY $00 C3/81BE: 8441 STY $41 C3/81C0: A920 LDA #$20 C3/81C2: 1446 TRB $46 C3/81C4: 18 CLC (this queue can be removed) C3/81C5: 60 RTS C3/81C6: 60 RTS Update finger position based on direction pressed for scrolling screens C3/81C7: A520 LDA $20 C3/81C9: D0FB BNE $81C6 C3/81CB: A50B LDA $0B C3/81CD: 8908 BIT #$08 C3/81CF: F019 BEQ $81EA C3/81D1: A54E LDA $4E C3/81D3: D00D BNE $81E2 C3/81D5: A54A LDA $4A C3/81D7: F0ED BEQ $81C6 C3/81D9: C650 DEC $50 C3/81DB: 208682 JSR $8286 C3/81DE: 20A30E JSR $0EA3 C3/81E1: 60 RTS C3/81E2: C650 DEC $50 C3/81E4: C64E DEC $4E C3/81E6: 20A30E JSR $0EA3 C3/81E9: 60 RTS C3/81EA: A50B LDA $0B C3/81EC: 8904 BIT #$04 C3/81EE: F020 BEQ $8210 C3/81F0: A554 LDA $54 C3/81F2: 3A DEC A C3/81F3: C54E CMP $4E C3/81F5: D012 BNE $8209 C3/81F7: A54A LDA $4A C3/81F9: C55C CMP $5C C3/81FB: F009 BEQ $8206 C3/81FD: E650 INC $50 C3/81FF: 209E82 JSR $829E C3/8202: 20A30E JSR $0EA3 C3/8205: 60 RTS C3/8206: 4C8582 JMP $8285 (no BRA?) C3/8209: E650 INC $50 C3/820B: E64E INC $4E C3/820D: 20A30E JSR $0EA3 C3/8210: A50B LDA $0B C3/8212: 8902 BIT #$02 C3/8214: F033 BEQ $8249 C3/8216: A54D LDA $4D C3/8218: D027 BNE $8241 C3/821A: A54E LDA $4E C3/821C: F00F BEQ $822D C3/821E: C64E DEC $4E C3/8220: C650 DEC $50 C3/8222: A553 LDA $53 C3/8224: 3A DEC A C3/8225: 854D STA $4D C3/8227: 854F STA $4F C3/8229: 20A30E JSR $0EA3 C3/822C: 60 RTS C3/822D: A54A LDA $4A C3/822F: F095 BEQ $81C6 C3/8231: 208682 JSR $8286 C3/8234: A553 LDA $53 C3/8236: 3A DEC A C3/8237: 854D STA $4D C3/8239: 854F STA $4F C3/823B: C650 DEC $50 C3/823D: 20A30E JSR $0EA3 C3/8240: 60 RTS C3/8241: C64D DEC $4D C3/8243: C64F DEC $4F C3/8245: 20A30E JSR $0EA3 C3/8248: 60 RTS C3/8249: A50B LDA $0B C3/824B: 8901 BIT #$01 C3/824D: F036 BEQ $8285 C3/824F: A553 LDA $53 C3/8251: 3A DEC A C3/8252: C54D CMP $4D C3/8254: D028 BNE $827E C3/8256: A554 LDA $54 C3/8258: 3A DEC A C3/8259: C54E CMP $4E C3/825B: F00D BEQ $826A C3/825D: 7B TDC C3/825E: 854D STA $4D C3/8260: 854F STA $4F C3/8262: E64E INC $4E C3/8264: E650 INC $50 C3/8266: 20A30E JSR $0EA3 C3/8269: 60 RTS C3/826A: A54A LDA $4A C3/826C: C55C CMP $5C C3/826E: F015 BEQ $8285 C3/8270: 209E82 JSR $829E C3/8273: 7B TDC C3/8274: 854D STA $4D C3/8276: 854F STA $4F C3/8278: E650 INC $50 C3/827A: 20A30E JSR $0EA3 C3/827D: 60 RTS C3/827E: E64D INC $4D C3/8280: E64F INC $4F C3/8282: 20A30E JSR $0EA3 C3/8285: 60 RTS C3/8286: C64A DEC $4A (from C3/81DB, C3/8231, subtract 1 from the "page" value) C3/8288: C649 DEC $49 C3/828A: 20F783 JSR $83F7 C3/828D: 20DD82 JSR $82DD C3/8290: A900 LDA #$00 C3/8292: A08381 LDY #$8183 C3/8295: 207311 JSR $1173 (put C3/8183 in the queue) C3/8298: 7B TDC C3/8299: 9F49367E STA $7E3649,X C3/829D: 60 RTS C3/829E: AD1242 LDA $4212 C3/82A1: 2940 AND #$40 (are we in H-blank?) C3/82A3: F0F9 BEQ $829E (branch if not) C3/82A5: A55A LDA $5A C3/82A7: 18 CLC C3/82A8: 654A ADC $4A C3/82AA: 8D1B21 STA $211B C3/82AD: 9C1B21 STZ $211B C3/82B0: A55B LDA $5B C3/82B2: 8D1C21 STA $211C C3/82B5: 8D1C21 STA $211C C3/82B8: AD3421 LDA $2134 C3/82BB: 85E5 STA $E5 C3/82BD: A549 LDA $49 C3/82BF: 18 CLC C3/82C0: 655A ADC $5A C3/82C2: 0A ASL A C3/82C3: 291F AND #$1F C3/82C5: 85E6 STA $E6 C3/82C7: E64A INC $4A (add 1 to the "page" value) C3/82C9: E649 INC $49 C3/82CB: 20DD82 JSR $82DD C3/82CE: A900 LDA #$00 C3/82D0: A08381 LDY #$8183 C3/82D3: 207311 JSR $1173 (put C3/8183 in the queue) C3/82D6: A901 LDA #$01 C3/82D8: 9F49367E STA $7E3649,X C3/82DC: 60 RTS Depending on where you are at, scroll VRAM C3/82DD: 7B TDC C3/82DE: A52A LDA $2A C3/82E0: 0A ASL A C3/82E1: AA TAX C3/82E2: 7CE582 JMP ($82E5,X) C3/82E5: A17F (put item names and quantities in VRAM buffer?) C3/82E7: 9E4F (put spell names in VRAM buffer?) C3/82E9: 5652 (put lore names in VRAM buffer?) C3/82EB: EE53 (put rage names in VRAM buffer?) C3/82EC: E354 (put esper names in VRAM buffer?) C3/82EE: E29C (looks like the equip screen VRAM buffer?) C3/82F1: 200883 JSR $8308 C3/82F4: 7B TDC (Clear A) C3/82F5: A54B LDA $4B (Load index from $4B) C3/82F7: A8 TAY (Transfer index to Y) C3/82F8: B96918 LDA $1869,Y (Load inventory item Y) C3/82FB: 203857 JSR $5738 C3/82FE: 205683 JSR $8356 C3/8301: A920 LDA #$20 (Load A with 32) C3/8303: 8529 STA $29 (set text color to white) C3/8305: 4C7A83 JMP $837A (BRA fool!) C3/8308: A2A07A LDX #$7AA0 (Pointers to item descriptions) C3/830B: 86E7 STX $E7 C3/830D: A20064 LDX #$6400 (Start of item descriptions) C3/8310: 86EB STX $EB C3/8312: A9ED LDA #$ED (Bank address of pointers to item descriptions) C3/8314: 85E9 STA $E9 C3/8316: A9ED LDA #$ED (Bank address of item descriptions) C3/8318: 85ED STA $ED C3/831A: A2C99E LDX #$9EC9 C3/831D: 8E8121 STX $2181 C3/8320: 60 RTS This multiplies A by 30, but the calling function has to get it out of $2134 C3/8321: 48 PHA C3/8322: AD1242 LDA $4212 C3/8325: 2940 AND #$40 (are we in H-blank?) C3/8327: F0F9 BEQ $8322 (branch if not) C3/8329: 68 PLA C3/832A: 8D1B21 STA $211B C3/832D: 9C1B21 STZ $211B C3/8330: A91E LDA #$1E (30) C3/8332: 8D1C21 STA $211C C3/8335: 8D1C21 STA $211C C3/8338: 60 RTS C3/8339: A260FB LDX #$FB60 (address of rare item descritpion pointers) C3/833C: 86E7 STX $E7 C3/833E: A2B0FC LDX #$FCB0 (address of rare item descritpions) C3/8341: 86EB STX $EB C3/8343: A9CE LDA #$CE (bank of rare item descriptions) C3/8345: 85E9 STA $E9 C3/8347: 85ED STA $ED C3/8349: 202A57 JSR $572A C3/834C: 206B83 JSR $836B C3/834F: A920 LDA #$20 C3/8351: 8529 STA $29 (set text color to white) C3/8353: 4C7A83 JMP $837A (BRA would work here) C3/8356: 7B TDC C3/8357: AA TAX C3/8358: A8 TAY (A, X, and Y are all 0) C3/8359: BD6918 LDA $1869,X (Load inventory item X) C3/835C: C9FF CMP #$FF (Is it the "empty" item?) C3/835E: F001 BEQ $8361 (If so, skip the next line) C3/8360: C8 INY (Increment Y (total non-empty items)) C3/8361: E8 INX (Increment X (total inventory list length)) C3/8362: E00001 CPX #$0100 (Is X 256 yet?) C3/8365: D0F2 BNE $8359 (If not, branch -> Load inventory item X) C3/8367: 98 TYA (Otherwise, transfer the # items total to A) C3/8368: 8564 STA $64 (Store it in $64) C3/836A: 60 RTS C3/836B: 7B TDC C3/836C: AA TAX C3/836D: BF899D7E LDA $7E9D89,X C3/8371: 3003 BMI $8376 C3/8373: E8 INX C3/8374: 80F7 BRA $836D C3/8376: 8A TXA C3/8377: 8564 STA $64 C3/8379: 60 RTS C3/837A: A564 LDA $64 C3/837C: 20E004 JSR $04E0 C3/837F: A2BF7A LDX #$7ABF C3/8382: 4CC004 JMP $04C0 C3/8385: A04A8E LDY #$8E4A C3/8388: 4CF902 JMP $02F9 (display " ") C3/838B: 20156A JSR $6A15 C3/838E: 209483 JSR $8394 C3/8391: 4CDE83 JMP $83DE The rare item screen! C3/8394: A2899D LDX #$9D89 C3/8397: 8E8121 STX $2181 C3/839A: A01400 LDY #$0014 (20 letters) C3/839D: A9FF LDA #$FF C3/839F: 8D8021 STA $2180 (blank the name, and plenty more after that) C3/83A2: 88 DEY C3/83A3: D0FA BNE $839F C3/83A5: A2899D LDX #$9D89 (X would still be holding this) C3/83A8: 8E8121 STX $2181 C3/83AB: AEBA1E LDX $1EBA (rare items bytes 1 and 2) C3/83AE: 86EF STX $EF C3/83B0: ADBC1E LDA $1EBC (Rare items byte 3) C3/83B3: 85F1 STA $F1 C3/83B5: ADBD1E LDA $1EBD (rare items byte 4) C3/83B8: 290F AND #$0F C3/83BA: 64F2 STZ $F2 (this makes byte 4 unused) C3/83BC: 7B TDC C3/83BD: 85E0 STA $E0 C3/83BF: AA TAX C3/83C0: A904 LDA #$04 C3/83C2: 85E1 STA $E1 C3/83C4: A00800 LDY #$0008 C3/83C7: B5EF LDA $EF,X C3/83C9: 6A ROR A C3/83CA: 48 PHA C3/83CB: 9005 BCC $83D2 C3/83CD: A5E0 LDA $E0 C3/83CF: 8D8021 STA $2180 C3/83D2: E6E0 INC $E0 C3/83D4: 68 PLA C3/83D5: 88 DEY C3/83D6: D0F1 BNE $83C9 C3/83D8: E8 INX C3/83D9: C6E1 DEC $E1 C3/83DB: D0E7 BNE $83C4 C3/83DD: 60 RTS C3/83DE: 20F783 JSR $83F7 C3/83E1: 64E5 STZ $E5 C3/83E3: A00A00 LDY #$000A C3/83E6: 5A PHY C3/83E7: 201B84 JSR $841B C3/83EA: A5E6 LDA $E6 C3/83EC: 1A INC A C3/83ED: 1A INC A C3/83EE: 291F AND #$1F C3/83F0: 85E6 STA $E6 C3/83F2: 7A PLY C3/83F3: 88 DEY C3/83F4: D0F0 BNE $83E6 C3/83F6: 60 RTS C3/83F7: A549 LDA $49 C3/83F9: 0A ASL A C3/83FA: 291F AND #$1F C3/83FC: 85E6 STA $E6 C3/83FE: AD1242 LDA $4212 C3/8401: 2940 AND #$40 (are we in H-blank?) C3/8403: F0F9 BEQ $83FE (branch if not) C3/8405: A54A LDA $4A C3/8407: 8D1B21 STA $211B C3/840A: 9C1B21 STZ $211B C3/840D: A55B LDA $5B C3/840F: 8D1C21 STA $211C C3/8412: 8D1C21 STA $211C C3/8415: AD3421 LDA $2134 C3/8418: 85E5 STA $E5 C3/841A: 60 RTS C3/841B: A920 LDA #$20 C3/841D: 8529 STA $29 (set text color to white) C3/841F: 203684 JSR $8436 C3/8422: A20300 LDX #$0003 C3/8425: 204584 JSR $8445 C3/8428: E6E5 INC $E5 C3/842A: 203684 JSR $8436 C3/842D: A21100 LDX #$0011 C3/8430: 204584 JSR $8445 C3/8433: E6E5 INC $E5 C3/8435: 60 RTS C3/8436: A00D00 LDY #$000D (13 letters each) C3/8439: 84EB STY $EB C3/843B: A0A0FB LDY #$FBA0 (address of rare item names) C3/843E: 84EF STY $EF C3/8440: A9CE LDA #$CE (bank of rare item names) C3/8442: 85F1 STA $F1 C3/8444: 60 RTS C3/8445: A5E6 LDA $E6 C3/8447: 1A INC A C3/8448: 209F80 JSR $809F C3/844B: C220 REP #$20 (16 bit memory/accum.) C3/844D: 8A TXA C3/844E: 8F899E7E STA $7E9E89 C3/8452: E220 SEP #$20 (8 bit memory/accum.) C3/8454: 7B TDC C3/8455: A5E5 LDA $E5 C3/8457: AA TAX C3/8458: BF899D7E LDA $7E9D89,X (load rare item) C3/845C: C9FF CMP #$FF C3/845E: F006 BEQ $8466 (branch if no rare item) C3/8460: 206784 JSR $8467 (rare item names to buffer) C3/8463: 4CD97F JMP $7FD9 (display rare item names) C3/8466: 60 RTS Draw esper, spell, and other ability names C3/8467: 48 PHA C3/8468: A28B9E LDX #$9E8B C3/846B: 8E8121 STX $2181 C3/846E: AD1242 LDA $4212 C3/8471: 2940 AND #$40 (are we in H-blank?) C3/8473: F0F9 BEQ $846E (branch if not) C3/8475: 68 PLA C3/8476: 8D1B21 STA $211B C3/8479: 9C1B21 STZ $211B C3/847C: 7B TDC C3/847D: A5EB LDA $EB C3/847F: 8D1C21 STA $211C C3/8482: 8D1C21 STA $211C C3/8485: AC3421 LDY $2134 C3/8488: A6EB LDX $EB C3/848A: B7EF LDA [$EF],Y C3/848C: 8D8021 STA $2180 C3/848F: C8 INY C3/8490: CA DEX C3/8491: D0F7 BNE $848A C3/8493: 9C8021 STZ $2180 (end this string) C3/8496: 60 RTS Item double-clicked... now what? C3/8497: 7B TDC (Clear A) C3/8498: A54B LDA $4B (Load index from $4B) C3/849A: 8528 STA $28 (Overwrite $28 with contents of $4B just in case) C3/849C: A8 TAY (Transfer index to Y) C3/849D: B96918 LDA $1869,Y (Load inventory item Y) C3/84A0: C9FF CMP #$FF (Is it the "empty" item?) C3/84A2: F06C BEQ $8510 (If so, branch and exit) C3/84A4: C9EF CMP #$EF (Otherwise, check to see is it a megalixer) C3/84A6: F068 BEQ $8510 (If it is, branch and exit) C3/84A8: 202183 JSR $8321 (Function $8321, does some stuff and (somehow?) multiplies A by 30) C3/84AB: AE3421 LDX $2134 (Gets the result of the multiplication and stores it in X) C3/84AE: BF0050D8 LDA $D85000,X (Load item type data X) C3/84B2: 2907 AND #$07 (Zero out upper nibble) C3/84B4: C906 CMP #$06 (Is it an "item" item? [heh] (like potions or such)) C3/84B6: D05D BNE $8515 (If not, branch -> [area for equippable chars, etc.]) C3/84B8: BF0050D8 LDA $D85000,X (Load item type data X) C3/84BC: 2940 AND #$40 (Zero out all bits except bit 6) C3/84BE: F050 BEQ $8510 (If it's 0, it isn't usable on the field, so branch and exit) C3/84C0: 7B TDC (Clear A) C3/84C1: A528 LDA $28 (Load A with $28 (index of item you clicked)) C3/84C3: A8 TAY (Transfer index to Y) C3/84C4: B96918 LDA $1869,Y (Load inventory item Y) C3/84C7: C9F7 CMP #$F7 (Is it a tent?) C3/84C9: F02D BEQ $84F8 (If so, branch ) C3/84CB: C9F6 CMP #$F6 (Is it a sleeping bag?) C3/84CD: F013 BEQ $84E2 (If so, branch ) C3/84CF: C9FD CMP #$FD (Is it a warp stone?) C3/84D1: F018 BEQ $84EB (If so, branch ) C3/84D3: A44F LDY $4F (Load $4F into Y [whatever it is]) C3/84D5: 848E STY $8E (Copy it over to $8E) C3/84D7: A54A LDA $4A (Load $4A into A [whatever it is]) C3/84D9: 8590 STA $90 (Copy it over to $90) C3/84DB: A96F LDA #$6F C3/84DD: 8527 STA $27 (queue up to execute at C3/8A84) C3/84DF: 6426 STZ $26 (transition process to above) C3/84E1: 60 RTS It's a sleeping bag C3/84E2: 85E6 STA $E6 C3/84E4: AD0102 LDA $0201 C3/84E7: 1027 BPL $8510 (Bit 7 set prevents tent/sleeping bag usage) C3/84E9: 80E8 BRA $84D3 A warp stone! Yeah! Just what I always wanted. C3/84EB: 85E6 STA $E6 C3/84ED: AD0102 LDA $0201 C3/84F0: 8902 BIT #$02 C3/84F2: F01C BEQ $8510` (Bit 1 set prevents warp stone usage) C3/84F4: A903 LDA #$03 C3/84F6: 8009 BRA $8501 Guess what? It's a tent C3/84F8: 85E6 STA $E6 C3/84FA: AD0102 LDA $0201 (Bit 7 set prevents tent/sleeping bag usage) C3/84FD: 1011 BPL $8510 C3/84FF: A902 LDA #$02 C3/8501: 8D0502 STA $0205 C3/8504: A5E6 LDA $E6 C3/8506: 20979D JSR $9D97 (Remove item from inventory) C3/8509: A9FF LDA #$FF C3/850B: 8527 STA $27 C3/850D: 6426 STZ $26 C3/850F: 60 RTS C3/8510: A908 LDA #$08 C3/8512: 8526 STA $26 C3/8514: 60 RTS C3/8515: A0899D LDY #$9D89 C3/8518: 8C8121 STY $2181 C3/851B: C900 CMP #$00 C3/851D: F0F1 BEQ $8510 C3/851F: 64E0 STZ $E0 C3/8521: C220 REP #$20 (16 bit memory/accum.) C3/8523: BF0150D8 LDA $D85001,X (Load item equippable chars data X) C3/8527: A600 LDX $00 C3/8529: 4A LSR A C3/852A: 900B BCC $8537 C3/852C: 48 PHA C3/852D: E220 SEP #$20 (8 bit memory/accum.) C3/852F: A5E0 LDA $E0 C3/8531: 8D8021 STA $2180 C3/8534: C220 REP #$20 (16 bit memory/accum.) C3/8536: 68 PLA C3/8537: E220 SEP #$20 (8 bit memory/accum.) C3/8539: E6E0 INC $E0 C3/853B: C220 REP #$20 (16 bit memory/accum.) C3/853D: E8 INX C3/853E: E00E00 CPX #$000E C3/8541: D0E6 BNE $8529 C3/8543: E220 SEP #$20 (8 bit memory/accum.) C3/8545: A9FF LDA #$FF C3/8547: 8D8021 STA $2180 C3/854A: C220 REP #$20 (16 bit memory/accum.) C3/854C: A9E000 LDA #$00E0 (hide item list offscreen?) C3/854F: 8F109A7E STA $7E9A10 C3/8553: A98D7D LDA #$7D8D (position of item name in double-click menu) C3/8556: 8F899E7E STA $7E9E89 C3/855A: E220 SEP #$20 (8 bit memory/accum.) C3/855C: A904 LDA #$04 C3/855E: 1445 TRB $45 C3/8560: 208C85 JSR $858C C3/8563: 209585 JSR $8595 C3/8566: 7B TDC C3/8567: A54B LDA $4B C3/8569: A8 TAY C3/856A: 20B980 JSR $80B9 C3/856D: 20AD85 JSR $85AD C3/8570: A92C LDA #$2C C3/8572: 8529 STA $29 (set text color to blue) C3/8574: 20D97F JSR $7FD9 C3/8577: A920 LDA #$20 C3/8579: 8529 STA $29 (set text color to white) C3/857B: 20D585 JSR $85D5 C3/857E: 207186 JSR $8671 C3/8581: 20250F JSR $0F25 C3/8584: 20890F JSR $0F89 C3/8587: A964 LDA #$64 C3/8589: 8526 STA $26 C3/858B: 60 RTS C3/858C: A9C0 LDA #$C0 C3/858E: 1446 TRB $46 C3/8590: A910 LDA #$10 C3/8592: 0445 TSB $45 C3/8594: 60 RTS C3/8595: A901 LDA #$01 C3/8597: 8599 STA $99 C3/8599: A901 LDA #$01 C3/859B: A0197A LDY #$7A19 C3/859E: 207311 JSR $1173 (put C3/7A19 in the queue) C3/85A1: A980 LDA #$80 C3/85A3: 9F4A347E STA $7E344A,X C3/85A7: 7B TDC C3/85A8: 9F4B347E STA $7E344B,X C3/85AC: 60 RTS C3/85AD: A20100 LDX #$0001 C3/85B0: BF8B9E7E LDA $7E9E8B,X C3/85B4: C9FF CMP #$FF C3/85B6: D015 BNE $85CD (branch if no space?) C3/85B8: A400 LDY $00 C3/85BA: DA PHX C3/85BB: BB TYX C3/85BC: BF348DC3 LDA $C38D34,X (grab " can be used by:") C3/85C0: FA PLX C3/85C1: 9F8B9E7E STA $7E9E8B,X C3/85C5: E8 INX C3/85C6: C8 INY C3/85C7: C01100 CPY #$0011 (length of " can be used by:" ??) C3/85CA: D0EE BNE $85BA C3/85CC: 60 RTS C3/85CD: E8 INX C3/85CE: E00D00 CPX #$000D (at most, uses the full item name length before putting in "can be used by:") C3/85D1: D0DD BNE $85B0 C3/85D3: 80E3 BRA $85B8 C3/85D5: A2099E LDX #$9E09 C3/85D8: 8E8121 STX $2181 C3/85DB: A600 LDX $00 C3/85DD: BF899D7E LDA $7E9D89,X C3/85E1: 3040 BMI $8623 C3/85E3: 85E5 STA $E5 C3/85E5: A400 LDY $00 C3/85E7: 84E7 STY $E7 C3/85E9: 86F3 STX $F3 C3/85EB: A5E5 LDA $E5 C3/85ED: D90016 CMP $1600,Y C3/85F0: D018 BNE $860A C3/85F2: C220 REP #$20 (16 bit memory/accum.) C3/85F4: A5E7 LDA $E7 C3/85F6: 0A ASL A C3/85F7: AA TAX C3/85F8: ADDC1E LDA $1EDC C3/85FB: 3F679CC3 AND $C39C67,X C3/85FF: E220 SEP #$20 (8 bit memory/accum.) C3/8601: F018 BEQ $861B C3/8603: A5E7 LDA $E7 C3/8605: 8D8021 STA $2180 C3/8608: 8011 BRA $861B C3/860A: C221 REP #$21 C3/860C: 98 TYA C3/860D: 692500 ADC #$0025 C3/8610: A8 TAY C3/8611: E220 SEP #$20 (8 bit memory/accum.) C3/8613: E6E7 INC $E7 C3/8615: A5E7 LDA $E7 C3/8617: C910 CMP #$10 C3/8619: D0CE BNE $85E9 C3/861B: A6F3 LDX $F3 C3/861D: E8 INX C3/861E: E01000 CPX #$0010 C3/8621: D0BA BNE $85DD C3/8623: A9FF LDA #$FF C3/8625: 8D8021 STA $2180 C3/8628: A600 LDX $00 C3/862A: 7B TDC C3/862B: BF099E7E LDA $7E9E09,X C3/862F: 3021 BMI $8652 C3/8631: DA PHX C3/8632: DA PHX C3/8633: C220 REP #$20 (16 bit memory/accum.) C3/8635: 0A ASL A C3/8636: AA TAX C3/8637: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/863B: 8567 STA $67 C3/863D: FA PLX C3/863E: 8A TXA C3/863F: 0A ASL A C3/8640: AA TAX C3/8641: BF5386C3 LDA $C38653,X C3/8645: A8 TAY C3/8646: E220 SEP #$20 (8 bit memory/accum.) C3/8648: 20CF34 JSR $34CF (display character name) C3/864B: FA PLX C3/864C: E8 INX C3/864D: E00E00 CPX #$000E C3/8650: D0D8 BNE $862A C3/8652: 60 RTS Data: Positioning of names under " can be used by:" C3/8653: 0F7E (Terra) C3/8655: 237E (Locke) C3/8657: 377E (Cyan) C3/8659: 8F7E (Shadow) C3/865B: A37E (Edgar) C3/865D: B77E (Sabin) C3/865F: 0F7F (Celes) C3/8661: 237F (Strago) C3/8663: 377F (Relm) C3/8665: 8F7F (Setzer) C3/8667: A37F (Mog) C3/8669: B77F (Gau) C3/866B: 0F80 (Gogo) C3/866D: 2380 (Umaro) C3/866F: 3780 (character 15, but why?) C3/8671: 20416A JSR $6A41 C3/8674: A92C LDA #$2C C3/8676: 8529 STA $29 (set text color to blue) C3/8678: A2458D LDX #$8D45 C3/867B: A01C00 LDY #$001C C3/867E: 20BA69 JSR $69BA C3/8681: A92C LDA #$2C C3/8683: 8529 STA $29 (set text color to blue) C3/8685: A2618D LDX #$8D61 C3/8688: A00800 LDY #$0008 C3/868B: 20BA69 JSR $69BA C3/868E: A920 LDA #$20 C3/8690: 8529 STA $29 (set text color to white) C3/8692: 7B TDC C3/8693: A54B LDA $4B C3/8695: A8 TAY C3/8696: B96918 LDA $1869,Y (Load inventory item Y) C3/8699: 202183 JSR $8321 (Multiplies index by 30) C3/869C: AE3421 LDX $2134 (Load X with result) C3/869F: 7B TDC C3/86A0: 8F8D9E7E STA $7E9E8D C3/86A4: 8F8E9E7E STA $7E9E8E C3/86A8: C220 REP #$20 (16 bit memory/accum.) C3/86AA: A94584 LDA #$8445 C3/86AD: 8F899E7E STA $7E9E89 C3/86B1: E220 SEP #$20 (8 bit memory/accum.) C3/86B3: 7B TDC C3/86B4: BF1050D8 LDA $D85010,X (Load item X's vigor/speed modifier) C3/86B8: 48 PHA C3/86B9: 290F AND #$0F C3/86BB: 0A ASL A C3/86BC: 203688 JSR $8836 C3/86BF: C220 REP #$20 (16 bit memory/accum.) C3/86C1: A9C584 LDA #$84C5 C3/86C4: 8F899E7E STA $7E9E89 C3/86C8: E220 SEP #$20 (8 bit memory/accum.) C3/86CA: 7B TDC C3/86CB: 68 PLA C3/86CC: 29F0 AND #$F0 C3/86CE: 4A LSR A C3/86CF: 4A LSR A C3/86D0: 4A LSR A C3/86D1: 203688 JSR $8836 C3/86D4: C220 REP #$20 (16 bit memory/accum.) C3/86D6: A94585 LDA #$8545 C3/86D9: 8F899E7E STA $7E9E89 C3/86DD: E220 SEP #$20 (8 bit memory/accum.) C3/86DF: AE3421 LDX $2134 C3/86E2: 7B TDC C3/86E3: BF1150D8 LDA $D85011,X (Load item X's stamina/mag.pwr. modifier) C3/86E7: 48 PHA C3/86E8: 290F AND #$0F C3/86EA: 0A ASL A C3/86EB: 203688 JSR $8836 C3/86EE: C220 REP #$20 (16 bit memory/accum.) C3/86F0: A9C585 LDA #$85C5 C3/86F3: 8F899E7E STA $7E9E89 C3/86F7: E220 SEP #$20 (8 bit memory/accum.) C3/86F9: 7B TDC C3/86FA: 68 PLA C3/86FB: 29F0 AND #$F0 C3/86FD: 4A LSR A C3/86FE: 4A LSR A C3/86FF: 4A LSR A C3/8700: 203688 JSR $8836 C3/8703: AE3421 LDX $2134 C3/8706: BF0050D8 LDA $D85000,X (Load item type data X) C3/870A: 2907 AND #$07 (Zero out upper nibble) C3/870C: C901 CMP #$01 (Is it type 1 (weapon)?) C3/870E: F036 BEQ $8746 (If it is, branch -> weapon handling routine) C3/8710: BF1450D8 LDA $D85014,X (Load item X's def pwr./attack pwr./etc.) C3/8714: 20E004 JSR $04E0 C3/8717: A2C386 LDX #$86C3 C3/871A: 20C004 JSR $04C0 C3/871D: AE3421 LDX $2134 C3/8720: BF1550D8 LDA $D85015,X (Load item X's hit rate/mag. def/cond. 1) C3/8724: 20E004 JSR $04E0 C3/8727: A2C387 LDX #$87C3 C3/872A: 20C004 JSR $04C0 C3/872D: 20EB87 JSR $87EB C3/8730: 20A088 JSR $88A0 C3/8733: 205989 JSR $8959 (Go get armor's elemental properties) C3/8736: A92C LDA #$2C C3/8738: 8529 STA $29 (set text color to blue) C3/873A: A2698D LDX #$8D69 C3/873D: A00800 LDY #$0008 C3/8740: 20BA69 JSR $69BA C3/8743: 4CC787 JMP $87C7 C3/8746: 209C87 JSR $879C C3/8749: 20EB87 JSR $87EB C3/874C: A92C LDA #$2C C3/874E: 8529 STA $29 (set text color to blue) C3/8750: A01D8E LDY #$8E1D (position of positioning of word "Attack") C3/8753: 20F902 JSR $02F9 (display "Attack") C3/8756: 20A088 JSR $88A0 C3/8759: A920 LDA #$20 C3/875B: 8529 STA $29 (set text color to white) C3/875D: AE3421 LDX $2134 C3/8760: BF1350D8 LDA $D85013,X (Load item X weapon properties) C3/8764: 1008 BPL $876E C3/8766: A0308E LDY #$8E30 (position of and word "Runic") C3/8769: 84E7 STY $E7 (C3/02F9 handles this already...) C3/876B: 209587 JSR $8795 (JSR $02F9 would work much better here) C3/876E: AE3421 LDX $2134 C3/8771: BF1350D8 LDA $D85013,X (Load item X weapon properties) C3/8775: 2940 AND #$40 C3/8777: F008 BEQ $8781 C3/8779: A0388E LDY #$8E38 (position of and word "2-hand") C3/877C: 84E7 STY $E7 (C3/02F9 handles this already...) C3/877E: 209587 JSR $8795 (JSR $02F9 would work much better here) C3/8781: AE3421 LDX $2134 C3/8784: BF1350D8 LDA $D85013,X (Load item X weapon properties) C3/8788: 2902 AND #$02 C3/878A: F008 BEQ $8794 C3/878C: A0268E LDY #$8E26 (position of and word "SwdTech") C3/878F: 84E7 STY $E7 (C3/02F9 handles this already...) C3/8791: 209587 JSR $8795 (fool!, also JMP $02F9 would work much better here) C3/8794: 60 RTS (This routine is badly written. It's something Lenophis would write! :P) C3/8795: A9C3 LDA #$C3 (C3/02F9 handles this already...) C3/8797: 85E9 STA $E9 C3/8799: 4CFF02 JMP $02FF C3/879C: 7B TDC C3/879D: A54B LDA $4B C3/879F: A8 TAY C3/87A0: B96918 LDA $1869,Y (Items currently in inventory) C3/87A3: C91C CMP #$1C (Is it the Atma Weapon?) C3/87A5: F019 BEQ $87C0 C3/87A7: C916 CMP #$16 (Is it the Soul Sabre?) C3/87A9: F015 BEQ $87C0 C3/87AB: C951 CMP #$51 (Is it the Dice?) C3/87AD: F011 BEQ $87C0 C3/87AF: C952 CMP #$52 (Is it the fixed Dice?) C3/87B1: F00D BEQ $87C0 C3/87B3: BF1450D8 LDA $D85014,X (Load attack pwr, strength of item X) C3/87B7: 20E004 JSR $04E0 C3/87BA: A24386 LDX #$8643 C3/87BD: 4CC004 JMP $04C0 C3/87C0: A0718D LDY #$8D71 C3/87C3: 20F902 JSR $02F9 (display "???") C3/87C6: 60 RTS C3/87C7: A920 LDA #$20 C3/87C9: 8529 STA $29 (set text color to white) C3/87CB: AE3421 LDX $2134 C3/87CE: BF0350D8 LDA $D85003,X (Load item X's spell learn rate) C3/87D2: F016 BEQ $87EA C3/87D4: 85E0 STA $E0 C3/87D6: BF0450D8 LDA $D85004,X (Load item X's spell learned) C3/87DA: 85E1 STA $E1 C3/87DC: C220 REP #$20 (16 bit memory/accum.) C3/87DE: A92F83 LDA #$832F C3/87E1: 8F899E7E STA $7E9E89 C3/87E5: E220 SEP #$20 (8 bit memory/accum.) C3/87E7: 20ED5A JSR $5AED (draw spell name and learn rate) C3/87EA: 60 RTS C3/87EB: C220 REP #$20 (16 bit memory/accum.) C3/87ED: A94387 LDA #$8743 C3/87F0: 8F899E7E STA $7E9E89 C3/87F4: E220 SEP #$20 (8 bit memory/accum.) C3/87F6: AE3421 LDX $2134 C3/87F9: 7B TDC C3/87FA: BF1A50D8 LDA $D8501A,X (Load Item evade/mblock) C3/87FE: 48 PHA C3/87FF: 290F AND #$0F C3/8801: 0A ASL A C3/8802: 0A ASL A C3/8803: 201A88 JSR $881A C3/8806: C220 REP #$20 (16 bit memory/accum.) C3/8808: A94388 LDA #$8843 C3/880B: 8F899E7E STA $7E9E89 C3/880F: E220 SEP #$20 (8 bit memory/accum.) C3/8811: AE3421 LDX $2134 C3/8814: 7B TDC C3/8815: 68 PLA C3/8816: 29F0 AND #$F0 C3/8818: 4A LSR A C3/8819: 4A LSR A C3/881A: AA TAX C3/881B: BF5488C3 LDA $C38854,X C3/881F: 8F8B9E7E STA $7E9E8B C3/8823: BF5588C3 LDA $C38855,X C3/8827: 8F8C9E7E STA $7E9E8C C3/882B: BF5688C3 LDA $C38856,X C3/882F: 8F8D9E7E STA $7E9E8D C3/8833: 4C4788 JMP $8847 (Why no BRA? also, JMP $7FD9!) C3/8836: AA TAX C3/8837: BF8088C3 LDA $C38880,X C3/883B: 8F8B9E7E STA $7E9E8B C3/883F: BF8188C3 LDA $C38881,X C3/8843: 8F8C9E7E STA $7E9E8C C3/8847: A0899E LDY #$9E89 (JMP $7FD9...?) C3/884A: 84E7 STY $E7 C3/884C: A97E LDA #$7E C3/884E: 85E9 STA $E9 C3/8850: 20FF02 JSR $02FF (JMP fool!) C3/8853: 60 RTS Data: Text of Evade/MBlock boost amounts C3/8854: FFFFB400 ( 0) C3/8858: CAB5B400 (+10) C3/885C: CAB6B400 (+20) C3/8860: CAB7B400 (+30) C3/8864: CAB8B400 (+40) C3/8868: CAB9B400 (+50) C3/886C: C4B5B400 (-10) C3/8870: C4B6B400 (-20) C3/8874: C4B7B400 (-30) C3/8878: C4B8B400 (-40) C3/887C: C4B9B400 (-50) Data: Text of Vigor/Speed/Stamina/Mag.Pwr boost amounts C3/8880: FFB4 ( 0) C3/8882: CAB5 (+1) C3/8884: CAB6 (+2) C3/8886: CAB7 (+3) C3/8888: CAB8 (+4) C3/888A: CAB9 (+5) C3/888C: CABA (+6) C3/888E: CABB (+7) C3/8890: FFB4 ( 0) C3/8892: C4B5 (-1) C3/8894: C4B6 (-2) C3/8896: C4B7 (-3) C3/8898: C4B8 (-4) C3/889A: C4B9 (-5) C3/889C: C4BA (-6) C3/889E: C4BB (-7) C3/88A0: AE3421 LDX $2134 C3/88A3: 7B TDC C3/88A4: BF0F50D8 LDA $D8500F,X (get weapon elemental properties) C3/88A8: 20AE88 JSR $88AE C3/88AB: 4CCE88 JMP $88CE (no BRA?) C3/88AE: A08DAA LDY #$AA8D C3/88B1: 8C8121 STY $2181 C3/88B4: 64E0 STZ $E0 C3/88B6: A00800 LDY #$0008 C3/88B9: 2A ROL A C3/88BA: 9007 BCC $88C3 C3/88BC: 48 PHA C3/88BD: A5E0 LDA $E0 C3/88BF: 8D8021 STA $2180 C3/88C2: 68 PLA C3/88C3: E6E0 INC $E0 C3/88C5: 88 DEY C3/88C6: D0F1 BNE $88B9 C3/88C8: A9FF LDA #$FF C3/88CA: 8D8021 STA $2180 (Print a space) C3/88CD: 60 RTS C3/88CE: A2CD7B LDX #$7BCD (position of resist elements display, doubles up as attack elements display for weapons) C3/88D1: 86EB STX $EB C3/88D3: A97E LDA #$7E C3/88D5: 85ED STA $ED C3/88D7: 4CFE88 JMP $88FE C3/88DA: A2E97B LDX #$7BE9 (position of absorb elements display) C3/88DD: 86EB STX $EB C3/88DF: A97E LDA #$7E C3/88E1: 85ED STA $ED C3/88E3: 4CFE88 JMP $88FE C3/88E6: A2CD7C LDX #$7CCD (position of no effect elements display) C3/88E9: 86EB STX $EB C3/88EB: A97E LDA #$7E C3/88ED: 85ED STA $ED C3/88EF: 4CFE88 JMP $88FE C3/88F2: A2E97C LDX #$7CE9 (position of weak elements display) C3/88F5: 86EB STX $EB C3/88F7: A97E LDA #$7E C3/88F9: 85ED STA $ED C3/88FB: 4CFE88 JMP $88FE (jump to the very next byte, yes that's clever) (this block of code could very easily be optimized too...) C3/88FE: 7B TDC C3/88FF: AA TAX C3/8900: 7B TDC (A is still 0) C3/8901: BF8DAA7E LDA $7EAA8D,X (Load inventory, index X) C3/8905: 301F BMI $8926 (branch if no elements to display?) C3/8907: DA PHX C3/8908: C220 REP #$20 (16 bit memory/accum.) C3/890A: 0A ASL A C3/890B: AA TAX C3/890C: BF2789C3 LDA $C38927,X (get the VWF icons) C3/8910: 85E0 STA $E0 C3/8912: 203789 JSR $8937 C3/8915: A5EB LDA $EB C3/8917: 18 CLC C3/8918: 690400 ADC #$0004 (because of the size of the element icons, two spaces must be added) C3/891B: 85EB STA $EB C3/891D: E220 SEP #$20 (8 bit memory/accum.) C3/891F: FA PLX C3/8920: E8 INX C3/8921: E00600 CPX #$0006 (this intentionally cuts off after 6 elements...) C3/8924: D0DA BNE $8900 C3/8926: 60 RTS VWF icon fetching, to be used by C3/8937 C3/8927: 8035 (get water icon in VWF) C3/8929: 8435 (get earth icon in VWF) C3/892B: 8835 (get holy icon in VWF) C3/892D: 8C35 (get wind icon in VWF) C3/892F: 9035 (get poison icon in VWF) C3/8931: 9435 (get lightning icon in VWF) C3/8933: 9835 (get ice icon in VWF) C3/8935: 9C35 (get fire icon in VWF) C3/8937: 7B TDC C3/8938: A8 TAY C3/8939: A5E0 LDA $E0 C3/893B: 97EB STA [$EB],Y C3/893D: E6E0 INC $E0 C3/893F: A04000 LDY #$0040 C3/8942: A5E0 LDA $E0 C3/8944: 97EB STA [$EB],Y C3/8946: E6E0 INC $E0 C3/8948: A00200 LDY #$0002 C3/894B: A5E0 LDA $E0 C3/894D: 97EB STA [$EB],Y C3/894F: E6E0 INC $E0 C3/8951: A04200 LDY #$0042 C3/8954: A5E0 LDA $E0 C3/8956: 97EB STA [$EB],Y C3/8958: 60 RTS C3/8959: AE3421 LDX $2134 C3/895C: 7B TDC C3/895D: BF1650D8 LDA $D85016,X (Load armor's absorb element/cond. 2 for item) C3/8961: 20AE88 JSR $88AE C3/8964: 20DA88 JSR $88DA C3/8967: AE3421 LDX $2134 C3/896A: 7B TDC C3/896B: BF1750D8 LDA $D85017,X (Load armor's no effect element/cond. 3 for item) C3/896F: 20AE88 JSR $88AE C3/8972: 20E688 JSR $88E6 C3/8975: AE3421 LDX $2134 C3/8978: 7B TDC C3/8979: BF1850D8 LDA $D85018,X (Load armor's weak pt./cond. 4 for item) C3/897D: 20AE88 JSR $88AE C3/8980: 4CF288 JMP $88F2 (this can be optimized too) C3/8983: A508 LDA $08 C3/8985: 8980 BIT #$80 (did you press A?) C3/8987: D006 BNE $898F (branch if so, BMI...) C3/8989: A509 LDA $09 C3/898B: 8902 BIT #$02 (did you press left?) C3/898D: F019 BEQ $89A8 (branch if not) C3/898F: 20B20E JSR $0EB2 (makes the click sound) C3/8992: A9FF LDA #$FF C3/8994: 8599 STA $99 C3/8996: A90A LDA #$0A C3/8998: 8520 STA $20 C3/899A: A0F4FF LDY #$FFF4 C3/899D: 849C STY $9C C3/899F: A95E LDA #$5E C3/89A1: 8527 STA $27 C3/89A3: A965 LDA #$65 C3/89A5: 8526 STA $26 (execute at C3/36E7) C3/89A7: 60 RTS C3/89A8: A509 LDA $09 C3/89AA: 8980 BIT #$80 (did you press B?) C3/89AC: F02F BEQ $89DD (branch if not, BPL...) C3/89AE: 20A90E JSR $0EA9 C3/89B1: A9FF LDA #$FF C3/89B3: 8599 STA $99 C3/89B5: A2497B LDX #$7B49 C3/89B8: 8E8121 STX $2181 C3/89BB: A28002 LDX #$0280 C3/89BE: 9C8021 STZ $2180 (end this string) C3/89C1: 9C8021 STZ $2180 (end this string) C3/89C4: CA DEX C3/89C5: D0F7 BNE $89BE C3/89C7: A904 LDA #$04 C3/89C9: 0445 TSB $45 C3/89CB: 20DE89 JSR $89DE C3/89CE: 20390F JSR $0F39 C3/89D1: 206813 JSR $1368 (trigger NMI) C3/89D4: 7B TDC C3/89D5: 8F109A7E STA $7E9A10 C3/89D9: A908 LDA #$08 C3/89DB: 8526 STA $26 (execute at C3/1EF7) C3/89DD: 60 RTS C3/89DE: 201F09 JSR $091F (set arrow's initial position) C3/89E1: A910 LDA #$10 C3/89E3: 1445 TRB $45 C3/89E5: 60 RTS C3/89E6: A509 LDA $09 C3/89E8: 8980 BIT #$80 (did you press B?) C3/89EA: D006 BNE $89F2 (branch if so, BMI...) C3/89EC: A509 LDA $09 C3/89EE: 8901 BIT #$01 (did you press right? LSR A...) C3/89F0: F01B BEQ $8A0D (branch if not, BCC...) C3/89F2: 20A90E JSR $0EA9 C3/89F5: A90A LDA #$0A C3/89F7: 8520 STA $20 C3/89F9: A00C00 LDY #$000C C3/89FC: 849C STY $9C C3/89FE: A905 LDA #$05 C3/8A00: 1446 TRB $46 C3/8A02: A964 LDA #$64 C3/8A04: 8527 STA $27 (queue up to execute at C3/8983) C3/8A06: A965 LDA #$65 C3/8A08: 8526 STA $26 (execute at C3/36E7) C3/8A0A: 209585 JSR $8595 (JMP fool!) C3/8A0D: 60 RTS C3/8A0E: 20286A JSR $6A28 C3/8A11: A03B8A LDY #$8A3B C3/8A14: 204103 JSR $0341 C3/8A17: A03F8A LDY #$8A3F C3/8A1A: 204103 JSR $0341 C3/8A1D: A0438A LDY #$8A43 C3/8A20: 204103 JSR $0341 C3/8A23: 20520E JSR $0E52 C3/8A26: 20196A JSR $6A19 C3/8A29: A0C0FF LDY #$FFC0 C3/8A2C: 8435 STY $35 C3/8A2E: A902 LDA #$02 C3/8A30: 0445 TSB $45 C3/8A32: 208A31 JSR $318A C3/8A35: 20478A JSR $8A47 C3/8A38: 4C9F31 JMP $319F Window data C3/8A3B: 9D581318 C3/8A3F: 8B580D02 C3/8A43: 8B590703 C3/8A47: A920 LDA #$20 C3/8A49: 8529 STA $29 (set text color to white) C3/8A4B: A0418E LDY #$8E41 C3/8A4E: 20F902 JSR $02F9 (display "Owned:") C3/8A51: C220 REP #$20 (16 bit memory/accum.) C3/8A53: A90B79 LDA #$790B C3/8A56: 8F899E7E STA $7E9E89 C3/8A5A: E220 SEP #$20 (8 bit memory/accum.) C3/8A5C: 7B TDC C3/8A5D: A54B LDA $4B C3/8A5F: A8 TAY C3/8A60: 20B980 JSR $80B9 (determine inventory contents) C3/8A63: 7B TDC C3/8A64: 8F989E7E STA $7E9E98 C3/8A68: 20D97F JSR $7FD9 (draw text currently in text buffer) C3/8A6B: 8000 BRA $8A6D (seriously) C3/8A6D: A920 LDA #$20 C3/8A6F: 8529 STA $29 (set text color to white) C3/8A71: 7B TDC C3/8A72: A528 LDA $28 C3/8A74: A8 TAY C3/8A75: B96919 LDA $1969,Y (Quantity of items) C3/8A78: 20E004 JSR $04E0 (turn the quantity into digits) C3/8A7B: A2937A LDX #$7A93 (position of digits?) C3/8A7E: 20B604 JSR $04B6 C3/8A81: 4CD97F JMP $7FD9 (draw text currently in text buffer) C3/8A84: 20762A JSR $2A76 C3/8A87: 200E8A JSR $8A0E (draw inventory windows) C3/8A8A: 20B007 JSR $07B0 (finger OAM initiating) C3/8A8D: A940 LDA #$40 C3/8A8F: 0445 TSB $45 C3/8A91: A970 LDA #$70 C3/8A93: 4CA52A JMP $2AA5 C3/8A96: 20FD0E JSR $0EFD C3/8A99: 20610F JSR $0F61 C3/8A9C: A508 LDA $08 C3/8A9E: 8980 BIT #$80 (did you press A?) C3/8AA0: F00A BEQ $8AAC (branch if not, BPL...) C3/8AA2: 202B8C JSR $8C2B C3/8AA5: C9E7 CMP #$E7 C3/8AA7: F017 BEQ $8AC0 C3/8AA9: 20E78A JSR $8AE7 C3/8AAC: A509 LDA $09 C3/8AAE: 8980 BIT #$80 (did you press B?) C3/8AB0: F00D BEQ $8ABF (branch if not, BPL...) C3/8AB2: 20A90E JSR $0EA9 C3/8AB5: A942 LDA #$42 C3/8AB7: 1445 TRB $45 C3/8AB9: A977 LDA #$77 C3/8ABB: 8527 STA $27 (queue up to execute at C3/1B35) C3/8ABD: 6426 STZ $26 (fade out) C3/8ABF: 60 RTS C3/8AC0: 200B2D JSR $2D0B C3/8AC3: B90000 LDA $0000,Y (character ID) C3/8AC6: C90E CMP #$0E C3/8AC8: B016 BCS $8AE0 (Branch if it's Leo or higher?) C3/8ACA: 8C0602 STY $0206 C3/8ACD: 20B20E JSR $0EB2 (makes the click sound) C3/8AD0: A9FE LDA #$FE C3/8AD2: 8D0502 STA $0205 C3/8AD5: A9FF LDA #$FF C3/8AD7: 8527 STA $27 (queue up to exit the menu) C3/8AD9: 6426 STZ $26 (fade out) C3/8ADB: A9E7 LDA #$E7 C3/8ADD: 4C979D JMP $9D97 (Remove item from inventory) C3/8AE0: 20C00E JSR $0EC0 (makes the buzzer sound) C3/8AE3: 205D30 JSR $305D C3/8AE6: 60 RTS C3/8AE7: 202B8C JSR $8C2B C3/8AEA: 200B2D JSR $2D0B C3/8AED: 203D8B JSR $8B3D C3/8AF0: 9018 BCC $8B0A C3/8AF2: 20E50E JSR $0EE5 C3/8AF5: 20118B JSR $8B11 C3/8AF8: 206D8A JSR $8A6D C3/8AFB: 20012C JSR $2C01 C3/8AFE: 7B TDC C3/8AFF: A528 LDA $28 C3/8B01: A8 TAY C3/8B02: B96919 LDA $1969,Y (Quantity of items) C3/8B05: D009 BNE $8B10 C3/8B07: 4CB58A JMP $8AB5 C3/8B0A: 20C00E JSR $0EC0 (makes the buzzer sound) C3/8B0D: 205D30 JSR $305D C3/8B10: 60 RTS C3/8B11: 201A8B JSR $8B1A C3/8B14: 202B8C JSR $8C2B C3/8B17: 4C979D JMP $9D97 (Remove item from inventory) C3/8B1A: B91400 LDA $0014,Y (status byte 1) C3/8B1D: 85F8 STA $F8 C3/8B1F: B91500 LDA $0015,Y (status byte 4) C3/8B22: 85FB STA $FB C3/8B24: 5A PHY C3/8B25: 202B8C JSR $8C2B C3/8B28: A20200 LDX #$0002 C3/8B2B: 220900C2 JSR $C20009 (Setup item usage, mark as physical attack) C3/8B2F: 7A PLY C3/8B30: A5FC LDA $FC C3/8B32: 991400 STA $0014,Y (status byte 1) C3/8B35: A5FF LDA $FF C3/8B37: 991500 STA $0015,Y (status byte 4) C3/8B3A: 4C338C JMP $8C33 C3/8B3D: B91400 LDA $0014,Y (status byte 1) C3/8B40: 2980 AND #$80 (filter out all status except death) C3/8B42: D041 BNE $8B85 (branch if dead) C3/8B44: 202B8C JSR $8C2B C3/8B47: C9FE CMP #$FE (Dried Meat?) C3/8B49: F079 BEQ $8BC4 C3/8B4B: C9E8 CMP #$E8 (Tonic?) C3/8B4D: F075 BEQ $8BC4 C3/8B4F: C9E9 CMP #$E9 (Potion?) C3/8B51: F071 BEQ $8BC4 C3/8B53: C9EA CMP #$EA (X-Potion?) C3/8B55: F06D BEQ $8BC4 C3/8B57: C9EB CMP #$EB (Tincture?) C3/8B59: F07A BEQ $8BD5 C3/8B5B: C9EC CMP #$EC (Ether?) C3/8B5D: F076 BEQ $8BD5 C3/8B5F: C9ED CMP #$ED (X-Ether?) C3/8B61: F072 BEQ $8BD5 C3/8B63: C9F1 CMP #$F1 (Revivify?) C3/8B65: F027 BEQ $8B8E C3/8B67: C9F2 CMP #$F2 (Antidote?) C3/8B69: F050 BEQ $8BBB C3/8B6B: C9F3 CMP #$F3 (Eyedrop?) C3/8B6D: F028 BEQ $8B97 C3/8B6F: C9F4 CMP #$F4 (Soft?) C3/8B71: F02D BEQ $8BA0 C3/8B73: C9F5 CMP #$F5 (Remedy?) C3/8B75: F03B BEQ $8BB2 C3/8B77: C9EE CMP #$EE (Elixir?) C3/8B79: F06A BEQ $8BE5 C3/8B7B: C9F8 CMP #$F8 (Green Cherry?) C3/8B7D: F02A BEQ $8BA9 C3/8B7F: C9F6 CMP #$F6 (Sleeping Bag?) C3/8B81: F04F BEQ $8BD2 C3/8B83: 804B BRA $8BD0 C3/8B85: 202B8C JSR $8C2B C3/8B88: C9F0 CMP #$F0 C3/8B8A: F057 BEQ $8BE3 C3/8B8C: 8042 BRA $8BD0 C3/8B8E: B91400 LDA $0014,Y (status byte 1) C3/8B91: 2902 AND #$02 (Isolate zombie) C3/8B93: F03B BEQ $8BD0 (Branch if not set) C3/8B95: 804C BRA $8BE3 C3/8B97: B91400 LDA $0014,Y (status byte 1) C3/8B9A: 2901 AND #$01 (Isolate dark) C3/8B9C: F032 BEQ $8BD0 (Branch if not set) C3/8B9E: 8043 BRA $8BE3 C3/8BA0: B91400 LDA $0014,Y (Status byte 1) C3/8BA3: 2940 AND #$40 (Isolate stone) C3/8BA5: F029 BEQ $8BD0 (Branch if not set) C3/8BA7: 803A BRA $8BE3 C3/8BA9: B91400 LDA $0014,Y (Status byte 1) C3/8BAC: 2920 AND #$20 (Isolate imp) C3/8BAE: F020 BEQ $8BD0 (Branch if not set) C3/8BB0: 8031 BRA $8BE3 C3/8BB2: B91400 LDA $0014,Y (Status byte 1) C3/8BB5: 2965 AND #$65 (Isolate stone, imp, poison, and dark) C3/8BB7: F017 BEQ $8BD0 (Branch if none set) C3/8BB9: 8028 BRA $8BE3 C3/8BBB: B91400 LDA $0014,Y (Status byte 1) C3/8BBE: 2904 AND #$04 (Isolate poison) C3/8BC0: F00E BEQ $8BD0 (Branch if not set) C3/8BC2: 801F BRA $8BE3 C3/8BC4: B91400 LDA $0014,Y (status byte 1) C3/8BC7: 29C2 AND #$C2 (Check death, stone, zombie) C3/8BC9: D005 BNE $8BD0 (Branch if any set) C3/8BCB: 209A2B JSR $2B9A (Heal HP) C3/8BCE: 9013 BCC $8BE3 C3/8BD0: 18 CLC C3/8BD1: 60 RTS C3/8BD2: 4C118C JMP $8C11 C3/8BD5: B91400 LDA $0014,Y (status byte 1) C3/8BD8: 29C2 AND #$C2 (Check death, zombie, stone) C3/8BDA: D0F4 BNE $8BD0 (Branch if any set) C3/8BDC: 20BC2B JSR $2BBC (Heal MP) C3/8BDF: 9002 BCC $8BE3 C3/8BE1: 80ED BRA $8BD0 C3/8BE3: 38 SEC C3/8BE4: 60 RTS C3/8BE5: B91400 LDA $0014,Y (status byte 1) C3/8BE8: 29C2 AND #$C2 (Check death, zombie, stone) C3/8BEA: D0E4 BNE $8BD0 (Branch if any set) C3/8BEC: 209A2B JSR $2B9A (Heal HP) C3/8BEF: 90F2 BCC $8BE3 C3/8BF1: 20BC2B JSR $2BBC (Heal MP) C3/8BF4: 90ED BCC $8BE3 C3/8BF6: 80D8 BRA $8BD0 C3/8BF8: 7B TDC C3/8BF9: AA TAX C3/8BFA: 86ED STX $ED C3/8BFC: BC6D00 LDY $006D,X C3/8BFF: F005 BEQ $8C06 C3/8C01: 20E58B JSR $8BE5 C3/8C04: B0DD BCS $8BE3 C3/8C06: A6ED LDX $ED C3/8C08: E8 INX C3/8C09: E8 INX C3/8C0A: E00800 CPX #$0008 C3/8C0D: D0EB BNE $8BFA C3/8C0F: 80BF BRA $8BD0 C3/8C11: B91400 LDA $0014,Y (status byte 1) C3/8C14: 29F7 AND #$F7 (Exclude Magitek) C3/8C16: D0CB BNE $8BE3 (Branch if any other status set on this byte) C3/8C18: B91500 LDA $0015,Y (status byte 4) C3/8C1B: 2980 AND #$80 (Exclude all but float) C3/8C1D: D0C4 BNE $8BE3 (Branch if float set) C3/8C1F: 209A2B JSR $2B9A (Heal HP) C3/8C22: 90BF BCC $8BE3 C3/8C24: 20BC2B JSR $2BBC (Heal MP) C3/8C27: 90BA BCC $8BE3 C3/8C29: 80A5 BRA $8BD0 C3/8C2B: 7B TDC C3/8C2C: A528 LDA $28 C3/8C2E: AA TAX C3/8C2F: BD6918 LDA $1869,X (Items currently in inventory) C3/8C32: 60 RTS C3/8C33: 5A PHY C3/8C34: 202B8C JSR $8C2B C3/8C37: 202183 JSR $8321 (Multiplies A by 30) C3/8C3A: 7A PLY C3/8C3B: AE3421 LDX $2134 C3/8C3E: 86B0 STX $B0 C3/8C40: 20CD8C JSR $8CCD C3/8C43: BF1350D8 LDA $D85013,X (Load item properties X) C3/8C47: 302D BMI $8C76 (Branch if it "Manipulates 1/16ths of actual value affected") C3/8C49: 2908 AND #$08 (Check if it "Restores HP") C3/8C4B: F00F BEQ $8C5C (Branch if it doesn't) C3/8C4D: C221 REP #$21 (16 bit memory/accum. and clear carry) C3/8C4F: A5B2 LDA $B2 C3/8C51: 790900 ADC $0009,Y C3/8C54: 990900 STA $0009,Y C3/8C57: E220 SEP #$20 (8 bit memory/accum.) C3/8C59: 209A2B JSR $2B9A (Heal HP) C3/8C5C: A6B0 LDX $B0 C3/8C5E: BF1350D8 LDA $D85013,X (Load weapon/item properties X) C3/8C62: 2910 AND #$10 (Check if it "Restores MP") C3/8C64: F00F BEQ $8C75 (Exit if it doesn't) C3/8C66: C221 REP #$21 (16 bit memory/accum. and clear carry) C3/8C68: A5B2 LDA $B2 C3/8C6A: 790D00 ADC $000D,Y C3/8C6D: 990D00 STA $000D,Y C3/8C70: E220 SEP #$20 (8 bit memory/accum.) C3/8C72: 20BC2B JSR $2BBC C3/8C75: 60 RTS C3/8C76: BF1350D8 LDA $D85013,X (Load item properties X) C3/8C7A: 2908 AND #$08 (Check if it "Restores HP") C3/8C7C: F022 BEQ $8CA0 (Branch if it doesn't) C3/8C7E: B90B00 LDA $000B,Y C3/8C81: 85F3 STA $F3 C3/8C83: B90C00 LDA $000C,Y C3/8C86: 85F4 STA $F4 C3/8C88: 20650D JSR $0D65 C3/8C8B: 20920D JSR $0D92 C3/8C8E: 20D68C JSR $8CD6 C3/8C91: C221 REP #$21 C3/8C93: A5E9 LDA $E9 C3/8C95: 790900 ADC $0009,Y C3/8C98: 990900 STA $0009,Y C3/8C9B: E220 SEP #$20 (8 bit memory/accum.) C3/8C9D: 209A2B JSR $2B9A (Heal HP) C3/8CA0: A6B0 LDX $B0 C3/8CA2: BF1350D8 LDA $D85013,X (Load item properties X) C3/8CA6: 2910 AND #$10 (Check if it "Restores MP") C3/8CA8: F022 BEQ $8CCC (Exit if not) C3/8CAA: B90F00 LDA $000F,Y C3/8CAD: 85F3 STA $F3 C3/8CAF: B91000 LDA $0010,Y C3/8CB2: 85F4 STA $F4 C3/8CB4: 20650D JSR $0D65 C3/8CB7: 209F0D JSR $0D9F C3/8CBA: 20D68C JSR $8CD6 C3/8CBD: C221 REP #$21 C3/8CBF: A5E9 LDA $E9 C3/8CC1: 790D00 ADC $000D,Y C3/8CC4: 990D00 STA $000D,Y C3/8CC7: E220 SEP #$20 (8 bit memory/accum.) C3/8CC9: 20BC2B JSR $2BBC (Heal MP) C3/8CCC: 60 RTS C3/8CCD: BF1450D8 LDA $D85014,X (Load weapon attack pwr./def. pwr./battle pwr. etc) C3/8CD1: 85B2 STA $B2 C3/8CD3: 64B3 STZ $B3 C3/8CD5: 60 RTS C3/8CD6: AD1242 LDA $4212 C3/8CD9: 2940 AND #$40 (are we in H-blank?) C3/8CDB: F0F9 BEQ $8CD6 (branch if not) C3/8CDD: A5F3 LDA $F3 C3/8CDF: 8D1B21 STA $211B C3/8CE2: A5F4 LDA $F4 C3/8CE4: 8D1B21 STA $211B C3/8CE7: A5B2 LDA $B2 C3/8CE9: 8D1C21 STA $211C C3/8CEC: 8D1C21 STA $211C C3/8CEF: AD3621 LDA $2136 C3/8CF2: 85EB STA $EB C3/8CF4: 64EC STZ $EC C3/8CF6: C220 REP #$20 (16 bit memory/accum.) C3/8CF8: AD3421 LDA $2134 C3/8CFB: 85E9 STA $E9 C3/8CFD: 46EB LSR $EB C3/8CFF: 66E9 ROR $E9 C3/8D01: 46EB LSR $EB C3/8D03: 66E9 ROR $E9 C3/8D05: 46EB LSR $EB C3/8D07: 66E9 ROR $E9 C3/8D09: 46EB LSR $EB C3/8D0B: 66E9 ROR $E9 C3/8D0D: E220 SEP #$20 (8 bit memory/accum.) C3/8D0F: 60 RTS C3/8D10: 1D8D (from C3/7DE9) C3/8D12: 238D C2/8D14: 2D8D Data: The item menu C3/8D16: 0D7988AD9EA600 (Item ) C3/8D1D: 1D7994928400 (USE ) C3/8D23: 2779809191808D868400 (ARRANGE ) C3/8D2D: 39799180918400 (RARE ) C3/8D34: FF9C9AA7FF9B9EFFAEAC9E9DFF9BB2C100 ( can be used by: ) Pointers to the strings just below this C3/8D45: 778D C3/8D47: 7F8D C3/8D49: 898D C3/8D4B: 938D C3/8D4D: 9D8D C3/8D4F: A78D C3/8D51: AB8D C3/8D53: AF8D C3/8D55: B38D C3/8D57: B78D C3/8D59: BB8D C3/8D5B: BF8D C3/8D5D: C38D C3/8D5F: C78D C3/8D61: CB8D C3/8D63: D38D C3/8D65: DD8D C3/8D67: E78D C3/8D69: F18D C3/8D6B: FB8D C3/8D6D: 078E C3/8D6F: 138E C3/8D71: 4386BFBFBF00 ("???") C3/8D77: 2F8495A2A0A8AB00 ("Vigor") C3/8D7F: 2F8592AD9AA6A2A79A00 ("Stamina") C3/8D89: AF858C9AA0C58FB0AB00 ("Mag.Pwr") C3/8D93: 2F8784AF9A9D9EFFCD00 ("Evade %") C3/8D9D: 2F888C81A5A89CA4CD00 ("MBlock%") C3/8DA7: 3F84D300 ("") C3/8DAB: BF84D300 ("") C3/8DAD: 3F85D300 ("") C3/8DB3: BF85D300 ("") C3/8DB7: 3F86D300 ("") C3/8DBB: BF86D300 ("") C3/8DBF: 3F87D300 ("") C3/8DC3: BF87D300 ("") C3/8DC7: 3F88D300 ("") C3/8DCB: AF8492A99E9E9D00 ("Speed") C3/8DD3: 2F86819AADC58FB0AB00 ("Bat.Pwr") C3/8DDD: AF86839E9F9EA7AC9E00 ("Defense") C3/8DE7: AF878C9AA0C5839E9F00 ("Mag.Def") C3/8DF1: 8D7BB9B4CDFF83A6A000 ("50% Dmg") C3/8DFB: A97B809BACA8AB9BFF878F00 ("Absorb HP") C3/8E07: 8D7C8DA8FF849F9F9E9CAD00 ("No effect") C3/8E13: A97C969E9AA4FFA9AD00 ("Weap pt") C3/8E1D: 8D7B80ADAD9A9CA400 ("Attack") C3/8E26: 2F8292B09D939E9CA100 ("SwdTech") C3/8E30: AF8291AEA7A29C00 ("Runic") C3/8E38: 2F83B6C4A19AA79D00 ("2-hand") C3/8E41: 0D7A8EB0A79E9DC100 ("Owned:") C3/8E4A: BF7AFFFFFF00 (" ") C3/8E50: A05F8E LDY #$8E5F C3/8E53: 4CFE05 JMP $05FE C3/8E56: 202D07 JSR $072D C3/8E59: A0648E LDY #$8E64 C3/8E5C: 4C4006 JMP $0640 C3/8E5F: 0100 ORA ($00,X) C3/8E61: 0004 BRK #$04 C3/8E63: 0100 ORA ($00,X) C3/8E65: 1038 BPL $8E9F C3/8E67: 1080 BPL $8DE9 C3/8E69: 10B8 BPL $8E23 C3/8E6B: 10A0 BPL $8E0D C3/8E6D: 7B TDC C3/8E6E: 8E4CFE STX $FE4C C3/8E71: 05 C3/8E72: 202D07 JSR $072D C3/8E75: A0808E LDY #$8E80 C3/8E78: 4C4006 JMP $0640 C3/8E7B: 8000 BRA $8E7D C3/8E7D: 0001 BRK #$01 C3/8E7F: 0400 TSB $00 C3/8E81: 2C0038 BIT $3800 C3/8E84: 0044 BRK #$44 C3/8E86: 0050 BRK #$50 C3/8E88: A0A68E LDY #$8EA6 C3/8E8B: 4CFE05 JMP $05FE C3/8E8E: 20C781 JSR $81C7 C3/8E91: A0AB8E LDY #$8EAB C3/8E94: 4C4806 JMP $0648 C3/8E97: A0A68E LDY #$8EA6 C3/8E9A: 4CFE05 JMP $05FE C3/8E9D: 202D07 JSR $072D C3/8EA0: A0AB8E LDY #$8EAB C3/8EA3: 4C4006 JMP $0640 C3/8EA6: 8100 STA ($00,X) C3/8EA8: 0001 BRK #$01 C3/8EAA: 0900 ORA #$00 C3/8EAC: 68 PLA C3/8EAD: 0074 BRK #$74 C3/8EAF: 0080 BRK #$80 C3/8EB1: 008C BRK #$8C C3/8EB3: 0098 BRK #$98 C3/8EB5: 00A4 BRK #$A4 C3/8EB7: 00B0 BRK #$B0 C3/8EB9: 00BC BRK #$BC C3/8EBB: 00C8 BRK #$C8 C3/8EBD: A0CC8E LDY #$8ECC C3/8EC0: 4CFE05 JMP $05FE C3/8EC3: 202D07 JSR $072D C3/8EC6: A0D18E LDY #$8ED1 C3/8EC9: 4C4006 JMP $0640 C3/8ECC: 0100 ORA ($00,X) C3/8ECE: 0002 BRK #$02 C3/8ED0: 0110 ORA ($10,X) C3/8ED2: 1048 BPL $8F1C C3/8ED4: 10 C3/8ED5: A0E48E LDY #$8EE4 C3/8ED8: 4CFE05 JMP $05FE C3/8EDB: 202D07 JSR $072D C3/8EDE: A0E98E LDY #$8EE9 C3/8EE1: 4C4006 JMP $0640 Data: relic screen hot spots C3/8EE4: 80 00 00 01 02 Data: relic screen finger positioning C3/8EE9: 0044 C3/8EEB: 0050 C3/8EED: A902 LDA #$02 C3/8EEF: 8D0721 STA $2107 C3/8EF2: 20286A JSR $6A28 C3/8EF5: A02E90 LDY #$902E C3/8EF8: 204103 JSR $0341 C3/8EFB: 20520E JSR $0E52 C3/8EFE: 20156A JSR $6A15 C3/8F01: 20196A JSR $6A19 C3/8F04: 201C8F JSR $8F1C C3/8F07: 20368F JSR $8F36 C3/8F0A: 20528F JSR $8F52 C3/8F0D: 206E8F JSR $8F6E C3/8F10: 20280E JSR $0E28 C3/8F13: 20360E JSR $0E36 C3/8F16: 203C6A JSR $6A3C C3/8F19: 4C6E0E JMP $0E6E C3/8F1C: A569 LDA $69 C3/8F1E: 3015 BMI $8F35 C3/8F20: A66D LDX $6D C3/8F22: 8667 STX $67 C3/8F24: A920 LDA #$20 C3/8F26: 8529 STA $29 C3/8F28: A00D39 LDY #$390D C3/8F2B: 20CF34 JSR $34CF C3/8F2E: 6428 STZ $28 C3/8F30: A904 LDA #$04 C3/8F32: 208A8F JSR $8F8A C3/8F35: 60 RTS C3/8F36: A56A LDA $6A C3/8F38: 3017 BMI $8F51 C3/8F3A: A66F LDX $6F C3/8F3C: 8667 STX $67 C3/8F3E: A920 LDA #$20 C3/8F40: 8529 STA $29 C3/8F42: A00D3B LDY #$3B0D C3/8F45: 20CF34 JSR $34CF C3/8F48: A901 LDA #$01 C3/8F4A: 8528 STA $28 C3/8F4C: A90C LDA #$0C C3/8F4E: 208A8F JSR $8F8A C3/8F51: 60 RTS C3/8F52: A56B LDA $6B C3/8F54: 3017 BMI $8F6D C3/8F56: A671 LDX $71 C3/8F58: 8667 STX $67 C3/8F5A: A920 LDA #$20 C3/8F5C: 8529 STA $29 C3/8F5E: A00D3D LDY #$3D0D C3/8F61: 20CF34 JSR $34CF C3/8F64: A902 LDA #$02 C3/8F66: 8528 STA $28 C3/8F68: A914 LDA #$14 C3/8F6A: 208A8F JSR $8F8A C3/8F6D: 60 RTS C3/8F6E: A56C LDA $6C C3/8F70: 3017 BMI $8F89 C3/8F72: A673 LDX $73 C3/8F74: 8667 STX $67 C3/8F76: A920 LDA #$20 C3/8F78: 8529 STA $29 C3/8F7A: A00D3F LDY #$3F0D C3/8F7D: 20CF34 JSR $34CF C3/8F80: A903 LDA #$03 C3/8F82: 8528 STA $28 C3/8F84: A91C LDA #$1C C3/8F86: 208A8F JSR $8F8A C3/8F89: 60 RTS Checking everybody's equipment at once? C3/8F8A: 85E2 STA $E2 C3/8F8C: 64E0 STZ $E0 C3/8F8E: A467 LDY $67 C3/8F90: 7B TDC C3/8F91: AA TAX C3/8F92: DA PHX C3/8F93: 5A PHY C3/8F94: 5A PHY C3/8F95: DA PHX C3/8F96: 64E5 STZ $E5 C3/8F98: BFD58FC3 LDA $C38FD5,X C3/8F9C: 85E4 STA $E4 C3/8F9E: BFDB8FC3 LDA $C38FDB,X C3/8FA2: 18 CLC C3/8FA3: 65E2 ADC $E2 C3/8FA5: A6E4 LDX $E4 C3/8FA7: 209F80 JSR $809F C3/8FAA: C220 REP #$20 (16 bit memory/accum.) C3/8FAC: 8A TXA C3/8FAD: 8F899E7E STA $7E9E89 C3/8FB1: E220 SEP #$20 (8 bit memory/accum.) C3/8FB3: FA PLX C3/8FB4: E00200 CPX #$0002 C3/8FB7: B005 BCS $8FBE C3/8FB9: 201D94 JSR $941D C3/8FBC: 8002 BRA $8FC0 C3/8FBE: 64E0 STZ $E0 C3/8FC0: 7A PLY C3/8FC1: 7B TDC C3/8FC2: B91F00 LDA $001F,Y C3/8FC5: 20E18F JSR $8FE1 (get item/equipment names) C3/8FC8: 20D97F JSR $7FD9 C3/8FCB: 7A PLY C3/8FCC: C8 INY C3/8FCD: FA PLX C3/8FCE: E8 INX C3/8FCF: E00600 CPX #$0006 C3/8FD2: D0BE BNE $8F92 (branch if haven't done 6 pieces of equipment?) C3/8FD4: 60 RTS C3/8FD5: 0211 C3/8FD7: 0211 C3/8FD9: 0211 C3/8FDB: 0101 C3/8FDD: 0303 C3/8FDF: 0505 C3/8FE1: 48 PHA C3/8FE2: A28B9E LDX #$9E8B C3/8FE5: 8E8121 STX $2181 C3/8FE8: AD1242 LDA $4212 C3/8FEB: 2940 AND #$40 (are we in H-blank?) C3/8FED: F0F9 BEQ $8FE8 (branch if not) C3/8FEF: 7B TDC C3/8FF0: A5E0 LDA $E0 C3/8FF2: F003 BEQ $8FF7 C3/8FF4: 68 PLA C3/8FF5: 8005 BRA $8FFC C3/8FF7: 68 PLA C3/8FF8: C9FF CMP #$FF C3/8FFA: F023 BEQ $901F C3/8FFC: 8D1B21 STA $211B C3/8FFF: 9C1B21 STZ $211B C3/9002: A90D LDA #$0D C3/9004: 8D1C21 STA $211C C3/9007: 8D1C21 STA $211C C3/900A: AE3421 LDX $2134 C3/900D: A00D00 LDY #$000D C3/9010: BF00B3D2 LDA $D2B300,X (load item X name) C3/9014: 8D8021 STA $2180 C3/9017: E8 INX C3/9018: 88 DEY C3/9019: D0F5 BNE $9010 C3/901B: 9C8021 STZ $2180 (end this string) C3/901E: 60 RTS Blanking the item name after it was removed C3/901F: A00D00 LDY #$000D (item name length) C3/9022: A9FF LDA #$FF C3/9024: 8D8021 STA $2180 C3/9027: 88 DEY C3/9028: D0FA BNE $9024 C3/902A: 9C8021 STZ $2180 (end this string) C3/902D: 60 RTS Window data C3/902E: 8B581C18 C3/9032: 209390 JSR $9093 C3/9035: 201B91 JSR $911B (something to do with equipping...) C3/9038: A92C LDA #$2C C3/903A: 8529 STA $29 (set text color to blue) C3/903C: A2AEA2 LDX #$A2AE C3/903F: A00400 LDY #$0004 C3/9042: 20BA69 JSR $69BA ("Head," "Body") C3/9045: 204E90 JSR $904E C3/9048: 206E0E JSR $0E6E C3/904B: 4C0F9E JMP $9E0F C3/904E: A920 LDA #$20 C3/9050: 8529 STA $29 (set text color to white) C3/9052: A2A6A2 LDX #$A2A6 C3/9055: A00800 LDY #$0008 C3/9058: 20BA69 JSR $69BA ("EQUIP," "OPTIMUM," "RMOVE," "EMPTY") C3/905B: 60 RTS C3/905C: A920 LDA #$20 C3/905E: 8529 STA $29 (set text color to white) C3/9060: A2B2A2 LDX #$A2B2 C3/9063: A00400 LDY #$0004 C3/9066: 20BA69 JSR $69BA ("EQUIP," "REMOVE") C3/9069: 60 RTS C3/906A: 209390 JSR $9093 C3/906D: 20F293 JSR $93F2 C3/9070: B92300 LDA $0023,Y (accessory slot 1) C3/9073: 85B0 STA $B0 C3/9075: B92400 LDA $0024,Y (accessory slot 2) C3/9078: 85B1 STA $B1 C3/907A: 203191 JSR $9131 C3/907D: A92C LDA #$2C C3/907F: 8529 STA $29 (set text color to blue) C3/9081: A2B6A2 LDX #$A2B6 C3/9084: A00400 LDY #$0004 C3/9087: 20BA69 JSR $69BA ("Relic," "Relic") C3/908A: 205C90 JSR $905C C3/908D: 20ABA6 JSR $A6AB C3/9090: 4C6E0E JMP $0E6E C3/9093: 201091 JSR $9110 C3/9096: C220 REP #$20 (16 bit memory/accum.) C3/9098: A90001 LDA #$0100 C3/909B: 8FD09B7E STA $7E9BD0 C3/909F: E220 SEP #$20 (8 bit memory/accum.) C3/90A1: A901 LDA #$01 C3/90A3: 8D0721 STA $2107 C3/90A6: A942 LDA #$42 C3/90A8: 8D0921 STA $2109 C3/90AB: 200C96 JSR $960C C3/90AE: 20286A JSR $6A28 C3/90B1: 202D6A JSR $6A2D C3/90B4: A07F94 LDY #$947F C3/90B7: 204103 JSR $0341 (draw window that holds stats, before you select Equip, Remove, or Empty) C3/90BA: A08394 LDY #$9483 C3/90BD: 204103 JSR $0341 (draw window that holds current equipment, before you select Equip, Remove, or Empty) C3/90C0: A08794 LDY #$9487 C3/90C3: 204103 JSR $0341 (draw window that holds Equip, Optimum, Remove, and Empty) C3/90C6: A08B94 LDY #$948B C3/90C9: 204103 JSR $0341 (draw window that holds stats, after you select Equip, Remove, or Empty) C3/90CC: A08F94 LDY #$948F C3/90CF: 204103 JSR $0341 (draw window that holds current equipment, after you select Equip, Remove, or Empty) C3/90D2: A09394 LDY #$9493 C3/90D5: 204103 JSR $0341 (draw window that holds equipment option, after you select Equip, Remove, or Empty) C3/90D8: 20520E JSR $0E52 C3/90DB: 20156A JSR $6A15 C3/90DE: 20196A JSR $6A19 C3/90E1: 20280E JSR $0E28 C3/90E4: 20360E JSR $0E36 C3/90E7: 203C6A JSR $6A3C C3/90EA: 20416A JSR $6A41 C3/90ED: 20E593 JSR $93E5 (display character name in equip screen) C3/90F0: 20B261 JSR $61B2 C3/90F3: A92C LDA #$2C C3/90F5: 8529 STA $29 (set text color to blue) C3/90F7: A24DA3 LDX #$A34D C3/90FA: A01C00 LDY #$001C C3/90FD: 20BA69 JSR $69BA (display strings for equip screen) C3/9100: A92C LDA #$2C C3/9102: 8529 STA $29 (set text color to blue) C3/9104: A269A3 LDX #$A369 C3/9107: A00800 LDY #$0008 C3/910A: 20BA69 JSR $69BA (display strings for equip screen) C3/910D: 4C6E0E JMP $0E6E C3/9110: 7B TDC C3/9111: A528 LDA $28 C3/9113: AA TAX C3/9114: B569 LDA $69,X C3/9116: 220600C2 JSL $C20006 ("Equipment check function," enforces stat caps, etc) C3/911A: 60 RTS C3/911B: 207599 JSR $9975 C3/911E: A920 LDA #$20 C3/9120: 8529 STA $29 (set text color to white) C3/9122: 203E91 JSR $913E C3/9125: 202D92 JSR $922D C3/9128: 20FC93 JSR $93FC C3/912B: 203594 JSR $9435 C3/912E: 4C4394 JMP $9443 C3/9131: A920 LDA #$20 C3/9133: 8529 STA $29 (set text color to white) C3/9135: 203E91 JSR $913E C3/9138: 205194 JSR $9451 C3/913B: 4C5F94 JMP $945F C3/913E: 201091 JSR $9110 C3/9141: 20F293 JSR $93F2 C3/9144: 20E899 JSR $99E8 C3/9147: 200792 JSR $9207 C3/914A: 8B PHB C3/914B: A97E LDA #$7E C3/914D: 48 PHA C3/914E: AB PLB C3/914F: 20C491 JSR $91C4 C3/9152: AD0630 LDA $3006 C3/9155: 20E004 JSR $04E0 C3/9158: A2B77C LDX #$7CB7 (position of the current "Vigor" stat in the equip screen) C3/915B: 20C004 JSR $04C0 C3/915E: AD0430 LDA $3004 C3/9161: 20E004 JSR $04E0 C3/9164: A2377D LDX #$7D37 (position of the current "Speed" stat in the equip screen) C3/9167: 20C004 JSR $04C0 C3/916A: AD0230 LDA $3002 C3/916D: 20E004 JSR $04E0 C3/9170: A2B77D LDX #$7DB7 (position of the current "Stamina" stat in the equip screen) C3/9173: 20C004 JSR $04C0 C3/9176: AD0030 LDA $3000 C3/9179: 20E004 JSR $04E0 C3/917C: A2377E LDX #$7E37 (position of the current "Magic" stat in the equip screen) C3/917F: 20C004 JSR $04C0 C3/9182: 20AB93 JSR $93AB C3/9185: A6F1 LDX $F1 C3/9187: 86F3 STX $F3 C3/9189: 202E05 JSR $052E C3/918C: A2B77E LDX #$7EB7 (position of the current "Battle power" stat in the equip screen) C3/918F: 208604 JSR $0486 C3/9192: AD1A30 LDA $301A C3/9195: 20E004 JSR $04E0 C3/9198: A2377F LDX #$7F37 (position of the current "Defense" stat in the equip screen) C3/919B: 20C004 JSR $04C0 C3/919E: AD0830 LDA $3008 C3/91A1: 20E004 JSR $04E0 C3/91A4: A2B77F LDX #$7FB7 (position of the current "Evade" stat in the equip screen) C3/91A7: 20C004 JSR $04C0 C3/91AA: AD1B30 LDA $301B C3/91AD: 20E004 JSR $04E0 C3/91B0: A23780 LDX #$8037 (position of the current "Magic defense" stat in the equip screen) C3/91B3: 20C004 JSR $04C0 C3/91B6: AD0A30 LDA $300A C3/91B9: 20E004 JSR $04E0 C3/91BC: A2B780 LDX #$80B7 (position of the current "Magic evade" stat in the equip screen) C3/91BF: 20C004 JSR $04C0 C3/91C2: AB PLB C3/91C3: 60 RTS C3/91C4: 20F293 JSR $93F2 C3/91C7: AF32307E LDA $7E3032 C3/91CB: 20EC91 JSR $91EC C3/91CE: AD3430 LDA $3034 C3/91D1: 2901 AND #$01 C3/91D3: D007 BNE $91DC C3/91D5: B91500 LDA $0015,Y (status byte 4) C3/91D8: 2901 AND #$01 (rage set?) C3/91DA: F00F BEQ $91EB (branch if not) C3/91DC: AD3430 LDA $3034 C3/91DF: 18 CLC C3/91E0: 2901 AND #$01 C3/91E2: 85E0 STA $E0 C3/91E4: 6A ROR A C3/91E5: 6A ROR A C3/91E6: 05E0 ORA $E0 C3/91E8: 991500 STA $0015,Y (save new status byte 4) C3/91EB: 60 RTS C3/91EC: 2925 AND #$25 C3/91EE: 49FF EOR #$FF (flip all bits) C3/91F0: 85E1 STA $E1 C3/91F2: B91400 LDA $0014,Y (Statuses) C3/91F5: 25E1 AND $E1 C3/91F7: 991400 STA $0014,Y (Statuses) C3/91FA: 60 RTS C3/91FB: 18 CLC C3/91FC: 2901 AND #$01 C3/91FE: 6A ROR A C3/91FF: 6A ROR A C3/9200: 191500 ORA $0015,Y (Statuses) C3/9203: 991500 STA $0015,Y (Statuses) C3/9206: 60 RTS C3/9207: A600 LDX $00 C3/9209: C220 REP #$20 (16 bit memory/accum.) C3/920B: BDA011 LDA $11A0,X C3/920E: 9F00307E STA $7E3000,X C3/9212: E8 INX C3/9213: E8 INX C3/9214: BDA011 LDA $11A0,X C3/9217: 9F00307E STA $7E3000,X C3/921B: E8 INX C3/921C: E8 INX C3/921D: E04000 CPX #$0040 C3/9220: D0E9 BNE $920B C3/9222: E220 SEP #$20 (8 bit memory/accum.) C3/9224: A5A1 LDA $A1 C3/9226: 85A0 STA $A0 C3/9228: A5CD LDA $CD C3/922A: 85CE STA $CE C3/922C: 60 RTS C3/922D: 60 RTS C3/922E: A92C LDA #$2C C3/9230: 8529 STA $29 C3/9232: 60 RTS C3/9233: AF899D7E LDA $7E9D89 C3/9237: F005 BEQ $923E C3/9239: 20429A JSR $9A42 C3/923C: B003 BCS $9241 C3/923E: 4C879C JMP $9C87 C3/9241: 20F293 JSR $93F2 C3/9244: A525 LDA $25 C3/9246: C902 CMP #$02 C3/9248: F004 BEQ $924E C3/924A: C8 INY C3/924B: C8 INY C3/924C: C8 INY C3/924D: C8 INY C3/924E: C221 REP #$21 (16 bit accumulator, clear carry) C3/9250: 98 TYA C3/9251: E220 SEP #$20 (8 bit memory/accum.) C3/9253: 655F ADC $5F C3/9255: A8 TAY C3/9256: 7B TDC C3/9257: A54B LDA $4B C3/9259: AA TAX C3/925A: BF8A9D7E LDA $7E9D8A,X C3/925E: AA TAX C3/925F: B91F00 LDA $001F,Y C3/9262: 8564 STA $64 C3/9264: BD6918 LDA $1869,X (Items currently in inventory) C3/9267: 991F00 STA $001F,Y C3/926A: 5A PHY C3/926B: 201091 JSR $9110 C3/926E: 20F293 JSR $93F2 C3/9271: 20E899 JSR $99E8 C3/9274: 202093 JSR $9320 C3/9277: ADA611 LDA $11A6 C3/927A: 20E004 JSR $04E0 C3/927D: A2BF7C LDX #$7CBF (position of the modified "Vigor" stat in the equip screen) C3/9280: AF40307E LDA $7E3040 C3/9284: 8529 STA $29 C3/9286: 20C004 JSR $04C0 C3/9289: ADA411 LDA $11A4 C3/928C: 20E004 JSR $04E0 C3/928F: A23F7D LDX #$7D3F (position of the modified "Speed" stat in the equip screen) C3/9292: AF41307E LDA $7E3041 C3/9296: 8529 STA $29 C3/9298: 20C004 JSR $04C0 C3/929B: ADA211 LDA $11A2 C3/929E: 20E004 JSR $04E0 C3/92A1: A2BF7D LDX #$7DBF (position of the modified "Stamina" stat in the equip screen) C3/92A4: AF42307E LDA $7E3042 C3/92A8: 8529 STA $29 C3/92AA: 20C004 JSR $04C0 C3/92AD: ADA011 LDA $11A0 C3/92B0: 20E004 JSR $04E0 C3/92B3: A23F7E LDX #$7E3F (position of the modified "Magic" stat in the equip screen) C3/92B6: AF43307E LDA $7E3043 C3/92BA: 8529 STA $29 C3/92BC: 20C004 JSR $04C0 C3/92BF: 207193 JSR $9371 C3/92C2: 202E05 JSR $052E C3/92C5: A2BF7E LDX #$7EBF (position of the modified "Battle power" stat in the equip screen) C3/92C8: AF48307E LDA $7E3048 C3/92CC: 8529 STA $29 C3/92CE: 208604 JSR $0486 C3/92D1: ADBA11 LDA $11BA C3/92D4: 20E004 JSR $04E0 C3/92D7: A23F7F LDX #$7F3F (position of the modified "Defense" stat in the equip screen) C3/92DA: AF44307E LDA $7E3044 C3/92DE: 8529 STA $29 C3/92E0: 20C004 JSR $04C0 C3/92E3: ADA811 LDA $11A8 C3/92E6: 20E004 JSR $04E0 C3/92E9: A2BF7F LDX #$7FBF (position of the modified "Evade" stat in the equip screen) C3/92EC: AF45307E LDA $7E3045 C3/92F0: 8529 STA $29 C3/92F2: 20C004 JSR $04C0 C3/92F5: ADBB11 LDA $11BB C3/92F8: 20E004 JSR $04E0 C3/92FB: A23F80 LDX #$803F (position of the modified "Magic defense" stat in the equip screen) C3/92FE: AF46307E LDA $7E3046 C3/9302: 8529 STA $29 C3/9304: 20C004 JSR $04C0 C3/9307: ADAA11 LDA $11AA C3/930A: 20E004 JSR $04E0 C3/930D: A2BF80 LDX #$80BF (position of the modified "Magic evade" stat in the equip screen) C3/9310: AF47307E LDA $7E3047 C3/9314: 8529 STA $29 C3/9316: 20C004 JSR $04C0 C3/9319: 7A PLY C3/931A: A564 LDA $64 C3/931C: 991F00 STA $001F,Y C3/931F: 60 RTS C3/9320: 8B PHB C3/9321: A97E LDA #$7E C3/9323: 48 PHA C3/9324: AB PLB C3/9325: 7B TDC C3/9326: AA TAX C3/9327: BF6993C3 LDA $C39369,X C3/932B: DA PHX C3/932C: AA TAX C3/932D: BFA01100 LDA $0011A0,X (no need for long mode here) C3/9331: DD0030 CMP $3000,X C3/9334: F006 BEQ $933C C3/9336: 9008 BCC $9340 C3/9338: A928 LDA #$28 C3/933A: 8006 BRA $9342 C3/933C: A920 LDA #$20 C3/933E: 8002 BRA $9342 C3/9340: A924 LDA #$24 C3/9342: FA PLX C3/9343: 9D4030 STA $3040,X C3/9346: E8 INX C3/9347: E00800 CPX #$0008 C3/934A: D0DB BNE $9327 C3/934C: 207193 JSR $9371 C3/934F: 20AB93 JSR $93AB C3/9352: A4F3 LDY $F3 C3/9354: C4F1 CPY $F1 C3/9356: F006 BEQ $935E C3/9358: 9008 BCC $9362 C3/935A: A928 LDA #$28 C3/935C: 8006 BRA $9364 C3/935E: A920 LDA #$20 C3/9360: 8002 BRA $9364 C3/9362: A924 LDA #$24 C3/9364: 8D4830 STA $3048 C3/9367: AB PLB C3/9368: 60 RTS Data: C3/9369: 06 C3/936A: 04 C3/936B: 02 C3/936C: 00 C3/936D: 1A C3/936E: 08 C3/936F: 1B C3/9370: 0A C3/9371: A5A1 LDA $A1 C3/9373: F016 BEQ $938B C3/9375: AFAC1100 LDA $0011AC C3/9379: F006 BEQ $9381 C3/937B: 8FAD1100 STA $0011AD C3/937F: 8019 BRA $939A C3/9381: AFAD1100 LDA $0011AD C3/9385: 8FAC1100 STA $0011AC C3/9389: 800F BRA $939A C3/938B: A5CD LDA $CD C3/938D: D00B BNE $939A C3/938F: AFAC1100 LDA $0011AC C3/9393: F005 BEQ $939A C3/9395: 7B TDC C3/9396: 8FAD1100 STA $0011AD C3/939A: AFAC1100 LDA $0011AC C3/939E: 18 CLC C3/939F: 6FAD1100 ADC $0011AD C3/93A3: 85F3 STA $F3 C3/93A5: 7B TDC C3/93A6: 6900 ADC #$00 C3/93A8: 85F4 STA $F4 C3/93AA: 60 RTS C3/93AB: A5A0 LDA $A0 C3/93AD: F016 BEQ $93C5 C3/93AF: AF0C307E LDA $7E300C C3/93B3: F006 BEQ $93BB C3/93B5: 8F0D307E STA $7E300D C3/93B9: 8019 BRA $93D4 C3/93BB: AF0D307E LDA $7E300D C3/93BF: 8F0C307E STA $7E300C C3/93C3: 800F BRA $93D4 C3/93C5: A5CE LDA $CE C3/93C7: D00B BNE $93D4 C3/93C9: AF0C307E LDA $7E300C C3/93CD: F005 BEQ $93D4 C3/93CF: 7B TDC C3/93D0: 8F0D307E STA $7E300D C3/93D4: AF0C307E LDA $7E300C C3/93D8: 18 CLC C3/93D9: 6F0D307E ADC $7E300D C3/93DD: 85F1 STA $F1 C3/93DF: 7B TDC C3/93E0: 6900 ADC #$00 C3/93E2: 85F2 STA $F2 C3/93E4: 60 RTS C3/93E5: 20F293 JSR $93F2 C3/93E8: A920 LDA #$20 C3/93EA: 8529 STA $29 (set text color to white) C3/93EC: A0B77B LDY #$7BB7 (position of character name in equip screen) C3/93EF: 4CCF34 JMP $34CF C3/93F2: 7B TDC C3/93F3: A528 LDA $28 C3/93F5: 0A ASL A C3/93F6: AA TAX C3/93F7: B46D LDY $6D,X C3/93F9: 8467 STY $67 C3/93FB: 60 RTS C3/93FC: 201D94 JSR $941D C3/93FF: A21B7A LDX #$7A1B (position of the R-hand slot) C3/9402: 206D94 JSR $946D C3/9405: B91F00 LDA $001F,Y C3/9408: 20E18F JSR $8FE1 C3/940B: 20D97F JSR $7FD9 C3/940E: 201D94 JSR $941D C3/9411: A29B7A LDX #$7A9B (position of the L-hand slot) C3/9414: 206D94 JSR $946D C3/9417: B92000 LDA $0020,Y C3/941A: 4C7994 JMP $9479 C3/941D: 20F293 JSR $93F2 C3/9420: B91F00 LDA $001F,Y C3/9423: C9FF CMP #$FF (if nothing is equipped, insert "Empty"?) C3/9425: D00B BNE $9432 C3/9427: B92000 LDA $0020,Y C3/942A: C9FF CMP #$FF (if nothing is equipped, insert "Empty"?) C3/942C: D004 BNE $9432 C3/942E: 85E0 STA $E0 C3/9430: 8002 BRA $9434 C3/9432: 64E0 STZ $E0 C3/9434: 60 RTS C3/9435: A21B7B LDX #$7B1B (position of helmet slot) C3/9438: 206D94 JSR $946D C3/943B: 64E0 STZ $E0 C3/943D: B92100 LDA $0021,Y C3/9440: 4C7994 JMP $9479 C3/9443: A29B7B LDX #$7B9B (position of armor slot) C3/9446: 206D94 JSR $946D C3/9449: 64E0 STZ $E0 C3/944B: B92200 LDA $0022,Y C3/944E: 4C7994 JMP $9479 C3/9451: A21B7B LDX #$7B1B (accessory, slot 1) C3/9454: 206D94 JSR $946D C3/9457: 64E0 STZ $E0 C3/9459: B92300 LDA $0023,Y C3/945C: 4C7994 JMP $9479 C3/945F: A29B7B LDX #$7B9B (accessory, slot 2) C3/9462: 206D94 JSR $946D C3/9465: 64E0 STZ $E0 C3/9467: B92400 LDA $0024,Y C3/946A: 4C7994 JMP $9479 C3/946D: C220 REP #$20 (16 bit memory/accum.) C3/946F: 8A TXA C3/9470: 8F899E7E STA $7E9E89 C3/9474: E220 SEP #$20 (8 bit memory/accum.) C3/9476: 4CF293 JMP $93F2 C3/9479: 20E18F JSR $8FE1 C3/947C: 4CD97F JMP $7FD9 Window data C3/947F: 4B5B1C0D (window that holds stats, before you select Equip, Remove, or Empty) C3/9483: 0B591C07 (window that holds current equipment, before you select Equip, Remove, or Empty) C3/9487: 8B581C02 (window that holds Equip, Optimum, Remove, and Empty) C3/948B: 4B631C0D (window that holds stats, after you select Equip, Remove, or Empty) C3/948F: 0B611C07 (window that holds current equipment, after you select Equip, Remove, or Empty) C3/9493: B7600602 (window that holds selected equipment option, after you select Equip, Remove, or Empty) C3/9497: A902 LDA #$02 (from C3/1C35, C3/AA14) C3/9499: 8D5043 STA $4350 C3/949C: A90E LDA #$0E C3/949E: 8D5143 STA $4351 (register address becomes $210E) C3/94A1: A0D895 LDY #$95D8 C3/94A4: 8C5243 STY $4352 (set address) C3/94A7: A9C3 LDA #$C3 C3/94A9: 8D5443 STA $4354 (set bank, C3/95D8) C3/94AC: A9C3 LDA #$C3 C3/94AE: 8D5743 STA $4357 C3/94B1: A920 LDA #$20 C3/94B3: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/94B5: 60 RTS C3/94B6: A902 LDA #$02 (from C3/1BCB, C3/9E63) C3/94B8: 8D5043 STA $4350 C3/94BB: A912 LDA #$12 C3/94BD: 8D5143 STA $4351 (register address becomes $2112) C3/94C0: A0D895 LDY #$95D8 C3/94C3: 8C5243 STY $4352 (set address) C3/94C6: A9C3 LDA #$C3 C3/94C8: 8D5443 STA $4354 (set bank, C3/95D8) C3/94CB: A9C3 LDA #$C3 C3/94CD: 8D5743 STA $4357 C3/94D0: A920 LDA #$20 C3/94D2: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/94D4: 202095 JSR $9520 C3/94D7: A600 LDX $00 C3/94D9: BF6495C3 LDA $C39564,X C3/94DD: 9FC99B7E STA $7E9BC9,X C3/94E1: E8 INX C3/94E2: E00D00 CPX #$000D C3/94E5: D0F2 BNE $94D9 C3/94E7: A902 LDA #$02 C3/94E9: 8D6043 STA $4360 C3/94EC: A90D LDA #$0D C3/94EE: 8D6143 STA $4361 (register address becomes $210D) C3/94F1: A0C99B LDY #$9BC9 C3/94F4: 8C6243 STY $4362 (set address) C3/94F7: A97E LDA #$7E C3/94F9: 8D6443 STA $4364 (set bank, 7E/9BC9) C3/94FC: A97E LDA #$7E C3/94FE: 8D6743 STA $4367 C3/9501: A902 LDA #$02 C3/9503: 8D7043 STA $4370 C3/9506: A90E LDA #$0E C3/9508: 8D7143 STA $4371 (register address becomes $210E) C3/950B: A04998 LDY #$9849 C3/950E: 8C7243 STY $4372 (set address) C3/9511: A97E LDA #$7E C3/9513: 8D7443 STA $4374 (set bank, 7E/9849) C3/9516: A97E LDA #$7E C3/9518: 8D7743 STA $4377 C3/951B: A9C0 LDA #$C0 C3/951D: 0443 TSB $43 (eventually enable channels 6 and 7 of HDMA) C3/951F: 60 RTS C3/9520: A600 LDX $00 C3/9522: BF7195C3 LDA $C39571,X C3/9526: 9F49987E STA $7E9849,X C3/952A: E8 INX C3/952B: E01200 CPX #$0012 C3/952E: D0F2 BNE $9522 C3/9530: BF7195C3 LDA $C39571,X C3/9534: 9F49987E STA $7E9849,X C3/9538: E8 INX C3/9539: 7B TDC C3/953A: A549 LDA $49 C3/953C: 0A ASL A C3/953D: 0A ASL A C3/953E: 0A ASL A C3/953F: 0A ASL A C3/9540: 29FF AND #$FF C3/9542: C221 REP #$21 C3/9544: 7F7195C3 ADC $C39571,X C3/9548: 9F49987E STA $7E9849,X C3/954C: E220 SEP #$20 (8 bit memory/accum.) C3/954E: E8 INX C3/954F: E8 INX C3/9550: E06300 CPX #$0063 C3/9553: D0DB BNE $9530 C3/9555: BF7195C3 LDA $C39571,X C3/9559: 9F49987E STA $7E9849,X C3/955D: E8 INX C3/955E: E06700 CPX #$0067 C3/9561: D0F2 BNE $9555 C3/9563: 60 RTS C3/9564: 2700 AND [$00] C3/9566: 013C ORA ($3C,X) C3/9568: 0001 BRK #$01 C3/956A: 6C0000 JMP ($0000) C3/956D: 1E0001 ASL $0100,X C3/9570: 003F BRK #$3F C3/9572: 0000 BRK #$00 C3/9574: 0C0400 TSB $0004 C3/9577: 0C0800 TSB $0008 C3/957A: 0A ASL A C3/957B: 0C0001 TSB $0100 C3/957E: 0C0001 TSB $0100 C3/9581: 0C0004 TSB $0400 C3/9584: A0FF04 LDY #$04FF C3/9587: A0FF04 LDY #$04FF C3/958A: A0FF04 LDY #$04FF C3/958D: A4FF LDY $FF C3/958F: 04A4 TSB $A4 C3/9591: FF04A4FF SBC $FFA404,X C3/9595: 04A8 TSB $A8 C3/9597: FF04A8FF SBC $FFA804,X C3/959B: 04A8 TSB $A8 C3/959D: FF04ACFF SBC $FFAC04,X C3/95A1: 04AC TSB $AC C3/95A3: FF04ACFF SBC $FFAC04,X C3/95A7: 04B0 TSB $B0 C3/95A9: FF04B0FF SBC $FFB004,X C3/95AD: 04B0 TSB $B0 C3/95AF: FF04B4FF SBC $FFB404,X C3/95B3: 04B4 TSB $B4 C3/95B5: FF04B4FF SBC $FFB404,X C3/95B9: 04B8 TSB $B8 C3/95BB: FF04B8FF SBC $FFB804,X C3/95BF: 04B8 TSB $B8 C3/95C1: FF04BCFF SBC $FFBC04,X C3/95C5: 04BC TSB $BC C3/95C7: FF04BCFF SBC $FFBC04,X C3/95CB: 04C0 TSB $C0 C3/95CD: FF04C0FF SBC $FFC004,X C3/95D1: 04C0 TSB $C0 C3/95D3: FF1E1000 SBC $00101E,X C3/95D7: 00 HDMA transfer table C3/95D8: 0F0000 C3/95DB: 0C0400 C3/95DE: 0C0800 C3/95E1: 0C0C00 C3/95E4: 0C1000 C3/95E7: 0C1400 C3/95EA: 0C1800 C3/95ED: 0C1C00 C3/95F0: 0C2000 C3/95F3: 0C2400 C3/95F6: 0C2800 C3/95F9: 0C2C00 C3/95FC: 0C3000 C3/95FF: 0C3400 C3/9602: 0C3800 C3/9605: 0C3C00 C3/9608: 0C4000 C3/960B: 00 (end) C3/960C: 205D96 JSR $965D C3/960F: A400 LDY $00 C3/9611: 8439 STY $39 C3/9613: 60 RTS C3/9614: 205D96 JSR $965D C3/9617: A00001 LDY #$0001 C3/961A: 8439 STY $39 C3/961C: A92C LDA #$2C C3/961E: 8529 STA $29 C3/9620: 60 RTS DP $26 is #$36 - sustain the equipment menu C3/9621: 200C96 JSR $960C C3/9624: 204E90 JSR $904E C3/9627: 20568E JSR $8E56 C3/962A: A508 LDA $08 C3/962C: 8980 BIT #$80 (is A being pressed?) C3/962E: F005 BEQ $9635 (branch if not) C3/9630: 20B20E JSR $0EB2 (makes the click sound) C3/9633: 802F BRA $9664 C3/9635: A509 LDA $09 C3/9637: 8980 BIT #$80 (is B being pressed?) C3/9639: F00D BEQ $9648 (branch if not) C3/963B: 20A90E JSR $0EA9 C3/963E: 201091 JSR $9110 C3/9641: A904 LDA #$04 C3/9643: 8527 STA $27 C3/9645: 6426 STZ $26 C3/9647: 60 RTS C3/9648: A935 LDA #$35 C3/964A: 85E0 STA $E0 C3/964C: 4C2220 JMP $2022 C3/964F: A009A3 LDY #$A309 C3/9652: 20F902 JSR $02F9 ("EQUIP") C3/9655: 60 RTS C3/9656: A011A3 LDY #$A311 C3/9659: 20F902 JSR $02F9 ("REMOVE") C3/965C: 60 RTS C3/965D: A0EAA2 LDY #$A2EA C3/9660: 20F902 JSR $02F9 (" ") C3/9663: 60 RTS C3/9664: 7B TDC C3/9665: A54B LDA $4B C3/9667: 0A ASL A C3/9668: AA TAX C3/9669: 7C6C96 JMP ($966C,X) Appear to be pointers for the Equip screen (Equip, Optimum, Remove, Empty, and it's also a total guess) C3/966C: 7496 C3/966E: 8596 C3/9670: 8E96 C3/9672: 9F96 C3/9674: 201496 JSR $9614 C3/9677: 204F96 JSR $964F C3/967A: 206C8E JSR $8E6C C3/967D: 20758E JSR $8E75 C3/9680: A955 LDA #$55 C3/9682: 8526 STA $26 C3/9684: 60 RTS C3/9685: 20F096 JSR $96F0 (Optimum command - fully equips standard equipment) C3/9688: 201B91 JSR $911B C3/968B: 644D STZ $4D C3/968D: 60 RTS C3/968E: 201496 JSR $9614 C3/9691: 205696 JSR $9656 C3/9694: 206C8E JSR $8E6C C3/9697: 20758E JSR $8E75 C3/969A: A956 LDA #$56 C3/969C: 8526 STA $26 C3/969E: 60 RTS C3/969F: 20A896 JSR $96A8 (Empty command - Removes standard equipment) C3/96A2: 201B91 JSR $911B C3/96A5: 644D STZ $4D C3/96A7: 60 RTS Empty command of Equip screen C3/96A8: 20F293 JSR $93F2 C3/96AB: B91F00 LDA $001F,Y C3/96AE: 205E9D JSR $9D5E (Put item into inventory) C3/96B1: B92000 LDA $0020,Y C3/96B4: 205E9D JSR $9D5E (Put item into inventory) C3/96B7: B92100 LDA $0021,Y C3/96BA: 205E9D JSR $9D5E (Put item into inventory) C3/96BD: B92200 LDA $0022,Y C3/96C0: 205E9D JSR $9D5E (Put item into inventory) C3/96C3: A9FF LDA #$FF C3/96C5: 991F00 STA $001F,Y C3/96C8: 992000 STA $0020,Y C3/96CB: 992100 STA $0021,Y C3/96CE: 992200 STA $0022,Y C3/96D1: 60 RTS Starts in C0/C6BC (which is called by event command $9C), which jumps to C3/0015, then here C3/96D2: 201569 JSR $6915 C3/96D5: 7B TDC C3/96D6: AA TAX C3/96D7: AD0102 LDA $0201 (load character to equip) C3/96DA: D569 CMP $69,X (compare it with current party member) C3/96DC: F008 BEQ $96E6 (branch if character is in the party) C3/96DE: E8 INX C3/96DF: E00400 CPX #$0004 (member wasn't in party, increment...) C3/96E2: D0F6 BNE $96DA (...and try again) C3/96E4: 80FE BRA $96E4 (if the character isn't in the party, the game will freeze right here) C3/96E6: 8A TXA C3/96E7: 8528 STA $28 C3/96E9: 201091 JSR $9110 (Checks equipment by jumping to C2/0E77, there is no need to call this here) C3/96EC: 20F096 JSR $96F0 (Optimum command - fully equips standard equipment) C3/96EF: 6B RTL Optimum command C3/96F0: 201091 JSR $9110 (Checks equipment by jumping to C2/0E77) C3/96F3: 20A896 JSR $96A8 (Empty command - Removes standard equipment) C3/96F6: 20F293 JSR $93F2 (get character index) C3/96F9: 84F3 STY $F3 (store character index) C3/96FB: ADD811 LDA $11D8 C3/96FE: 2908 AND #$08 (Check "attack with 2 hands" bit) C3/9700: F018 BEQ $971A (if not set, do one weapon) C3/9702: 644B STZ $4B C3/9704: 20599B JSR $9B59 (Get item's type and stats) C3/9707: 209597 JSR $9795 (Check for equippable characters) C3/970A: 2050A1 JSR $A150 (Get the battle power/defensive power) C3/970D: 203F98 JSR $983F (Check for excluded items) C3/9710: A4F3 LDY $F3 (load character index) C3/9712: 991F00 STA $001F,Y (Store to first hand) C3/9715: 20979D JSR $9D97 (Remove item from inventory) C3/9718: 8051 BRA $976B (move to the helmet slot) C3/971A: 644B STZ $4B C3/971C: 20599B JSR $9B59 (Get weapon's type and stats) C3/971F: 209597 JSR $9795 (Check for weapon's equippable characters) C3/9722: 2050A1 JSR $A150 (Get the battle power/defensive power) C3/9725: A4F3 LDY $F3 (load character index) C3/9727: 201998 JSR $9819 (Check for excluded items) C3/972A: 991F00 STA $001F,Y (Store to first hand) C3/972D: 20979D JSR $9D97 (Remove item from inventory) C3/9730: ADD811 LDA $11D8 C3/9733: 2910 AND #$10 (Check "can equip a weapon in each hand" bit) C3/9735: D01A BNE $9751 (branch if set) C3/9737: A901 LDA #$01 C3/9739: 854B STA $4B C3/973B: 20599B JSR $9B59 (Get shield's type and stats) C3/973E: 20D797 JSR $97D7 (Check for sheild's equippable characters) C3/9741: 2050A1 JSR $A150 (Get the battle power/defensive power) C3/9744: A4F3 LDY $F3 (load character index) C3/9746: 201998 JSR $9819 (Check for excluded items) C3/9749: 992000 STA $0020,Y (Store to second hand) C3/974C: 20979D JSR $9D97 (Remove item from inventory) C3/974F: 801A BRA $976B (do the helmet slot now) C3/9751: A901 LDA #$01 C3/9753: 854B STA $4B (you are here only if you can equip a weapon in both hands) C3/9755: 20599B JSR $9B59 (Get item's type and stats) C3/9758: 209597 JSR $9795 (Check for equippable characters) C3/975B: 2050A1 JSR $A150 (Get the battle power/defensive power) C3/975E: A4F3 LDY $F3 (load character index) C3/9760: 201998 JSR $9819 (Check for excluded items) C3/9763: 992000 STA $0020,Y (Store to second hand) C3/9766: 20979D JSR $9D97 (Remove item from inventory) C3/9769: 8000 BRA $976B (Stupid auto-generated stuff....) C3/976B: A902 LDA #$02 C3/976D: 854B STA $4B (set slot as helmet) C3/976F: 20599B JSR $9B59 (Get head item's type and stats) C3/9772: 2050A1 JSR $A150 (Get the battle power/defensive power) C3/9775: A4F3 LDY $F3 (load character index) C3/9777: 201998 JSR $9819 (Check for excluded items) C3/977A: 992100 STA $0021,Y (Store to head) C3/977D: 20979D JSR $9D97 (Remove item from inventory) C3/9780: A903 LDA #$03 C3/9782: 854B STA $4B (set slot as body armor) C3/9784: 20599B JSR $9B59 (Get body item's type and stats) C3/9787: 2050A1 JSR $A150 (Get the battle power/defensive power) C3/978A: A4F3 LDY $F3 (load character index) C3/978C: 201998 JSR $9819 (Check for excluded items) C3/978F: 992200 STA $0022,Y (Store to body) C3/9792: 4C979D JMP $9D97 (Remove item from inventory) C3/9795: 202A9C JSR $9C2A (from C3/9707, C3/971F, C3/9758) C3/9798: 20419C JSR $9C41 C3/979B: A600 LDX $00 C3/979D: 9B TXY C3/979E: 7B TDC C3/979F: B96918 LDA $1869,Y (Load inventory item Y) C3/97A2: C9FF CMP #$FF (Is it the "empty" item?) C3/97A4: F022 BEQ $97C8 (If so, branch -> do the next item) C3/97A6: 202183 JSR $8321 (Otherwise, multiply index by 30) C3/97A9: AE3421 LDX $2134 (Let X get the result) C3/97AC: BF0050D8 LDA $D85000,X (Load item X type) C3/97B0: 2907 AND #$07 (Zero out the upper nibble) C3/97B2: C901 CMP #$01 (Is it a weapon [item type 1]?) C3/97B4: D012 BNE $97C8 (If not, branch -> do the next item) C3/97B6: C220 REP #$20 (16 bit memory/accum.) C3/97B8: BF0150D8 LDA $D85001,X (Load equippable chars for X) C3/97BC: 24E7 BIT $E7 C3/97BE: F008 BEQ $97C8 C3/97C0: E220 SEP #$20 (8 bit memory/accum.) C3/97C2: 98 TYA C3/97C3: 8D8021 STA $2180 C3/97C6: E6E0 INC $E0 C3/97C8: E220 SEP #$20 (8 bit memory/accum.) C3/97CA: C8 INY C3/97CB: C0FF00 CPY #$00FF C3/97CE: D0CE BNE $979E C3/97D0: A5E0 LDA $E0 C3/97D2: 8F899D7E STA $7E9D89 C3/97D6: 60 RTS C3/97D7: 202A9C JSR $9C2A C3/97DA: 20419C JSR $9C41 C3/97DD: A600 LDX $00 C3/97DF: 9B TXY C3/97E0: 7B TDC C3/97E1: B96918 LDA $1869,Y (Items currently in inventory) C3/97E4: C9FF CMP #$FF (Is it the "empty" item?) C3/97E6: F022 BEQ $980A C3/97E8: 202183 JSR $8321 (Multiplies the index by 30) C3/97EB: AE3421 LDX $2134 (Load X with the result) C3/97EE: BF0050D8 LDA $D85000,X (Load item type) C3/97F2: 2907 AND #$07 (Zero out the upper nibble) C3/97F4: C903 CMP #$03 (Is it a shield [item type 3]?) C3/97F6: D012 BNE $980A C3/97F8: C220 REP #$20 (16 bit memory/accum.) C3/97FA: BF0150D8 LDA $D85001,X (Load equippable chars for X) C3/97FE: 24E7 BIT $E7 C3/9800: F008 BEQ $980A C3/9802: E220 SEP #$20 (8 bit memory/accum.) C3/9804: 98 TYA C3/9805: 8D8021 STA $2180 C3/9808: E6E0 INC $E0 C3/980A: E220 SEP #$20 (8 bit memory/accum.) C3/980C: C8 INY C3/980D: C0FF00 CPY #$00FF C3/9810: D0CE BNE $97E0 C3/9812: A5E0 LDA $E0 C3/9814: 8F899D7E STA $7E9D89 C3/9818: 60 RTS C3/9819: 5A PHY C3/981A: 8B PHB C3/981B: A97E LDA #$7E C3/981D: 48 PHA C3/981E: AB PLB C3/981F: 7B TDC (set all 16 bits of A to 0) C3/9820: A8 TAY (Y = 0) C3/9821: 7B TDC (...again?) C3/9822: AA TAX (X = 0) C3/9823: DA PHX (save X) C3/9824: 7B TDC (probably to clear the upper 8 bits on looping) C3/9825: B98A9D LDA $9D8A,Y (list of slots of items) C3/9828: AA TAX C3/9829: BD6918 LDA $1869,X (Items currently in inventory) C3/982C: FA PLX C3/982D: DFE482ED CMP $ED82E4,X (Items excluded from "Optimum" selection) C3/9831: F009 BEQ $983C (if item matched, branch to do something...) C3/9833: E8 INX C3/9834: E00A00 CPX #$000A (have we checked the 10 items to exclude?) C3/9837: D0EA BNE $9823 (branch if not) C3/9839: AB PLB C3/983A: 7A PLY C3/983B: 60 RTS C3/983C: C8 INY (increment Y, and that's it?) C3/983D: 80E2 BRA $9821 (branch and loop again) C3/983F: AF899D7E LDA $7E9D89 C3/9843: F03C BEQ $9881 (if 0, branch to equip nothing?) C3/9845: 85CB STA $CB C3/9847: 64CC STZ $CC C3/9849: 7B TDC (set all 16 bits of A to 0) C3/984A: A8 TAY (Y = 0) C3/984B: 7B TDC (...again?) C3/984C: AA TAX (X = 0) C3/984D: DA PHX (save X) C3/984E: 7B TDC (probably to clear the upper 8 bits on looping) C3/984F: BB TYX (transfer Y = 0 to X = 0...wait, although it has looping purposes) C3/9850: BF8A9D7E LDA $7E9D8A,X (if this is item slots, there's only 6, so I'm not sure what this is grabbing) C3/9854: AA TAX C3/9855: BD6918 LDA $1869,X (Items currently in inventory) C3/9858: FA PLX C3/9859: DFE482ED CMP $ED82E4,X (Items excluded from "Optimum" selection) C3/985D: F019 BEQ $9878 (if item matched, branch meaning to not equip it) C3/985F: E8 INX C3/9860: E00A00 CPX #$000A (have we checked the 10 items to exclude?) C3/9863: D0E8 BNE $984D (branch if not) C3/9865: 85C9 STA $C9 C3/9867: 202183 JSR $8321 (Multiplies A by 30) C3/986A: AE3421 LDX $2134 (Load X with the result) C3/986D: BF1350D8 LDA $D85013,X (Load weapon/item properties X) C3/9871: 2940 AND #$40 (does weapon have "2-handed" capability?) C3/9873: F003 BEQ $9878 (branch if not) C3/9875: A5C9 LDA $C9 C3/9877: 60 RTS C3/9878: C8 INY (increment Y) C3/9879: C4CB CPY $CB (compare it to something...) C3/987B: D0CE BNE $984B (if they don't match, branch and continue) C3/987D: 201998 JSR $9819 (otherwise run the other "items excluded from optimum" routine) C3/9880: 60 RTS C3/9881: A9FF LDA #$FF C3/9883: 60 RTS C3/9884: 20728E JSR $8E72 C3/9887: 207599 JSR $9975 C3/988A: A508 LDA $08 C3/988C: 8980 BIT #$80 (is A being pressed?) C3/988E: F024 BEQ $98B4 (branch if not, BPL...) C3/9890: 20B20E JSR $0EB2 (makes the click sound) C3/9893: A54E LDA $4E C3/9895: 855F STA $5F C3/9897: A957 LDA #$57 C3/9899: 8526 STA $26 C3/989B: 20599B JSR $9B59 C3/989E: 2050A1 JSR $A150 C3/98A1: 20EB9A JSR $9AEB C3/98A4: A955 LDA #$55 C3/98A6: 8527 STA $27 C3/98A8: 203392 JSR $9233 C3/98AB: 20156A JSR $6A15 C3/98AE: 206813 JSR $1368 (trigger NMI) C3/98B1: 4CAC9C JMP $9CAC C3/98B4: A509 LDA $09 C3/98B6: 8980 BIT #$80 (is B being pressed?) C3/98B8: F00E BEQ $98C8 (branch if not, BPL...) C3/98BA: 20A90E JSR $0EA9 C3/98BD: 20508E JSR $8E50 C3/98C0: 20598E JSR $8E59 C3/98C3: A936 LDA #$36 C3/98C5: 8526 STA $26 C3/98C7: 60 RTS C3/98C8: A97E LDA #$7E C3/98CA: 85E0 STA $E0 C3/98CC: 4C2220 JMP $2022 C3/98CF: 20728E JSR $8E72 C3/98D2: A508 LDA $08 C3/98D4: 8980 BIT #$80 (is A being pressed?) C3/98D6: F01C BEQ $98F4 (branch if not) C3/98D8: 20B20E JSR $0EB2 (makes the click sound) C3/98DB: 20F293 JSR $93F2 C3/98DE: C221 REP #$21 C3/98E0: 98 TYA C3/98E1: E220 SEP #$20 (8 bit memory/accum.) C3/98E3: 654B ADC $4B C3/98E5: A8 TAY C3/98E6: B91F00 LDA $001F,Y C3/98E9: 205E9D JSR $9D5E (Put item into inventory) C3/98EC: A9FF LDA #$FF C3/98EE: 991F00 STA $001F,Y C3/98F1: 201B91 JSR $911B C3/98F4: A509 LDA $09 C3/98F6: 8980 BIT #$80 (is B being pressed?) C3/98F8: F00E BEQ $9908 (branch if not) C3/98FA: 20A90E JSR $0EA9 C3/98FD: 20508E JSR $8E50 C3/9900: 20598E JSR $8E59 C3/9903: A936 LDA #$36 C3/9905: 8526 STA $26 C3/9907: 60 RTS C3/9908: A97F LDA #$7F C3/990A: 85E0 STA $E0 C3/990C: 4C2220 JMP $2022 C3/990F: 20D39A JSR $9AD3 C3/9912: 203392 JSR $9233 C3/9915: A508 LDA $08 C3/9917: 8980 BIT #$80 C3/9919: F029 BEQ $9944 C3/991B: 20429A JSR $9A42 C3/991E: 904E BCC $996E C3/9920: 20B20E JSR $0EB2 (makes the click sound) C3/9923: B91F00 LDA $001F,Y C3/9926: C9FF CMP #$FF C3/9928: F003 BEQ $992D C3/992A: 205E9D JSR $9D5E (Put item into inventory) C3/992D: 7B TDC C3/992E: A54B LDA $4B C3/9930: AA TAX C3/9931: BF8A9D7E LDA $7E9D8A,X C3/9935: AA TAX C3/9936: BD6918 LDA $1869,X (Items currently in inventory) C3/9939: 991F00 STA $001F,Y C3/993C: 20979D JSR $9D97 (Remove item from inventory) C3/993F: 201B91 JSR $911B C3/9942: 8009 BRA $994D C3/9944: A509 LDA $09 C3/9946: 8980 BIT #$80 C3/9948: F023 BEQ $996D C3/994A: 20A90E JSR $0EA9 C3/994D: 20879C JSR $9C87 C3/9950: C220 REP #$20 (16 bit memory/accum.) C3/9952: A90001 LDA #$0100 C3/9955: 8FD09B7E STA $7E9BD0 C3/9959: E220 SEP #$20 (8 bit memory/accum.) C3/995B: A9C1 LDA #$C1 C3/995D: 1446 TRB $46 C3/995F: 206C8E JSR $8E6C C3/9962: A55F LDA $5F C3/9964: 854E STA $4E C3/9966: 20758E JSR $8E75 C3/9969: A955 LDA #$55 C3/996B: 8526 STA $26 C3/996D: 60 RTS C3/996E: 20C00E JSR $0EC0 (makes the buzzer sound) C3/9971: 205D30 JSR $305D C3/9974: 60 RTS C3/9975: ADD811 LDA $11D8 C3/9978: 2908 AND #$08 (Is "attack with 2 hands" set for this?) C3/997A: F013 BEQ $998F (If not, branch) C3/997C: 20F293 JSR $93F2 C3/997F: B91F00 LDA $001F,Y (Check right hand) C3/9982: C9FF CMP #$FF (Is it the "empty" item?) C3/9984: F020 BEQ $99A6 (Branch if so) C3/9986: B92000 LDA $0020,Y (Check left hand) C3/9989: C9FF CMP #$FF (Is it the "empty" item?) C3/998B: F03D BEQ $99CA (Branch if so) C3/998D: 8000 BRA $998F (--this is a pointless branch--) (You reach this point if either: attack with 2 hands isn't set, both hands are empty, both hands have an item, or one of the hands' items lacks the 2-hand bit) C3/998F: A92C LDA #$2C C3/9991: 8529 STA $29 (set text color to blue) C3/9993: 209899 JSR $9998 C3/9996: 8007 BRA $999F C3/9998: A0BAA2 LDY #$A2BA C3/999B: 20F902 JSR $02F9 ("R-hand", also JMP fool!) C3/999E: 60 RTS C3/999F: A0C3A2 LDY #$A2C3 C3/99A2: 20F902 JSR $02F9 ("L-hand", also JMP fool!) C3/99A5: 60 RTS Fork: Check for Left hand with 2-handed weapon C3/99A6: B92000 LDA $0020,Y (Check left hand) C3/99A9: C9FF CMP #$FF (Is it the "empty" item?) C3/99AB: D002 BNE $99AF (Branch if not) C3/99AD: 80E0 BRA $998F (If it was, both hands are empty [note that these two lines could be optimized], so branch) C3/99AF: 202183 JSR $8321 (Multiplies A by 30) C3/99B2: AE3421 LDX $2134 (Load X with the result) C3/99B5: BF1350D8 LDA $D85013,X (Load weapon properties X) C3/99B9: 2940 AND #$40 (Check the "2-hand" bit) C3/99BB: F0D2 BEQ $998F (Branch if it's clear) C3/99BD: A924 LDA #$24 C3/99BF: 8529 STA $29 C3/99C1: 209899 JSR $9998 C3/99C4: A92C LDA #$2C C3/99C6: 8529 STA $29 C3/99C8: 80D5 BRA $999F Fork: Check for Right hand with 2-handed weapon C3/99CA: B91F00 LDA $001F,Y C3/99CD: 202183 JSR $8321 (Multiplies A by 30) C3/99D0: AE3421 LDX $2134 (Load X with the result) C3/99D3: BF1350D8 LDA $D85013,X (Load weapon properties X) C3/99D7: 2940 AND #$40 (Check the "2-hand" bit) C3/99D9: F0B4 BEQ $998F (Branch if it's clear) C3/99DB: A92C LDA #$2C C3/99DD: 8529 STA $29 C3/99DF: 209899 JSR $9998 C3/99E2: A924 LDA #$24 C3/99E4: 8529 STA $29 C3/99E6: 80B7 BRA $999F C3/99E8: 64CD STZ $CD C3/99EA: ADD811 LDA $11D8 C3/99ED: 2910 AND #$10 C3/99EF: F002 BEQ $99F3 C3/99F1: E6CD INC $CD C3/99F3: 64A1 STZ $A1 C3/99F5: ADD811 LDA $11D8 C3/99F8: 2908 AND #$08 C3/99FA: F010 BEQ $9A0C C3/99FC: B91F00 LDA $001F,Y C3/99FF: C9FF CMP #$FF C3/9A01: F00B BEQ $9A0E C3/9A03: B92000 LDA $0020,Y C3/9A06: C9FF CMP #$FF C3/9A08: F021 BEQ $9A2B C3/9A0A: 8000 BRA $9A0C C3/9A0C: 38 SEC C3/9A0D: 60 RTS C3/9A0E: B92000 LDA $0020,Y C3/9A11: C9FF CMP #$FF C3/9A13: D002 BNE $9A17 C3/9A15: 80F5 BRA $9A0C C3/9A17: 202183 JSR $8321 (Multiplies A by 30) C3/9A1A: AE3421 LDX $2134 (Load X with the result) C3/9A1D: BF1350D8 LDA $D85013,X (Load weapon/item properties X) C3/9A21: 2940 AND #$40 C3/9A23: F0E7 BEQ $9A0C C3/9A25: 18 CLC C3/9A26: A901 LDA #$01 C3/9A28: 85A1 STA $A1 C3/9A2A: 60 RTS C3/9A2B: B91F00 LDA $001F,Y C3/9A2E: 202183 JSR $8321 (Multiplies A by 30) C3/9A31: AE3421 LDX $2134 (Load X with the result) C3/9A34: BF1350D8 LDA $D85013,X (Load weapon/item properties X) C3/9A38: 2940 AND #$40 C3/9A3A: F0D0 BEQ $9A0C C3/9A3C: 18 CLC C3/9A3D: A901 LDA #$01 C3/9A3F: 85A1 STA $A1 C3/9A41: 60 RTS C3/9A42: 204A9A JSR $9A4A C3/9A45: 7B TDC C3/9A46: A54B LDA $4B C3/9A48: 800C BRA $9A56 C3/9A4A: 20F293 JSR $93F2 C3/9A4D: C221 REP #$21 C3/9A4F: 98 TYA C3/9A50: E220 SEP #$20 (8 bit memory/accum.) C3/9A52: 655F ADC $5F C3/9A54: A8 TAY C3/9A55: 60 RTS C3/9A56: 5A PHY C3/9A57: AA TAX C3/9A58: BF8A9D7E LDA $7E9D8A,X C3/9A5C: AA TAX C3/9A5D: BD6918 LDA $1869,X (Get index of inventory item X) C3/9A60: 202183 JSR $8321 (Multiply the index by 30) C3/9A63: AE3421 LDX $2134 (Load X with the result) C3/9A66: BF0050D8 LDA $D85000,X (Load item type X) C3/9A6A: 2907 AND #$07 C3/9A6C: 85F6 STA $F6 C3/9A6E: 7A PLY C3/9A6F: A55F LDA $5F C3/9A71: C902 CMP #$02 C3/9A73: B05A BCS $9ACF C3/9A75: C901 CMP #$01 C3/9A77: F02C BEQ $9AA5 C3/9A79: B92000 LDA $0020,Y C3/9A7C: C9FF CMP #$FF C3/9A7E: F017 BEQ $9A97 C3/9A80: 202183 JSR $8321 (Multiply the index by 30) C3/9A83: AE3421 LDX $2134 (Load X with the result) C3/9A86: BF0050D8 LDA $D85000,X (Load item type X) C3/9A8A: 2907 AND #$07 (Zero out upper nibble) C3/9A8C: C903 CMP #$03 (Is it a shield? [Item type 3]) C3/9A8E: F009 BEQ $9A99 C3/9A90: ADD811 LDA $11D8 C3/9A93: 2910 AND #$10 C3/9A95: F002 BEQ $9A99 C3/9A97: 38 SEC C3/9A98: 60 RTS C3/9A99: BF0050D8 LDA $D85000,X (Load item type X) C3/9A9D: 2907 AND #$07 C3/9A9F: C5F6 CMP $F6 C3/9AA1: F02E BEQ $9AD1 C3/9AA3: 38 SEC C3/9AA4: 60 RTS C3/9AA5: B91E00 LDA $001E,Y C3/9AA8: C9FF CMP #$FF C3/9AAA: F017 BEQ $9AC3 C3/9AAC: 202183 JSR $8321 (Multiply the index by 30) C3/9AAF: AE3421 LDX $2134 (Load X with the result) C3/9AB2: BF0050D8 LDA $D85000,X (Load item type X) C3/9AB6: 2907 AND #$07 (Zero out upper nibble) C3/9AB8: C903 CMP #$03 (Is it a shield? [Item type 3]) C3/9ABA: F009 BEQ $9AC5 C3/9ABC: ADD811 LDA $11D8 C3/9ABF: 2910 AND #$10 C3/9AC1: F002 BEQ $9AC5 C3/9AC3: 38 SEC C3/9AC4: 60 RTS C3/9AC5: BF0050D8 LDA $D85000,X (Load item type X) C3/9AC9: 2907 AND #$07 C3/9ACB: C5F6 CMP $F6 C3/9ACD: F002 BEQ $9AD1 C3/9ACF: 38 SEC C3/9AD0: 60 RTS C3/9AD1: 18 CLC C3/9AD2: 60 RTS C3/9AD3: AF899D7E LDA $7E9D89 C3/9AD7: C90A CMP #$0A C3/9AD9: B003 BCS $9ADE C3/9ADB: 4C9D8E JMP $8E9D C3/9ADE: A905 LDA #$05 C3/9AE0: 852A STA $2A C3/9AE2: 20641F JSR $1F64 C3/9AE5: B003 BCS $9AEA C3/9AE7: 4C8E8E JMP $8E8E C3/9AEA: 60 RTS C3/9AEB: AF899D7E LDA $7E9D89 C3/9AEF: F01B BEQ $9B0C C3/9AF1: C90A CMP #$0A C3/9AF3: B011 BCS $9B06 C3/9AF5: 20C49D JSR $9DC4 C3/9AF8: 644A STZ $4A C3/9AFA: 20978E JSR $8E97 C3/9AFD: AF899D7E LDA $7E9D89 C3/9B01: 8554 STA $54 C3/9B03: 4CA08E JMP $8EA0 C3/9B06: 20C49D JSR $9DC4 C3/9B09: 200D9B JSR $9B0D C3/9B0C: 60 RTS C3/9B0D: 644A STZ $4A C3/9B0F: 203309 JSR $0933 (set arrow initial positions for equip screen) C3/9B12: C220 REP #$20 (16 bit memory/accum.) C3/9B14: A96000 LDA #$0060 C3/9B17: 9FCA347E STA $7E34CA,X C3/9B1B: A90060 LDA #$6000 C3/9B1E: 8D0442 STA $4204 C3/9B21: E220 SEP #$20 (8 bit memory/accum.) C3/9B23: AF899D7E LDA $7E9D89 C3/9B27: 38 SEC C3/9B28: E909 SBC #$09 C3/9B2A: 8D0642 STA $4206 C3/9B2D: EA NOP C3/9B2E: EA NOP C3/9B2F: EA NOP C3/9B30: EA NOP C3/9B31: EA NOP C3/9B32: C220 REP #$20 (16 bit memory/accum.) C3/9B34: AD1442 LDA $4214 C3/9B37: 9F4A357E STA $7E354A,X C3/9B3B: E220 SEP #$20 (8 bit memory/accum.) C3/9B3D: A400 LDY $00 C3/9B3F: 844F STY $4F C3/9B41: 20888E JSR $8E88 C3/9B44: 20918E JSR $8E91 C3/9B47: AF899D7E LDA $7E9D89 C3/9B4B: 38 SEC C3/9B4C: E909 SBC #$09 C3/9B4E: 855C STA $5C C3/9B50: A909 LDA #$09 C3/9B52: 855A STA $5A C3/9B54: A901 LDA #$01 C3/9B56: 855B STA $5B C3/9B58: 60 RTS C3/9B59: 202A9C JSR $9C2A C3/9B5C: 20419C JSR $9C41 (Setup equippability word) C3/9B5F: A920 LDA #$20 C3/9B61: 8529 STA $29 (set text color to white) C3/9B63: A54B LDA $4B (load something) C3/9B65: C902 CMP #$02 (is it a hat type?) C3/9B67: F049 BEQ $9BB2 (branch if so) C3/9B69: C903 CMP #$03 (is it body armor?) C3/9B6B: F002 BEQ $9B6F (branch if so) C3/9B6D: 8003 BRA $9B72 (otherwise, assume weapon?!) C3/9B6F: 4CEE9B JMP $9BEE Get Weapon or Shield's equippable chars C3/9B72: A600 LDX $00 C3/9B74: 9B TXY C3/9B75: 7B TDC C3/9B76: B96918 LDA $1869,Y (Load inventory item Y) C3/9B79: C9FF CMP #$FF (Is it the "empty" item?) C3/9B7B: F026 BEQ $9BA3 (If so, branch -> do the next item) C3/9B7D: 202183 JSR $8321 (Otherwise, do this function (multiplies by 30)) C3/9B80: AE3421 LDX $2134 (Load X with the result of index * 30) C3/9B83: BF0050D8 LDA $D85000,X (Load item type X) C3/9B87: 2907 AND #$07 (Zero out the upper nibble) C3/9B89: C901 CMP #$01 (Is it a weapon [item type 1]?) C3/9B8B: F004 BEQ $9B91 (If so, branch -> check equippable chars) C3/9B8D: C903 CMP #$03 (Otherwise, is it a shield [item type 3]?) C3/9B8F: D012 BNE $9BA3 (If not, branch -> do the next item) C3/9B91: C220 REP #$20 (Ok, we have a weapon or shield, so set 16 bit memory/accum.) C3/9B93: BF0150D8 LDA $D85001,X (Load equippable chars for item X) C3/9B97: 24E7 BIT $E7 C3/9B99: F008 BEQ $9BA3 C3/9B9B: E220 SEP #$20 (8 bit memory/accum.) C3/9B9D: 98 TYA C3/9B9E: 8D8021 STA $2180 C3/9BA1: E6E0 INC $E0 C3/9BA3: E220 SEP #$20 (8 bit memory/accum.) C3/9BA5: C8 INY C3/9BA6: C0FF00 CPY #$00FF C3/9BA9: D0CA BNE $9B75 C3/9BAB: A5E0 LDA $E0 C3/9BAD: 8F899D7E STA $7E9D89 C3/9BB1: 60 RTS Get Hat's equippable chars C3/9BB2: A600 LDX $00 (Load X with $00) C3/9BB4: 9B TXY (Copy X to Y) C3/9BB5: 7B TDC (Clear A) C3/9BB6: B96918 LDA $1869,Y (Load inventory item Y) C3/9BB9: C9FF CMP #$FF (Is it the "empty" item?) C3/9BBB: F022 BEQ $9BDF (If so, branch -> do the next item) C3/9BBD: 202183 JSR $8321 (Otherwise, do this function (multiplies by 30)) C3/9BC0: AE3421 LDX $2134 (Load up X with the result [index * 30]) C3/9BC3: BF0050D8 LDA $D85000,X (Load item type X) C3/9BC7: 2907 AND #$07 (Zero out the upper nibble) C3/9BC9: C904 CMP #$04 (Is it a hat? [type 4 item]) C3/9BCB: D012 BNE $9BDF (If not, branch -> do the next item) C3/9BCD: C220 REP #$20 (16 bit memory/accum.) C3/9BCF: BF0150D8 LDA $D85001,X (Load equippable chars X) C3/9BD3: 24E7 BIT $E7 C3/9BD5: F008 BEQ $9BDF C3/9BD7: E220 SEP #$20 (8 bit memory/accum.) C3/9BD9: 98 TYA C3/9BDA: 8D8021 STA $2180 C3/9BDD: E6E0 INC $E0 C3/9BDF: E220 SEP #$20 (8 bit memory/accum.) C3/9BE1: C8 INY C3/9BE2: C0FF00 CPY #$00FF C3/9BE5: D0CE BNE $9BB5 C3/9BE7: A5E0 LDA $E0 C3/9BE9: 8F899D7E STA $7E9D89 C3/9BED: 60 RTS Get Armor's equippable chars C3/9BEE: A600 LDX $00 (Load X with $00) C3/9BF0: 9B TXY (Copy X to Y) C3/9BF1: 7B TDC (Clear A) C3/9BF2: B96918 LDA $1869,Y (Load inventory item Y) C3/9BF5: C9FF CMP #$FF (Is it the "empty" item?) C3/9BF7: F022 BEQ $9C1B (If it is, branch -> do the next item) C3/9BF9: 202183 JSR $8321 (Else, multiply index by 30) C3/9BFC: AE3421 LDX $2134 (Get the result) C3/9BFF: BF0050D8 LDA $D85000,X (Load item type X) C3/9C03: 2907 AND #$07 (Zero out upper nibble) C3/9C05: C902 CMP #$02 (Is it an armor? [type 2 item]) C3/9C07: D012 BNE $9C1B (If not, branch -> do the next item) C3/9C09: C220 REP #$20 (16 bit memory/accum.) C3/9C0B: BF0150D8 LDA $D85001,X (Load equippable chars X) C3/9C0F: 24E7 BIT $E7 C3/9C11: F008 BEQ $9C1B C3/9C13: E220 SEP #$20 (8 bit memory/accum.) C3/9C15: 98 TYA C3/9C16: 8D8021 STA $2180 C3/9C19: E6E0 INC $E0 C3/9C1B: E220 SEP #$20 (8 bit memory/accum.) C3/9C1D: C8 INY C3/9C1E: C0FF00 CPY #$00FF C3/9C21: D0CE BNE $9BF1 C3/9C23: A5E0 LDA $E0 C3/9C25: 8F899D7E STA $7E9D89 C3/9C29: 60 RTS C3/9C2A: A600 LDX $00 C3/9C2C: A9FF LDA #$FF C3/9C2E: 9F8A9D7E STA $7E9D8A,X C3/9C32: E8 INX C3/9C33: E00900 CPX #$0009 C3/9C36: D0F6 BNE $9C2E (output nine FFs to the list. we'll default to those if there are no valid equipment options, or if all the valid equipment isn't compatible with Optimum [Atma Weapon is one example]. note that FF means we'll be using item *slot* #255, which SHOULD hold the Empty item #255.) (but there are ten items incompatible with Optimum.. why not output 11 FFs, you ask? my guess is that because 3 of the incompatible items are Helmets/Armor, we'll never be outputting more than 7 such items to a single list [that figure can be reached in the routine that outputs both Weapons and Shields to the list]. if 9+ pieces of equipment get output to this list, we'll lose our fallback FFhs. however, we don't care, because we'll also *know* that there are at least 2 pieces of equippable gear [9 - 7 = 2] compatible with Optimum.) C3/9C38: A28A9D LDX #$9D8A C3/9C3B: 8E8121 STX $2181 C3/9C3E: 64E0 STZ $E0 C3/9C40: 60 RTS Setup equippability word C3/9C41: 20F293 JSR $93F2 C3/9C44: 7B TDC C3/9C45: B90000 LDA $0000,Y (character ID) C3/9C48: 0A ASL A C3/9C49: AA TAX C3/9C4A: C220 REP #$20 (16 bit memory/accum.) C3/9C4C: BF679CC3 LDA $C39C67,X (A <- 2^X) C3/9C50: 85E7 STA $E7 (Store this value to $E7) C3/9C52: E220 SEP #$20 (8 bit memory/accum.) C3/9C54: ADD811 LDA $11D8 C3/9C57: 2920 AND #$20 (Check the "heavy equipment" bit) C3/9C59: F00B BEQ $9C66 (Exit if it's not set) C3/9C5B: C220 REP #$20 (16 bit memory/accum.) C3/9C5D: A5E7 LDA $E7 (Load $E7) C3/9C5F: 090080 ORA #$8000 (Set the high bit (heavy equipment bit)) C3/9C62: 85E7 STA $E7 (Update $E7) C3/9C64: E220 SEP #$20 (8 bit memory/accum.) C3/9C66: 60 RTS Data: C3/9C67: 0100 C3/9C69: 0200 C3/9C6B: 0400 C3/9C6D: 0800 C3/9C6F: 1000 C3/9C71: 2000 C3/9C73: 4000 C3/9C75: 8000 C3/9C77: 0001 C3/9C79: 0002 C3/9C7B: 0004 C3/9C7D: 0008 C3/9C7F: 0010 C3/9C81: 0020 C3/9C83: 0040 C3/9C85: 0080 Clear out "preview" stats for equip screen C3/9C87: 7B TDC (set A to 0) C3/9C88: AA TAX (set X to 0) C3/9C89: A00900 LDY #$0009 (9 stats to do) C3/9C8C: C220 REP #$20 (16 bit memory/accum.) C3/9C8E: 9FBF7C7E STA $7E7CBF,X (clear out hundreds digit) C3/9C92: E8 INX C3/9C93: E8 INX C3/9C94: 9FBF7C7E STA $7E7CBF,X (clear out tens digit) C3/9C98: E8 INX C3/9C99: E8 INX C3/9C9A: 9FBF7C7E STA $7E7CBF,X (clear out ones digit) C3/9C9E: E8 INX C3/9C9F: E8 INX C3/9CA0: 8A TXA C3/9CA1: 18 CLC C3/9CA2: 697A00 ADC #$007A (next row, after all of the increments 0x80 will have been added total) C3/9CA5: AA TAX C3/9CA6: 88 DEY C3/9CA7: D0E5 BNE $9C8E (branch if we haven't done all 9 stats) C3/9CA9: E220 SEP #$20 (8 bit memory/accum.) C3/9CAB: 60 RTS C3/9CAC: AF899D7E LDA $7E9D89 C3/9CB0: F02B BEQ $9CDD C3/9CB2: 20F783 JSR $83F7 C3/9CB5: 7B TDC C3/9CB6: AF899D7E LDA $7E9D89 C3/9CBA: C909 CMP #$09 C3/9CBC: 9002 BCC $9CC0 C3/9CBE: A909 LDA #$09 C3/9CC0: A8 TAY C3/9CC1: 5A PHY C3/9CC2: 20E29C JSR $9CE2 C3/9CC5: E6E5 INC $E5 C3/9CC7: A5E6 LDA $E6 C3/9CC9: 1A INC A C3/9CCA: 1A INC A C3/9CCB: 291F AND #$1F C3/9CCD: 85E6 STA $E6 C3/9CCF: 7A PLY C3/9CD0: 88 DEY C3/9CD1: D0EE BNE $9CC1 C3/9CD3: C220 REP #$20 (16 bit memory/accum.) C3/9CD5: 7B TDC C3/9CD6: 8FD09B7E STA $7E9BD0 C3/9CDA: E220 SEP #$20 (8 bit memory/accum.) C3/9CDC: 60 RTS C3/9CDD: A527 LDA $27 C3/9CDF: 8526 STA $26 C3/9CE1: 60 RTS C3/9CE2: 204A9A JSR $9A4A C3/9CE5: 7B TDC C3/9CE6: A5E5 LDA $E5 C3/9CE8: 20569A JSR $9A56 C3/9CEB: B004 BCS $9CF1 C3/9CED: A928 LDA #$28 C3/9CEF: 8002 BRA $9CF3 C3/9CF1: A920 LDA #$20 C3/9CF3: 8529 STA $29 C3/9CF5: A5E6 LDA $E6 C3/9CF7: 1A INC A C3/9CF8: A20200 LDX #$0002 C3/9CFB: 209F80 JSR $809F C3/9CFE: C220 REP #$20 (16 bit memory/accum.) C3/9D00: 8A TXA C3/9D01: 8F899E7E STA $7E9E89 C3/9D05: E220 SEP #$20 (8 bit memory/accum.) C3/9D07: 7B TDC C3/9D08: A5E5 LDA $E5 C3/9D0A: A8 TAY C3/9D0B: 20119D JSR $9D11 C3/9D0E: 4CD97F JMP $7FD9 C3/9D11: A28B9E LDX #$9E8B C3/9D14: 8E8121 STX $2181 C3/9D17: AD1242 LDA $4212 C3/9D1A: 2940 AND #$40 (are we in H-blank?) C3/9D1C: F0F9 BEQ $9D17 (branch if not) C3/9D1E: BB TYX C3/9D1F: 7B TDC C3/9D20: BF8A9D7E LDA $7E9D8A,X C3/9D24: A8 TAY C3/9D25: B96918 LDA $1869,Y (Items currently in inventory) C3/9D28: C9FF CMP #$FF (Is it the "empty" item?) C3/9D2A: F023 BEQ $9D4F C3/9D2C: 8D1B21 STA $211B C3/9D2F: 9C1B21 STZ $211B C3/9D32: A90D LDA #$0D C3/9D34: 8D1C21 STA $211C C3/9D37: 8D1C21 STA $211C C3/9D3A: AE3421 LDX $2134 C3/9D3D: A00D00 LDY #$000D (in equip screen, when manually equipping) C3/9D40: BF00B3D2 LDA $D2B300,X (item name) C3/9D44: 8D8021 STA $2180 C3/9D47: E8 INX C3/9D48: 88 DEY C3/9D49: D0F5 BNE $9D40 C3/9D4B: 9C8021 STZ $2180 (end this string) C3/9D4E: 60 RTS C3/9D4F: A00D00 LDY #$000D (write 13 blank spaces) C3/9D52: A9FF LDA #$FF C3/9D54: 8D8021 STA $2180 C3/9D57: 88 DEY C3/9D58: D0FA BNE $9D54 C3/9D5A: 9C8021 STZ $2180 (end this string) C3/9D5D: 60 RTS Put an item into inventory C3/9D5E: 5A PHY C3/9D5F: 85E0 STA $E0 C3/9D61: A400 LDY $00 (Start at zeroth item) C3/9D63: D96918 CMP $1869,Y (Is it this same as an item currently in inventory?) C3/9D66: F022 BEQ $9D8A (If so, branch -> check quantity) C3/9D68: C9FF CMP #$FF (Is it the "empty" item?) C3/9D6A: F029 BEQ $9D95 (If so, branch -> exit) C3/9D6C: C8 INY (Move to the next index) C3/9D6D: C00001 CPY #$0100 (Is it 256 yet?) C3/9D70: D0F1 BNE $9D63 (If not, branch -> do the next item) C3/9D72: A400 LDY $00 (Otherwise, put 0 into Y to start anew) C3/9D74: B96918 LDA $1869,Y (Get this item, currently in inventory, that is correct) C3/9D77: C9FF CMP #$FF (Is it the "empty" item?) C3/9D79: F003 BEQ $9D7E (If so, we got a whole new item) C3/9D7B: C8 INY (Otherwise, increase the index) C3/9D7C: 80F6 BRA $9D74 (And always try again, since we were wrong) C3/9D7E: A901 LDA #$01 (Take a 1) C3/9D80: 996919 STA $1969,Y (And put it into the quantity of items) C3/9D83: A5E0 LDA $E0 C3/9D85: 996918 STA $1869,Y (Items currently in inventory) C3/9D88: 800B BRA $9D95 (Always exit) C3/9D8A: B96919 LDA $1969,Y (Get the quantity of this item) C3/9D8D: C963 CMP #$63 (Is it 99?) C3/9D8F: F004 BEQ $9D95 (If so, branch -> exit) C3/9D91: 1A INC A (Otherwise, increase it by 1) C3/9D92: 996919 STA $1969,Y (Overwrite quantity of items) C3/9D95: 7A PLY C3/9D96: 60 RTS Remove an item from inventory C3/9D97: 5A PHY C3/9D98: 85E0 STA $E0 C3/9D9A: A400 LDY $00 (Start at zeroth item) C3/9D9C: D96918 CMP $1869,Y (Is this the item?) C3/9D9F: F008 BEQ $9DA9 (If it is, branch -> Decrememnt the quantity) C3/9DA1: C8 INY (Otherwise, go to the next item) C3/9DA2: C00001 CPY #$0100 (Is it 256 yet?) C3/9DA5: D0F5 BNE $9D9C (If not, branch -> do the next item) C3/9DA7: 7A PLY C3/9DA8: 60 RTS Decrease the quantity of an inventory item by one C3/9DA9: B96919 LDA $1969,Y (Load the quantity of item) C3/9DAC: C901 CMP #$01 (Is it the last one?) C3/9DAE: F009 BEQ $9DB9 (If so, branch) C3/9DB0: B96919 LDA $1969,Y (Load quantity of item) C3/9DB3: 3A DEC A (Decrease it by one) C3/9DB4: 996919 STA $1969,Y (Store updated quantity of item) C3/9DB7: 8009 BRA $9DC2 (Branch to exit) C3/9DB9: 7B TDC (Set A to zero) C3/9DBA: 996919 STA $1969,Y (Store that as the updated quantity of item) C3/9DBD: A9FF LDA #$FF (Load the "empty" item) C3/9DBF: 996918 STA $1869,Y (Store it as an items currently in inventory) C3/9DC2: 7A PLY C3/9DC3: 60 RTS C3/9DC4: A902 LDA #$02 C3/9DC6: A0DD9D LDY #$9DDD C3/9DC9: 207311 JSR $1173 (put C3/9DDD in the queue) C3/9DCC: C220 REP #$20 (16 bit memory/accum.) C3/9DCE: A555 LDA $55 C3/9DD0: 9FCA337E STA $7E33CA,X C3/9DD4: A557 LDA $57 C3/9DD6: 9F4A347E STA $7E344A,X C3/9DDA: E220 SEP #$20 (8 bit memory/accum.) C3/9DDC: 60 RTS C3/9DDD: AA TAX C3/9DDE: 7CE19D JMP ($9DE1,X) C3/9DE1: E59D C3/9DE3: 009E C3/9DE5: A62D LDX $2D C3/9DE7: A901 LDA #$01 C3/9DE9: 0446 TSB $46 C3/9DEB: C220 REP #$20 (16 bit memory/accum.) C3/9DED: A98D08 LDA #$088D C3/9DF0: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/9DF3: E220 SEP #$20 (8 bit memory/accum.) C3/9DF5: A9C3 LDA #$C3 C3/9DF7: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/9DFA: 200612 JSR $1206 C3/9DFD: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/9E00: A546 LDA $46 C3/9E02: 8901 BIT #$01 C3/9E04: F007 BEQ $9E0D C3/9E06: A62D LDX $2D C3/9E08: 202112 JSR $1221 (draw the sprites!) C3/9E0B: 38 SEC (not done with this queue yet) C3/9E0C: 60 RTS C3/9E0D: 18 CLC (this queue can be removed) C3/9E0E: 60 RTS C3/9E0F: 20239E JSR $9E23 C3/9E12: 8023 BRA $9E37 C3/9E14: 20379E JSR $9E37 C3/9E17: AD1E02 LDA $021E (load 0-60 frame count) C3/9E1A: 2901 AND #$01 (are we on an odd frame? LSR A...) C3/9E1C: F002 BEQ $9E20 (branch if not, BCC...) C3/9E1E: 8003 BRA $9E23 C3/9E20: 4C91A9 JMP $A991 C3/9E23: A00040 LDY #$4000 C3/9E26: 841B STY $1B C3/9E28: A04978 LDY #$7849 C3/9E2B: 841D STY $1D C3/9E2D: A97E LDA #$7E C3/9E2F: 851F STA $1F C3/9E31: A08008 LDY #$0880 C3/9E34: 8419 STY $19 C3/9E36: 60 RTS C3/9E37: A00000 LDY #$0000 (LDY $00...) C3/9E3A: 8414 STY $14 C3/9E3C: A04938 LDY #$3849 C3/9E3F: 8416 STY $16 C3/9E41: A97E LDA #$7E C3/9E43: 8518 STA $18 C3/9E45: A00008 LDY #$0800 C3/9E48: 8412 STY $12 C3/9E4A: 60 RTS C3/9E4B: 20509E JSR $9E50 C3/9E4E: 801F BRA $9E6F C3/9E50: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/9E53: 20086A JSR $6A08 C3/9E56: 644A STZ $4A C3/9E58: 6449 STZ $49 C3/9E5A: A910 LDA #$10 C3/9E5C: 0445 TSB $45 C3/9E5E: 6499 STZ $99 C3/9E60: 20991B JSR $1B99 C3/9E63: 20B694 JSR $94B6 C3/9E66: 20BD8E JSR $8EBD C3/9E69: 20C68E JSR $8EC6 C3/9E6C: 4CB007 JMP $07B0 (finger OAM initiating) C3/9E6F: 206A90 JSR $906A C3/9E72: A901 LDA #$01 C3/9E74: 8526 STA $26 C3/9E76: A959 LDA #$59 C3/9E78: 8527 STA $27 (queue up to execute at C3/9EB8) C3/9E7A: 4C4135 JMP $3541 C3/9E7D: 20999E JSR $9E99 C3/9E80: 204F96 JSR $964F C3/9E83: 20A89E JSR $9EA8 C3/9E86: A95A LDA #$5A C3/9E88: 4CB39E JMP $9EB3 (BRA...) C3/9E8B: 20999E JSR $9E99 C3/9E8E: 205696 JSR $9656 C3/9E91: 20A89E JSR $9EA8 C3/9E94: A95C LDA #$5C C3/9E96: 4CB39E JMP $9EB3 (BRA...) C3/9E99: 20509E JSR $9E50 C3/9E9C: 206A90 JSR $906A C3/9E9F: 20379E JSR $9E37 C3/9EA2: 20239E JSR $9E23 C3/9EA5: 4C1496 JMP $9614 C3/9EA8: 20D58E JSR $8ED5 C3/9EAB: 20DE8E JSR $8EDE C3/9EAE: A901 LDA #$01 C3/9EB0: 8526 STA $26 C3/9EB2: 60 RTS C3/9EB3: 8527 STA $27 C3/9EB5: 4C4135 JMP $3541 DP $26 is #$59 - "EQUIP REMOVE" in relic menu C3/9EB8: 20239E JSR $9E23 C3/9EBB: 200C96 JSR $960C C3/9EBE: 205C90 JSR $905C C3/9EC1: 20C38E JSR $8EC3 C3/9EC4: A508 LDA $08 C3/9EC6: 8980 BIT #$80 (is A being pressed?) C3/9EC8: F006 BEQ $9ED0 (branch if not) C3/9ECA: 20B20E JSR $0EB2 (makes the click sound) C3/9ECD: 4CCF9F JMP $9FCF C3/9ED0: A509 LDA $09 C3/9ED2: 8980 BIT #$80 (is B being pressed?) C3/9ED4: F006 BEQ $9EDC (branch if not) C3/9ED6: 20A90E JSR $0EA9 C3/9ED9: 20EB9E JSR $9EEB C3/9EDC: 20E69E JSR $9EE6 C3/9EDF: A958 LDA #$58 C3/9EE1: 85E0 STA $E0 C3/9EE3: 4C2220 JMP $2022 C3/9EE6: A526 LDA $26 C3/9EE8: 85D1 STA $D1 C3/9EEA: 60 RTS C3/9EEB: 201091 JSR $9110 C3/9EEE: 20F293 JSR $93F2 C3/9EF1: B90000 LDA $0000,Y C3/9EF4: C90D CMP #$0D (Is it Umaro?) C3/9EF6: F007 BEQ $9EFF (branch if so) C3/9EF8: 205C9F JSR $9F5C C3/9EFB: A599 LDA $99 C3/9EFD: D007 BNE $9F06 C3/9EFF: A904 LDA #$04 C3/9F01: 8527 STA $27 (fade out) C3/9F03: 6426 STZ $26 (queue up to execute at C3/1A8A, initiate the main menu) C3/9F05: 60 RTS C3/9F06: A906 LDA #$06 C3/9F08: 1446 TRB $46 C3/9F0A: 20379E JSR $9E37 C3/9F0D: 20239E JSR $9E23 C3/9F10: 201C9F JSR $9F1C C3/9F13: A9F0 LDA #$F0 C3/9F15: 8522 STA $22 C3/9F17: A96C LDA #$6C C3/9F19: 8526 STA $26 (queue up to execute at C3/9FB1) C3/9F1B: 60 RTS C3/9F1C: 205D96 JSR $965D C3/9F1F: A00FA4 LDY #$A40F C3/9F22: 20F902 JSR $02F9 ("Equipment changed") C3/9F25: AD4E1D LDA $1D4E C3/9F28: 2910 AND #$10 C3/9F2A: F018 BEQ $9F44 C3/9F2C: A96E LDA #$6E C3/9F2E: 8527 STA $27 C3/9F30: A5D1 LDA $D1 C3/9F32: C959 CMP #$59 C3/9F34: F007 BEQ $9F3D ("Empty"'s position is different based on the branch) C3/9F36: A0FDA3 LDY #$A3FD C3/9F39: 20F902 JSR $02F9 ("Empty") C3/9F3C: 60 RTS C3/9F3D: A0EBA3 LDY #$A3EB C3/9F40: 20F902 JSR $02F9 ("Empty") C3/9F43: 60 RTS C3/9F44: A96D LDA #$6D C3/9F46: 8527 STA $27 C3/9F48: A5D1 LDA $D1 C3/9F4A: C959 CMP #$59 C3/9F4C: F007 BEQ $9F55 ("Optimum"'s position is different based on the branch) C3/9F4E: A005A4 LDY #$A405 C3/9F51: 20F902 JSR $02F9 ("Optimum") C3/9F54: 60 RTS C3/9F55: A0F3A3 LDY #$A3F3 C3/9F58: 20F902 JSR $02F9 ("Optimum") C3/9F5B: 60 RTS C3/9F5C: 20F293 JSR $93F2 C3/9F5F: B92300 LDA $0023,Y (load accessory slot 1) C3/9F62: C5B0 CMP $B0 C3/9F64: D009 BNE $9F6F C3/9F66: B92400 LDA $0024,Y (load accessory slot 2) C3/9F69: C5B1 CMP $B1 C3/9F6B: D002 BNE $9F6F C3/9F6D: 803A BRA $9FA9 C3/9F6F: A5B0 LDA $B0 C3/9F71: C9D1 CMP #$D1 (is it the Genji Glove?) C3/9F73: F037 BEQ $9FAC (branch if so) C3/9F75: C9D0 CMP #$D0 (is it the Gauntlet?) C3/9F77: F033 BEQ $9FAC (branch if so) C3/9F79: C9DA CMP #$DA (is it the Merit Award?) C3/9F7B: F02F BEQ $9FAC (branch if so) C3/9F7D: A5B1 LDA $B1 C3/9F7F: C9D1 CMP #$D1 (is it the Genji Glove?) C3/9F81: F029 BEQ $9FAC (branch if so) C3/9F83: C9D0 CMP #$D0 (is it the Gauntlet?) C3/9F85: F025 BEQ $9FAC (branch if so) C3/9F87: C9DA CMP #$DA (is it the Merit Award?) C3/9F89: F021 BEQ $9FAC (branch if so) C3/9F8B: B92300 LDA $0023,Y (load accessory slot 1) C3/9F8E: C9D1 CMP #$D1 (is it the Genji Glove?) C3/9F90: F01A BEQ $9FAC (branch if so) C3/9F92: C9D0 CMP #$D0 (is it the Gauntlet?) C3/9F94: F016 BEQ $9FAC (branch if so) C3/9F96: C9DA CMP #$DA (is it the Merit Award?) C3/9F98: F012 BEQ $9FAC (branch if so) C3/9F9A: B92400 LDA $0024,Y (load accessory slot 2) C3/9F9D: C9D1 CMP #$D1 (is it the Genji Glove?) C3/9F9F: F00B BEQ $9FAC (branch if so) C3/9FA1: C9D0 CMP #$D0 (is it the Gauntlet?) C3/9FA3: F007 BEQ $9FAC (branch if so) C3/9FA5: C9DA CMP #$DA (is it the Merit Award?) C3/9FA7: F003 BEQ $9FAC (branch if so) C3/9FA9: 6499 STZ $99 C3/9FAB: 60 RTS C3/9FAC: A901 LDA #$01 C3/9FAE: 8599 STA $99 C3/9FB0: 60 RTS C3/9FB1: A522 LDA $22 C3/9FB3: D003 BNE $9FB8 C3/9FB5: 6426 STZ $26 C3/9FB7: 60 RTS C3/9FB8: C622 DEC $22 C3/9FBA: A508 LDA $08 C3/9FBC: 8910 BIT #$10 C3/9FBE: D00C BNE $9FCC C3/9FC0: A508 LDA $08 C3/9FC2: 8920 BIT #$20 C3/9FC4: D006 BNE $9FCC C3/9FC6: A509 LDA $09 C3/9FC8: 8980 BIT #$80 (is B being pressed?) C3/9FCA: F002 BEQ $9FCE (branch if not) C3/9FCC: 6426 STZ $26 C3/9FCE: 60 RTS C3/9FCF: 7B TDC C3/9FD0: A54B LDA $4B C3/9FD2: 0A ASL A C3/9FD3: AA TAX C3/9FD4: 7CD79F JMP ($9FD7,X) C3/9FD7: DB9F C3/9FD9: EC9F C3/9FDB: 201496 JSR $9614 C3/9FDE: 204F96 JSR $964F C3/9FE1: 20D58E JSR $8ED5 C3/9FE4: 20DE8E JSR $8EDE C3/9FE7: A95A LDA #$5A C3/9FE9: 8526 STA $26 C3/9FEB: 60 RTS C3/9FEC: 201496 JSR $9614 C3/9FEF: 205696 JSR $9656 C3/9FF2: 20D58E JSR $8ED5 C3/9FF5: 20DE8E JSR $8EDE C3/9FF8: A95C LDA #$5C C3/9FFA: 8526 STA $26 C3/9FFC: 60 RTS C3/9FFD: 20149E JSR $9E14 C3/A000: 20DB8E JSR $8EDB C3/A003: A508 LDA $08 C3/A005: 8980 BIT #$80 (is A being pressed?) C3/A007: F02A BEQ $A033 (branch if not, BPL...) C3/A009: 20B20E JSR $0EB2 (makes the click sound) C3/A00C: A54E LDA $4E C3/A00E: 855F STA $5F C3/A010: A95B LDA #$5B C3/A012: 8526 STA $26 C3/A014: 2051A0 JSR $A051 C3/A017: 2050A1 JSR $A150 C3/A01A: 20EB9A JSR $9AEB C3/A01D: A95A LDA #$5A C3/A01F: 8527 STA $27 C3/A021: 20156A JSR $6A15 C3/A024: 206813 JSR $1368 (trigger NMI) C3/A027: 20AC9C JSR $9CAC C3/A02A: 203392 JSR $9233 C3/A02D: 20239E JSR $9E23 C3/A030: 4C6813 JMP $1368 (trigger NMI) C3/A033: A509 LDA $09 C3/A035: 8980 BIT #$80 (is B being pressed?) C3/A037: F00E BEQ $A047 (branch if not, BPL...) C3/A039: 20A90E JSR $0EA9 C3/A03C: 20BD8E JSR $8EBD C3/A03F: 20C68E JSR $8EC6 C3/A042: A959 LDA #$59 C3/A044: 8526 STA $26 C3/A046: 60 RTS C3/A047: 20E69E JSR $9EE6 C3/A04A: A979 LDA #$79 C3/A04C: 85E0 STA $E0 C3/A04E: 4C2220 JMP $2022 C3/A051: 202A9C JSR $9C2A C3/A054: 20419C JSR $9C41 C3/A057: A920 LDA #$20 C3/A059: 8529 STA $29 (set text color to white) C3/A05B: A600 LDX $00 C3/A05D: 9B TXY C3/A05E: 7B TDC C3/A05F: B96918 LDA $1869,Y (Load the index of inventory item Y) C3/A062: C9FF CMP #$FF (Is it the "empty" item?) C3/A064: F022 BEQ $A088 C3/A066: 202183 JSR $8321 (Multipy the index by 30) C3/A069: AE3421 LDX $2134 (Load X with the result) C3/A06C: BF0050D8 LDA $D85000,X (Load item type X) C3/A070: 2907 AND #$07 (Zero out the upper nibble) C3/A072: C905 CMP #$05 (Is it a relic [item type 5]?) C3/A074: D012 BNE $A088 (If it's not, branch -> do the next item) C3/A076: C220 REP #$20 (16 bit memory/accum.) C3/A078: BF0150D8 LDA $D85001,X (Load equippable chars X) C3/A07C: 24E7 BIT $E7 C3/A07E: F008 BEQ $A088 C3/A080: E220 SEP #$20 (8 bit memory/accum.) C3/A082: 98 TYA C3/A083: 8D8021 STA $2180 C3/A086: E6E0 INC $E0 C3/A088: E220 SEP #$20 (8 bit memory/accum.) C3/A08A: C8 INY C3/A08B: C00001 CPY #$0100 C3/A08E: D0CE BNE $A05E C3/A090: A5E0 LDA $E0 C3/A092: 8F899D7E STA $7E9D89 C3/A096: 60 RTS C3/A097: A910 LDA #$10 C3/A099: 1445 TRB $45 C3/A09B: 20149E JSR $9E14 C3/A09E: 20D39A JSR $9AD3 C3/A0A1: 203392 JSR $9233 C3/A0A4: 20D8A1 JSR $A1D8 C3/A0A7: A508 LDA $08 C3/A0A9: 8980 BIT #$80 (are you pressing A?) C3/A0AB: F02F BEQ $A0DC (branch if not, BPL...) C3/A0AD: 20B20E JSR $0EB2 (makes the click sound) C3/A0B0: 20F293 JSR $93F2 C3/A0B3: C221 REP #$21 C3/A0B5: 98 TYA C3/A0B6: E220 SEP #$20 (8 bit memory/accum.) C3/A0B8: 655F ADC $5F C3/A0BA: A8 TAY C3/A0BB: B92300 LDA $0023,Y C3/A0BE: C9FF CMP #$FF C3/A0C0: F003 BEQ $A0C5 C3/A0C2: 205E9D JSR $$9D5E (Put item into inventory) C3/A0C5: 7B TDC C3/A0C6: A54B LDA $4B C3/A0C8: AA TAX C3/A0C9: BF8A9D7E LDA $7E9D8A,X C3/A0CD: AA TAX C3/A0CE: BD6918 LDA $1869,X (Items currently in inventory) C3/A0D1: 992300 STA $0023,Y (Store to relic slot 1) C3/A0D4: 20979D JSR $9D97 (Remove item from inventory) C3/A0D7: 203191 JSR $9131 C3/A0DA: 8009 BRA $A0E5 C3/A0DC: A509 LDA $09 C3/A0DE: 8980 BIT #$80 (are you pressing B?) C3/A0E0: F027 BEQ $A109 (branch if not, BPL...) C3/A0E2: 20A90E JSR $0EA9 C3/A0E5: A910 LDA #$10 C3/A0E7: 0445 TSB $45 C3/A0E9: 20879C JSR $9C87 C3/A0EC: C220 REP #$20 (16 bit memory/accum.) C3/A0EE: A90001 LDA #$0100 C3/A0F1: 8FD09B7E STA $7E9BD0 C3/A0F5: E220 SEP #$20 (8 bit memory/accum.) C3/A0F7: A9C1 LDA #$C1 C3/A0F9: 1446 TRB $46 C3/A0FB: 20D58E JSR $8ED5 C3/A0FE: A55F LDA $5F C3/A100: 854E STA $4E C3/A102: 20DE8E JSR $8EDE C3/A105: A95A LDA #$5A C3/A107: 8526 STA $26 C3/A109: 60 RTS C3/A10A: 20239E JSR $9E23 C3/A10D: 20DB8E JSR $8EDB C3/A110: A508 LDA $08 C3/A112: 8980 BIT #$80 (are you pressing A?) C3/A114: F01C BEQ $A132 (branch if not, BPL...) C3/A116: 20B20E JSR $0EB2 (makes the click sound) C3/A119: 20F293 JSR $93F2 C3/A11C: C221 REP #$21 C3/A11E: 98 TYA C3/A11F: E220 SEP #$20 (8 bit memory/accum.) C3/A121: 654B ADC $4B C3/A123: A8 TAY C3/A124: B92300 LDA $0023,Y C3/A127: 205E9D JSR $9D5E (Put item into inventory) C3/A12A: A9FF LDA #$FF C3/A12C: 992300 STA $0023,Y C3/A12F: 203191 JSR $9131 C3/A132: A509 LDA $09 C3/A134: 8980 BIT #$80 (are you pressing B?) C3/A136: F00E BEQ $A146 (branch if not, BPL...) C3/A138: 20A90E JSR $0EA9 C3/A13B: 20BD8E JSR $8EBD C3/A13E: 20C68E JSR $8EC6 C3/A141: A959 LDA #$59 C3/A143: 8526 STA $26 C3/A145: 60 RTS C3/A146: 20E69E JSR $9EE6 C3/A149: A97A LDA #$7A C3/A14B: 85E0 STA $E0 C3/A14D: 4C2220 JMP $2022 C3/A150: A28DAC LDX #$AC8D C3/A153: 8E8121 STX $2181 C3/A156: AF899D7E LDA $7E9D89 (Number of items under consideration) C3/A15A: F02A BEQ $A186 (Exit if it's zero) C3/A15C: C901 CMP #$01 (Is it just one?) C3/A15E: F026 BEQ $A186 (Exit if it is) C3/A160: 85E7 STA $E7 (Store the number to $E7) C3/A162: 64E8 STZ $E8 (Set $E8 to zero) C3/A164: 7B TDC (Set A to zero) C3/A165: AA TAX (Set X to zero) C3/A166: A8 TAY (Set Y to zero) C3/A167: BF8A9D7E LDA $7E9D8A,X (Load the Xth entry from our list) C3/A16B: DA PHX (Push X [the place in our eligible equipment list]) C3/A16C: A8 TAY (Transfer the id of the item at X into Y) C3/A16D: B96918 LDA $1869,Y (Load inventory item Y) C3/A170: 202183 JSR $8321 (Multiply the index by 30 to get its stats out of the data table) C3/A173: AE3421 LDX $2134 (Load the result) C3/A176: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/A17A: 8D8021 STA $2180 (Store that value out) C3/A17D: FA PLX (Restore the place in the eligible equipment list) C3/A17E: E8 INX (Move up to the next place) C3/A17F: E4E7 CPX $E7 (Are we at the last one?) C3/A181: D0E4 BNE $A167 (Branch back if not) C3/A183: 2087A1 JSR $A187 C3/A186: 60 RTS C3/A187: C6E7 DEC $E7 (Decrement $E7 [the length of the list under consideration]) C3/A189: 8B PHB (Save the data bank register) C3/A18A: A97E LDA #$7E (Load #$7E...) C3/A18C: 48 PHA (Put it on the stack) C3/A18D: AB PLB (Pull it into the DBR) C3/A18E: 7B TDC (Set A to zero) C3/A18F: A8 TAY (Set Y to zero) C3/A190: 7B TDC (Set A to zero) C3/A191: AA TAX (Set X to zero) C3/A192: BD8DAC LDA $AC8D,X C3/A195: DD8EAC CMP $AC8E,X C3/A198: B01D BCS $A1B7 C3/A19A: 85E0 STA $E0 C3/A19C: BD8A9D LDA $9D8A,X C3/A19F: 85E1 STA $E1 C3/A1A1: BD8EAC LDA $AC8E,X C3/A1A4: 9D8DAC STA $AC8D,X C3/A1A7: BD8B9D LDA $9D8B,X C3/A1AA: 9D8A9D STA $9D8A,X C3/A1AD: A5E0 LDA $E0 C3/A1AF: 9D8EAC STA $AC8E,X C3/A1B2: A5E1 LDA $E1 C3/A1B4: 9D8B9D STA $9D8B,X C3/A1B7: E8 INX C3/A1B8: E4E7 CPX $E7 C3/A1BA: D0D6 BNE $A192 C3/A1BC: C8 INY C3/A1BD: C4E7 CPY $E7 C3/A1BF: D0CF BNE $A190 C3/A1C1: AB PLB (Restore the data bank register) C3/A1C2: 60 RTS C3/A1C3: 200883 JSR $8308 C3/A1C6: 20F293 JSR $93F2 C3/A1C9: A54B LDA $4B C3/A1CB: D005 BNE $A1D2 C3/A1CD: B92300 LDA $0023,Y C3/A1D0: 8003 BRA $A1D5 C3/A1D2: B92400 LDA $0024,Y C3/A1D5: 4C3857 JMP $5738 C3/A1D8: 200883 JSR $8308 C3/A1DB: 7B TDC C3/A1DC: A54B LDA $4B C3/A1DE: AA TAX C3/A1DF: BF8A9D7E LDA $7E9D8A,X C3/A1E3: AA TAX C3/A1E4: BD6918 LDA $1869,X (Items currently in inventory) C3/A1E7: 4C3857 JMP $5738 Data, we think... C3/A1EA: 1AA2 C3/A1EC: 1FA2 C3/A1EE: 25A2 AND $A2 C3/A1F0: 2B PLD C3/A1F1: A231A2 LDX #$A231 C3/A1F4: 37A2 AND [$A2],Y C3/A1F6: 3DA242 AND $42A2,X C3/A1F9: A248A2 LDX #$A248 C3/A1FC: 4EA254 LSR $54A2 C3/A1FF: A25AA2 LDX #$A25A C3/A202: 60 RTS C3/A203: A265A2 LDX #$A265 C3/A206: 6B RTL C3/A207: A271A2 LDX #$A271 C3/A20A: 77A2 ADC [$A2],Y C3/A20C: 7DA283 ADC $83A2,X C3/A20F: A288A2 LDX #$A288 C3/A212: 8EA294 STX $94A2 C3/A215: A29AA2 LDX #$A29A C3/A218: A0A24F LDY #$4FA2 C3/A21B: 399F2D AND $2D9F,Y C3/A21E: 006B BRK #$6B C3/A220: 39633F AND $3F63,Y C3/A223: A900 LDA #$00 C3/A225: CF398B7F CMP $7F8B39 C3/A229: 9D00EB STA $EB00,X C3/A22C: 396BA7 AND $A76B,Y C3/A22F: 3F004F3A AND $3A4F00,X C3/A233: 8A TXA C3/A234: 6E5400 ROR $0054 C3/A237: 6B RTL C3/A238: 3A DEC A C3/A239: 8A TXA C3/A23A: 6E5500 ROR $0055 C3/A23D: 4F3B9F2D EOR $2D9F3B C3/A241: 006B BRK #$6B C3/A243: 3B TSC C3/A244: 633F ADC $3F,S C3/A246: A900 LDA #$00 C3/A248: CF3B8B7F CMP $7F8B3B C3/A24C: 9D00EB STA $EB00,X C3/A24F: 3B TSC C3/A250: 6B RTL C3/A251: A73F LDA [$3F] C3/A253: 004F BRK #$4F C3/A255: 3C8A6E BIT $6E8A,X C3/A258: 54006B MVN $00,$6B C3/A25B: 3C8A6E BIT $6E8A,X C3/A25E: 5500 EOR $00,X C3/A260: 4F3D9F2D EOR $2D9F3D C3/A264: 006B BRK #$6B C3/A266: 3D633F AND $3F63,X C3/A269: A900 LDA #$00 C3/A26B: CF3D8B7F CMP $7F8B3D C3/A26F: 9D00EB STA $EB00,X C3/A272: 3D6BA7 AND $A76B,X C3/A275: 3F004F3E AND $3E4F00,X C3/A279: 8A TXA C3/A27A: 6E5400 ROR $0054 C3/A27D: 6B RTL C3/A27E: 3E8A6E ROL $6E8A,X C3/A281: 5500 EOR $00,X C3/A283: 4F3F9F2D EOR $2D9F3F C3/A287: 006B BRK #$6B C3/A289: 3F633FA9 AND $A93F63,X C3/A28D: 00CF BRK #$CF C3/A28F: 3F8B7F9D AND $9D7F8B,X C3/A293: 00EB BRK #$EB C3/A295: 3F6BA73F AND $3FA76B,X C3/A299: 004F BRK #$4F C3/A29B: 40 RTI C3/A29C: 8A TXA C3/A29D: 6E5400 ROR $0054 C3/A2A0: 6B RTL C3/A2A1: 40 RTI C3/A2A2: 8A TXA C3/A2A3: 6E5500 Pointers to the strings just below this C3/A2A6: 1AA3 C3/A2A8: 22A3 C3/A2AA: 2CA3 C3/A2AC: 34A3 Pointers to the strings just below this C3/A2AE: CCA2 C3/A2B0: D3A2 C3/A2B2: 3CA3 C3/A2B4: 44A3 C3/A2B6: DAA2 C3/A2B8: E2A2 C3/A2BA: 0D7A91C4A19AA79D00 (R-hand) C3/A2C3: 8D7A8BC4A19AA79D00 (L-hand) C3/A2CC: 0D7B879E9A9D00 (Head) C3/A2D3: 8D7B81A89DB200 (Body) C3/A2DA: 0D7B919EA5A29C00 (Relic) C3/A2E2: 8D7B919EA5A29C00 (Relic) C3/A2EA: 0D79FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 C3/A309: 3979849094888F00 (EQUIP) C3/A311: 397991848C8E958400 (REMOVE) C3/A31A: 0D79849094888F00 (EQUIP) C3/A322: 1B798E8F93888C948C00 (OPTIMUM) C3/A32C: 2D79918C8E958400 (RMOVE) C3/A334: 3B79848C8F939800 (EMPTY) C3/A33C: 1179849094888F00 (EQUIP) C3/A344: 1F7991848C8E958400 (REMOVE) Pointers to the strings just below this C3/A34D: 71A3 (for Vigor) C3/A34F: 79A3 (for Stamina) C3/A351: 83A3 C3/A353: 8DA3 C3/A355: 97A3 C3/A357: A1A3 C3/A359: A5A3 C3/A35B: A9A3 C3/A35D: ADA3 C3/A35F: B1A3 C3/A361: B5A3 C3/A363: B9A3 C3/A365: BDA3 C3/A367: C1A3 C3/A369: C5A3 C3/A36B: CDA3 C3/A36D: D7A3 C3/A36F: E1A3 C3/A371: A97C95A2A0A8AB00 (Vigor) C3/A379: A97D92AD9AA6A2A79A00 (Stamina) C3/A383: 297E8C9AA0C58FB0AB00 (Mag.Pwr) C3/A38D: A97F84AF9A9D9EFFCD00 (Evade %) C3/A397: A9808C81A5A89CA4CD00 (MBlock%) C3/A3A1: BD7CD500 (->) C3/A3A5: 3D7DD500 (->) C3/A3A9: BD7DD500 (->) C3/A3AD: 3D7ED500 (->) C3/A3B1: 3D7FD500 (->) C3/A3B5: BD7FD500 (->) C3/A3B9: BD7ED500 (->) C3/A3BD: 3D80D500 (->) C3/A3C1: BD80D500 (->) C3/A3C5: 297D92A99E9E9D00 (Speed) C3/A3CD: A97E819AADC58FB0AB00 (Bat.Pwr) C3/A3D7: 297F839E9F9EA7AC9E00 (Defense) C3/A3E1: 29808C9AA0C5839E9F00 (Mag.Def) C3/A3EB: 237984A6A9ADB200 (Empty) C3/A3F3: 21798EA9ADA2A6AEA600 (Optimum) C3/A3FD: A37984A6A9ADB200 (Empty) C3/A405: A1798EA9ADA2A6AEA600 (Optimum) C3/A40F: 157A84AAAEA2A9A69EA7ADFF9CA19AA7A09E9DC500 (Equipment changed.) Reset timers used for input decoding C3/A424: A908 LDA #$08 (from C3/0006, C3/0105) C3/A426: 8D2902 STA $0229 C3/A429: A903 LDA #$03 C3/A42B: 8D2A02 STA $022A C3/A42E: 8D2602 STA $0226 C3/A431: A920 LDA #$20 C3/A433: 8D2502 STA $0225 C3/A436: AD541D LDA $1D54 C3/A439: 2940 AND #$40 C3/A43B: F004 BEQ $A441 C3/A43D: 20C4A5 JSR $A5C4 C3/A440: 6B RTL C3/A441: 20D1A5 JSR $A5D1 C3/A444: 6B RTL ---------------Decoding the Joypad --------------------------------------------- C3/A445: AD541D LDA $1D54 (from C3/0003) C3/A448: 100E BPL $A458 (branch if not multiplayer) C3/A44A: 7B TDC C3/A44B: AD0102 LDA $0201 (which character is under control now?) C3/A44E: AA TAX C3/A44F: AD4F1D LDA $1D4F (load bitfield with player 2's characters) C3/A452: 3F3DA5C3 AND $C3A53D,X (AND it with 01, 02, 04, or 08) C3/A456: D005 BNE $A45D (if not 0, it's player 2 so branch) C3/A458: AE1842 LDX $4218 (Joypad 1 status register) C3/A45B: 8005 BRA $A462 C3/A45D: AE1A42 LDX $421A (Joypad 2 status register) C3/A460: 8000 BRA $A462 (Pointless) C3/A462: 2083A4 JSR $A483 C3/A465: 20BDA4 JSR $A4BD C3/A468: 20F6A4 JSR $A4F6 (check to see if A is being held) C3/A46B: 4C27A5 JMP $A527 (restore memory and exit) C3/A46E: AE1842 LDX $4218 (Joypad 1 status register) C3/A471: 2083A4 JSR $A483 C3/A474: 20BDA4 JSR $A4BD C3/A477: 4C27A5 JMP $A527 C3/A47A: AE1842 LDX $4218 (Joypad 1 status register; from C3/0009) C3/A47D: 2083A4 JSR $A483 C3/A480: 4C27A5 JMP $A527 C3/A483: A4E0 LDY $E0 (Here, we temporarily store off) C3/A485: 8C1302 STY $0213 (direct memory locations) C3/A488: A4E7 LDY $E7 ($E0, $E7, $E9, and $EB) C3/A48A: 8C1502 STY $0215 (in order to use them to mask) C3/A48D: A4E9 LDY $E9 (out the contents of) C3/A48F: 8C1702 STY $0217 (the joypad status word.) C3/A492: A4EB LDY $EB (etc.) C3/A494: 8C1902 STY $0219 (etc.) C3/A497: 86EB STX $EB (Now $EB contains the joypad status word) C3/A499: C220 REP #$20 (16 bit memory/accum.) C3/A49B: A50C LDA $0C (Load A with $0C [buttons being held?]) C3/A49D: 29F0FF AND #$FFF0 (Clear out unused bits) C3/A4A0: 85E0 STA $E0 (Store it to $E0) C3/A4A2: 2041A5 JSR $A541 C3/A4A5: A50C LDA $0C (Load A with $0C [buttons being held?]) C3/A4A7: 49FFFF EOR #$FFFF (Toggle all bits) C3/A4AA: 2506 AND $06 (Clear out bits not on in $06 [buttons being pressed?]) C3/A4AC: 8508 STA $08 (Store those to $08 [buttons just released?]) C3/A4AE: A406 LDY $06 (Load Y with $06 [buttons being pressed?]) C3/A4B0: 840C STY $0C (Store it to $0C [buttons being held?]) C3/A4B2: AD1842 LDA $4218 (Joypad 1 status register) C3/A4B5: 0D1A42 ORA $421A (Joypad 2 status register) C3/A4B8: 8504 STA $04 (Holds buttons pressed on Joypad 1 OR Joypad 2) C3/A4BA: E220 SEP #$20 (8 bit memory/accum.) C3/A4BC: 60 RTS C3/A4BD: C220 REP #$20 (16 bit memory/accum.) C3/A4BF: A506 LDA $06 (Load A with $06 [buttons being pressed?]) C3/A4C1: 29F0FF AND #$FFF0 (Clear out unsused bits) C3/A4C4: C5E0 CMP $E0 (Compare it to $E0 [buttons that /were/ being held?]) C3/A4C6: E220 SEP #$20 (8 bit memory/accum.) C3/A4C8: D01B BNE $A4E5 (Branch if [pressed != held]?) C3/A4CA: AD2702 LDA $0227 (Load some sort of timer???) C3/A4CD: F005 BEQ $A4D4 (Branch if it's zero) C3/A4CF: CE2702 DEC $0227 (Otherwise, decrement it by 1) C3/A4D2: D01D BNE $A4F1 (Branch if that didn't make it zero) C3/A4D4: CE2802 DEC $0228 ($0227 is now zero, so decrement $0228 by 1) C3/A4D7: D018 BNE $A4F1 (Branch if that didn't make it zero) C3/A4D9: AD2A02 LDA $022A (Load the A with $022A) C3/A4DC: 8D2802 STA $0228 (Store it to $0228, restoring the timer amount???) C3/A4DF: A406 LDY $06 (Load Y with $06 [buttons being pressed?]) C3/A4E1: 840A STY $0A (Store Y to $0A [buttons toggled?]) C3/A4E3: 8010 BRA $A4F5 C3/A4E5: AD2902 LDA $0229 (Load a value from $0229) C3/A4E8: 8D2702 STA $0227 (Store it to $0227) C3/A4EB: AD2A02 LDA $022A (Likewise, take $022A) C3/A4EE: 8D2802 STA $0228 (and store to $0228) C3/A4F1: A408 LDY $08 (Load Y with $08 [buttons just released?]) C3/A4F3: 840A STY $0A (Store Y to $0A [buttons toggled??]) C3/A4F5: 60 RTS Routine exclusive to see if A is being held for an extended length of time C3/A4F6: A506 LDA $06 (Load the pressed button register) C3/A4F8: 8980 BIT #$80 (Check for A button pressed) C3/A4FA: F01B BEQ $A517 (Branch if A not pressed) C3/A4FC: AD2502 LDA $0225 (Load the A button wait to accept input time?) C3/A4FF: F005 BEQ $A506 (Branch if zero to decrement upper byte) C3/A501: CE2502 DEC $0225 (Otherwise, decrement by 1) C3/A504: D01C BNE $A522 (If not zero, branch and exit) C3/A506: CE2602 DEC $0226 (If it was now zero, decrement the upper byte) C3/A509: D017 BNE $A522 (If that's not now zero, branch and exit) C3/A50B: AD2A02 LDA $022A (Otherwise, reset the upper byte to $022A) C3/A50E: 8D2602 STA $0226 (Store back to the upper byte) C3/A511: A980 LDA #$80 (Load 80) C3/A513: 040A TSB $0A (Set A button in buttons toggled byte) C3/A515: 800F BRA $A526 (Branch and exit) C3/A517: A920 LDA #$20 (A button was not pressed, so set wait time to 32) C3/A519: 8D2502 STA $0225 (Store back to lower byte) C3/A51C: AD2A02 LDA $022A (Load master upper byte) C3/A51F: 8D2602 STA $0226 (Store back to uppper byte) C3/A522: A508 LDA $08 (Load just released buttons) C3/A524: 850A STA $0A (Store to toggled buttons) C3/A526: 60 RTS Restore memory and exit C3/A527: AC1302 LDY $0213 (Here, we restore the contents) C3/A52A: 84E0 STY $E0 (of $E0, $E7, $E9, and $EB) C3/A52C: AC1502 LDY $0215 (in preparation of the long) C3/A52F: 84E7 STY $E7 (return.) C3/A531: AC1702 LDY $0217 () C3/A534: 84E9 STY $E9 () C3/A536: AC1902 LDY $0219 () C3/A539: 84EB STY $EB () C3/A53B: 7B TDC C3/A53C: 6B RTL C3/A53D: 0102 C3/A53F: 0408 C3/A541: A5EB LDA $EB (Load Joypad status word) C3/A543: 29000F AND #$0F00 (Filter out all but Up, Down, Left, Right) C3/A546: 8506 STA $06 (Store any of those to $06) C3/A548: A98000 LDA #$0080 (Load a filter for X) C3/A54B: 85E7 STA $E7 (Store that to $E7) C3/A54D: A90080 LDA #$8000 (Load a filter for A) C3/A550: 85E9 STA $E9 (Store that to $E9) C3/A552: A400 LDY $00 (Clear Y Register (Y = 0)) C3/A554: 2081A5 JSR $A581 C3/A557: A94000 LDA #$0040 (Load a filter for Y) C3/A55A: 85E7 STA $E7 (Store that to $E7) C3/A55C: A90040 LDA #$4000 (Load a filter for B) C3/A55F: 85E9 STA $E9 (Store that to $E9) C3/A561: C8 INY (Increment Y register (Y = 1)) C3/A562: 2081A5 JSR $A581 C3/A565: A92000 LDA #$0020 (Load a filter for R) C3/A568: 85E7 STA $E7 (Store that to $E7) C3/A56A: A91000 LDA #$0010 (Load a filter for L) C3/A56D: 85E9 STA $E9 (Store that to $E9) C3/A56F: C8 INY (Increment Y register (Y = 2)) C3/A570: 2081A5 JSR $A581 C3/A573: A90010 LDA #$1000 (Load a filter for Start) C3/A576: 85E7 STA $E7 (Store that to $E7) C3/A578: A90020 LDA #$2000 (Load a filter for Select) C3/A57B: 85E9 STA $E9 (Store that to $E9) C3/A57D: C8 INY (Increment Y register (Y = 3)) C3/A57E: 4C81A5 JMP $A581 (Pointless) C3/A581: A5EB LDA $EB (Load the Joypad status word) C3/A583: 24E7 BIT $E7 (Is the bit designated by the $E7 filter on?) C3/A585: F014 BEQ $A59B (Branch if not) C3/A587: 7B TDC (Clear A) C3/A588: E220 SEP #$20 (8 bit memory/accum.) C3/A58A: B92002 LDA $0220,Y C3/A58D: 29F0 AND #$F0 C3/A58F: C220 REP #$20 (16 bit memory/accum.) C3/A591: 4A LSR A C3/A592: 4A LSR A C3/A593: 4A LSR A C3/A594: AA TAX C3/A595: BFB4A5C3 LDA $C3A5B4,X C3/A599: 0406 TSB $06 (set the coorosponding bit if that button is being pressed) C3/A59B: A5EB LDA $EB (Load the Joypad status word) C3/A59D: 24E9 BIT $E9 (Is the bit designated by the $E9 filter on?) C3/A59F: F012 BEQ $A5B3 (Branch if not) C3/A5A1: 7B TDC (Clear A) C3/A5A2: E220 SEP #$20 (8 bit memory/accum.) C3/A5A4: B92002 LDA $0220,Y C3/A5A7: 290F AND #$0F C3/A5A9: C220 REP #$20 (16 bit memory/accum.) C3/A5AB: 0A ASL A C3/A5AC: AA TAX C3/A5AD: BFB4A5C3 LDA $C3A5B4,X C3/A5B1: 0406 TSB $06 (set the coorosponding bit if that button is being pressed) C3/A5B3: 60 RTS Data: Bits set per joypad button C3/A5B4: 0010 (L button) C3/A5B6: 8000 (B button) C3/A5B8: 0080 (A button) C3/A5BA: 4000 (Y button) C3/A5BC: 0040 (X button) C3/A5BE: 2000 (Select button) C3/A5C0: 1000 (Start button) C3/A5C2: 0020 (R button) These next four aren't listed, but they will be here for simplicity's sake xx/xxxx: 0800 (up) xx/xxxx: 0400 (down) xx/xxxx: 0200 (left) xx/xxxx: 0100 (right) ---------------------------------------------------------------------------------- C3/A5C4: AC501D LDY $1D50 (load custom controls saved in SRAM) C3/A5C6: 8C2002 STY $0220 (save them) C3/A5C9: AC521D LDY $1D52 (load custom controls saved in SRAM) C3/A5CD: 8C2202 STY $0222 (save them) C3/A5D0: 60 RTS C3/A5D1: A01234 LDY #$3412 (load defaults for controls) C3/A5D4: 8C2002 STY $0220 (save them) C3/A5D7: A05606 LDY #$0656 (load defaults for controls) C3/A5DA: 8C2202 STY $0222 (save them) C3/A5DD: 60 RTS C3/A5DE: 7B TDC C3/A5DF: AA TAX C3/A5E0: C220 REP #$20 (16 bit memory/accum.) C3/A5E2: 9F71A27E STA $7EA271,X C3/A5E6: E8 INX C3/A5E7: E8 INX C3/A5E8: 9F71A27E STA $7EA271,X C3/A5EC: E8 INX C3/A5ED: E8 INX C3/A5EE: E04002 CPX #$0240 C3/A5F1: D0EF BNE $A5E2 C3/A5F3: E220 SEP #$20 (8 bit memory/accum.) C3/A5F5: 60 RTS C3/A5F6: 2000A6 JSR $A600 C3/A5F9: A901 LDA #$01 C3/A5FB: 1445 TRB $45 C3/A5FD: 4CAC14 JMP $14AC C3/A600: 841B STY $1B C3/A602: A071A2 LDY #$A271 C3/A605: 841D STY $1D C3/A607: A02001 LDY #$0120 C3/A60A: 8419 STY $19 C3/A60C: A97E LDA #$7E C3/A60E: 851F STA $1F C3/A610: 60 RTS C3/A611: A24978 LDX #$7849 C3/A614: 86EB STX $EB C3/A616: A97E LDA #$7E C3/A618: 85ED STA $ED C3/A61A: A09805 LDY #$0598 C3/A61D: 84E7 STY $E7 C3/A61F: A08005 LDY #$0580 C3/A622: A21024 LDX #$2410 C3/A625: 86E0 STX $E0 C3/A627: 2083A7 JSR $A783 C3/A62A: A0D805 LDY #$05D8 C3/A62D: 84E7 STY $E7 C3/A62F: A0C005 LDY #$05C0 C3/A632: A21124 LDX #$2411 C3/A635: 86E0 STX $E0 C3/A637: 2083A7 JSR $A783 (JMP fool!) C3/A63A: 60 RTS C3/A63B: 20DEA5 JSR $A5DE C3/A63E: 648D STZ $8D C3/A640: 64ED STZ $ED C3/A642: 64EE STZ $EE C3/A644: A906 LDA #$06 C3/A646: 85F1 STA $F1 C3/A648: A600 LDX $00 C3/A64A: BF899E7E LDA $7E9E89,X C3/A64E: 20A9A8 JSR $A8A9 C3/A651: DA PHX C3/A652: 20B1A8 JSR $A8B1 C3/A655: FA PLX C3/A656: E8 INX C3/A657: C6F1 DEC $F1 C3/A659: D0EF BNE $A64A C3/A65B: A08020 LDY #$2080 C3/A65E: 2000A6 JSR $A600 (BRA fool!) C3/A661: 60 RTS C3/A662: A24980 LDX #$8049 C3/A665: 86EB STX $EB C3/A667: A97E LDA #$7E C3/A669: 85ED STA $ED C3/A66B: A0BC00 LDY #$00BC C3/A66E: 84E7 STY $E7 C3/A670: A08400 LDY #$0084 C3/A673: A20035 LDX #$3500 C3/A676: 86E0 STX $E0 C3/A678: 2083A7 JSR $A783 C3/A67B: A0FC00 LDY #$00FC C3/A67E: 84E7 STY $E7 C3/A680: A0C400 LDY #$00C4 C3/A683: A20135 LDX #$3501 C3/A686: 86E0 STX $E0 C3/A688: 2083A7 JSR $A783 C3/A68B: A03C01 LDY #$013C C3/A68E: 84E7 STY $E7 C3/A690: A00401 LDY #$0104 C3/A693: A23835 LDX #$3538 C3/A696: 86E0 STX $E0 C3/A698: 2083A7 JSR $A783 C3/A69B: A07C01 LDY #$017C C3/A69E: 84E7 STY $E7 C3/A6A0: A04401 LDY #$0144 C3/A6A3: A23935 LDX #$3539 C3/A6A6: 86E0 STX $E0 C3/A6A8: 4C83A7 JMP $A783 C3/A6AB: A24978 LDX #$7849 C3/A6AE: 86EB STX $EB C3/A6B0: A97E LDA #$7E C3/A6B2: 85ED STA $ED C3/A6B4: A0BC01 LDY #$01BC C3/A6B7: 84E7 STY $E7 C3/A6B9: A08401 LDY #$0184 C3/A6BC: A20035 LDX #$3500 C3/A6BF: 86E0 STX $E0 C3/A6C1: 2083A7 JSR $A783 C3/A6C4: A0FC01 LDY #$01FC C3/A6C7: 84E7 STY $E7 C3/A6C9: A0C401 LDY #$01C4 C3/A6CC: A20135 LDX #$3501 C3/A6CF: 86E0 STX $E0 C3/A6D1: 2083A7 JSR $A783 C3/A6D4: A03C02 LDY #$023C C3/A6D7: 84E7 STY $E7 C3/A6D9: A00402 LDY #$0204 C3/A6DC: A23835 LDX #$3538 C3/A6DF: 86E0 STX $E0 C3/A6E1: 2083A7 JSR $A783 C3/A6E4: A07C02 LDY #$027C C3/A6E7: 84E7 STY $E7 C3/A6E9: A04402 LDY #$0244 C3/A6EC: A23935 LDX #$3539 C3/A6EF: 86E0 STX $E0 C3/A6F1: 4C83A7 JMP $A783 C3/A6F4: A24978 LDX #$7849 C3/A6F7: 86EB STX $EB C3/A6F9: A97E LDA #$7E C3/A6FB: 85ED STA $ED C3/A6FD: A0BC04 LDY #$04BC C3/A700: 84E7 STY $E7 C3/A702: A08404 LDY #$0484 C3/A705: A20035 LDX #$3500 C3/A708: 86E0 STX $E0 C3/A70A: 2083A7 JSR $A783 C3/A70D: A0FC04 LDY #$04FC C3/A710: 84E7 STY $E7 C3/A712: A0C404 LDY #$04C4 C3/A715: A20135 LDX #$3501 C3/A718: 86E0 STX $E0 C3/A71A: 2083A7 JSR $A783 C3/A71D: A03C05 LDY #$053C C3/A720: 84E7 STY $E7 C3/A722: A00405 LDY #$0504 C3/A725: A23835 LDX #$3538 C3/A728: 86E0 STX $E0 C3/A72A: 2083A7 JSR $A783 C3/A72D: A07C05 LDY #$057C C3/A730: 84E7 STY $E7 C3/A732: A04405 LDY #$0544 C3/A735: A23935 LDX #$3539 C3/A738: 86E0 STX $E0 C3/A73A: 4C83A7 JMP $A783 C3/A73D: A24978 LDX #$7849 C3/A740: 86EB STX $EB C3/A742: A97E LDA #$7E C3/A744: 85ED STA $ED C3/A746: A0BC01 LDY #$01BC C3/A749: 84E7 STY $E7 C3/A74B: A08401 LDY #$0184 C3/A74E: A20035 LDX #$3500 C3/A751: 86E0 STX $E0 C3/A753: 2083A7 JSR $A783 C3/A756: A0FC01 LDY #$01FC C3/A759: 84E7 STY $E7 C3/A75B: A0C401 LDY #$01C4 C3/A75E: A20135 LDX #$3501 C3/A761: 86E0 STX $E0 C3/A763: 2083A7 JSR $A783 C3/A766: A03C02 LDY #$023C C3/A769: 84E7 STY $E7 C3/A76B: A00402 LDY #$0204 C3/A76E: A23835 LDX #$3538 C3/A771: 86E0 STX $E0 C3/A773: 2083A7 JSR $A783 C3/A776: A07C02 LDY #$027C C3/A779: 84E7 STY $E7 C3/A77B: A04402 LDY #$0244 C3/A77E: A23935 LDX #$3539 C3/A781: 86E0 STX $E0 C3/A783: C220 REP #$20 (16 bit memory/accum.) C3/A785: A5E0 LDA $E0 C3/A787: 97EB STA [$EB],Y C3/A789: E6E0 INC $E0 C3/A78B: E6E0 INC $E0 C3/A78D: C8 INY C3/A78E: C8 INY C3/A78F: C4E7 CPY $E7 C3/A791: D0F2 BNE $A785 C3/A793: E220 SEP #$20 (8 bit memory/accum.) C3/A795: 60 RTS This is clearing out a lot of RAM... C3/A796: 8B PHB C3/A797: A97E LDA #$7E C3/A799: 48 PHA C3/A79A: AB PLB (Set bank to 7E) C3/A79B: 7B TDC C3/A79C: AA TAX C3/A79D: C220 REP #$20 (16 bit memory/accum.) C3/A79F: 9E71A2 STZ $A271,X C3/A7A2: 9E73A2 STZ $A273,X C3/A7A5: 9E75A2 STZ $A275,X C3/A7A8: 9E77A2 STZ $A277,X C3/A7AB: 9E79A2 STZ $A279,X C3/A7AE: 9E7BA2 STZ $A27B,X C3/A7B1: 9E7DA2 STZ $A27D,X C3/A7B4: 9E7FA2 STZ $A27F,X C3/A7B7: 9E81A2 STZ $A281,X C3/A7BA: 9E83A2 STZ $A283,X C3/A7BD: 9E85A2 STZ $A285,X C3/A7C0: 9E87A2 STZ $A287,X C3/A7C3: 9E89A2 STZ $A289,X C3/A7C6: 9E8BA2 STZ $A28B,X C3/A7C9: 9E8DA2 STZ $A28D,X C3/A7CC: 9E8FA2 STZ $A28F,X C3/A7CF: 9E91A2 STZ $A291,X C3/A7D2: 9E93A2 STZ $A293,X C3/A7D5: 9E95A2 STZ $A295,X C3/A7D8: 9E97A2 STZ $A297,X C3/A7DB: 9E99A2 STZ $A299,X C3/A7DE: 9E9BA2 STZ $A29B,X C3/A7E1: 9E9DA2 STZ $A29D,X C3/A7E4: 9E9FA2 STZ $A29F,X C3/A7E7: 9EA1A2 STZ $A2A1,X C3/A7EA: 9EA3A2 STZ $A2A3,X C3/A7ED: 9EA5A2 STZ $A2A5,X C3/A7F0: 9EA7A2 STZ $A2A7,X C3/A7F3: 9EA9A2 STZ $A2A9,X C3/A7F6: 9EABA2 STZ $A2AB,X C3/A7F9: 9EADA2 STZ $A2AD,X C3/A7FC: 9EAFA2 STZ $A2AF,X C3/A7FF: 8A TXA C3/A800: 18 CLC C3/A801: 694000 ADC #$0040 C3/A804: AA TAX C3/A805: E00007 CPX #$0700 C3/A808: D095 BNE $A79F C3/A80A: E220 SEP #$20 (8 bit memory/accum.) C3/A80C: AB PLB C3/A80D: 60 RTS C3/A80E: AA TAX C3/A80F: 7C12A8 JMP ($A812,X) C3/A812: 18A8 C3/A814: 2FA8 C3/A816: 1BA8 C3/A818: 2096A7 JSR $A796 C3/A81B: 648D STZ $8D C3/A81D: A62D LDX $2D C3/A81F: A901 LDA #$01 C3/A821: 9D4936 STA $3649,X (execute the second entry in this queue's jump table) C3/A824: 7B TDC C3/A825: C220 REP #$20 (16 bit memory/accum.) C3/A827: 9DCA33 STA $33CA,X C3/A82A: 9D4A34 STA $344A,X C3/A82D: E220 SEP #$20 (8 bit memory/accum.) C3/A82F: A526 LDA $26 C3/A831: C917 CMP #$17 C3/A833: F058 BEQ $A88D C3/A835: A546 LDA $46 C3/A837: 29C0 AND #$C0 C3/A839: F006 BEQ $A841 C3/A83B: A506 LDA $06 C3/A83D: 2930 AND #$30 C3/A83F: D054 BNE $A895 C3/A841: A545 LDA $45 C3/A843: 8920 BIT #$20 C3/A845: D006 BNE $A84D C3/A847: A507 LDA $07 C3/A849: 290F AND #$0F C3/A84B: D048 BNE $A895 C3/A84D: A545 LDA $45 C3/A84F: 8910 BIT #$10 C3/A851: D042 BNE $A895 C3/A853: A42D LDY $2D C3/A855: BE4A34 LDX $344A,Y C3/A858: 86ED STX $ED C3/A85A: BECA33 LDX $33CA,Y C3/A85D: BFC99E7E LDA $7E9EC9,X C3/A861: F039 BEQ $A89C C3/A863: C901 CMP #$01 C3/A865: D00E BNE $A875 C3/A867: 648D STZ $8D C3/A869: C220 REP #$20 (16 bit memory/accum.) C3/A86B: A98003 LDA #$0380 C3/A86E: 994A34 STA $344A,Y C3/A871: E220 SEP #$20 (8 bit memory/accum.) C3/A873: 8008 BRA $A87D C3/A875: 20A9A8 JSR $A8A9 C3/A878: DA PHX C3/A879: 20B1A8 JSR $A8B1 C3/A87C: FA PLX C3/A87D: E8 INX C3/A87E: A42D LDY $2D C3/A880: C220 REP #$20 (16 bit memory/accum.) C3/A882: 8A TXA C3/A883: 99CA33 STA $33CA,Y C3/A886: E220 SEP #$20 (8 bit memory/accum.) C3/A888: 2091A9 JSR $A991 C3/A88B: 38 SEC (not done with this queue yet) C3/A88C: 60 RTS C3/A88D: 2096A7 JSR $A796 C3/A890: 2091A9 JSR $A991 C3/A893: 18 CLC C3/A894: 60 RTS C3/A895: A62D LDX $2D C3/A897: 9E4936 STZ $3649,X (execute the first entry in this queue's jump table) C3/A89A: 38 SEC (not done with this queue yet) C3/A89B: 60 RTS C3/A89C: A901 LDA #$01 C3/A89E: 0445 TSB $45 C3/A8A0: A62D LDX $2D C3/A8A2: A902 LDA #$02 C3/A8A4: 9D4936 STA $3649,X (execute the third entry in this queue's jump table) C3/A8A7: 38 SEC C3/A8A8: 60 RTS C3/A8A9: 38 SEC C3/A8AA: E980 SBC #$80 C3/A8AC: 64EB STZ $EB C3/A8AE: 64EC STZ $EC C3/A8B0: 60 RTS C3/A8B1: 48 PHA C3/A8B2: 8F024200 STA $004202 C3/A8B6: A916 LDA #$16 C3/A8B8: 8F034200 STA $004203 C3/A8BC: A90B LDA #$0B C3/A8BE: 85E5 STA $E5 C3/A8C0: C220 REP #$20 (16 bit memory/accum.) C3/A8C2: AF164200 LDA $004216 C3/A8C6: 18 CLC C3/A8C7: 65EB ADC $EB C3/A8C9: A8 TAY C3/A8CA: E220 SEP #$20 (8 bit memory/accum.) C3/A8CC: 7B TDC C3/A8CD: A58D LDA $8D C3/A8CF: 29F8 AND #$F8 C3/A8D1: C220 REP #$20 (16 bit memory/accum.) C3/A8D3: 0A ASL A C3/A8D4: 0A ASL A C3/A8D5: 18 CLC C3/A8D6: 65ED ADC $ED C3/A8D8: AA TAX C3/A8D9: DA PHX C3/A8DA: C220 REP #$20 (16 bit memory/accum.) C3/A8DC: BB TYX C3/A8DD: BFC090C4 LDA $C490C0,X (get our VWF) C3/A8E1: 64E7 STZ $E7 C3/A8E3: 64E9 STZ $E9 C3/A8E5: 85E8 STA $E8 C3/A8E7: 204FA9 JSR $A94F C3/A8EA: FA PLX C3/A8EB: A5E7 LDA $E7 C3/A8ED: E220 SEP #$20 (8 bit memory/accum.) C3/A8EF: 1FB9A27E ORA $7EA2B9,X C3/A8F3: 9FB9A27E STA $7EA2B9,X C3/A8F7: C220 REP #$20 (16 bit memory/accum.) C3/A8F9: 4A LSR A C3/A8FA: E220 SEP #$20 (8 bit memory/accum.) C3/A8FC: 1FBCA27E ORA $7EA2BC,X C3/A900: 9FBCA27E STA $7EA2BC,X C3/A904: C220 REP #$20 (16 bit memory/accum.) C3/A906: A5E8 LDA $E8 C3/A908: E220 SEP #$20 (8 bit memory/accum.) C3/A90A: 1F99A27E ORA $7EA299,X C3/A90E: 9F99A27E STA $7EA299,X C3/A912: C220 REP #$20 (16 bit memory/accum.) C3/A914: 4A LSR A C3/A915: E220 SEP #$20 (8 bit memory/accum.) C3/A917: 1F9CA27E ORA $7EA29C,X C3/A91B: 9F9CA27E STA $7EA29C,X C3/A91F: C220 REP #$20 (16 bit memory/accum.) C3/A921: A5E8 LDA $E8 C3/A923: E220 SEP #$20 (8 bit memory/accum.) C3/A925: EB XBA C3/A926: 1F79A27E ORA $7EA279,X C3/A92A: 9F79A27E STA $7EA279,X C3/A92E: 4A LSR A C3/A92F: 1F7CA27E ORA $7EA27C,X C3/A933: 9F7CA27E STA $7EA27C,X C3/A937: E8 INX C3/A938: E8 INX C3/A939: C8 INY C3/A93A: C8 INY C3/A93B: C6E5 DEC $E5 C3/A93D: D09A BNE $A8D9 C3/A93F: 7B TDC C3/A940: 68 PLA C3/A941: 18 CLC C3/A942: 6920 ADC #$20 C3/A944: AA TAX C3/A945: A58D LDA $8D C3/A947: 18 CLC C3/A948: 7FC08FC4 ADC $C48FC0,X C3/A94C: 858D STA $8D C3/A94E: 60 RTS C3/A94F: E220 SEP #$20 (8 bit memory/accum.) C3/A951: 7B TDC C3/A952: A58D LDA $8D C3/A954: 2907 AND #$07 C3/A956: 0A ASL A C3/A957: AA TAX C3/A958: C220 REP #$20 (16 bit memory/accum.) C3/A95A: 7C5DA9 JMP ($A95D,X) Pointers to functions C3/A95D: 6FA9 C3/A95F: 73A9 C3/A961: 77A9 C3/A963: 7BA9 C3/A965: 7FA9 C3/A967: 8CA9 C3/A969: 88A9 C3/A96B: 84A9 C3/A96D: 80A9 C3/A96F: 06E7 ASL $E7 C3/A971: 26E9 ROL $E9 C3/A973: 06E7 ASL $E7 C3/A975: 26E9 ROL $E9 C3/A977: 06E7 ASL $E7 C3/A979: 26E9 ROL $E9 C3/A97B: 06E7 ASL $E7 C3/A97D: 26E9 ROL $E9 C3/A97F: 60 RTS C3/A980: 46E9 LSR $E9 C3/A982: 66E7 ROR $E7 C3/A984: 46E9 LSR $E9 C3/A986: 66E7 ROR $E7 C3/A988: 46E9 LSR $E9 C3/A98A: 66E7 ROR $E7 C3/A98C: 46E9 LSR $E9 C3/A98E: 66E7 ROR $E7 C3/A990: 60 RTS C3/A991: A00068 LDY #$6800 C3/A994: 841B STY $1B C3/A996: A071A2 LDY #$A271 C3/A999: 841D STY $1D C3/A99B: A00007 LDY #$0700 C3/A99E: 8419 STY $19 C3/A9A0: A97E LDA #$7E C3/A9A2: 851F STA $1F C3/A9A4: A901 LDA #$01 C3/A9A6: 1445 TRB $45 C3/A9A8: 60 RTS C3/A9A9: A600 LDX $00 C3/A9AB: BF0EE9D8 LDA $D8E90E,X C3/A9AF: 9FC99E7E STA $7E9EC9,X C3/A9B3: E8 INX C3/A9B4: E00900 CPX #$0009 C3/A9B7: D0F2 BNE $A9AB C3/A9B9: A0006C LDY #$6C00 C3/A9BC: 84F1 STY $F1 C3/A9BE: 7B TDC C3/A9BF: AA TAX C3/A9C0: BFC99E7E LDA $7E9EC9,X C3/A9C4: F01C BEQ $A9E2 C3/A9C6: 20A9A8 JSR $A8A9 C3/A9C9: DA PHX C3/A9CA: 20E5A9 JSR $A9E5 C3/A9CD: FA PLX C3/A9CE: E8 INX C3/A9CF: A4F1 LDY $F1 C3/A9D1: 20F6A5 JSR $A5F6 C3/A9D4: C220 REP #$20 (16 bit memory/accum.) C3/A9D6: A5F1 LDA $F1 C3/A9D8: 18 CLC C3/A9D9: 692000 ADC #$0020 C3/A9DC: 85F1 STA $F1 C3/A9DE: E220 SEP #$20 (8 bit memory/accum.) C3/A9E0: 80DE BRA $A9C0 C3/A9E2: 4C890F JMP $0F89 C3/A9E5: 48 PHA C3/A9E6: A04000 LDY #$0040 C3/A9E9: 84F3 STY $F3 C3/A9EB: 2037B4 JSR $B437 C3/A9EE: 648D STZ $8D C3/A9F0: 64ED STZ $ED C3/A9F2: 64EE STZ $EE C3/A9F4: 68 PLA C3/A9F5: 4CB1A8 JMP $A8B1 DP $26 is #$73 - initiate final battle setup screen C3/A9F8: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/A9FB: 200469 JSR $6904 (zero some DP) C3/A9FE: A902 LDA #$02 C3/AA00: 8546 STA $46 C3/AA02: 2054AC JSR $AC54 (hotspot data for final battle setup) C3/AA05: 205DAC JSR $AC5D (finger positioning) C3/AA08: 20B007 JSR $07B0 (finger OAM initiating) C3/AA0B: 20EEAA JSR $AAEE C3/AA0E: 20FDAA JSR $AAFD C3/AA11: 2013AB JSR $AB13 C3/AA14: 209794 JSR $9497 (setup HDMA transfers?) C3/AA17: A974 LDA #$74 C3/AA19: 8527 STA $27 (queue up to execute at C3/AA25) C3/AA1B: A901 LDA #$01 C3/AA1D: 8526 STA $26 (transition to above) C3/AA1F: 20FD0E JSR $0EFD (setup DMA transfers?) C3/AA22: 4C4135 JMP $3541 DP $26 is #$74 - sustain the final battle setup screen C3/AA25: 2089AB JSR $AB89 (display character names?) C3/AA28: 20B4AB JSR $ABB4 C3/AA2B: 205AAC JSR $AC5A (moving the finger) C3/AA2E: 20FD0E JSR $0EFD (setup DMA transfers?) C3/AA31: A509 LDA $09 C3/AA33: 8980 BIT #$80 (did you press B?) C3/AA35: F02C BEQ $AA63 (branch if not, BPL...) C3/AA37: 20A90E JSR $0EA9 (moving finger sound effect) C3/AA3A: A54A LDA $4A C3/AA3C: F068 BEQ $AAA6 C3/AA3E: C64A DEC $4A C3/AA40: 7B TDC C3/AA41: A54A LDA $4A C3/AA43: AA TAX C3/AA44: BD0502 LDA $0205,X C3/AA47: 48 PHA C3/AA48: A9FF LDA #$FF C3/AA4A: 9D0502 STA $0205,X C3/AA4D: A600 LDX $00 C3/AA4F: 68 PLA C3/AA50: DF8A9D7E CMP $7E9D8A,X C3/AA54: F006 BEQ $AA5C C3/AA56: E8 INX C3/AA57: E00C00 CPX #$000C C3/AA5A: D0F4 BNE $AA50 C3/AA5C: A920 LDA #$20 C3/AA5E: 9F8DAA7E STA $7EAA8D,X C3/AA62: 60 RTS C3/AA63: A509 LDA $09 C3/AA65: 8910 BIT #$10 (did you press start?) C3/AA67: D030 BNE $AA99 (branch if so) C3/AA69: A508 LDA $08 C3/AA6B: 8980 BIT #$80 (did you press A?) C3/AA6D: F037 BEQ $AAA6 (branch if not, BPL...) C3/AA6F: 20B20E JSR $0EB2 (makes the click sound) C3/AA72: 7B TDC C3/AA73: A54B LDA $4B C3/AA75: F030 BEQ $AAA7 (branch if on "Reset") C3/AA77: C90D CMP #$0D (are we on "End?") C3/AA79: F01E BEQ $AA99 (branch if so) C3/AA7B: AA TAX C3/AA7C: BF899D7E LDA $7E9D89,X (load position) C3/AA80: 3024 BMI $AAA6 (branch if nobody is in this slot) C3/AA82: 7B TDC C3/AA83: A54B LDA $4B C3/AA85: 3A DEC A C3/AA86: AA TAX C3/AA87: BF8DAA7E LDA $7EAA8D,X (load character in this position) C3/AA8B: C920 CMP #$20 (available, IOW hasn't been chosen yet?) C3/AA8D: D017 BNE $AAA6 (branch if not) C3/AA8F: 20B2AA JSR $AAB2 C3/AA92: A54A LDA $4A C3/AA94: C90C CMP #$0C C3/AA96: F015 BEQ $AAAD C3/AA98: 60 RTS C3/AA99: 20B20E JSR $0EB2 (makes the click sound) C3/AA9C: 20CAAA JSR $AACA C3/AA9F: A9FF LDA #$FF C3/AAA1: 8527 STA $27 C3/AAA3: 6426 STZ $26 (exit the menu) C3/AAA5: 60 RTS C3/AAA6: 60 RTS (no need for this) C3/AAA7: 20FDAA JSR $AAFD (remove all selections) C3/AAAA: E64E INC $4E C3/AAAC: 60 RTS C3/AAAD: A90D LDA #$0D C3/AAAF: 854E STA $4E C3/AAB1: 60 RTS C3/AAB2: 7B TDC C3/AAB3: A54A LDA $4A C3/AAB5: A8 TAY C3/AAB6: A54B LDA $4B C3/AAB8: AA TAX C3/AAB9: A928 LDA #$28 C3/AABB: 9F8CAA7E STA $7EAA8C,X C3/AABF: BF899D7E LDA $7E9D89,X C3/AAC3: BB TYX C3/AAC4: 9D0502 STA $0205,X C3/AAC7: E64A INC $4A C3/AAC9: 60 RTS C3/AACA: A54A LDA $4A C3/AACC: C90C CMP #$0C C3/AACE: F01D BEQ $AAED C3/AAD0: 7B TDC C3/AAD1: AA TAX C3/AAD2: BF8DAA7E LDA $7EAA8D,X (Load inventory item, index X) C3/AAD6: C920 CMP #$20 C3/AAD8: D00D BNE $AAE7 C3/AADA: 7B TDC C3/AADB: A54A LDA $4A C3/AADD: A8 TAY C3/AADE: BF8A9D7E LDA $7E9D8A,X C3/AAE2: 990502 STA $0205,Y C3/AAE5: E64A INC $4A C3/AAE7: E8 INX C3/AAE8: E00C00 CPX #$000C C3/AAEB: D0E5 BNE $AAD2 C3/AAED: 60 RTS C3/AAEE: 7B TDC C3/AAEF: AA TAX C3/AAF0: A9FF LDA #$FF C3/AAF2: 9F899D7E STA $7E9D89,X C3/AAF6: E8 INX C3/AAF7: E01000 CPX #$0010 C3/AAFA: D0F4 BNE $AAF0 C3/AAFC: 60 RTS C3/AAFD: 7B TDC C3/AAFE: AA TAX C3/AAFF: A9FF LDA #$FF C3/AB01: 9D0502 STA $0205,X C3/AB04: A920 LDA #$20 C3/AB06: 9F8DAA7E STA $7EAA8D,X C3/AB0A: E8 INX C3/AB0B: E00C00 CPX #$000C C3/AB0E: D0EF BNE $AAFF C3/AB10: 644A STZ $4A C3/AB12: 60 RTS C3/AB13: A902 LDA #$02 C3/AB15: 8D0721 STA $2107 C3/AB18: A049AB LDY #$AB49 C3/AB1B: 204103 JSR $0341 (draw window that holds the final battle setup) C3/AB1E: 20520E JSR $0E52 (setup DMA transfers?) C3/AB21: 203C6A JSR $6A3C C3/AB24: 206E0E JSR $0E6E (setup DMA transfers?) C3/AB27: 20156A JSR $6A15 C3/AB2A: 20196A JSR $6A19 C3/AB2D: A920 LDA #$20 C3/AB2F: 8529 STA $29 (set text color to white) C3/AB31: A284AC LDX #$AC84 C3/AB34: A00600 LDY #$0006 C3/AB37: 20BA69 JSR $69BA ("End," "Reset," Determine order") C3/AB3A: 2019AC JSR $AC19 C3/AB3D: 204DAB JSR $AB4D C3/AB40: 2089AB JSR $AB89 C3/AB43: 20280E JSR $0E28 (setup DMA transfers?) C3/AB46: 4C360E JMP $0E36 (setup DMA transfers?) Window data: C3/AB49: 8B581C18 (window that holds the final battle setup) C3/AB4D: 64E6 STZ $64 C3/AB4E: 7B TDC C3/AB50: AA TAX C3/AB51: DA PHX C3/AB52: BD5018 LDA $1850,X C3/AB55: 2940 AND #$40 C3/AB57: F028 BEQ $AB81 C3/AB59: BD5018 LDA $1850,X C3/AB5C: 2907 AND #$07 C3/AB5E: F021 BEQ $AB81 C3/AB60: 86E7 STX $E7 C3/AB62: C220 REP #$20 (16 bit memory/accum.) C3/AB64: 8A TXA C3/AB65: 0A ASL A C3/AB66: AA TAX C3/AB67: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/AB6B: A8 TAY C3/AB6C: E220 SEP #$20 (8 bit memory/accum.) C3/AB6E: B90000 LDA $0000,Y C3/AB71: C90E CMP #$0E (Is it Leo or higher ??) C3/AB73: B00C BCS $AB81 C3/AB75: 7B TDC C3/AB76: A5E6 LDA $E6 C3/AB78: AA TAX C3/AB79: A5E7 LDA $E7 C3/AB7B: 9F8A9D7E STA $7E9D8A,X C3/AB7F: E6E6 INC $E6 C3/AB81: FA PLX C3/AB82: E8 INX C3/AB83: E01000 CPX #$0010 C3/AB86: D0C9 BNE $AB51 C3/AB88: 60 RTS C3/AB89: A0153A LDY #$3A15 C3/AB8C: 84F5 STY $F5 C3/AB8E: 7B TDC C3/AB8F: AA TAX C3/AB90: 20DCAB JSR $ABDC C3/AB93: DA PHX C3/AB94: 7B TDC C3/AB95: BF8DAA7E LDA $7EAA8D,X (Load inventory, index X) C3/AB99: 8529 STA $29 C3/AB9B: BF8A9D7E LDA $7E9D8A,X C3/AB9F: 3005 BMI $ABA6 C3/ABA1: 20F0AB JSR $ABF0 (display the character name) C3/ABA4: 8003 BRA $ABA9 C3/ABA6: 200BAC JSR $AC0B (no character, so display a blank name) C3/ABA9: 20FEAB JSR $ABFE C3/ABAC: FA PLX C3/ABAD: E8 INX C3/ABAE: E00C00 CPX #$000C C3/ABB1: D0DD BNE $AB90 (branch if we haven't done 12 characters) C3/ABB3: 60 RTS C3/ABB4: A920 LDA #$20 C3/ABB6: 8529 STA $29 C3/ABB8: A0313A LDY #$3A31 C3/ABBB: 84F5 STY $F5 C3/ABBD: 7B TDC C3/ABBE: AA TAX C3/ABBF: 20DCAB JSR $ABDC C3/ABC2: DA PHX C3/ABC3: 7B TDC C3/ABC4: BD0502 LDA $0205,X C3/ABC7: 3005 BMI $ABCE C3/ABC9: 20F0AB JSR $ABF0 C3/ABCC: 8003 BRA $ABD1 C3/ABCE: 200BAC JSR $AC0B (no character, so display a blank name) C3/ABD1: 20FEAB JSR $ABFE C3/ABD4: FA PLX C3/ABD5: E8 INX C3/ABD6: E00C00 CPX #$000C C3/ABD9: D0E4 BNE $ABBF (branch if we haven't done 12 characters) C3/ABDB: 60 RTS C3/ABDC: A0899E LDY #$9E89 C3/ABDF: 8C8121 STY $2181 C3/ABE2: C220 REP #$20 (16 bit memory/accum.) C3/ABE4: A5F5 LDA $F5 C3/ABE6: E220 SEP #$20 (8 bit memory/accum.) C3/ABE8: 8D8021 STA $2180 C3/ABEB: EB XBA C3/ABEC: 8D8021 STA $2180 C3/ABEF: 60 RTS C3/ABF0: 0A ASL A C3/ABF1: C220 REP #$20 (16 bit memory/accum.) C3/ABF3: AA TAX C3/ABF4: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/ABF8: A8 TAY C3/ABF9: E220 SEP #$20 (8 bit memory/accum.) C3/ABFB: 4CD234 JMP $34D2 C3/ABFE: C220 REP #$20 (16 bit memory/accum.) C3/AC00: A5F5 LDA $F5 C3/AC02: 18 CLC C3/AC03: 698000 ADC #$0080 C3/AC06: 85F5 STA $F5 C3/AC08: E220 SEP #$20 (8 bit memory/accum.) C3/AC0A: 60 RTS C3/AC0B: A20600 LDX #$0006 C3/AC0E: A9FF LDA #$FF C3/AC10: 8D8021 STA $2180 (blank character's name if nobody there) C3/AC13: CA DEX C3/AC14: D0FA BNE $AC10 C3/AC16: 4CD97F JMP $7FD9 C3/AC19: A901 LDA #$01 C3/AC1B: 85E6 STA $E6 C3/AC1D: A00F3A LDY #$3A0F C3/AC20: 84F5 STY $F5 C3/AC22: A20C00 LDX #$000C C3/AC25: 86F1 STX $F1 C3/AC27: 203BAC JSR $AC3B C3/AC2A: A901 LDA #$01 C3/AC2C: 85E6 STA $E6 C3/AC2E: A02B3A LDY #$3A2B C3/AC31: 84F5 STY $F5 C3/AC33: A20C00 LDX #$000C C3/AC36: 86F1 STX $F1 C3/AC38: 4C3BAC JMP $AC3B (...) C3/AC3B: 7B TDC C3/AC3C: AA TAX C3/AC3D: DA PHX C3/AC3E: A5E6 LDA $E6 C3/AC40: 20E004 JSR $04E0 C3/AC43: A6F5 LDX $F5 C3/AC45: 20B604 JSR $04B6 C3/AC48: E6E6 INC $E6 C3/AC4A: 20FEAB JSR $ABFE C3/AC4D: FA PLX C3/AC4E: E8 INX C3/AC4F: E4F1 CPX $F1 C3/AC51: D0EA BNE $AC3D C3/AC53: 60 RTS C3/AC54: A063AC LDY #$AC63 C3/AC57: 4CFE05 JMP $05FE C3/AC5A: 202D07 JSR $072D C3/AC5D: A068AC LDY #$AC68 C3/AC60: 4C4006 JMP $0640 Hotspot data for final battle setup C3/AC63: 80 00 00 01 0E Finger positioning data for final battle setup C3/AC68: 1020 ("Reset") C3/AC6A: 202C character 1 C3/AC6C: 2038 character 2 C3/AC6E: 2044 character 3 C3/AC70: 2050 character 4 C3/AC72: 205C character 5 C3/AC74: 2068 character 6 C3/AC76: 2074 character 7 C3/AC78: 2080 character 8 C3/AC7A: 208C character 9 C3/AC7C: 2098 character 10 C3/AC7E: 20A4 character 11 C3/AC80: 20B0 character 12 C3/AC82: 10BC ("End") C3/AC84: 8AAC C3/AC86: 90AC C3/AC88: 98AC C3/AC8A: 114084A79D00 ("End") C3/AC90: 9139919EAC9EAD00 ("Reset") C3/AC98: 1D39839EAD9EABA6A2A79EFFA8AB9D9EAB00 ("Determine order") C3/ACAA: 9C0102 STZ $0201 (from C3/02BD, the massive jump table; $26 = #$71) C3/ACAD: AD0502 LDA $0205 C3/ACB0: 205E9D JSR $9D5E (Put item into inventory) C3/ACB3: 20E21A JSR $1AE2 C3/ACB6: 20257D JSR $7D25 C3/ACB9: 2027AD JSR $AD27 C3/ACBC: 7B TDC C3/ACBD: 221DCAD4 JSL $D4CA1D (gradient 0 for screen) C3/ACC1: 200E1B JSR $1B0E C3/ACC4: 20993F JSR $3F99 C3/ACC7: A901 LDA #$01 C3/ACC9: 0445 TSB $45 C3/ACCB: 206813 JSR $1368 (trigger NMI) C3/ACCE: A972 LDA #$72 C3/ACD0: 8527 STA $27 (queue up to execute at C3/ACDC) C3/ACD2: A902 LDA #$02 C3/ACD4: 8546 STA $46 C3/ACD6: 20B007 JSR $07B0 (finger OAM initiating) C3/ACD9: 4C4135 JMP $3541 C3/ACDC: A910 LDA #$10 C3/ACDE: 1445 TRB $45 C3/ACE0: 642A STZ $2A C3/ACE2: 20FD0E JSR $0EFD C3/ACE5: 20641F JSR $1F64 C3/ACE8: B03C BCS $AD26 C3/ACEA: 20227D JSR $7D22 C3/ACED: 20F182 JSR $82F1 C3/ACF0: A508 LDA $08 C3/ACF2: 8980 BIT #$80 (did you press A?) C3/ACF4: F01E BEQ $AD14 (branch if not, BPL...) C3/ACF6: 7B TDC C3/ACF7: A54B LDA $4B C3/ACF9: AA TAX C3/ACFA: BD6918 LDA $1869,X (Items currently in inventory) C3/ACFD: C9FF CMP #$FF (can't bet nothing) C3/ACFF: F00D BEQ $AD0E (branch if no item) C3/AD01: 8D0502 STA $0205 (store item bet) C3/AD04: 20B20E JSR $0EB2 (makes the click sound) C3/AD07: A975 LDA #$75 C3/AD09: 8527 STA $27 (queue up to execute at C3/ADB7) C3/AD0B: 6426 STZ $26 (fade out) C3/AD0D: 60 RTS C3/AD0E: 20C00E JSR $0EC0 (makes the buzzer sound) C3/AD11: 205D30 JSR $305D (mosaic effect) C3/AD14: A509 LDA $09 C3/AD16: 8980 BIT #$80 (did you press B?) C3/AD18: F00C BEQ $AD26 (branch if not, BPL...) C3/AD1A: 20A90E JSR $0EA9 C3/AD1D: A9FF LDA #$FF C3/AD1F: 8D0502 STA $0205 (store nothing into item bet) C3/AD22: 8527 STA $27 C3/AD24: 6426 STZ $26 C3/AD26: 60 RTS C3/AD27: A901 LDA #$01 C3/AD29: 8D0721 STA $2107 C3/AD2C: A08EAD LDY #$AD8E C3/AD2F: 204103 JSR $0341 (draw window that holds "Select an Item") C3/AD32: A08AAD LDY #$AD8A C3/AD35: 204103 JSR $0341 (draw window that holds "Colosseum") C3/AD38: A092AD LDY #$AD92 C3/AD3B: 204103 JSR $0341 (draw window that holds item descriptions) C3/AD3E: A096AD LDY #$AD96 C3/AD41: 204103 JSR $0341 (draw window that holds items) C3/AD44: 20520E JSR $0E52 C3/AD47: 20416A JSR $6A41 C3/AD4A: 20466A JSR $6A46 C3/AD4D: 204B6A JSR $6A4B C3/AD50: 206EAD JSR $AD6E C3/AD53: 2080AD JSR $AD80 C3/AD56: 20A9A9 JSR $A9A9 C3/AD59: 206E0E JSR $0E6E C3/AD5C: 207C0E JSR $0E7C C3/AD5F: 20196A JSR $6A19 C3/AD62: 200D7E JSR $7E0D C3/AD65: 20F182 JSR $82F1 C3/AD68: 20280E JSR $0E28 C3/AD6B: 4C360E JMP $0E36 C3/AD6E: 203C6A JSR $6A3C C3/AD71: A92C LDA #$2C C3/AD73: 8529 STA $29 (set text color to blue) C3/AD75: A09AAD LDY #$AD9A C3/AD78: 20F902 JSR $02F9 (display "Colosseum") C3/AD7B: A920 LDA #$20 C3/AD7D: 8529 STA $29 (set text color to white) C3/AD7F: 60 RTS C3/AD80: 203DA7 JSR $A73D C3/AD83: A0A6AD LDY #$ADA6 C3/AD86: 20F902 JSR $02F9 (display "Select an Item") C3/AD89: 60 RTS Window data: C3/AD8A: 8B580902 (window that holds "Colosseum") C3/AD8E: A1581102 (window that holds "Select an Item") C3/AD92: 8B591C03 (window that holds item descriptions) C3/AD96: CB5A1C0F (window that holds items) C3/AD9A: 0D7982A8A5A8ACAC9EAEA600 ("Colosseum") C3/ADA6: 2379929EA59E9CADFF9AA7FF88AD9EA600 ("Select an Item") C3/ADB7: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/ADB8: 6443 STZ $43 C3/ADBC: 20873A JSR $3A87 C3/ADBF: 201569 JSR $6915 C3/ADC2: A902 LDA #$02 C3/ADC4: 221DCAD4 JSL $D4CA1D (gradient 2 for screen) C3/ADC8: 20DC69 JSR $69DC C3/ADCB: 20666A JSR $6A66 C3/ADCE: A902 LDA #$02 C3/ADD0: 8546 STA $46 C3/ADD2: 2023B3 JSR $B323 C3/ADD5: 202CB3 JSR $B32C C3/ADD8: 20B007 JSR $07B0 (finger OAM initiating) C3/ADDB: 2007AE JSR $AE07 C3/ADDE: 20D118 JSR $18D1 C3/ADE1: 2034AE JSR $AE34 C3/ADE4: A901 LDA #$01 C3/ADE6: 0445 TSB $45 C3/ADE8: 20993F JSR $3F99 C3/ADEB: A901 LDA #$01 C3/ADED: A0A5B2 LDY #$B2A5 C3/ADF0: 207311 JSR $1173 (Put C3/B2A5 in the queue) C3/ADF3: A976 LDA #$76 C3/ADF5: 8527 STA $27 (queue up to execute at C3/AE0F) C3/ADF7: A901 LDA #$01 C3/ADF9: 8526 STA $26 (transition to above) C3/ADFB: 200469 JSR $6904 C3/ADFE: 20FD0E JSR $0EFD C3/AE01: 204135 JSR $3541 C3/AE04: 4C390F JMP $0F39 C3/AE07: A901 LDA #$01 C3/AE09: A0F3B2 LDY #$B2F3 C3/AE0C: 4C7311 JMP $1173 (Put C3/B2F3 in the queue) C3/AE0F: 20390F JSR $0F39 C3/AE12: 2029B3 JSR $B329 C3/AE15: A508 LDA $08 C3/AE17: 8980 BIT #$80 (did you press A?) C3/AE19: F018 BEQ $AE33 (branch if not, BPL...) C3/AE1B: 20ECB2 JSR $B2EC C3/AE1E: 300D BMI $AE2D C3/AE20: 8D0802 STA $0208 C3/AE23: 20B20E JSR $0EB2 (makes the click sound) C3/AE26: A9FF LDA #$FF C3/AE28: 8527 STA $27 (queue up to exit the menu) C3/AE2A: 6426 STZ $26 (fade out) C3/AE2C: 60 RTS C3/AE2D: 20C00E JSR $0EC0 (makes the buzzer sound) C3/AE30: 205D30 JSR $305D (mosaic effect, also JMP fool!) C3/AE33: 60 RTS C3/AE34: A901 LDA #$01 C3/AE36: 8D0721 STA $2107 C3/AE39: A03FB3 LDY #$B33F C3/AE3C: 204103 JSR $0341 (window that holds item to win) C3/AE3F: A043B3 LDY #$B343 C3/AE42: 204103 JSR $0341 (window that holds item bet) C3/AE45: A047B3 LDY #$B347 C3/AE48: 204103 JSR $0341 (window that holds the foolish challengers that will fight :P) C3/AE4B: 20520E JSR $0E52 C3/AE4E: 203C6A JSR $6A3C C3/AE51: A920 LDA #$20 C3/AE53: 8529 STA $29 (set text color to white) C3/AE55: 207DB1 JSR $B17D C3/AE58: 2097B1 JSR $B197 C3/AE5B: 20B1B1 JSR $B1B1 C3/AE5E: 20CBB1 JSR $B1CB C3/AE61: A00FB4 LDY #$B40F C3/AE64: 20F902 JSR $02F9 ("Select the challenger") C3/AE67: 208DB2 JSR $B28D (draw opponent's name) C3/AE6A: 204DB2 JSR $B24D (draw item bet) C3/AE6D: 2055B2 JSR $B255 (draw item to win or "?????????") C3/AE70: 206E0E JSR $0E6E C3/AE73: A00050 LDY #$5000 C3/AE76: 8C1621 STY $2116 C3/AE79: 200AB1 JSR $B10A C3/AE7C: 20156A JSR $6A15 C3/AE7F: 2093AE JSR $AE93 (determine if Shadow can be fought) C3/AE82: AD0102 LDA $0201 C3/AE85: D006 BNE $AE8D (branch if Shadow is available to fight) C3/AE87: 2000AF JSR $AF00 C3/AE8A: 4C280E JMP $0E28 C3/AE8D: 20A7AE JSR $AEA7 C3/AE90: 4C280E JMP $0E28 C3/AE93: AD0502 LDA $0205 (load item bet) C3/AE96: C929 CMP #$29 (is it the Striker?) C3/AE98: D00C BNE $AEA6 (branch if not) C3/AE9A: ADBD1E LDA $1EBD C3/AE9D: 2980 AND #$80 (did Shadow leave Thamasa?) C3/AE9F: F005 BEQ $AEA6 (branch if not) C3/AEA1: A901 LDA #$01 C3/AEA3: 8D0102 STA $0201 C3/AEA6: 60 RTS C3/AEA7: 20D9AE JSR $AED9 C3/AEAA: A902 LDA #$02 C3/AEAC: 0447 TSB $47 C3/AEAE: A902 LDA #$02 C3/AEB0: A05F7A LDY #$7A5F C3/AEB3: 207311 JSR $1173 (put C3/7A5F in the queue) C3/AEB6: A901 LDA #$01 C3/AEB8: 9F49367E STA $7E3649,X C3/AEBC: BF4A367E LDA $7E364A,X C3/AEC0: 0902 ORA #$02 C3/AEC2: 9F4A367E STA $7E364A,X C3/AEC6: 9B TXY C3/AEC7: A938 LDA #$38 C3/AEC9: 85E1 STA $E1 C3/AECB: A968 LDA #$68 C3/AECD: 85E2 STA $E2 C3/AECF: 7B TDC C3/AED0: A903 LDA #$03 C3/AED2: 20FA78 JSR $78FA C3/AED5: 2011B2 JSR $B211 C3/AED8: 60 RTS C3/AED9: 7B TDC C3/AEDA: AA TAX C3/AEDB: 86E7 STX $E7 C3/AEDD: C220 REP #$20 (16 bit memory/accum.) C3/AEDF: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/AEE3: AA TAX C3/AEE4: E220 SEP #$20 (8 bit memory/accum.) C3/AEE6: BD0000 LDA $0000,X C3/AEE9: C903 CMP #$03 C3/AEEB: F00B BEQ $AEF8 (branch if Shadow) C3/AEED: A6E7 LDX $E7 C3/AEEF: E8 INX C3/AEF0: E8 INX C3/AEF1: E02000 CPX #$0020 C3/AEF4: D0E5 BNE $AEDB C3/AEF6: 80FE BRA $AEF6 (!! Let's hope this line never executes!) C3/AEF8: 8667 STX $67 C3/AEFA: A0117C LDY #$7C11 C3/AEFD: 4CCF34 JMP $34CF (display Shadow's name as the monster) C3/AF00: A691 LDX $91 C3/AF02: 86ED STX $ED C3/AF04: A599 LDA $99 C3/AF06: C908 CMP #$08 C3/AF08: F00C BEQ $AF16 C3/AF0A: A21000 LDX #$0010 C3/AF0D: 86F1 STX $F1 C3/AF0F: A21000 LDX #$0010 C3/AF12: 86E0 STX $E0 C3/AF14: 8007 BRA $AF1D C3/AF16: A20800 LDX #$0008 C3/AF19: 86F1 STX $F1 C3/AF1B: 86E0 STX $E0 C3/AF1D: A97E LDA #$7E C3/AF1F: 85EF STA $EF C3/AF21: C220 REP #$20 (16 bit memory/accum.) C3/AF23: A9012C LDA #$2C01 C3/AF26: 85E7 STA $E7 C3/AF28: A6E0 LDX $E0 C3/AF2A: A400 LDY $00 C3/AF2C: A5E7 LDA $E7 C3/AF2E: 97ED STA [$ED],Y C3/AF30: C8 INY C3/AF31: C8 INY C3/AF32: E6E7 INC $E7 C3/AF34: CA DEX C3/AF35: D0F5 BNE $AF2C C3/AF37: A5ED LDA $ED C3/AF39: 18 CLC C3/AF3A: 694000 ADC #$0040 C3/AF3D: 85ED STA $ED C3/AF3F: C6F1 DEC $F1 C3/AF41: D0E5 BNE $AF28 C3/AF43: E220 SEP #$20 (8 bit memory/accum.) C3/AF45: 60 RTS Colliseum setup? C3/AF46: 202CB2 JSR $B22C (Determine prize and monster based on item bet) C3/AF49: AD0602 LDA $0206 (Monster to fight) C3/AF4C: 8D0242 STA $4202 C3/AF4F: A905 LDA #$05 C3/AF51: 8D0342 STA $4203 C3/AF54: A01050 LDY #$5010 C3/AF57: 8C1621 STY $2116 C3/AF5A: EA NOP C3/AF5B: EA NOP C3/AF5C: AE1642 LDX $4216 C3/AF5F: BF0070D2 LDA $D27000,X (Monster visual specs, byte 1) C3/AF63: 85E7 STA $E7 C3/AF65: BF0170D2 LDA $D27001,X (Monster visual specs, byte 2) C3/AF69: 85E8 STA $E8 C3/AF6B: BF0270D2 LDA $D27002,X (Monster visual specs, byte 3) C3/AF6F: 85F2 STA $F2 C3/AF71: BF0370D2 LDA $D27003,X (Monster visual specs, byte 4) C3/AF75: 85F1 STA $F1 C3/AF77: BF0470D2 LDA $D27004,X (Monster visual specs, byte 5) C3/AF7B: 85E9 STA $E9 C3/AF7D: A5E8 LDA $E8 C3/AF7F: 3004 BMI $AF85 C3/AF81: 64FF STZ $FF C3/AF83: 8008 BRA $AF8D C3/AF85: A901 LDA #$01 C3/AF87: 85FF STA $FF C3/AF89: A980 LDA #$80 C3/AF8B: 14E8 TRB $E8 C3/AF8D: A9E9 LDA #$E9 C3/AF8F: 85F7 STA $F7 C3/AF91: C220 REP #$20 (16 bit memory/accum.) C3/AF93: A90070 LDA #$7000 C3/AF96: 85F5 STA $F5 C3/AF98: A5E7 LDA $E7 C3/AF9A: 85F9 STA $F9 C3/AF9C: 64FB STZ $FB C3/AF9E: 06F9 ASL $F9 C3/AFA0: 26FB ROL $FB C3/AFA2: 06F9 ASL $F9 C3/AFA4: 26FB ROL $FB C3/AFA6: 06F9 ASL $F9 C3/AFA8: 26FB ROL $FB C3/AFAA: 18 CLC C3/AFAB: A5F9 LDA $F9 C3/AFAD: 65F5 ADC $F5 C3/AFAF: 85F5 STA $F5 C3/AFB1: A5FB LDA $FB C3/AFB3: 65F7 ADC $F7 C3/AFB5: 85F7 STA $F7 C3/AFB7: A600 LDX $00 C3/AFB9: E220 SEP #$20 (8 bit memory/accum.) C3/AFBB: A5F2 LDA $F2 C3/AFBD: 3009 BMI $AFC8 C3/AFBF: A020A8 LDY #$A820 C3/AFC2: 84E3 STY $E3 C3/AFC4: A908 LDA #$08 C3/AFC6: 8007 BRA $AFCF C3/AFC8: A022A8 LDY #$A822 C3/AFCB: 84E3 STY $E3 C3/AFCD: A920 LDA #$20 C3/AFCF: 85E6 STA $E6 C3/AFD1: 8599 STA $99 C3/AFD3: A9D2 LDA #$D2 C3/AFD5: 85E5 STA $E5 C3/AFD7: A5F2 LDA $F2 C3/AFD9: 2940 AND #$40 C3/AFDB: 2A ROL A C3/AFDC: 2A ROL A C3/AFDD: 2A ROL A C3/AFDE: 85EA STA $EA C3/AFE0: A5F2 LDA $F2 C3/AFE2: 3009 BMI $AFED C3/AFE4: C220 REP #$20 (16 bit memory/accum.) C3/AFE6: A5E9 LDA $E9 C3/AFE8: 0A ASL A C3/AFE9: 0A ASL A C3/AFEA: 0A ASL A C3/AFEB: 8009 BRA $AFF6 C3/AFED: C220 REP #$20 (16 bit memory/accum.) C3/AFEF: A5E9 LDA $E9 C3/AFF1: 0A ASL A C3/AFF2: 0A ASL A C3/AFF3: 0A ASL A C3/AFF4: 0A ASL A C3/AFF5: 0A ASL A C3/AFF6: 18 CLC C3/AFF7: 67E3 ADC [$E3] C3/AFF9: 85E0 STA $E0 C3/AFFB: E220 SEP #$20 (8 bit memory/accum.) C3/AFFD: A9D2 LDA #$D2 C3/AFFF: 85E2 STA $E2 C3/B001: A00800 LDY #$0008 C3/B004: DA PHX C3/B005: 7B TDC C3/B006: A5E6 LDA $E6 C3/B008: AA TAX C3/B009: A7E0 LDA [$E0] C3/B00B: 9F889D7E STA $7E9D88,X C3/B00F: FA PLX C3/B010: 18 CLC C3/B011: 5A PHY C3/B012: 2A ROL A C3/B013: 48 PHA C3/B014: 9005 BCC $B01B C3/B016: 201EB1 JSR $B11E C3/B019: 8003 BRA $B01E C3/B01B: 200AB1 JSR $B10A C3/B01E: 68 PLA C3/B01F: 7A PLY C3/B020: 88 DEY C3/B021: D0ED BNE $B010 C3/B023: C220 REP #$20 (16 bit memory/accum.) C3/B025: E6E0 INC $E0 C3/B027: E220 SEP #$20 (8 bit memory/accum.) C3/B029: C6E6 DEC $E6 C3/B02B: D0D4 BNE $B001 C3/B02D: 2033B0 JSR $B033 C3/B030: 4C5AB1 JMP $B15A C3/B033: 64E0 STZ $E0 C3/B035: 64E4 STZ $E4 C3/B037: 64E5 STZ $E5 C3/B039: 64E3 STZ $E3 C3/B03B: A600 LDX $00 C3/B03D: A599 LDA $99 C3/B03F: C908 CMP #$08 C3/B041: D036 BNE $B079 C3/B043: BF899D7E LDA $7E9D89,X C3/B047: D007 BNE $B050 C3/B049: E6E0 INC $E0 C3/B04B: E8 INX C3/B04C: C908 CMP #$08 C3/B04E: D0F3 BNE $B043 C3/B050: A600 LDX $00 C3/B052: BF899D7E LDA $7E9D89,X C3/B056: 05E3 ORA $E3 C3/B058: 85E3 STA $E3 C3/B05A: E8 INX C3/B05B: E00800 CPX #$0008 C3/B05E: D0F2 BNE $B052 C3/B060: 66E3 ROR $E3 C3/B062: B004 BCS $B068 C3/B064: E6E4 INC $E4 C3/B066: 80F8 BRA $B060 C3/B068: 46E4 LSR $E4 C3/B06A: 06E4 ASL $E4 C3/B06C: C221 REP #$21 C3/B06E: A5E4 LDA $E4 C3/B070: 69513A ADC #$3A51 C3/B073: 85E7 STA $E7 C3/B075: E220 SEP #$20 (8 bit memory/accum.) C3/B077: 803B BRA $B0B4 C3/B079: BF899D7E LDA $7E9D89,X C3/B07D: 1F8A9D7E ORA $7E9D8A,X C3/B081: D009 BNE $B08C C3/B083: E6E0 INC $E0 C3/B085: E8 INX C3/B086: E8 INX C3/B087: E02000 CPX #$0020 C3/B08A: D0ED BNE $B079 C3/B08C: A600 LDX $00 C3/B08E: BF899D7E LDA $7E9D89,X C3/B092: 05E3 ORA $E3 C3/B094: 85E3 STA $E3 C3/B096: E8 INX C3/B097: E8 INX C3/B098: E02000 CPX #$0020 C3/B09B: D0F1 BNE $B08E C3/B09D: 66E3 ROR $E3 C3/B09F: B004 BCS $B0A5 C3/B0A1: E6E4 INC $E4 C3/B0A3: 80F8 BRA $B09D C3/B0A5: 46E4 LSR $E4 C3/B0A7: 06E4 ASL $E4 C3/B0A9: C221 REP #$21 C3/B0AB: A5E4 LDA $E4 C3/B0AD: 694938 ADC #$3849 C3/B0B0: 85E7 STA $E7 C3/B0B2: E220 SEP #$20 (8 bit memory/accum.) C3/B0B4: 4CB7B0 JMP $B0B7 C3/B0B7: 7B TDC C3/B0B8: AD0602 LDA $0206 (Monster to fight) C3/B0BB: AA TAX C3/B0BC: BF00E8EC LDA $ECE800,X C3/B0C0: C220 REP #$20 (16 bit memory/accum.) C3/B0C2: 0A ASL A C3/B0C3: AA TAX C3/B0C4: E220 SEP #$20 (8 bit memory/accum.) C3/B0C6: 7CC9B0 JMP ($B0C9,X) C3/B0C9: D3B0 C3/B0CB: F8B0 C3/B0CD: E2B0 C3/B0CF: EAB0 C3/B0D1: EEB0 C3/B0D3: 64E0 STZ $E0 C3/B0D5: C220 REP #$20 (16 bit memory/accum.) C3/B0D7: A5E7 LDA $E7 C3/B0D9: 38 SEC C3/B0DA: E9C0 SBC #$C0 C3/B0DC: 00 BRK C3/B0DD: 8591 STA $91 C3/B0DF: E220 SEP #$20 (8 bit memory/accum.) C3/B0E1: 60 RTS C3/B0E2: C6E0 DEC $E0 C3/B0E4: 1002 BPL $B0E8 C3/B0E6: 64E0 STZ $E0 C3/B0E8: 800E BRA $B0F8 C3/B0EA: E6E0 INC $E0 C3/B0EC: 800A BRA $B0F8 C3/B0EE: C6E0 DEC $E0 C3/B0F0: C6E0 DEC $E0 C3/B0F2: C6E0 DEC $E0 C3/B0F4: 1002 BPL $B0F8 C3/B0F6: 64E0 STZ $E0 C3/B0F8: 7B TDC C3/B0F9: A5E0 LDA $E0 C3/B0FB: C221 REP #$21 C3/B0FD: 0A ASL A C3/B0FE: 0A ASL A C3/B0FF: 0A ASL A C3/B100: 0A ASL A C3/B101: 0A ASL A C3/B102: 0A ASL A C3/B103: 65E7 ADC $E7 C3/B105: 8591 STA $91 C3/B107: E220 SEP #$20 (8 bit memory/accum.) C3/B109: 60 RTS C3/B10A: A01000 LDY #$0010 C3/B10D: 84E3 STY $E3 C3/B10F: C220 REP #$20 (16 bit memory/accum.) C3/B111: A400 LDY $00 C3/B113: 9C1821 STZ $2118 C3/B116: C8 INY C3/B117: C4E3 CPY $E3 C3/B119: D0F8 BNE $B113 C3/B11B: E220 SEP #$20 (8 bit memory/accum.) C3/B11D: 60 RTS C3/B11E: A5FF LDA $FF C3/B120: D007 BNE $B129 C3/B122: A01000 LDY #$0010 C3/B125: 84E3 STY $E3 C3/B127: 801C BRA $B145 C3/B129: A00800 LDY #$0008 C3/B12C: 84E3 STY $E3 C3/B12E: 2045B1 JSR $B145 C3/B131: 9B TXY C3/B132: A20800 LDX #$0008 C3/B135: 7B TDC C3/B136: B7F5 LDA [$F5],Y C3/B138: C220 REP #$20 (16 bit memory/accum.) C3/B13A: 8D1821 STA $2118 C3/B13D: E220 SEP #$20 (8 bit memory/accum.) C3/B13F: C8 INY C3/B140: CA DEX C3/B141: D0F3 BNE $B136 C3/B143: BB TYX C3/B144: 60 RTS C3/B145: 9B TXY C3/B146: A600 LDX $00 C3/B148: C220 REP #$20 (16 bit memory/accum.) C3/B14A: B7F5 LDA [$F5],Y C3/B14C: 8D1821 STA $2118 C3/B14F: C8 INY C3/B150: C8 INY C3/B151: E8 INX C3/B152: E4E3 CPX $E3 C3/B154: D0F4 BNE $B14A C3/B156: E220 SEP #$20 (8 bit memory/accum.) C3/B158: BB TYX C3/B159: 60 RTS C3/B15A: C220 REP #$20 (16 bit memory/accum.) C3/B15C: A5F1 LDA $F1 C3/B15E: 29FF03 AND #$03FF C3/B161: 0A ASL A C3/B162: 0A ASL A C3/B163: 0A ASL A C3/B164: 0A ASL A C3/B165: AA TAX C3/B166: E220 SEP #$20 (8 bit memory/accum.) C3/B168: A0A930 LDY #$30A9 C3/B16B: 8C8121 STY $2181 C3/B16E: A02000 LDY #$0020 C3/B171: BF2078D2 LDA $D27820,X (monster palettes) C3/B175: 8D8021 STA $2180 C3/B178: E8 INX C3/B179: 88 DEY C3/B17A: D0F5 BNE $B171 C3/B17C: 60 RTS C3/B17D: A46D LDY $6D C3/B17F: F015 BEQ $B196 C3/B181: 8467 STY $67 C3/B183: A04F7E LDY #$7E4F C3/B186: 20E5B1 JSR $B1E5 C3/B189: A920 LDA #$20 C3/B18B: 85E1 STA $E1 C3/B18D: A9A8 LDA #$A8 C3/B18F: 85E2 STA $E2 C3/B191: A569 LDA $69 C3/B193: 20F3B1 JSR $B1F3 (JMP!) C3/B196: 60 RTS C3/B197: A46F LDY $6F C3/B199: F015 BEQ $B1B0 C3/B19B: 8467 STY $67 C3/B19D: A05D7E LDY #$7E5D C3/B1A0: 20E5B1 JSR $B1E5 C3/B1A3: A958 LDA #$58 C3/B1A5: 85E1 STA $E1 C3/B1A7: A9A8 LDA #$A8 C3/B1A9: 85E2 STA $E2 C3/B1AB: A56A LDA $6A C3/B1AD: 20F3B1 JSR $B1F3 (JMP!) C3/B1B0: 60 RTS C3/B1B1: A471 LDY $71 C3/B1B3: F015 BEQ $B1CA C3/B1B5: 8467 STY $67 C3/B1B7: A06B7E LDY #$7E6B C3/B1BA: 20E5B1 JSR $B1E5 C3/B1BD: A990 LDA #$90 C3/B1BF: 85E1 STA $E1 C3/B1C1: A9A8 LDA #$A8 C3/B1C3: 85E2 STA $E2 C3/B1C5: A56B LDA $6B C3/B1C7: 20F3B1 JSR $B1F3 (JMP!) C3/B1CA: 60 RTS C3/B1CB: A473 LDY $73 C3/B1CD: F015 BEQ $B1E4 C3/B1CF: 8467 STY $67 C3/B1D1: A0797E LDY #$7E79 C3/B1D4: 20E5B1 JSR $B1E5 C3/B1D7: A9C8 LDA #$C8 C3/B1D9: 85E1 STA $E1 C3/B1DB: A9A8 LDA #$A8 C3/B1DD: 85E2 STA $E2 C3/B1DF: A56C LDA $6C C3/B1E1: 20F3B1 JSR $B1F3 (JMP!) C3/B1E4: 60 RTS C3/B1E5: 20CF34 JSR $34CF C3/B1E8: A902 LDA #$02 C3/B1EA: A05F7A LDY #$7A5F C3/B1ED: 207311 JSR $1173 (put C3/7A5F in the queue) C3/B1F0: 9B TXY C3/B1F1: 7B TDC C3/B1F2: 60 RTS C3/B1F3: 0A ASL A C3/B1F4: AA TAX C3/B1F5: C220 REP #$20 (16 bit memory/accum.) C3/B1F7: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/B1FB: AA TAX C3/B1FC: E220 SEP #$20 (8 bit memory/accum.) C3/B1FE: BD1400 LDA $0014,X (Statuses) C3/B201: 2920 AND #$20 (Mask all but imp) C3/B203: F005 BEQ $B20A (Branch if imp not set) C3/B205: 7B TDC (probably to clear out upper bits) C3/B206: A90F LDA #$0F (load Imp's spritesheet) C3/B208: 8004 BRA $B20E C3/B20A: 7B TDC (probably to clear out upper bits) C3/B20B: BD0100 LDA $0001,X (load character's spritesheet) C3/B20E: 20FA78 JSR $78FA (draw the sprite?) C3/B211: A9D8 LDA #$D8 C3/B213: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/B216: A5E1 LDA $E1 C3/B218: 99CA33 STA $33CA,Y C3/B21B: A5E2 LDA $E2 C3/B21D: 994A34 STA $344A,Y C3/B220: 7B TDC C3/B221: 99CB33 STA $33CB,Y C3/B224: 994B34 STA $344B,Y C3/B227: A900 LDA #$00 C3/B229: 48 PHA C3/B22A: AB PLB C3/B22B: 60 RTS Colliseum: Determine prize and monster based on item bet C3/B22C: 7B TDC C3/B22D: AD0502 LDA $0205 C3/B230: C220 REP #$20 (16 bit memory/accum.) C3/B232: 0A ASL A C3/B233: 0A ASL A C3/B234: AA TAX C3/B235: E220 SEP #$20 (8 bit memory/accum.) C3/B237: BF00B6DF LDA $DFB600,X (monster to face) C3/B23B: 8D0602 STA $0206 C3/B23E: BF02B6DF LDA $DFB602,X (item to win) C3/B242: 8D0702 STA $0207 C3/B245: BF03B6DF LDA $DFB603,X (mask item to win) C3/B249: 8D0902 STA $0209 C3/B24C: 60 RTS C3/B24D: AD0502 LDA $0205 (item bet) C3/B250: A22B79 LDX #$792B (position onscreen to draw name) C3/B253: 800E BRA $B263 C3/B255: AD0902 LDA $0209 (load item mask flag) C3/B258: F003 BEQ $B25D (branch if not set to mask item won) C3/B25A: 4C86B2 JMP $B286 C3/B25D: AD0702 LDA $0207 (item to win) C3/B260: A20D79 LDX #$790D (position onscreen to draw name) C3/B263: 48 PHA C3/B264: A08B9E LDY #$9E8B C3/B267: 8C8121 STY $2181 C3/B26A: C220 REP #$20 (16 bit memory/accum.) C3/B26C: 8A TXA C3/B26D: 8F899E7E STA $7E9E89 C3/B271: E220 SEP #$20 (8 bit memory/accum.) C3/B273: AD1242 LDA $4212 C3/B276: 2940 AND #$40 (are we in H-blank?) C3/B278: F0F9 BEQ $B273 (branch if not) C3/B27A: 68 PLA C3/B27B: 20CE80 JSR $80CE (Write out item name) C3/B27E: 7B TDC C3/B27F: 8F989E7E STA $7E9E98 C3/B283: 4CD97F JMP $7FD9 C3/B286: A027B4 LDY #$B427 ("?????????????") C3/B289: 20F902 JSR $02F9 C3/B28C: 60 RTS C3/B28D: C220 REP #$20 (16 bit memory/accum.) C3/B28F: A94F7C LDA #$7C4F (position onscreen to draw name) C3/B292: 8F899E7E STA $7E9E89 C3/B296: E220 SEP #$20 (8 bit memory/accum.) C3/B298: 200954 JSR $5409 C3/B29B: 7B TDC C3/B29C: AD0602 LDA $0206 (monster to face) C3/B29F: 206784 JSR $8467 (write the name) C3/B2A2: 4CD97F JMP $7FD9 C3/B2A5: 8B PHB C3/B2A6: A900 LDA #$00 C3/B2A8: 48 PHA C3/B2A9: AB PLB C3/B2AA: 7B TDC C3/B2AB: A54B LDA $4B C3/B2AD: 0A ASL A C3/B2AE: AA TAX C3/B2AF: B46D LDY $6D,X C3/B2B1: F02C BEQ $B2DF C3/B2B3: 8467 STY $67 C3/B2B5: A0757C LDY #$7C75 C3/B2B8: 20CF34 JSR $34CF C3/B2BB: A902 LDA #$02 C3/B2BD: 0447 TSB $47 C3/B2BF: A902 LDA #$02 C3/B2C1: A0427B LDY #$7B42 C3/B2C4: 207311 JSR $1173 (put C3/7B42 in the queue) C3/B2C7: A901 LDA #$01 C3/B2C9: 9F49367E STA $7E3649,X C3/B2CD: 9B TXY C3/B2CE: 7B TDC C3/B2CF: A9B8 LDA #$B8 C3/B2D1: 85E1 STA $E1 C3/B2D3: A968 LDA #$68 C3/B2D5: 85E2 STA $E2 C3/B2D7: 20ECB2 JSR $B2EC C3/B2DA: 20F3B1 JSR $B1F3 C3/B2DD: 8003 BRA $B2E2 C3/B2DF: 20E5B2 JSR $B2E5 C3/B2E2: AB PLB C3/B2E3: 38 SEC C3/B2E4: 60 RTS C3/B2E5: A006B4 LDY #$B406 (" ", maybe to blank stray letters from character name after switching?) C3/B2E8: 20F902 JSR $02F9 C3/B2EB: 60 RTS C3/B2EC: 7B TDC C3/B2ED: A54B LDA $4B C3/B2EF: AA TAX C3/B2F0: B569 LDA $69,X C3/B2F2: 60 RTS C3/B2F3: AA TAX C3/B2F4: 7CF7B2 JMP ($B2F7,X) C3/B2F7: FBB2 C3/B2F9: 1EB3 C3/B2FB: A62D LDX $2D C3/B2FD: C220 REP #$20 (16 bit memory/accum.) C3/B2FF: A987EC LDA #$EC87 C3/B302: 9DC932 STA $32A9,X C3/B305: A97000 LDA #$0070 C3/B308: 9DCA33 STA $33CA,X C3/B30B: A96000 LDA #$60 C3/B30E: 9D4A34 STA $344A,X C3/B311: E220 SEP #$20 C3/B313: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/B316: A9D8 LDA #$D8 C3/B318: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/B31B: 200612 JSR $1206 C3/B31E: 202112 JSR $1221 (draw the sprites!) C3/B321: 38 SEC (not done with this queue yet) C3/B322: 60 RTS C3/B323: A032B3 LDY #$B332 C3/B326: 4CFE05 JMP $05FE C3/B329: 202D07 JSR $072D C3/B32C: A037B3 LDY #$B337 C3/B32F: 4C4006 JMP $0640 Hotspot data C3/B332: 01 00 00 04 01 Finger positioning data C3/B337: 10B0 C3/B339: 48B0 C3/B33B: 80B0 C3/B33D: B8B0 Window data C3/B33F: 8B580D02 (window that holds item to win) C3/B343: A9580D02 (window that holds item bet) C3/B347: CB5C1C07 (window that holds the foolish challengers that will fight :P) C3/B34B: C220 REP #$20 C3/B34D: AF8C16E7 LDA $E7168C C3/B351: 85F3 STA $F3 C3/B353: E220 SEP #$20 (8 bit memory/accum.) C3/B355: AF8E16E7 LDA $E7168E C3/B359: 85F5 STA $F5 C3/B35B: 20F2B3 JSR $B3F2 C3/B35E: A00068 LDY #$6800 C3/B361: 8C1621 STY $2116 C3/B364: A00010 LDY #$1000 C3/B367: 84E7 STY $E7 C3/B369: A600 LDX $00 C3/B36B: 20C6B3 JSR $B3C6 C3/B36E: C220 REP #$20 (16 bit memory/accum.) C3/B370: AF9216E7 LDA $E71692 C3/B374: 85F3 STA $F3 C3/B376: E220 SEP #$20 (8 bit memory/accum.) C3/B378: AF9416E7 LDA $E71694 C3/B37C: 85F5 STA $F5 C3/B37E: 20F2B3 JSR $B3F2 C3/B381: A00070 LDY #$7000 C3/B384: 8C1621 STY $2116 C3/B387: A00010 LDY #$1000 C3/B38A: 84E7 STY $E7 C3/B38C: A600 LDX $00 C3/B38E: 20C6B3 JSR $B3C6 C3/B391: C220 REP #$20 (16 bit memory/accum.) C3/B393: AF7A18E7 LDA $E7187A C3/B397: 85F3 STA $F3 C3/B399: E220 SEP #$20 (8 bit memory/accum.) C3/B39B: A9E7 LDA #$E7 C3/B39D: 85F5 STA $F5 C3/B39F: 20F2B3 JSR $B3F2 C3/B3A2: 20D8B3 JSR $B3D8 C3/B3A5: C220 REP #$20 (16 bit memory/accum.) C3/B3A7: A9B00A LDA #$0AB0 C3/B3AA: 85E7 STA $E7 C3/B3AC: E220 SEP #$20 (8 bit memory/accum.) C3/B3AE: A9E7 LDA #$E7 C3/B3B0: 85E9 STA $E9 C3/B3B2: A2C930 LDX #$30C9 C3/B3B5: 8E8121 STX $2181 C3/B3B8: A400 LDY $00 C3/B3BA: B7E7 LDA [$E7],Y C3/B3BC: 8D8021 STA $2180 C3/B3BF: C8 INY C3/B3C0: C06000 CPY #$0060 C3/B3C3: D0F5 BNE $B3BA C3/B3C5: 60 RTS C3/B3C6: C220 REP #$20 (16 bit memory/accum.) C3/B3C8: BF8DB67E LDA $7EB68D,X C3/B3CC: 8D1821 STA $2118 C3/B3CF: E8 INX C3/B3D0: E8 INX C3/B3D1: E4E7 CPX $E7 C3/B3D3: D0F3 BNE $B3C8 C3/B3D5: E220 SEP #$20 (8 bit memory/accum.) C3/B3D7: 60 RTS C3/B3D8: A600 LDX $00 C3/B3DA: C220 REP #$20 (16 bit memory/accum.) C3/B3DC: BF8DB67E LDA $7EB68D,X C3/B3E0: 38 SEC C3/B3E1: E98003 SBC #$0380 C3/B3E4: 9F49597E STA $7E5949,X C3/B3E8: E8 INX C3/B3E9: E8 INX C3/B3EA: E08005 CPX #$0580 C3/B3ED: D0ED BNE $B3DC C3/B3EF: E220 SEP #$20 (8 bit memory/accum.) C3/B3F1: 60 RTS C3/B3F2: A08DB6 LDY #$B68D (Decompression destination address) C3/B3F5: 84F6 STY $F6 C3/B3F7: A97E LDA #$7E (Decompression destination bank) C3/B3F9: 85F8 STA $F8 C3/B3FB: 8B PHB C3/B3FC: A97E LDA #$7E C3/B3FE: 48 PHA C3/B3FF: AB PLB C3/B400: 226DFFC2 JSL $C2FF6D (LZ decompression routine) C3/B404: AB PLB C3/B405: 60 RTS C3/B406: 757CFFFFFFFFFFFF00 (" ") C3/B40F: 157D929EA59E9CADFFADA19EFF9CA19AA5A59EA7A09EAB00 ("Select the challenger") C3/B427: 0D79BFBFBFBFBFBFBFBFBFBFBFBFBF00 ("?????????????") C3/B437: 7B TDC C3/B438: AA TAX C3/B439: C220 REP #$20 (16 bit memory/accum.) C3/B43B: 9F71A27E STA $7EA271,X C3/B43F: E8 INX C3/B440: E8 INX C3/B441: E4F3 CPX $F3 C3/B443: D0F6 BNE $B43B C3/B445: E220 SEP #$20 (8 bit memory/accum.) C3/B447: 60 RTS C3/B448: 01 C3/B449: 0900023E C3/B44D: 01 C3/B44E: 0900123E OAM data, format is pointer, timer, pointer, timer, pointer, end C3/B452: 48B4 C3/B454: 02 C3/B455: 4DB4 C3/B457: 02 C3/B458: 48B4 C3/B45A: FF C3/B45B: 00 (config screen OAM data points here....but this would indicate that there's nothing) C3/B45C: 01 C3/B45D: 8082033E C3/B461: 01 (config screen OAM data points here) C3/B462: 800003BE (position 80,0, 03 is ?, giant arrow pointing up) DP $26 is #$24 - initiate the shop menu C3/B466: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/B469: 200469 JSR $6904 C3/B46C: 20086A JSR $6A08 C3/B46F: A903 LDA #$03 C3/B471: 8D0721 STA $2107 C3/B474: A9C0 LDA #$C0 C3/B476: 1443 TRB $43 (eventually disable channels 6 and 7 of HDMA) C3/B478: A902 LDA #$02 C3/B47A: 8546 STA $46 C3/B47C: 644A STZ $4A C3/B47E: 2086B8 JSR $B886 C3/B481: 208FB8 JSR $B88F C3/B484: 20B007 JSR $07B0 (finger OAM initiating) C3/B487: 20C4B8 JSR $B8C4 C3/B48A: 202B7E JSR $7E2B C3/B48D: 2018C0 JSR $C018 C3/B490: A925 LDA #$25 C3/B492: 8527 STA $27 (queue up to execute at C3/B49B) C3/B494: A901 LDA #$01 C3/B496: 8526 STA $26 (transition) C3/B498: 4C4135 JMP $3541 DP $26 is #$25 - sustain the shop menu C3/B49B: 208CB8 JSR $B88C C3/B49E: A508 LDA $08 C3/B4A0: 8980 BIT #$80 (did you press A?) C3/B4A2: F006 BEQ $B4AA (branch if not, BPL...) C3/B4A4: 20B20E JSR $0EB2 (makes the click sound) C3/B4A7: 4C92B7 JMP $B792 C3/B4AA: A509 LDA $09 C3/B4AC: 8980 BIT #$80 (did you press B?) C3/B4AE: F00C BEQ $B4BC (branch if not, BPL...) C3/B4B0: 20A90E JSR $0EA9 C3/B4B3: 9C0502 STZ $0205 C3/B4B6: A9FF LDA #$FF C3/B4B8: 8527 STA $27 C3/B4BA: 6426 STZ $26 C3/B4BC: 60 RTS DP $26 is #$26 - buying C3/B4BD: A910 LDA #$10 C3/B4BF: 0445 TSB $45 C3/B4C1: 20390F JSR $0F39 C3/B4C4: 20A6B8 JSR $B8A6 C3/B4C7: 2084BC JSR $BC84 C3/B4CA: 20A8BC JSR $BCA8 C3/B4CD: A509 LDA $09 C3/B4CF: 8980 BIT #$80 (did you press B?) C3/B4D1: F006 BEQ $B4D9 (branch if not, BPL...) C3/B4D3: 20A90E JSR $0EA9 C3/B4D6: 4C60B7 JMP $B760 C3/B4D9: A508 LDA $08 C3/B4DB: 8980 BIT #$80 (did you press A?) C3/B4DD: F006 BEQ $B4E5 (branch if not, BPL...) C3/B4DF: 202FB8 JSR $B82F C3/B4E2: 20E6B7 JSR $B7E6 C3/B4E5: 60 RTS C3/B4E6: A910 LDA #$10 C3/B4E8: 1445 TRB $45 C3/B4EA: A920 LDA #$20 C3/B4EC: 0445 TSB $45 C3/B4EE: 60 RTS C3/B4EF: 200883 JSR $8308 C3/B4F2: 20C2BF JSR $BFC2 C3/B4F5: 4C3857 JMP $5738 C3/B4F8: 200883 JSR $8308 C3/B4FB: 7B TDC C3/B4FC: A54B LDA $4B C3/B4FE: AA TAX C3/B4FF: BD6918 LDA $1869,X (Items currently in inventory) C3/B502: 4C3857 JMP $5738 DP $26 is #$27 - deciding on how many to buy C3/B505: 20E6B4 JSR $B4E6 C3/B508: 20EFB4 JSR $B4EF C3/B50B: 2053BB JSR $BB53 C3/B50E: 20AEBB JSR $BBAE C3/B511: A50B LDA $0B C3/B513: 8901 BIT #$01 C3/B515: F022 BEQ $B539 C3/B517: 20A30E JSR $0EA3 C3/B51A: A528 LDA $28 (Number of items to buy) C3/B51C: C56A CMP $6A (Compare to current maximum) C3/B51E: F05C BEQ $B57C (Branch if equal) C3/B520: E628 INC $28 (Increase the number by one) C3/B522: 2053BB JSR $BB53 C3/B525: AD6018 LDA $1860 (Current GP, low byte) C3/B528: C5F1 CMP $F1 (Compare to that of the price) C3/B52A: AD6118 LDA $1861 (Current GP, middle byte) C3/B52D: E5F2 SBC $F2 (Subtract to that of the price) C3/B52F: AD6218 LDA $1862 (Current GP, high byte) C3/B532: E5F3 SBC $F3 (Subtact to that of the price) C3/B534: B002 BCS $B538 (Exit if money total is sufficient) C3/B536: C628 DEC $28 (Decrease the number of items to buy) C3/B538: 60 RTS C3/B539: A50B LDA $0B C3/B53B: 8902 BIT #$02 C3/B53D: F00B BEQ $B54A C3/B53F: 20A30E JSR $0EA3 C3/B542: A528 LDA $28 C3/B544: C901 CMP #$01 C3/B546: F056 BEQ $B59E C3/B548: C628 DEC $28 C3/B54A: A50B LDA $0B C3/B54C: 8908 BIT #$08 C3/B54E: F033 BEQ $B583 C3/B550: 20A30E JSR $0EA3 C3/B553: A90A LDA #$0A C3/B555: 18 CLC C3/B556: 6528 ADC $28 C3/B558: C56A CMP $6A C3/B55A: F002 BEQ $B55E C3/B55C: B021 BCS $B57F C3/B55E: 8528 STA $28 C3/B560: 2053BB JSR $BB53 C3/B563: AD6018 LDA $1860 C3/B566: C5F1 CMP $F1 C3/B568: AD6118 LDA $1861 C3/B56B: E5F2 SBC $F2 C3/B56D: AD6218 LDA $1862 C3/B570: E5F3 SBC $F3 C3/B572: B007 BCS $B57B C3/B574: A528 LDA $28 C3/B576: 38 SEC C3/B577: E90A SBC #$0A C3/B579: 8528 STA $28 C3/B57B: 60 RTS C3/B57C: 4C9EB5 JMP $B59E C3/B57F: A528 LDA $28 C3/B581: 80DB BRA $B55E C3/B583: A50B LDA $0B C3/B585: 8904 BIT #$04 C3/B587: F015 BEQ $B59E C3/B589: 20A30E JSR $0EA3 C3/B58C: A528 LDA $28 C3/B58E: 38 SEC C3/B58F: E90A SBC #$0A C3/B591: 3007 BMI $B59A C3/B593: C901 CMP #$01 C3/B595: 9007 BCC $B59E C3/B597: 8528 STA $28 C3/B599: 60 RTS C3/B59A: A901 LDA #$01 C3/B59C: 8528 STA $28 C3/B59E: A509 LDA $09 C3/B5A0: 8980 BIT #$80 (did you press B?) C3/B5A2: F006 BEQ $B5AA (branch if not, BPL...) C3/B5A4: 20A90E JSR $0EA9 C3/B5A7: 4CB3B7 JMP $B7B3 C3/B5AA: A508 LDA $08 C3/B5AC: 8980 BIT #$80 (did you press A?) C3/B5AE: F006 BEQ $B5B6 (branch if not, BPL...) C3/B5B0: 20CE0E JSR $0ECE (Makes the Cha-ching sound play) C3/B5B3: 20B7B5 JSR $B5B7 (Buying function) C3/B5B6: 60 RTS Buying function... C3/B5B7: 20C2BF JSR $BFC2 (Function loads A with item index taken from $4B) C3/B5BA: A400 LDY $00 (Load Y with $00) C3/B5BC: D96918 CMP $1869,Y (Is this item [in A] in the inventory [at Y]?) C3/B5BF: F020 BEQ $B5E1 (If so, branch -> Load A with $28) C3/B5C1: C8 INY (Otherwise, increment Y to check the next index) C3/B5C2: C00001 CPY #$0100 (Is Y 255 yet?) C3/B5C5: D0F5 BNE $B5BC (If not, branch -> check inventory list again) C3/B5C7: A400 LDY $00 (Load Y with $00) C3/B5C9: B96918 LDA $1869,Y (Load inventory item Y) C3/B5CC: C9FF CMP #$FF (Is it the "empty" byte?) C3/B5CE: F003 BEQ $B5D3 (If so, branch -> don't need to keep checking, this is it and we don't have it yet) C3/B5D0: C8 INY (Otherwise, increment Y to check the next index) C3/B5D1: 80F6 BRA $B5C9 (Go to the next item) C3/B5D3: A528 LDA $28 (Load A with $28 [holds the quantity to add]) C3/B5D5: 996919 STA $1969,Y (Store it as the quantity of this item [had none before]) C3/B5D8: BF899D7E LDA $7E9D89,X (Load working RAM for the X location on the list) C3/B5DC: 996918 STA $1869,Y (Store it in items currently in inventory at Y) C3/B5DF: 8009 BRA $B5EA (Go to function [see below]) C3/B5E1: A528 LDA $28 (Load A with $28 [the quantity to add]) C3/B5E3: 18 CLC (Clear carry) C3/B5E4: 796919 ADC $1969,Y (Add the old quantity to the new) C3/B5E7: 996919 STA $1969,Y (Store it in the quantity of this item) C3/B5EA: 2053BB JSR $BB53 ????? C3/B5ED: 38 SEC (Set the carry in case of borrowing) C3/B5EE: AD6018 LDA $1860 (Load gold low byte) C3/B5F1: E5F1 SBC $F1 (Subtract the price low byte) C3/B5F3: 8D6018 STA $1860 (Store it in the gold low byte) C3/B5F6: C220 REP #$20 (16 bit memory/accum.) C3/B5F8: AD6118 LDA $1861 (Load the gold upper bytes) C3/B5FB: E5F2 SBC $F2 (Subtract the price upper byte) C3/B5FD: 8D6118 STA $1861 (Store the new balance of the gold upper bytes) C3/B600: E220 SEP #$20 (8 bit memory/accum.) C3/B602: 20CE32 JSR $32CE C3/B605: A0BDC3 LDY #$C3BD C3/B608: 20F902 JSR $02F9 ("Bye! ") C3/B60B: 4C7DB8 JMP $B87D DP $26 is #$28 C3/B60E: A520 LDA $20 C3/B610: D003 BNE $B615 C3/B612: 20B3B7 JSR $B7B3 C3/B615: 60 RTS DP $26 is #$29 - selling C3/B616: A910 LDA #$10 C3/B618: 0445 TSB $45 C3/B61A: 7B TDC C3/B61B: 852A STA $2A C3/B61D: 20FD0E JSR $0EFD C3/B620: 20641F JSR $1F64 C3/B623: B050 BCS $B675 C3/B625: 20227D JSR $7D22 C3/B628: A509 LDA $09 C3/B62A: 8980 BIT #$80 (did you press B?) C3/B62C: F006 BEQ $B634 (branch if not, BPL...) C3/B62E: 20A90E JSR $0EA9 C3/B631: 4C60B7 JMP $B760 C3/B634: A508 LDA $08 C3/B636: 8980 BIT #$80 (did you press A?) C3/B638: F03B BEQ $B675 (branch if not, BPL...) C3/B63A: 20CBBF JSR $BFCB C3/B63D: C9FF CMP #$FF C3/B63F: F02E BEQ $B66F C3/B641: 20B20E JSR $0EB2 (makes the click sound) C3/B644: A9C0 LDA #$C0 C3/B646: 1446 TRB $46 C3/B648: 20156A JSR $6A15 C3/B64B: 20FD0E JSR $0EFD C3/B64E: 206813 JSR $1368 (trigger NMI) C3/B651: A92A LDA #$2A C3/B653: 8526 STA $26 (execute at C3/B676) C3/B655: A20800 LDX #$0008 C3/B658: 8655 STX $55 C3/B65A: A23400 LDX #$0034 C3/B65D: 8657 STX $57 C3/B65F: 20A5BA JSR $BAA5 C3/B662: 20D3BA JSR $BAD3 C3/B665: A0B1C3 LDY #$C3B1 C3/B668: 20F902 JSR $02F9 ("How many?") C3/B66B: 206DB8 JSR $B86D C3/B66E: 60 RTS C3/B66F: 20C00E JSR $0EC0 (makes the buzzer sound) C3/B672: 205D30 JSR $305D C3/B675: 60 RTS DP $26 is #$2A - deciding how many items to sell C3/B676: 20E6B4 JSR $B4E6 C3/B679: 20F8B4 JSR $B4F8 C3/B67C: 2065BB JSR $BB65 C3/B67F: 20B7BB JSR $BBB7 C3/B682: A50B LDA $0B C3/B684: 8901 BIT #$01 C3/B686: F00D BEQ $B695 C3/B688: 20A30E JSR $0EA3 C3/B68B: A528 LDA $28 C3/B68D: C564 CMP $64 C3/B68F: F04F BEQ $B6E0 C3/B691: E628 INC $28 C3/B693: 804B BRA $B6E0 C3/B695: A50B LDA $0B C3/B697: 8902 BIT #$02 C3/B699: F00B BEQ $B6A6 C3/B69B: 20A30E JSR $0EA3 C3/B69E: A528 LDA $28 C3/B6A0: C901 CMP #$01 C3/B6A2: F03C BEQ $B6E0 C3/B6A4: C628 DEC $28 C3/B6A6: A50B LDA $0B C3/B6A8: 8908 BIT #$08 C3/B6AA: F018 BEQ $B6C4 C3/B6AC: 20A30E JSR $0EA3 C3/B6AF: A90A LDA #$0A C3/B6B1: 18 CLC C3/B6B2: 6528 ADC $28 C3/B6B4: C564 CMP $64 C3/B6B6: F006 BEQ $B6BE C3/B6B8: B004 BCS $B6BE C3/B6BA: 8528 STA $28 C3/B6BC: 8022 BRA $B6E0 C3/B6BE: A564 LDA $64 C3/B6C0: 8528 STA $28 C3/B6C2: 801C BRA $B6E0 C3/B6C4: A50B LDA $0B C3/B6C6: 8904 BIT #$04 C3/B6C8: F016 BEQ $B6E0 C3/B6CA: 20A30E JSR $0EA3 C3/B6CD: A528 LDA $28 C3/B6CF: 38 SEC C3/B6D0: E90A SBC #$0A C3/B6D2: 3008 BMI $B6DC C3/B6D4: C901 CMP #$01 C3/B6D6: 9008 BCC $B6E0 C3/B6D8: 8528 STA $28 C3/B6DA: 8004 BRA $B6E0 C3/B6DC: A901 LDA #$01 C3/B6DE: 8528 STA $28 C3/B6E0: A509 LDA $09 C3/B6E2: 8980 BIT #$80 C3/B6E4: F015 BEQ $B6FB C3/B6E6: 20A90E JSR $0EA9 C3/B6E9: A600 LDX $00 C3/B6EB: 8639 STX $39 C3/B6ED: 863B STX $3B C3/B6EF: 205AB9 JSR $B95A C3/B6F2: A026C3 LDY #$C326 C3/B6F5: 20F902 JSR $02F9 (display "Sell") C3/B6F8: 4CCFB7 JMP $B7CF C3/B6FB: A508 LDA $08 C3/B6FD: 8980 BIT #$80 (did you press A?) C3/B6FF: F006 BEQ $B707 (branch if not, BPL...) C3/B701: 20CE0E JSR $0ECE (Makes the Cha-ching sound play) C3/B704: 2008B7 JSR $B708 (this JSR is useless...) C3/B707: 60 RTS Selling function C3/B708: 2065BB JSR $BB65 C3/B70B: 18 CLC C3/B70C: AD6018 LDA $1860 (Load the gold lower byte) C3/B70F: 65F1 ADC $F1 (Add the new amount (probably selling price)) C3/B711: 8D6018 STA $1860 (Store the new total in the gold lower byte) C3/B714: C220 REP #$20 (16 bit memory/accum.) C3/B716: AD6118 LDA $1861 (Load the gold upper bytes) C3/B719: 65F2 ADC $F2 (Add the new amount) C3/B71B: 8D6118 STA $1861 (Store it back to the gold upper bytes) C3/B71E: E220 SEP #$20 (8 bit memory/accum.) C3/B720: A564 LDA $64 (Load $64 [number in possession at first?]) C3/B722: C528 CMP $28 (Did you sell that many?) C3/B724: F00E BEQ $B734 (If you did, branch -> Sold them all) C3/B726: 20CBBF JSR $BFCB (Still have some: Function $BFCB) C3/B729: B96919 LDA $1969,Y (Load quantity of item Y) C3/B72C: 38 SEC (Set the carry in case of borrowing) C3/B72D: E528 SBC $28 (Subtract number sold) C3/B72F: 996919 STA $1969,Y (Store it back to quantity of item Y) C3/B732: 800C BRA $B740 C3/B734: 20CBBF JSR $BFCB (Sold them all: Function $BFCB) C3/B737: A9FF LDA #$FF (Load an "empty" item) C3/B739: 996918 STA $1869,Y (Store it in inventory at Y) C3/B73C: 7B TDC (Clear A) C3/B73D: 996919 STA $1969,Y (Now put zero into quantity for item Y) C3/B740: 20CE32 JSR $32CE C3/B743: A0BDC3 LDY #$C3BD C3/B746: 20F902 JSR $02F9 ("Bye! ") C3/B749: A92B LDA #$2B C3/B74B: 8526 STA $26 (execute at C3/B752) C3/B74D: A920 LDA #$20 C3/B74F: 8520 STA $20 C3/B751: 60 RTS DP $26 is #$2B - sold an item C3/B752: A520 LDA $20 C3/B754: D009 BNE $B75F C3/B756: A600 LDX $00 C3/B758: 8639 STX $39 C3/B75A: 863B STX $3B C3/B75C: 20CFB7 JSR $B7CF C3/B75F: 60 RTS C3/B760: A9C0 LDA #$C0 C3/B762: 1446 TRB $46 C3/B764: 6447 STZ $47 C3/B766: 2086B8 JSR $B886 C3/B769: 208FB8 JSR $B88F C3/B76C: 20FD0E JSR $0EFD C3/B76F: 204EB9 JSR $B94E C3/B772: 206813 JSR $1368 (trigger NMI) C3/B775: 20390F JSR $0F39 C3/B778: 205AB9 JSR $B95A C3/B77B: A026C3 LDY #$C326 C3/B77E: 20F902 JSR $02F9 ("BUY SELL EXIT") C3/B781: A06FC3 LDY #$C36F C3/B784: 20F902 JSR $02F9 ("Hi! Can I help you?") C3/B787: A400 LDY $00 C3/B789: 8439 STY $39 C3/B78B: 843B STY $3B C3/B78D: A925 LDA #$25 C3/B78F: 8526 STA $26 C3/B791: 60 RTS C3/B792: 7B TDC C3/B793: A54B LDA $4B C3/B795: 0A ASL A C3/B796: AA TAX C3/B797: 7C9AB7 JMP ($B79A,X) C3/B79A: A3B7 C3/B79C: C7B7 C3/B79E: A0B7 C3/B7A0: 4CB3B4 JMP $B4B3 C3/B7A3: 20A0B8 JSR $B8A0 C3/B7A6: 20A9B8 JSR $B8A9 C3/B7A9: A908 LDA #$08 C3/B7AB: 1447 TRB $47 C3/B7AD: 209AC0 JSR $C09A C3/B7B0: 203BC2 JSR $C23B C3/B7B3: A00001 LDY #$0100 C3/B7B6: 8439 STY $39 C3/B7B8: A400 LDY $00 C3/B7BA: 843B STY $3B C3/B7BC: 2086B9 JSR $B986 C3/B7BF: 20FDBC JSR $BCFD C3/B7C2: A926 LDA #$26 C3/B7C4: 8526 STA $26 C3/B7C6: 60 RTS C3/B7C7: 20390F JSR $0F39 C3/B7CA: 20E0BB JSR $BBE0 C3/B7CD: 8003 BRA $B7D2 C3/B7CF: 2002BC JSR $BC02 C3/B7D2: 205AB9 JSR $B95A C3/B7D5: A026C3 LDY #$C326 C3/B7D8: 20F902 JSR $02F9 (display "BUY SELL EXIT") C3/B7DB: A0A2C3 LDY #$C3A2 C3/B7DE: 20F902 JSR $02F9 (display "Whatcha got?") C3/B7E1: A929 LDA #$29 C3/B7E3: 8526 STA $26 C3/B7E5: 60 RTS C3/B7E6: 20C2BF JSR $BFC2 C3/B7E9: 202183 JSR $8321 (Multiply A by 30) C3/B7EC: AE3421 LDX $2134 (Load X with the result) C3/B7EF: BF0050D8 LDA $D85000,X (Load item type X) C3/B7F3: 2907 AND #$07 C3/B7F5: D013 BNE $B80A (branch if not a "Tool") C3/B7F7: 2092BC JSR $BC92 C3/B7FA: A564 LDA $64 C3/B7FC: F00C BEQ $B80A (branch if you have none of this tool) C3/B7FE: 20C00E JSR $0EC0 (makes the buzzer sound) C3/B801: A0F5C3 LDY #$C3F5 C3/B804: 20F902 JSR $02F9 (display "One's plenty!") C3/B807: 4C7DB8 JMP $B87D (note that all this does is prevent you from buying more after you already have one...) C3/B80A: AD6218 LDA $1862 C3/B80D: D02F BNE $B83E C3/B80F: 7B TDC C3/B810: A54B LDA $4B C3/B812: 0A ASL A C3/B813: AA TAX C3/B814: C220 REP #$20 (16 bit memory/accum.) C3/B816: BF099F7E LDA $7E9F09,X (Load the price that was stored to working RAM) C3/B81A: CD6018 CMP $1860 (Is it equal to the 2 lower gold bytes?) C3/B81D: E220 SEP #$20 (8 bit memory/accum.) C3/B81F: F01D BEQ $B83E (If so, branch -> ) C3/B821: 901B BCC $B83E (If it's less, branch anyway -> ) C3/B823: 20C00E JSR $0EC0 (Otherwise, it's more than you have -> buzzer sound for you) C3/B826: A0CEC3 LDY #$C3CE C3/B829: 20F902 JSR $02F9 (display "You need more GP!") C3/B82C: 4C7DB8 JMP $B87D C3/B82F: A564 LDA $64 C3/B831: 18 CLC C3/B832: 6565 ADC $65 C3/B834: 8569 STA $69 C3/B836: A963 LDA #$63 C3/B838: 38 SEC C3/B839: E569 SBC $69 C3/B83B: 856A STA $6A C3/B83D: 60 RTS C3/B83E: A569 LDA $69 C3/B840: C963 CMP #$63 C3/B842: 900C BCC $B850 (branch if less than 99 of item) C3/B844: 20C00E JSR $0EC0 (makes the buzzer sound) C3/B847: A0E2C3 LDY #$C3E2 C3/B84A: 20F902 JSR $02F9 (display "Too many!") C3/B84D: 4C7DB8 JMP $B87D C3/B850: 20B20E JSR $0EB2 (makes the click sound) C3/B853: A20800 LDX #$0008 C3/B856: 8655 STX $55 C3/B858: A23400 LDX #$0034 C3/B85B: 8657 STX $57 C3/B85D: A927 LDA #$27 C3/B85F: 8526 STA $26 C3/B861: 20A5BA JSR $BAA5 C3/B864: 20BABA JSR $BABA C3/B867: A096C3 LDY #$C396 C3/B86A: 20F902 JSR $02F9 (display "How many?") C3/B86D: A00001 LDY #$0100 C3/B870: 843B STY $3B C3/B872: A400 LDY $00 C3/B874: 8439 STY $39 C3/B876: 2096A7 JSR $A796 C3/B879: 20F4A6 JSR $A6F4 C3/B87C: 60 RTS C3/B87D: A928 LDA #$28 C3/B87F: 8526 STA $26 C3/B881: A920 LDA #$20 C3/B883: 8520 STA $20 C3/B885: 60 RTS C3/B886: A095B8 LDY #$B895 C3/B889: 4CFE05 JMP $05FE C3/B88C: 202D07 JSR $072D C3/B88F: A09AB8 LDY #$B89A C3/B892: 4C4006 JMP $0640 Hotspot data for shops C3/B895: 01 00 00 03 01 Finger positioning data for shops C3/B89A: 0834 C3/B89C: 3034 C3/B89E: 6034 C3/B8A0: A0AFB8 LDY #$B8AF C3/B8A3: 4CFE05 JMP $05FE C3/B8A6: 202D07 JSR $072D C3/B8A9: A0B4B8 LDY #$B8B4 C3/B8AC: 4C4006 JMP $0640 Hotspot data for buying C3/B8AF: 80 00 00 01 08 Finger positioning data for buying C3/B8B4: 0034 C3/B8B6: 0040 C3/B8B8: 004C C3/B8BA: 0058 C3/B8BC: 0064 C3/B8BE: 0070 C3/B8C0: 007C C3/B8C2: 0088 C3/B8C4: 20286A JSR $6A28 C3/B8C7: 202D6A JSR $6A2D C3/B8CA: 20326A JSR $6A32 C3/B8CD: A01BBC LDY #$BC1B ;Title window in shop/sell menu C3/B8D0: 204103 JSR $0341 C3/B8D3: A01FBC LDY #$BC1F ;Window behind "Hi! Can I help you?" text in shop C3/B8D6: 204103 JSR $0341 C3/B8D9: A023BC LDY #$BC23 ;Buy Sell Exit window in shop C3/B8DC: 204103 JSR $0341 C3/B8DF: A027BC LDY #$BC27 ;Window behind gil in shop C3/B8E2: 204103 JSR $0341 C3/B8E5: A02BBC LDY #$BC2B ;Empty window at the bottom of shop/item list while selling C3/B8E8: 204103 JSR $0341 C3/B8EB: A02FBC LDY #$BC2F ;Title window in buy menu C3/B8EE: 204103 JSR $0341 C3/B8F1: A033BC LDY #$BC33 ;Window behind "Help yourself!" text in buy menu C3/B8F4: 204103 JSR $0341 C3/B8F7: A03BBC LDY #$BC3B ;Window behind characters in buy menu C3/B8FA: 204103 JSR $0341 C3/B8FD: A037BC LDY #$BC37 ;Window behind item list in buy menu C3/B900: 204103 JSR $0341 C3/B903: A03FBC LDY #$BC3F ;Title window while buying/selling item C3/B906: 204103 JSR $0341 C3/B909: A053BC LDY #$BC53 ;Gil Owned Equipped window while buying/selling item C3/B90C: 204103 JSR $0341 C3/B90F: A04BBC LDY #$BC4B ;Window behind description while buying/selling item C3/B912: 204103 JSR $0341 C3/B915: A043BC LDY #$BC43 ;Window behind "How many?" while buying/selling item C3/B918: 204103 JSR $0341 C3/B91B: A04FBC LDY #$BC4F ;Window behind characters while buying/selling item C3/B91E: 204103 JSR $0341 C3/B921: A047BC LDY #$BC47 ;Window behind item being bought/sold in shop C3/B924: 204103 JSR $0341 C3/B927: 20520E JSR $0E52 C3/B92A: 20600E JSR $0E60 C3/B92D: 204EB9 JSR $B94E C3/B930: 20280E JSR $0E28 C3/B933: 20440E JSR $0E44 C3/B936: 205AB9 JSR $B95A C3/B939: A026C3 LDY #$C326 C3/B93C: 20F902 JSR $02F9 (display "BUY SELL EXIT") C3/B93F: A06FC3 LDY #$C36F C3/B942: 20F902 JSR $02F9 (display "Hi! Can I help you?") C3/B945: 20991B JSR $1B99 C3/B948: 206E0E JSR $0E6E C3/B94B: 4C7C0E JMP $0E7C C3/B94E: 20156A JSR $6A15 C3/B951: 20196A JSR $6A19 C3/B954: 201E6A JSR $6A1E C3/B957: 4C236A JMP $6A23 C3/B95A: 203C6A JSR $6A3C C3/B95D: 20416A JSR $6A41 C3/B960: 20466A JSR $6A46 C3/B963: 20D3BF JSR $BFD3 C3/B966: 20F7C2 JSR $C2F7 C3/B969: A038C3 LDY #$C338 C3/B96C: 20F902 JSR $02F9 (display "GP") C3/B96F: 20F2C2 JSR $C2F2 C3/B972: AC6018 LDY $1860 C3/B975: 84F1 STY $F1 C3/B977: AD6218 LDA $1862 C3/B97A: 85F3 STA $F3 C3/B97C: 208205 JSR $0582 C3/B97F: A2337A LDX #$7A33 C3/B982: 20AC04 JSR $04AC C3/B985: 60 RTS C3/B986: 205AB9 JSR $B95A C3/B989: A085C3 LDY #$C385 C3/B98C: 20F902 JSR $02F9 (display "Help yourself!") C3/B98F: 20E1C2 JSR $C2E1 (display "Owned:" and "Equipped:") C3/B992: A400 LDY $00 C3/B994: 84F1 STY $F1 C3/B996: 64E6 STZ $E6 C3/B998: C220 REP #$20 (16 bit memory/accum.) C3/B99A: A5F1 LDA $F1 C3/B99C: 0A ASL A C3/B99D: AA TAX C3/B99E: BFFCB9C3 LDA $C3B9FC,X C3/B9A2: 8F899E7E STA $7E9E89 C3/B9A6: A5F1 LDA $F1 C3/B9A8: 18 CLC C3/B9A9: 6567 ADC $67 C3/B9AB: 1A INC A C3/B9AC: AA TAX C3/B9AD: E220 SEP #$20 (8 bit memory/accum.) C3/B9AF: BFC07AC4 LDA $C47AC0,X C3/B9B3: A6F1 LDX $F1 C3/B9B5: 9F899D7E STA $7E9D89,X C3/B9B9: C9FF CMP #$FF C3/B9BB: F027 BEQ $B9E4 C3/B9BD: 2068C0 JSR $C068 (write the item name) C3/B9C0: 20D97F JSR $7FD9 (write text written to $2180) C3/B9C3: A6F1 LDX $F1 C3/B9C5: BF899D7E LDA $7E9D89,X C3/B9C9: 202183 JSR $8321 (Multiply the index by 30) C3/B9CC: 200CBA JSR $BA0C C3/B9CF: 202E05 JSR $052E C3/B9D2: C220 REP #$20 (16 bit memory/accum.) C3/B9D4: AF899E7E LDA $7E9E89 C3/B9D8: 18 CLC C3/B9D9: 691A00 ADC #$001A C3/B9DC: AA TAX C3/B9DD: E220 SEP #$20 (8 bit memory/accum.) C3/B9DF: 209A04 JSR $049A (write GP cost) C3/B9E2: E6E6 INC $E6 C3/B9E4: A4F1 LDY $F1 C3/B9E6: C8 INY C3/B9E7: 84F1 STY $F1 C3/B9E9: C00800 CPY #$0008 (have we done 8 items?) C3/B9EC: D0AA BNE $B998 (branch if not) C3/B9EE: A5E6 LDA $E6 C3/B9F0: 8554 STA $54 C3/B9F2: 2057BC JSR $BC57 C3/B9F5: 2084BC JSR $BC84 C3/B9F8: 20A8BC JSR $BCA8 C3/B9FB: 60 RTS Data C3/B9FC: 0D7A (position of item 1) C3/B9FE: 8D7A (position of item 2) C3/BA00: 0D7B (position of item 3) C3/BA02: 8D7B (position of item 4) C3/BA04: 0D7C (position of item 5) C3/BA06: 8D7C (position of item 6) C3/BA08: 0D7D (position of item 7) C3/BA0A: 8D7D (position of item 8) C3/BA0C: C220 REP #$20 C3/BA0E: AD3421 LDA $2134 C3/BA11: 18 CLC C3/BA12: 691C00 ADC #$001C C3/BA15: AA TAX C3/BA16: BF0050D8 LDA $D85000,X (Load item type X) C3/BA1A: 202CBA JSR $BA2C C3/BA1D: 85F3 STA $F3 C3/BA1F: A5F1 LDA $F1 C3/BA21: 0A ASL A C3/BA22: AA TAX C3/BA23: A5F3 LDA $F3 C3/BA25: 9F099F7E STA $7E9F09,X C3/BA29: E220 SEP #$20 (8 bit memory/accum.) C3/BA2B: 60 RTS Modify shop costs, depending on Shop's Cost Modifier and/or leader of party C3/BA2C: 48 PHA C3/BA2D: A667 LDX $67 C3/BA2F: 7B TDC C3/BA30: E220 SEP #$20 (8 bit memory/accum.) C3/BA32: BFC07AC4 LDA $C47AC0,X (Shop modifcation byte) C3/BA36: 2938 AND #$38 (only uses bits 3, 4, and 5) C3/BA38: C220 REP #$20 (16 bit memory/accum.) C3/BA3A: 4A LSR A C3/BA3B: 4A LSR A C3/BA3C: AA TAX C3/BA3D: 68 PLA C3/BA3E: 7C41BA JMP ($BA41,X) C3/BA41: 55BA (1.0x cost) C3/BA43: 4FBA (1.5x cost) C3/BA45: 56BA (2.0x cost) C3/BA47: 58BA (0.5x cost) C3/BA49: 5ABA (0.5x cost if female leads, 1.5x otherwise) C3/BA4B: 76BA (0.5x cost if male leads, 1.5x otherwise) C3/BA4D: 92BA (0.5x cost if Edgar leads, 1.0x otherwise) C3/BA4F: 85E7 STA $E7 C3/BA51: 4A LSR A C3/BA52: 18 CLC C3/BA53: 65E7 ADC $E7 C3/BA55: 60 RTS C3/BA56: 0A ASL A C3/BA57: 60 RTS C3/BA58: 4A LSR A C3/BA59: 60 RTS C3/BA5A: 48 PHA C3/BA5B: E220 SEP #$20 (8 bit memory/accum.) C3/BA5D: AD0202 LDA $0202 (party leader) C3/BA60: C906 CMP #$06 (is it Celes?) C3/BA62: F00D BEQ $BA71 (branch if so, cut cost in half) C3/BA64: C908 CMP #$08 (is it Relm?) C3/BA66: F009 BEQ $BA71 (branch if so, cut cost in half) C3/BA68: C900 CMP #$00 (is it Terra?) C3/BA6A: F005 BEQ $BA71 (branch if so, cut cost in half) C3/BA6C: C220 REP #$20 (16 bit memory/accum.) C3/BA6E: 68 PLA C3/BA6F: 80DE BRA $BA4F (cost is 1.5x) C3/BA71: C220 REP #$20 (16 bit memory/accum.) C3/BA73: 68 PLA C3/BA74: 80E2 BRA $BA58 (cost is 0.5x) C3/BA76: 48 PHA C3/BA77: E220 SEP #$20 (8 bit memory/accum.) C3/BA79: AD0202 LDA $0202 (party leader) C3/BA7C: C906 CMP #$06 (is it Celes?) C3/BA7E: F00D BEQ $BA8D (branch if so, make cost half again) C3/BA80: C908 CMP #$08 (is it Relm?) C3/BA82: F009 BEQ $BA8D (branch if so, make cost half again) C3/BA84: C900 CMP #$00 (is it Terra?) C3/BA86: F005 BEQ $BA8D (branch if so, make cost half again) C3/BA88: C220 REP #$20 (16 bit memory/accum.) C3/BA8A: 68 PLA C3/BA8B: 80CB BRA $BA58 (cost is 0.5x) C3/BA8D: C220 REP #$20 (16 bit memory/accum.) C3/BA8F: 68 PLA C3/BA90: 80BD BRA $BA4F (cost is 1.5x) C3/BA92: 48 PHA C3/BA93: E220 SEP #$20 (8 bit memory/accum.) C3/BA95: AD0202 LDA $0202 (party leader) C3/BA98: C904 CMP #$04 (is it Edgar?) C3/BA9A: F004 BEQ $BAA0 C3/BA9C: C220 REP #$20 (16 bit memory/accum.) C3/BA9E: 68 PLA C3/BA9F: 60 RTS C3/BAA0: C220 REP #$20 (16 bit memory/accum.) C3/BAA2: 68 PLA C3/BAA3: 80B3 BRA $BA58 (cost is 0.5x) C3/BAA5: 20390F JSR $0F39 C3/BAA8: 205AB9 JSR $B95A C3/BAAB: 20E1C2 JSR $C2E1 (display "Owned:" and "Equipped:") C3/BAAE: C220 REP #$20 (16 bit memory/accum.) C3/BAB0: A90F7A LDA #$7A0F (position of item aftering confirming wanting to buy) C3/BAB3: 8F899E7E STA $7E9E89 C3/BAB7: E220 SEP #$20 (8 bit memory/accum.) C3/BAB9: 60 RTS C3/BABA: 20ECBA JSR $BAEC C3/BABD: 2084BC JSR $BC84 C3/BAC0: 20A8BC JSR $BCA8 C3/BAC3: 20C2BF JSR $BFC2 C3/BAC6: 2068C0 JSR $C068 (write item name) C3/BAC9: 20D97F JSR $7FD9 C3/BACC: A901 LDA #$01 C3/BACE: 8528 STA $28 C3/BAD0: 4CAEBB JMP $BBAE C3/BAD3: 209DBC JSR $BC9D C3/BAD6: 2066BF JSR $BF66 C3/BAD9: 20F2BA JSR $BAF2 C3/BADC: 20CBBF JSR $BFCB C3/BADF: 2068C0 JSR $C068 (write item name) C3/BAE2: 20D97F JSR $7FD9 C3/BAE5: A901 LDA #$01 C3/BAE7: 8528 STA $28 C3/BAE9: 4CB7BB JMP $BBB7 C3/BAEC: 20C2BF JSR $BFC2 C3/BAEF: 4CF8BA JMP $BAF8 (BRA is better) C3/BAF2: 20CBBF JSR $BFCB C3/BAF5: 4CF8BA JMP $BAF8 (why?) C3/BAF8: 202183 JSR $8321 (Multiply A by 30) C3/BAFB: AE3421 LDX $2134 (Load X with the result) C3/BAFE: BF0050D8 LDA $D85000,X (Load item type X) C3/BB02: 2907 AND #$07 (Zero out upper nibble) C3/BB04: F04C BEQ $BB52 (If it's a tool [item type 0], branch and exit) C3/BB06: C906 CMP #$06 (Is it an "item" item?) C3/BB08: F048 BEQ $BB52 (If it is, branch and exit) C3/BB0A: C901 CMP #$01 (Is it a weapon?) C3/BB0C: F022 BEQ $BB30 (If it is, branch ) C3/BB0E: 20F2C2 JSR $C2F2 (set text color to white) C3/BB11: BF1450D8 LDA $D85014,X (Load def. pwr) C3/BB15: 20E004 JSR $04E0 C3/BB18: A2A97B LDX #$7BA9 (position of defense value) C3/BB1B: 20C004 JSR $04C0 C3/BB1E: 20F7C2 JSR $C2F7 (set text color to blue) C3/BB21: A061C3 LDY #$C361 C3/BB24: 20F902 JSR $02F9 ("Defense") C3/BB27: A06BC3 LDY #$C36B C3/BB2A: 20F902 JSR $02F9 ("...") C3/BB2D: 4CF2C2 JMP $C2F2 (set text color to white) C3/BB30: 20F2C2 JSR $C2F2 (set text color to white) C3/BB33: BF1450D8 LDA $D85014,X (Load attack pwr) C3/BB37: 20E004 JSR $04E0 C3/BB3A: A2A97B LDX #$7BA9 (position of attack's value) C3/BB3D: 20C004 JSR $04C0 C3/BB40: 20F7C2 JSR $C2F7 (set text color white) C3/BB43: A057C3 LDY #$C357 C3/BB46: 20F902 JSR $02F9 ("Bat Pwr") C3/BB49: A06BC3 LDY #$C36B C3/BB4C: 20F902 JSR $02F9 ("...") C3/BB4F: 20F2C2 JSR $C2F2 (set text color to white) C3/BB52: 60 RTS C3/BB53: 7B TDC C3/BB54: A54B LDA $4B C3/BB56: 0A ASL A C3/BB57: AA TAX C3/BB58: C220 REP #$20 (16 bit memory/accum.) C3/BB5A: BF099F7E LDA $7E9F09,X (Load the price from working RAM) C3/BB5E: 85F1 STA $F1 (Store to $F1) C3/BB60: E220 SEP #$20 (8 bit memory/accum.) C3/BB62: 4C81BB JMP $BB81 (BRA would work here) C3/BB65: 20CBBF JSR $BFCB C3/BB68: 202183 JSR $8321 (Multiply A by 30) C3/BB6B: C220 REP #$20 (16 bit memory/accum.) C3/BB6D: AD3421 LDA $2134 (Load X with the result) C3/BB70: 18 CLC C3/BB71: 691C00 ADC #$001C C3/BB74: AA TAX C3/BB75: BF0050D8 LDA $D85000,X (With above, this loads the price) C3/BB79: 4A LSR A (Divide by 2) C3/BB7A: 85F1 STA $F1 (Store the result in $F1) C3/BB7C: E220 SEP #$20 (8 bit memory/accum.) C3/BB7E: 4C81BB JMP $BB81 (why?) Multiplier (16-bit $F1 * 8-bit $28 -> 24-bit $ED) C3/BB81: A5F1 LDA $F1 C3/BB83: 8D0242 STA $4202 C3/BB86: A528 LDA $28 C3/BB88: 8D0342 STA $4203 C3/BB8B: 64EF STZ $EF C3/BB8D: EA NOP C3/BB8E: EA NOP C3/BB8F: AE1642 LDX $4216 C3/BB92: 86ED STX $ED C3/BB94: A5F2 LDA $F2 C3/BB96: 8D0242 STA $4202 C3/BB99: A528 LDA $28 C3/BB9B: 8D0342 STA $4203 C3/BB9E: C221 REP #$21 (16 bit memory/accum. and clear carry) C3/BBA0: A5EE LDA $EE C3/BBA2: 6D1642 ADC $4216 C3/BBA5: 85F2 STA $F2 C3/BBA7: E220 SEP #$20 (8 bit memory/accum.) C3/BBA9: A5ED LDA $ED C3/BBAB: 85F1 STA $F1 C3/BBAD: 60 RTS C3/BBAE: 20C0BB JSR $BBC0 (display "GP" and number to buy) C3/BBB1: 2053BB JSR $BB53 C3/BBB4: 4CD7BB JMP $BBD7 C3/BBB7: 20C0BB JSR $BBC0 (display "GP" and number to sell) C3/BBBA: 2065BB JSR $BB65 C3/BBBD: 4CD7BB JMP $BBD7 C3/BBC0: 20F7C2 JSR $C2F7 (set text color blue) C3/BBC3: A03DC3 LDY #$C33D C3/BBC6: 20F902 JSR $02F9 ("GP") C3/BBC9: 20F2C2 JSR $C2F2 (set text color to white) C3/BBCC: A528 LDA $28 C3/BBCE: 20E004 JSR $04E0 C3/BBD1: A22B7A LDX #$7A2B (position of how many to buy/sell) C3/BBD4: 4CB604 JMP $04B6 C3/BBD7: 208205 JSR $0582 C3/BBDA: A2A17A LDX #$7AA1 (position of price of how many at x cost) C3/BBDD: 4CAC04 JMP $04AC (write price of how many at x cost) C3/BBE0: A901 LDA #$01 C3/BBE2: 8D0721 STA $2107 C3/BBE5: A9F5 LDA #$F5 C3/BBE7: 855C STA $5C C3/BBE9: A90A LDA #$0A C3/BBEB: 855A STA $5A C3/BBED: A901 LDA #$01 C3/BBEF: 855B STA $5B C3/BBF1: 201C7D JSR $7D1C C3/BBF4: A44D LDY $4D C3/BBF6: 844F STY $4F C3/BBF8: A54A LDA $4A C3/BBFA: 18 CLC C3/BBFB: 6550 ADC $50 C3/BBFD: 8550 STA $50 C3/BBFF: 20257D JSR $7D25 C3/BC02: 200D7E JSR $7E0D C3/BC05: 201F09 JSR $091F (set arrow's initial position) C3/BC08: C220 REP #$20 (16 bit memory/accum.) C3/BC0A: A97000 LDA #$0070 C3/BC0D: 9F4A357E STA $7E354A,X C3/BC11: A95800 LDA #$0058 C3/BC14: 9FCA347E STA $7E34CA,X C3/BC18: E220 SEP #$20 (8 bit memory/accum.) C3/BC1A: 60 RTS C3/BC1B: 8B PHB C3/BC1C: 58 CLI C3/BC1D: 0702 ORA [$02] C3/BC1F: 9D5813 STA $1358,X C3/BC22: 028B COP #$8B C3/BC24: 591002 EOR $0210,Y C3/BC27: AF590A02 LDA $020A59 C3/BC2B: 8B PHB C3/BC2C: 5A PHY C3/BC2D: 1C108B TRB $8B10 C3/BC30: 60 RTS C3/BC31: 0702 ORA [$02] C3/BC33: 9D6013 STA $1360,X C3/BC36: 028B COP #$8B C3/BC38: 611C ADC ($1C,X) C3/BC3A: 0C0B65 TSB $650B C3/BC3D: 1C068B TRB $8B06 C3/BC40: 68 PLA C3/BC41: 0702 ORA [$02] C3/BC43: 9D6813 STA $1368,X C3/BC46: 028B COP #$8B C3/BC48: 6911 ADC #$11 C3/BC4A: 07CB ORA [$CB] C3/BC4C: 6B RTL C3/BC4D: 1C030B TRB $0B03 C3/BC50: 6D1C06 ADC $061C C3/BC53: B169 LDA ($69),Y C3/BC55: 0907 ORA #$07 C3/BC57: A2C99D LDX #$9DC9 C3/BC5A: 8E8121 STX $2181 C3/BC5D: 7B TDC C3/BC5E: AA TAX C3/BC5F: DA PHX C3/BC60: A400 LDY $00 C3/BC62: BF899D7E LDA $7E9D89,X C3/BC66: D96918 CMP $1869,Y (Items currently in inventory) C3/BC69: F00B BEQ $BC76 C3/BC6B: C8 INY C3/BC6C: C00001 CPY #$0100 C3/BC6F: D0F5 BNE $BC66 C3/BC71: 9C8021 STZ $2180 (end this string) C3/BC74: 8006 BRA $BC7C C3/BC76: B96919 LDA $1969,Y (Quantity of items) C3/BC79: 8D8021 STA $2180 C3/BC7C: FA PLX C3/BC7D: E8 INX C3/BC7E: E00800 CPX #$0008 C3/BC81: D0DC BNE $BC5F C3/BC83: 60 RTS C3/BC84: 2092BC JSR $BC92 C3/BC87: A564 LDA $64 C3/BC89: 20E004 JSR $04E0 C3/BC8C: A23F7B LDX #$7B3F (position of number owned) C3/BC8F: 4CB604 JMP $04B6 (write number owned) C3/BC92: 7B TDC C3/BC93: A54B LDA $4B C3/BC95: AA TAX C3/BC96: BFC99D7E LDA $7E9DC9,X C3/BC9A: 8564 STA $64 C3/BC9C: 60 RTS C3/BC9D: 7B TDC C3/BC9E: A54B LDA $4B C3/BCA0: A8 TAY C3/BCA1: B96919 LDA $1969,Y (Quantity of items) C3/BCA4: 8564 STA $64 C3/BCA6: 80DF BRA $BC87 C3/BCA8: 20C2BF JSR $BFC2 C3/BCAB: 4C69BF JMP $BF69 C3/BCAE: 20C9BC JSR $BCC9 C3/BCB1: 9014 BCC $BCC7 C3/BCB3: 7B TDC C3/BCB4: A54B LDA $4B C3/BCB6: C220 REP #$20 (16 bit memory/accum.) C3/BCB8: 0A ASL A C3/BCB9: 0A ASL A C3/BCBA: 0A ASL A C3/BCBB: 0A ASL A C3/BCBC: E220 SEP #$20 (8 bit memory/accum.) C3/BCBE: 18 CLC C3/BCBF: 65E0 ADC $E0 C3/BCC1: AA TAX C3/BCC2: BF8DAA7E LDA $7EAA8D,X (Load inventory location X) C3/BCC6: 60 RTS C3/BCC7: 7B TDC C3/BCC8: 60 RTS C3/BCC9: 8B PHB C3/BCCA: A900 LDA #$00 C3/BCCC: 48 PHA C3/BCCD: AB PLB C3/BCCE: 7B TDC C3/BCCF: 8DD811 STA $11D8 C3/BCD2: 7B TDC C3/BCD3: A5E0 LDA $E0 C3/BCD5: AA TAX C3/BCD6: BF099E7E LDA $7E9E09,X C3/BCDA: 20489C JSR $9C48 C3/BCDD: 7B TDC C3/BCDE: A54B LDA $4B C3/BCE0: AA TAX C3/BCE1: BF899D7E LDA $7E9D89,X C3/BCE5: 202183 JSR $8321 (Multiply A by 30) C3/BCE8: AE3421 LDX $2134 (Load X with the result) C3/BCEB: C220 REP #$20 (16 bit memory/accum.) C3/BCED: BF0150D8 LDA $D85001,X (Load equippable chars) C3/BCF1: 25E7 AND $E7 C3/BCF3: E220 SEP #$20 (8 bit memory/accum.) C3/BCF5: F003 BEQ $BCFA C3/BCF7: AB PLB C3/BCF8: 38 SEC C3/BCF9: 60 RTS C3/BCFA: AB PLB C3/BCFB: 18 CLC C3/BCFC: 60 RTS C3/BCFD: 204FBF JSR $BF4F C3/BD00: A08DAA LDY #$AA8D C3/BD03: 84F3 STY $F3 (this seems pointless, why not just store it directly?) C3/BD05: 7B TDC C3/BD06: AA TAX C3/BD07: A4F3 LDY $F3 C3/BD09: 8C8121 STY $2181 C3/BD0C: DA PHX C3/BD0D: BF899D7E LDA $7E9D89,X (Load index X out of RAM) C3/BD11: 859F STA $9F (Store it in $9F) C3/BD13: 202183 JSR $8321 (Multiply A by 30) C3/BD16: AE3421 LDX $2134 (Load X with the result) C3/BD19: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/BD1D: 859E STA $9E (Store it in $9E) C3/BD1F: BF0050D8 LDA $D85000,X (Load item type) C3/BD23: 2907 AND #$07 (Zero out upper nibble) C3/BD25: C901 CMP #$01 (Is it a weapon [type 1]?) C3/BD27: F07C BEQ $BDA5 (If so, branch -> go to weapon handler) C3/BD29: C902 CMP #$02 (Is it an armor [type 2]?) C3/BD2B: F018 BEQ $BD45 (If so, branch -> go to armor handler) C3/BD2D: C903 CMP #$03 (Is it a shield [type 3]?) C3/BD2F: F00E BEQ $BD3F (If so, branch -> go to shield handler) C3/BD31: C904 CMP #$04 (Is it a hat [type 4]?) C3/BD33: F00D BEQ $BD42 (If so, branch -> go to hat handler) C3/BD35: C905 CMP #$05 (Is it a relic [type 5]?) C3/BD37: F003 BEQ $BD3C (If so, branch -> go to relic handler) C3/BD39: 4C0ABF JMP $BF0A (Otherwise, it must be an "item" item or tool, go to $BF0A to handle it) C3/BD3C: 4C18BF JMP $BF18 (Go to relic handler at $BF18) C3/BD3F: 4C35BE JMP $BE35 (Go to shield handler at $BE35) C3/BD42: 4CBDBE JMP $BEBD (Go to hat handler at $BEBD) Armor Handler (begrudgingly) C3/BD45: 7B TDC C3/BD46: AA TAX C3/BD47: DA PHX C3/BD48: C220 REP #$20 (16 bit memory/accum.) C3/BD4A: ADDC1E LDA $1EDC C3/BD4D: 3F679CC3 AND $C39C67,X C3/BD51: F034 BEQ $BD87 C3/BD53: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BD57: A8 TAY C3/BD58: E220 SEP #$20 (8 bit memory/accum.) C3/BD5A: 7B TDC C3/BD5B: B92200 LDA $0022,Y C3/BD5E: C59F CMP $9F C3/BD60: F01C BEQ $BD7E C3/BD62: C9FF CMP #$FF C3/BD64: F010 BEQ $BD76 C3/BD66: 202183 JSR $8321 (Multiply A by 30) C3/BD69: AE3421 LDX $2134 (Put the result in X) C3/BD6C: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/BD70: C59E CMP $9E C3/BD72: F00E BEQ $BD82 C3/BD74: B004 BCS $BD7A C3/BD76: A902 LDA #$02 C3/BD78: 800A BRA $BD84 C3/BD7A: A903 LDA #$03 C3/BD7C: 8006 BRA $BD84 C3/BD7E: A901 LDA #$01 C3/BD80: 8002 BRA $BD84 C3/BD82: A904 LDA #$04 C3/BD84: 8D8021 STA $2180 C3/BD87: FA PLX C3/BD88: E8 INX C3/BD89: E8 INX C3/BD8A: E02000 CPX #$0020 (have we checked 32 armors yet?) C3/BD8D: D0B8 BNE $BD47 C3/BD8F: C221 REP #$21 C3/BD91: A5F3 LDA $F3 C3/BD93: 691000 ADC #$0010 C3/BD96: 85F3 STA $F3 C3/BD98: E220 SEP #$20 (8 bit memory/accum.) C3/BD9A: FA PLX C3/BD9B: E8 INX C3/BD9C: E00800 CPX #$0008 C3/BD9F: D001 BNE $BDA2 C3/BDA1: 60 RTS C3/BDA2: 4C07BD JMP $BD07 Weapon Handler (grrr) C3/BDA5: 7B TDC C3/BDA6: AA TAX C3/BDA7: DA PHX C3/BDA8: C220 REP #$20 (16 bit memory/accum.) C3/BDAA: ADDC1E LDA $1EDC C3/BDAD: 3F679CC3 AND $C39C67,X C3/BDB1: F074 BEQ $BE27 C3/BDB3: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BDB7: A8 TAY C3/BDB8: E220 SEP #$20 (8 bit memory/accum.) C3/BDBA: B91F00 LDA $001F,Y C3/BDBD: C59F CMP $9F C3/BDBF: F05D BEQ $BE1E C3/BDC1: B92000 LDA $0020,Y C3/BDC4: C59F CMP $9F C3/BDC6: F056 BEQ $BE1E C3/BDC8: 7B TDC C3/BDC9: B91F00 LDA $001F,Y C3/BDCC: C9FF CMP #$FF (Is it the "empty" item?) C3/BDCE: F010 BEQ $BDE0 C3/BDD0: 202183 JSR $8321 (Multiply A by 30) C3/BDD3: AE3421 LDX $2134 (Load X with the result) C3/BDD6: BF0050D8 LDA $D85000,X (Load item type X) C3/BDDA: 2907 AND #$07 (Zero out upper nibble) C3/BDDC: C901 CMP #$01 (Is it a weapon [type 1]?) C3/BDDE: F01E BEQ $BDFE (If so, branch -> ) C3/BDE0: 7B TDC (Otherwise, it should be an armor...Clear A) C3/BDE1: B92000 LDA $0020,Y C3/BDE4: C9FF CMP #$FF (Is it the "empty" item?) C3/BDE6: F02E BEQ $BE16 (If so, branch -> ) C3/BDE8: 202183 JSR $8321 (Multiply A by 30) C3/BDEB: AE3421 LDX $2134 (Load X with the result) C3/BDEE: BF0050D8 LDA $D85000,X (Load item X type) C3/BDF2: 2907 AND #$07 (Zero out upper nibble) C3/BDF4: C901 CMP #$01 (Is it a weapon [type 1]?) C3/BDF6: D006 BNE $BDFE (If not, branch -> ) C3/BDF8: 7B TDC C3/BDF9: B92000 LDA $0020,Y C3/BDFC: 8004 BRA $BE02 C3/BDFE: 7B TDC (Clear A) C3/BDFF: B91F00 LDA $001F,Y C3/BE02: C9FF CMP #$FF (Is it the "empty" item?) C3/BE04: F010 BEQ $BE16 C3/BE06: 202183 JSR $8321 (Multiply A by 30) C3/BE09: AE3421 LDX $2134 (Load X with the result) C3/BE0C: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/BE10: C59E CMP $9E C3/BE12: F00E BEQ $BE22 C3/BE14: B004 BCS $BE1A C3/BE16: A902 LDA #$02 C3/BE18: 800A BRA $BE24 C3/BE1A: A903 LDA #$03 C3/BE1C: 8006 BRA $BE24 C3/BE1E: A901 LDA #$01 C3/BE20: 8002 BRA $BE24 C3/BE22: A904 LDA #$04 C3/BE24: 8D8021 STA $2180 C3/BE27: FA PLX C3/BE28: E8 INX C3/BE29: E8 INX C3/BE2A: E02000 CPX #$0020 (have we checked 32 weapons yet? there's 90 in all...) C3/BE2D: D003 BNE $BE32 (branch if not) C3/BE2F: 4C8FBD JMP $BD8F C3/BE32: 4CA7BD JMP $BDA7 Shield Handler C3/BE35: 7B TDC C3/BE36: AA TAX C3/BE37: DA PHX C3/BE38: C220 REP #$20 (16 bit memory/accum.) C3/BE3A: ADDC1E LDA $1EDC C3/BE3D: 3F679CC3 AND $C39C67,X C3/BE41: F06C BEQ $BEAF C3/BE43: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BE47: A8 TAY C3/BE48: E220 SEP #$20 (8 bit memory/accum.) C3/BE4A: B91F00 LDA $001F,Y C3/BE4D: C59F CMP $9F C3/BE4F: F055 BEQ $BEA6 C3/BE51: B92000 LDA $0020,Y C3/BE54: C59F CMP $9F C3/BE56: F04E BEQ $BEA6 C3/BE58: 7B TDC C3/BE59: B92000 LDA $0020,Y C3/BE5C: 202183 JSR $8321 (Multiply A by 30) C3/BE5F: AE3421 LDX $2134 (Load X with the result) C3/BE62: BF0050D8 LDA $D85000,X (Load item type) C3/BE66: 2907 AND #$07 (Zero out upper nibble) C3/BE68: C903 CMP #$03 (Is it a shield [type 3]?) C3/BE6A: F01A BEQ $BE86 C3/BE6C: 7B TDC C3/BE6D: B91F00 LDA $001F,Y C3/BE70: 202183 JSR $8321 (Multiply A by 30) C3/BE73: AE3421 LDX $2134 (Load X with the result) C3/BE76: BF0050D8 LDA $D85000,X (Load item type) C3/BE7A: 2907 AND #$07 (Zero out upper nibble) C3/BE7C: C903 CMP #$03 (Is it a shield [type 3]?) C3/BE7E: D01E BNE $BE9E C3/BE80: 7B TDC C3/BE81: B91F00 LDA $001F,Y C3/BE84: 8004 BRA $BE8A C3/BE86: 7B TDC C3/BE87: B92000 LDA $0020,Y C3/BE8A: C9FF CMP #$FF C3/BE8C: F010 BEQ $BE9E C3/BE8E: 202183 JSR $8321 (Multiply A by 30) C3/BE91: AE3421 LDX $2134 (Load X with the result) C3/BE94: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/BE98: C59E CMP $9E C3/BE9A: F00E BEQ $BEAA C3/BE9C: B004 BCS $BEA2 C3/BE9E: A902 LDA #$02 C3/BEA0: 800A BRA $BEAC C3/BEA2: A903 LDA #$03 C3/BEA4: 8006 BRA $BEAC C3/BEA6: A901 LDA #$01 C3/BEA8: 8002 BRA $BEAC C3/BEAA: A904 LDA #$04 C3/BEAC: 8D8021 STA $2180 C3/BEAF: FA PLX C3/BEB0: E8 INX C3/BEB1: E8 INX C3/BEB2: E02000 CPX #$0020 (have we checked 32 shields yet? there's 15 in all...) C3/BEB5: D003 BNE $BEBA C3/BEB7: 4C8FBD JMP $BD8F C3/BEBA: 4C37BE JMP $BE37 Hat Handler C3/BEBD: 7B TDC C3/BEBE: AA TAX C3/BEBF: DA PHX C3/BEC0: C220 REP #$20 (16 bit memory/accum.) C3/BEC2: ADDC1E LDA $1EDC C3/BEC5: 3F679CC3 AND $C39C67,X C3/BEC9: F034 BEQ $BEFF C3/BECB: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BECF: A8 TAY C3/BED0: E220 SEP #$20 (8 bit memory/accum.) C3/BED2: 7B TDC C3/BED3: B92100 LDA $0021,Y C3/BED6: C59F CMP $9F C3/BED8: F01C BEQ $BEF6 C3/BEDA: C9FF CMP #$FF C3/BEDC: F010 BEQ $BEEE C3/BEDE: 202183 JSR $8321 (Multiply A by 30) C3/BEE1: AE3421 LDX $2134 (Load X with the result) C3/BEE4: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/BEE8: C59E CMP $9E C3/BEEA: F00E BEQ $BEFA C3/BEEC: B004 BCS $BEF2 C3/BEEE: A902 LDA #$02 C3/BEF0: 800A BRA $BEFC C3/BEF2: A903 LDA #$03 C3/BEF4: 8006 BRA $BEFC C3/BEF6: A901 LDA #$01 C3/BEF8: 8002 BRA $BEFC C3/BEFA: A904 LDA #$04 C3/BEFC: 8D8021 STA $2180 C3/BEFF: FA PLX C3/BF00: E8 INX C3/BF01: E8 INX C3/BF02: E02000 CPX #$0020 (have we checked 32 helmets yet? there's 27 in all...) C3/BF05: D0B8 BNE $BEBF C3/BF07: 4C8FBD JMP $BD8F C3/BF0A: 7B TDC C3/BF0B: AA TAX C3/BF0C: 8D8021 STA $2180 C3/BF0F: E8 INX C3/BF10: E01000 CPX #$0010 C3/BF13: D0F7 BNE $BF0C C3/BF15: 4C8FBD JMP $BD8F Relic Handler (supposedly) C3/BF18: 7B TDC C3/BF19: AA TAX C3/BF1A: DA PHX C3/BF1B: C220 REP #$20 (16 bit memory/accum.) C3/BF1D: ADDC1E LDA $1EDC C3/BF20: 3F679CC3 AND $C39C67,X C3/BF24: F01E BEQ $BF44 C3/BF26: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BF2A: A8 TAY C3/BF2B: E220 SEP #$20 (8 bit memory/accum.) C3/BF2D: 7B TDC C3/BF2E: B92300 LDA $0023,Y (relic slot 1) C3/BF31: C59F CMP $9F C3/BF33: F00A BEQ $BF3F C3/BF35: B92400 LDA $0024,Y (relic slot 2) C3/BF38: C59F CMP $9F C3/BF3A: F003 BEQ $BF3F C3/BF3C: 7B TDC C3/BF3D: 8002 BRA $BF41 C3/BF3F: A901 LDA #$01 C3/BF41: 8D8021 STA $2180 C3/BF44: FA PLX C3/BF45: E8 INX C3/BF46: E8 INX C3/BF47: E02000 CPX #$0020 C3/BF4A: D0CE BNE $BF1A C3/BF4C: 4C8FBD JMP $BD8F C3/BF4F: 8B PHB C3/BF50: A97E LDA #$7E C3/BF52: 48 PHA C3/BF53: AB PLB C3/BF54: 7B TDC C3/BF55: AA TAX C3/BF56: C220 REP #$20 (16 bit memory/accum.) C3/BF58: 9E8DAA STZ $AA8D,X C3/BF5B: E8 INX C3/BF5C: E8 INX C3/BF5D: E08000 CPX #$0080 C3/BF60: D0F6 BNE $BF58 C3/BF62: E220 SEP #$20 (8 bit memory/accum.) C3/BF64: AB PLB C3/BF65: 60 RTS C3/BF66: 20CBBF JSR $BFCB C3/BF69: 85E0 STA $E0 C3/BF6B: 6465 STZ $65 C3/BF6D: A21F16 LDX #$161F C3/BF70: 86E7 STX $E7 C3/BF72: A900 LDA #$00 C3/BF74: 85E9 STA $E9 C3/BF76: A600 LDX $00 C3/BF78: DA PHX C3/BF79: C220 REP #$20 (16 bit memory/accum.) C3/BF7B: 8A TXA C3/BF7C: 0A ASL A C3/BF7D: AA TAX C3/BF7E: ADDC1E LDA $1EDC C3/BF81: 3F679CC3 AND $C39C67,X C3/BF85: F01E BEQ $BFA5 C3/BF87: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BF8B: AA TAX C3/BF8C: E220 SEP #$20 (8 bit memory/accum.) C3/BF8E: BD0000 LDA $0000,X C3/BF91: C90E CMP #$0E (Is it Leo or higher??) C3/BF93: B010 BCS $BFA5 C3/BF95: A400 LDY $00 C3/BF97: B7E7 LDA [$E7],Y C3/BF99: C5E0 CMP $E0 C3/BF9B: D002 BNE $BF9F C3/BF9D: E665 INC $65 C3/BF9F: C8 INY C3/BFA0: C00600 CPY #$0006 C3/BFA3: D0F2 BNE $BF97 C3/BFA5: C221 REP #$21 C3/BFA7: A92500 LDA #$0025 C3/BFAA: 65E7 ADC $E7 C3/BFAC: 85E7 STA $E7 C3/BFAE: E220 SEP #$20 (8 bit memory/accum.) C3/BFB0: FA PLX C3/BFB1: E8 INX C3/BFB2: E01000 CPX #$0010 C3/BFB5: D0C1 BNE $BF78 C3/BFB7: A565 LDA $65 C3/BFB9: 20E004 JSR $04E0 C3/BFBC: A23F7C LDX #$7C3F (position of number equipped) C3/BFBF: 4CB604 JMP $04B6 (display number equipped) C3/BFC2: 7B TDC C3/BFC3: A54B LDA $4B C3/BFC5: AA TAX C3/BFC6: BF899D7E LDA $7E9D89,X (copy of inventory list) C3/BFCA: 60 RTS C3/BFCB: 7B TDC C3/BFCC: A54B LDA $4B C3/BFCE: A8 TAY C3/BFCF: B96918 LDA $1869,Y (Items currently in inventory) C3/BFD2: 60 RTS C3/BFD3: 20F7C2 JSR $C2F7 (set text color to blue) C3/BFD6: AD1242 LDA $4212 C3/BFD9: 2940 AND #$40 (are we in H-blank?) C3/BFDB: F0F9 BEQ $BFD6 (branch if not) C3/BFDD: AD0102 LDA $0201 C3/BFE0: 8D1B21 STA $211B C3/BFE3: 9C1B21 STZ $211B C3/BFE6: A909 LDA #$09 C3/BFE8: 8D1C21 STA $211C C3/BFEB: 8D1C21 STA $211C C3/BFEE: AE3421 LDX $2134 C3/BFF1: 8667 STX $67 C3/BFF3: BFC07AC4 LDA $C47AC0,X (Load Specs for Shop X) C3/BFF7: 2907 AND #$07 C3/BFF9: 0A ASL A C3/BFFA: AA TAX C3/BFFB: C220 REP #$20 (16 bit memory/accum.) C3/BFFD: BF0CC0C3 LDA $C3C00C,X (Load pointer to Shop Title X) C3/C001: 85E7 STA $E7 C3/C003: E220 SEP #$20 (8 bit memory/accum.) C3/C005: A9C3 LDA #$C3 (JMP $02FB could've saved some bytes here...) C3/C007: 85E9 STA $E9 (JMP $02FD could've saved some bytes here...) C3/C009: 4CFF02 JMP $02FF Pointers to Shop Titles C3/C00C: 0000 C3/C00E: FCC2 ("Weapon") C3/C010: 05C3 ("Armor") C3/C012: 0DC3 ("Item") C3/C014: 14C3 ("Relics") C3/C016: 1DC3 ("Vendor") C3/C018: A902 LDA #$02 (from C3/B48D) C3/C01A: 8D5043 STA $4350 C3/C01D: A912 LDA #$12 C3/C01F: 8D5143 STA $4351 (register address becomes $2112) C3/C022: A037C0 LDY #$C037 C3/C025: 8C5243 STY $4352 (set address) C3/C028: A9C3 LDA #$C3 C3/C02A: 8D5443 STA $4354 (set bank, C3/C037) C3/C02D: A9C3 LDA #$C3 C3/C02F: 8D5743 STA $4357 C3/C032: A920 LDA #$20 C3/C034: 0443 TSB $43 (eventually enable channel 5 of HDMA) C3/C036: 60 RTS HDMA transfer table C3/C037: 2F0400 (47 scanlines, 4 pixel shift) C3/C03A: 9C0400 (156 scanlines, 4 pixel shift) C3/C03D: 0C0800 (12 scanlines, 8 pixel shift) C3/C040: 0C0C00 (12 scanlines, 12 pixel shift) C3/C043: 0C1000 (12 scanlines, 16 pixel shift) C3/C046: 0C1400 (12 scanlines, 20 pixel shift) C3/C049: 0C1800 (12 scanlines, 24 pixel shift) C3/C04C: 0C1C00 (12 scanlines, 28 pixel shift) C3/C04F: 0C2000 (12 scanlines, 32 pixel shift) C3/C052: 0C2400 (12 scanlines, 36 pixel shift) C3/C055: 0C2800 (12 scanlines, 40 pixel shift) C3/C058: 0C2C00 (12 scanlines, 44 pixel shift) C3/C05B: 0C3000 (12 scanlines, 48 pixel shift) C3/C05E: 0C3400 (12 scanlines, 52 pixel shift) C3/C061: 0C3800 (12 scanlines, 56 pixel shift) C3/C064: 0C3C00 (12 scanlines, 60 pixel shift, 371 scanlines total...) C3/C067: 00 (end) C3/C068: 48 PHA C3/C069: A28B9E LDX #$9E8B C3/C06C: 8E8121 STX $2181 C3/C06F: AD1242 LDA $4212 C3/C072: 2940 AND #$40 (are we in H-blank?) C3/C074: F0F9 BEQ $C06F (branch if not) C3/C076: 68 PLA C3/C077: 8D1B21 STA $211B C3/C07A: 9C1B21 STZ $211B C3/C07D: A90D LDA #$0D C3/C07F: 8D1C21 STA $211C C3/C082: 8D1C21 STA $211C C3/C085: AE3421 LDX $2134 C3/C088: A00D00 LDY #$000D (item name length in shops) C3/C08B: BF00B3D2 LDA $D2B300,X (item name) C3/C08F: 8D8021 STA $2180 C3/C092: E8 INX C3/C093: 88 DEY C3/C094: D0F5 BNE $C08B C3/C096: 9C8021 STZ $2180 (end this string) C3/C099: 60 RTS C3/C09A: 2009C1 JSR $C109 C3/C09D: 20CCC1 JSR $C1CC C3/C0A0: 7B TDC C3/C0A1: AA TAX C3/C0A2: BF099E7E LDA $7E9E09,X C3/C0A6: 3044 BMI $C0EC C3/C0A8: DA PHX C3/C0A9: 48 PHA C3/C0AA: A902 LDA #$02 C3/C0AC: A041C1 LDY #$C141 C3/C0AF: 207311 JSR $1173 (put C3/C141 in the queue) C3/C0B2: 9B TXY C3/C0B3: 7B TDC C3/C0B4: 68 PLA C3/C0B5: 9FC9357E STA $7E35C9,X C3/C0B9: 0A ASL A C3/C0BA: AA TAX C3/C0BB: A97E LDA #$7E C3/C0BD: 48 PHA C3/C0BE: AB PLB C3/C0BF: C220 REP #$20 (16 bit memory/accum.) C3/C0C1: BF17E9D8 LDA $D8E917,X C3/C0C5: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/C0C8: E220 SEP #$20 (8 bit memory/accum.) C3/C0CA: FA PLX C3/C0CB: BFEDC0C3 LDA $C3C0ED,X C3/C0CF: 99CA33 STA $33CA,Y C3/C0D2: BFFBC0C3 LDA $C3C0FB,X C3/C0D6: 994A34 STA $344A,Y C3/C0D9: 7B TDC C3/C0DA: 99CB33 STA $33CB,Y C3/C0DD: 994B34 STA $344B,Y C3/C0E0: A9D8 LDA #$D8 C3/C0E2: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/C0E5: A900 LDA #$00 C3/C0E7: 48 PHA C3/C0E8: AB PLB C3/C0E9: E8 INX C3/C0EA: 80B6 BRA $C0A2 C3/C0EC: 60 RTS Data C3/C0ED: 18 C3/C0EE: 38 C3/C0EF: 58 C3/C0F0: 78 C3/C0F1: 98 C3/C0F2: B8 C3/C0F3: D8 C3/C0F4: 18 C3/C0F5: 38 C3/C0F6: 58 C3/C0F7: 78 C3/C0F8: 98 C3/C0F9: B8 C3/C0FA: D8 Data C3/C0FB: 9C C3/C0FC: 9C C3/C0FD: 9C C3/C0FE: 9C C3/C0FF: 9C C3/C100: 9C C3/C101: 9C C3/C102: B8 C3/C103: B8 C3/C104: B8 C3/C105: B8 C3/C106: B8 C3/C107: B8 C3/C108: B8 C3/C109: A2099E LDX #$9E09 C3/C10C: 8E8121 STX $2181 C3/C10F: A600 LDX $00 C3/C111: DA PHX C3/C112: C220 REP #$20 (16 bit memory/accum.) C3/C114: 8A TXA C3/C115: 0A ASL A C3/C116: AA TAX C3/C117: ADDC1E LDA $1EDC (This is the "Characters encountered" word) C3/C11A: 3F679CC3 AND $C39C67,X C3/C11E: F012 BEQ $C132 C3/C120: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/C124: A8 TAY C3/C125: 7B TDC C3/C126: E220 SEP #$20 (8 bit memory/accum.) C3/C128: B90000 LDA $0000,Y C3/C12B: C90E CMP #$0E (Is it Leo or higher??) C3/C12D: B003 BCS $C132 C3/C12F: 8D8021 STA $2180 C3/C132: E220 SEP #$20 (8 bit memory/accum.) C3/C134: FA PLX C3/C135: E8 INX C3/C136: E01000 CPX #$0010 C3/C139: D0D6 BNE $C111 C3/C13B: A9FF LDA #$FF C3/C13D: 8D8021 STA $2180 C3/C140: 60 RTS C3/C141: AA TAX C3/C142: 7C45C1 JMP ($C145,X) C3/C145: 49C1 C3/C147: 6AC1 C3/C149: A901 LDA #$01 C3/C14B: 0447 TSB $47 C3/C14D: A62D LDX $2D C3/C14F: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/C152: C220 REP #$20 C3/C154: BDC932 LDA $32DC,X C3/C157: 9DCA34 STA $34CA,X C3/C15A: E220 SEP #$20 C3/C15C: 200612 JSR $1206 C3/C15F: A547 LDA $47 C3/C161: 2908 AND #$08 C3/C163: D003 BNE $C168 C3/C165: 20F0C1 JSR $C1F0 C3/C168: 8000 BRA $C16A C3/C16A: A547 LDA $47 C3/C16C: 2901 AND #$01 C3/C16E: F02A BEQ $C19A C3/C170: A62D LDX $2D C3/C172: A547 LDA $47 C3/C174: 2908 AND #$08 C3/C176: D011 BNE $C189 C3/C178: 209CC1 JSR $C19C C3/C17B: 900C BCC $C189 C3/C17D: A62D LDX $2D C3/C17F: C221 REP #$21 C3/C181: BDCA34 LDA $34CA,X C3/C184: 690900 ADC #$0009 C3/C187: 8007 BRA $C190 C3/C189: A62D LDX $2D C3/C18B: C220 REP #$20 (16 bit memory/accum.) C3/C18D: BDCA34 LDA $34CA,X C3/C190: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/C193: E220 SEP #$20 (8 bit memory/accum.) C3/C195: 202112 JSR $1221 (draw the sprites!) C3/C198: 38 SEC (not done with this queue yet) C3/C199: 60 RTS C3/C19A: 18 CLC (this queue can be removed) C3/C19B: 60 RTS C3/C19C: 8B PHB C3/C19D: A900 LDA #$00 C3/C19F: 48 PHA C3/C1A0: AB PLB C3/C1A1: 7B TDC C3/C1A2: 8DD811 STA $11D8 C3/C1A5: BFC9357E LDA $7E35C9,X C3/C1A9: 20489C JSR $9C48 C3/C1AC: 7B TDC C3/C1AD: A54B LDA $4B C3/C1AF: AA TAX C3/C1B0: BF899D7E LDA $7E9D89,X (Copy of inventory list) C3/C1B4: 202183 JSR $8321 (Multiply A by 30) C3/C1B7: AE3421 LDX $2134 (Load X with the result) C3/C1BA: C220 REP #$20 (16 bit memory/accum.) C3/C1BC: BF0150D8 LDA $D85001,X (Load equippable chars for item X) C3/C1C0: 25E7 AND $E7 C3/C1C2: E220 SEP #$20 (8 bit memory/accum.) C3/C1C4: F003 BEQ $C1C9 C3/C1C6: AB PLB C3/C1C7: 38 SEC (not done with this queue yet) C3/C1C8: 60 RTS C3/C1C9: AB PLB C3/C1CA: 18 CLC (this queue can be removed) C3/C1CB: 60 RTS C3/C1CC: A2019E LDX #$9E01 C3/C1CF: 8E8121 STX $2181 C3/C1D2: A600 LDX $00 C3/C1D4: C220 REP #$20 (16 bit memory/accum.) C3/C1D6: BD6D00 LDA $006D,X C3/C1D9: E220 SEP #$20 (8 bit memory/accum.) C3/C1DB: F006 BEQ $C1E3 C3/C1DD: A8 TAY C3/C1DE: B90000 LDA $0000,Y C3/C1E1: 8002 BRA $C1E5 C3/C1E3: A9FF LDA #$FF C3/C1E5: 8D8021 STA $2180 C3/C1E8: E8 INX C3/C1E9: E8 INX C3/C1EA: E00800 CPX #$0008 C3/C1ED: D0E5 BNE $C1D4 C3/C1EF: 60 RTS C3/C1F0: A400 LDY $00 C3/C1F2: A62D LDX $2D C3/C1F4: BDC935 LDA $35C9,X C3/C1F7: D9019E CMP $9E01,Y C3/C1FA: D038 BNE $C234 C3/C1FC: DA PHX C3/C1FD: 5A PHY C3/C1FE: A900 LDA #$00 C3/C200: 48 PHA C3/C201: AB PLB C3/C202: A900 LDA #$00 C3/C204: A0427B LDY #$7B42 C3/C207: 207311 JSR $1173 (put C3/7B42 in the queue) C3/C20A: A97E LDA #$7E C3/C20C: 48 PHA C3/C20D: AB PLB C3/C20E: 7B TDC C3/C20F: 9DC935 STA $35C9,X C3/C212: BC4A37 LDY $374A,X C3/C215: C220 REP #$20 (16 bit memory/accum.) C3/C217: B9CA33 LDA $33CA,Y C3/C21A: 9DCA33 STA $33CA,X C3/C21D: B94A34 LDA $344A,Y C3/C220: 3A DEC A C3/C221: 3A DEC A C3/C222: 9D4A34 STA $344A,X C3/C225: A9A9EB LDA #$EBA9 C3/C228: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/C22B: E220 SEP #$20 (8 bit memory/accum.) C3/C22D: A9D8 LDA #$D8 C3/C22F: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/C232: 7A PLY C3/C233: FA PLX C3/C234: C8 INY C3/C235: C00400 CPY #$0004 C3/C238: D0BA BNE $C1F4 C3/C23A: 60 RTS C3/C23B: 7B TDC C3/C23C: A8 TAY C3/C23D: 5A PHY C3/C23E: A904 LDA #$04 C3/C240: A053C2 LDY #$C253 C3/C243: 207311 JSR $1173 C3/C246: 7A PLY C3/C247: 98 TYA C3/C248: 9FC9357E STA $7E35C9,X C3/C24C: C8 INY C3/C24D: C00E00 CPY #$000E C3/C250: D0EB BNE $C23D C3/C252: 60 RTS C3/C253: AA TAX C3/C254: 7C57C2 JMP ($C257,X) C3/C257: 5BC2 C3/C258: 8BC2 C3/C25A: A62D LDX $2D C3/C25C: C220 REP #$20 C3/C25F: A9CDEB LDA #$EBCD C3/C262: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/C265: 9DCA34 STA $34CA,X C3/C268: E220 SEP #$20 (8 bit memory/accum.) C3/C26A: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/C26D: A9D8 LDA #$D8 C3/C26F: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/C272: 7B TDC C3/C273: BDC935 LDA $35C9,X C3/C276: 9B TXY C3/C277: AA TAX C3/C278: BFB1EBD8 LDA $D8EBB1,X C3/C27C: 99CA33 STA $33CA,Y C3/C27F: BFBFEBD8 LDA $D8EBBF,X C3/C283: 994A34 STA $344A,Y C3/C286: A62D LDX $2D C3/C288: 200612 JSR $1206 C3/C28B: A547 LDA $47 C3/C28D: 2901 AND #$01 C3/C28F: F04E BEQ $C2DF C3/C291: A62D LDX $2D C3/C293: 7B TDC C3/C294: BDC935 LDA $35C9,X C3/C297: 85E0 STA $E0 C3/C299: 20AEBC JSR $BCAE C3/C29C: F03F BEQ $C2DD C3/C29E: C901 CMP #$01 C3/C2A0: F014 BEQ $C2B6 C3/C2A2: C902 CMP #$02 C3/C2A4: F025 BEQ $C2CB C3/C2A6: C904 CMP #$04 C3/C2A8: F015 BEQ $C2BF C3/C2AA: A62D LDX $2D C3/C2AC: C221 REP #$21 C3/C2AE: BDCA34 LDA $34CA,X C3/C2B1: 691800 ADC #$0018 C3/C2B4: 801F BRA $C2D5 C3/C2B6: A62D LDX $2D C3/C2B8: C220 REP #$20 (16 bit memory/accum.) C3/C2BA: BDCA34 LDA $34CA,X C3/C2BD: 8016 BRA $C2D5 C3/C2BF: A62D LDX $2D C3/C2C1: C221 REP #$21 C3/C2C3: BDCA34 LDA $34CA,X C3/C2C6: 692400 ADC #$0024 C3/C2C9: 800A BRA $C2D5 C3/C2CB: A62D LDX $2D C3/C2CD: C221 REP #$21 C3/C2CF: BDCA34 LDA $34CA,X C3/C2D2: 690C00 ADC #$000C C3/C2D5: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/C2D8: E220 SEP #$20 (8 bit memory/accum.) C3/C2DA: 202112 JSR $1221 (draw the sprites!) C3/C2DD: 38 SEC (not done with this queue yet) C3/C2DE: 60 RTS C3/C2DF: 18 CLC (this queue can be removed) C3/C2E0: 60 RTS C3/C2E1: 20F7C2 JSR $C2F7 C3/C2E4: A042C3 LDY #$C342 C3/C2E7: 20F902 JSR $02F9 (display "Owned:") C3/C2EA: A04BC3 LDY #$C34B C3/C2ED: 20F902 JSR $02F9 (display "Equipped:") C3/C2F0: 8000 BRA $C2F2 C3/C2F2: A920 LDA #$20 C3/C2F4: 8529 STA $29 (set text color to white) C3/C2F6: 60 RTS C3/C2F7: A92C LDA #$2C C3/C2F9: 8529 STA $29 (set text color to blue) C3/C2FB: 60 RTS C3/C2FC: 0D79969E9AA9A8A700 ("Weapon") C3/C305: 0F7980ABA6A8AB00 ("Armor") C3/C30D: 0F7988AD9EA600 ("Item") C3/C314: 0D79919EA5A29CAC00 ("Relics") C3/C31D: 0D79959EA79DA8AB00 ("Vendor") C3/C326: 0F7A819498FFFF92848B8BFFFF8497889300 ("BUY SELL EXIT") C3/C338: 417A868F00 ("GP") C3/C33D: 2B7B868F00 ("GP") C3/C342: B37A8EB0A79E9DC100 ("Owned:") C3/C34B: B37B84AAAEA2A9A99E9DC100 ("Equipped:") C3/C357: 8F7B819AADFF8FB0AB00 ("Bat Pwr") C3/C361: 8F7B839E9F9EA7AC9E00 ("Defense") C3/C36B: A57BC700 ("…") C3/C36F: 1F7987A2BEFF829AA7FF88FFA19EA5A9FFB2A8AEBF00 ("Hi! Can I help you?") C3/C385: 1F79879EA5A9FFB2A8AEABAC9EA59FBE00 ("Help yourself!") C3/C396: 1F7987A8B0FFA69AA7B2BF00 ("How many?") C3/C3A2: 1F7996A19AAD9CA19AFFA0A8ADBF00 ("Watcha got?") C3/C3B1: 1F7987A8B0FFA69AA7B2BF00 ("How many?") C3/C3BF: 1F7981B29EBEFFFFFFFFFFFFFFFFFFFF00 ("Bye! ") C3/C3CE: 1F7998A8AEFFA79E9E9DFFA6A8AB9EFF868FBE00 ("You need more GP!") C3/C3E2: 1F7993A8A8FFA69AA7B2BEFFFFFFFFFFFFFF00 ("Too many! ") C3/C3F5: 1F798EA79EC3ACFFA9A59EA7ADB2BEFF00 ("One's plenty! ") Here we go again, another massive jump table C3/C406: BEC5 (#$00, C3/C408: D4C5 (#$01, C3/C40A: 69C8 (#$02, C3/C40C: A6C8 (#$03, C3/C40E: ADC8 (#$04, C3/C410: E1C5 (#$05, C3/C412: 81C6 (#$06, C3/C414: DCC6 (#$07, C3/C416: DCC6 (#$08, C3/C418: 94C7 (#$09, C3/C41A: D2C7 (#$0A, C3/C41C: E1C7 (#$0B, C3/C41E: D1C8 (#$0C, C3/C420: 17C9 (#$0D, C3/C422: CDC9 (#$0E, C3/C424: CDC9 (#$0F, C3/C426: CDC9 (#$10, C3/C428: 8CCA (#$11, C3/C42A: BECA (#$12, C3/C42C: BECA (#$13, C3/C42E: 17CD (#$14, C3/C430: A0CD (#$15, C3/C432: EACD (#$16, C3/C434: EACD (#$17, C3/C436: A6CE (#$18, C3/C438: ECCE (#$19, C3/C43A: ECCE (#$1A, C3/C43C: ECCE (#$1B, C3/C43E: ECCE (#$1C, C3/C440: 18D0 (#$1D, C3/C442: 18D0 (#$1E, C3/C444: 18D0 (#$1F, C3/C446: 2FD0 (#$20, C3/C448: 96D0 (#$21, C3/C44A: 22D1 (#$22, C3/C44C: 22D1 (#$23, C3/C44E: 22D1 (#$24, C3/C450: 94C7 (#$25, C3/C452: 94C7 (#$26, C3/C454: 94C7 (#$27, C3/C456: 6EE2 (#$28, C3/C458: B2E2 (#$29, C3/C45A: C1E2 (#$2A, C3/C45C: D0E2 (#$2B, C3/C45E: 94C7 (#$2C, C3/C460: CEE6 (#$2D, C3/C462: DFE6 (#$2E, C3/C464: EEE6 (#$2F, C3/C466: FAE6 (#$30, C3/C468: 94C7 (#$31, C3/C46A: F8E2 (#$32, C3/C46C: 19E3 (#$33, C3/C46E: 28E3 (#$34, C3/C470: 37E3 (#$35, C3/C472: 94C7 (#$36, C3/C474: 94C7 (#$37, C3/C476: E7E2 (#$38, C3/C478: 94C7 (#$39, C3/C47A: 94C7 (#$3A, C3/C47C: 94C7 (#$3B, C3/C47E: E1E3 (#$3C, C3/C480: FDE3 (#$3D, C3/C482: 0CE4 (#$3E, C3/C484: 1BE4 (#$3F, C3/C486: 4BE3 (#$40, C3/C488: 64E3 (#$41, C3/C48A: 73E3 (#$42, C3/C48C: 82E3 (#$43, C3/C48E: A2E3 (#$44, C3/C490: B2E3 (#$45, C3/C492: 32E4 (#$46, C3/C494: 59E4 (#$47, C3/C496: 7CE4 (#$48, C3/C498: 8BE4 (#$49, C3/C49A: 11E7 (#$4A, C3/C49C: 2AE7 (#$4B, C3/C49E: 36E7 (#$4C, C3/C4A0: 49E7 (#$4D, C3/C4A2: 94C7 (#$4E, C3/C4A4: CDE3 (#$4F, C3/C4A6: FAE4 (#$50, C3/C4A8: 13E5 (#$51, C3/C4AA: 22E5 (#$52, C3/C4AC: 34E5 (#$53, C3/C4AE: 94C7 (#$54, C3/C4B0: 94C7 (#$55, C3/C4B2: 94C7 (#$56, C3/C4B4: 94C7 (#$57, C3/C4B6: 94C7 (#$58, C3/C4B8: 94C7 (#$59, C3/C4BA: 4BE5 (#$5A, C3/C4BC: 64E5 (#$5B, C3/C4BE: 73E5 (#$5C, C3/C4C0: 85E5 (#$5D, C3/C4C2: 94C7 (#$5E, C3/C4C4: 94C7 (#$5F, C3/C4C6: 94C7 (#$60, C3/C4C8: 94C7 (#$61, C3/C4CA: 94C7 (#$62, C3/C4CC: 94C7 (#$63, C3/C4CE: 9CE5 (#$64, C3/C4D0: B7E5 (#$65, C3/C4D2: C6E5 (#$66, C3/C4D4: D5E5 (#$67, C3/C4D6: F5E5 (#$68, C3/C4D8: 05E6 (#$69, C3/C4DA: 1EE6 (#$6A, C3/C4DC: 94C7 (#$6B, C3/C4DE: 94C7 (#$6C, C3/C4E0: 94C7 (#$6D, C3/C4E2: 35E6 (#$6E, C3/C4E4: 51E6 (#$6F, C3/C4E6: 60E6 (#$70, C3/C4E8: 6FE6 (#$71, C3/C4EA: 94C7 (#$72, C3/C4EC: 94C7 (#$73, C3/C4EE: 94C7 (#$74, C3/C4F0: 94C7 (#$75, C3/C4F2: 94C7 (#$76, C3/C4F4: 94C7 (#$77, C3/C4F6: 86E6 (#$78, C3/C4F8: 9CE6 (#$79, C3/C4FA: ABE6 (#$7A, C3/C4FC: BAE6 (#$7B, C3/C4FE: 94C7 (#$7C, C3/C500: 94C7 (#$7D, C3/C502: 94C7 (#$7E, C3/C504: 94C7 (#$7F, C3/C506: 94C7 (#$80, C3/C508: 94C7 (#$81, C3/C50A: 5DE7 (#$82, C3/C50C: 94E7 (#$83, C3/C50E: A3E7 (#$84, C3/C510: B2E7 (#$85, C3/C512: C1E7 (#$86, C3/C514: E5E7 (#$87, C3/C516: 04E8 (#$88, C3/C518: 13E8 (#$89, C3/C51A: 22E8 (#$8A, C3/C51C: 08 PHP (from C0/BA3C->C3/0012) C3/C51D: C230 REP #$30 C3/C51F: 48 PHA C3/C520: DA PHX C3/C521: 5A PHY C3/C522: 8B PHB C3/C523: 0B PHD C3/C524: E220 SEP #$20 (8 bit memory/accum.) C3/C526: A900 LDA #$00 C3/C528: 48 PHA C3/C529: AB PLB C3/C52A: A20000 LDX #$0000 (LDX $00...) C3/C52D: DA PHX C3/C52E: 2B PLD (set DP register to #$0000, which again should not have changed, unless we're coming from C5...) C3/C52F: A20000 LDX #$0000 (LDX $00... X still holds #$0000) C3/C532: 8600 STX $00 (this shouldn't have ever changed o_O) C3/C534: A97E LDA $#7E C3/C536: 8D8321 STA $2183 C3/C539: 20C000 JSR $00C0 (set NMI and IRQ locations) C3/C53C: 20FA68 JSR $68FA C3/C53F: A02C01 LDY #$012C C3/C542: 8485 STY $85 C3/C544: 64B4 STZ $B4 C3/C546: 2086C5 JSR $C586 C3/C549: 2076C5 JSR $C576 (turn off H/DMA, screen, auto joypad read, etc etc) C3/C54C: 2248CDD4 JSL $D4CD48 C3/C550: 2224A4C3 JSL $C3A424 (timer resetting for input decoding) C3/C554: 201411 JSR $1114 (erase all onscreen sprites) C3/C557: 2073DD JSR $DD73 C3/C55A: 223BCFD4 JSL $D4CF3B C3/C55E: AD0102 LDA $0201 (this is set at C0/BA33) C3/C561: 8526 STA $26 (for the jump table above) C3/C563: 20A5C5 JSR $C5A5 (let's use the jump table) C3/C566: 224BCFD4 JSL $D4CF4B C3/C56A: 2076C5 JSR $C576 (turn off H/DMA, screen, auto joypad read, etc etc) C3/C56D: C230 REP #$30 C3/C56F: 2B PLD C3/C570: AB PLB C3/C571: 7A PLY C3/C572: FA PLX C3/C573: 68 PLA C3/C574: 28 PLP C3/C575: 6B RTL C3/C576: A98F LDA #$8F C3/C578: 8D0021 STA $2100 C3/C57B: 7B TDC C3/C57C: 8D0042 STA $4200 (STZ $4200...turn off NMI, auto joypad read, etc) C3/C57F: 8D0B42 STA $420B (STZ $420B...turn off DMA) C3/C582: 8D0C42 STA $420C (STZ $420C...turn off HDMA) C3/C585: 60 RTS C3/C586: 7B TDC C3/C587: A8 TAY C3/C588: 841B STY $1B C3/C58A: 841D STY $1D C3/C58C: 851F STA $1F C3/C58E: 8416 STY $16 C3/C590: 8518 STA $18 C3/C592: A00100 LDY #$0001 C3/C595: 8419 STY $19 C3/C597: 8412 STY $12 C3/C599: A0FF7F LDY #$7FFF C3/C59C: 8414 STY $14 C3/C59E: 60 RTS C3/C59F: A901 LDA #$01 C3/C5A2: 8D3121 STA $2131 C3/C5A4: 60 RTS C3/C5A5: 7B TDC C3/C5A6: A526 LDA $26 C3/C5A8: C9FF CMP #$FF C3/C5AA: F011 BEQ $C5BD C3/C5AC: C220 REP #$20 C3/C5AE: 0A ASL C3/C5AF: AA TAX C3/C5B0: E220 SEP #$20 (8 bit memory/accum.) C3/C5B2: FC06C4 JSR ($C406,X) C3/C5B5: 20B011 JSR $11B0 (execute everything in OAM queue) C3/C5B8: 206813 JSR $1368 (get NMI triggered) C3/C5BB: 80E8 BRA $C5A5 C3/C5BD: 60 RTS DP $26 is 00 C3/C5BE: A420 LDY $20 C3/C5C0: D011 BNE $C5D3 C3/C5C2: A901 LDA #$01 C3/C5C4: 8526 STA $26 C3/C5C6: A00F00 LDY #$000F C3/C5C9: 8420 STY $20 C3/C5CB: A900 LDA #$00 C3/C5CD: A0FDD1 LDY #$D1FD C3/C5D0: 207311 JSR $1173 (put C3/D1FD in the queue, also JMP!) C3/C5D3: 60 RTS DP $26 is 01 C3/C5D4: A420 LDY $20 C3/C5D6: D003 BNE $C5DB (branch backwards!) C3/C5D8: 4C69E2 JMP $E269 C3/C5DB: 60 RTS C3/C5DC: A901 LDA #$01 C3/C5DE: 85B4 STA $B4 C3/C5E0: 60 RTS DP $26 is 05 C3/C5E1: 20DCC5 JSR $C5DC C3/C5E4: 22D7CED4 JSL $D4CED7 C3/C5E8: 200CD4 JSR $D40C C3/C5EB: 20E6D3 JSR $D3E6 C3/C5EE: 22FCCBD4 JSL $D4CBFC C3/C5F2: A01000 LDY #$0010 C3/C5F5: 848E STY $8E C3/C5F7: C220 REP #$20 (16 bit memory/accum.) C3/C5F9: A9F1FF LDA #$FFF1 C3/C5FC: 8F8DB67E STA $7EB68D C3/C600: A92E00 LDA #$002E C3/C603: 8F8FB67E STA $7EB68F C3/C607: A97100 LDA #$0071 C3/C60A: 8F95B67E STA $7EB695 C3/C60E: A98D00 LDA #$008D C3/C611: 8F97B67E STA $7EB697 C3/C615: E220 SEP #$20 (8 bit memory/accum.) C3/C617: A05E00 LDY #$005E C3/C61A: 84C7 STY $C7 C3/C61C: A0002F LDY #$2F00 C3/C61F: 84C5 STY $C5 C3/C621: A00001 LDY #$0100 C3/C624: 84B7 STY $B7 C3/C626: A01103 LDY #$0311 C3/C629: 84B9 STY $B9 C3/C62B: A08000 LDY #$0080 C3/C62E: 8435 STY $35 C3/C630: A09102 LDY #$0291 C3/C633: 8437 STY $37 C3/C635: 20D2DD JSR $DDD2 C3/C638: A400 LDY $00 C3/C63A: 84CF STY $CF C3/C63C: 206DD9 JSR $D96D C3/C63F: A902 LDA #$02 C3/C641: A0B9D7 LDY #$D7B9 C3/C644: 207311 JSR $1173 (put C3/D7B9 in the queue) C3/C647: A902 LDA #$02 C3/C649: A081C6 LDY #$C681 C3/C64C: 207311 JSR $1173 (put C3/C681 in the queue) C3/C64F: A900 LDA #$00 C3/C651: A0F2D0 LDY #$D0F2 C3/C654: 207311 JSR $1173 (put C3/D0F2 in the queue) C3/C657: 205CD1 JSR $D15C C3/C65A: 2073D1 JSR $D173 C3/C65D: 2018D0 JSR $D018 C3/C660: A903 LDA #$03 C3/C662: 8526 STA $26 (execute at C3/C8A6) C3/C664: A01C02 LDY #$021C C3/C667: 8420 STY $20 C3/C669: 4C6CC6 JMP $C66C (...) C3/C66C: A900 LDA #$00 (from C3/C669, C3/C7CF, C3/C87B, C3/C8CE, C3/C914, C3/CA6E, C3/CD94, C3/CEE9, C3/CF97, and C3/D093) C3/C66E: A0CCD1 LDY #$D1CC C3/C671: 207311 JSR $1173 (put C3/D1CC in the queue) C3/C674: 60 RTS C3/C675: A901 LDA #$01 C3/C677: 8544 STA $44 C3/C679: 206813 JSR $1368 (get NMI triggered) C3/C67C: A90F LDA #$0F C3/C67E: 8544 STA $44 C3/C680: 60 RTS DP $26 is 06 C3/C681: AA TAX C3/C682: 7C85C6 JMP ($C685,X) C3/C685: 8BC6 C3/C687: 9AC6 C3/C689: BAC6 C3/C68B: A62D LDX $2D C3/C68D: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/C690: C220 REP #$20 C3/C692: A94E02 LDA #$024E C3/C695: 9D4933 STA $3349,X C3/C698: E220 SEP #$20 (8 bit memory/accum.) C3/C69A: A62D LDX $2D C3/C69C: A523 LDA $23 C3/C69E: 2901 AND #$01 C3/C6A0: D004 BNE $C6A6 C3/C6A2: C220 REP #$20 (16 bit memory/accum.) C3/C6A4: E68E INC $8E C3/C6A6: C220 REP #$20 (16 bit memory/accum.) C3/C6A8: A58E LDA $8E C3/C6AA: 8D0006 STA $0600 C3/C6AD: 9CC207 STZ $07C2 C3/C6B0: 9C8409 STZ $0984 C3/C6B3: 20BFC6 JSR $C6BF C3/C6B6: E220 SEP #$20 (8 bit memory/accum.) C3/C6B8: 38 SEC (not done with this queue yet) C3/C6B9: 60 RTS C3/C6BA: 20BFC6 JSR $C6BF C3/C6BD: 38 SEC (not done with this queue yet) C3/C6BE: 60 RTS C3/C6BF: C220 REP #$20 (16 bit memory/accum.) C3/C6C1: C635 DEC $35 C3/C6C3: C6B7 DEC $B7 C3/C6C5: A535 LDA $35 C3/C6C7: 8D91B6 STA $B691 C3/C6CA: A537 LDA $37 C3/C6CC: 8D93B6 STA $B693 C3/C6CF: A5B7 LDA $B7 C3/C6D1: 8D99B6 STA $B699 C3/C6D4: A5B9 LDA $B9 C3/C6D6: 8D9BB6 STA $B69B C3/C6D9: E220 SEP #$20 (8 bit memory/accum.) C3/C6DB: 60 RTS DP $26 is 07 or 08 C3/C6DC: A9C3 LDA #$C3 C3/C6DE: 85ED STA $ED C3/C6E0: A904 LDA #$04 C3/C6E2: A0C931 LDY #$31C9 C3/C6E5: 84E7 STY $E7 C3/C6E7: A2F410 LDX #$10F4 C3/C6EA: 86EB STX $EB C3/C6EC: 20AA0F JSR $0FAA C3/C6EF: A9C3 LDA #$C3 C3/C6F1: 85ED STA $ED C3/C6F3: A904 LDA #$04 C3/C6F5: A0E931 LDY #$31E9 C3/C6F8: 84E7 STY $E7 C3/C6FA: A2F410 LDX #$10F4 C3/C6FD: 86EB STX $EB C3/C6FF: 20AA0F JSR $0FAA (JMP fool!) C3/C702: 60 RTS C3/C703: A9C2 LDA #$C2 C3/C705: 85ED STA $ED C3/C707: A904 LDA #$04 C3/C709: A0C931 LDY #$31C9 C3/C70C: 84E7 STY $E7 C3/C70E: A25497 LDX #$9754 C3/C711: 86EB STX $EB C3/C713: 20AA0F JSR $0FAA C3/C716: A9C2 LDA #$C2 C3/C718: 85ED STA $ED C3/C71A: A904 LDA #$04 C3/C71C: A0E931 LDY #$31E9 C3/C71F: 84E7 STY $E7 C3/C721: A24C97 LDX #$974C C3/C724: 86EB STX $EB C3/C726: 20AA0F JSR $0FAA (JMP fool!) C3/C729: 60 RTS C3/C72A: A9C2 LDA #$C2 C3/C72C: 85ED STA $ED C3/C72E: A904 LDA #$04 C3/C730: A0C931 LDY #$31C9 C3/C733: 84E7 STY $E7 C3/C735: A24497 LDX #$9744 C3/C738: 86EB STX $EB C3/C73A: 20AA0F JSR $0FAA C3/C73D: A9C2 LDA #$C2 C3/C73F: 85ED STA $ED C3/C741: A904 LDA #$04 C3/C743: A0E931 LDY #$31E9 C3/C746: 84E7 STY $E7 C3/C748: A23C97 LDX #$973C C3/C74B: 86EB STX $EB C3/C74D: 20AA0F JSR $0FAA (JMP fool!) C3/C750: 60 RTS C3/C751: A9C2 LDA #$C2 C3/C753: A04931 LDY #$3149 C3/C756: A2F497 LDX #$97F4 C3/C759: 208E0F JSR $0F8E (copy stuff from C2/97F4 to 7E/3149) C3/C75C: A9C2 LDA #$C2 C3/C75E: A06931 LDY #$3169 C3/C761: A29497 LDX #$9794 C3/C764: 208E0F JSR $0F8E (copy stuff from C2/9794 to 7E/3169) C3/C767: A9C2 LDA #$C2 C3/C769: A08931 LDY #$3189 C3/C76C: A2B497 LDX #$97B4 C3/C76F: 208E0F JSR $0F8E (copy stuff from C2/97B4 to 7E/3189) C3/C772: A9C2 LDA #$C2 C3/C774: A0A931 LDY #$31A9 C3/C777: A2D497 LDX #$97D4 C3/C77A: 208E0F JSR $0F8E (copy stuff from C2/97D4 to 7E/31A9) C3/C77D: A9C2 LDA #$C2 C3/C77F: A00932 LDY #$3209 C3/C782: A23498 LDX #$9834 C3/C785: 208E0F JSR $0F8E (copy stuff from C2/9834 to 7E/3209) C3/C788: A9C2 LDA #$C2 C3/C78A: A02932 LDY #$3229 C3/C78D: A21498 LDX #$9814 C3/C790: 208E0F JSR $0F8E (copy stuff from C2/9814 to 7E/3229, also JMP!) C3/C793: 60 RTS DP $26 is 09, 25, 26, 27, 2C, 31, 36, 37, 39, 3A, 3B, 54, 55, 56, 57, 58, 59, 5E, 5F, 60, 61, 62, 63, 6B, 6C, 6D, 72, 73, 74, 75, 76, 77, 7C, 7D, 7E, 7F, 80, or 81 C3/C794: 20DCC5 JSR $C5DC C3/C797: 22D7CED4 JSL $D4CED7 C3/C79B: 2022D5 JSR $D522 C3/C79E: 20E6D3 JSR $D3E6 C3/C7A1: 228FCBD4 JSL $D4CB8F C3/C7A5: 2051C7 JSR $C751 C3/C7A8: 205CD1 JSR $D15C C3/C7AB: 2073D1 JSR $D173 C3/C7AE: A0708A LDY #$8A70 C3/C7B1: A9C2 LDA #$C2 C3/C7B3: 2025D2 JSR $D225 C3/C7B6: 2083D9 JSR $D983 C3/C7B9: A400 LDY $00 C3/C7BB: 84CF STY $CF C3/C7BD: A902 LDA #$02 C3/C7BF: A0CBD7 LDY #$D7CB C3/C7C2: 207311 JSR $1173 (put C3/D7CB in the queue) C3/C7C5: 20A0D2 JSR $D2A0 C3/C7C8: E626 INC $26 C3/C7CA: A0C003 LDY #$03C0 C3/C7CD: 8420 STY $20 C3/C7CF: 4C6CC6 JMP $C66C DP $26 is 0A C3/C7D2: A420 LDY $20 C3/C7D4: D00A BNE $C7E0 C3/C7D6: E626 INC $26 C3/C7D8: A07008 LDY #$0870 C3/C7DB: 8420 STY $20 C3/C7DD: 2002C8 JSR $C802 C3/C7E0: 60 RTS DP $26 is 0B C3/C7E1: A420 LDY $20 C3/C7E3: D01C BNE $C801 C3/C7E5: A903 LDA #$03 C3/C7E7: 8526 STA $26 C3/C7E9: A07800 LDY #$0078 C3/C7EC: 8420 STY $20 C3/C7EE: A9C3 LDA #$C3 C3/C7F0: 85ED STA $ED C3/C7F2: A902 LDA #$02 C3/C7F4: A0A930 LDY #$30A9 C3/C7F7: 84E7 STY $E7 C3/C7F9: A2D410 LDX #$10D4 C3/C7FC: 86EB STX $EB C3/C7FE: 20AA0F JSR $0FAA (JMP fool!) C3/C801: 60 RTS C3/C802: 2046C8 JSR $C846 C3/C805: C220 REP #$20 (16 bit memory/accum.) C3/C807: A9DC8C LDA #$8CDC C3/C80A: 204FC8 JSR $C84F C3/C80D: E220 SEP #$20 (8 bit memory/accum.) C3/C80F: A9C2 LDA #$C2 C3/C811: 9FCA357E STA $7E35CA,X C3/C815: A9F8 LDA #$F8 C3/C817: 9FCA337E STA $7E33CA,X C3/C81B: A9A0 LDA #$A0 C3/C81D: 9F4A347E STA $7E344A,X C3/C821: A903 LDA #$03 C3/C823: A084DE LDY #$DE84 C3/C826: 207311 JSR $1173 (put C3/DE84 in the queue) C3/C829: C220 REP #$20 (16 bit memory/accum.) C3/C82B: A9F08C LDA #$8CF0 C3/C82E: 204FC8 JSR $C84F C3/C831: E220 SEP #$20 (8 bit memory/accum.) C3/C833: A9C2 LDA #$C2 C3/C835: 9FCA357E STA $7E35CA,X C3/C839: A9F8 LDA #$F8 C3/C83B: 9FCA337E STA $7E33CA,X C3/C83F: A9B0 LDA #$B0 C3/C841: 9F4A347E STA $7E344A,X C3/C845: 60 RTS C3/C846: A901 LDA #$01 C3/C848: A084DE LDY #$DE84 C3/C84B: 207311 JSR $1173 (put C3/DE84 in the queue) C3/C84E: 60 RTS C3/C84F: 9FC9327E STA $7E32C9,X C3/C853: A9C0FF LDA #$FFC0 C3/C856: 9FC9347E STA $7E34C9,X C3/C85A: A9E0FF LDA #$FFE0 C3/C85D: 9F49357E STA $7E3549,X C3/C861: A90004 LDA #$0400 C3/C864: 9F49337E STA $7E3349,X C3/C868: 60 RTS DP $26 is 02 C3/C869: 207EC8 JSR $C87E C3/C86C: A0F000 LDY #$00F0 C3/C86F: 8420 STY $20 C3/C871: A03C8B LDY #$8B3C C3/C874: A9C2 LDA #$C2 C3/C876: 2025D2 JSR $D225 C3/C879: E626 INC $26 (execute at C3/C8A6) C3/C87B: 4C6CC6 JMP $C66C C3/C87E: 22D7CED4 JSL $D4CED7 C3/C882: 2022D5 JSR $D522 C3/C885: 20E6D3 JSR $D3E6 C3/C888: 228FCBD4 JSL $D4CB8F C3/C88C: 2051C7 JSR $C751 C3/C88F: 205CD1 JSR $D15C C3/C892: A00002 LDY #$0200 C3/C895: 84C7 STY $C7 C3/C897: A000F0 LDY #$F000 C3/C89A: 84C5 STY $C5 C3/C89C: 20D2DD JSR $DDD2 C3/C89F: 2073D1 JSR $D173 C3/C8A2: 20A0D2 JSR $D2A0 (JMP fool!) C3/C8A5: 60 RTS DP $26 is 03 C3/C8A6: A420 LDY $20 C3/C8A8: D002 BNE $C8AC C3/C8AA: 6426 STZ $26 (execute at C3/C5BE) C3/C8AC: 60 RTS DP $26 is 04 C3/C8AD: 207EC8 JSR $C87E C3/C8B0: A00080 LDY #$8000 C3/C8B3: 84C7 STY $C7 C3/C8B5: A00080 LDY #$8000 C3/C8B8: 84C5 STY $C5 C3/C8BA: 20D2DD JSR $DDD2 C3/C8BD: A07800 LDY #$0078 C3/C8C0: 8420 STY $20 C3/C8C2: A0428B LDY #$8B42 C3/C8C5: A9C2 LDA #$C2 C3/C8C7: 2025D2 JSR $D225 C3/C8CA: A903 LDA #$03 C3/C8CC: 8526 STA $26 (execute at C3/C8A6) C3/C8CE: 4C6CC6 JMP $C66C DP $26 is 0C C3/C8D1: 22D7CED4 JSL $D4CED7 C3/C8D5: 209FC5 JSR $C59F C3/C8D8: 20AAD5 JSR $D5AA C3/C8DB: 20E6D3 JSR $D3E6 C3/C8DE: 228FCBD4 JSL $D4CB8F C3/C8E2: A00010 LDY #$1000 C3/C8E5: 84C5 STY $C5 C3/C8E7: 205CD1 JSR $D15C C3/C8EA: 2073D1 JSR $D173 C3/C8ED: 2051C7 JSR $C751 C3/C8F0: A0D98A LDY #$8AD9 C3/C8F3: A9C2 LDA #$C2 C3/C8F5: 2025D2 JSR $D225 C3/C8F8: 20C7CA JSR $CAC7 C3/C8FB: 2099D9 JSR $D999 C3/C8FE: A400 LDY $00 C3/C900: 84CF STY $CF C3/C902: A902 LDA #$02 C3/C904: A019D8 LDY #$D819 C3/C907: 207311 JSR $1173 (put C3/D819 in the queue) C3/C90A: 20A0D2 JSR $D2A0 C3/C90D: A03804 LDY #$0438 C3/C910: 8420 STY $20 C3/C912: E626 INC $26 C3/C914: 4C6CC6 JMP $C66C DP $26 is 0D C3/C917: A420 LDY $20 C3/C919: D00A BNE $C925 C3/C91B: 204EC9 JSR $C94E C3/C91E: 6426 STZ $26 (execute at C3/C5BE) C3/C920: A0D002 LDY #$02D0 C3/C923: 8420 STY $20 C3/C925: 60 RTS C3/C926: 20D2E9 JSR $E9D2 C3/C929: C220 REP #$20 (16 bit memory/accum.) C3/C92B: A9FDF7 LDA #$F7FD C3/C92E: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/C932: A9C0FF LDA #$FFC0 C3/C935: 9FC9347E STA $7E34C9,X C3/C939: E220 SEP #$20 (8 bit memory/accum.) C3/C93B: A9CF LDA #$CF C3/C93D: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/C941: A9F8 LDA #$F8 C3/C943: 9FCA337E STA $7E33CA,X C3/C947: A970 LDA #$70 C3/C949: 9F4A347E STA $7E344A,X C3/C94D: 60 RTS C3/C94E: 20D2E9 JSR $E9D2 C3/C951: C220 REP #$20 (16 bit memory/accum.) C3/C953: A909F8 LDA #$F809 C3/C956: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/C95A: A9C0FF LDA #$FFC0 C3/C95D: 9FC9347E STA $7E34C9,X C3/C961: E220 SEP #$20 (8 bit memory/accum.) C3/C963: A9CF LDA #$CF C3/C965: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/C969: A9F8 LDA #$F8 C3/C96B: 9FCA337E STA $7E33CA,X C3/C96F: A950 LDA #$50 C3/C971: 9F4A347E STA $7E344A,X C3/C975: A901 LDA #$01 C3/C977: A0A2C9 LDY #$C9A2 C3/C97A: 207311 JSR $1173 (put C3/C9A2 in the queue) C3/C97D: C220 REP #$20 (16 bit memory/accum.) C3/C97F: A9FDF7 LDA #$F7FD C3/C982: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/C986: A9C0FF LDA #$FFC0 C3/C989: 9FC9347E STA $7E34C9,X C3/C98D: E220 SEP #$20 (8 bit memory/accum.) C3/C98F: A9CF LDA #$CF C3/C991: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/C995: A9F8 LDA #$F8 C3/C997: 9FCA337E STA $7E33CA,X C3/C99B: A950 LDA #$50 C3/C99D: 9F4A347E STA $7E344A,X C3/C9A1: 60 RTS C3/C9A2: AA TAX C3/C9A3: 7CA6C9 JMP ($C9A6,X) C3/C9A6: AAC9 C3/C9A8: BCC9 C3/C9AA: A62D LDX $2D C3/C9AB: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/C9AE: C220 REP #$20 C3/C9B0: A94000 LDA #$0040 C3/C9B3: 9D4933 STA $3349,X C3/C9B7: E220 SEP #$20 (8 bit memory/accum.) C3/C9B9: 200612 JSR $1206 C3/C9BC: A62D LDX $2D C3/C9BE: BC4933 LDY $3349,X C3/C9C1: D005 BNE $C9C8 C3/C9C3: 20C0DE JSR $DEC0 C3/C9C6: 38 SEC (not done with this queue yet) C3/C9C7: 60 RTS C3/C9C8: 20E5CF JSR $CFE5 C3/C9CB: 38 SEC (not done with this queue yet) C3/C9CC: 60 RTS DP $26 is 0E, 0F, or 10 C3/C9CD: 22D7CED4 JSL $D4CED7 C3/C9D1: 209FC5 JSR $C59F C3/C9D4: 20DAD5 JSR $D5DA C3/C9D7: 2071CA JSR $CA71 C3/C9DA: 208CD3 JSR $D38C C3/C9DD: 206FD3 JSR $D36F C3/C9E0: 2051C7 JSR $C751 C3/C9E3: A02800 LDY #$0028 C3/C9E6: 843B STY $3B C3/C9E8: A06DFF LDY #$FF6D C3/C9EB: 84C3 STY $C3 C3/C9ED: A04C03 LDY #$034C C3/C9F0: 84C7 STY $C7 C3/C9F2: A000FD LDY #$FD00 C3/C9F5: 84C5 STY $C5 C3/C9F7: 20D2DD JSR $DDD2 C3/C9FA: 20FDCA JSR $CAFD C3/C9FD: A902 LDA #$02 C3/C9FF: A0C6CB LDY #$CBC6 C3/CA02: 207311 JSR $1173 (put C3/CDC6 in the queue) C3/CA05: C220 REP #$20 (16 bit memory/accum.) C3/CA07: A9B18B LDA #$8BB1 C3/CA0A: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/CA0E: E220 SEP #$20 (8 bit memory/accum.) C3/CA10: A9C2 LDA #$C2 C3/CA12: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/CA16: A978 LDA #$78 C3/CA18: 9FCA337E STA $7E33CA,X C3/CA1C: A958 LDA #$58 C3/CA1E: 9F4A347E STA $7E344A,X C3/CA22: 20D2E9 JSR $E9D2 C3/CA25: C220 REP #$20 (16 bit memory/accum.) C3/CA27: A9EC8B LDA #$8BEC C3/CA2A: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/CA2E: E220 SEP #$20 (8 bit memory/accum.) C3/CA30: A9C2 LDA #$C2 C3/CA32: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/CA36: A980 LDA #$80 C3/CA38: 9FCA337E STA $7E33CA,X C3/CA3C: A980 LDA #$80 C3/CA3E: 9F4A347E STA $7E344A,X C3/CA42: 2073D1 JSR $D173 C3/CA45: 20AFD9 JSR $D9AF C3/CA48: A400 LDY $00 C3/CA4A: 84CF STY $CF C3/CA4C: A902 LDA #$02 C3/CA4E: A049D8 LDY #$D849 C3/CA51: 207311 JSR $1173 (put C3/D849 in the queue) C3/CA54: A0368B LDY #$8B36 C3/CA57: A9C2 LDA #$C2 C3/CA59: 2025D2 JSR $D225 C3/CA5C: A903 LDA #$03 C3/CA5E: A0A2CA LDY #$CAA2 C3/CA61: 207311 JSR $1173 (put C3/CAA2 in the queue) C3/CA64: 20A0D2 JSR $D2A0 C3/CA67: E626 INC $26 C3/CA69: A0B004 LDY #$04B0 C3/CA6C: 8420 STY $20 C3/CA6E: 4C6CC6 JMP $C66C C3/CA71: 20E6D3 JSR $D3E6 C3/CA74: 20D3D4 JSR $D4D3 C3/CA77: 204BD3 JSR $D34B C3/CA7A: 205CD1 JSR $D15C C3/CA7D: 4C80CA JMP $CA80 C3/CA80: A9C2 LDA #$C2 C3/CA82: A04930 LDY #$3049 C3/CA85: A23C95 LDX #$953C C3/CA88: 208E0F JSR $0F8E (copy stuff from C2/953C to 7E/3049) C3/CA8B: 60 RTS DP $26 is 11 C3/CA8C: A420 LDY $20 C3/CA8E: D011 BNE $CAA1 C3/CA90: A903 LDA #$03 C3/CA92: 8526 STA $26 (execute at C3/C8A6) C3/CA94: A00807 LDY #$0708 C3/CA97: 8420 STY $20 C3/CA99: A901 LDA #$01 C3/CA9B: A079CC LDY #$CC79 C3/CA9E: 207311 JSR $1173 (put C3/CC79 in the queue) C3/CAA1: 60 RTS C3/CAA2: A523 LDA $23 C3/CAA4: 2901 AND #$01 C3/CAA6: D006 BNE $CAAE C3/CAA8: C220 REP #$20 (16 bit memory/accum.) C3/CAAA: C639 DEC $39 C3/CAAC: E220 SEP #$20 (8 bit memory/accum.) C3/CAAE: 38 SEC C3/CAAF: 60 RTS C3/CAB0: A523 LDA $23 C3/CAB2: 2901 AND #$01 C3/CAB4: D006 BNE $CABC C3/CAB6: C220 REP #$20 (16 bit memory/accum.) C3/CAB8: E639 INC $39 C3/CABA: E220 SEP #$20 (8 bit memory/accum.) C3/CABC: 38 SEC C3/CABD: 60 RTS DP $26 is 12 or 13 C3/CABE: A420 LDY $20 C3/CAC0: D004 BNE $CAC6 C3/CAC2: A9FF LDA #$FF C3/CAC4: 8526 STA $26 (exit this process) C3/CAC6: 60 RTS C3/CAC7: A600 LDX $00 C3/CAC9: DA PHX C3/CACA: 205FCB JSR $CB5F C3/CACD: 9B TXY C3/CACE: FA PLX C3/CACF: 8B PHB C3/CAD0: A97E LDA #$7E C3/CAD2: 48 PHA C3/CAD3: AB PLB C3/CAD4: C220 REP #$20 (16 bit memory/accum.) C3/CAD6: BFB5F7CF LDA $CFF7B5,X C3/CADA: E8 INX C3/CADB: E8 INX C3/CADC: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/CADF: E220 SEP #$20 (8 bit memory/accum.) C3/CAE1: BFB5F7CF LDA $CFF7B5,X C3/CAE5: E8 INX C3/CAE6: 99CA34 STA $34CA,Y C3/CAE9: BFB5F7CF LDA $CFF7B5,X C3/CAED: E8 INX C3/CAEE: 994A34 STA $344A,Y C3/CAF1: A901 LDA #$01 C3/CAF3: 994A36 STA $364A,Y C3/CAF6: AB PLB C3/CAF7: E01800 CPX #$0018 C3/CAFA: D0CD BNE $CAC9 C3/CAFC: 60 RTS C3/CAFD: A600 LDX $00 C3/CAFF: DA PHX C3/CB00: 205FCB JSR $CB5F C3/CB03: 9B TXY C3/CB04: FA PLX C3/CB05: 8B PHB C3/CB06: A97E LDA #$7E C3/CB08: 48 PHA C3/CB09: AB PLB C3/CB0A: C220 REP #$20 (16 bit memory/accum.) C3/CB0C: BFCDF7CF LDA $CFF7CD,X C3/CB10: E8 INX C3/CB11: E8 INX C3/CB12: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/CB15: E220 SEP #$20 (8 bit memory/accum.) C3/CB17: BFCDF7CF LDA $CFF7CD,X C3/CB1B: E8 INX C3/CB1C: 99CA34 STA $34CA,Y C3/CB1F: BFCDF7CF LDA $CFF7CD,X C3/CB23: E8 INX C3/CB24: 994A34 STA $344A,Y C3/CB27: AB PLB C3/CB28: E01800 CPX #$0018 C3/CB2B: D0D2 BNE $CAFF C3/CB2D: 60 RTS C3/CB2E: A600 LDX $00 C3/CB30: DA PHX C3/CB31: 205FCB JSR $CB5F C3/CB34: 9B TXY C3/CB35: FA PLX C3/CB36: 8B PHB C3/CB37: A97E LDA #$7E C3/CB39: 48 PHA C3/CB3A: AB PLB C3/CB3B: C220 REP #$20 (16 bit memory/accum.) C3/CB3D: BFE5F7CF LDA $CFF7E5,X C3/CB41: E8 INX C3/CB42: E8 INX C3/CB43: 99C932 STA $32C9,Y (save as pointer to OAM data) C3/CB46: E220 SEP #$20 (8 bit memory/accum.) C3/CB48: BFE5F7CF LDA $CFF7E5,X C3/CB4C: E8 INX C3/CB4D: 99CA34 STA $34CA,Y C3/CB50: BFE5F7CF LDA $CFF7E5,X C3/CB54: E8 INX C3/CB55: 994A34 STA $344A,Y C3/CB58: AB PLB C3/CB59: E01800 CPX #$0018 C3/CB5C: D0D2 BNE $CB30 C3/CB5E: 60 RTS C3/CB5F: A902 LDA #$02 C3/CB61: A068CB LDY #$CB68 C3/CB64: 207311 JSR $1173 C3/CB67: 60 RTS C3/CB68: AA TAX C3/CB69: 7C6CCB JMP ($CB6C,X) C3/CB6C: 70CB C3/CB6E: 87CB C3/CB70: A62D LDX $2D C3/CB72: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/CB75: 9E4A33 STZ $334A,X C3/CB78: BF68CBC3 LDA $C3CB68,X C3/CB7C: 9D4933 STA $3349,X C3/CB7F: A9CF LDA #$CF C3/CB81: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/CB84: 200612 JSR $1206 C3/CB87: A62D LDX $2D C3/CB89: 2094CB JSR $CB94 C3/CB8C: FE4933 INC $3349,X C3/CB8F: 20C0DE JSR $DEC0 C3/CB92: 38 SEC (not done with this queue yet) C3/CB93: 60 RTS C3/CB94: C220 REP #$20 (16 bit memory/accum.) C3/CB96: BD4933 LDA $3349,X C3/CB99: 2076DE JSR $DE76 C3/CB9C: 85EB STA $EB C3/CB9E: 85E0 STA $E0 C3/CBA0: A5E0 LDA $E0 C3/CBA2: 1004 BPL $CBA8 C3/CBA4: 49FFFF EOR #$FFFF C3/CBA7: 1A INC A C3/CBA8: 85E0 STA $E0 C3/CBAA: A5EB LDA $EB C3/CBAC: 1009 BPL $CBB7 C3/CBAE: 2031CC JSR $CC31 C3/CBB1: 49FFFF EOR #$FFFF C3/CBB4: 1A INC A C3/CBB5: 8003 BRA $CBBA C3/CBB7: 2031CC JSR $CC31 C3/CBBA: A62D LDX $2D C3/CBBC: 18 CLC C3/CBBD: 7DC934 ADC $34C9,X C3/CBC0: 9DC933 STA $33C9,X C3/CBC3: E220 SEP #$20 (8 bit memory/accum.) C3/CBC5: 60 RTS C3/CBC6: AA TAX C3/CBC7: 7CCACB JMP ($CBCA,X) C3/CBCA: CECB C3/CBCC: E6CB C3/CBCE: A62D LDX $2D C3/CBD0: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/CBD3: 9E4A33 STZ $334A,X C3/CBD6: 9E4933 STZ $3349,X C3/CBD9: A978 LDA #$78 C3/CBDB: 9DCA33 STA $33CA,X C3/CBDE: A920 LDA #$20 C3/CBE0: 9D4A35 STA $354A,X C3/CBE3: 200612 JSR $1206 C3/CBE6: A62D LDX $2D C3/CBE8: 20FFCB JSR $CBFF C3/CBEB: A62D LDX $2D C3/CBED: FE4933 INC $3349,X C3/CBF0: BD4933 LDA $3349,X C3/CBF3: C938 CMP #$38 C3/CBF5: B003 BCS $CBFA C3/CBF7: 2038CC JSR $CC38 C3/CBFA: 20C0DE JSR $DEC0 C3/CBFD: 38 SEC (not done with this queue yet) C3/CBFE: 60 RTS C3/CBFF: C220 REP #$20 (16 bit memory/accum.) C3/CC01: BD4933 LDA $3349,X C3/CC04: 207ADE JSR $DE7A C3/CC07: 85EB STA $EB C3/CC09: 85E0 STA $E0 C3/CC0B: A5E0 LDA $E0 C3/CC0D: 1004 BPL $CC13 C3/CC0F: 49FFFF EOR #$FFFF C3/CC12: 1A INC A C3/CC13: 85E0 STA $E0 C3/CC15: A5EB LDA $EB C3/CC17: 1009 BPL $CC22 C3/CC19: 2031CC JSR $CC31 C3/CC1C: 49FFFF EOR #$FFFF C3/CC1F: 1A INC A C3/CC20: 8003 BRA $CC25 C3/CC22: 2031CC JSR $CC31 C3/CC25: A62D LDX $2D C3/CC27: 18 CLC C3/CC28: 7D4935 ADC $3549,X C3/CC2B: 9D4934 STA $3449,X C3/CC2E: E220 SEP #$20 (8 bit memory/accum.) C3/CC30: 60 RTS C3/CC31: A5E0 LDA $E0 C3/CC33: 4A LSR A C3/CC34: 4A LSR A C3/CC35: 4A LSR A C3/CC36: 4A LSR A C3/CC37: 60 RTS C3/CC38: A523 LDA $23 C3/CC3A: 2903 AND #$03 C3/CC3C: D03A BNE $CC78 C3/CC3E: 8B PHB C3/CC3F: A900 LDA #$00 C3/CC41: 48 PHA C3/CC42: AB PLB C3/CC43: 2046C8 JSR $C846 C3/CC46: C220 REP #$20 (16 bit memory/accum.) C3/CC48: A90B8D LDA #$8D0B C3/CC4B: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/CC4F: A90001 LDA #$0100 C3/CC52: 9FC9347E STA $7E34C9,X C3/CC56: A980FF LDA #$FF80 C3/CC59: 9F49357E STA $7E3549,X C3/CC5D: E220 SEP #$20 (8 bit memory/accum.) C3/CC5F: A918 LDA #$18 C3/CC61: 9F49337E STA $7E3349,X C3/CC65: A9C2 LDA #$C2 C3/CC67: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/CC6B: A97E LDA #$7E C3/CC6D: 9FCA337E STA $7E33CA,X C3/CC71: A97C LDA #$7C C3/CC73: 9F4A347E STA $7E344A,X C3/CC77: AB PLB C3/CC78: 60 RTS C3/CC79: AA TAX C3/CC7A: 7C7DCC JMP ($CC7D,X) C3/CC7D: 81CC C3/CC7F: A8CC C3/CC81: A62D LDX $2D C3/CC83: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/CC86: A9CF LDA #$CF C3/CC88: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/CC8B: C220 REP #$20 (16 bit memory/accum.) C3/CC8D: A972F7 LDA #$F772 C3/CC90: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/CC93: A91000 LDA #$0010 C3/CC96: 9D4933 STA $3349,X C3/CC99: E220 SEP #$20 (8 bit memory/accum.) C3/CC9B: A900 LDA #$00 C3/CC9D: 9DCA34 STA $34CA,X C3/CCA0: A900 LDA #$00 C3/CCA2: 9D4A35 STA $354A,X C3/CCA5: 200612 JSR $1206 C3/CCA8: A62D LDX $2D C3/CCAA: BDCA33 LDA $33CA,X C3/CCAD: C908 CMP #$08 C3/CCAF: B002 BCS $CCB3 C3/CCB1: 18 CLC (this queue can be removed) C3/CCB2: 60 RTS C3/CCB3: C220 REP #$20 (16 bit memory/accum.) C3/CCB5: BD4933 LDA $3349,X C3/CCB8: 2076DE JSR $DE76 C3/CCBB: 85EB STA $EB C3/CCBD: 85E0 STA $E0 C3/CCBF: A5E0 LDA $E0 C3/CCC1: 1004 BPL $CCC7 C3/CCC3: 49FFFF EOR #$FFFF C3/CCC6: 1A INC A C3/CCC7: 85E0 STA $E0 C3/CCC9: A5EB LDA $EB C3/CCCB: 1009 BPL $CCD6 C3/CCCD: A5E0 LDA $E0 C3/CCCF: 0A ASL A C3/CCD0: 49FFFF EOR #$FFFF C3/CCD3: 1A INC A C3/CCD4: 8003 BRA $CCD9 C3/CCD6: A5E0 LDA $E0 C3/CCD8: 0A ASL A C3/CCD9: A62D LDX $2D C3/CCDB: 18 CLC C3/CCDC: 7DC934 ADC $34C9,X C3/CCDF: 9DC933 STA $33C9,X C3/CCE2: BD4933 LDA $3349,X C3/CCE5: 207ADE JSR $DE7A C3/CCE8: 85EB STA $EB C3/CCEA: 85E0 STA $E0 C3/CCEC: A5E0 LDA $E0 C3/CCEE: 1004 BPL $CCF4 C3/CCF0: 49FFFF EOR #$FFFF C3/CCF3: 1A INC A C3/CCF4: 85E0 STA $E0 C3/CCF6: A5EB LDA $EB C3/CCF8: 1008 BPL $CD02 C3/CCFA: A5E0 LDA $E0 C3/CCFC: 49FFFF EOR #$FFFF C3/CCFF: 1A INC A C3/CD00: 8002 BRA $CD04 C3/CD02: A5E0 LDA $E0 C3/CD04: A62D LDX $2D C3/CD06: 18 CLC C3/CD07: 7D4935 ADC $3549,X C3/CD0A: 9D4934 STA $3449,X C3/CD0D: FE4933 INC $3349,X C3/CD10: E220 SEP #$20 (8 bit memory/accum.) C3/CD12: 202112 JSR $1221 (draw the sprites!) C3/CD15: 38 SEC (not done with this queue yet) C3/CD16: 60 RTS DP $26 is 14 C3/CD17: 22D7CED4 JSL $D4CED7 C3/CD1B: 209FC5 JSR $C59F C3/CD1E: 2273D5C3 JSL $C3D573 C3/CD22: 2071CA JSR $CA71 C3/CD25: 208CD3 JSR $D38C C3/CD28: 206FD3 JSR $D36F C3/CD2B: 2051C7 JSR $C751 C3/CD2E: A02800 LDY #$0028 C3/CD31: 843B STY $3B C3/CD33: A0CDFF LDY #$FFCD C3/CD36: 84C3 STY $C3 C3/CD38: A00B03 LDY #$030B C3/CD3B: 84C7 STY $C7 C3/CD3D: A000F0 LDY #$F000 C3/CD40: 84C5 STY $C5 C3/CD42: 20D2DD JSR $DDD2 C3/CD45: 2073D1 JSR $D173 C3/CD48: 202ECB JSR $CB2E C3/CD4B: 20DCCF JSR $CFDC C3/CD4E: C220 REP #$20 (16 bit memory/accum.) C3/CD50: A9258C LDA #$8C25 C3/CD53: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/CD57: E220 SEP #$20 (8 bit memory/accum.) C3/CD59: A9C2 LDA #$C2 C3/CD5B: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/CD5F: A978 LDA #$78 C3/CD61: 9FCA337E STA $7E33CA,X C3/CD65: A958 LDA #$58 C3/CD67: 9F4A357E STA $7E354A,X C3/CD6B: A0398B LDY #$8B39 C3/CD6E: A9C2 LDA #$C2 C3/CD70: 2025D2 JSR $D225 C3/CD73: 20C5D9 JSR $D9C5 C3/CD76: A400 LDY $00 C3/CD78: 84CF STY $CF C3/CD7A: A902 LDA #$02 C3/CD7C: A097D8 LDY #$D897 C3/CD7F: 207311 JSR $1173 (put C2/D897 in the queue) C3/CD82: A903 LDA #$03 C3/CD84: A0B0CA LDY #$CAB0 C3/CD87: 207311 JSR $1173 (put C3/CAB0 in the queue) C3/CD8A: 20A0D2 JSR $D2A0 C3/CD8D: E626 INC $26 (execute at C3/CDA0) C3/CD8F: A0B004 LDY #$04B0 C3/CD92: 8420 STY $20 C3/CD94: 4C6CC6 JMP $C66C C3/CD97: A902 LDA #$02 C3/CD99: A0EACD LDY #$CDEA C3/CD9C: 207311 JSR $1173 (put C3/CDEA in the queue) C3/CD9F: 60 RTS DP $26 is 15 C3/CDA0: A420 LDY $20 C3/CDA2: D045 BNE $CDE9 C3/CDA4: A903 LDA #$03 C3/CDA6: 8526 STA $26 (execute at C3/C8A6) C3/CDA8: A00807 LDY #$0708 C3/CDAB: 8420 STY $20 C3/CDAD: 2097CD JSR $CD97 C3/CDB0: A900 LDA #$00 C3/CDB2: 9FCA337E STA $7E33CA,X C3/CDB6: A950 LDA #$50 C3/CDB8: 9F4A347E STA $7E344A,X C3/CDBC: 2097CD JSR $CD97 C3/CDBF: A918 LDA #$18 C3/CDC1: 9FCA337E STA $7E33CA,X C3/CDC5: A940 LDA #$40 C3/CDC7: 9F4A347E STA $7E344A,X C3/CDCB: 2097CD JSR $CD97 C3/CDCE: A940 LDA #$40 C3/CDD0: 9FCA337E STA $7E33CA,X C3/CDD4: A968 LDA #$68 C3/CDD6: 9F4A347E STA $7E344A,X C3/CDDA: 2097CD JSR $CD97 C3/CDDD: A910 LDA #$10 C3/CDDF: 9FCA337E STA $7E33CA,X C3/CDE3: A948 LDA #$48 C3/CDE5: 9F4A347E STA $7E344A,X C3/CDE9: 60 RTS DP $26 is 16 or 17 C3/CDEA: AA TAX C3/CDEB: 7CEECD JMP ($CDEE,X) C3/CDEE: 00CE C3/CDF0: 1FCE C3/CDF2: 1FCE C3/CDF4: 1FCE C3/CDF6: 1FCE C3/CDF8: 1FCE C3/CDFA: 1FCE C3/CDFC: 1FCE C3/CDFE: 33CE C3/CE00: A62D LDX $2D C3/CE02: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/CE05: C220 REP #$20 (16 bit memory/accum.) C3/CE07: A94FF7 LDA #$F74F C3/CE0A: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/CE0D: E220 SEP #$20 (8 bit memory/accum.) C3/CE0F: A9CF LDA #$CF C3/CE11: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/CE14: 9EC935 STZ $35C9,X C3/CE17: 2043CE JSR $CE43 C3/CE1A: A62D LDX $2D C3/CE1C: 200612 JSR $1206 C3/CE1F: A62D LDX $2D C3/CE21: BC4933 LDY $3349,X C3/CE24: D005 BNE $CE2B C3/CE26: 2043CE JSR $CE43 C3/CE29: A62D LDX $2D C3/CE2B: 20E5CF JSR $CFE5 C3/CE2E: 20C0DE JSR $DEC0 C3/CE31: 38 SEC (not done with this queue yet) C3/CE32: 60 RTS C3/CE33: 20C0DE JSR $DEC0 C3/CE36: A62D LDX $2D C3/CE38: BDCA33 LDA $33CA,X C3/CE3B: C901 CMP #$01 C3/CE3D: B002 BCS $CE41 C3/CE3F: 18 CLC (this queue can be removed) C3/CE40: 60 RTS C3/CE41: 38 SEC (not done with this queue yet) C3/CE42: 60 RTS C3/CE43: A42D LDY $2D C3/CE45: BB TYX C3/CE46: 7B TDC C3/CE47: B9C935 LDA $35C9,Y C3/CE4A: FEC935 INC $35C9,X C3/CE4D: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/CE50: 0A ASL A C3/CE51: 0A ASL A C3/CE52: 0A ASL A C3/CE53: C220 REP #$20 (16 bit memory/accum.) C3/CE55: AA TAX C3/CE56: BF6ECEC3 LDA $C3CE6E,X C3/CE5A: 99C934 STA $34C9,Y C3/CE5D: BF70CEC3 LDA $C3CE70,X C3/CE61: 994935 STA $3549,Y C3/CE64: BF72CEC3 LDA $C3CE72,X C3/CE68: 994933 STA $3349,Y C3/CE6B: E220 SEP #$20 (8 bit memory/accum.) C3/CE6D: 60 RTS C3/CE6E: 2000F0 JSR $F000 C3/CE71: FF840300 SBC $000384,X C3/CE75: 0020 BRK #$20 C3/CE77: 0000 BRK #$00 C3/CE79: 003C BRK #$3C C3/CE7B: 0000 BRK #$00 C3/CE7D: 0020 BRK #$20 C3/CE7F: 0020 BRK #$20 C3/CE81: 003C BRK #$3C C3/CE83: 0000 BRK #$00 C3/CE85: 0010 BRK #$10 C3/CE87: 0040 BRK #$40 C3/CE89: 003C BRK #$3C C3/CE8B: 0000 BRK #$00 C3/CE8D: 00E0 BRK #$E0 C3/CE8F: FF40003C SBC $3C0040,X C3/CE93: 0000 BRK #$00 C3/CE95: 00C0 BRK #$C0 C3/CE97: FF4000B4 SBC $B40040,X C3/CE9B: 0000 BRK #$00 C3/CE9D: 0080 BRK #$80 C3/CE9F: FF8000B4 SBC $B40080,X C3/CEA3: 0000 BRK #$00 C3/CEA5: 00 DP $26 is 18 C3/CEA6: 22D7CED4 JSL $D4CED7 C3/CEAA: 209FC5 JSR $C59F C3/CEAD: 2273D5C3 JSL $C3D573 C3/CEB1: 20E6D3 JSR $D3E6 C3/CEB4: 228FCBD4 JSL $D4CB8F C3/CEB8: A00018 LDY #$1800 C3/CEBB: 84C5 STY $C5 C3/CEBD: 20D2DD JSR $DDD2 C3/CEC0: 205CD1 JSR $D15C C3/CEC3: 2073D1 JSR $D173 C3/CEC6: A0FA8A LDY #$8AFA C3/CEC9: A9C2 LDA #$C2 C3/CECB: 2025D2 JSR $D225 C3/CECE: 20DBD9 JSR $D9DB C3/CED1: A400 LDY $00 C3/CED3: 84CF STY $CF C3/CED5: A902 LDA #$02 C3/CED7: A0E5D8 LDY #$D8E5 C3/CEDA: 207311 JSR $1173 (put C3/D8E5 in the queue) C3/CEDD: 20A0D2 JSR $D2A0 C3/CEE0: A903 LDA #$03 C3/CEE2: 8526 STA $26 (execute at C3/C8A6) C3/CEE4: A0100E LDY #$0E10 C3/CEE7: 8420 STY $20 C3/CEE9: 4C6CC6 JMP $C66C DP $26 is 19, 1A, 1B, or 1C C3/CEEC: 22D7CED4 JSL $D4CED7 C3/CEF0: 2273D5C3 JSL $C3D573 C3/CEF4: 2044D1 JSR $D144 C3/CEF7: 2071CA JSR $CA71 C3/CEFA: 208CD3 JSR $D38C C3/CEFD: 206FD3 JSR $D36F C3/CF00: A00001 LDY #$0100 C3/CF03: 84C5 STY $C5 C3/CF05: A0DC02 LDY #$02DC C3/CF08: 84C7 STY $C7 C3/CF0A: 20D2DD JSR $DDD2 C3/CF0D: A01000 LDY #$0010 C3/CF10: 843B STY $3B C3/CF12: 205CD1 JSR $D15C C3/CF15: 2051C7 JSR $C751 C3/CF18: 2073D1 JSR $D173 C3/CF1B: 20E6D9 JSR $D9E6 C3/CF1E: A400 LDY $00 C3/CF20: 84CF STY $CF C3/CF22: A902 LDA #$02 C3/CF24: A033D9 LDY #$D933 C3/CF27: 207311 JSR $1173 (put C3/D933 in the queue) C3/CF2A: A900 LDA #$00 C3/CF2C: A09ACF LDY #$CF9A C3/CF2F: 207311 JSR $1173 (put C3/CF9A in the queue) C3/CF32: 20B2CF JSR $CFB2 C3/CF35: A914 LDA #$14 C3/CF37: 9F4A357E STA $7E354A,X C3/CF3B: A944 LDA #$44 C3/CF3D: 9FCA337E STA $7E33CA,X C3/CF41: 20C7CF JSR $CFC7 C3/CF44: A914 LDA #$14 C3/CF46: 9F4A357E STA $7E354A,X C3/CF4A: A9AC LDA #$AC C3/CF4C: 9FCA337E STA $7E33CA,X C3/CF50: 20B2CF JSR $CFB2 C3/CF53: A9E8 LDA #$E8 C3/CF55: 9F4A357E STA $7E354A,X C3/CF59: A960 LDA #$60 C3/CF5B: 9FCA337E STA $7E33CA,X C3/CF5F: 20C7CF JSR $CFC7 C3/CF62: A9E8 LDA #$E8 C3/CF64: 9F4A357E STA $7E354A,X C3/CF68: A990 LDA #$90 C3/CF6A: 9FCA337E STA $7E33CA,X C3/CF6E: 20DCCF JSR $CFDC C3/CF71: C220 REP #$20 (16 bit memory/accum.) C3/CF73: A9608C LDA #$8C60 C3/CF76: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/CF7A: E220 SEP #$20 (8 bit memory/accum.) C3/CF7C: A9C2 LDA #$C2 C3/CF7E: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/CF82: A948 LDA #$48 C3/CF84: 9FCA337E STA $7E33CA,X C3/CF88: A9F8 LDA #$F8 C3/CF8A: 9F4A357E STA $7E354A,X C3/CF8E: A903 LDA #$03 C3/CF90: 8526 STA $26 (execute at C3/C8A6) C3/CF92: A0AC08 LDY #$08AC C3/CF95: 8420 STY $20 C3/CF97: 4C6CC6 JMP $C66C C3/CF9A: A523 LDA $23 C3/CF9C: 297F AND #$7F C3/CF9E: D002 BNE $CFA2 C3/CFA0: E63B INC $3B C3/CFA2: A523 LDA $23 C3/CFA4: 2901 AND #$01 C3/CFA6: D008 BNE $CFB0 C3/CFA8: C220 REP #$20 (16 bit memory/accum.) C3/CFAA: C6B9 DEC $B9 C3/CFAC: C637 DEC $37 C3/CFAE: E220 SEP #$20 (8 bit memory/accum.) C3/CFB0: 38 SEC C3/CFB1: 60 RTS C3/CFB2: 20DCCF JSR $CFDC C3/CFB5: A9C2 LDA #$C2 C3/CFB7: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/CFBB: C220 REP #$20 (16 bit memory/accum.) C3/CFBD: A93E8D LDA #$8D3E C3/CFC0: 9FC9327E STA $7E32C9,X (save as pointer of OAM data) C3/CFC4: E220 SEP #$20 (8 bit memory/accum.) C3/CFC6: 60 RTS C3/CFC7: 20DCCF JSR $CFDC C3/CFCA: A9C2 LDA #$C2 C3/CFCC: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/CFD0: C220 REP #$20 (16 bit memory/accum.) C3/CFD2: A9918D LDA #$8D91 C3/CFD5: 9FC9327E STA $7E32C9,X (save as pointer of OAM data) C3/CFD9: E220 SEP #$20 (8 bit memory/accum.) C3/CFDB: 60 RTS C3/CFDC: A902 LDA #$02 C3/CFDE: A0F8CF LDY #$CFF8 C3/CFE1: 207311 JSR $1173 (put C3/CFF8 in the queue) C3/CFE4: 60 RTS C3/CFE5: A62D LDX $2D C3/CFE7: C220 REP #$20 (16 bit memory/accum.) C3/CFE9: DE4933 DEC $3349,X C3/CFEC: E220 SEP #$20 (8 bit memory/accum.) C3/CFEE: 60 RTS C3/CFEF: C220 REP #$20 (16 bit memory/accum.) C3/CFF1: 98 TYA C3/CFF2: 9D4933 STA $3349,X C3/CFF5: E220 SEP #$20 (8 bit memory/accum.) C3/CFF7: 60 RTS C3/CFF8: AA TAX C3/CFF9: 7CFCCF JMP ($CFFC,X) C3/CFFC: 00D0 C3/CFFE: 0BD0 C3/D000: A62D LDX $2D C3/D002: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/D005: 9E4933 STZ $3349,X C3/D008: 200612 JSR $1206 C3/D00B: A62D LDX $2D C3/D00D: 20FFCB JSR $CBFF C3/D010: FE4933 INC $3349,X C3/D013: 202112 JSR $1221 (draw the sprites!) C3/D016: 38 SEC (not done with this queue yet) C3/D017: 60 RTS DP $26 is 1D, 1E, or 1F C3/D018: A9C2 LDA #$C2 C3/D01A: A04930 LDY #$3049 C3/D01D: A29C95 LDX #$959C C3/D020: 208E0F JSR $0F8E (copy stuff from C2/959C to 7E/3049) C3/D023: A9C2 LDA #$C2 C3/D025: A06930 LDY #$3069 C3/D028: A29C95 LDX #$959C C3/D02B: 208E0F JSR $0F8E (copy stuff from C2/959C and 7E/3069, also JMP!) C3/D02E: 60 RTS DP $26 is 20 C3/D02F: 22D7CED4 JSL $D4CED7 C3/D033: 209FC5 JSR $C59F C3/D036: A980 LDA #$80 C3/D038: 8D1A21 STA $211A C3/D03B: 200AD6 JSR $D60A C3/D03E: 20E6D3 JSR $D3E6 C3/D041: 2255CED4 JSL $D4CE55 C3/D045: A9C2 LDA #$C2 C3/D047: A0C931 LDY #$31C9 C3/D04A: A25497 LDX #$9754 C3/D04D: 208E0F JSR $0F8E (copy stuff from C2/9754 to 7E/31C9) C3/D050: A9C2 LDA #$C2 C3/D052: A0E931 LDY #$31E9 C3/D055: A24C97 LDX #$974C C3/D058: 208E0F JSR $0F8E (copy stuff from C2/974C to 7E/31E9) C3/D05B: 2073D1 JSR $D173 C3/D05E: 2018D0 JSR $D018 C3/D061: A00100 LDY #$0001 C3/D064: 84BB STY $BB C3/D066: 84C1 STY $C1 C3/D068: A00800 LDY #$0008 C3/D06B: 84B7 STY $B7 C3/D06D: A01800 LDY #$0018 C3/D070: 84B9 STY $B9 C3/D072: A0D8FF LDY #$FFD8 C3/D075: 8435 STY $35 C3/D077: A0D0FF LDY #$FFD0 C3/D07A: 8437 STY $37 C3/D07C: A900 LDA #$00 C3/D07E: A022D1 LDY #$D122 C3/D081: 207311 JSR $1173 (put C3/D122 in the queue) C3/D084: E626 INC $26 (execute at C3/D096) C3/D086: A09600 LDY #$0096 C3/D089: 8420 STY $20 C3/D08B: A900 LDA #$00 C3/D08D: A0A8D0 LDY #$D0A8 C3/D090: 207311 JSR $1173 (put C3/D0A8 in the queue) C3/D093: 4C6CC6 JMP $C66C DP $26 is 21 C3/D096: A420 LDY $20 C3/D098: D00D BNE $D0A7 C3/D09A: 6426 STZ $26 (execute at C3/C5BE) C3/D09C: A07800 LDY #$0078 C3/D09F: 8420 STY $20 C3/D0A1: 206BE1 JSR $E16B C3/D0A4: 2041E2 JSR $E241 (JMP fool!) C3/D0A7: 60 RTS C3/D0A8: A523 LDA $23 C3/D0AA: 2901 AND #$01 C3/D0AC: F011 BEQ $D0BF C3/D0AE: A951 LDA #$51 C3/D0B0: 8F49987E STA $7E9849 C3/D0B4: A94F LDA #$4F C3/D0B6: 8F4A987E STA $7E984A C3/D0BA: 20D0D0 JSR $D0D0 C3/D0BD: 38 SEC C3/D0BE: 60 RTS C3/D0BF: A959 LDA #$59 C3/D0C1: 8F49987E STA $7E9849 C3/D0C5: A95A LDA #$5A C3/D0C7: 8F4A987E STA $7E984A C3/D0CB: 20D0D0 JSR $D0D0 C3/D0CE: 38 SEC C3/D0CF: 60 RTS C3/D0D0: A08302 LDY #$0283 C3/D0D3: 8414 STY $14 C3/D0D5: A04998 LDY #$9849 C3/D0D8: 8416 STY $16 C3/D0DA: A00602 LDY #$0206 C3/D0DD: 841B STY $1B C3/D0DF: A04A98 LDY #$984A C3/D0E2: 841D STY $1D C3/D0E4: A97E LDA #$7E C3/D0E6: 8518 STA $18 C3/D0E8: 851F STA $1F C3/D0EA: A00100 LDY #$0001 C3/D0ED: 8412 STY $12 C3/D0EF: 8419 STY $19 C3/D0F1: 60 RTS C3/D0F2: A523 LDA $23 C3/D0F4: 2901 AND #$01 C3/D0F6: F00B BEQ $D103 C3/D0F8: A958 LDA #$58 C3/D0FA: 8F49987E STA $7E9849 C3/D0FE: 200ED1 JSR $D10E C3/D101: 38 SEC C3/D102: 60 RTS C3/D103: A934 LDA #$34 C3/D105: 8F49987E STA $7E9849 C3/D109: 200ED1 JSR $D10E C3/D10C: 38 SEC C3/D10D: 60 RTS C3/D10E: A09208 LDY #$0892 C3/D111: 8414 STY $14 C3/D113: A04998 LDY #$9849 C3/D116: 8416 STY $16 C3/D118: A97E LDA #$7E C3/D11A: 8518 STA $18 C3/D11C: A00100 LDY #$0001 C3/D11F: 8412 STY $12 C3/D121: 60 RTS DP $26 is 22, 23, or 24 C3/D122: 2027D1 JSR $D127 C3/D125: 38 SEC C3/D126: 60 RTS C3/D127: A523 LDA $23 C3/D129: 2907 AND #$07 C3/D12B: D00A BNE $D137 C3/D12D: A4B9 LDY $B9 C3/D12F: 88 DEY C3/D130: 84B9 STY $B9 C3/D132: A4B7 LDY $B7 C3/D134: C8 INY C3/D135: 84B7 STY $B7 C3/D137: C220 REP #$20 (16 bit memory/accum.) C3/D139: E6BB INC $BB C3/D13B: E6BB INC $BB C3/D13D: E6C1 INC $C1 C3/D13F: E6C1 INC $C1 C3/D141: E220 SEP #$20 (8 bit memory/accum.) C3/D143: 60 RTS C3/D144: A0BAD7 LDY #$D7BA C3/D147: 84E7 STY $E7 C3/D149: A97E LDA #$7E C3/D14B: 85E9 STA $E9 C3/D14D: A08005 LDY #$0580 C3/D150: 84EB STY $EB C3/D152: 64ED STZ $ED C3/D154: 64EE STZ $EE C3/D156: A0006C LDY #$6C00 C3/D159: 4CB9DD JMP $DDB9 C3/D15C: A9C3 LDA #$C3 C3/D15E: A0C931 LDY #$31C9 C3/D161: A2F410 LDX #$10F4 C3/D164: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/31C9) C3/D167: A9C3 LDA #$C3 C3/D169: A0E931 LDY #$31E9 C3/D16C: A2F410 LDX #$10F4 C3/D16F: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/31E9) C3/D172: 60 RTS C3/D173: A9C2 LDA #$C2 C3/D175: A06930 LDY #$3069 C3/D178: A2BC95 LDX #$95BC C3/D17B: 208E0F JSR $0F8E (copy stuff from C2/95BC to 7E/3069) C3/D17E: A9C2 LDA #$C2 C3/D180: A08930 LDY #$3089 C3/D183: A2DC95 LDX #$95DC C3/D186: 208E0F JSR $0F8E (copy stuff from C2/95DC to 7E/3089) C3/D189: A9C2 LDA #$C2 C3/D18B: A0A930 LDY #$30A9 C3/D18E: A2FC95 LDX #$95FC C3/D191: 208E0F JSR $0F8E (copy stuff from C2/95FC to 7E/30A9) C3/D194: A9C2 LDA #$C2 C3/D196: A0C930 LDY #$30C9 C3/D199: A21C96 LDX #$961C C3/D19C: 208E0F JSR $0F8E (copy stuff from C2/961C to 7E/30C9) C3/D19F: A9C2 LDA #$C2 C3/D1A1: A00931 LDY #$3109 C3/D1A4: A23C96 LDX #$963C C3/D1A7: 208E0F JSR $0F8E (copy stuff from C2/963C to 7E/3109) C3/D1AA: A9C2 LDA #$C2 C3/D1AC: A02931 LDY #$3129 C3/D1AF: A25C96 LDX #$965C C3/D1B2: 208E0F JSR $0F8E (copy stuff from C2/965C to 7E/3129, also JMP!) C3/D1B5: 60 RTS C3/D1B6: A4CF LDY $CF C3/D1B8: C464 CPY $64 C3/D1BA: F00E BEQ $D1CA C3/D1BC: A523 LDA $23 C3/D1BE: 2903 AND #$03 C3/D1C0: D006 BNE $D1C8 C3/D1C2: C220 REP #$20 (16 bit memory/accum.) C3/D1C4: C63F DEC $3F C3/D1C6: E220 SEP #$20 (8 bit memory/accum.) C3/D1C8: 38 SEC C3/D1C9: 60 RTS C3/D1CA: 18 CLC C3/D1CB: 60 RTS C3/D1CC: AA TAX C3/D1CD: 7CD0D1 JMP ($D1D0,X) C3/D1D0: D4D1 C3/D1D2: E3D1 C3/D1D4: A62D LDX $2D C3/D1D6: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/D1D9: A901 LDA #$01 C3/D1DB: 9D4A34 STA $344A,X C3/D1DE: A90F LDA #$0F C3/D1E0: 9D4933 STA $3349,X C3/D1E3: A62D LDX $2D C3/D1E5: BD4933 LDA $3349,X C3/D1E8: F00D BEQ $D1F7 C3/D1EA: BD4A34 LDA $344A,X C3/D1ED: 8544 STA $44 C3/D1EF: FE4A34 INC $344A,X C3/D1F2: DE4933 DEC $3349,X C3/D1F5: 38 SEC (not done with this queue yet) C3/D1F6: 60 RTS C3/D1F7: A90F LDA #$0F C3/D1F9: 8544 STA $44 C3/D1FB: 18 CLC (this queue can be removed) C3/D1FC: 60 RTS C3/D1FD: AA TAX C3/D1FE: 7C01D2 JMP ($D201,X) C3/D201: 05D2 C3/D203: 0FD2 C3/D205: A62D LDX $2D C3/D207: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/D20A: A90F LDA #$0F C3/D20C: 9DCA33 STA $33CA,X C3/D20F: A420 LDY $20 C3/D211: F00C BEQ $D21F C3/D213: A62D LDX $2D C3/D215: BDCA33 LDA $33CA,X C3/D218: 8544 STA $44 C3/D21A: DECA33 DEC $33CA,X C3/D21D: 38 SEC (not done with this queue yet) C3/D21E: 60 RTS C3/D21F: A980 LDA #$80 C3/D221: 8544 STA $44 C3/D223: 18 CLC (this queue can be removed) C3/D224: 60 RTS C3/D225: 48 PHA C3/D226: 5A PHY C3/D227: A901 LDA #$01 C3/D229: A03FD2 LDY #$D23F C3/D22C: 207311 JSR $1173 (put C3/D23F in the queue) C3/D22F: C220 REP #$20 (16 bit memory/accum.) C3/D231: 7A PLY C3/D232: 98 TYA C3/D233: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/D237: E220 SEP #$20 (8 bit memory/accum.) C3/D239: 68 PLA C3/D23A: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/D23E: 60 RTS C3/D23F: AA TAX C3/D240: 7C43D2 JMP ($D243,X) C3/D243: 47D2 C3/D245: 4FD2 C2/D247: A62D LDX $2D C3/D249: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/D24C: 200612 JSR $1206 C3/D24F: A62D LDX $2D C3/D251: 202712 JSR $1227 C3/D254: 7B TDC C3/D255: BDC936 LDA $36C9,X C3/D258: A8 TAY C3/D259: C220 REP #$20 (16 bit memory/accum.) C3/D25B: B7EB LDA [$EB],Y C3/D25D: 8504 STA $04 C3/D25F: E220 SEP #$20 (8 bit memory/accum.) C3/D261: 38 SEC (not done with this queue yet) C3/D262: 60 RTS C3/D263: A5BB LDA $BB C3/D265: 8D1B21 STA $211B C3/D268: A5BC LDA $BC C3/D26A: 8D1B21 STA $211B C3/D26D: A5BD LDA $BD C3/D26F: 8D1C21 STA $211C C3/D272: A5BE LDA $BE C3/D274: 8D1C21 STA $211C C3/D277: A5BF LDA $BF C3/D279: 8D1D21 STA $211D C3/D27C: A5C0 LDA $C0 C3/D27E: 8D1D21 STA $211D C3/D281: A5C1 LDA $C1 C3/D283: 8D1E21 STA $211E C3/D286: A5C2 LDA $C2 C3/D288: 8D1E21 STA $211E C3/D28B: A5B7 LDA $B7 C3/D28D: 8D1F21 STA $211F C3/D290: A5B8 LDA $B8 C3/D292: 8D1F21 STA $211F C3/D295: A5B9 LDA $B9 C3/D297: 8D2021 STA $2120 C3/D29A: A5BA LDA $BA C3/D29C: 8D2021 STA $2120 C3/D29F: 60 RTS C3/D2A0: A900 LDA #$00 C3/D2A2: A0A9D2 LDY #$D2A9 C3/D2A5: 207311 JSR $1173 (put C3/D2A9 in the queue) C3/D2A8: 60 RTS C3/D2A9: A504 LDA $04 C3/D2AB: 8910 BIT #$10 (anyone pressing L?) C3/D2AD: F008 BEQ $D2B7 (branch if not) C3/D2AF: C220 REP #$20 (16 bit memory/accum.) C3/D2B1: E6C3 INC $C3 C3/D2B3: E220 SEP #$20 (8 bit memory/accum.) C3/D2B5: E659 INC $59 C3/D2B7: A504 LDA $04 C3/D2B9: 8920 BIT #$20 (anyone pressing R?) C3/D2BB: F008 BEQ $D2C5 (branch if not) C3/D2BD: C220 REP #$20 (16 bit memory/accum.) C3/D2BF: C6C3 DEC $C3 C3/D2C1: E220 SEP #$20 (8 bit memory/accum.) C3/D2C3: C659 DEC $59 C3/D2C5: A504 LDA $04 C3/D2C7: 8940 BIT #$40 (anyone pressing X?) C3/D2C9: F006 BEQ $D2D1 (branch if not) C3/D2CB: C220 REP #$20 (16 bit memory/accum.) C3/D2CD: E6C7 INC $C7 C3/D2CF: E220 SEP #$20 (8 bit memory/accum.) C3/D2D1: A505 LDA $05 C3/D2D3: 8940 BIT #$40 (anyone pressing Y?) C3/D2D5: F006 BEQ $D2DD (branch if not) C3/D2D7: C220 REP #$20 (16 bit memory/accum.) C3/D2D9: C6C7 DEC $C7 C3/D2DB: E220 SEP #$20 (8 bit memory/accum.) C3/D2DD: A504 LDA $04 C3/D2DF: 8980 BIT #$80 (anyone pressing A?) C3/D2E1: F002 BEQ $D2E5 (branch if not, BPL...) C3/D2E3: E6C6 INC $C6 C3/D2E5: A505 LDA $05 C3/D2E7: 8980 BIT #$80 (anyone pressing B?) C3/D2E9: F002 BEQ $D2ED (branch if not, BPL...) C3/D2EB: C6C6 DEC $C6 C3/D2ED: A505 LDA $05 C3/D2EF: 8908 BIT #$08 (anyone pressing up?) C3/D2F1: F008 BEQ $D2FB (branch if not) C3/D2F3: C220 REP #$20 (16 bit memory/accum.) C3/D2F5: C6B9 DEC $B9 C3/D2F7: C637 DEC $37 C3/D2F9: E220 SEP #$20 (8 bit memory/accum.) C3/D2FB: A505 LDA $05 C3/D2FD: 8904 BIT #$04 (anyone pressing down?) C3/D2FF: F008 BEQ $D309 (branch if not) C3/D301: C220 REP #$20 (16 bit memory/accum.) C3/D303: E6B9 INC $B9 C3/D305: E637 INC $37 C3/D307: E220 SEP #$20 (8 bit memory/accum.) C3/D309: A505 LDA $05 C3/D30B: 8902 BIT #$02 (anyone pressing left?) C3/D30D: F008 BEQ $D317 (branch if not) C3/D30F: C220 REP #$20 (16 bit memory/accum.) C3/D311: C6B7 DEC $B7 C3/D313: C635 DEC $35 C3/D315: E220 SEP #$20 (8 bit memory/accum.) C3/D317: A505 LDA $05 C3/D319: 8901 BIT #$01 (anyone pressing right?, LSR A...) C3/D31B: F008 BEQ $D325 (branch if not, BCC...) C3/D31D: C220 REP #$20 (16 bit memory/accum.) C3/D31F: E6B7 INC $B7 C3/D321: E635 INC $35 C3/D323: E220 SEP #$20 (8 bit memory/accum.) C3/D325: 2038D3 JSR $D338 C3/D328: C220 REP #$20 (16 bit memory/accum.) C3/D32A: A504 LDA $04 (load shared controller bits) C3/D32C: 29FFF0 AND #$F0FF (filter out directions, aka D-pad) C3/D32F: E220 SEP #$20 (8 bit memory/accum.) C3/D331: F003 BEQ $D336 (branch if any other button isn't being pressed) C3/D333: 20D2DD JSR $DDD2 C3/D336: 38 SEC (not done with this queue yet) C3/D337: 60 RTS C3/D338: C220 REP #$20 (16 bit memory/accum.) C3/D33A: A5B7 LDA $B7 C3/D33C: 29FF1F AND #$1FFF C3/D33F: 85B7 STA $B7 C3/D341: A5B9 LDA $B9 C3/D343: 29FF1F AND #$1FFF C3/D346: 85B9 STA $B9 C3/D348: E220 SEP #$20 (8 bit memory/accum.) C3/D34A: 60 RTS C3/D34B: 228FCBD4 JSL $D4CB8F (from C3/CA77) C3/D34F: 9C1043 STZ $4310 C3/D352: A905 LDA #$05 C3/D354: 8D1143 STA $4311 (register address becomes $2105) C3/D357: A06AD3 LDY #$D36A C3/D35A: 8C1243 STY $4312 (set address) C3/D35D: A9C3 LDA #$C3 C3/D35F: 8D1443 STA $4314 (set bank, C3/D36A) C3/D362: 8D1743 STA $4317 C3/D365: A902 LDA #$02 C3/D367: 0443 TSB $43 (eventually enable channel 1 of HDMA) C3/D369: 60 RTS HDMA transfer table C3/D36A: 4701 C3/D36C: 0107 C3/D36E: 00 C2/D36F: A901 LDA #$01 (from C3/C9DD, C3/CD28, C3/CEFD) C3/D371: 8D3043 STA $4330 C3/D374: A930 LDA #$30 C3/D376: 8D3143 STA $4331 (register address becomes $2130) C3/D379: A0A7D3 LDY #$D3A7 C3/D37C: 8C3243 STY $4332 (set address) C3/D37F: A9C3 LDA #$C3 C3/D381: 8D3443 STA $4334 (set bank, C3/D3A7) C3/D384: 8D3743 STA $4337 C3/D387: A908 LDA #$08 C3/D389: 0443 TSB $43 (eventually enable channel 3 of HDMA) C3/D38B: 60 RTS C3/D38C: 9C2043 STZ $4320 (from C3/C9DA, C3/CD25, C3/CEFA) C3/D38F: A932 LDA #$32 C3/D391: 8D2143 STA $4321 (register address becomes $2132) C3/D394: A0AED3 LDY #$D3AE C3/D397: 8C2243 STY $4322 (set address) C3/D39A: A9C3 LDA #$C3 C3/D39C: 8D2443 STA $4324 (set bank, C3/D3AE) C3/D39F: 8D2743 STA $4327 C3/D3A2: A904 LDA #$04 C3/D3A4: 0443 TSB $43 (eventually enable channel 2 of HDMA) C3/D3A6: 60 RTS HDMA transfer table C3/D3A7: 4780 C3/D3A9: 4101 C2/D3AB: 8201 C3/D3AD: 00 HDMA transfer table C3/D3AE: 47E0 C3/D3B0: 01ED C3/D3B2: 01EB C3/D3B4: 01EA C3/D3B6: 02E9 C3/D3B8: 03E8 C3/D3BA: 04E7 C3/D3BC: 05E6 C3/D3BE: 06E5 C3/D3C0: 07E4 C3/D3C2: 08E3 C3/D3C4: 0CE2 C3/D3C6: 0FE1 C3/D3C8: 1EE0 C3/D3CA: 00 C3/D3CB: 9C2043 STZ $4320 C3/D3CC: A932 LDA #$32 C3/D3CF: 8D2143 STA $4321 (register address becomes $2132) C3/D3D3: A04998 LDY #$9849 C3/D3D6: 8C2243 STY $4322 (set address) C3/D3D9: A97E LDA #$7E C3/D3DB: 8D2443 STA $4324 (set bank, 7E/9849) C3/D3DE: 8D2743 STA $4327 C3/D3E1: A904 LDA #$04 C3/D3E3: 0443 TSB $43 (eventually enable channel 2 of HDMA) C3/D3E5: 60 RTS C3/D3E6: A00001 LDY #$0100 C3/D3E9: 84B7 STY $B7 C3/D3EB: A08000 LDY #$0080 C3/D3EE: 84B9 STY $B9 C3/D3F0: 8435 STY $35 C3/D3F2: 7B TDC C3/D3F3: A8 TAY C3/D3F4: 8437 STY $37 C3/D3F6: 6458 STZ $58 C3/D3F8: A940 LDA #$40 C3/D3FA: 8559 STA $59 C3/D3FC: A00000 LDY #$0000 C3/D3FF: 84C7 STY $C7 C3/D401: A00001 LDY #$0100 C3/D404: 84C5 STY $C5 C3/D406: A00000 LDY #$0000 C3/D409: 84C3 STY $C3 C3/D40B: 60 RTS C3/D40C: 2039D4 JSR $D439 C3/D40F: 20B1D6 JSR $D6B1 C3/D412: 206BD6 JSR $D66B C3/D415: 2052D5 JSR $D552 C3/D418: 202AD4 JSR $D42A C3/D41B: 2034D6 JSR $D634 C3/D41E: 206BD6 JSR $D66B C3/D421: 2062D5 JSR $D562 C3/D424: 202AD4 JSR $D42A C3/D427: 4C4CD6 JMP $D64C C3/D42A: 208DD6 JSR $D68D C3/D42D: A21AFC LDX #$FC1A C3/D430: 86F1 STX $F1 C3/D432: A97E LDA #$7E C3/D434: 85F3 STA $F3 C3/D436: 4C06D7 JMP $D706 C3/D439: A000BA LDY #$BA00 C3/D43C: A9C4 LDA #$C4 C3/D43E: 2061DD JSR $DD61 C3/D441: 2097D4 JSR $D497 C3/D444: A000C0 LDY #$C000 C3/D447: 84E7 STY $E7 C3/D449: A97E LDA #$7E C3/D44B: 85E9 STA $E9 C3/D44D: A0000C LDY #$0C00 C3/D450: 84EB STY $EB C3/D452: A00070 LDY #$7000 C3/D455: 2086DD JSR $DD86 C3/D458: A0C087 LDY #$87C0 C3/D45B: 84E7 STY $E7 C3/D45D: A9C4 LDA #$C4 C3/D45F: 85E9 STA $E9 C3/D461: A00002 LDY #$0200 C3/D464: 84EB STY $EB C3/D466: A0007E LDY #$7E00 C3/D469: 2086DD JSR $DD86 C3/D46C: 4C6FD4 JMP $D46F C3/D46F: A0108C LDY #$8C10 C3/D472: 84E7 STY $E7 C3/D474: A9C4 LDA #$C4 C3/D476: 85E9 STA $E9 C3/D478: A01000 LDY #$0010 C3/D47B: 84EB STY $EB C3/D47D: A0A07F LDY #$7FA0 C3/D480: 2086DD JSR $DD86 C3/D483: A0B08F LDY #$8FB0 C3/D486: 84E7 STY $E7 C3/D488: A9C4 LDA #$C4 C3/D48A: 85E9 STA $E9 C3/D48C: A01000 LDY #$0010 C3/D48F: 84EB STY $EB C3/D491: A0B07F LDY #$7FB0 C3/D494: 4C86DD JMP $DD86 C3/D497: 8B PHB C3/D498: A97E LDA #$7E C3/D49A: 48 PHA C3/D49B: AB PLB C3/D49C: A600 LDX $00 C3/D49E: 9B TXY C3/D49F: DA PHX C3/D4A0: 7B TDC C3/D4A1: BF5498C2 LDA $C29854,X C3/D4A5: C220 REP #$20 (16 bit memory/accum.) C3/D4A7: 0A ASL A C3/D4A8: 0A ASL A C3/D4A9: 0A ASL A C3/D4AA: 0A ASL A C3/D4AB: AA TAX C3/D4AC: E220 SEP #$20 (8 bit memory/accum.) C3/D4AE: A910 LDA #$10 C3/D4B0: 85E0 STA $E0 C3/D4B2: BD00C0 LDA $C000,X C3/D4B5: 9900C4 STA $C400,Y C3/D4B8: E8 INX C3/D4B9: C8 INY C3/D4BA: C6E0 DEC $E0 C3/D4BC: D0F4 BNE $D4B2 C3/D4BE: 7B TDC C3/D4BF: AA TAX C3/D4C0: 9900C4 STA $C400,Y C3/D4C3: C8 INY C3/D4C4: E8 INX C3/D4C5: E01000 CPX #$0010 C3/D4C8: D0F6 BNE $D4C0 C3/D4CA: FA PLX C3/D4CB: E8 INX C3/D4CC: E04000 CPX #$0040 C3/D4CF: D0CE BNE $D49F C3/D4D1: AB PLB C3/D4D2: 60 RTS C3/D4D3: C220 REP #$20 (from C3/CA74, 16 bit memory/accum.) C3/D4D5: AF06B2EE LDA $EEB206 (pointer to sky graphics, lower two bytes) C3/D4D9: A8 TAY C3/D4DA: E220 SEP #$20 (8 bit memory/accum.) C3/D4DC: AF08B2EE LDA $EEB208 (pointer to sky graphics, high byte) C3/D4E0: 2061DD JSR $DD61 (prepare for and do LZ decompression) C3/D4E3: 2018D5 JSR $D518 C3/D4E6: A0201A LDY #$1A20 C3/D4E9: 84EB STY $EB C3/D4EB: 64ED STZ $ED C3/D4ED: 64EE STZ $EE C3/D4EF: A00040 LDY #$4000 C3/D4F2: 20B9DD JSR $DDB9 C3/D4F5: C220 REP #$20 (16 bit memory/accum.) C3/D4F7: AF09B2EE LDA $EEB209 (sky tilemap, lower two bytes) C3/D4FB: A8 TAY C3/D4FC: E220 SEP #$20 (8 bit memory/accum.) C3/D4FE: AF0BB2EE LDA $EEB20B (sky tilemap, high byte) C3/D502: 2061DD JSR $DD61 (prepare for and do LZ decompression) C3/D505: A00020 LDY #$2000 C3/D508: 84ED STY $ED C3/D50A: 2018D5 JSR $D518 C3/D50D: A00004 LDY #$0400 C3/D510: 84EB STY $EB C3/D512: A00050 LDY #$5000 C3/D515: 4CB9DD JMP $DDB9 C3/D518: A000C0 LDY #$C000 C3/D51B: 84E7 STY $E7 C3/D51D: A97E LDA #$7E C3/D51F: 85E9 STA $E9 C3/D521: 60 RTS C3/D522: 2039D4 JSR $D439 C3/D525: 20B1D6 JSR $D6B1 C3/D528: 20D6D6 JSR $D6D6 C3/D52B: 206BD6 JSR $D66B C3/D52E: 2052D5 JSR $D552 C3/D531: 2043D5 JSR $D543 C3/D534: 2034D6 JSR $D634 C3/D537: 206BD6 JSR $D66B C3/D53A: 2062D5 JSR $D562 C3/D53D: 2043D5 JSR $D543 C3/D540: 4C4CD6 JMP $D64C C3/D543: 2086D6 JSR $D686 C3/D546: A21AFC LDX #$FC1A C3/D549: 86F1 STX $F1 C3/D54B: A97E LDA #$7E C3/D54D: 85F3 STA $F3 C3/D54F: 4C06D7 JMP $D706 C3/D552: 64E4 STZ $E4 C3/D554: 64E5 STZ $E5 C3/D556: A980 LDA #$80 C3/D558: 85ED STA $ED C3/D55A: A20098 LDX #$9800 C3/D55D: A97F LDA #$7F C3/D55F: 4C4FD7 JMP $D74F C3/D562: A28000 LDX #$0080 C3/D565: 86E4 STX $E4 C3/D567: A980 LDA #$80 C3/D569: 85ED STA $ED C3/D56B: A200A8 LDX #$A800 C3/D56E: A97F LDA #$7F C3/D570: 4C4FD7 JMP $D74F C3/D573: 2039D4 JSR $D439 C3/D576: 2094D6 JSR $D694 C3/D579: 20D6D6 JSR $D6D6 C3/D57C: 4C82D5 JMP $D582 C3/D57F: 2094D6 JSR $D694 C3/D582: 2064D6 JSR $D664 C3/D585: 2052D5 JSR $D552 C3/D588: 209BD5 JSR $D59B C3/D58B: 2034D6 JSR $D634 C3/D58E: 2064D6 JSR $D664 C3/D591: 2062D5 JSR $D562 C3/D594: 209BD5 JSR $D59B C3/D597: 204CD6 JSR $D64C C3/D59A: 6B RTL C3/D59B: 2075D6 JSR $D675 C3/D59E: A23ADD LDX #$DD3A C3/D5A1: 86F1 STX $F1 C3/D5A3: A97E LDA #$7E C3/D5A5: 85F3 STA $F3 C3/D5A7: 4C06D7 JMP $D706 C3/D5AA: 2039D4 JSR $D439 C3/D5AD: 2094D6 JSR $D694 C3/D5B0: 20D6D6 JSR $D6D6 C3/D5B3: 2064D6 JSR $D664 C3/D5B6: 2052D5 JSR $D552 C3/D5B9: 20CBD5 JSR $D5CB C3/D5BC: 2034D6 JSR $D634 C3/D5BF: 2064D6 JSR $D664 C3/D5C2: 2062D5 JSR $D562 C3/D5C5: 20CBD5 JSR $D5CB C3/D5C8: 4C4CD6 JMP $D64C C3/D5CB: 207FD6 JSR $D67F C3/D5CE: A2FA2C LDX #$2CFA C3/D5D1: 86F1 STX $F1 C3/D5D3: A97F LDA #$7F C3/D5D5: 85F3 STA $F3 C3/D5D7: 4C06D7 JMP $D706 C3/D5DA: 2039D4 JSR $D439 C3/D5DD: 2094D6 JSR $D694 C3/D5E0: 20D6D6 JSR $D6D6 C3/D5E3: 2064D6 JSR $D664 C3/D5E6: 2052D5 JSR $D552 C3/D5E9: 20FBD5 JSR $D5FB C3/D5EC: 2034D6 JSR $D634 C3/D5EF: 2064D6 JSR $D664 C3/D5F2: 2062D5 JSR $D562 C3/D5F5: 20FBD5 JSR $D5FB C3/D5F8: 4C4CD6 JMP $D64C C3/D5FB: 2086D6 JSR $D686 C3/D5FE: A2FA2C LDX #$2CFA C3/D601: 86F1 STX $F1 C3/D603: A97F LDA #$7F C3/D605: 85F3 STA $F3 C3/D607: 4C06D7 JMP $D706 C3/D60A: 20B1D6 JSR $D6B1 C3/D60D: 206BD6 JSR $D66B C3/D610: 2052D5 JSR $D552 C3/D613: 2025D6 JSR $D625 C3/D616: 2034D6 JSR $D634 C3/D619: 206BD6 JSR $D66B C3/D61C: 2062D5 JSR $D562 C3/D61F: 2025D6 JSR $D625 C3/D622: 4C4CD6 JMP $D64C C3/D625: 2075D6 JSR $D675 C3/D628: A21A04 LDX #$041A C3/D62B: 86F1 STX $F1 C3/D62D: A97F LDA #$7F C3/D62F: 85F3 STA $F3 C3/D631: 4C06D7 JMP $D706 C3/D634: A000B8 LDY #$B800 C3/D637: 84E7 STY $E7 C3/D639: A97F LDA #$7F C3/D63B: 85E9 STA $E9 C3/D63D: 64ED STZ $ED C3/D63F: 64EE STZ $EE C3/D641: A00040 LDY #$4000 C3/D644: 84EB STY $EB C3/D646: A00000 LDY #$0000 C3/D649: 4CB9DD JMP $DDB9 C3/D64C: A000B8 LDY #$B800 C3/D64F: 84E7 STY $E7 C3/D651: A97F LDA #$7F C3/D653: 85E9 STA $E9 C3/D655: 64ED STZ $ED C3/D657: 64EE STZ $EE C3/D659: A00040 LDY #$4000 C3/D65C: 84EB STY $EB C3/D65E: A00020 LDY #$2000 C3/D661: 4CB9DD JMP $DDB9 C3/D664: A2E1F9 LDX #$F9E1 C3/D667: A9CF LDA #$CF C3/D669: 8005 BRA $D670 C3/D66B: A269F9 LDX #$F969 C3/D66E: A9CF LDA #$CF C3/D670: 8691 STX $91 C3/D672: 8593 STA $93 C3/D674: 60 RTS C3/D675: A2E9FA LDX #$FAE9 C3/D678: A9CF LDA #$CF C3/D67A: 86F7 STX $F7 C3/D67C: 85F9 STA $F9 C3/D67E: 60 RTS C3/D67F: A2C9FA LDX #$FAC9 C3/D682: A9CF LDA #$CF C3/D684: 80F4 BRA $D67A C3/D686: A2A9FA LDX #$FAA9 C3/D689: A9CF LDA #$CF C3/D68B: 80ED BRA $D67A C3/D68D: A209FB LDX #$FB09 C3/D690: A9CF LDA #$CF C3/D692: 80E6 BRA $D67A C3/D694: 20CED6 JSR $D6CE C3/D697: A21A14 LDX #$141A C3/D69A: 86E7 STX $E7 C3/D69C: A97F LDA #$7F C3/D69E: 85E9 STA $E9 C3/D6A0: A00098 LDY #$9800 C3/D6A3: 84EB STY $EB C3/D6A5: A97F LDA #$7F C3/D6A7: 85ED STA $ED C3/D6A9: A0E018 LDY #$18E0 C3/D6AC: 84EF STY $EF C3/D6AE: 4CEED6 JMP $D6EE C3/D6B1: 20CED6 JSR $D6CE C3/D6B4: A23AED LDX #$ED3A C3/D6B7: 86E7 STX $E7 C3/D6B9: A97E LDA #$7E C3/D6BB: 85E9 STA $E9 C3/D6BD: A00098 LDY #$9800 C3/D6C0: 84EB STY $EB C3/D6C2: A97F LDA #$7F C3/D6C4: 85ED STA $ED C3/D6C6: A0E00E LDY #$0EE0 C3/D6C9: 84EF STY $EF C3/D6CB: 4CEED6 JMP $D6EE C3/D6CE: A08F56 LDY #$568F C3/D6D1: A9D9 LDA #$D9 C3/D6D3: 4C61DD JMP $DD61 C3/D6D6: A000C0 LDY #$C000 C3/D6D9: 84E7 STY $E7 C3/D6DB: A97E LDA #$7E C3/D6DD: 85E9 STA $E9 C3/D6DF: A0BA17 LDY #$17BA C3/D6E2: 84EB STY $EB C3/D6E4: 64ED STZ $ED C3/D6E6: 64EE STZ $EE C3/D6E8: A00060 LDY #$6000 C3/D6EB: 4CB9DD JMP $DDB9 C3/D6EE: 64F1 STZ $F1 C3/D6F0: 64F2 STZ $F2 C3/D6F2: C220 REP #$20 (16 bit memory/accum.) C3/D6F4: A400 LDY $00 C3/D6F6: B7E7 LDA [$E7],Y C3/D6F8: 18 CLC C3/D6F9: 65F1 ADC $F1 C3/D6FB: 97EB STA [$EB],Y C3/D6FD: C8 INY C3/D6FE: C8 INY C3/D6FF: C4EF CPY $EF C3/D701: D0F3 BNE $D6F6 C3/D703: E220 SEP #$20 (8 bit memory/accum.) C3/D705: 60 RTS C3/D706: 7B TDC C3/D707: A8 TAY C3/D708: C220 REP #$20 (16 bit memory/accum.) C3/D70A: B7F7 LDA [$F7],Y C3/D70C: AA TAX C3/D70D: C8 INY C3/D70E: C8 INY C3/D70F: B7F7 LDA [$F7],Y C3/D711: 85E7 STA $E7 C3/D713: C8 INY C3/D714: C8 INY C3/D715: E220 SEP #$20 (8 bit memory/accum.) C3/D717: 5A PHY C3/D718: 9B TXY C3/D719: 2023D7 JSR $D723 C3/D71C: 7A PLY C3/D71D: C02000 CPY #$0020 C3/D720: D0E6 BNE $D708 C3/D722: 60 RTS C3/D723: 8B PHB C3/D724: A97F LDA #$7F C3/D726: 48 PHA C3/D727: AB PLB C3/D728: A920 LDA #$20 C3/D72A: 85E0 STA $E0 C3/D72C: A920 LDA #$20 C3/D72E: 85E1 STA $E1 C3/D730: A6E7 LDX $E7 C3/D732: B7F1 LDA [$F1],Y C3/D734: 9D00B8 STA $B800,X C3/D737: C8 INY C3/D738: E8 INX C3/D739: E8 INX C3/D73A: C6E1 DEC $E1 C3/D73C: D0F4 BNE $D732 C3/D73E: C221 REP #$21 C3/D740: A5E7 LDA $E7 C3/D742: 690001 ADC #$0100 C3/D745: 85E7 STA $E7 C3/D747: E220 SEP #$20 (8 bit memory/accum.) C3/D749: C6E0 DEC $E0 C3/D74B: D0DF BNE $D72C C3/D74D: AB PLB C3/D74E: 60 RTS C3/D74F: 85E9 STA $E9 C3/D751: 86E7 STX $E7 C3/D753: 8B PHB C3/D754: A97F LDA #$7F C3/D756: 48 PHA C3/D757: AB PLB C3/D758: 7B TDC C3/D759: AA TAX C3/D75A: A908 LDA #$08 C3/D75C: 85E6 STA $E6 C3/D75E: C220 REP #$20 (16 bit memory/accum.) C3/D760: A01000 LDY #$0010 C3/D763: A7E7 LDA [$E7] C3/D765: 85F1 STA $F1 C3/D767: B7E7 LDA [$E7],Y C3/D769: 85EF STA $EF C3/D76B: 7B TDC C3/D76C: E220 SEP #$20 (8 bit memory/accum.) C3/D76E: A00800 LDY #$0008 C3/D771: 7B TDC C3/D772: 06F0 ASL $F0 C3/D774: 2A ROL A C3/D775: 06EF ASL $EF C3/D777: 2A ROL A C3/D778: 06F2 ASL $F2 C3/D77A: 2A ROL A C3/D77B: 06F1 ASL $F1 C3/D77D: 2A ROL A C3/D77E: 290F AND #$0F C3/D780: F010 BEQ $D792 C3/D782: 85E0 STA $E0 C3/D784: 5A PHY C3/D785: A4E4 LDY $E4 C3/D787: B791 LDA [$91],Y C3/D789: 7A PLY C3/D78A: 0A ASL A C3/D78B: 0A ASL A C3/D78C: 0A ASL A C3/D78D: 0A ASL A C3/D78E: 29F0 AND #$F0 C3/D790: 05E0 ORA $E0 C3/D792: 9D01B8 STA $B801,X C3/D795: E8 INX C3/D796: E8 INX C3/D797: 88 DEY C3/D798: D0D7 BNE $D771 C3/D79A: A4E7 LDY $E7 C3/D79C: C8 INY C3/D79D: C8 INY C3/D79E: 84E7 STY $E7 C3/D7A0: C6E6 DEC $E6 C3/D7A2: D0BA BNE $D75E C3/D7A4: C220 REP #$20 (16 bit memory/accum.) C3/D7A6: E6E4 INC $E4 C3/D7A8: A5E7 LDA $E7 C3/D7AA: 18 CLC C3/D7AB: 691000 ADC #$0010 C3/D7AE: 85E7 STA $E7 C3/D7B0: 7B TDC C3/D7B1: E220 SEP #$20 (8 bit memory/accum.) C3/D7B3: C6ED DEC $ED C3/D7B5: D0A3 BNE $D75A C3/D7B7: AB PLB C3/D7B8: 60 RTS C3/D7B9: 8B PHB C3/D7BA: A9C3 LDA #$C3 C3/D7BC: 48 PHA C3/D7BD: AB PLB (set bank to C3) C3/D7BE: A4CF LDY $CF C3/D7C0: C03C00 CPY #$003C C3/D7C3: D003 BNE $D7C8 C3/D7C5: 2003DA JSR $DA03 C3/D7C8: AB PLB C3/D7C9: 38 SEC C3/D7CA: 60 RTS C3/D7CB: 8B PHB C3/D7CC: A9C3 LDA #$C3 C3/D7CE: 48 PHA C3/D7CF: AB PLB (set bank to C3) C3/D7D0: A4CF LDY $CF C3/D7D2: C00A00 CPY #$000A C3/D7D5: D005 BNE $D7DC C3/D7D7: 200EDA JSR $DA0E C3/D7DA: 803A BRA $D816 C3/D7DC: C0AE01 CPY #$01AE C3/D7DF: D005 BNE $D7E6 C3/D7E1: 2019DA JSR $DA19 C3/D7E4: 8030 BRA $D816 C3/D7E6: C05203 CPY #$0352 C3/D7E9: D005 BNE $D7F0 C3/D7EB: 2024DA JSR $DA24 C3/D7EE: 8026 BRA $D816 C3/D7F0: C0F604 CPY #$04F6 C3/D7F3: D005 BNE $D7FA C3/D7F5: 202FDA JSR $DA2F C3/D7F8: 801C BRA $D816 C3/D7FA: C09A06 CPY #$069A C3/D7FD: D005 BNE $D804 C3/D7FF: 203ADA JSR $DA3A C3/D802: 8012 BRA $D816 C3/D804: C03E08 CPY #$083E C3/D807: D005 BNE $D80E C3/D809: 2045DA JSR $DA45 C3/D80C: 8008 BRA $D816 C3/D80E: C0E209 CPY #$09E2 C3/D811: D003 BNE $D816 C3/D813: 2050DA JSR $DA50 C3/D816: AB PLB C3/D817: 38 SEC C3/D818: 60 RTS C3/D819: 8B PHB C3/D81A: A9C3 LDA #$C3 C3/D81C: 48 PHA C3/D81D: AB PLB (set bank to C3) C3/D81E: A4CF LDY $CF C3/D820: C00A00 CPY #$000A C3/D823: D005 BNE $D82A C3/D825: 205BDA JSR $DA5B C3/D828: 801C BRA $D846 C3/D82A: C0AE01 CPY #$01AE C3/D82D: D005 BNE $D834 C3/D82F: 2066DA JSR $DA66 C3/D832: 8012 BRA $D846 C3/D834: C05203 CPY #$0352 C3/D837: D005 BNE $D83E C3/D839: 2071DA JSR $DA71 C3/D83C: 8008 BRA $D846 C3/D83E: C0F604 CPY #$04F6 C3/D841: D003 BNE $D846 C3/D843: 207CDA JSR $DA7C C3/D846: AB PLB C3/D847: 38 SEC C3/D848: 60 RTS C3/D849: 8B PHB C3/D84A: A9C3 LDA #$C3 C3/D84C: 48 PHA C3/D84D: AB PLB (set bank to C3) C3/D84E: A4CF LDY $CF C3/D850: C00A00 CPY #$000A C3/D853: D005 BNE $D85A C3/D855: 2087DA JSR $DA87 C3/D858: 803A BRA $D894 C3/D85A: C0AE01 CPY #$01AE C3/D85D: D005 BNE $D864 C3/D85F: 2092DA JSR $DA92 C3/D862: 8030 BRA $D894 C3/D864: C05203 CPY #$0352 C3/D867: D005 BNE $D86E C3/D869: 209DDA JSR $DA9D C3/D86C: 8026 BRA $D894 C3/D86E: C0F604 CPY #$04F6 C3/D871: D005 BNE $D878 C3/D873: 20A8DA JSR $DAA8 C3/D876: 801C BRA $D894 C3/D878: C09A06 CPY #$069A C3/D87B: D005 BNE $D882 C3/D87D: 20B3DA JSR $DAB3 C3/D880: 8012 BRA $D894 C3/D882: C03E08 CPY #$083E C3/D885: D005 BNE $D88C C3/D887: 20BEDA JSR $DABE C3/D88A: 8008 BRA $D894 C3/D88C: C0E209 CPY #$09E2 C3/D88F: D003 BNE $D894 C3/D891: 20C9DA JSR $DAC9 C3/D894: AB PLB C3/D895: 38 SEC C3/D896: 60 RTS C3/D897: 8B PHB C3/D898: A9C3 LDA #$C3 C3/D89A: 48 PHA C3/D89B: AB PLB (set bank to C3) C3/D89C: A4CF LDY $CF C3/D89E: C00A00 CPY #$000A C3/D8A1: D005 BNE $D8A8 C3/D8A3: 20D4DA JSR $DAD4 C3/D8A6: 803A BRA $D8E2 C3/D8A8: C0AE01 CPY #$01AE C3/D8AB: D005 BNE $D8B2 C3/D8AD: 20DFDA JSR $DADF C3/D8B0: 8030 BRA $D8E2 C3/D8B2: C05203 CPY #$0352 C3/D8B5: D005 BNE $D8BC C3/D8B7: 20EADA JSR $DAEA C3/D8BA: 8026 BRA $D8E2 C3/D8BC: C0F604 CPY #$04F6 C3/D8BF: D005 BNE $D8C6 C3/D8C1: 20F5DA JSR $DAF5 C3/D8C4: 801C BRA $D8E2 C3/D8C6: C09A06 CPY #$069A C3/D8C9: D005 BNE $D8D0 C3/D8CB: 2000DB JSR $DB00 C3/D8CE: 8012 BRA $D8E2 C3/D8D0: C03E08 CPY #$083E C3/D8D3: D005 BNE $D8DA C3/D8D5: 200BDB JSR $DB0B C3/D8D8: 8008 BRA $D8E2 C3/D8DA: C0E209 CPY #$09E2 C3/D8DD: D003 BNE $D8E2 C3/D8DF: 2016DB JSR $DB16 C3/D8E2: AB PLB C3/D8E3: 38 SEC C3/D8E4: 60 RTS C3/D8E5: 8B PHB C3/D8E6: A9C3 LDA #$C3 C3/D8E8: 48 PHA C3/D8E9: AB PLB (set bank to C3) C3/D8EA: A4CF LDY $CF C3/D8EC: C0F000 CPY #$00F0 C3/D8EF: D005 BNE $D8F6 C3/D8F1: 2021DB JSR $DB21 C3/D8F4: 803A BRA $D930 C3/D8F6: C0D002 CPY #$02D0 C3/D8F9: D005 BNE $D900 C3/D8FB: 202CDB JSR $DB2C C3/D8FE: 8030 BRA $D930 C3/D900: C0B004 CPY #$04B0 C3/D903: D005 BNE $D90A C3/D905: 2037DB JSR $DB37 C3/D908: 8026 BRA $D930 C3/D90A: C09006 CPY #$0690 C3/D90D: D005 BNE $D914 C3/D90F: 2042DB JSR $DB42 C3/D912: 801C BRA $D930 C3/D914: C07008 CPY #$0870 C3/D917: D005 BNE $D91E C3/D919: 204DDB JSR $DB4D C3/D91C: 8012 BRA $D930 C3/D91E: C0500A CPY #$0A50 C3/D921: D005 BNE $D928 C3/D923: 2058DB JSR $DB58 C3/D926: 8008 BRA $D930 C3/D928: C0300C CPY #$0C30 C3/D92B: D003 BNE $D930 C3/D92D: 2063DB JSR $DB63 C3/D930: AB PLB C3/D931: 38 SEC C3/D932: 60 RTS C3/D933: 8B PHB C3/D934: A9C3 LDA #$C3 C3/D936: 48 PHA C3/D937: AB PLB (set bank to C3) C3/D938: A4CF LDY $CF C3/D93A: C03C00 CPY #$003C C3/D93D: D005 BNE $D944 C3/D93F: 206EDB JSR $DB6E C3/D942: 8026 BRA $D96A C3/D944: C0E001 CPY #$01E0 C3/D947: D005 BNE $D94E C3/D949: 2079DB JSR $DB79 C3/D94C: 801C BRA $D96A C3/D94E: C08403 CPY #$0384 C3/D951: D005 BNE $D958 C3/D953: 2084DB JSR $DB84 C3/D956: 8012 BRA $D96A C3/D958: C02805 CPY #$0528 C3/D95B: D005 BNE $D962 C3/D95D: 208FDB JSR $DB8F C3/D960: 8008 BRA $D96A C3/D962: C0CC06 CPY #$06CC C3/D965: D003 BNE $D96A C3/D967: 209ADB JSR $DB9A C3/D96A: AB PLB C3/D96B: 38 SEC C3/D96C: 60 RTS C3/D96D: A2C09D LDX #$9DC0 C3/D970: A9C2 LDA #$C2 C3/D972: A00400 LDY #$0004 C3/D975: 20F1D9 JSR $D9F1 C3/D978: A2449C LDX #$9C44 C3/D97B: A9C2 LDA #$C2 C3/D97D: A00800 LDY #$0008 C3/D980: 4CFAD9 JMP $D9FA C3/D983: A2C49D LDX #$9DC4 C3/D986: A9C2 LDA #$C2 C3/D988: A02800 LDY #$0028 C3/D98B: 20F1D9 JSR $D9F1 C3/D98E: A24C9C LDX #$9C4C C3/D991: A9C2 LDA #$C2 C3/D993: A06000 LDY #$0060 C3/D996: 4CFAD9 JMP $D9FA C3/D999: A2EC9D LDX #$9DEC C3/D99C: A9C2 LDA #$C2 C3/D99E: A01800 LDY #$0018 C3/D9A1: 20F1D9 JSR $D9F1 C3/D9A4: A2AC9C LDX #$9CAC C3/D9A7: A9C2 LDA #$C2 C3/D9A9: A04000 LDY #$0040 C3/D9AC: 4CFAD9 JMP $D9FA C3/D9AF: A2049E LDX #$9E04 C3/D9B2: A9C2 LDA #$C2 C3/D9B4: A02000 LDY #$0020 C3/D9B7: 20F1D9 JSR $D9F1 C3/D9BA: A2EC9C LDX #$9CEC C3/D9BD: A9C2 LDA #$C2 C3/D9BF: A06400 LDY #$0064 C3/D9C2: 4CFAD9 JMP $D9FA C3/D9C5: A2249E LDX #$9E24 C3/D9C8: A9C2 LDA #$C2 C3/D9CA: A02400 LDY #$0024 C3/D9CD: 20F1D9 JSR $D9F1 C3/D9D0: A2509D LDX #$9D50 C3/D9D3: A9C2 LDA #$C2 C3/D9D5: A07000 LDY #$0070 C3/D9D8: 4CFAD9 JMP $D9FA C3/D9DB: A2489E LDX #$9E48 C3/D9DE: A9C2 LDA #$C2 C3/D9E0: A0E400 LDY #$00E4 C3/D9E3: 4CF1D9 JMP $D9F1 C3/D9E6: A22C9F LDX #$9F2C C3/D9E9: A9C2 LDA #$C2 C3/D9EB: A06C00 LDY #$006C C3/D9EE: 4CF1D9 JMP $D9F1 C3/D9F1: 864A STX $4A C3/D9F3: 854C STA $4C C3/D9F5: 844D STY $4D C3/D9F7: 4CC8DB JMP $DBC8 C3/D9FA: 864A STX $4A C3/D9FC: 854C STA $4C C3/D9FE: 844D STY $4D C3/DA00: 4CE8DB JMP $DBE8 C3/DA03: A00C00 LDY #$000C C3/DA06: A29498 LDX #$9894 C3/DA09: A9C2 LDA #$C2 C3/DA0B: 4CA5DB JMP $DBA5 C3/DA0E: A01400 LDY #$0014 C3/DA11: A2A098 LDX #$98A0 C3/DA14: A9C2 LDA #$C2 C3/DA16: 4CA5DB JMP $DBA5 C3/DA19: A01800 LDY #$0018 C3/DA1C: A2B498 LDX #$98B4 C3/DA1F: A9C2 LDA #$C2 C3/DA21: 4CA5DB JMP $DBA5 C3/DA24: A01800 LDY #$0018 C3/DA27: A2CC98 LDX #$98CC C3/DA2A: A9C2 LDA #$C2 C3/DA2C: 4CA5DB JMP $DBA5 C3/DA2F: A01800 LDY #$0018 C3/DA32: A2E498 LDX #$98E4 C3/DA35: A9C2 LDA #$C2 C3/DA37: 4CA5DB JMP $DBA5 C3/DA3A: A00C00 LDY #$000C C3/DA3D: A2FC98 LDX #$98FC C3/DA40: A9C2 LDA #$C2 C3/DA42: 4CA5DB JMP $DBA5 C3/DA45: A01000 LDY #$0010 C3/DA48: A20899 LDX #$9908 C3/DA4B: A9C2 LDA #$C2 C3/DA4D: 4CA5DB JMP $DBA5 C3/DA50: A01800 LDY #$0018 C3/DA53: A21899 LDX #$9918 C3/DA56: A9C2 LDA #$C2 C3/DA58: 4CA5DB JMP $DBA5 C3/DA5B: A02000 LDY #$0020 C3/DA5E: A23099 LDX #$9930 C3/DA61: A9C2 LDA #$C2 C3/DA63: 4CA5DB JMP $DBA5 C3/DA66: A01800 LDY #$0018 C3/DA69: A25099 LDX #$9950 C3/DA6C: A9C2 LDA #$C2 C3/DA6E: 4CA5DB JMP $DBA5 C3/DA71: A01800 LDY #$0018 C3/DA74: A26899 LDX #$9968 C3/DA77: A9C2 LDA #$C2 C3/DA79: 4CA5DB JMP $DBA5 C3/DA7C: A01000 LDY #$0010 C3/DA7F: A28099 LDX #$9980 C3/DA82: A9C2 LDA #$C2 C3/DA84: 4CA5DB JMP $DBA5 C3/DA87: A01000 LDY #$0010 C3/DA8A: A29099 LDX #$9990 C3/DA8D: A9C2 LDA #$C2 C3/DA8F: 4CA5DB JMP $DBA5 C3/DA92: A01400 LDY #$0014 C3/DA95: A2A099 LDX #$99A0 C3/DA98: A9C2 LDA #$C2 C3/DA9A: 4CA5DB JMP $DBA5 C3/DA9D: A02400 LDY #$0024 C3/DAA0: A2B499 LDX #$99B4 C3/DAA3: A9C2 LDA #$C2 C3/DAA5: 4CA5DB JMP $DBA5 C3/DAA8: A02400 LDY #$0024 C3/DAAB: A2D899 LDX #$99D8 C3/DAAE: A9C2 LDA #$C2 C3/DAB0: 4CA5DB JMP $DBA5 C3/DAB3: A02400 LDY #$0024 C3/DAB6: A2FC99 LDX #$99FC C3/DAB9: A9C2 LDA #$C2 C3/DABB: 4CA5DB JMP $DBA5 C3/DABE: A01400 LDY #$0014 C3/DAC1: A2209A LDX #$9A20 C3/DAC4: A9C2 LDA #$C2 C3/DAC6: 4CA5DB JMP $DBA5 C3/DAC9: A01400 LDY #$0014 C3/DACC: A2349A LDX #$9A34 C3/DACF: A9C2 LDA #$C2 C3/DAD1: 4CA5DB JMP $DBA5 C3/DAD4: A01000 LDY #$0010 C3/DAD7: A2489A LDX #$9A48 C3/DADA: A9C2 LDA #$C2 C3/DADC: 4CA5DB JMP $DBA5 C3/DADF: A01800 LDY #$0018 C3/DAE2: A2589A LDX #$9A58 C3/DAE5: A9C2 LDA #$C2 C3/DAE7: 4CA5DB JMP $DBA5 C3/DAEA: A01800 LDY #$0018 C3/DAED: A2709A LDX #$9A70 C3/DAF0: A9C2 LDA #$C2 C3/DAF2: 4CA5DB JMP $DBA5 C3/DAF5: A02400 LDY #$0024 C3/DAF8: A2889A LDX #$9A88 C3/DAFB: A9C2 LDA #$C2 C3/DAFD: 4CA5DB JMP $DBA5 C3/DB00: A01800 LDY #$0018 C3/DB03: A2AC9A LDX #$9AAC C3/DB06: A9C2 LDA #$C2 C3/DB08: 4CA5DB JMP $DBA5 C3/DB0B: A01800 LDY #$0018 C3/DB0E: A2C49A LDX #$9AC4 C3/DB11: A9C2 LDA #$C2 C3/DB13: 4CA5DB JMP $DBA5 C3/DB16: A01800 LDY #$0018 C3/DB19: A2DC9A LDX #$9ADC C3/DB1C: A9C2 LDA #$C2 C3/DB1E: 4CA5DB JMP $DBA5 C3/DB21: A02800 LDY #$0028 C3/DB24: A2F49A LDX #$9AF4 C3/DB27: A9C2 LDA #$C2 C3/DB29: 4CA5DB JMP $DBA5 C3/DB2C: A02800 LDY #$0028 C3/DB2F: A21C9B LDX #$9B1C C3/DB32: A9C2 LDA #$C2 C3/DB34: 4CA5DB JMP $DBA5 C3/DB37: A02400 LDY #$0024 C3/DB3A: A2449B LDX #$9B44 C3/DB3D: A9C2 LDA #$C2 C3/DB3F: 4CA5DB JMP $DBA5 C3/DB42: A02000 LDY #$0020 C3/DB45: A2689B LDX #$9B68 C3/DB48: A9C2 LDA #$C2 C3/DB4A: 4CA5DB JMP $DBA5 C3/DB4D: A01800 LDY #$0018 C3/DB50: A2889B LDX #$9B88 C3/DB53: A9C2 LDA #$C2 C3/DB55: 4CA5DB JMP $DBA5 C3/DB58: A01400 LDY #$0014 C3/DB5B: A2A09B LDX #$9BA0 C3/DB5E: A9C2 LDA #$C2 C3/DB60: 4CA5DB JMP $DBA5 C3/DB63: A02400 LDY #$0024 C3/DB66: A2B49B LDX #$9BB4 C3/DB69: A9C2 LDA #$C2 C3/DB6B: 4CA5DB JMP $DBA5 C3/DB6E: A01800 LDY #$0018 C3/DB71: A2D89B LDX #$9BD8 C3/DB74: A9C2 LDA #$C2 C3/DB76: 4CA5DB JMP $DBA5 C3/DB79: A01800 LDY #$0018 C3/DB7C: A2F09B LDX #$9BF0 C3/DB7F: A9C2 LDA #$C2 C3/DB81: 4CA5DB JMP $DBA5 C3/DB84: A01400 LDY #$0014 C3/DB87: A2089C LDX #$9C08 C3/DB8A: A9C2 LDA #$C2 C3/DB8C: 4CA5DB JMP $DBA5 C3/DB8F: A01400 LDY #$0014 C3/DB92: A21C9C LDX #$9C1C C3/DB95: A9C2 LDA #$C2 C3/DB97: 4CA5DB JMP $DBA5 C3/DB9A: A01400 LDY #$0014 C3/DB9D: A2309C LDX #$9C30 C3/DBA0: A9C2 LDA #$C2 C3/DBA2: 4CA5DB JMP $DBA5 C3/DBA5: 84FA STY $FA C3/DBA7: 86F7 STX $F7 C3/DBA9: 85F9 STA $F9 C3/DBAB: A400 LDY $00 C3/DBAD: C220 REP #$20 (16 bit memory/accum.) C3/DBAF: B7F7 LDA [$F7],Y C3/DBB1: AA TAX C3/DBB2: C8 INY C3/DBB3: C8 INY C3/DBB4: B7F7 LDA [$F7],Y C3/DBB6: 8560 STA $60 C3/DBB8: E220 SEP #$20 (8 bit memory/accum.) C3/DBBA: 5A PHY C3/DBBB: 9B TXY C3/DBBC: 2014DC JSR $DC14 C3/DBBF: 7A PLY C3/DBC0: C8 INY C3/DBC1: C8 INY C3/DBC2: C4FA CPY $FA C3/DBC4: D0E7 BNE $DBAD C3/DBC6: 38 SEC C3/DBC7: 60 RTS C3/DBC8: A400 LDY $00 C3/DBCA: 2008DC JSR $DC08 C3/DBCD: C220 REP #$20 (16 bit memory/accum.) C3/DBCF: B74A LDA [$4A],Y C3/DBD1: AA TAX C3/DBD2: C8 INY C3/DBD3: C8 INY C3/DBD4: B74A LDA [$4A],Y C3/DBD6: 85E7 STA $E7 C3/DBD8: C8 INY C3/DBD9: C8 INY C3/DBDA: 5A PHY C3/DBDB: A4E7 LDY $E7 C3/DBDD: E220 SEP #$20 (8 bit memory/accum.) C3/DBDF: 20BCDC JSR $DCBC C3/DBE2: 7A PLY C3/DBE3: C44D CPY $4D C3/DBE5: D0E3 BNE $DBCA C3/DBE7: 60 RTS C3/DBE8: A400 LDY $00 C3/DBEA: 200EDC JSR $DC0E C3/DBED: C220 REP #$20 (16 bit memory/accum.) C3/DBEF: B74A LDA [$4A],Y C3/DBF1: AA TAX C3/DBF2: C8 INY C3/DBF3: C8 INY C3/DBF4: B74A LDA [$4A],Y C3/DBF6: 85E7 STA $E7 C3/DBF8: C8 INY C3/DBF9: C8 INY C3/DBFA: 5A PHY C3/DBFB: A4E7 LDY $E7 C3/DBFD: E220 SEP #$20 (8 bit memory/accum.) C3/DBFF: 20D1DC JSR $DCD1 C3/DC02: 7A PLY C3/DC03: C44D CPY $4D C3/DC05: D0E3 BNE $DBEA C3/DC07: 60 RTS C3/DC08: A2000B LDX #$0B00 C3/DC0B: 86F1 STX $F1 C3/DC0D: 60 RTS C3/DC0E: A20009 LDX #$0900 C3/DC11: 86F1 STX $F1 C3/DC13: 60 RTS C3/DC14: 84F1 STY $F1 C3/DC16: 64AF STZ $AF C3/DC18: A900 LDA #$00 C3/DC1A: A044DC LDY #$DC44 C3/DC1D: 207311 JSR $1173 (put C3/DC44 in the queue) C3/DC20: C220 REP #$20 (16 bit memory/accum.) C3/DC22: A5F1 LDA $F1 C3/DC24: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/DC28: A9A401 LDA #$01A4 C3/DC2B: 9F49337E STA $7E3349,X C3/DC2F: E220 SEP #$20 (8 bit memory/accum.) C3/DC31: A97E LDA #$7E C3/DC33: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/DC37: A560 LDA $60 C3/DC39: 9FCA337E STA $7E33CA,X C3/DC3D: A561 LDA $61 C3/DC3F: 9F4A347E STA $7E344A,X C3/DC43: 60 RTS C3/DC44: AA TAX C3/DC45: 7C48DC JMP ($DC48,X) C3/DC48: 4CDC C3/DC4A: 84DC C3/DC4C: A62D LDX $2D C3/DC4E: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DC51: BD4A34 LDA $344A,X C3/DC54: 18 CLC C3/DC55: 6920 ADC #$20 C3/DC57: 9D4A34 STA $344A,X C3/DC5A: C220 REP #$20 (16 bit memory/accum.) C3/DC5C: A980FF LDA #$FF80 C3/DC5F: 9D4935 STA $3549,X C3/DC62: 9EC934 STZ $34C9,X C3/DC65: E220 SEP #$20 (8 bit memory/accum.) C3/DC67: 200612 JSR $1206 C3/DC6A: A5AF LDA $AF C3/DC6C: D016 BNE $DC84 C3/DC6E: 8B PHB C3/DC6F: A900 LDA #$00 C3/DC71: 48 PHA C3/DC72: AB PLB C3/DC73: A5B4 LDA $B4 C3/DC75: D005 BNE $DC7C C3/DC77: 2003C7 JSR $C703 C3/DC7A: 8003 BRA $DC7F C3/DC7C: 202AC7 JSR $C72A C3/DC7F: A901 LDA #$01 C3/DC81: 85AF STA $AF C3/DC83: AB PLB C3/DC84: A62D LDX $2D C3/DC86: BC4933 LDY $3349,X C3/DC89: F01E BEQ $DCA9 C3/DC8B: C06401 CPY #$0164 C3/DC8E: D006 BNE $DC96 C3/DC90: 9E4935 STZ $3549,X C3/DC93: 9E4A35 STZ $354A,X C3/DC96: C08000 CPY #$0080 C3/DC99: F010 BEQ $DCAB C3/DC9B: 20C0DE JSR $DEC0 C3/DC9E: A62D LDX $2D C3/DCA0: C220 REP #$20 (16 bit memory/accum.) C3/DCA2: DE4933 DEC $3349,X C3/DCA5: E220 SEP #$20 (8 bit memory/accum.) C3/DCA7: 38 SEC C3/DCA8: 60 RTS C3/DCA9: 18 CLC C3/DCAA: 60 RTS C3/DCAB: A5AF LDA $AF C3/DCAD: F0EC BEQ $DC9B C3/DCAF: 64AF STZ $AF C3/DCB1: 8B PHB C3/DCB2: A900 LDA #$00 C3/DCB4: 48 PHA C3/DCB5: AB PLB C3/DCB6: 20DCC6 JSR $C6DC C3/DCB9: AB PLB C3/DCBA: 80DF BRA $DC9B C3/DCBC: 2031DD JSR $DD31 C3/DCBF: 2025DD JSR $DD25 C3/DCC2: 2002DD JSR $DD02 C3/DCC5: 9009 BCC $DCD0 C3/DCC7: A5E0 LDA $E0 C3/DCC9: 18 CLC C3/DCCA: 6908 ADC #$08 C3/DCCC: 85E0 STA $E0 C3/DCCE: 80F2 BRA $DCC2 C3/DCD0: 60 RTS C3/DCD1: 2031DD JSR $DD31 C3/DCD4: 2025DD JSR $DD25 C3/DCD7: 7B TDC C3/DCD8: A7E7 LDA [$E7] C3/DCDA: F025 BEQ $DD01 C3/DCDC: 85E3 STA $E3 C3/DCDE: A5E0 LDA $E0 C3/DCE0: 0980 ORA #$80 C3/DCE2: 97EB STA [$EB],Y C3/DCE4: C8 INY C3/DCE5: 7B TDC C3/DCE6: 97EB STA [$EB],Y C3/DCE8: C8 INY C3/DCE9: 7B TDC C3/DCEA: A5E3 LDA $E3 C3/DCEC: C221 REP #$21 C3/DCEE: 65F1 ADC $F1 C3/DCF0: 97EB STA [$EB],Y C3/DCF2: E6E7 INC $E7 C3/DCF4: C8 INY C3/DCF5: C8 INY C3/DCF6: E220 SEP #$20 (8 bit memory/accum.) C3/DCF8: A5E0 LDA $E0 C3/DCFA: 18 CLC C3/DCFB: 6908 ADC #$08 C3/DCFD: 85E0 STA $E0 C3/DCFF: 80D6 BRA $DCD7 C3/DD01: 60 RTS C3/DD02: 7B TDC C3/DD03: A7E7 LDA [$E7] C3/DD05: F01C BEQ $DD23 C3/DD07: 85E3 STA $E3 C3/DD09: A5E0 LDA $E0 C3/DD0B: 97EB STA [$EB],Y C3/DD0D: C8 INY C3/DD0E: 7B TDC C3/DD0F: 97EB STA [$EB],Y C3/DD11: C8 INY C3/DD12: 7B TDC C3/DD13: A5E3 LDA $E3 C3/DD15: C221 REP #$21 C3/DD17: 65F1 ADC $F1 C3/DD19: 97EB STA [$EB],Y C3/DD1B: E6E7 INC $E7 C3/DD1D: C8 INY C3/DD1E: C8 INY C3/DD1F: E220 SEP #$20 (8 bit memory/accum.) C3/DD21: 38 SEC C3/DD22: 60 RTS C3/DD23: 18 CLC C3/DD24: 60 RTS C3/DD25: A400 LDY $00 (from C3/DCBF, C3/DCD4) C3/DD27: 97EB STA [$EB],Y C3/DD29: C8 INY C3/DD2A: 64E0 STZ $E0 C3/DD2C: 64EF STZ $EF C3/DD2E: 64F0 STZ $F0 C3/DD30: 60 RTS C3/DD31: 86E7 STX $E7 (from C3/DCBC, C3/DCD1) C3/DD33: A9C2 LDA #$C2 C3/DD35: 85E9 STA $E9 C3/DD37: 84EB STY $EB C3/DD39: A97E LDA #$7E C3/DD3B: 85ED STA $ED C3/DD3D: C221 REP #$21 C3/DD3F: A5EB LDA $EB C3/DD41: 690300 ADC #$0003 C3/DD44: 87EB STA [$EB] C3/DD46: E6EB INC $EB C3/DD48: E6EB INC $EB C3/DD4A: E220 SEP #$20 (8 bit memory/accum.) C3/DD4C: A9FE LDA #$FE C3/DD4E: 87EB STA [$EB] C3/DD50: E6EB INC $EB C3/DD52: A400 LDY $00 C3/DD54: BB TYX C3/DD55: B7E7 LDA [$E7],Y C3/DD57: C8 INY C3/DD58: C900 CMP #$00 C3/DD5A: F003 BEQ $DD5F C3/DD5C: E8 INX C3/DD5D: 80F6 BRA $DD55 C3/DD5F: 8A TXA C3/DD60: 60 RTS C3/DD61: 84F3 STY $F3 (decompression source address) C3/DD63: 85F5 STA $F5 (decompression source bank) C3/DD65: A000C0 LDY #$C000 C3/DD68: 84F6 STY $F6 (decompression address destination) C3/DD6A: A97E LDA #$7E C3/DD6C: 85F8 STA $F8 (decompression bank destination) C3/DD6E: 226DFFC2 JSL $C2FF6D (LZ decompression!) C3/DD72: 60 RTS C3/DD73: C220 REP #$20 (from C3/C557, 16 bit memory/accum.) C3/DD75: 7B TDC C3/DD76: 8D1621 STA $2116 C3/DD79: A8 TAY C3/DD7A: 8D1821 STA $2118 C3/DD7D: C8 INY C3/DD7E: C00080 CPY #$8000 C3/DD81: D0F7 BNE $DD7A C3/DD83: E220 SEP #$20 (8 bit memory/accum.) C3/DD85: 60 RTS C3/DD86: 8C1621 STY $2116 C3/DD89: 7B TDC C3/DD8A: A8 TAY C3/DD8B: C220 REP #$20 (16 bit memory/accum.) C3/DD8D: A20800 LDX #$0008 C3/DD90: B7E7 LDA [$E7],Y C3/DD92: 8D1821 STA $2118 C3/DD95: C8 INY C3/DD96: C8 INY C3/DD97: CA DEX C3/DD98: D0F6 BNE $DD90 C3/DD9A: 9C1821 STZ $2118 C3/DD9D: 9C1821 STZ $2118 C3/DDA0: 9C1821 STZ $2118 C3/DDA3: 9C1821 STZ $2118 C3/DDA6: 9C1821 STZ $2118 C3/DDA9: 9C1821 STZ $2118 C3/DDAC: 9C1821 STZ $2118 C3/DDAF: 9C1821 STZ $2118 C3/DDB2: C4EB CPY $EB C3/DDB4: D0D7 BNE $DD8D C3/DDB6: E220 SEP #$20 (8 bit memory/accum.) C3/DDB8: 60 RTS C3/DDB9: C220 REP #$20 (16 bit memory/accum.) C3/DDBB: 98 TYA C3/DDBC: 8D1621 STA $2116 C3/DDBF: 7B TDC C3/DDC0: A8 TAY C3/DDC1: B7E7 LDA [$E7],Y C3/DDC3: 18 CLC C3/DDC4: 65ED ADC $ED C3/DDC6: 8D1821 STA $2118 C3/DDC9: C8 INY C3/DDCA: C8 INY C3/DDCB: C4EB CPY $EB C3/DDCD: D0F2 BNE $DDC1 C3/DDCF: E220 SEP #$20 (8 bit memory/accum.) C3/DDD1: 60 RTS C3/DDD2: 8B PHB C3/DDD3: A900 LDA #$00 C3/DDD5: 48 PHA C3/DDD6: AB PLB C3/DDD7: C220 REP #$20 (16 bit memory/accum.) C3/DDD9: A5C3 LDA $C3 C3/DDDB: 2076DE JSR $DE76 C3/DDDE: 85E0 STA $E0 C3/DDE0: 85EB STA $EB C3/DDE2: A5E0 LDA $E0 C3/DDE4: 1004 BPL $DDEA C3/DDE6: 49FFFF EOR #$FFFF C3/DDE9: 1A INC A C3/DDEA: 85E0 STA $E0 C3/DDEC: 4A LSR A C3/DDED: 85CB STA $CB C3/DDEF: A5C3 LDA $C3 C3/DDF1: 207ADE JSR $DE7A C3/DDF4: 85E0 STA $E0 C3/DDF6: 85ED STA $ED C3/DDF8: A5E0 LDA $E0 C3/DDFA: 1004 BPL $DE00 C3/DDFC: 49FFFF EOR #$FFFF C3/DDFF: 1A INC A C3/DE00: 85E0 STA $E0 C3/DE02: 4A LSR A C3/DE03: 85C9 STA $C9 C3/DE05: A0BE01 LDY #$01BE C3/DE08: A5C5 LDA $C5 C3/DE0A: 85E7 STA $E7 C3/DE0C: A5CB LDA $CB C3/DE0E: 8D0442 STA $4204 C3/DE11: E220 SEP #$20 (8 bit memory/accum.) C3/DE13: A5E8 LDA $E8 C3/DE15: 8D0642 STA $4206 C3/DE18: EA NOP C3/DE19: EA NOP C3/DE1A: EA NOP C3/DE1B: EA NOP C3/DE1C: EA NOP C3/DE1D: C220 REP #$20 (16 bit memory/accum.) C3/DE1F: A5EB LDA $EB C3/DE21: 1009 BPL $DE2C C3/DE23: AD1442 LDA $4214 C3/DE26: 49FFFF EOR #$FFFF C3/DE29: 1A INC A C3/DE2A: 8003 BRA $DE2F C3/DE2C: AD1442 LDA $4214 C3/DE2F: 990206 STA $0602,Y C3/DE32: 990406 STA $0604,Y C3/DE35: A5C9 LDA $C9 C3/DE37: 8D0442 STA $4204 C3/DE3A: E220 SEP #$20 (8 bit memory/accum.) C3/DE3C: A5E8 LDA $E8 C3/DE3E: 8D0642 STA $4206 C3/DE41: EA NOP C3/DE42: EA NOP C3/DE43: C220 REP #$20 (16 bit memory/accum.) C3/DE45: A5E7 LDA $E7 C3/DE47: 38 SEC C3/DE48: E5C7 SBC $C7 C3/DE4A: 85E7 STA $E7 C3/DE4C: A5ED LDA $ED C3/DE4E: 1009 BPL $DE59 C3/DE50: AD1442 LDA $4214 C3/DE53: 49FFFF EOR #$FFFF C3/DE56: 1A INC A C3/DE57: 8003 BRA $DE5C C3/DE59: AD1442 LDA $4214 C3/DE5C: 99C407 STA $07C4,Y C3/DE5F: 99C607 STA $07C6,Y C3/DE62: 49FFFF EOR #$FFFF C3/DE65: 1A INC A C3/DE66: 998609 STA $0986,Y C3/DE69: 998809 STA $0988,Y C3/DE6C: 88 DEY C3/DE6D: 88 DEY C3/DE6E: 88 DEY C3/DE6F: 88 DEY C3/DE70: 109A BPL $DE0C C3/DE72: E220 SEP #$20 (8 bit memory/accum.) C3/DE74: AB PLB C3/DE75: 60 RTS C3/DE76: 18 CLC C3/DE77: 694000 ADC #$0040 C3/DE7A: 29FF00 AND #$00FF C3/DE7D: 0A ASL A C3/DE7E: AA TAX C3/DE7F: BF6DFCC2 LDA $C2FC6D,X C3/DE83: 60 RTS C3/DE84: AA TAX C3/DE85: 7C88DE JMP ($DE88,X) C3/DE88: 8CDE C3/DE8B: 94DE C3/DE8C: A62D LDX $2D C3/DE8E: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DE91: 200612 JSR $1206 C3/DE94: A62D LDX $2D C3/DE96: BC4933 LDY $3349,X C3/DE99: F00E BEQ $DEA9 C3/DE9B: 20C0DE JSR $DEC0 C3/DE9E: A62D LDX $2D C3/DEA0: C220 REP #$20 (16 bit memory/accum.) C3/DEA2: DE4933 DEC $3349,X C3/DEA5: E220 SEP #$20 (8 bit memory/accum.) C3/DEA7: 38 SEC C3/DEA8: 60 RTS C3/DEA9: 18 CLC C3/DEAA: 60 RTS C3/DEAB: AA TAX C3/DEAC: 7CAFDE JMP ($DEAF,X) C3/DEAF: B3DE C3/DEB1: BBDE C3/DEB3: A62D LDX $2D C3/DEB5: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DEB8: 200612 JSR $1206 C3/DEBB: 20C0DE JSR $DEC0 C3/DEBE: 38 SEC C3/DEBF: 60 RTS C3/DEC0: A62D LDX $2D C3/DEC2: C221 REP #$21 C3/DEC4: BDC933 LDA $33C9,X C3/DEC7: 7DC934 ADC $34C9,X C3/DECA: 9DC933 STA $33C9,X C3/DECD: BD4934 LDA $3449,X C3/DED0: 18 CLC C3/DED1: 7D4935 ADC $3549,X C3/DED4: 9D4934 STA $3449,X C3/DED7: E220 SEP #$20 (8 bit memory/accum.) C3/DED9: 202112 JSR $1221 (draw the sprites! JMP fool!) C3/DEDC: 60 RTS C3/DEDD: 85E0 STA $E0 C3/DEDF: A547 LDA $47 C3/DEE1: D006 BNE $DEE9 C3/DEE3: A5E0 LDA $E0 C3/DEE5: AA TAX C3/DEE6: 7CEBDE JMP ($DEEB,X) C3/DEE9: 18 CLC C3/DEEA: 60 RTS C3/DEEB: FFDE C3/DEED: 13DF C3/DEEF: 1BDF C3/DEF1: 13DF C3/DEF3: 23DF C3/DEF5: 13DF C3/DEF7: 2ADF C3/DEF9: 13DF C3/DEFB: FDDE C3/DEFC: 18 CLC C3/DEFD: 60 RTS C3/DEFF: A62D LDX $2D C3/DF01: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DF04: C220 REP #$20 (16 bit memory/accum.) C3/DF06: 9E4935 STZ $3549,X C3/DF09: A585 LDA $85 C3/DF0B: 9D4933 STA $3349,X C3/DF0E: E220 SEP #$20 (8 bit memory/accum.) C3/DF10: 200612 JSR $1206 C3/DF13: 204BDF JSR $DF4B C3/DF16: 20C0DE JSR $DEC0 C3/DF19: 38 SEC C3/DF1A: 60 RTS C3/DF1B: A0C0FF LDY #$FFC0 C3/DF1E: A29600 LDX #$0096 C3/DF21: 800F BRA $DF32 C3/DF23: A400 LDY $00 C3/DF25: A2F000 LDX #$00F0 C3/DF28: 8008 BRA $DF32 C3/DF2A: A0C0FF LDY #$FFC0 C3/DF2D: A22C01 LDX #$012C C3/DF30: 8000 BRA $DF32 C3/DF32: 84E7 STY $E7 C3/DF34: 86E9 STX $E9 C3/DF36: A62D LDX $2D C3/DF38: C220 REP #$20 (16 bit memory/accum.) C3/DF3A: A5E7 LDA $E7 C3/DF3C: 9D4935 STA $3549,X C3/DF3F: A5E9 LDA $E9 C3/DF41: 9D4933 STA $3349,X C3/DF44: E220 SEP #$20 (8 bit memory/accum.) C3/DF46: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DF49: 80C8 BRA $DF13 C3/DF4B: A62D LDX $2D C3/DF4D: C220 REP #$20 (16 bit memory/accum.) C3/DF4F: BD4933 LDA $3349,X C3/DF52: D005 BNE $DF59 C3/DF54: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DF57: 8003 BRA $DF5C C3/DF59: DE4933 DEC $3349,X C3/DF5C: E220 SEP #$20 (8 bit memory/accum.) C3/DF5E: 60 RTS Get character name buffered for the ending, used for each of the 14 characters C3/DF5F: A400 LDY $00 C3/DF61: 84EB STY $EB C3/DF63: C220 REP #$20 (16 bit memory/accum.) C3/DF65: 98 TYA C3/DF66: 0A ASL A C3/DF67: AA TAX C3/DF68: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/DF6C: A8 TAY C3/DF6D: E220 SEP #$20 (8 bit memory/accum.) C3/DF6F: B90000 LDA $0000,Y (get character ID) C3/DF72: C528 CMP $28 (does it match our character ID we need?) C3/DF74: F023 BEQ $DF99 (branch if so) C3/DF76: C221 REP #$21 C3/DF78: A92500 LDA #$0025 C3/DF7B: 65E7 ADC $E7 C3/DF7D: 85E7 STA $E7 C3/DF7F: E220 SEP #$20 (8 bit memory/accum.) C3/DF81: A4EB LDY $EB C3/DF83: C8 INY C3/DF84: C01000 CPY #$0010 (have we checked 16 characters yet?) C3/DF87: D0D8 BNE $DF61 (branch if not) C3/DF89: A600 LDX $00 (we're here if there were no matches) C3/DF8B: A9BF LDA #$BF ("?" in font) C3/DF8D: 9F899E7E STA $7E9E89,X (write out the "?") C3/DF91: E8 INX C3/DF92: E00600 CPX #$0006 (have we done 6 letters yet?) C3/DF95: D0F6 BNE $DF8D (branch if not) C3/DF97: 8010 BRA $DFA9 (once we've done this, proceed to get it displayed) C3/DF99: A600 LDX $00 C3/DF9B: B90200 LDA $0002,Y (load character name) C3/DF9E: 9F899E7E STA $7E9E89,X (write the name) C3/DFA2: C8 INY C3/DFA3: E8 INX C3/DFA4: E00600 CPX #$0006 (have we done 6 letters yet?) C3/DFA7: D0F2 BNE $DF9B (branch if not) C3/DFA9: 20B3DF JSR $DFB3 C3/DFAC: 2011A6 JSR $A611 C3/DFAF: 203BA6 JSR $A63B (JMP fool!) C3/DFB2: 60 RTS C3/DFB3: A600 LDX $00 C3/DFB5: 64E0 STZ $E0 C3/DFB7: 64E1 STZ $E1 (STX $E0?) C3/DFB9: 7B TDC C3/DFBA: BF899E7E LDA $7E9E89,X C3/DFBE: C9FF CMP #$FF C3/DFC0: F015 BEQ $DFD7 C3/DFC2: DA PHX C3/DFC3: 38 SEC C3/DFC4: E960 SBC #$60 C3/DFC6: AA TAX C3/DFC7: BFC08FC4 LDA $C48FC0,X (Load Variable-Width Font Character Cell Widths (00-7F)) C3/DFCB: 18 CLC C3/DFCC: 65E0 ADC $E0 C3/DFCE: 85E0 STA $E0 C3/DFD0: FA PLX C3/DFD1: E8 INX C3/DFD2: E00600 CPX #$0006 C3/DFD5: D0E2 BNE $DFB9 C3/DFD7: C220 REP #$20 (16 bit memory/accum.) C3/DFD9: A5E0 LDA $E0 C3/DFDB: 4A LSR A C3/DFDC: 85E0 STA $E0 (this will center the name onscreen) C3/DFDE: A98000 LDA #$0080 C3/DFE1: 38 SEC C3/DFE2: E5E0 SBC $E0 C3/DFE4: 49FFFF EOR #$FFFF C3/DFE7: 1A INC A C3/DFE8: 853D STA $3D C3/DFEA: E220 SEP #$20 (8 bit memory/accum.) C3/DFEC: 60 RTS C3/DFED: 84F3 STY $F3 C3/DFEF: A900 LDA #$00 C3/DFF1: A002E0 LDY #$E002 C3/DFF4: 207311 JSR $1173 (put C3/E002 in the queue) C3/DFF7: C220 REP #$20 (16 bit memory/accum.) C3/DFF9: A5F3 LDA $F3 C3/DFFB: 9F49337E STA $7E3349,X C3/DFFF: E220 SEP #$20 (8 bit memory/accum.) C3/E001: 60 RTS C3/E002: A62D LDX $2D C3/E004: C220 REP #$20 (16 bit memory/accum.) C3/E006: BD4933 LDA $3349,X C3/E009: F013 BEQ $E01E C3/E00B: DE4933 DEC $3349,X C3/E00E: E220 SEP #$20 (8 bit memory/accum.) C3/E010: A523 LDA $23 C3/E012: 2903 AND #$03 C3/E014: D006 BNE $E01C C3/E016: C220 REP #$20 (16 bit memory/accum.) C3/E018: E635 INC $35 C3/E01A: E220 SEP #$20 (8 bit memory/accum.) C3/E01C: 38 SEC (could've done this with above) C3/E01D: 60 RTS C3/E01E: E220 SEP #$20 (8 bit memory/accum.) C3/E020: 18 CLC C3/E021: 60 RTS C3/E022: 7B TDC C3/E023: A528 LDA $28 C3/E025: 0A ASL A C3/E026: 0A ASL A C3/E027: 85E0 STA $E0 C3/E029: A528 LDA $28 C3/E02B: 0A ASL A C3/E02C: 18 CLC C3/E02D: 65E0 ADC $E0 C3/E02F: AA TAX C3/E030: C220 REP #$20 (16 bit memory/accum.) C3/E032: BFE48DC2 LDA $C28DE4,X C3/E036: 854D STA $4D C3/E038: E220 SEP #$20 (8 bit memory/accum.) C3/E03A: BFE68DC2 LDA $C28DE6,X C3/E03E: 8553 STA $53 C3/E040: C220 REP #$20 (16 bit memory/accum.) C3/E042: BFE78DC2 LDA $C28DE7,X C3/E046: 854F STA $4F C3/E048: E220 SEP #$20 (8 bit memory/accum.) C3/E04A: BFE98DC2 LDA $C28DE9,X C3/E04E: 8554 STA $54 C3/E050: 208FE0 JSR $E08F C3/E053: C220 REP #$20 (16 bit memory/accum.) C3/E055: A54D LDA $4D C3/E057: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/E05B: E220 SEP #$20 (8 bit memory/accum.) C3/E05D: A9C2 LDA #$C2 C3/E05F: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/E063: A553 LDA $53 C3/E065: 9FCA337E STA $7E33CA,X C3/E069: A9D0 LDA #$D0 C3/E06B: 9F4A347E STA $7E344A,X C3/E06F: 208FE0 JSR $E08F C3/E072: C220 REP #$20 (16 bit memory/accum.) C3/E074: A54F LDA $4F C3/E076: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/E07A: E220 SEP #$20 (8 bit memory/accum.) C3/E07C: A9C2 LDA #$C2 C3/E07E: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/E082: A554 LDA $54 C3/E084: 9FCA337E STA $7E33CA,X C3/E088: A9D0 LDA #$D0 C3/E08A: 9F4A347E STA $7E344A,X C3/E08E: 60 RTS C3/E08F: A901 LDA #$01 C3/E091: A0DDDE LDY #$DEDD C3/E094: 207311 JSR $1173 (put C3/DEDD in the queue) C3/E097: 60 RTS C3/E098: 208FE0 JSR $E08F C3/E09B: C220 REP #$20 (16 bit memory/accum.) C3/E09D: A9ABF8 LDA #$F8AB C3/E0A0: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/E0A4: E220 SEP #$20 (8 bit memory/accum.) C3/E0A6: A9CF LDA #$CF C3/E0A8: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/E0AC: A968 LDA #$68 C3/E0AE: 9FCA337E STA $7E33CA,X C3/E0B2: A9D0 LDA #$D0 C3/E0B4: 9F4A347E STA $7E344A,X C3/E0B8: 60 RTS C3/E0B9: 8528 STA $28 C3/E0BB: 228CCED4 JSL $D4CE8C C3/E0BF: 203C6A JSR $6A3C C3/E0C2: 20286A JSR $6A28 C3/E0C5: A9C3 LDA #$C3 C3/E0C7: A04930 LDY #$3049 C3/E0CA: A2F410 LDX #$10F4 C3/E0CD: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/3049) C3/E0D0: A9C3 LDA #$C3 C3/E0D2: A06930 LDY #$3069 C3/E0D5: A2F410 LDX #$10F4 C3/E0D8: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/3069) C3/E0DB: A9C3 LDA #$C3 C3/E0DD: A08930 LDY #$3089 C3/E0E0: A2F410 LDX #$10F4 C3/E0E3: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/3089) C3/E0E6: A9C3 LDA #$C3 C3/E0E8: A0E930 LDY #$30E9 C3/E0EB: A2F410 LDX #$10F4 C3/E0EE: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/30E9) C3/E0F1: A9C3 LDA #$C3 C3/E0F3: A00931 LDY #$3109 C3/E0F6: A2F410 LDX #$10F4 C3/E0F9: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/3109) C3/E0FC: A9C3 LDA #$C3 C3/E0FE: A04931 LDY #$3149 C3/E101: A2F410 LDX #$10F4 C3/E104: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/3149) C3/E107: A9C3 LDA #$C3 C3/E109: A06931 LDY #$3169 C3/E10C: A2F410 LDX #$10F4 C3/E10F: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/3169) C3/E112: A9C3 LDA #$C3 C3/E114: A0C931 LDY #$31C9 C3/E117: A2F410 LDX #$10F4 C3/E11A: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/31C9) C3/E11D: 2074EE JSR $EE74 C3/E120: 4C90EE JMP $EE90 C3/E123: 6447 STZ $47 C3/E125: 2097E8 JSR $E897 C3/E128: A92C LDA #$2C C3/E12A: 8529 STA $29 C3/E12C: 205FDF JSR $DF5F (get character name buffered!) C3/E12F: A901 LDA #$01 C3/E131: 1445 TRB $45 C3/E133: 20AC14 JSR $14AC C3/E136: A901 LDA #$01 C3/E138: 0445 TSB $45 C3/E13A: 2022E0 JSR $E022 C3/E13D: 2021EF JSR $EF21 C3/E140: E626 INC $26 C3/E142: 4C75C6 JMP $C675 C3/E145: A9C3 LDA #$C3 C3/E147: 85ED STA $ED C3/E149: A904 LDA #$04 C3/E14B: A0E930 LDY #$30E9 C3/E14E: 84E7 STY $E7 C3/E150: A2F410 LDX #$10F4 C3/E153: 86EB STX $EB C3/E155: 20AA0F JSR $0FAA C3/E158: A9C3 LDA #$C3 C3/E15A: 85ED STA $ED C3/E15C: A904 LDA #$04 C3/E15E: A00931 LDY #$3109 C3/E161: 84E7 STY $E7 C3/E163: A2F410 LDX #$10F4 C3/E166: 86EB STX $EB C3/E168: 20AA0F JSR $0FAA C3/E16B: A9C3 LDA #$C3 C3/E16D: 85ED STA $ED C3/E16F: A904 LDA #$04 C3/E171: A06930 LDY #$3069 C3/E174: 84E7 STY $E7 C3/E176: A2F410 LDX #$10F4 C3/E179: 86EB STX $EB C3/E17B: 20AA0F JSR $0FAA C3/E17E: A9C3 LDA #$C3 C3/E180: 85ED STA $ED C3/E182: A904 LDA #$04 C3/E184: A08930 LDY #$3089 C3/E187: 84E7 STY $E7 C3/E189: A2F410 LDX #$10F4 C3/E18C: 86EB STX $EB C3/E18E: 20AA0F JSR $0FAA (JMP fool!) C3/E191: 60 RTS C3/E192: A9C2 LDA #$C2 C3/E194: 85ED STA $ED C3/E196: A902 LDA #$02 C3/E198: A06930 LDY #$3069 C3/E19B: 84E7 STY $E7 C3/E19D: A27C96 LDX #$967C C3/E1A0: 86EB STX $EB C3/E1A2: 20AA0F JSR $0FAA C3/E1A5: A9C2 LDA #$C2 C3/E1A7: 85ED STA $ED C3/E1A9: A902 LDA #$02 C3/E1AB: A08930 LDY #$3089 C3/E1AE: 84E7 STY $E7 C3/E1B0: A29C96 LDX #$969C C3/E1B3: 86EB STX $EB C3/E1B5: 20AA0F JSR $0FAA C3/E1B8: A9C2 LDA #$C2 C3/E1BA: 85ED STA $ED C3/E1BC: A902 LDA #$02 C3/E1BE: A0E930 LDY #$30E9 C3/E1C1: 84E7 STY $E7 C3/E1C3: A2DC96 LDX #$96DC C3/E1C6: 86EB STX $EB C3/E1C8: 20AA0F JSR $0FAA C3/E1CB: A9C2 LDA #$C2 C3/E1CD: 85ED STA $ED C3/E1CF: A902 LDA #$02 C3/E1D1: A00931 LDY #$3109 C3/E1D4: 84E7 STY $E7 C3/E1D6: A2FC96 LDX #$96FC C3/E1D9: 86EB STX $EB C3/E1DB: 20AA0F JSR $0FAA (JMP fool!) C3/E1DE: 60 RTS C3/E1DF: A9C2 LDA #$C2 C3/E1E1: 85ED STA $ED C3/E1E3: A904 LDA #$04 C3/E1E5: A04930 LDY #$3049 C3/E1E8: 84E7 STY $E7 C3/E1EA: A25497 LDX #$9754 C3/E1ED: 86EB STX $EB C3/E1EF: 20AA0F JSR $0FAA C3/E1F2: A9C2 LDA #$C2 C3/E1F4: 85ED STA $ED C3/E1F6: A904 LDA #$04 C3/E1F8: A06931 LDY #$3169 C3/E1FB: 84E7 STY $E7 C3/E1FD: A25497 LDX #$9754 C3/E200: 86EB STX $EB C3/E202: 20AA0F JSR $0FAA (JMP fool!) C3/E205: 60 RTS C3/E206: 64CF STZ $CF C3/E208: 64D0 STZ $D0 C3/E20A: A0F000 LDY #$00F0 C3/E20D: 8464 STY $64 C3/E20F: A900 LDA #$00 C3/E211: A0B6D1 LDY #$D1B6 C3/E214: 207311 JSR $1173 C3/E217: 2041E2 JSR $E241 C3/E21A: A9C3 LDA #$C3 C3/E21C: 85ED STA $ED C3/E21E: A904 LDA #$04 C3/E220: A06931 LDY #$3169 C3/E223: 84E7 STY $E7 C3/E225: A2F410 LDX #$10F4 C3/E228: 86EB STX $EB C3/E22A: 20AA0F JSR $0FAA C3/E22D: A9C2 LDA #$C2 C3/E22F: 85ED STA $ED C3/E231: A904 LDA #$04 C3/E233: A04931 LDY #$3149 C3/E236: 84E7 STY $E7 C3/E238: A25497 LDX #$9754 C3/E23B: 86EB STX $EB C3/E23D: 20AA0F JSR $0FAA (JMP fool!) C3/E240: 60 RTS C3/E241: A9C3 LDA #$C3 C3/E243: 85ED STA $ED C3/E245: A904 LDA #$04 C3/E247: A04930 LDY #$3049 C3/E24A: 84E7 STY $E7 C3/E24C: A2F410 LDX #$10F4 C3/E24F: 86EB STX $EB C3/E251: 20AA0F JSR $0FAA (JMP fool!) C3/E254: 60 RTS C3/E255: A9C3 LDA #$C3 C3/E257: 85ED STA $ED C3/E259: A904 LDA #$04 C3/E25B: A04931 LDY #$3149 C3/E25E: 84E7 STY $E7 C3/E260: A2F410 LDX #$10F4 C3/E263: 86EB STX $EB C3/E265: 20AA0F JSR $0FAA (JMP fool!) C3/E268: 60 RTS C3/E269: A9FF LDA #$FF C3/E26B: 8526 STA $26 (exit this process) C3/E26D: 60 RTS DP $26 is 28 C3/E26E: A903 LDA #$03 C3/E270: 20B9E0 JSR $E0B9 C3/E273: 2048EF JSR $EF48 C3/E276: 2092E1 JSR $E192 C3/E279: 208AE2 JSR $E28A C3/E27C: 203FE8 JSR $E83F C3/E27F: A07800 LDY #$0078 C3/E282: 8420 STY $20 C3/E284: 20B3E9 JSR $E9B3 C3/E287: 4C23E1 JMP $E123 C3/E28A: A9C2 LDA #$C2 C3/E28C: 85ED STA $ED C3/E28E: A902 LDA #$02 C3/E290: A0C931 LDY #$31C9 C3/E293: 84E7 STY $E7 C3/E295: A27497 LDX #$9774 C3/E298: 86EB STX $EB C3/E29A: 20AA0F JSR $0FAA (JMP fool!) C3/E29D: 60 RTS C3/E29E: A9C3 LDA #$C3 C3/E2A0: 85ED STA $ED C3/E2A2: A904 LDA #$04 C3/E2A4: A0C931 LDY #$31C9 C3/E2A7: 84E7 STY $E7 C3/E2A9: A2F410 LDX #$10F4 C3/E2AC: 86EB STX $EB C3/E2AE: 20AA0F JSR $0FAA (JMP fool!) C3/E2B1: 60 RTS DP $26 is 29 C3/E2B2: A420 LDY $20 C3/E2B4: D00A BNE $E2C0 C3/E2B6: E626 INC $26 (execute at C3/E2C1) C3/E2B8: 20DFE1 JSR $E1DF C3/E2BB: A0F000 LDY #$00F0 C3/E2BE: 8420 STY $20 C3/E2C0: 60 RTS DP $26 is 2A C3/E2C1: A420 LDY $20 C3/E2C3: D00A BNE $E2CF C3/E2C5: E626 INC $26 (execute at C3/E2D0) C3/E2C7: 2006E2 JSR $E206 C3/E2CA: A06801 LDY #$0168 C3/E2CD: 8420 STY $20 C3/E2CF: 60 RTS DP $26 is 2B C3/E2D0: A420 LDY $20 C3/E2D2: D012 BNE $E2E6 C3/E2D4: A938 LDA #$38 C3/E2D6: 8526 STA $26 (execute at C3/E2E7) C3/E2D8: A07800 LDY #$0078 C3/E2DB: 8420 STY $20 C3/E2DD: 2045E1 JSR $E145 C3/E2E0: 209EE2 JSR $E29E C3/E2E3: 2045E8 JSR $E845 (JMP fool!) C3/E2E6: 60 RTS DP $26 is 38 C3/E2E7: A420 LDY $20 C3/E2E9: D00C BNE $E2F7 C3/E2EB: A07800 LDY #$0078 C3/E2EE: 8420 STY $20 C3/E2F0: A901 LDA #$01 C3/E2F2: 8526 STA $26 (execute at C3/C5D4) C3/E2F4: 2055E2 JSR $E255 (JMP fool!) C3/E2F7: 60 RTS DP $26 is 32 C3/E2F8: A902 LDA #$02 (Index is 2) C3/E2FA: 20B9E0 JSR $E0B9 C3/E2FD: 2068EF JSR $EF68 C3/E300: 2092E1 JSR $E192 C3/E303: 2068E4 JSR $E468 C3/E306: A0B8FF LDY #$FFB8 C3/E309: 8435 STY $35 C3/E30B: 2039E8 JSR $E839 C3/E30E: 2036EC JSR $EC36 C3/E311: A07800 LDY #$0078 C3/E314: 8420 STY $20 C3/E316: 4C23E1 JMP $E123 DP $26 is 33 C3/E319: A420 LDY $20 C3/E31B: D00A BNE $E327 C3/E31D: E626 INC $26 (execute at C3/E328) C3/E31F: 20DFE1 JSR $E1DF C3/E322: A0F000 LDY #$00F0 C3/E325: 8420 STY $20 C3/E327: 60 RTS DP $26 is 34 C3/E328: A420 LDY $20 C3/E32A: D00A BNE $E336 C3/E32C: E626 INC $26 (execute at C3/E337) C3/E32E: 2006E2 JSR $E206 C3/E331: A06801 LDY #$0168 C3/E334: 8420 STY $20 C3/E336: 60 RTS DP $26 is 35 C3/E337: A420 LDY $20 C3/E339: D00F BNE $E34A C3/E33B: A938 LDA #$38 C3/E33D: 8526 STA $26 (execute at C3/E2E7) C3/E33F: A07800 LDY #$0078 C3/E342: 8420 STY $20 C3/E344: 2045E1 JSR $E145 C3/E347: 209EE2 JSR $E29E (JMP fool!) C3/E34A: 60 RTS DP $26 is 40 C3/E34B: A904 LDA #$04 (Index is 4) C3/E34D: 20B9E0 JSR $E0B9 C3/E350: 207EEF JSR $EF7E C3/E353: 2092E1 JSR $E192 C3/E356: 208AE2 JSR $E28A C3/E359: 2024EC JSR $EC24 C3/E35C: A07800 LDY #$0078 C3/E35F: 8420 STY $20 C3/E361: 4C23E1 JMP $E123 DP $26 is 41 C3/E364: A420 LDY $20 C3/E366: D00A BNE $E372 C3/E368: E626 INC $26 (execute at C3/E373) C3/E36A: 20DFE1 JSR $E1DF C3/E36D: A0F000 LDY #$00F0 C3/E370: 8420 STY $20 C3/E372: 60 RTS DP $26 is 42 C3/E373: A420 LDY $20 C3/E375: D00A BNE $E381 C3/E377: E626 INC $26 (execute at C3/E382) C3/E379: 2006E2 JSR $E206 C3/E37C: A0F000 LDY #$00F0 C3/E37F: 8420 STY $20 C3/E381: 60 RTS DP $26 is 43 C3/E382: A420 LDY $20 C3/E384: D01B BNE $E3A1 C3/E386: A400 LDY $00 C3/E388: 843F STY $3F C3/E38A: A905 LDA #$05 C3/E38C: 8528 STA $28 C3/E38E: 2097E8 JSR $E897 C3/E391: 2055E2 JSR $E255 C3/E394: 205FDF JSR $DF5F (get character name buffered!) C3/E397: 20DFE1 JSR $E1DF C3/E39A: E626 INC $26 (execute at C3/E3A2) C3/E39C: A07800 LDY #$0078 C3/E39F: 8420 STY $20 C3/E3A1: 60 RTS DP $26 is 44 C3/E3A2: A420 LDY $20 C3/E3A4: D00B BNE $E3B1 C3/E3A6: A901 LDA #$01 C3/E3A8: 8547 STA $47 C3/E3AA: E626 INC $26 (execute at C3/E3B2) C3/E3AC: A0B400 LDY #$00B4 C3/E3AF: 8420 STY $20 C3/E3B1: 60 RTS DP $26 is 45 C3/E3B2: A420 LDY $20 C3/E3B4: D016 BNE $E3CC C3/E3B6: A94F LDA #$4F C3/E3B8: 8526 STA $26 (execute at C3/E3CD) C3/E3BA: A0B400 LDY #$00B4 C3/E3BD: 8420 STY $20 C3/E3BF: 6447 STZ $47 C3/E3C1: A01400 LDY #$0014 C3/E3C4: 8485 STY $85 C3/E3C6: 2022E0 JSR $E022 C3/E3C9: 2006E2 JSR $E206 (JMP fool!) C3/E3CC: 60 RTS DP $26 is 4F C3/E3CD: A420 LDY $20 C3/E3CF: D00F BNE $E3E0 C3/E3D1: A938 LDA #$38 C3/E3D3: 8526 STA $26 (execute at C3/E2E7) C3/E3D5: A07800 LDY #$0078 C3/E3D8: 8420 STY $20 C3/E3DA: 2045E1 JSR $E145 C3/E3DD: 209EE2 JSR $E29E (JMP fool!) C3/E3E0: 60 RTS DP $26 is 3C C3/E3E1: A90A LDA #$0A (Index is A (10)) C3/E3E3: 20B9E0 JSR $E0B9 C3/E3E6: 20A2EF JSR $EFA2 C3/E3E9: 2092E1 JSR $E192 C3/E3EC: 208AE2 JSR $E28A C3/E3EF: 203FE8 JSR $E83F C3/E3F2: 2024EA JSR $EA24 C3/E3F5: A07800 LDY #$0078 C3/E3F8: 8420 STY $20 C3/E3FA: 4C23E1 JMP $E123 DP $26 is 3D C3/E3FD: A420 LDY $20 C3/E3FF: D00A BNE $E40B C3/E401: E626 INC $26 (execute at C3/E40C) C3/E403: 20DFE1 JSR $E1DF C3/E406: A0F000 LDY #$00F0 C3/E409: 8420 STY $20 C3/E40B: 60 RTS DP $26 is 3E C3/E40C: A420 LDY $20 C3/E40E: D00A BNE $E41A C3/E410: E626 INC $26 (execute at C3/E41B) C3/E412: 2006E2 JSR $E206 C3/E415: A06801 LDY #$0168 C3/E418: 8420 STY $20 C3/E41A: 60 RTS DP $26 is 3F C3/E41B: A420 LDY $20 C3/E41D: D012 BNE $E431 C3/E41F: A938 LDA #$38 C3/E421: 8526 STA $26 (execute at C3/E2E7) C3/E423: A07800 LDY #$0078 C3/E426: 8420 STY $20 C3/E428: 2045E1 JSR $E145 C3/E42B: 209EE2 JSR $E29E C3/E42E: 2045E8 JSR $E845 (JMP fool!) C3/E431: 60 RTS DP $26 is 46 C3/E432: A90C LDA #$0C (Index is C (12)) C3/E434: 20B9E0 JSR $E0B9 C3/E437: 20B8EF JSR $EFB8 C3/E43A: 2092E1 JSR $E192 C3/E43D: 2039E8 JSR $E839 C3/E440: 20E4E9 JSR $E9E4 C3/E443: A902 LDA #$02 C3/E445: A09FE4 LDY #$E49F C3/E448: 207311 JSR $1173 (put C3/E49F in the queue) C3/E44B: A9B4 LDA #$B4 C3/E44D: BF49337E LDA $7E3349,X C3/E451: A07800 LDY #$0078 C3/E454: 8420 STY $20 C3/E456: 4C23E1 JMP $E123 DP $26 is 47 C3/E459: A420 LDY $20 C3/E45B: D00A BNE $E467 C3/E45D: E626 INC $26 (execute at C3/E47C) C3/E45F: 20DFE1 JSR $E1DF C3/E462: A0F000 LDY #$00F0 C3/E465: 8420 STY $20 C3/E467: 60 RTS C3/E468: A9C2 LDA #$C2 C3/E46A: 85ED STA $ED C3/E46C: A901 LDA #$01 C3/E46E: A0C931 LDY #$31C9 C3/E471: 84E7 STY $E7 C3/E473: A25C95 LDX #$955C C3/E476: 86EB STX $EB C3/E478: 20AA0F JSR $0FAA (JMP fool!) C3/E47B: 60 RTS DP $26 is 48 C3/E47C: A420 LDY $20 C3/E47E: D00A BNE $E48A C3/E480: E626 INC $26 (execute at C3/E48B) C3/E482: 2006E2 JSR $E206 C3/E485: A06801 LDY #$0168 C3/E488: 8420 STY $20 C3/E48A: 60 RTS DP $26 is 49 C3/E48B: A420 LDY $20 C3/E48D: D00F BNE $E49E C3/E48F: A938 LDA #$38 C3/E491: 8526 STA $26 (execute at C3/E2E7) C3/E493: A07800 LDY #$0078 C3/E496: 8420 STY $20 C3/E498: 2045E1 JSR $E145 C3/E49B: 209EE2 JSR $E29E (JMP fool!) C3/E49E: 60 RTS C3/E49F: AA TAX C3/E4A0: 7CA3E4 JMP ($E4A3,X) C3/E4A3: ABE4 C3/E4A5: BAE4 C3/E4A7: ABE4 C3/E4A9: DFE4 C3/E4AB: A62D LDX $2D C3/E4AD: BD4933 LDA $3349,X C3/E4B0: D003 BNE $E4B6 C3/E4B2: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/E4B5: DE4933 DEC $3349,X C3/E4B8: 38 SEC (not done with this queue yet) C3/E4B9: 60 RTS C3/E4BA: 8B PHB C3/E4BB: A900 LDA #$00 C3/E4BD: 48 PHA C3/E4BE: AB PLB C3/E4BF: A9C2 LDA #$C2 C3/E4C1: 85ED STA $ED C3/E4C3: A901 LDA #$01 C3/E4C5: A0C931 LDY #$31C9 C3/E4C8: 84E7 STY $E7 C3/E4CA: A27C95 LDX #$957C C3/E4CD: 86EB STX $EB C3/E4CF: 20AA0F JSR $0FAA C3/E4D2: AB PLB C3/E4D3: A62D LDX $2D C3/E4D5: A93C LDA #$3C C3/E4D7: 9D4933 STA $3349,X C3/E4DA: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/E4DD: 38 SEC (not done with this queue yet) C3/E4DE: 60 RTS C3/E4DF: 8B PHB C3/E4E0: A900 LDA #$00 C3/E4E2: 48 PHA C3/E4E3: AB PLB C3/E4E4: A9C3 LDA #$C3 C3/E4E6: 85ED STA $ED C3/E4E8: A901 LDA #$01 C3/E4EA: A0C931 LDY #$31C9 C3/E4ED: 84E7 STY $E7 C3/E4EF: A2F410 LDX #$10F4 C3/E4F2: 86EB STX $EB C3/E4F4: 20AA0F JSR $0FAA C3/E4F7: AB PLB C3/E4F8: 18 CLC (this queue can be removed) C3/E4F9: 60 RTS DP $26 is 50 C3/E4FA: A90B LDA #$0B (Index is B (11)) C3/E4FC: 20B9E0 JSR $E0B9 C3/E4FF: 20CEEF JSR $EFCE C3/E502: 2092E1 JSR $E192 C3/E505: 208AE2 JSR $E28A C3/E508: 203FE8 JSR $E83F C3/E50B: A07800 LDY #$0078 C3/E50E: 8420 STY $20 C3/E510: 4C23E1 JMP $E123 DP $26 is 51 C3/E513: A420 LDY $20 C3/E515: D00A BNE $E521 C3/E517: E626 INC $26 (execute at C3/E522) C3/E519: 20DFE1 JSR $E1DF C3/E51C: A0F000 LDY #$00F0 C3/E51F: 8420 STY $20 C3/E521: 60 RTS DP $26 is 52 C3/E522: A420 LDY $20 C3/E524: D00D BNE $E533 C3/E526: E626 INC $26 (execute at C3/E534) C3/E528: 2094E9 JSR $E994 C3/E52B: 2006E2 JSR $E206 C3/E52E: A06801 LDY #$0168 C3/E531: 8420 STY $20 C3/E533: 60 RTS DP $26 is 53 C3/E534: A420 LDY $20 C3/E536: D012 BNE $E54A C3/E538: A938 LDA #$38 C3/E53A: 8526 STA $26 (execute at C3/E2E7) C3/E53C: A07800 LDY #$0078 C3/E53F: 8420 STY $20 C3/E541: 2045E1 JSR $E145 C3/E544: 209EE2 JSR $E29E C3/E547: 2045E8 JSR $E845 (JMP fool!) C3/E54A: 60 RTS DP $26 is 5A C3/E54B: A900 LDA #$00 (Index is 0) C3/E54D: 20B9E0 JSR $E0B9 C3/E550: 20E4EF JSR $EFE4 C3/E553: 2092E1 JSR $E192 C3/E556: 2068E4 JSR $E468 C3/E559: 203FE8 JSR $E83F C3/E55C: A07800 LDY #$0078 C3/E55F: 8420 STY $20 C3/E561: 4C23E1 JMP $E123 DP $26 is 5B C3/E564: A420 LDY $20 C3/E566: D00A BNE $E572 C3/E568: E626 INC $26 (execute at C3/E573) C3/E56A: 20DFE1 JSR $E1DF C3/E56D: A0F000 LDY #$00F0 C3/E570: 8420 STY $20 C3/E572: 60 RTS DP $26 is 5C C3/E573: A420 LDY $20 C3/E575: D00D BNE $E584 C3/E577: E626 INC $26 (execute at C3/E585) C3/E579: 2003EA JSR $EA03 C3/E57C: 2006E2 JSR $E206 C3/E57F: A06801 LDY #$0168 C3/E582: 8420 STY $20 C3/E584: 60 RTS DP $26 is 5D C3/E585: A420 LDY $20 C3/E587: D012 BNE $E59B C3/E589: A938 LDA #$38 C3/E58B: 8526 STA $26 (execute at C3/E2E7) C3/E58D: A07800 LDY #$0078 C3/E590: 8420 STY $20 C3/E592: 2045E1 JSR $E145 C3/E595: 209EE2 JSR $E29E C3/E598: 2045E8 JSR $E845 (JMP fool!) C3/E59B: 60 RTS DP $26 is 64 C3/E59C: A901 LDA #$01 (Index is 1) C3/E59E: 20B9E0 JSR $E0B9 C3/E5A1: 20FAEF JSR $EFFA C3/E5A4: 2092E1 JSR $E192 C3/E5A7: 203FE8 JSR $E83F C3/E5AA: A0E0FF LDY #$FFE0 C3/E5AD: 8435 STY $35 C3/E5AF: A07800 LDY #$0078 C3/E5B2: 8420 STY $20 C3/E5B4: 4C23E1 JMP $E123 DP $26 is 65 C3/E5B7: A420 LDY $20 C3/E5B9: D00A BNE $E5C5 C3/E5BB: E626 INC $26 (execute at C3/E5C6) C3/E5BD: 20DFE1 JSR $E1DF C3/E5C0: A0F000 LDY #$00F0 C3/E5C3: 8420 STY $20 C3/E5C5: 60 RTS DP $26 is 66 C3/E5C6: A420 LDY $20 C3/E5C8: D00A BNE $E5D4 C3/E5CA: E626 INC $26 (execute at C3/E5D5) C3/E5CC: 2006E2 JSR $E206 C3/E5CF: A0F000 LDY #$00F0 C3/E5D2: 8420 STY $20 C3/E5D4: 60 RTS DP $26 is 67 C3/E5D5: A420 LDY $20 C3/E5D7: D01B BNE $E5F4 C3/E5D9: A400 LDY $00 C3/E5DB: 843F STY $3F C3/E5DD: A906 LDA #$06 C3/E5DF: 8528 STA $28 C3/E5E1: 2097E8 JSR $E897 C3/E5E4: 2055E2 JSR $E255 C3/E5E7: 205FDF JSR $DF5F (get character name buffered!) C3/E5EA: 20DFE1 JSR $E1DF C3/E5ED: E626 INC $26 (execute at C3/E5F5) C3/E5EF: A07800 LDY #$0078 C3/E5F2: 8420 STY $20 C3/E5F4: 60 RTS DP $26 is 68 C3/E5F5: A420 LDY $20 C3/E5F7: D00B BNE $E604 C3/E5F9: A901 LDA #$01 C3/E5FB: 8547 STA $47 C3/E5FD: E626 INC $26 (execute at C3/E605) C3/E5FF: A0B400 LDY #$00B4 C3/E602: 8420 STY $20 C3/E604: 60 RTS DP $26 is 69 C3/E605: A420 LDY $20 C3/E607: D014 BNE $E61D C3/E609: E626 INC $26 (execute at C3/E61E) C3/E60B: A0B400 LDY #$00B4 C3/E60E: 8420 STY $20 C3/E610: 6447 STZ $47 C3/E612: A01400 LDY #$0014 C3/E615: 8485 STY $85 C3/E617: 2022E0 JSR $E022 C3/E61A: 2006E2 JSR $E206 (JMP fool!) C3/E61D: 60 RTS DP $26 is 6A C3/E61E: A420 LDY $20 C3/E620: D012 BNE $E634 C3/E622: A938 LDA #$38 C3/E624: 8526 STA $26 (execute at C3/E2E7) C3/E626: A07800 LDY #$0078 C3/E629: 8420 STY $20 C3/E62B: 2045E1 JSR $E145 C3/E62E: 209EE2 JSR $E29E C3/E631: 2045E8 JSR $E845 (JMP fool!) C3/E634: 60 RTS DP $26 is 6E C3/E635: A908 LDA #$08 (Index is 8) C3/E637: 20B9E0 JSR $E0B9 C3/E63A: 200DF0 JSR $F00D C3/E63D: 2092E1 JSR $E192 C3/E640: 2068E4 JSR $E468 C3/E643: 203FE8 JSR $E83F C3/E646: 202DEC JSR $EC2D C3/E649: A07800 LDY #$0078 C3/E64C: 8420 STY $20 C3/E64E: 4C23E1 JMP $E123 DP $26 is 6F C3/E651: A420 LDY $20 C3/E653: D00A BNE $E65F C3/E655: E626 INC $26 (execute at C3/E660) C3/E657: 20DFE1 JSR $E1DF C3/E65A: A0F000 LDY #$00F0 C3/E65D: 8420 STY $20 C3/E65F: 60 RTS DP $26 is 70 C3/E660: A420 LDY $20 C3/E662: D00A BNE $E66E C3/E664: E626 INC $26 (execute at C3/E66F) C3/E666: 2006E2 JSR $E206 C3/E669: A06801 LDY #$0168 C3/E66C: 8420 STY $20 C3/E66E: 60 RTS DP $26 is 71 C3/E66F: A420 LDY $20 C3/E671: D012 BNE $E685 C3/E673: A938 LDA #$38 C3/E675: 8526 STA $26 (execute at C3/E2E7) C3/E677: A07800 LDY #$0078 C3/E67A: 8420 STY $20 C3/E67C: 2045E1 JSR $E145 C3/E67F: 209EE2 JSR $E29E C3/E682: 2045E8 JSR $E845 (JMP fool!) C3/E685: 60 RTS DP $26 is 78 C3/E686: A907 LDA #$07 (Index is 7) C3/E688: 20B9E0 JSR $E0B9 C3/E68B: 2023F0 JSR $F023 C3/E68E: 2092E1 JSR $E192 C3/E691: 207FED JSR $ED7F C3/E694: A07800 LDY #$0078 C3/E697: 8420 STY $20 C3/E699: 4C23E1 JMP $E123 DP $26 is 79 C3/E69C: A420 LDY $20 C3/E69E: D00A BNE $E6AA C3/E6A0: E626 INC $26 (execute at C3/E6AB) C3/E6A2: 20DFE1 JSR $E1DF C3/E6A5: A0F000 LDY #$00F0 C3/E6A8: 8420 STY $20 C3/E6AA: 60 RTS DP $26 is 7A C3/E6AB: A420 LDY $20 C3/E6AD: D00A BNE $E6B9 C3/E6AF: E626 INC $26 (execute at C3/E6BA) C3/E6B1: 2006E2 JSR $E206 C3/E6B4: A06801 LDY #$0168 C3/E6B7: 8420 STY $20 C3/E6B9: 60 RTS DP $26 is 7B C3/E6BA: A420 LDY $20 C3/E6BC: D00F BNE $E6CD C3/E6BE: A938 LDA #$38 C3/E6C0: 8526 STA $26 (execute at C3/E2E7) C3/E6C2: A07800 LDY #$0078 C3/E6C5: 8420 STY $20 C3/E6C7: 2045E1 JSR $E145 C3/E6CA: 209EE2 JSR $E29E (JMP fool!) C3/E6CD: 60 RTS DP $26 is 2D C3/E6CE: 20B9E0 JSR $E0B9 C3/E6D1: 2023F0 JSR $F023 C3/E6D4: 2092E1 JSR $E192 C3/E6D7: A0D002 LDY #$02D0 C3/E6DA: 8420 STY $20 C3/E6DC: 4C3DE1 JMP $E13D DP $26 is 2E C3/E6DF: A420 LDY $20 C3/E6E1: D00A BNE $E6ED C3/E6E3: E626 INC $26 (execute at C3/E6EE) C3/E6E5: 2094ED JSR $ED94 C3/E6E8: A0E001 LDY #$01E0 C3/E6EB: 8420 STY $20 C3/E6ED: 60 RTS DP $26 is 2F C3/E6EE: A420 LDY $20 C3/E6F0: D007 BNE $E6F9 C3/E6F2: E626 INC $26 (execute at C3/E6FA) C3/E6F4: A06801 LDY #$0168 C3/E6F7: 8420 STY $20 C3/E6F9: 60 RTS DP $26 is 30 C3/E6FA: A420 LDY $20 C3/E6FC: D012 BNE $E710 C3/E6FE: A938 LDA #$38 C3/E700: 8526 STA $26 (execute at C3/E2E7) C3/E702: 204BE8 JSR $E84B C3/E705: A07800 LDY #$0078 C3/E708: 8420 STY $20 C3/E70A: 2045E1 JSR $E145 C3/E70D: 2045E8 JSR $E845 (JMP fool!) C3/E710: 60 RTS DP $26 is 4A C3/E711: 20B9E0 JSR $E0B9 C3/E714: 2023F0 JSR $F023 C3/E717: 2092E1 JSR $E192 C3/E71A: 20A9ED JSR $EDA9 C3/E71D: A0B400 LDY #$00B4 C3/E720: 8420 STY $20 C3/E722: 6447 STZ $47 C3/E724: 2098E0 JSR $E098 C3/E727: 4C3DE1 JMP $E13D DP $26 is 4B C3/E72A: A420 LDY $20 C3/E72C: D007 BNE $E735 C3/E72E: E626 INC $26 (execute at C3/E736) C3/E730: A0EC00 LDY #$00EC C3/E733: 8420 STY $20 C3/E735: 60 RTS DP $26 is 4C C3/E736: A420 LDY $20 C3/E738: D00E BNE $E748 C3/E73A: A901 LDA #$01 C3/E73C: 8599 STA $99 C3/E73E: E626 INC $26 (execute at C3/E749) C3/E740: A06C01 LDY #$016C C3/E743: 8420 STY $20 C3/E745: 202DE2 JSR $E22D (JMP fool!) C3/E748: 60 RTS DP $26 is 4D C3/E749: A420 LDY $20 C3/E74B: D00F BNE $E75C C3/E74D: A938 LDA #$38 C3/E74F: 8526 STA $26 (execute at C3/E2E7) C3/E751: 204BE8 JSR $E84B C3/E754: A07800 LDY #$0078 C3/E757: 8420 STY $20 C3/E759: 2045E1 JSR $E145 (JMP fool!) C3/E75C: 60 RTS DP $26 is 82 C3/E75D: A909 LDA #$09 (Index is 9) C3/E75F: 20B9E0 JSR $E0B9 C3/E762: 2036F0 JSR $F036 C3/E765: 2092E1 JSR $E192 C3/E768: A9C3 LDA #$C3 C3/E76A: A08931 LDY #$3189 C3/E76D: A2F410 LDX #$10F4 C3/E770: 208E0F JSR $0F8E C3/E773: A9C2 LDA #$C2 C3/E775: 85ED STA $ED C3/E777: A902 LDA #$02 C3/E779: A08931 LDY #$3189 C3/E77C: 84E7 STY $E7 C3/E77E: A27497 LDX #$9774 C3/E781: 86EB STX $EB C3/E783: 20AA0F JSR $0FAA C3/E786: 2039E8 JSR $E839 C3/E789: 20E3E8 JSR $E8E3 C3/E78C: A07800 LDY #$0078 C3/E78F: 8420 STY $20 C3/E791: 4C23E1 JMP $E123 DP $26 is 83 C3/E794: A420 LDY $20 C3/E796: D00A BNE $E7A2 C3/E798: E626 INC $26 (execute at C3/E7A3) C3/E79A: 20DFE1 JSR $E1DF C3/E79D: A0F000 LDY #$00F0 C3/E7A0: 8420 STY $20 C3/E7A2: 60 RTS DP $26 is 84 C3/E7A3: A420 LDY $20 C3/E7A5: D00A BNE $E7B1 C3/E7A7: E626 INC $26 (execute at C3/E7B2) C3/E7A9: 2006E2 JSR $E206 C3/E7AC: A06801 LDY #$0168 C3/E7AF: 8420 STY $20 C3/E7B1: 60 RTS DP $26 is 85 C3/E7B2: A420 LDY $20 C3/E7B4: D00A BNE $E7C0 C3/E7B6: E626 INC $26 (execute at C3/E7C1) C3/E7B8: A07800 LDY #$0078 C3/E7BB: 8420 STY $20 C3/E7BD: 2045E1 JSR $E145 (JMP fool!) C3/E7C0: 60 RTS DP $26 is 86 C3/E7C1: A420 LDY $20 C3/E7C3: D01F BNE $E7E4 C3/E7C5: A07800 LDY #$0078 C3/E7C8: 8420 STY $20 C3/E7CA: A901 LDA #$01 C3/E7CC: 8526 STA $26 (execute at C3/C5D4) C3/E7CE: 2055E2 JSR $E255 C3/E7D1: A9C3 LDA #$C3 C3/E7D3: 85ED STA $ED C3/E7D5: A904 LDA #$04 C3/E7D7: A08931 LDY #$3189 C3/E7DA: 84E7 STY $E7 C3/E7DC: A2F410 LDX #$10F4 C3/E7DF: 86EB STX $EB C3/E7E1: 20AA0F JSR $0FAA (JMP fool!) C3/E7E4: 60 RTS DP $26 is 87 C3/E7E5: A90D LDA #$0D (Index is D (13)) C3/E7E7: 20B9E0 JSR $E0B9 C3/E7EA: 2072F0 JSR $F072 C3/E7ED: 2092E1 JSR $E192 C3/E7F0: 208AE2 JSR $E28A C3/E7F3: 203FE8 JSR $E83F C3/E7F6: 20C4E8 JSR $E8C4 C3/E7F9: 207CEA JSR $EA7C C3/E7FC: A07800 LDY #$0078 C3/E7FF: 8420 STY $20 C3/E801: 4C23E1 JMP $E123 DP $26 is 88 C3/E804: A420 LDY $20 C3/E806: D00A BNE $E812 C3/E808: E626 INC $26 (execute at C3/E813) C3/E80A: 20DFE1 JSR $E1DF C3/E80D: A0F000 LDY #$00F0 C3/E810: 8420 STY $20 C3/E812: 60 RTS DP $26 is 89 C3/E813: A420 LDY $20 C3/E815: D00A BNE $E821 C3/E817: E626 INC $26 (execute at C3/E822) C3/E819: 2006E2 JSR $E206 C3/E81C: A06801 LDY #$0168 C3/E81F: 8420 STY $20 C3/E821: 60 RTS DP $26 is 8A C3/E822: A420 LDY $20 C3/E824: D012 BNE $E838 C3/E826: A938 LDA #$38 C3/E828: 8526 STA $26 (execute at C3/E2E7) C3/E82A: A07800 LDY #$0078 C3/E82D: 8420 STY $20 C3/E82F: 2045E1 JSR $E145 C3/E832: 209EE2 JSR $E29E C3/E835: 2045E8 JSR $E845 (JMP fool!) C3/E838: 60 RTS C3/E839: A0B004 LDY #$04B0 C3/E83C: 4CEDDF JMP $DFED C3/E83F: A03801 LDY #$0138 C3/E842: 4CEDDF JMP $DFED C3/E845: A0B400 LDY #$00B4 C3/E848: 4CEDDF JMP $DFED C3/E84B: 7B TDC C3/E84C: A052E8 LDY #$E852 C3/E84F: 4C7311 JMP $1173 (put C3/E852 in the queue) C3/E852: AA TAX C3/E853: 7C56E8 JMP ($E856,X) C3/E856: 5AE8 C3/E858: 65E8 C3/E85A: A62D LDX $2D C3/E85C: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/E85F: 9ECA33 STZ $33CA,X C3/E862: 9E4933 STZ $3349,X C3/E865: A62D LDX $2D C3/E867: BD4933 LDA $3349,X C3/E86A: F005 BEQ $E871 C3/E86C: DE4933 DEC $3349,X C3/E86F: 38 SEC (not done with this queue yet) C3/E870: 60 RTS C3/E871: BDCA33 LDA $33CA,X C3/E874: 090F ORA #$0F C3/E876: 85B5 STA $B5 C3/E878: A62D LDX $2D C3/E87A: BDCA33 LDA $33CA,X C3/E87D: 18 CLC C3/E87E: 6910 ADC #$10 C3/E880: 9DCA33 STA $33CA,X C3/E883: A910 LDA #$10 C3/E885: 9D4933 STA $3349,X C3/E888: 38 SEC (not done with this queue yet) C3/E889: 60 RTS C3/E88A: A523 LDA $23 C3/E88C: 2903 AND #$03 C3/E88E: D006 BNE $E896 C3/E890: C220 REP #$20 (16 bit memory/accum.) C3/E892: E635 INC $35 C3/E894: E220 SEP #$20 (8 bit memory/accum.) C3/E896: 60 RTS C3/E897: A903 LDA #$03 C3/E899: A084DE LDY #$DE84 C3/E89C: 207311 JSR $1173 (put C3/DE84 in the queue) C3/E89F: C220 REP #$20 (16 bit memory/accum.) C3/E8A1: A9388E LDA #$8E38 C3/E8A4: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/E8A8: A95802 LDA #$0258 C3/E8AB: 9F49337E STA $7E3349,X C3/E8AF: E220 SEP #$20 (8 bit memory/accum.) C3/E8B1: A9C2 LDA #$C2 C3/E8B3: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/E8B7: A979 LDA #$79 C3/E8B9: 9FCA337E STA $7E33CA,X C3/E8BD: A9C0 LDA #$C0 C3/E8BF: 9F4A347E STA $7E344A,X C3/E8C3: 60 RTS C3/E8C4: 20D2E9 JSR $E9D2 C3/E8C7: C220 REP #$20 (16 bit memory/accum.) C3/E8C9: A96EF5 LDA #$F56E C3/E8CC: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/E8D0: E220 SEP #$20 (8 bit memory/accum.) C3/E8D2: A9CF LDA #$CF C3/E8D4: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/E8D8: A9C4 LDA #$C4 C3/E8DA: 9FCA337E STA $7E33CA,X C3/E8DE: A94F LDA #$4F C3/E8E0: 4C68EA JMP $EA68 C3/E8E3: 207AE9 JSR $E97A C3/E8E6: A978 LDA #$78 C3/E8E8: 9FCA337E STA $7E33CA,X C3/E8EC: A950 LDA #$50 C3/E8EE: 9FCA337E STA $7E33CA,X C3/E8F2: C220 REP #$20 (16 bit memory/accum.) C3/E8F4: A98000 LDA #$0080 C3/E8F7: 9F49357E STA $7E3549,X C3/E8FB: A92000 LDA #$0020 C3/E8FE: 9FC9347E STA $7E34C9,X C3/E902: E220 SEP #$20 (8 bit memory/accum.) C3/E904: 207AE9 JSR $E97A C3/E907: A904 LDA #$04 C3/E909: 9FCA367E STA $7E36CA,X C3/E90D: A948 LDA #$48 C3/E90F: 9FCA337E STA $7E33CA,X C3/E913: A9C0 LDA #$C0 C3/E915: 9F4A347E STA $7E344A,X C3/E919: C220 REP #$20 (16 bit memory/accum.) C3/E91B: A96000 LDA #$0060 C3/E91E: 9F49357E STA $7E3549,X C3/E922: A94000 LDA #$0040 C3/E925: 9FC9347E STA $7E34C9,X C3/E929: E220 SEP #$20 (8 bit memory/accum.) C3/E92B: 207AE9 JSR $E97A C3/E92E: A90C LDA #$0C C3/E930: 9FCA367E STA $7E36CA,X C3/E934: A998 LDA #$98 C3/E936: 9FCA337E STA $7E33CA,X C3/E93A: A910 LDA #$10 C3/E93C: 9F4A347E STA $7E344A,X C3/E940: C220 REP #$20 (16 bit memory/accum.) C3/E942: A98000 LDA #$0080 C3/E945: 9F49357E STA $7E3549,X C3/E949: A9E0FF LDA #$FFE0 C3/E94C: 9FC9347E STA $7E34C9,X C3/E950: E220 SEP #$20 (8 bit memory/accum.) C3/E952: 207AE9 JSR $E97A C3/E955: A912 LDA #$12 C3/E957: 9FCA367E STA $7E36CA,X C3/E95B: A9D0 LDA #$D0 C3/E95D: 9FCA337E STA $7E33CA,X C3/E961: A980 LDA #$80 C3/E963: 9F4A347E STA $7E344A,X C3/E967: C220 REP #$20 (16 bit memory/accum.) C3/E969: A98000 LDA #$0080 C3/E96C: 9F49357E STA $7E3549,X C3/E970: A9A000 LDA #$00A0 C3/E973: 9FC9347E STA $7E34C9,X C3/E977: E220 SEP #$20 (8 bit memory/accum.) C3/E979: 60 RTS C3/E97A: A900 LDA #$00 C3/E97C: A0ABDE LDY #$DEAB C3/E97F: 207311 JSR $1173 (put C3/DEAB in the queue) C3/E982: C220 REP #$20 (16 bit memory/accum.) C3/E984: A9FA92 LDA #$92FA C3/E987: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/E98B: E220 SEP #$20 (8 bit memory/accum.) C3/E98D: A9C2 LDA #$C2 C3/E98F: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/E993: 60 RTS C3/E994: 20D2E9 JSR $E9D2 C3/E997: C220 REP #$20 (16 bit memory/accum.) C3/E999: A947F6 LDA #$F647 C3/E99C: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/E9A0: E220 SEP #$20 (8 bit memory/accum.) C3/E9A2: A9CF LDA #$CF C3/E9A4: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/E9A8: A9CB LDA #$CB C3/E9AA: 9FCA337E STA $7E33CA,X C3/E9AE: A95F LDA #$5F C3/E9B0: 4C68EA JMP $EA68 C3/E9B3: 20D2E9 JSR $E9D2 C3/E9B6: C220 REP #$20 (16 bit memory/accum.) C3/E9B8: A99794 LDA #$9497 C3/E9BB: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/E9BF: E220 SEP #$20 (8 bit memory/accum.) C3/E9C1: A9C2 LDA #$C2 C3/E9C3: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/E9C7: A9C0 LDA #$C0 C3/E9C9: 9FCA337E STA $7E33CA,X C3/E9CD: A957 LDA #$57 C3/E9CF: 4C68EA JMP $EA68 C3/E9D2: A903 LDA #$03 C3/E9D4: A0ABDE LDY #$DEAB C3/E9D7: 207311 JSR $1173 (put C3/DEAB in the queue) C3/E9DA: 60 RTS C3/E9DB: A902 LDA #$02 C3/E9DD: A0ABDE LDY #$DEAB C3/E9E0: 207311 JSR $1173 (put C3/DEAB in the queue) C3/E9E3: 60 RTS C3/E9E4: 20D2E9 JSR $E9D2 C3/E9E7: C220 REP #$20 (16 bit memory/accum.) C3/E9E9: A950F4 LDA #$F450 C3/E9EC: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/E9F0: E220 SEP #$20 (8 bit memory/accum.) C3/E9F2: A9CF LDA #$CF C3/E9F4: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/E9F8: A9C8 LDA #$C8 C3/E9FA: 9FCA337E STA $7E33CA,X C3/E9FE: A961 LDA #$61 C3/EA00: 4C68EA JMP $EA68 (BRA fool!) C3/EA03: 20D2E9 JSR $E9D2 C3/EA06: C220 REP #$20 (16 bit memory/accum.) C3/EA08: A9B4F5 LDA #$F5B4 C3/EA0B: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/EA0F: E220 SEP #$20 (8 bit memory/accum.) C3/EA11: A9CF LDA #$CF C3/EA13: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/EA17: A980 LDA #$80 C3/EA19: 9FCA337E STA $7E33CA,X C3/EA1D: A960 LDA #$60 C3/EA1F: 9F4A347E STA $7E344A,X C3/EA23: 60 RTS C3/EA24: 20D2E9 JSR $E9D2 C3/EA27: C220 REP #$20 (16 bit memory/accum.) C3/EA29: A915F5 LDA #$F515 C3/EA2C: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/EA30: E220 SEP #$20 (8 bit memory/accum.) C3/EA32: A9CF LDA #$CF C3/EA34: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/EA38: A9E0 LDA #$E0 C3/EA3A: 9FCA337E STA $7E33CA,X C3/EA3E: A96F LDA #$6F C3/EA40: 2068EA JSR $EA68 C3/EA43: 2073EA JSR $EA73 C3/EA46: A9BA LDA #$BA C3/EA48: 9FCA337E STA $7E33CA,X C3/EA4C: 2073EA JSR $EA73 C3/EA4F: A9C6 LDA #$C6 C3/EA51: 9FCA337E STA $7E33CA,X C3/EA55: 2073EA JSR $EA73 C3/EA58: A9D1 LDA #$D1 C3/EA5A: 9FCA337E STA $7E33CA,X C3/EA5E: 2073EA JSR $EA73 C3/EA61: A9DC LDA #$DC C3/EA63: 9FCA337E STA $7E33CA,X C3/EA67: 60 RTS C3/EA68: 9F4A347E STA $7E344A,X C3/EA6C: A901 LDA #$01 C3/EA6E: 9F4A367E STA $7E364A,X C3/EA72: 60 RTS C3/EA73: A902 LDA #$02 C3/EA75: A0FCEA LDY #$EAFC C3/EA78: 207311 JSR $1173 (put C3/EAFC in the queue) C3/EA7B: 60 RTS C3/EA7C: 2073EA JSR $EA73 C3/EA7F: 20F5EA JSR $EAF5 C3/EA82: A93A LDA #$3A C3/EA84: 9FCA337E STA $7E33CA,X C3/EA88: C220 REP #$20 (16 bit memory/accum.) C3/EA8A: A9A401 LDA #$01A4 C3/EA8D: 9F49337E STA $7E3349,X C3/EA91: A97FF4 LDA #$F47F C3/EA94: 9FC9377E STA $7E37C9,X C3/EA98: E220 SEP #$20 (8 bit memory/accum.) C3/EA9A: 2073EA JSR $EA73 C3/EA9D: 20F5EA JSR $EAF5 C3/EAA0: A92E LDA #$2E C3/EAA2: 9FCA337E STA $7E33CA,X C3/EAA6: C220 REP #$20 (16 bit memory/accum.) C3/EAA8: A9B801 LDA #$01B8 C3/EAAB: 9F49337E STA $7E3349,X C3/EAAF: A985F4 LDA #$F485 C3/EAB2: 9FC9377E STA $7E37C9,X C3/EAB6: E220 SEP #$20 (8 bit memory/accum.) C3/EAB8: 2073EA JSR $EA73 C3/EABB: 20F5EA JSR $EAF5 C3/EABE: A921 LDA #$21 C3/EAC0: 9FCA337E STA $7E33CA,X C3/EAC4: C220 REP #$20 (16 bit memory/accum.) C3/EAC6: A9CC01 LDA #$01CC C3/EAC9: 9F49337E STA $7E3349,X C3/EACD: A98BF4 LDA #$F48B C3/EAD0: 9FC9377E STA $7E37C9,X C3/EAD4: E220 SEP #$20 (8 bit memory/accum.) C3/EAD6: 2073EA JSR $EA73 C3/EAD9: 20F5EA JSR $EAF5 C3/EADC: A914 LDA #$14 C3/EADE: 9FCA337E STA $7E33CA,X C3/EAE2: C220 REP #$20 (16 bit memory/accum.) C3/EAE4: A9E001 LDA #$01E0 C3/EAE7: 9F49337E STA $7E3349,X C3/EAEB: A991F4 LDA #$F491 C3/EAEE: 9FC9377E STA $7E37C9,X C3/EAF2: E220 SEP #$20 (8 bit memory/accum.) C3/EAF4: 60 RTS C3/EAF5: A905 LDA #$05 C3/EAF7: 9F49367E STA $7E3649,X C3/EAFB: 60 RTS C3/EAFC: AA TAX C3/EAFD: 7C00EB JMP ($EB00,X) C3/EB00: 10EB C3/EB02: 35EB C3/EB04: 5EEB C3/EB07: 7BEB C3/EB08: 97EB C3/EB0A: 9CEB C3/EB0D: A9EB C3/EB0E: D0EB C3/EB10: A62D LDX $2D C3/EB12: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/EB15: C220 REP #$20 (16 bit memory/accum.) C3/EB17: A958F4 LDA #$F458 C3/EB1A: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/EB1D: A96801 LDA #$0168 C3/EB20: 9D4933 STA $3349,X C3/EB23: E220 SEP #$20 (8 bit memory/accum.) C3/EB25: A964 LDA #$64 C3/EB27: 9D4A34 STA $344A,X C3/EB2A: A9CF LDA #$CF C3/EB2C: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/EB2F: 206CEA JSR $EA6C C3/EB32: 200612 JSR $1206 C3/EB35: A62D LDX $2D C3/EB37: BC4933 LDY $3349,X C3/EB3A: D01A BNE $EB56 C3/EB3C: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/EB3F: C220 REP #$20 (16 bit memory/accum.) C3/EB41: A97CF4 LDA #$F47C C3/EB44: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/EB47: E220 SEP #$20 (8 bit memory/accum.) C3/EB49: A9CF LDA #$CF C3/EB4B: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/EB4E: A910 LDA #$10 C3/EB50: 9D4933 STA $3349,X C3/EB53: 200612 JSR $1206 C3/EB56: 20E5CF JSR $CFE5 C3/EB59: 20C0DE JSR $DEC0 C3/EB5C: 38 SEC (not done with this queue yet) C3/EB5D: 60 RTS C3/EB5E: A62D LDX $2D C3/EB60: BC4933 LDY $3349,X C3/EB63: D008 BNE $EB6D C3/EB65: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/EB68: A93C LDA #$3C C3/EB6A: 9D4933 STA $3349,X C3/EB6D: 20E5CF JSR $CFE5 C3/EB70: 20F0EB JSR $EBF0 C3/EB73: 20C0DE JSR $DEC0 C3/EB76: FEC935 INC $35C9,X C3/EB79: 38 SEC (not done with this queue yet) C3/EB7A: 60 RTS C3/EB7B: A62D LDX $2D C3/EB7D: BC4933 LDY $3349,X C3/EB80: D00D BNE $EB8F C3/EB82: 20D5EB JSR $EBD5 C3/EB85: C220 REP #$20 (16 bit memory/accum.) C3/EB87: A92C01 LDA #$012C C3/EB8A: 9D4933 STA $3349,X C3/EB8D: E220 SEP #$20 (8 bit memory/accum.) C3/EB8F: 20E5CF JSR $CFE5 C3/EB92: 20C0DE JSR $DEC0 C3/EB95: 38 SEC (not done with this queue yet) C3/EB96: 60 RTS C3/EB97: 20C0DE JSR $DEC0 C3/EB9A: 38 SEC (not done with this queue yet) C3/EB9B: 60 RTS C3/EB9C: A62D LDX $2D C3/EB9E: 20D5EB JSR $EBD5 C3/EBA1: A970 LDA #$70 C3/EBA3: 9D4A34 STA $344A,X C3/EBA6: 206CEA JSR $EA6C C3/EBA9: A62D LDX $2D C3/EBAB: BC4933 LDY $3349,X C3/EBAE: D018 BNE $EBC8 C3/EBB0: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/EBB3: C220 REP #$20 (16 bit memory/accum.) C3/EBB5: 9EC934 STZ $34C9,X C3/EBB8: BDC937 LDA $37C9,X C3/EBBB: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/EBBE: E220 SEP #$20 (8 bit memory/accum.) C3/EBC0: A9CF LDA #$CF C3/EBC2: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/EBC5: 200612 JSR $1206 C3/EBC8: 20E5CF JSR $CFE5 C3/EBCB: 20C0DE JSR $DEC0 C3/EBCE: 38 SEC (not done with this queue yet) C3/EBCF: 60 RTS C3/EBD0: 20C0DE JSR $DEC0 C3/EBD3: 38 SEC (not done with this queue yet) C3/EBD4: 60 RTS C3/EBD5: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/EBD8: C220 REP #$20 (16 bit memory/accum.) C3/EBDA: A973F4 LDA #$F473 C3/EBDD: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/EBE0: A94000 LDA #$0040 C3/EBE3: 9DC934 STA $34C9,X C3/EBE6: E220 SEP #$20 (8 bit memory/accum.) C3/EBE8: A9CF LDA #$CF C3/EBEA: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/EBED: 4C0612 JMP $1206 C3/EBF0: A62D LDX $2D C3/EBF2: BDC935 LDA $35C9,X C3/EBF5: 290F AND #$0F C3/EBF7: AA TAX C3/EBF8: BF5EF5CF LDA $CFF55E,X C3/EBFC: 85E0 STA $E0 C3/EBFE: 300D BMI $EC0D C3/EC00: A62D LDX $2D C3/EC02: BD4A34 LDA $344A,X C3/EC05: 18 CLC C3/EC06: 65E0 ADC $E0 C3/EC08: 9D4A34 STA $344A,X C3/EC0B: 8016 BRA $EC23 C3/EC0D: A62D LDX $2D C3/EC0F: ADE000 LDA $00E0 C3/EC12: 1003 BPL $EC17 C3/EC14: 49FF EOR #$FF C3/EC16: 1A INC A C3/EC17: 8DE000 STA $00E0 C3/EC1A: BD4A34 LDA $344A,X C3/EC1D: 38 SEC C3/EC1E: E5E0 SBC $E0 C3/EC20: 9D4A34 STA $344A,X C3/EC23: 60 RTS C3/EC24: A902 LDA #$02 C3/EC26: A039ED LDY #$ED39 C3/EC29: 207311 JSR $1173 (put C3/ED39 in the queue) C3/EC2C: 60 RTS C3/EC2D: A900 LDA #$00 C3/EC2F: A048EC LDY #$EC48 C3/EC32: 207311 JSR $1173 (put C3/EC48 in the queue) C3/EC35: 60 RTS C3/EC36: A900 LDA #$00 C3/EC38: A0AEEC LDY #$ECAE C3/EC3B: 207311 JSR $1173 (put C3/ECAE in the queue) C3/EC3E: 60 RTS C3/EC3F: A902 LDA #$02 C3/EC41: A014ED LDY #$ED14 C3/EC44: 207311 JSR $1173 (put C3/ED14 in the queue) C3/EC47: 60 RTS C3/EC48: AA TAX C3/EC49: 7C4CEC JMP ($EC4C,X) C3/EC4C: 50EC C3/EC4E: 67EC C3/EC50: A62D LDX $2D C3/EC52: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/EC55: C220 REP #$20 (16 bit memory/accum.) C3/EC57: A96801 LDA #$0168 C3/EC5A: 9D4933 STA $3349,X C3/EC5D: E220 SEP #$20 (8 bit memory/accum.) C3/EC5F: A9E4 LDA #$E4 C3/EC61: 85C7 STA $C7 C3/EC63: A903 LDA #$03 C3/EC65: 85C9 STA $C9 C3/EC67: A5C9 LDA $C9 C3/EC69: F041 BEQ $ECAC C3/EC6B: A62D LDX $2D C3/EC6D: BC4933 LDY $3349,X C3/EC70: D035 BNE $ECA7 C3/EC72: A908 LDA #$08 C3/EC74: 9D4933 STA $3349,X C3/EC77: 8B PHB C3/EC78: A900 LDA #$00 C3/EC7A: 48 PHA C3/EC7B: AB PLB C3/EC7C: 203FEC JSR $EC3F C3/EC7F: A968 LDA #$68 C3/EC81: 9F4A347E STA $7E344A,X C3/EC85: C220 REP #$20 (16 bit memory/accum.) C3/EC87: A9B4F5 LDA #$F5B4 C3/EC8A: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/EC8E: E220 SEP #$20 (8 bit memory/accum.) C3/EC90: A9CF LDA #$CF C3/EC92: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/EC96: A5C7 LDA $C7 C3/EC98: 9FCA337E STA $7E33CA,X C3/EC9C: AB PLB C3/EC9D: C6C7 DEC $C7 C3/EC9F: C6C7 DEC $C7 C3/ECA1: C6C7 DEC $C7 C3/ECA3: C6C7 DEC $C7 C3/ECA5: C6C9 DEC $C9 C3/ECA7: 20E5CF JSR $CFE5 C3/ECAA: 38 SEC (not done with this queue yet) C3/ECAB: 60 RTS C3/ECAC: 18 CLC (this queue can be removed) C3/ECAD: 60 RTS C3/ECAE: AA TAX C3/ECAF: 7CB2EC JMP ($ECB2,X) C3/ECB2: B6EC C3/ECB4: CDEC C3/ECB6: A62D LDX $2D C3/ECB8: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/ECBB: C220 REP #$20 C3/ECBD: A96801 LDA #$0168 C3/ECC0: 9D4933 STA $3349,X C3/ECC3: E220 SEP #$20 (8 bit memory/accum.) C3/ECC5: A9C8 LDA #$C8 C3/ECC7: 85C7 STA $C7 C3/ECC9: A904 LDA #$04 C3/ECCB: 85C9 STA $C9 C3/ECCD: A5C9 LDA $C9 C3/ECCF: F041 BEQ $ED12 C3/ECD1: A62D LDX $2D C3/ECD3: BC4933 LDY $3349,X C3/ECD6: D035 BNE $ED0D C3/ECD8: A908 LDA #$08 C3/ECDA: 9D4933 STA $3349,X C3/ECDD: 8B PHB C3/ECDE: A900 LDA #$00 C3/ECE0: 48 PHA C3/ECE1: AB PLB C3/ECE2: 203FEC JSR $EC3F C3/ECE5: A960 LDA #$60 C3/ECE7: 9F4A347E STA $7E344A,X C3/ECEB: C220 REP #$20 (16 bit memory/accum.) C3/ECED: A9FAF5 LDA #$F5FA C3/ECF0: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/ECF4: E220 SEP #$20 (8 bit memory/accum.) C3/ECF6: A9CF LDA #$CF C3/ECF8: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/ECFC: A5C7 LDA $C7 C3/ECFE: 9FCA337E STA $7E33CA,X C3/ED02: AB PLB C3/ED03: C6C7 DEC $C7 C3/ED05: C6C7 DEC $C7 C3/ED07: C6C7 DEC $C7 C3/ED09: C6C7 DEC $C7 C3/ED0B: C6C9 DEC $C9 C3/ED0D: 20E5CF JSR $CFE5 C3/ED10: 38 SEC (not done with this queue yet) C3/ED11: 60 RTS C3/ED12: 18 CLC (this queue can be removed) C3/ED13: 60 RTS C3/ED14: AA TAX C3/ED15: 7C18ED JMP ($ED18,X) C3/ED18: 1CED C3/ED1A: 29ED C3/ED1C: A62D LDX $2D C3/ED1E: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/ED21: A901 LDA #$01 C3/ED23: 9D4A36 STA $364A,X C3/ED26: 200612 JSR $1206 C3/ED29: A62D LDX $2D C3/ED2B: BDCA36 LDA $36CA,X C3/ED2E: C9FE CMP #$FE C3/ED30: F005 BEQ $ED37 C3/ED32: 20C0DE JSR $DEC0 C3/ED35: 38 SEC (not done with this queue yet) C3/ED36: 60 RTS C3/ED37: 18 CLC (this queue can be removed) C3/ED38: 60 RTS C3/ED39: AA TAX C3/ED3A: 7C3DED JMP ($ED3D,X) C3/ED3D: 41ED C3/ED3F: 6DED C3/ED41: A62D LDX $2D C3/ED43: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/ED46: C220 REP #$20 C3/ED48: A993EC LDA #$EC93 C3/ED4B: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/ED4E: A98000 LDA #$0080 C3/ED51: 9DC934 STA $34C9,X C3/ED54: E220 SEP #$20 (8 bit memory/accum.) C3/ED56: A9C8 LDA #$C8 C3/ED58: 9D4933 STA $3349,X C3/ED5B: A9D8 LDA #$D8 C3/ED5D: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/ED60: A910 LDA #$10 C3/ED62: 9DCA33 STA $33CA,X C3/ED65: A964 LDA #$64 C3/ED67: 9D4A34 STA $344A,X C3/ED6A: 200612 JSR $1206 C3/ED6D: A62D LDX $2D C3/ED6F: BD4933 LDA $3349,X C3/ED72: D003 BNE $ED77 C3/ED74: 9EC934 STZ $34C9,X C3/ED77: DE4933 DEC $3349,X C3/ED7A: 20C0DE JSR $DEC0 C3/ED7D: 38 SEC (not done with this queue yet) C3/ED7E: 60 RTS C3/ED7F: 20BEED JSR $EDBE C3/ED82: C220 REP #$20 (16 bit memory/accum.) C3/ED84: A9728B LDA #$8B72 C3/ED87: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/ED8B: E220 SEP #$20 (8 bit memory/accum.) C3/ED8D: A9C2 LDA #$C2 C3/ED8F: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/ED93: 60 RTS C3/ED94: 20BEED JSR $EDBE C3/ED97: C220 REP #$20 (16 bit memory/accum.) C3/ED99: A9638B LDA #$8B63 C3/ED9C: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/EDA0: E220 SEP #$20 (8 bit memory/accum.) C3/EDA2: A9C2 LDA #$C2 C3/EDA4: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/EDA8: 60 RTS C3/EDA9: 20BEED JSR $EDBE C3/EDAC: C220 REP #$20 (16 bit memory/accum.) C3/EDAE: A9458B LDA #$8B45 C3/EDB1: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/EDB5: E220 SEP #$20 (8 bit memory/accum.) C3/EDB7: A9C2 LDA #$C2 C3/EDB9: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/EDBD: 60 RTS C3/EDBE: 7B TDC C3/EDBF: A8 TAY C3/EDC0: 8599 STA $99 C3/EDC2: 8460 STY $60 C3/EDC4: A901 LDA #$01 C3/EDC6: A004EE LDY #$EE04 C3/EDC9: 207311 JSR $1173 (put C3/EE04 in the queue) C3/EDCC: 60 RTS C3/EDCD: 86E7 STX $E7 C3/EDCF: A97F LDA #$7F C3/EDD1: 85E9 STA $E9 C3/EDD3: 84EB STY $EB C3/EDD5: A97E LDA #$7E C3/EDD7: 85ED STA $ED C3/EDD9: A600 LDX $00 C3/EDDB: C220 REP #$20 (16 bit memory/accum.) C3/EDDD: 7B TDC C3/EDDE: A8 TAY C3/EDDF: B7E7 LDA [$E7],Y C3/EDE1: 18 CLC C3/EDE2: 6560 ADC $60 C3/EDE4: 97EB STA [$EB],Y C3/EDE6: C8 INY C3/EDE7: C8 INY C3/EDE8: C4E0 CPY $E0 C3/EDEA: D0F3 BNE $EDDF C3/EDEC: A5E7 LDA $E7 C3/EDEE: 18 CLC C3/EDEF: 694000 ADC #$0040 C3/EDF2: 85E7 STA $E7 C3/EDF4: A5EB LDA $EB C3/EDF6: 18 CLC C3/EDF7: 694000 ADC #$0040 C3/EDFA: 85EB STA $EB C3/EDFC: E8 INX C3/EDFD: E4E2 CPX $E2 C3/EDFF: D0DC BNE $EDDD C3/EE01: E220 SEP #$20 (8 bit memory/accum.) C3/EE03: 60 RTS C3/EE04: AA TAX C3/EE05: 7C08EE JMP ($EE08,X) C3/EE08: 0EEE C3/EE0A: 18EE C3/EE0C: 1CEE C3/EE0E: A62D LDX $2D C3/EE10: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/EE13: 200612 JSR $1206 C3/EE16: 38 SEC (not done with this queue yet) C3/EE17: 60 RTS This appears to be the routine to draw text using the varying-width font. C3/EE18: A599 LDA $99 C3/EE1A: D03D BNE $EE59 C3/EE1C: A62D LDX $2D C3/EE1E: 202712 JSR $1227 C3/EE21: A62D LDX $2D C3/EE23: E210 SEP #$10 (8 bit index registers) C3/EE25: BDC936 LDA $36C9,X C3/EE28: A8 TAY C3/EE29: C220 REP #$20 (16 bit memory/accum.) C3/EE2B: B7EB LDA [$EB],Y C3/EE2D: 85E7 STA $E7 C3/EE2F: C8 INY C3/EE30: C8 INY C3/EE31: E220 SEP #$20 (8 bit memory/accum.) C3/EE33: BDCA35 LDA $35CA,X (load bank pointer to OAM data) C3/EE36: 85E9 STA $E9 C3/EE38: C210 REP #$10 (16 bit index registers) C3/EE3A: A400 LDY $00 C3/EE3C: C220 REP #$20 (16 bit memory/accum.) C3/EE3E: B7E7 LDA [$E7],Y C3/EE40: 85E0 STA $E0 C3/EE42: C8 INY C3/EE43: C8 INY C3/EE44: B7E7 LDA [$E7],Y C3/EE46: 85E2 STA $E2 C3/EE48: C8 INY C3/EE49: C8 INY C3/EE4A: B7E7 LDA [$E7],Y C3/EE4C: AA TAX C3/EE4D: C8 INY C3/EE4E: C8 INY C3/EE4F: B7E7 LDA [$E7],Y C3/EE51: A8 TAY C3/EE52: E220 SEP #$20 (8 bit memory/accum.) C3/EE54: 20CDED JSR $EDCD C3/EE57: 38 SEC (not done with this queue yet) C3/EE58: 60 RTS C3/EE59: 6499 STZ $99 C3/EE5B: A62D LDX $2D C3/EE5D: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/EE60: C220 REP #$20 (16 bit memory/accum.) C3/EE62: A9548B LDA #$8B54 C3/EE65: 9DC932 STA $32C9,X (save as pointer to OAM data) C3/EE68: E220 SEP #$20 (8 bit memory/accum.) C3/EE6A: A9C2 LDA #$C2 C3/EE6C: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/EE6F: 200612 JSR $1206 C3/EE72: 80A8 BRA $EE1C C3/EE74: A000BA LDY #$BA00 C3/EE77: A9C4 LDA #$C4 C3/EE79: 2061DD JSR $DD61 C3/EE7C: A000C0 LDY #$C000 C3/EE7F: 84E7 STY $E7 C3/EE81: A97E LDA #$7E C3/EE83: 85E9 STA $E9 C3/EE85: A00009 LDY #$0900 C3/EE88: 84EB STY $EB C3/EE8A: A00070 LDY #$7000 C3/EE8D: 4C86DD JMP $DD86 C3/EE90: A008C0 LDY #$C008 C3/EE93: A9C4 LDA #$C4 C3/EE95: 2061DD JSR $DD61 C3/EE98: A04938 LDY #$3849 C3/EE9B: 84EB STY $EB C3/EE9D: A97E LDA #$7E C3/EE9F: 85ED STA $ED C3/EEA1: 2010EF JSR $EF10 C3/EEA4: A04940 LDY #$4049 C3/EEA7: 84EB STY $EB C3/EEA9: A97E LDA #$7E C3/EEAB: 85ED STA $ED C3/EEAD: 2010EF JSR $EF10 C3/EEB0: A000C0 LDY #$C000 C3/EEB3: 84E7 STY $E7 C3/EEB5: A97E LDA #$7E C3/EEB7: 85E9 STA $E9 C3/EEB9: A0601F LDY #$1F60 C3/EEBC: 84EB STY $EB C3/EEBE: 64ED STZ $ED C3/EEC0: 64EE STZ $EE C3/EEC2: A00030 LDY #$3000 C3/EEC5: 20B9DD JSR $DDB9 C3/EEC8: A060DF LDY #$DF60 C3/EECB: 84E7 STY $E7 C3/EECD: A97E LDA #$7E C3/EECF: 85E9 STA $E9 C3/EED1: A0400B LDY #$0B40 C3/EED4: 84EB STY $EB C3/EED6: 64ED STZ $ED C3/EED8: 64EE STZ $EE C3/EEDA: A00040 LDY #$4000 C3/EEDD: 20B9DD JSR $DDB9 C3/EEE0: A0A0EA LDY #$EAA0 C3/EEE3: 84E7 STY $E7 C3/EEE5: A97E LDA #$7E C3/EEE7: 85E9 STA $E9 C3/EEE9: A0000E LDY #$0E00 C3/EEEC: 84EB STY $EB C3/EEEE: 64ED STZ $ED C3/EEF0: 64EE STZ $EE C3/EEF2: A00050 LDY #$5000 C3/EEF5: 20B9DD JSR $DDB9 C3/EEF8: A04804 LDY #$0448 C3/EEFB: 84E7 STY $E7 C3/EEFD: A97F LDA #$7F C3/EEFF: 85E9 STA $E9 C3/EF01: A08007 LDY #$0780 C3/EF04: 84EB STY $EB C3/EF06: 64ED STZ $ED C3/EF08: 64EE STZ $EE C3/EF0A: A00010 LDY #$1000 C3/EF0D: 4CB9DD JMP $DDB9 C3/EF10: A0A0F8 LDY #$F8A0 C3/EF13: 84E7 STY $E7 C3/EF15: A97E LDA #$7E C3/EF17: 85E9 STA $E9 C3/EF19: A08007 LDY #$0780 C3/EF1C: 84EF STY $EF C3/EF1E: 4CEED6 JMP $D6EE C3/EF21: A00018 LDY #$1800 C3/EF24: 841B STY $1B C3/EF26: A04978 LDY #$7849 C3/EF29: 841D STY $1D C3/EF2B: A97E LDA #$7E C3/EF2D: 851F STA $1F C3/EF2F: A00008 LDY #$0800 C3/EF32: 8419 STY $19 C3/EF34: A00000 LDY #$0000 C3/EF37: 8414 STY $14 C3/EF39: A04938 LDY #$3849 C3/EF3C: 8416 STY $16 C3/EF3E: A97E LDA #$7E C3/EF40: 8518 STA $18 C3/EF42: A00010 LDY #$1000 C3/EF45: 8412 STY $12 C3/EF47: 60 RTS C3/EF48: A077F4 LDY #$F477 C3/EF4B: A9C4 LDA #$C4 C3/EF4D: 2061DD JSR $DD61 C3/EF50: A000C0 LDY #$C000 C3/EF53: 84E7 STY $E7 C3/EF55: A97E LDA #$7E C3/EF57: 85E9 STA $E9 C3/EF59: A08003 LDY #$0380 C3/EF5C: 84EB STY $EB C3/EF5E: 64ED STZ $ED C3/EF60: 64EE STZ $EE C3/EF62: A00060 LDY #$6000 C3/EF65: 4CB9DD JMP $DDB9 C3/EF68: 2036F0 JSR $F036 C3/EF6B: A02600 LDY #$0026 C3/EF6E: 84E0 STY $E0 C3/EF70: A00200 LDY #$0002 C3/EF73: 84E2 STY $E2 C3/EF75: A2E003 LDX #$03E0 C3/EF78: A0A13B LDY #$3BA1 C3/EF7B: 4CCDED JMP $EDCD C3/EF7E: 2087EF JSR $EF87 C3/EF81: A00060 LDY #$6000 C3/EF84: 4CB9DD JMP $DDB9 C3/EF87: A04B9D LDY #$9D4B C3/EF8A: A9D9 LDA #$D9 C3/EF8C: 2061DD JSR $DD61 C3/EF8F: A000C0 LDY #$C000 C3/EF92: 84E7 STY $E7 C3/EF94: A97E LDA #$7E C3/EF96: 85E9 STA $E9 C3/EF98: A00008 LDY #$0800 C3/EF9B: 84EB STY $EB C3/EF9D: 64ED STZ $ED C3/EF9F: 64EE STZ $EE C3/EFA1: 60 RTS This appears to be a series of DMA transfers for the VWF scrolling effect...or that's the theory C3/EFA2: 2036F0 JSR $F036 C3/EFA5: A00E00 LDY #$000E C3/EFA8: 84E0 STY $E0 C3/EFAA: A00800 LDY #$0008 C3/EFAD: 84E2 STY $E2 C3/EFAF: A22000 LDX #$0020 C3/EFB2: A0773A LDY #$3A77 C3/EFB5: 4CCDED JMP $EDCD C3/EFB8: 2036F0 JSR $F036 C3/EFBB: A01C00 LDY #$001C C3/EFBE: 84E0 STY $E0 C3/EFC0: A00900 LDY #$0009 C3/EFC3: 84E2 STY $E2 C3/EFC5: A22E00 LDX #$002E C3/EFC8: A02D3A LDY #$3A2D C3/EFCB: 4CCDED JMP $EDCD C3/EFCE: 2056F0 JSR $F056 C3/EFD1: A00C00 LDY #$000C C3/EFD4: 84E0 STY $E0 C3/EFD6: A00700 LDY #$0007 C3/EFD9: 84E2 STY $E2 C3/EFDB: A24A00 LDX #$004A C3/EFDE: A0B73A LDY #$3AB7 C3/EFE1: 4CCDED JMP $EDCD C3/EFE4: 2036F0 JSR $F036 C3/EFE7: A00E00 LDY #$000E C3/EFEA: 84E0 STY $E0 C3/EFEC: A00500 LDY #$0005 C3/EFEF: 84E2 STY $E2 C3/EFF1: A22002 LDX #$0220 C3/EFF4: A0353B LDY #$3B35 C3/EFF7: 4CCDED JMP $EDCD C3/EFFA: A01800 LDY #$0018 C3/EFFD: 84E0 STY $E0 C3/EFFF: A00600 LDY #$0006 C3/F002: 84E2 STY $E2 C3/F004: A27402 LDX #$0274 C3/F007: A0693B LDY #$3B69 C3/F00A: 4CCDED JMP $EDCD C3/F00D: 2036F0 JSR $F036 C3/F010: A01400 LDY #$0014 C3/F013: 84E0 STY $E0 C3/F015: A00200 LDY #$0002 C3/F018: 84E2 STY $E2 C3/F01A: A26003 LDX #$0360 C3/F01D: A0F33B LDY #$3BF3 C3/F020: 4CCDED JMP $EDCD C3/F023: A01C00 LDY #$001C C3/F026: 84E0 STY $E0 C3/F028: A00600 LDY #$0006 C3/F02B: 84E2 STY $E2 C3/F02D: A2C80B LDX #$0BC8 C3/F030: A0D93A LDY #$3AD9 C3/F033: 4CCDED JMP $EDCD C3/F036: A0FBF6 LDY #$F6FB C3/F039: A9C4 LDA #$C4 C3/F03B: 2061DD JSR $DD61 C3/F03E: A000C0 LDY #$C000 C3/F041: 84E7 STY $E7 C3/F043: A97E LDA #$7E C3/F045: 85E9 STA $E9 C3/F047: A0F00D LDY #$0DF0 C3/F04A: 84EB STY $EB C3/F04C: 64ED STZ $ED C3/F04E: 64EE STZ $EE C3/F050: A00060 LDY #$6000 C3/F053: 4CB9DD JMP $DDB9 C3/F056: A0E5A4 LDY #$A4E5 C3/F059: A9D9 LDA #$D9 C3/F05B: 2061DD JSR $DD61 C3/F05E: A000C0 LDY #$C000 C3/F061: 84E7 STY $E7 C3/F063: A97E LDA #$7E C3/F065: 85E9 STA $E9 C3/F067: A0C000 LDY #$00C0 C3/F06A: 84EB STY $EB C3/F06C: A00060 LDY #$6000 C3/F06F: 4C86DD JMP $DD86 C3/F072: 2036F0 JSR $F036 C3/F075: 2087EF JSR $EF87 C3/F078: A00068 LDY #$6800 C3/F07B: 20B9DD JSR $DDB9 C3/F07E: A00A00 LDY #$000A C3/F081: 84E0 STY $E0 C3/F083: A00500 LDY #$0005 C3/F086: 84E2 STY $E2 C3/F088: A25600 LDX #$0056 C3/F08B: A0373B LDY #$3B37 C3/F08E: 4CCDED JMP $EDCD C3/F091 - C3/FFFF: FREE SPACE!