Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Final Fantasy VI/ROM map/Assembly C3A: Difference between revisions
< Final Fantasy VI | ROM map
Jump to navigation
Jump to search
(clean up) |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{subpage|game=Final Fantasy VI:ROM map}} | |||
==C3/9FFD unknow== | ==C3/9FFD unknow== | ||
C3/9FFD: 20149E JSR $9E14 | C3/9FFD: 20149E JSR $9E14 |
Revision as of 19:24, 21 June 2016
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