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 C3A
< Final Fantasy VI | ROM map
Jump to navigation
Jump to search
This is a sub-page of Final Fantasy VI/ROM map.
C3/9FFD unknow
C3/9FFD: 20149E JSR $9E14 C3/A000: 20DB8E JSR $8EDB C3/A003: A508 LDA $08 C3/A005: 8980 BIT #$80 (is A being pressed?) C3/A007: F02A BEQ $A033 (branch if not, BPL...) C3/A009: 20B20E JSR $0EB2 (makes the click sound) C3/A00C: A54E LDA $4E C3/A00E: 855F STA $5F C3/A010: A95B LDA #$5B C3/A012: 8526 STA $26 C3/A014: 2051A0 JSR $A051 C3/A017: 2050A1 JSR $A150 C3/A01A: 20EB9A JSR $9AEB C3/A01D: A95A LDA #$5A C3/A01F: 8527 STA $27 C3/A021: 20156A JSR $6A15 C3/A024: 206813 JSR $1368 (trigger NMI) C3/A027: 20AC9C JSR $9CAC C3/A02A: 203392 JSR $9233 C3/A02D: 20239E JSR $9E23 C3/A030: 4C6813 JMP $1368 (trigger NMI)
C3/A033 unknow
C3/A033: A509 LDA $09 C3/A035: 8980 BIT #$80 (is B being pressed?) C3/A037: F00E BEQ $A047 (branch if not, BPL...) C3/A039: 20A90E JSR $0EA9 C3/A03C: 20BD8E JSR $8EBD C3/A03F: 20C68E JSR $8EC6 C3/A042: A959 LDA #$59 C3/A044: 8526 STA $26 C3/A046: 60 RTS
C3/A047 unknow
C3/A047: 20E69E JSR $9EE6 C3/A04A: A979 LDA #$79 C3/A04C: 85E0 STA $E0 C3/A04E: 4C2220 JMP $2022
C3/A051 unknow
C3/A051: 202A9C JSR $9C2A C3/A054: 20419C JSR $9C41 C3/A057: A920 LDA #$20 C3/A059: 8529 STA $29 (set text color to white) C3/A05B: A600 LDX $00 C3/A05D: 9B TXY C3/A05E: 7B TDC C3/A05F: B96918 LDA $1869,Y (Load the index of inventory item Y) C3/A062: C9FF CMP #$FF (Is it the "empty" item?) C3/A064: F022 BEQ $A088 C3/A066: 202183 JSR $8321 (Multipy the index by 30) C3/A069: AE3421 LDX $2134 (Load X with the result) C3/A06C: BF0050D8 LDA $D85000,X (Load item type X) C3/A070: 2907 AND #$07 (Zero out the upper nibble) C3/A072: C905 CMP #$05 (Is it a relic [item type 5]?) C3/A074: D012 BNE $A088 (If it's not, branch -> do the next item) C3/A076: C220 REP #$20 (16 bit memory/accum.) C3/A078: BF0150D8 LDA $D85001,X (Load equippable chars X) C3/A07C: 24E7 BIT $E7 C3/A07E: F008 BEQ $A088 C3/A080: E220 SEP #$20 (8 bit memory/accum.) C3/A082: 98 TYA C3/A083: 8D8021 STA $2180 C3/A086: E6E0 INC $E0 C3/A088: E220 SEP #$20 (8 bit memory/accum.) C3/A08A: C8 INY C3/A08B: C00001 CPY #$0100 C3/A08E: D0CE BNE $A05E C3/A090: A5E0 LDA $E0 C3/A092: 8F899D7E STA $7E9D89 C3/A096: 60 RTS
C3/A097 unknow
C3/A097: A910 LDA #$10 C3/A099: 1445 TRB $45 C3/A09B: 20149E JSR $9E14 C3/A09E: 20D39A JSR $9AD3 C3/A0A1: 203392 JSR $9233 C3/A0A4: 20D8A1 JSR $A1D8 C3/A0A7: A508 LDA $08 C3/A0A9: 8980 BIT #$80 (are you pressing A?) C3/A0AB: F02F BEQ $A0DC (branch if not, BPL...) C3/A0AD: 20B20E JSR $0EB2 (makes the click sound) C3/A0B0: 20F293 JSR $93F2 C3/A0B3: C221 REP #$21 C3/A0B5: 98 TYA C3/A0B6: E220 SEP #$20 (8 bit memory/accum.) C3/A0B8: 655F ADC $5F C3/A0BA: A8 TAY C3/A0BB: B92300 LDA $0023,Y C3/A0BE: C9FF CMP #$FF C3/A0C0: F003 BEQ $A0C5 C3/A0C2: 205E9D JSR $$9D5E (Put item into inventory) C3/A0C5: 7B TDC C3/A0C6: A54B LDA $4B C3/A0C8: AA TAX C3/A0C9: BF8A9D7E LDA $7E9D8A,X C3/A0CD: AA TAX C3/A0CE: BD6918 LDA $1869,X (Items currently in inventory) C3/A0D1: 992300 STA $0023,Y (Store to relic slot 1) C3/A0D4: 20979D JSR $9D97 (Remove item from inventory) C3/A0D7: 203191 JSR $9131 C3/A0DA: 8009 BRA $A0E5 C3/A0DC: A509 LDA $09 C3/A0DE: 8980 BIT #$80 (are you pressing B?) C3/A0E0: F027 BEQ $A109 (branch if not, BPL...) C3/A0E2: 20A90E JSR $0EA9 C3/A0E5: A910 LDA #$10 C3/A0E7: 0445 TSB $45 C3/A0E9: 20879C JSR $9C87 C3/A0EC: C220 REP #$20 (16 bit memory/accum.) C3/A0EE: A90001 LDA #$0100 C3/A0F1: 8FD09B7E STA $7E9BD0 C3/A0F5: E220 SEP #$20 (8 bit memory/accum.) C3/A0F7: A9C1 LDA #$C1 C3/A0F9: 1446 TRB $46 C3/A0FB: 20D58E JSR $8ED5 C3/A0FE: A55F LDA $5F C3/A100: 854E STA $4E C3/A102: 20DE8E JSR $8EDE C3/A105: A95A LDA #$5A C3/A107: 8526 STA $26 C3/A109: 60 RTS
C3/A10A unknow
C3/A10A: 20239E JSR $9E23 C3/A10D: 20DB8E JSR $8EDB C3/A110: A508 LDA $08 C3/A112: 8980 BIT #$80 (are you pressing A?) C3/A114: F01C BEQ $A132 (branch if not, BPL...) C3/A116: 20B20E JSR $0EB2 (makes the click sound) C3/A119: 20F293 JSR $93F2 C3/A11C: C221 REP #$21 C3/A11E: 98 TYA C3/A11F: E220 SEP #$20 (8 bit memory/accum.) C3/A121: 654B ADC $4B C3/A123: A8 TAY C3/A124: B92300 LDA $0023,Y C3/A127: 205E9D JSR $9D5E (Put item into inventory) C3/A12A: A9FF LDA #$FF C3/A12C: 992300 STA $0023,Y C3/A12F: 203191 JSR $9131 C3/A132: A509 LDA $09 C3/A134: 8980 BIT #$80 (are you pressing B?) C3/A136: F00E BEQ $A146 (branch if not, BPL...) C3/A138: 20A90E JSR $0EA9 C3/A13B: 20BD8E JSR $8EBD C3/A13E: 20C68E JSR $8EC6 C3/A141: A959 LDA #$59 C3/A143: 8526 STA $26 C3/A145: 60 RTS
C3/A146 unknow
C3/A146: 20E69E JSR $9EE6 C3/A149: A97A LDA #$7A C3/A14B: 85E0 STA $E0 C3/A14D: 4C2220 JMP $2022
C3/A150 unknow
C3/A150: A28DAC LDX #$AC8D C3/A153: 8E8121 STX $2181 C3/A156: AF899D7E LDA $7E9D89 (Number of items under consideration) C3/A15A: F02A BEQ $A186 (Exit if it's zero) C3/A15C: C901 CMP #$01 (Is it just one?) C3/A15E: F026 BEQ $A186 (Exit if it is) C3/A160: 85E7 STA $E7 (Store the number to $E7) C3/A162: 64E8 STZ $E8 (Set $E8 to zero) C3/A164: 7B TDC (Set A to zero) C3/A165: AA TAX (Set X to zero) C3/A166: A8 TAY (Set Y to zero) C3/A167: BF8A9D7E LDA $7E9D8A,X (Load the Xth entry from our list) C3/A16B: DA PHX (Push X [the place in our eligible equipment list]) C3/A16C: A8 TAY (Transfer the id of the item at X into Y) C3/A16D: B96918 LDA $1869,Y (Load inventory item Y) C3/A170: 202183 JSR $8321 (Multiply the index by 30 to get its stats out of the data table) C3/A173: AE3421 LDX $2134 (Load the result) C3/A176: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/A17A: 8D8021 STA $2180 (Store that value out) C3/A17D: FA PLX (Restore the place in the eligible equipment list) C3/A17E: E8 INX (Move up to the next place) C3/A17F: E4E7 CPX $E7 (Are we at the last one?) C3/A181: D0E4 BNE $A167 (Branch back if not) C3/A183: 2087A1 JSR $A187 C3/A186: 60 RTS
C3/A187 unknow
C3/A187: C6E7 DEC $E7 (Decrement $E7 [the length of the list under consideration]) C3/A189: 8B PHB (Save the data bank register) C3/A18A: A97E LDA #$7E (Load #$7E...) C3/A18C: 48 PHA (Put it on the stack) C3/A18D: AB PLB (Pull it into the DBR) C3/A18E: 7B TDC (Set A to zero) C3/A18F: A8 TAY (Set Y to zero) C3/A190: 7B TDC (Set A to zero) C3/A191: AA TAX (Set X to zero) C3/A192: BD8DAC LDA $AC8D,X C3/A195: DD8EAC CMP $AC8E,X C3/A198: B01D BCS $A1B7 C3/A19A: 85E0 STA $E0 C3/A19C: BD8A9D LDA $9D8A,X C3/A19F: 85E1 STA $E1 C3/A1A1: BD8EAC LDA $AC8E,X C3/A1A4: 9D8DAC STA $AC8D,X C3/A1A7: BD8B9D LDA $9D8B,X C3/A1AA: 9D8A9D STA $9D8A,X C3/A1AD: A5E0 LDA $E0 C3/A1AF: 9D8EAC STA $AC8E,X C3/A1B2: A5E1 LDA $E1 C3/A1B4: 9D8B9D STA $9D8B,X C3/A1B7: E8 INX C3/A1B8: E4E7 CPX $E7 C3/A1BA: D0D6 BNE $A192 C3/A1BC: C8 INY C3/A1BD: C4E7 CPY $E7 C3/A1BF: D0CF BNE $A190 C3/A1C1: AB PLB (Restore the data bank register) C3/A1C2: 60 RTS
C3/A1C3 unknow
C3/A1C3: 200883 JSR $8308 C3/A1C6: 20F293 JSR $93F2 C3/A1C9: A54B LDA $4B C3/A1CB: D005 BNE $A1D2 C3/A1CD: B92300 LDA $0023,Y C3/A1D0: 8003 BRA $A1D5 C3/A1D2: B92400 LDA $0024,Y C3/A1D5: 4C3857 JMP $5738
C3/A1D8 unknow
C3/A1D8: 200883 JSR $8308 C3/A1DB: 7B TDC C3/A1DC: A54B LDA $4B C3/A1DE: AA TAX C3/A1DF: BF8A9D7E LDA $7E9D8A,X C3/A1E3: AA TAX C3/A1E4: BD6918 LDA $1869,X (Items currently in inventory) C3/A1E7: 4C3857 JMP $5738
C3/A1EA unknow
Data, we think... C3/A1EA: 1AA2 C3/A1EC: 1FA2 C3/A1EE: 25A2 AND $A2 C3/A1F0: 2B PLD C3/A1F1: A231A2 LDX #$A231 C3/A1F4: 37A2 AND [$A2],Y C3/A1F6: 3DA242 AND $42A2,X C3/A1F9: A248A2 LDX #$A248 C3/A1FC: 4EA254 LSR $54A2 C3/A1FF: A25AA2 LDX #$A25A C3/A202: 60 RTS C3/A203: A265A2 LDX #$A265 C3/A206: 6B RTL C3/A207: A271A2 LDX #$A271 C3/A20A: 77A2 ADC [$A2],Y C3/A20C: 7DA283 ADC $83A2,X C3/A20F: A288A2 LDX #$A288 C3/A212: 8EA294 STX $94A2 C3/A215: A29AA2 LDX #$A29A C3/A218: A0A24F LDY #$4FA2 C3/A21B: 399F2D AND $2D9F,Y C3/A21E: 006B BRK #$6B C3/A220: 39633F AND $3F63,Y C3/A223: A900 LDA #$00 C3/A225: CF398B7F CMP $7F8B39 C3/A229: 9D00EB STA $EB00,X C3/A22C: 396BA7 AND $A76B,Y C3/A22F: 3F004F3A AND $3A4F00,X C3/A233: 8A TXA C3/A234: 6E5400 ROR $0054 C3/A237: 6B RTL C3/A238: 3A DEC A C3/A239: 8A TXA C3/A23A: 6E5500 ROR $0055 C3/A23D: 4F3B9F2D EOR $2D9F3B C3/A241: 006B BRK #$6B C3/A243: 3B TSC C3/A244: 633F ADC $3F,S C3/A246: A900 LDA #$00 C3/A248: CF3B8B7F CMP $7F8B3B C3/A24C: 9D00EB STA $EB00,X C3/A24F: 3B TSC C3/A250: 6B RTL C3/A251: A73F LDA [$3F] C3/A253: 004F BRK #$4F C3/A255: 3C8A6E BIT $6E8A,X C3/A258: 54006B MVN $00,$6B C3/A25B: 3C8A6E BIT $6E8A,X C3/A25E: 5500 EOR $00,X C3/A260: 4F3D9F2D EOR $2D9F3D C3/A264: 006B BRK #$6B C3/A266: 3D633F AND $3F63,X C3/A269: A900 LDA #$00 C3/A26B: CF3D8B7F CMP $7F8B3D C3/A26F: 9D00EB STA $EB00,X C3/A272: 3D6BA7 AND $A76B,X C3/A275: 3F004F3E AND $3E4F00,X C3/A279: 8A TXA C3/A27A: 6E5400 ROR $0054 C3/A27D: 6B RTL C3/A27E: 3E8A6E ROL $6E8A,X C3/A281: 5500 EOR $00,X C3/A283: 4F3F9F2D EOR $2D9F3F C3/A287: 006B BRK #$6B C3/A289: 3F633FA9 AND $A93F63,X C3/A28D: 00CF BRK #$CF C3/A28F: 3F8B7F9D AND $9D7F8B,X C3/A293: 00EB BRK #$EB C3/A295: 3F6BA73F AND $3FA76B,X C3/A299: 004F BRK #$4F C3/A29B: 40 RTI C3/A29C: 8A TXA C3/A29D: 6E5400 ROR $0054 C3/A2A0: 6B RTL C3/A2A1: 40 RTI C3/A2A2: 8A TXA C3/A2A3: 6E5500
C3/A2A6 pointers: strings
C3/A2A6: 1AA3 C3/A2A8: 22A3 C3/A2AA: 2CA3 C3/A2AC: 34A3
C3/A2AE pointers: strings
C3/A2AE: CCA2 C3/A2B0: D3A2 C3/A2B2: 3CA3 C3/A2B4: 44A3 C3/A2B6: DAA2 C3/A2B8: E2A2
C3/A2BA data: strings
C3/A2BA: 0D7A91C4A19AA79D00 (R-hand) C3/A2C3: 8D7A8BC4A19AA79D00 (L-hand) C3/A2CC: 0D7B879E9A9D00 (Head) C3/A2D3: 8D7B81A89DB200 (Body) C3/A2DA: 0D7B919EA5A29C00 (Relic) C3/A2E2: 8D7B919EA5A29C00 (Relic) C3/A2EA: 0D79FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 C3/A309: 3979849094888F00 (EQUIP) C3/A311: 397991848C8E958400 (REMOVE) C3/A31A: 0D79849094888F00 (EQUIP) C3/A322: 1B798E8F93888C948C00 (OPTIMUM) C3/A32C: 2D79918C8E958400 (RMOVE) C3/A334: 3B79848C8F939800 (EMPTY) C3/A33C: 1179849094888F00 (EQUIP) C3/A344: 1F7991848C8E958400 (REMOVE)
C3/A34D pointers: strings
Pointers to the strings just below this C3/A34D: 71A3 (for Vigor) C3/A34F: 79A3 (for Stamina) C3/A351: 83A3 C3/A353: 8DA3 C3/A355: 97A3 C3/A357: A1A3 C3/A359: A5A3 C3/A35B: A9A3 C3/A35D: ADA3 C3/A35F: B1A3 C3/A361: B5A3 C3/A363: B9A3 C3/A365: BDA3 C3/A367: C1A3 C3/A369: C5A3 C3/A36B: CDA3 C3/A36D: D7A3 C3/A36F: E1A3
C3/A371 data: strings
C3/A371: A97C95A2A0A8AB00 (Vigor) C3/A379: A97D92AD9AA6A2A79A00 (Stamina) C3/A383: 297E8C9AA0C58FB0AB00 (Mag.Pwr) C3/A38D: A97F84AF9A9D9EFFCD00 (Evade %) C3/A397: A9808C81A5A89CA4CD00 (MBlock%) C3/A3A1: BD7CD500 (->) C3/A3A5: 3D7DD500 (->) C3/A3A9: BD7DD500 (->) C3/A3AD: 3D7ED500 (->) C3/A3B1: 3D7FD500 (->) C3/A3B5: BD7FD500 (->) C3/A3B9: BD7ED500 (->) C3/A3BD: 3D80D500 (->) C3/A3C1: BD80D500 (->) C3/A3C5: 297D92A99E9E9D00 (Speed) C3/A3CD: A97E819AADC58FB0AB00 (Bat.Pwr) C3/A3D7: 297F839E9F9EA7AC9E00 (Defense) C3/A3E1: 29808C9AA0C5839E9F00 (Mag.Def) C3/A3EB: 237984A6A9ADB200 (Empty) C3/A3F3: 21798EA9ADA2A6AEA600 (Optimum) C3/A3FD: A37984A6A9ADB200 (Empty) C3/A405: A1798EA9ADA2A6AEA600 (Optimum) C3/A40F: 157A84AAAEA2A9A69EA7ADFF9CA19AA7A09E9DC500 (Equipment changed.)
C3/A424 reset time used for input decoding
C3/A424: A908 LDA #$08 (from C3/0006, C3/0105) C3/A426: 8D2902 STA $0229 C3/A429: A903 LDA #$03 C3/A42B: 8D2A02 STA $022A C3/A42E: 8D2602 STA $0226 C3/A431: A920 LDA #$20 C3/A433: 8D2502 STA $0225 C3/A436: AD541D LDA $1D54 C3/A439: 2940 AND #$40 C3/A43B: F004 BEQ $A441 C3/A43D: 20C4A5 JSR $A5C4 C3/A440: 6B RTL
C3/A441 unknow
C3/A441: 20D1A5 JSR $A5D1 C3/A444: 6B RTL
C3/A445 decoding joypad
C3/A445: AD541D LDA $1D54 (from C3/0003) C3/A448: 100E BPL $A458 (branch if not multiplayer) C3/A44A: 7B TDC C3/A44B: AD0102 LDA $0201 (which character is under control now?) C3/A44E: AA TAX C3/A44F: AD4F1D LDA $1D4F (load bitfield with player 2's characters) C3/A452: 3F3DA5C3 AND $C3A53D,X (AND it with 01, 02, 04, or 08) C3/A456: D005 BNE $A45D (if not 0, it's player 2 so branch) C3/A458: AE1842 LDX $4218 (Joypad 1 status register) C3/A45B: 8005 BRA $A462 C3/A45D: AE1A42 LDX $421A (Joypad 2 status register) C3/A460: 8000 BRA $A462 (Pointless) C3/A462: 2083A4 JSR $A483 C3/A465: 20BDA4 JSR $A4BD C3/A468: 20F6A4 JSR $A4F6 (check to see if A is being held) C3/A46B: 4C27A5 JMP $A527 (restore memory and exit)
C3/A46E unknow
C3/A46E: AE1842 LDX $4218 (Joypad 1 status register) C3/A471: 2083A4 JSR $A483 C3/A474: 20BDA4 JSR $A4BD C3/A477: 4C27A5 JMP $A527
C3/A47A unknow
C3/A47A: AE1842 LDX $4218 (Joypad 1 status register; from C3/0009) C3/A47D: 2083A4 JSR $A483 C3/A480: 4C27A5 JMP $A527
C3/A483 unknow
C3/A483: A4E0 LDY $E0 (Here, we temporarily store off) C3/A485: 8C1302 STY $0213 (direct memory locations) C3/A488: A4E7 LDY $E7 ($E0, $E7, $E9, and $EB) C3/A48A: 8C1502 STY $0215 (in order to use them to mask) C3/A48D: A4E9 LDY $E9 (out the contents of) C3/A48F: 8C1702 STY $0217 (the joypad status word.) C3/A492: A4EB LDY $EB (etc.) C3/A494: 8C1902 STY $0219 (etc.) C3/A497: 86EB STX $EB (Now $EB contains the joypad status word) C3/A499: C220 REP #$20 (16 bit memory/accum.) C3/A49B: A50C LDA $0C (Load A with $0C [buttons being held?]) C3/A49D: 29F0FF AND #$FFF0 (Clear out unused bits) C3/A4A0: 85E0 STA $E0 (Store it to $E0) C3/A4A2: 2041A5 JSR $A541 C3/A4A5: A50C LDA $0C (Load A with $0C [buttons being held?]) C3/A4A7: 49FFFF EOR #$FFFF (Toggle all bits) C3/A4AA: 2506 AND $06 (Clear out bits not on in $06 [buttons being pressed?]) C3/A4AC: 8508 STA $08 (Store those to $08 [buttons just released?]) C3/A4AE: A406 LDY $06 (Load Y with $06 [buttons being pressed?]) C3/A4B0: 840C STY $0C (Store it to $0C [buttons being held?]) C3/A4B2: AD1842 LDA $4218 (Joypad 1 status register) C3/A4B5: 0D1A42 ORA $421A (Joypad 2 status register) C3/A4B8: 8504 STA $04 (Holds buttons pressed on Joypad 1 OR Joypad 2) C3/A4BA: E220 SEP #$20 (8 bit memory/accum.) C3/A4BC: 60 RTS
C3/A4BD unknow
C3/A4BD: C220 REP #$20 (16 bit memory/accum.) C3/A4BF: A506 LDA $06 (Load A with $06 [buttons being pressed?]) C3/A4C1: 29F0FF AND #$FFF0 (Clear out unsused bits) C3/A4C4: C5E0 CMP $E0 (Compare it to $E0 [buttons that /were/ being held?]) C3/A4C6: E220 SEP #$20 (8 bit memory/accum.) C3/A4C8: D01B BNE $A4E5 (Branch if [pressed != held]?) C3/A4CA: AD2702 LDA $0227 (Load some sort of timer???) C3/A4CD: F005 BEQ $A4D4 (Branch if it's zero) C3/A4CF: CE2702 DEC $0227 (Otherwise, decrement it by 1) C3/A4D2: D01D BNE $A4F1 (Branch if that didn't make it zero) C3/A4D4: CE2802 DEC $0228 ($0227 is now zero, so decrement $0228 by 1) C3/A4D7: D018 BNE $A4F1 (Branch if that didn't make it zero) C3/A4D9: AD2A02 LDA $022A (Load the A with $022A) C3/A4DC: 8D2802 STA $0228 (Store it to $0228, restoring the timer amount???) C3/A4DF: A406 LDY $06 (Load Y with $06 [buttons being pressed?]) C3/A4E1: 840A STY $0A (Store Y to $0A [buttons toggled?]) C3/A4E3: 8010 BRA $A4F5
C3/A4E5 unknow
C3/A4E5: AD2902 LDA $0229 (Load a value from $0229) C3/A4E8: 8D2702 STA $0227 (Store it to $0227) C3/A4EB: AD2A02 LDA $022A (Likewise, take $022A) C3/A4EE: 8D2802 STA $0228 (and store to $0228) C3/A4F1: A408 LDY $08 (Load Y with $08 [buttons just released?]) C3/A4F3: 840A STY $0A (Store Y to $0A [buttons toggled??]) C3/A4F5: 60 RTS
C3/A4F6 check if button A is being pressed by excessive time
C3/A4F6: A506 LDA $06 (Load the pressed button register) C3/A4F8: 8980 BIT #$80 (Check for A button pressed) C3/A4FA: F01B BEQ $A517 (Branch if A not pressed) C3/A4FC: AD2502 LDA $0225 (Load the A button wait to accept input time?) C3/A4FF: F005 BEQ $A506 (Branch if zero to decrement upper byte) C3/A501: CE2502 DEC $0225 (Otherwise, decrement by 1) C3/A504: D01C BNE $A522 (If not zero, branch and exit) C3/A506: CE2602 DEC $0226 (If it was now zero, decrement the upper byte) C3/A509: D017 BNE $A522 (If that's not now zero, branch and exit) C3/A50B: AD2A02 LDA $022A (Otherwise, reset the upper byte to $022A) C3/A50E: 8D2602 STA $0226 (Store back to the upper byte) C3/A511: A980 LDA #$80 (Load 80) C3/A513: 040A TSB $0A (Set A button in buttons toggled byte) C3/A515: 800F BRA $A526 (Branch and exit) C3/A517: A920 LDA #$20 (A button was not pressed, so set wait time to 32) C3/A519: 8D2502 STA $0225 (Store back to lower byte) C3/A51C: AD2A02 LDA $022A (Load master upper byte) C3/A51F: 8D2602 STA $0226 (Store back to uppper byte) C3/A522: A508 LDA $08 (Load just released buttons) C3/A524: 850A STA $0A (Store to toggled buttons) C3/A526: 60 RTS
C3/A527 restore memory and exit
C3/A527: AC1302 LDY $0213 (Here, we restore the contents) C3/A52A: 84E0 STY $E0 (of $E0, $E7, $E9, and $EB) C3/A52C: AC1502 LDY $0215 (in preparation of the long) C3/A52F: 84E7 STY $E7 (return.) C3/A531: AC1702 LDY $0217 () C3/A534: 84E9 STY $E9 () C3/A536: AC1902 LDY $0219 () C3/A539: 84EB STY $EB () C3/A53B: 7B TDC C3/A53C: 6B RTL
C3/A53D unknow
C3/A53D: 0102 C3/A53F: 0408
C3/A541 unknow
C3/A541: A5EB LDA $EB (Load Joypad status word) C3/A543: 29000F AND #$0F00 (Filter out all but Up, Down, Left, Right) C3/A546: 8506 STA $06 (Store any of those to $06) C3/A548: A98000 LDA #$0080 (Load a filter for X) C3/A54B: 85E7 STA $E7 (Store that to $E7) C3/A54D: A90080 LDA #$8000 (Load a filter for A) C3/A550: 85E9 STA $E9 (Store that to $E9) C3/A552: A400 LDY $00 (Clear Y Register (Y = 0)) C3/A554: 2081A5 JSR $A581 C3/A557: A94000 LDA #$0040 (Load a filter for Y) C3/A55A: 85E7 STA $E7 (Store that to $E7) C3/A55C: A90040 LDA #$4000 (Load a filter for B) C3/A55F: 85E9 STA $E9 (Store that to $E9) C3/A561: C8 INY (Increment Y register (Y = 1)) C3/A562: 2081A5 JSR $A581 C3/A565: A92000 LDA #$0020 (Load a filter for R) C3/A568: 85E7 STA $E7 (Store that to $E7) C3/A56A: A91000 LDA #$0010 (Load a filter for L) C3/A56D: 85E9 STA $E9 (Store that to $E9) C3/A56F: C8 INY (Increment Y register (Y = 2)) C3/A570: 2081A5 JSR $A581 C3/A573: A90010 LDA #$1000 (Load a filter for Start) C3/A576: 85E7 STA $E7 (Store that to $E7) C3/A578: A90020 LDA #$2000 (Load a filter for Select) C3/A57B: 85E9 STA $E9 (Store that to $E9) C3/A57D: C8 INY (Increment Y register (Y = 3)) C3/A57E: 4C81A5 JMP $A581 (Pointless)
C3/A581 unknow
C3/A581: A5EB LDA $EB (Load the Joypad status word) C3/A583: 24E7 BIT $E7 (Is the bit designated by the $E7 filter on?) C3/A585: F014 BEQ $A59B (Branch if not) C3/A587: 7B TDC (Clear A) C3/A588: E220 SEP #$20 (8 bit memory/accum.) C3/A58A: B92002 LDA $0220,Y C3/A58D: 29F0 AND #$F0 C3/A58F: C220 REP #$20 (16 bit memory/accum.) C3/A591: 4A LSR A C3/A592: 4A LSR A C3/A593: 4A LSR A C3/A594: AA TAX C3/A595: BFB4A5C3 LDA $C3A5B4,X C3/A599: 0406 TSB $06 (set the coorosponding bit if that button is being pressed) C3/A59B: A5EB LDA $EB (Load the Joypad status word) C3/A59D: 24E9 BIT $E9 (Is the bit designated by the $E9 filter on?) C3/A59F: F012 BEQ $A5B3 (Branch if not) C3/A5A1: 7B TDC (Clear A) C3/A5A2: E220 SEP #$20 (8 bit memory/accum.) C3/A5A4: B92002 LDA $0220,Y C3/A5A7: 290F AND #$0F C3/A5A9: C220 REP #$20 (16 bit memory/accum.) C3/A5AB: 0A ASL A C3/A5AC: AA TAX C3/A5AD: BFB4A5C3 LDA $C3A5B4,X C3/A5B1: 0406 TSB $06 (set the coorosponding bit if that button is being pressed) C3/A5B3: 60 RTS
C3/A5B4 data: bits set by joypad button
C3/A5B4: 0010 (L button) C3/A5B6: 8000 (B button) C3/A5B8: 0080 (A button) C3/A5BA: 4000 (Y button) C3/A5BC: 0040 (X button) C3/A5BE: 2000 (Select button) C3/A5C0: 1000 (Start button) C3/A5C2: 0020 (R button) These next four aren't listed, but they will be here for simplicity's sake xx/xxxx: 0800 (up) xx/xxxx: 0400 (down) xx/xxxx: 0200 (left) xx/xxxx: 0100 (right)
C3/A5C4 unknow
C3/A5C4: AC501D LDY $1D50 (load custom controls saved in SRAM) C3/A5C6: 8C2002 STY $0220 (save them) C3/A5C9: AC521D LDY $1D52 (load custom controls saved in SRAM) C3/A5CD: 8C2202 STY $0222 (save them) C3/A5D0: 60 RTS
C3/A5D1 unknow
C3/A5D1: A01234 LDY #$3412 (load defaults for controls) C3/A5D4: 8C2002 STY $0220 (save them) C3/A5D7: A05606 LDY #$0656 (load defaults for controls) C3/A5DA: 8C2202 STY $0222 (save them) C3/A5DD: 60 RTS
C3/A5DE unknow
C3/A5DE: 7B TDC C3/A5DF: AA TAX C3/A5E0: C220 REP #$20 (16 bit memory/accum.) C3/A5E2: 9F71A27E STA $7EA271,X C3/A5E6: E8 INX C3/A5E7: E8 INX C3/A5E8: 9F71A27E STA $7EA271,X C3/A5EC: E8 INX C3/A5ED: E8 INX C3/A5EE: E04002 CPX #$0240 C3/A5F1: D0EF BNE $A5E2 C3/A5F3: E220 SEP #$20 (8 bit memory/accum.) C3/A5F5: 60 RTS
C3/A5F6 unknow
C3/A5F6: 2000A6 JSR $A600 C3/A5F9: A901 LDA #$01 C3/A5FB: 1445 TRB $45 C3/A5FD: 4CAC14 JMP $14AC
C3/A600 unknow
C3/A600: 841B STY $1B C3/A602: A071A2 LDY #$A271 C3/A605: 841D STY $1D C3/A607: A02001 LDY #$0120 C3/A60A: 8419 STY $19 C3/A60C: A97E LDA #$7E C3/A60E: 851F STA $1F C3/A610: 60 RTS
C3/A611 unknow
C3/A611: A24978 LDX #$7849 C3/A614: 86EB STX $EB C3/A616: A97E LDA #$7E C3/A618: 85ED STA $ED C3/A61A: A09805 LDY #$0598 C3/A61D: 84E7 STY $E7 C3/A61F: A08005 LDY #$0580 C3/A622: A21024 LDX #$2410 C3/A625: 86E0 STX $E0 C3/A627: 2083A7 JSR $A783 C3/A62A: A0D805 LDY #$05D8 C3/A62D: 84E7 STY $E7 C3/A62F: A0C005 LDY #$05C0 C3/A632: A21124 LDX #$2411 C3/A635: 86E0 STX $E0 C3/A637: 2083A7 JSR $A783 (JMP fool!) C3/A63A: 60 RTS
C3/A63B unknow
C3/A63B: 20DEA5 JSR $A5DE C3/A63E: 648D STZ $8D C3/A640: 64ED STZ $ED C3/A642: 64EE STZ $EE C3/A644: A906 LDA #$06 C3/A646: 85F1 STA $F1 C3/A648: A600 LDX $00 C3/A64A: BF899E7E LDA $7E9E89,X C3/A64E: 20A9A8 JSR $A8A9 C3/A651: DA PHX C3/A652: 20B1A8 JSR $A8B1 C3/A655: FA PLX C3/A656: E8 INX C3/A657: C6F1 DEC $F1 C3/A659: D0EF BNE $A64A C3/A65B: A08020 LDY #$2080 C3/A65E: 2000A6 JSR $A600 (BRA fool!) C3/A661: 60 RTS
C3/A662 unknow
C3/A662: A24980 LDX #$8049 C3/A665: 86EB STX $EB C3/A667: A97E LDA #$7E C3/A669: 85ED STA $ED C3/A66B: A0BC00 LDY #$00BC C3/A66E: 84E7 STY $E7 C3/A670: A08400 LDY #$0084 C3/A673: A20035 LDX #$3500 C3/A676: 86E0 STX $E0 C3/A678: 2083A7 JSR $A783 C3/A67B: A0FC00 LDY #$00FC C3/A67E: 84E7 STY $E7 C3/A680: A0C400 LDY #$00C4 C3/A683: A20135 LDX #$3501 C3/A686: 86E0 STX $E0 C3/A688: 2083A7 JSR $A783 C3/A68B: A03C01 LDY #$013C C3/A68E: 84E7 STY $E7 C3/A690: A00401 LDY #$0104 C3/A693: A23835 LDX #$3538 C3/A696: 86E0 STX $E0 C3/A698: 2083A7 JSR $A783 C3/A69B: A07C01 LDY #$017C C3/A69E: 84E7 STY $E7 C3/A6A0: A04401 LDY #$0144 C3/A6A3: A23935 LDX #$3539 C3/A6A6: 86E0 STX $E0 C3/A6A8: 4C83A7 JMP $A783
C3/A6AB unknow
C3/A6AB: A24978 LDX #$7849 C3/A6AE: 86EB STX $EB C3/A6B0: A97E LDA #$7E C3/A6B2: 85ED STA $ED C3/A6B4: A0BC01 LDY #$01BC C3/A6B7: 84E7 STY $E7 C3/A6B9: A08401 LDY #$0184 C3/A6BC: A20035 LDX #$3500 C3/A6BF: 86E0 STX $E0 C3/A6C1: 2083A7 JSR $A783 C3/A6C4: A0FC01 LDY #$01FC C3/A6C7: 84E7 STY $E7 C3/A6C9: A0C401 LDY #$01C4 C3/A6CC: A20135 LDX #$3501 C3/A6CF: 86E0 STX $E0 C3/A6D1: 2083A7 JSR $A783 C3/A6D4: A03C02 LDY #$023C C3/A6D7: 84E7 STY $E7 C3/A6D9: A00402 LDY #$0204 C3/A6DC: A23835 LDX #$3538 C3/A6DF: 86E0 STX $E0 C3/A6E1: 2083A7 JSR $A783 C3/A6E4: A07C02 LDY #$027C C3/A6E7: 84E7 STY $E7 C3/A6E9: A04402 LDY #$0244 C3/A6EC: A23935 LDX #$3539 C3/A6EF: 86E0 STX $E0 C3/A6F1: 4C83A7 JMP $A783
C3/A6F4 unknow
C3/A6F4: A24978 LDX #$7849 C3/A6F7: 86EB STX $EB C3/A6F9: A97E LDA #$7E C3/A6FB: 85ED STA $ED C3/A6FD: A0BC04 LDY #$04BC C3/A700: 84E7 STY $E7 C3/A702: A08404 LDY #$0484 C3/A705: A20035 LDX #$3500 C3/A708: 86E0 STX $E0 C3/A70A: 2083A7 JSR $A783 C3/A70D: A0FC04 LDY #$04FC C3/A710: 84E7 STY $E7 C3/A712: A0C404 LDY #$04C4 C3/A715: A20135 LDX #$3501 C3/A718: 86E0 STX $E0 C3/A71A: 2083A7 JSR $A783 C3/A71D: A03C05 LDY #$053C C3/A720: 84E7 STY $E7 C3/A722: A00405 LDY #$0504 C3/A725: A23835 LDX #$3538 C3/A728: 86E0 STX $E0 C3/A72A: 2083A7 JSR $A783 C3/A72D: A07C05 LDY #$057C C3/A730: 84E7 STY $E7 C3/A732: A04405 LDY #$0544 C3/A735: A23935 LDX #$3539 C3/A738: 86E0 STX $E0 C3/A73A: 4C83A7 JMP $A783
C3/A73D unknow
C3/A73D: A24978 LDX #$7849 C3/A740: 86EB STX $EB C3/A742: A97E LDA #$7E C3/A744: 85ED STA $ED C3/A746: A0BC01 LDY #$01BC C3/A749: 84E7 STY $E7 C3/A74B: A08401 LDY #$0184 C3/A74E: A20035 LDX #$3500 C3/A751: 86E0 STX $E0 C3/A753: 2083A7 JSR $A783 C3/A756: A0FC01 LDY #$01FC C3/A759: 84E7 STY $E7 C3/A75B: A0C401 LDY #$01C4 C3/A75E: A20135 LDX #$3501 C3/A761: 86E0 STX $E0 C3/A763: 2083A7 JSR $A783 C3/A766: A03C02 LDY #$023C C3/A769: 84E7 STY $E7 C3/A76B: A00402 LDY #$0204 C3/A76E: A23835 LDX #$3538 C3/A771: 86E0 STX $E0 C3/A773: 2083A7 JSR $A783 C3/A776: A07C02 LDY #$027C C3/A779: 84E7 STY $E7 C3/A77B: A04402 LDY #$0244 C3/A77E: A23935 LDX #$3539 C3/A781: 86E0 STX $E0 C3/A783: C220 REP #$20 (16 bit memory/accum.) C3/A785: A5E0 LDA $E0 C3/A787: 97EB STA [$EB],Y C3/A789: E6E0 INC $E0 C3/A78B: E6E0 INC $E0 C3/A78D: C8 INY C3/A78E: C8 INY C3/A78F: C4E7 CPY $E7 C3/A791: D0F2 BNE $A785 C3/A793: E220 SEP #$20 (8 bit memory/accum.) C3/A795: 60 RTS
C3/A796 unknow
This is clearing out a lot of RAM... C3/A796: 8B PHB C3/A797: A97E LDA #$7E C3/A799: 48 PHA C3/A79A: AB PLB (Set bank to 7E) C3/A79B: 7B TDC C3/A79C: AA TAX C3/A79D: C220 REP #$20 (16 bit memory/accum.) C3/A79F: 9E71A2 STZ $A271,X C3/A7A2: 9E73A2 STZ $A273,X C3/A7A5: 9E75A2 STZ $A275,X C3/A7A8: 9E77A2 STZ $A277,X C3/A7AB: 9E79A2 STZ $A279,X C3/A7AE: 9E7BA2 STZ $A27B,X C3/A7B1: 9E7DA2 STZ $A27D,X C3/A7B4: 9E7FA2 STZ $A27F,X C3/A7B7: 9E81A2 STZ $A281,X C3/A7BA: 9E83A2 STZ $A283,X C3/A7BD: 9E85A2 STZ $A285,X C3/A7C0: 9E87A2 STZ $A287,X C3/A7C3: 9E89A2 STZ $A289,X C3/A7C6: 9E8BA2 STZ $A28B,X C3/A7C9: 9E8DA2 STZ $A28D,X C3/A7CC: 9E8FA2 STZ $A28F,X C3/A7CF: 9E91A2 STZ $A291,X C3/A7D2: 9E93A2 STZ $A293,X C3/A7D5: 9E95A2 STZ $A295,X C3/A7D8: 9E97A2 STZ $A297,X C3/A7DB: 9E99A2 STZ $A299,X C3/A7DE: 9E9BA2 STZ $A29B,X C3/A7E1: 9E9DA2 STZ $A29D,X C3/A7E4: 9E9FA2 STZ $A29F,X C3/A7E7: 9EA1A2 STZ $A2A1,X C3/A7EA: 9EA3A2 STZ $A2A3,X C3/A7ED: 9EA5A2 STZ $A2A5,X C3/A7F0: 9EA7A2 STZ $A2A7,X C3/A7F3: 9EA9A2 STZ $A2A9,X C3/A7F6: 9EABA2 STZ $A2AB,X C3/A7F9: 9EADA2 STZ $A2AD,X C3/A7FC: 9EAFA2 STZ $A2AF,X C3/A7FF: 8A TXA C3/A800: 18 CLC C3/A801: 694000 ADC #$0040 C3/A804: AA TAX C3/A805: E00007 CPX #$0700 C3/A808: D095 BNE $A79F C3/A80A: E220 SEP #$20 (8 bit memory/accum.) C3/A80C: AB PLB C3/A80D: 60 RTS
C3/A80E code and table jump
C3/A80E: AA TAX C3/A80F: 7C12A8 JMP ($A812,X) C3/A812: 18A8 C3/A814: 2FA8 C3/A816: 1BA8
C3/A818 unknow
C3/A818: 2096A7 JSR $A796 C3/A81B: 648D STZ $8D C3/A81D: A62D LDX $2D C3/A81F: A901 LDA #$01 C3/A821: 9D4936 STA $3649,X (execute the second entry in this queue's jump table) C3/A824: 7B TDC C3/A825: C220 REP #$20 (16 bit memory/accum.) C3/A827: 9DCA33 STA $33CA,X C3/A82A: 9D4A34 STA $344A,X C3/A82D: E220 SEP #$20 (8 bit memory/accum.) C3/A82F: A526 LDA $26 C3/A831: C917 CMP #$17 C3/A833: F058 BEQ $A88D C3/A835: A546 LDA $46 C3/A837: 29C0 AND #$C0 C3/A839: F006 BEQ $A841 C3/A83B: A506 LDA $06 C3/A83D: 2930 AND #$30 C3/A83F: D054 BNE $A895 C3/A841: A545 LDA $45 C3/A843: 8920 BIT #$20 C3/A845: D006 BNE $A84D C3/A847: A507 LDA $07 C3/A849: 290F AND #$0F C3/A84B: D048 BNE $A895 C3/A84D: A545 LDA $45 C3/A84F: 8910 BIT #$10 C3/A851: D042 BNE $A895 C3/A853: A42D LDY $2D C3/A855: BE4A34 LDX $344A,Y C3/A858: 86ED STX $ED C3/A85A: BECA33 LDX $33CA,Y C3/A85D: BFC99E7E LDA $7E9EC9,X C3/A861: F039 BEQ $A89C C3/A863: C901 CMP #$01 C3/A865: D00E BNE $A875 C3/A867: 648D STZ $8D C3/A869: C220 REP #$20 (16 bit memory/accum.) C3/A86B: A98003 LDA #$0380 C3/A86E: 994A34 STA $344A,Y C3/A871: E220 SEP #$20 (8 bit memory/accum.) C3/A873: 8008 BRA $A87D C3/A875: 20A9A8 JSR $A8A9 C3/A878: DA PHX C3/A879: 20B1A8 JSR $A8B1 C3/A87C: FA PLX C3/A87D: E8 INX C3/A87E: A42D LDY $2D C3/A880: C220 REP #$20 (16 bit memory/accum.) C3/A882: 8A TXA C3/A883: 99CA33 STA $33CA,Y C3/A886: E220 SEP #$20 (8 bit memory/accum.) C3/A888: 2091A9 JSR $A991 C3/A88B: 38 SEC (not done with this queue yet) C3/A88C: 60 RTS
C3/A88D unknow
C3/A88D: 2096A7 JSR $A796 C3/A890: 2091A9 JSR $A991 C3/A893: 18 CLC C3/A894: 60 RTS
C3/A895 unknow
C3/A895: A62D LDX $2D C3/A897: 9E4936 STZ $3649,X (execute the first entry in this queue's jump table) C3/A89A: 38 SEC (not done with this queue yet) C3/A89B: 60 RTS
C3/A89C unknow
C3/A89C: A901 LDA #$01 C3/A89E: 0445 TSB $45 C3/A8A0: A62D LDX $2D C3/A8A2: A902 LDA #$02 C3/A8A4: 9D4936 STA $3649,X (execute the third entry in this queue's jump table) C3/A8A7: 38 SEC C3/A8A8: 60 RTS
C3/A8A9 unknow
C3/A8A9: 38 SEC C3/A8AA: E980 SBC #$80 C3/A8AC: 64EB STZ $EB C3/A8AE: 64EC STZ $EC C3/A8B0: 60 RTS
C3/A8B1 unknow
C3/A8B1: 48 PHA C3/A8B2: 8F024200 STA $004202 C3/A8B6: A916 LDA #$16 C3/A8B8: 8F034200 STA $004203 C3/A8BC: A90B LDA #$0B C3/A8BE: 85E5 STA $E5 C3/A8C0: C220 REP #$20 (16 bit memory/accum.) C3/A8C2: AF164200 LDA $004216 C3/A8C6: 18 CLC C3/A8C7: 65EB ADC $EB C3/A8C9: A8 TAY C3/A8CA: E220 SEP #$20 (8 bit memory/accum.) C3/A8CC: 7B TDC C3/A8CD: A58D LDA $8D C3/A8CF: 29F8 AND #$F8 C3/A8D1: C220 REP #$20 (16 bit memory/accum.) C3/A8D3: 0A ASL A C3/A8D4: 0A ASL A C3/A8D5: 18 CLC C3/A8D6: 65ED ADC $ED C3/A8D8: AA TAX C3/A8D9: DA PHX C3/A8DA: C220 REP #$20 (16 bit memory/accum.) C3/A8DC: BB TYX C3/A8DD: BFC090C4 LDA $C490C0,X (get our VWF) C3/A8E1: 64E7 STZ $E7 C3/A8E3: 64E9 STZ $E9 C3/A8E5: 85E8 STA $E8 C3/A8E7: 204FA9 JSR $A94F C3/A8EA: FA PLX C3/A8EB: A5E7 LDA $E7 C3/A8ED: E220 SEP #$20 (8 bit memory/accum.) C3/A8EF: 1FB9A27E ORA $7EA2B9,X C3/A8F3: 9FB9A27E STA $7EA2B9,X C3/A8F7: C220 REP #$20 (16 bit memory/accum.) C3/A8F9: 4A LSR A C3/A8FA: E220 SEP #$20 (8 bit memory/accum.) C3/A8FC: 1FBCA27E ORA $7EA2BC,X C3/A900: 9FBCA27E STA $7EA2BC,X C3/A904: C220 REP #$20 (16 bit memory/accum.) C3/A906: A5E8 LDA $E8 C3/A908: E220 SEP #$20 (8 bit memory/accum.) C3/A90A: 1F99A27E ORA $7EA299,X C3/A90E: 9F99A27E STA $7EA299,X C3/A912: C220 REP #$20 (16 bit memory/accum.) C3/A914: 4A LSR A C3/A915: E220 SEP #$20 (8 bit memory/accum.) C3/A917: 1F9CA27E ORA $7EA29C,X C3/A91B: 9F9CA27E STA $7EA29C,X C3/A91F: C220 REP #$20 (16 bit memory/accum.) C3/A921: A5E8 LDA $E8 C3/A923: E220 SEP #$20 (8 bit memory/accum.) C3/A925: EB XBA C3/A926: 1F79A27E ORA $7EA279,X C3/A92A: 9F79A27E STA $7EA279,X C3/A92E: 4A LSR A C3/A92F: 1F7CA27E ORA $7EA27C,X C3/A933: 9F7CA27E STA $7EA27C,X C3/A937: E8 INX C3/A938: E8 INX C3/A939: C8 INY C3/A93A: C8 INY C3/A93B: C6E5 DEC $E5 C3/A93D: D09A BNE $A8D9 C3/A93F: 7B TDC C3/A940: 68 PLA C3/A941: 18 CLC C3/A942: 6920 ADC #$20 C3/A944: AA TAX C3/A945: A58D LDA $8D C3/A947: 18 CLC C3/A948: 7FC08FC4 ADC $C48FC0,X C3/A94C: 858D STA $8D C3/A94E: 60 RTS
C3/A94F unknow
C3/A94F: E220 SEP #$20 (8 bit memory/accum.) C3/A951: 7B TDC C3/A952: A58D LDA $8D C3/A954: 2907 AND #$07 C3/A956: 0A ASL A C3/A957: AA TAX C3/A958: C220 REP #$20 (16 bit memory/accum.) C3/A95A: 7C5DA9 JMP ($A95D,X)
C3/A95D pointers
C3/A95D: 6FA9 C3/A95F: 73A9 C3/A961: 77A9 C3/A963: 7BA9 C3/A965: 7FA9 C3/A967: 8CA9 C3/A969: 88A9 C3/A96B: 84A9 C3/A96D: 80A9
C3/A96F unknow
C3/A96F: 06E7 ASL $E7 C3/A971: 26E9 ROL $E9 C3/A973: 06E7 ASL $E7 C3/A975: 26E9 ROL $E9 C3/A977: 06E7 ASL $E7 C3/A979: 26E9 ROL $E9 C3/A97B: 06E7 ASL $E7 C3/A97D: 26E9 ROL $E9 C3/A97F: 60 RTS
C3/A980 unknow
C3/A980: 46E9 LSR $E9 C3/A982: 66E7 ROR $E7 C3/A984: 46E9 LSR $E9 C3/A986: 66E7 ROR $E7 C3/A988: 46E9 LSR $E9 C3/A98A: 66E7 ROR $E7 C3/A98C: 46E9 LSR $E9 C3/A98E: 66E7 ROR $E7 C3/A990: 60 RTS
C3/A991 unknow
C3/A991: A00068 LDY #$6800 C3/A994: 841B STY $1B C3/A996: A071A2 LDY #$A271 C3/A999: 841D STY $1D C3/A99B: A00007 LDY #$0700 C3/A99E: 8419 STY $19 C3/A9A0: A97E LDA #$7E C3/A9A2: 851F STA $1F C3/A9A4: A901 LDA #$01 C3/A9A6: 1445 TRB $45 C3/A9A8: 60 RTS
C3/A9A9 unknow
C3/A9A9: A600 LDX $00 C3/A9AB: BF0EE9D8 LDA $D8E90E,X C3/A9AF: 9FC99E7E STA $7E9EC9,X C3/A9B3: E8 INX C3/A9B4: E00900 CPX #$0009 C3/A9B7: D0F2 BNE $A9AB C3/A9B9: A0006C LDY #$6C00 C3/A9BC: 84F1 STY $F1 C3/A9BE: 7B TDC C3/A9BF: AA TAX C3/A9C0: BFC99E7E LDA $7E9EC9,X C3/A9C4: F01C BEQ $A9E2 C3/A9C6: 20A9A8 JSR $A8A9 C3/A9C9: DA PHX C3/A9CA: 20E5A9 JSR $A9E5 C3/A9CD: FA PLX C3/A9CE: E8 INX C3/A9CF: A4F1 LDY $F1 C3/A9D1: 20F6A5 JSR $A5F6 C3/A9D4: C220 REP #$20 (16 bit memory/accum.) C3/A9D6: A5F1 LDA $F1 C3/A9D8: 18 CLC C3/A9D9: 692000 ADC #$0020 C3/A9DC: 85F1 STA $F1 C3/A9DE: E220 SEP #$20 (8 bit memory/accum.) C3/A9E0: 80DE BRA $A9C0 C3/A9E2: 4C890F JMP $0F89
C3/A9E5 unknow
C3/A9E5: 48 PHA C3/A9E6: A04000 LDY #$0040 C3/A9E9: 84F3 STY $F3 C3/A9EB: 2037B4 JSR $B437 C3/A9EE: 648D STZ $8D C3/A9F0: 64ED STZ $ED C3/A9F2: 64EE STZ $EE C3/A9F4: 68 PLA C3/A9F5: 4CB1A8 JMP $A8B1
C3/A9F8 initiate final battle setup screen
DP $26 is #$73 - initiate final battle setup screen C3/A9F8: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/A9FB: 200469 JSR $6904 (zero some DP) C3/A9FE: A902 LDA #$02 C3/AA00: 8546 STA $46 C3/AA02: 2054AC JSR $AC54 (hotspot data for final battle setup) C3/AA05: 205DAC JSR $AC5D (finger positioning) C3/AA08: 20B007 JSR $07B0 (finger OAM initiating) C3/AA0B: 20EEAA JSR $AAEE C3/AA0E: 20FDAA JSR $AAFD C3/AA11: 2013AB JSR $AB13 C3/AA14: 209794 JSR $9497 (setup HDMA transfers?) C3/AA17: A974 LDA #$74 C3/AA19: 8527 STA $27 (queue up to execute at C3/AA25) C3/AA1B: A901 LDA #$01 C3/AA1D: 8526 STA $26 (transition to above) C3/AA1F: 20FD0E JSR $0EFD (setup DMA transfers?) C3/AA22: 4C4135 JMP $3541
C3/AA25 sustain final battle setup screen
DP $26 is #$74 - sustain the final battle setup screen C3/AA25: 2089AB JSR $AB89 (display character names?) C3/AA28: 20B4AB JSR $ABB4 C3/AA2B: 205AAC JSR $AC5A (moving the finger) C3/AA2E: 20FD0E JSR $0EFD (setup DMA transfers?) C3/AA31: A509 LDA $09 C3/AA33: 8980 BIT #$80 (did you press B?) C3/AA35: F02C BEQ $AA63 (branch if not, BPL...) C3/AA37: 20A90E JSR $0EA9 (moving finger sound effect) C3/AA3A: A54A LDA $4A C3/AA3C: F068 BEQ $AAA6 C3/AA3E: C64A DEC $4A C3/AA40: 7B TDC C3/AA41: A54A LDA $4A C3/AA43: AA TAX C3/AA44: BD0502 LDA $0205,X C3/AA47: 48 PHA C3/AA48: A9FF LDA #$FF C3/AA4A: 9D0502 STA $0205,X C3/AA4D: A600 LDX $00 C3/AA4F: 68 PLA C3/AA50: DF8A9D7E CMP $7E9D8A,X C3/AA54: F006 BEQ $AA5C C3/AA56: E8 INX C3/AA57: E00C00 CPX #$000C C3/AA5A: D0F4 BNE $AA50 C3/AA5C: A920 LDA #$20 C3/AA5E: 9F8DAA7E STA $7EAA8D,X C3/AA62: 60 RTS
C3/AA63 unknow
C3/AA63: A509 LDA $09 C3/AA65: 8910 BIT #$10 (did you press start?) C3/AA67: D030 BNE $AA99 (branch if so) C3/AA69: A508 LDA $08 C3/AA6B: 8980 BIT #$80 (did you press A?) C3/AA6D: F037 BEQ $AAA6 (branch if not, BPL...) C3/AA6F: 20B20E JSR $0EB2 (makes the click sound) C3/AA72: 7B TDC C3/AA73: A54B LDA $4B C3/AA75: F030 BEQ $AAA7 (branch if on "Reset") C3/AA77: C90D CMP #$0D (are we on "End?") C3/AA79: F01E BEQ $AA99 (branch if so) C3/AA7B: AA TAX C3/AA7C: BF899D7E LDA $7E9D89,X (load position) C3/AA80: 3024 BMI $AAA6 (branch if nobody is in this slot) C3/AA82: 7B TDC C3/AA83: A54B LDA $4B C3/AA85: 3A DEC A C3/AA86: AA TAX C3/AA87: BF8DAA7E LDA $7EAA8D,X (load character in this position) C3/AA8B: C920 CMP #$20 (available, IOW hasn't been chosen yet?) C3/AA8D: D017 BNE $AAA6 (branch if not) C3/AA8F: 20B2AA JSR $AAB2 C3/AA92: A54A LDA $4A C3/AA94: C90C CMP #$0C C3/AA96: F015 BEQ $AAAD C3/AA98: 60 RTS
C3/AA99 unknow
C3/AA99: 20B20E JSR $0EB2 (makes the click sound) C3/AA9C: 20CAAA JSR $AACA C3/AA9F: A9FF LDA #$FF C3/AAA1: 8527 STA $27 C3/AAA3: 6426 STZ $26 (exit the menu) C3/AAA5: 60 RTS C3/AAA6: 60 RTS (no need for this)
C3/AAA7 unknow
C3/AAA7: 20FDAA JSR $AAFD (remove all selections) C3/AAAA: E64E INC $4E C3/AAAC: 60 RTS
C3/AAAD unknow
C3/AAAD: A90D LDA #$0D C3/AAAF: 854E STA $4E C3/AAB1: 60 RTS
C3/AAB2 unknow
C3/AAB2: 7B TDC C3/AAB3: A54A LDA $4A C3/AAB5: A8 TAY C3/AAB6: A54B LDA $4B C3/AAB8: AA TAX C3/AAB9: A928 LDA #$28 C3/AABB: 9F8CAA7E STA $7EAA8C,X C3/AABF: BF899D7E LDA $7E9D89,X C3/AAC3: BB TYX C3/AAC4: 9D0502 STA $0205,X C3/AAC7: E64A INC $4A C3/AAC9: 60 RTS
C3/AACA unknow
C3/AACA: A54A LDA $4A C3/AACC: C90C CMP #$0C C3/AACE: F01D BEQ $AAED C3/AAD0: 7B TDC C3/AAD1: AA TAX C3/AAD2: BF8DAA7E LDA $7EAA8D,X (Load inventory item, index X) C3/AAD6: C920 CMP #$20 C3/AAD8: D00D BNE $AAE7 C3/AADA: 7B TDC C3/AADB: A54A LDA $4A C3/AADD: A8 TAY C3/AADE: BF8A9D7E LDA $7E9D8A,X C3/AAE2: 990502 STA $0205,Y C3/AAE5: E64A INC $4A C3/AAE7: E8 INX C3/AAE8: E00C00 CPX #$000C C3/AAEB: D0E5 BNE $AAD2 C3/AAED: 60 RTS
C3/AAEE unknow
C3/AAEE: 7B TDC C3/AAEF: AA TAX C3/AAF0: A9FF LDA #$FF C3/AAF2: 9F899D7E STA $7E9D89,X C3/AAF6: E8 INX C3/AAF7: E01000 CPX #$0010 C3/AAFA: D0F4 BNE $AAF0 C3/AAFC: 60 RTS
C3/AAFD unknow
C3/AAFD: 7B TDC C3/AAFE: AA TAX C3/AAFF: A9FF LDA #$FF C3/AB01: 9D0502 STA $0205,X C3/AB04: A920 LDA #$20 C3/AB06: 9F8DAA7E STA $7EAA8D,X C3/AB0A: E8 INX C3/AB0B: E00C00 CPX #$000C C3/AB0E: D0EF BNE $AAFF C3/AB10: 644A STZ $4A C3/AB12: 60 RTS
C3/AB13 unknow
C3/AB13: A902 LDA #$02 C3/AB15: 8D0721 STA $2107 C3/AB18: A049AB LDY #$AB49 C3/AB1B: 204103 JSR $0341 (draw window that holds the final battle setup) C3/AB1E: 20520E JSR $0E52 (setup DMA transfers?) C3/AB21: 203C6A JSR $6A3C C3/AB24: 206E0E JSR $0E6E (setup DMA transfers?) C3/AB27: 20156A JSR $6A15 C3/AB2A: 20196A JSR $6A19 C3/AB2D: A920 LDA #$20 C3/AB2F: 8529 STA $29 (set text color to white) C3/AB31: A284AC LDX #$AC84 C3/AB34: A00600 LDY #$0006 C3/AB37: 20BA69 JSR $69BA ("End," "Reset," Determine order") C3/AB3A: 2019AC JSR $AC19 C3/AB3D: 204DAB JSR $AB4D C3/AB40: 2089AB JSR $AB89 C3/AB43: 20280E JSR $0E28 (setup DMA transfers?) C3/AB46: 4C360E JMP $0E36 (setup DMA transfers?)
C3/AB49 data: window
C3/AB49: 8B581C18 (window that holds the final battle setup)
C3/AB4D unknow
C3/AB4D: 64E6 STZ $64 C3/AB4E: 7B TDC C3/AB50: AA TAX C3/AB51: DA PHX C3/AB52: BD5018 LDA $1850,X C3/AB55: 2940 AND #$40 C3/AB57: F028 BEQ $AB81 C3/AB59: BD5018 LDA $1850,X C3/AB5C: 2907 AND #$07 C3/AB5E: F021 BEQ $AB81 C3/AB60: 86E7 STX $E7 C3/AB62: C220 REP #$20 (16 bit memory/accum.) C3/AB64: 8A TXA C3/AB65: 0A ASL A C3/AB66: AA TAX C3/AB67: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/AB6B: A8 TAY C3/AB6C: E220 SEP #$20 (8 bit memory/accum.) C3/AB6E: B90000 LDA $0000,Y C3/AB71: C90E CMP #$0E (Is it Leo or higher ??) C3/AB73: B00C BCS $AB81 C3/AB75: 7B TDC C3/AB76: A5E6 LDA $E6 C3/AB78: AA TAX C3/AB79: A5E7 LDA $E7 C3/AB7B: 9F8A9D7E STA $7E9D8A,X C3/AB7F: E6E6 INC $E6 C3/AB81: FA PLX C3/AB82: E8 INX C3/AB83: E01000 CPX #$0010 C3/AB86: D0C9 BNE $AB51 C3/AB88: 60 RTS
C3/AB89 unknow
C3/AB89: A0153A LDY #$3A15 C3/AB8C: 84F5 STY $F5 C3/AB8E: 7B TDC C3/AB8F: AA TAX C3/AB90: 20DCAB JSR $ABDC C3/AB93: DA PHX C3/AB94: 7B TDC C3/AB95: BF8DAA7E LDA $7EAA8D,X (Load inventory, index X) C3/AB99: 8529 STA $29 C3/AB9B: BF8A9D7E LDA $7E9D8A,X C3/AB9F: 3005 BMI $ABA6 C3/ABA1: 20F0AB JSR $ABF0 (display the character name) C3/ABA4: 8003 BRA $ABA9 C3/ABA6: 200BAC JSR $AC0B (no character, so display a blank name) C3/ABA9: 20FEAB JSR $ABFE C3/ABAC: FA PLX C3/ABAD: E8 INX C3/ABAE: E00C00 CPX #$000C C3/ABB1: D0DD BNE $AB90 (branch if we haven't done 12 characters) C3/ABB3: 60 RTS
C3/ABB4 unknow
C3/ABB4: A920 LDA #$20 C3/ABB6: 8529 STA $29 C3/ABB8: A0313A LDY #$3A31 C3/ABBB: 84F5 STY $F5 C3/ABBD: 7B TDC C3/ABBE: AA TAX C3/ABBF: 20DCAB JSR $ABDC C3/ABC2: DA PHX C3/ABC3: 7B TDC C3/ABC4: BD0502 LDA $0205,X C3/ABC7: 3005 BMI $ABCE C3/ABC9: 20F0AB JSR $ABF0 C3/ABCC: 8003 BRA $ABD1 C3/ABCE: 200BAC JSR $AC0B (no character, so display a blank name) C3/ABD1: 20FEAB JSR $ABFE C3/ABD4: FA PLX C3/ABD5: E8 INX C3/ABD6: E00C00 CPX #$000C C3/ABD9: D0E4 BNE $ABBF (branch if we haven't done 12 characters) C3/ABDB: 60 RTS
C3/ABDC unknow
C3/ABDC: A0899E LDY #$9E89 C3/ABDF: 8C8121 STY $2181 C3/ABE2: C220 REP #$20 (16 bit memory/accum.) C3/ABE4: A5F5 LDA $F5 C3/ABE6: E220 SEP #$20 (8 bit memory/accum.) C3/ABE8: 8D8021 STA $2180 C3/ABEB: EB XBA C3/ABEC: 8D8021 STA $2180 C3/ABEF: 60 RTS
C3/ABF0 unknow
C3/ABF0: 0A ASL A C3/ABF1: C220 REP #$20 (16 bit memory/accum.) C3/ABF3: AA TAX C3/ABF4: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/ABF8: A8 TAY C3/ABF9: E220 SEP #$20 (8 bit memory/accum.) C3/ABFB: 4CD234 JMP $34D2
C3/ABFE unknow
C3/ABFE: C220 REP #$20 (16 bit memory/accum.) C3/AC00: A5F5 LDA $F5 C3/AC02: 18 CLC C3/AC03: 698000 ADC #$0080 C3/AC06: 85F5 STA $F5 C3/AC08: E220 SEP #$20 (8 bit memory/accum.) C3/AC0A: 60 RTS
C3/AC0B unknow
C3/AC0B: A20600 LDX #$0006 C3/AC0E: A9FF LDA #$FF C3/AC10: 8D8021 STA $2180 (blank character's name if nobody there) C3/AC13: CA DEX C3/AC14: D0FA BNE $AC10 C3/AC16: 4CD97F JMP $7FD9
C3/AC19 unknow
C3/AC19: A901 LDA #$01 C3/AC1B: 85E6 STA $E6 C3/AC1D: A00F3A LDY #$3A0F C3/AC20: 84F5 STY $F5 C3/AC22: A20C00 LDX #$000C C3/AC25: 86F1 STX $F1 C3/AC27: 203BAC JSR $AC3B C3/AC2A: A901 LDA #$01 C3/AC2C: 85E6 STA $E6 C3/AC2E: A02B3A LDY #$3A2B C3/AC31: 84F5 STY $F5 C3/AC33: A20C00 LDX #$000C C3/AC36: 86F1 STX $F1 C3/AC38: 4C3BAC JMP $AC3B (...)
C3/AC3B unknow
C3/AC3B: 7B TDC C3/AC3C: AA TAX C3/AC3D: DA PHX C3/AC3E: A5E6 LDA $E6 C3/AC40: 20E004 JSR $04E0 C3/AC43: A6F5 LDX $F5 C3/AC45: 20B604 JSR $04B6 C3/AC48: E6E6 INC $E6 C3/AC4A: 20FEAB JSR $ABFE C3/AC4D: FA PLX C3/AC4E: E8 INX C3/AC4F: E4F1 CPX $F1 C3/AC51: D0EA BNE $AC3D C3/AC53: 60 RTS
C3/AC54 unknow
C3/AC54: A063AC LDY #$AC63 C3/AC57: 4CFE05 JMP $05FE
C3/AC5A unknow
C3/AC5A: 202D07 JSR $072D C3/AC5D: A068AC LDY #$AC68 C3/AC60: 4C4006 JMP $0640
C3/AC63 data: hotspot for final battle setup
Hotspot data for final battle setup C3/AC63: 80 00 00 01 0E
C3/AC68 data: finger positions for final battle setup
Finger positioning data for final battle setup C3/AC68: 1020 ("Reset") C3/AC6A: 202C character 1 C3/AC6C: 2038 character 2 C3/AC6E: 2044 character 3 C3/AC70: 2050 character 4 C3/AC72: 205C character 5 C3/AC74: 2068 character 6 C3/AC76: 2074 character 7 C3/AC78: 2080 character 8 C3/AC7A: 208C character 9 C3/AC7C: 2098 character 10 C3/AC7E: 20A4 character 11 C3/AC80: 20B0 character 12 C3/AC82: 10BC ("End")
C3/AC84 unknow
C3/AC84: 8AAC C3/AC86: 90AC C3/AC88: 98AC
C3/AC8A strings
C3/AC8A: 114084A79D00 ("End") C3/AC90: 9139919EAC9EAD00 ("Reset") C3/AC98: 1D39839EAD9EABA6A2A79EFFA8AB9D9EAB00 ("Determine order")
C3/ACAA unknow
C3/ACAA: 9C0102 STZ $0201 (from C3/02BD, the massive jump table; $26 = #$71) C3/ACAD: AD0502 LDA $0205 C3/ACB0: 205E9D JSR $9D5E (Put item into inventory) C3/ACB3: 20E21A JSR $1AE2 C3/ACB6: 20257D JSR $7D25 C3/ACB9: 2027AD JSR $AD27 C3/ACBC: 7B TDC C3/ACBD: 221DCAD4 JSL $D4CA1D (gradient 0 for screen) C3/ACC1: 200E1B JSR $1B0E C3/ACC4: 20993F JSR $3F99 C3/ACC7: A901 LDA #$01 C3/ACC9: 0445 TSB $45 C3/ACCB: 206813 JSR $1368 (trigger NMI) C3/ACCE: A972 LDA #$72 C3/ACD0: 8527 STA $27 (queue up to execute at C3/ACDC) C3/ACD2: A902 LDA #$02 C3/ACD4: 8546 STA $46 C3/ACD6: 20B007 JSR $07B0 (finger OAM initiating) C3/ACD9: 4C4135 JMP $3541
C3/ACDC unknow
C3/ACDC: A910 LDA #$10 C3/ACDE: 1445 TRB $45 C3/ACE0: 642A STZ $2A C3/ACE2: 20FD0E JSR $0EFD C3/ACE5: 20641F JSR $1F64 C3/ACE8: B03C BCS $AD26 C3/ACEA: 20227D JSR $7D22 C3/ACED: 20F182 JSR $82F1 C3/ACF0: A508 LDA $08 C3/ACF2: 8980 BIT #$80 (did you press A?) C3/ACF4: F01E BEQ $AD14 (branch if not, BPL...) C3/ACF6: 7B TDC C3/ACF7: A54B LDA $4B C3/ACF9: AA TAX C3/ACFA: BD6918 LDA $1869,X (Items currently in inventory) C3/ACFD: C9FF CMP #$FF (can't bet nothing) C3/ACFF: F00D BEQ $AD0E (branch if no item) C3/AD01: 8D0502 STA $0205 (store item bet) C3/AD04: 20B20E JSR $0EB2 (makes the click sound) C3/AD07: A975 LDA #$75 C3/AD09: 8527 STA $27 (queue up to execute at C3/ADB7) C3/AD0B: 6426 STZ $26 (fade out) C3/AD0D: 60 RTS
C3/AD0E unknow
C3/AD0E: 20C00E JSR $0EC0 (makes the buzzer sound) C3/AD11: 205D30 JSR $305D (mosaic effect) C3/AD14: A509 LDA $09 C3/AD16: 8980 BIT #$80 (did you press B?) C3/AD18: F00C BEQ $AD26 (branch if not, BPL...) C3/AD1A: 20A90E JSR $0EA9 C3/AD1D: A9FF LDA #$FF C3/AD1F: 8D0502 STA $0205 (store nothing into item bet) C3/AD22: 8527 STA $27 C3/AD24: 6426 STZ $26 C3/AD26: 60 RTS
C3/AD27 unknow
C3/AD27: A901 LDA #$01 C3/AD29: 8D0721 STA $2107 C3/AD2C: A08EAD LDY #$AD8E C3/AD2F: 204103 JSR $0341 (draw window that holds "Select an Item") C3/AD32: A08AAD LDY #$AD8A C3/AD35: 204103 JSR $0341 (draw window that holds "Colosseum") C3/AD38: A092AD LDY #$AD92 C3/AD3B: 204103 JSR $0341 (draw window that holds item descriptions) C3/AD3E: A096AD LDY #$AD96 C3/AD41: 204103 JSR $0341 (draw window that holds items) C3/AD44: 20520E JSR $0E52 C3/AD47: 20416A JSR $6A41 C3/AD4A: 20466A JSR $6A46 C3/AD4D: 204B6A JSR $6A4B C3/AD50: 206EAD JSR $AD6E C3/AD53: 2080AD JSR $AD80 C3/AD56: 20A9A9 JSR $A9A9 C3/AD59: 206E0E JSR $0E6E C3/AD5C: 207C0E JSR $0E7C C3/AD5F: 20196A JSR $6A19 C3/AD62: 200D7E JSR $7E0D C3/AD65: 20F182 JSR $82F1 C3/AD68: 20280E JSR $0E28 C3/AD6B: 4C360E JMP $0E36
C3/AD6E unknow
C3/AD6E: 203C6A JSR $6A3C C3/AD71: A92C LDA #$2C C3/AD73: 8529 STA $29 (set text color to blue) C3/AD75: A09AAD LDY #$AD9A C3/AD78: 20F902 JSR $02F9 (display "Colosseum") C3/AD7B: A920 LDA #$20 C3/AD7D: 8529 STA $29 (set text color to white) C3/AD7F: 60 RTS
C3/AD80 unknow
C3/AD80: 203DA7 JSR $A73D C3/AD83: A0A6AD LDY #$ADA6 C3/AD86: 20F902 JSR $02F9 (display "Select an Item") C3/AD89: 60 RTS
C3/AD8A data: windows
C3/AD8A: 8B580902 (window that holds "Colosseum") C3/AD8E: A1581102 (window that holds "Select an Item") C3/AD92: 8B591C03 (window that holds item descriptions) C3/AD96: CB5A1C0F (window that holds items)
C3/AD9A data: strings
C3/AD9A: 0D7982A8A5A8ACAC9EAEA600 ("Colosseum") C3/ADA6: 2379929EA59E9CADFF9AA7FF88AD9EA600 ("Select an Item")
C3/ADB7 unknow
C3/ADB7: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/ADB8: 6443 STZ $43 C3/ADBC: 20873A JSR $3A87 C3/ADBF: 201569 JSR $6915 C3/ADC2: A902 LDA #$02 C3/ADC4: 221DCAD4 JSL $D4CA1D (gradient 2 for screen) C3/ADC8: 20DC69 JSR $69DC C3/ADCB: 20666A JSR $6A66 C3/ADCE: A902 LDA #$02 C3/ADD0: 8546 STA $46 C3/ADD2: 2023B3 JSR $B323 C3/ADD5: 202CB3 JSR $B32C C3/ADD8: 20B007 JSR $07B0 (finger OAM initiating) C3/ADDB: 2007AE JSR $AE07 C3/ADDE: 20D118 JSR $18D1 C3/ADE1: 2034AE JSR $AE34 C3/ADE4: A901 LDA #$01 C3/ADE6: 0445 TSB $45 C3/ADE8: 20993F JSR $3F99 C3/ADEB: A901 LDA #$01 C3/ADED: A0A5B2 LDY #$B2A5 C3/ADF0: 207311 JSR $1173 (Put C3/B2A5 in the queue) C3/ADF3: A976 LDA #$76 C3/ADF5: 8527 STA $27 (queue up to execute at C3/AE0F) C3/ADF7: A901 LDA #$01 C3/ADF9: 8526 STA $26 (transition to above) C3/ADFB: 200469 JSR $6904 C3/ADFE: 20FD0E JSR $0EFD C3/AE01: 204135 JSR $3541 C3/AE04: 4C390F JMP $0F39
C3/AE07 unknow
C3/AE07: A901 LDA #$01 C3/AE09: A0F3B2 LDY #$B2F3 C3/AE0C: 4C7311 JMP $1173 (Put C3/B2F3 in the queue)
C3/AE0F unknow
C3/AE0F: 20390F JSR $0F39 C3/AE12: 2029B3 JSR $B329 C3/AE15: A508 LDA $08 C3/AE17: 8980 BIT #$80 (did you press A?) C3/AE19: F018 BEQ $AE33 (branch if not, BPL...) C3/AE1B: 20ECB2 JSR $B2EC C3/AE1E: 300D BMI $AE2D C3/AE20: 8D0802 STA $0208 C3/AE23: 20B20E JSR $0EB2 (makes the click sound) C3/AE26: A9FF LDA #$FF C3/AE28: 8527 STA $27 (queue up to exit the menu) C3/AE2A: 6426 STZ $26 (fade out) C3/AE2C: 60 RTS
C3/AE2D unknow
C3/AE2D: 20C00E JSR $0EC0 (makes the buzzer sound) C3/AE30: 205D30 JSR $305D (mosaic effect, also JMP fool!) C3/AE33: 60 RTS
C3/AE34 unknow
C3/AE34: A901 LDA #$01 C3/AE36: 8D0721 STA $2107 C3/AE39: A03FB3 LDY #$B33F C3/AE3C: 204103 JSR $0341 (window that holds item to win) C3/AE3F: A043B3 LDY #$B343 C3/AE42: 204103 JSR $0341 (window that holds item bet) C3/AE45: A047B3 LDY #$B347 C3/AE48: 204103 JSR $0341 (window that holds the foolish challengers that will fight :P) C3/AE4B: 20520E JSR $0E52 C3/AE4E: 203C6A JSR $6A3C C3/AE51: A920 LDA #$20 C3/AE53: 8529 STA $29 (set text color to white) C3/AE55: 207DB1 JSR $B17D C3/AE58: 2097B1 JSR $B197 C3/AE5B: 20B1B1 JSR $B1B1 C3/AE5E: 20CBB1 JSR $B1CB C3/AE61: A00FB4 LDY #$B40F C3/AE64: 20F902 JSR $02F9 ("Select the challenger") C3/AE67: 208DB2 JSR $B28D (draw opponent's name) C3/AE6A: 204DB2 JSR $B24D (draw item bet) C3/AE6D: 2055B2 JSR $B255 (draw item to win or "?????????") C3/AE70: 206E0E JSR $0E6E C3/AE73: A00050 LDY #$5000 C3/AE76: 8C1621 STY $2116 C3/AE79: 200AB1 JSR $B10A C3/AE7C: 20156A JSR $6A15 C3/AE7F: 2093AE JSR $AE93 (determine if Shadow can be fought) C3/AE82: AD0102 LDA $0201 C3/AE85: D006 BNE $AE8D (branch if Shadow is available to fight) C3/AE87: 2000AF JSR $AF00 C3/AE8A: 4C280E JMP $0E28
C3/AE8D unknow
C3/AE8D: 20A7AE JSR $AEA7 C3/AE90: 4C280E JMP $0E28
C3/AE93 unknow
C3/AE93: AD0502 LDA $0205 (load item bet) C3/AE96: C929 CMP #$29 (is it the Striker?) C3/AE98: D00C BNE $AEA6 (branch if not) C3/AE9A: ADBD1E LDA $1EBD C3/AE9D: 2980 AND #$80 (did Shadow leave Thamasa?) C3/AE9F: F005 BEQ $AEA6 (branch if not) C3/AEA1: A901 LDA #$01 C3/AEA3: 8D0102 STA $0201 C3/AEA6: 60 RTS
C3/AEA7 unknow
C3/AEA7: 20D9AE JSR $AED9 C3/AEAA: A902 LDA #$02 C3/AEAC: 0447 TSB $47 C3/AEAE: A902 LDA #$02 C3/AEB0: A05F7A LDY #$7A5F C3/AEB3: 207311 JSR $1173 (put C3/7A5F in the queue) C3/AEB6: A901 LDA #$01 C3/AEB8: 9F49367E STA $7E3649,X C3/AEBC: BF4A367E LDA $7E364A,X C3/AEC0: 0902 ORA #$02 C3/AEC2: 9F4A367E STA $7E364A,X C3/AEC6: 9B TXY C3/AEC7: A938 LDA #$38 C3/AEC9: 85E1 STA $E1 C3/AECB: A968 LDA #$68 C3/AECD: 85E2 STA $E2 C3/AECF: 7B TDC C3/AED0: A903 LDA #$03 C3/AED2: 20FA78 JSR $78FA C3/AED5: 2011B2 JSR $B211 C3/AED8: 60 RTS
C3/AED9 unknow
C3/AED9: 7B TDC C3/AEDA: AA TAX C3/AEDB: 86E7 STX $E7 C3/AEDD: C220 REP #$20 (16 bit memory/accum.) C3/AEDF: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/AEE3: AA TAX C3/AEE4: E220 SEP #$20 (8 bit memory/accum.) C3/AEE6: BD0000 LDA $0000,X C3/AEE9: C903 CMP #$03 C3/AEEB: F00B BEQ $AEF8 (branch if Shadow) C3/AEED: A6E7 LDX $E7 C3/AEEF: E8 INX C3/AEF0: E8 INX C3/AEF1: E02000 CPX #$0020 C3/AEF4: D0E5 BNE $AEDB C3/AEF6: 80FE BRA $AEF6 (!! Let's hope this line never executes!) C3/AEF8: 8667 STX $67 C3/AEFA: A0117C LDY #$7C11 C3/AEFD: 4CCF34 JMP $34CF (display Shadow's name as the monster)
C3/AF00 unknow
C3/AF00: A691 LDX $91 C3/AF02: 86ED STX $ED C3/AF04: A599 LDA $99 C3/AF06: C908 CMP #$08 C3/AF08: F00C BEQ $AF16 C3/AF0A: A21000 LDX #$0010 C3/AF0D: 86F1 STX $F1 C3/AF0F: A21000 LDX #$0010 C3/AF12: 86E0 STX $E0 C3/AF14: 8007 BRA $AF1D C3/AF16: A20800 LDX #$0008 C3/AF19: 86F1 STX $F1 C3/AF1B: 86E0 STX $E0 C3/AF1D: A97E LDA #$7E C3/AF1F: 85EF STA $EF C3/AF21: C220 REP #$20 (16 bit memory/accum.) C3/AF23: A9012C LDA #$2C01 C3/AF26: 85E7 STA $E7 C3/AF28: A6E0 LDX $E0 C3/AF2A: A400 LDY $00 C3/AF2C: A5E7 LDA $E7 C3/AF2E: 97ED STA [$ED],Y C3/AF30: C8 INY C3/AF31: C8 INY C3/AF32: E6E7 INC $E7 C3/AF34: CA DEX C3/AF35: D0F5 BNE $AF2C C3/AF37: A5ED LDA $ED C3/AF39: 18 CLC C3/AF3A: 694000 ADC #$0040 C3/AF3D: 85ED STA $ED C3/AF3F: C6F1 DEC $F1 C3/AF41: D0E5 BNE $AF28 C3/AF43: E220 SEP #$20 (8 bit memory/accum.) C3/AF45: 60 RTS
C3/AF46 Colosseum setup
Colliseum setup? C3/AF46: 202CB2 JSR $B22C (Determine prize and monster based on item bet) C3/AF49: AD0602 LDA $0206 (Monster to fight) C3/AF4C: 8D0242 STA $4202 C3/AF4F: A905 LDA #$05 C3/AF51: 8D0342 STA $4203 C3/AF54: A01050 LDY #$5010 C3/AF57: 8C1621 STY $2116 C3/AF5A: EA NOP C3/AF5B: EA NOP C3/AF5C: AE1642 LDX $4216 C3/AF5F: BF0070D2 LDA $D27000,X (Monster visual specs, byte 1) C3/AF63: 85E7 STA $E7 C3/AF65: BF0170D2 LDA $D27001,X (Monster visual specs, byte 2) C3/AF69: 85E8 STA $E8 C3/AF6B: BF0270D2 LDA $D27002,X (Monster visual specs, byte 3) C3/AF6F: 85F2 STA $F2 C3/AF71: BF0370D2 LDA $D27003,X (Monster visual specs, byte 4) C3/AF75: 85F1 STA $F1 C3/AF77: BF0470D2 LDA $D27004,X (Monster visual specs, byte 5) C3/AF7B: 85E9 STA $E9 C3/AF7D: A5E8 LDA $E8 C3/AF7F: 3004 BMI $AF85 C3/AF81: 64FF STZ $FF C3/AF83: 8008 BRA $AF8D C3/AF85: A901 LDA #$01 C3/AF87: 85FF STA $FF C3/AF89: A980 LDA #$80 C3/AF8B: 14E8 TRB $E8 C3/AF8D: A9E9 LDA #$E9 C3/AF8F: 85F7 STA $F7 C3/AF91: C220 REP #$20 (16 bit memory/accum.) C3/AF93: A90070 LDA #$7000 C3/AF96: 85F5 STA $F5 C3/AF98: A5E7 LDA $E7 C3/AF9A: 85F9 STA $F9 C3/AF9C: 64FB STZ $FB C3/AF9E: 06F9 ASL $F9 C3/AFA0: 26FB ROL $FB C3/AFA2: 06F9 ASL $F9 C3/AFA4: 26FB ROL $FB C3/AFA6: 06F9 ASL $F9 C3/AFA8: 26FB ROL $FB C3/AFAA: 18 CLC C3/AFAB: A5F9 LDA $F9 C3/AFAD: 65F5 ADC $F5 C3/AFAF: 85F5 STA $F5 C3/AFB1: A5FB LDA $FB C3/AFB3: 65F7 ADC $F7 C3/AFB5: 85F7 STA $F7 C3/AFB7: A600 LDX $00 C3/AFB9: E220 SEP #$20 (8 bit memory/accum.) C3/AFBB: A5F2 LDA $F2 C3/AFBD: 3009 BMI $AFC8 C3/AFBF: A020A8 LDY #$A820 C3/AFC2: 84E3 STY $E3 C3/AFC4: A908 LDA #$08 C3/AFC6: 8007 BRA $AFCF C3/AFC8: A022A8 LDY #$A822 C3/AFCB: 84E3 STY $E3 C3/AFCD: A920 LDA #$20 C3/AFCF: 85E6 STA $E6 C3/AFD1: 8599 STA $99 C3/AFD3: A9D2 LDA #$D2 C3/AFD5: 85E5 STA $E5 C3/AFD7: A5F2 LDA $F2 C3/AFD9: 2940 AND #$40 C3/AFDB: 2A ROL A C3/AFDC: 2A ROL A C3/AFDD: 2A ROL A C3/AFDE: 85EA STA $EA C3/AFE0: A5F2 LDA $F2 C3/AFE2: 3009 BMI $AFED C3/AFE4: C220 REP #$20 (16 bit memory/accum.) C3/AFE6: A5E9 LDA $E9 C3/AFE8: 0A ASL A C3/AFE9: 0A ASL A C3/AFEA: 0A ASL A C3/AFEB: 8009 BRA $AFF6 C3/AFED: C220 REP #$20 (16 bit memory/accum.) C3/AFEF: A5E9 LDA $E9 C3/AFF1: 0A ASL A C3/AFF2: 0A ASL A C3/AFF3: 0A ASL A C3/AFF4: 0A ASL A C3/AFF5: 0A ASL A C3/AFF6: 18 CLC C3/AFF7: 67E3 ADC [$E3] C3/AFF9: 85E0 STA $E0 C3/AFFB: E220 SEP #$20 (8 bit memory/accum.) C3/AFFD: A9D2 LDA #$D2 C3/AFFF: 85E2 STA $E2 C3/B001: A00800 LDY #$0008 C3/B004: DA PHX C3/B005: 7B TDC C3/B006: A5E6 LDA $E6 C3/B008: AA TAX C3/B009: A7E0 LDA [$E0] C3/B00B: 9F889D7E STA $7E9D88,X C3/B00F: FA PLX C3/B010: 18 CLC C3/B011: 5A PHY C3/B012: 2A ROL A C3/B013: 48 PHA C3/B014: 9005 BCC $B01B C3/B016: 201EB1 JSR $B11E C3/B019: 8003 BRA $B01E C3/B01B: 200AB1 JSR $B10A C3/B01E: 68 PLA C3/B01F: 7A PLY C3/B020: 88 DEY C3/B021: D0ED BNE $B010 C3/B023: C220 REP #$20 (16 bit memory/accum.) C3/B025: E6E0 INC $E0 C3/B027: E220 SEP #$20 (8 bit memory/accum.) C3/B029: C6E6 DEC $E6 C3/B02B: D0D4 BNE $B001 C3/B02D: 2033B0 JSR $B033 C3/B030: 4C5AB1 JMP $B15A