If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Final Fantasy VI/ROM map/Assembly 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