Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Final Fantasy VI/ROM map/Assembly C38
< Final Fantasy VI | ROM map
Jump to navigation
Jump to search
C3/802C unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 code and jump table
C3/8183: AA TAX C3/8184: 7C8781 JMP ($8187,X) C3/8187: 8F81 C3/8189: 9C81 C3/818B: A781 C3/818D: B081
C3/818F unknow
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 unknow
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
C3/81C7 update finger position
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 unknow
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 unknow
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 unknow
C3/8241: C64D DEC $4D C3/8243: C64F DEC $4F C3/8245: 20A30E JSR $0EA3 C3/8248: 60 RTS
C3/8249 unknow
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 unknow
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 unknow
C3/827E: E64D INC $4D C3/8280: E64F INC $4F C3/8282: 20A30E JSR $0EA3 C3/8285: 60 RTS
C3/8286 unknow
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 unknow
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
C3/82DD check and scroll vram
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 vram data
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 unknow
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 unknow
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
C3/8321 math: A = A * 30
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 unknow
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 unknow
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 unknow
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 unknow
C3/837A: A564 LDA $64 C3/837C: 20E004 JSR $04E0 C3/837F: A2BF7A LDX #$7ABF C3/8382: 4CC004 JMP $04C0
C3/8385 unknow
C3/8385: A04A8E LDY #$8E4A C3/8388: 4CF902 JMP $02F9 (display " ")
C3/838B unknow
C3/838B: 20156A JSR $6A15 C3/838E: 209483 JSR $8394 C3/8391: 4CDE83 JMP $83DE
C3/8394 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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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
C3/8467 draw names
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
C3/8497 double click item
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
C3/84E2 sleeping bag item
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
C3/84EB warp stone item
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
C3/84F8 tent item
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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
C3/8653 "can be used by" names
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 unknow
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 unknow
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 unknow
C3/8795: A9C3 LDA #$C3 (C3/02F9 handles this already...) C3/8797: 85E9 STA $E9 C3/8799: 4CFF02 JMP $02FF
C3/879C unknow
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 unknow
C3/87C0: A0718D LDY #$8D71 C3/87C3: 20F902 JSR $02F9 (display "???") C3/87C6: 60 RTS
C3/87C7 unknow
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 unknow
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 unknow
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
C3/8854 data: string for evade/mblock boosts
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)
C3/8880 data: strings for vigor/speed/stamina/magic boosts
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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
C3/8927 data: vwf icon fetching
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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
C3/8A3B data: windows
C3/8A3B: 9D581318 C3/8A3F: 8B580D02 C3/8A43: 8B590703
C3/8A47 unknow
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 unknow
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 unknow
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 unknow
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 unknow
C3/8AE0: 20C00E JSR $0EC0 (makes the buzzer sound) C3/8AE3: 205D30 JSR $305D C3/8AE6: 60 RTS
C3/8AE7 unknow
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 unknow
C3/8B0A: 20C00E JSR $0EC0 (makes the buzzer sound) C3/8B0D: 205D30 JSR $305D C3/8B10: 60 RTS
C3/8B11 unknow
C3/8B11: 201A8B JSR $8B1A C3/8B14: 202B8C JSR $8C2B C3/8B17: 4C979D JMP $9D97 (Remove item from inventory)
C3/8B1A unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
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 unknow
C3/8D10: 1D8D (from C3/7DE9) C3/8D12: 238D C2/8D14: 2D8D
C3/8D16: 0D7988AD9EA600 (Item ) C3/8D1D: 1D7994928400 (USE ) C3/8D23: 2779809191808D868400 (ARRANGE ) C3/8D2D: 39799180918400 (RARE ) C3/8D34: FF9C9AA7FF9B9EFFAEAC9E9DFF9BB2C100 ( can be used by: )
C3/8D45 string pointers
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 strings
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 ("<dotted line>") C3/8DAB: BF84D300 ("<dotted line>") C3/8DAD: 3F85D300 ("<dotted line>") C3/8DB3: BF85D300 ("<dotted line>") C3/8DB7: 3F86D300 ("<dotted line>") C3/8DBB: BF86D300 ("<dotted line>") C3/8DBF: 3F87D300 ("<dotted line>") C3/8DC3: BF87D300 ("<dotted line>") C3/8DC7: 3F88D300 ("<dotted line>") 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 unknow
C3/8E50: A05F8E LDY #$8E5F C3/8E53: 4CFE05 JMP $05FE
C3/8E56 unknow
C3/8E56: 202D07 JSR $072D C3/8E59: A0648E LDY #$8E64 C3/8E5C: 4C4006 JMP $0640
C3/8E5F unknow
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 unknow
C3/8E72: 202D07 JSR $072D C3/8E75: A0808E LDY #$8E80 C3/8E78: 4C4006 JMP $0640
C3/8E7B unknow
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 unknow
C3/8ED5: A0E48E LDY #$8EE4 C3/8ED8: 4CFE05 JMP $05FE
C3/8EDB unknow
C3/8EDB: 202D07 JSR $072D C3/8EDE: A0E98E LDY #$8EE9 C3/8EE1: 4C4006 JMP $0640
C3/8EE4 data: relic screen hot spots
C3/8EE4: 80 00 00 01 02
C3/8EE9 data: relic screen finger positions
C3/8EE9: 0044 C3/8EEB: 0050
C3/8EED unknow
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 unknow
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 unknow
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 unknow
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 unknow
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
C3/8F8A check equipments for all characters
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 unknow
C3/8FD5: 0211 C3/8FD7: 0211 C3/8FD9: 0211
C3/8FDB unknow
C3/8FDB: 0101 C3/8FDD: 0303 C3/8FDF: 0505
C3/8FE1 unknow
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