This shows you the differences between two versions of the page.
metroid:disassembly:tourian_page [2015/04/20 23:08] – created gf_kennon | metroid:disassembly:tourian_page [2015/06/07 12:15] (current) – Tabs to spaces snarfblam | ||
---|---|---|---|
Line 27: | Line 27: | ||
; | ; | ||
- | .alias startup $C01A | + | .alias startup |
- | .alias NMI $C0D9 | + | .alias NMI $C0D9 |
- | .alias ChooseRoutine $C27C | + | .alias ChooseRoutine |
- | .alias Adiv32 $C2BE | + | .alias Adiv32 |
- | .alias Amul16 $C2C5 | + | .alias Amul16 |
- | .alias TwosCompliment $C3D4 | + | .alias TwosCompliment |
- | .alias Base10Subtract $C3FB | + | .alias Base10Subtract |
- | .alias SubtractHealth $CE92 | + | .alias SubtractHealth |
- | .alias SetProjectileAnim $D2FA | + | .alias SetProjectileAnim |
- | .alias UpdateEnemyAnim $E094 | + | .alias UpdateEnemyAnim |
- | .alias VerticalRoomCentered $E21B | + | .alias VerticalRoomCentered |
; | ; | ||
- | L8000: JMP $F410 | + | L8000: |
- | L8003: JMP $F438 | + | L8003: |
- | L8006: JMP $F416 | + | L8006: |
- | L8009: JMP $F852 | + | L8009: |
- | L800C: JMP UpdateEnemyAnim ;($E094) | + | L800C: |
- | L800F: JMP $F68D | + | L800F: |
- | L8012: JMP $F83E | + | L8012: |
- | L8015: JMP $F85A | + | L8015: |
- | L8018: JMP $FBB9 | + | L8018: |
- | L801B: JMP $FB88 | + | L801B: |
- | L801E: JMP $FBCA | + | L801E: |
- | L8021: JMP $F870 | + | L8021: |
- | L8024: JMP ChooseRoutine ;($C27C) | + | L8024: |
- | L8027: JMP $FD8F | + | L8027: |
- | L802A: JMP $EB6E | + | L802A: |
- | L802D: JMP $8244 | + | L802D: |
- | L8030: JMP $8318 | + | L8030: |
- | L8033: JMP $FA1E | + | L8033: |
- | L8036: JMP $833F | + | L8036: |
- | L8039: JMP $8395 | + | L8039: |
- | L803C: JMP $DD8B | + | L803C: |
- | L803F: JMP $FEDC | + | L803F: |
- | L8042: JMP SubtractHealth ;($CE92) | + | L8042: |
- | L8045: JMP Base10Subtract ;($C3FB) | + | L8045: |
- | L8048: | + | L8048: |
- | L8058: LDX PageIndex | + | L8058: |
- | L805A: LDA $0405,X | + | L805A: |
- | L805D: ASL | + | L805D: |
- | L805E: BMI ++++++++ | + | L805E: |
- | L8060: LDA EnStatus, | + | L8060: |
- | L8063: CMP #$02 | + | L8063: |
- | L8065: BNE ++++++++ | + | L8065: |
- | L8067: JSR $8244 | + | L8067: |
- | L806A: LDA $00 | + | L806A: |
- | L806C: BPL ++ | + | L806C: |
- | L806E: JSR TwosCompliment ;($C3D4) | + | L806E: |
- | L8071: STA $66 | + | L8071: |
- | L8073:* JSR $83F5 | + | L8073:* JSR $83F5 |
- | L8076: JSR $80B8 | + | L8076: |
- | L8079: DEC $66 | + | L8079: |
- | L807B: BNE - | + | L807B: |
- | L807D:* BEQ ++ | + | L807D:* BEQ ++ |
- | L807F: STA $66 | + | L807F: |
- | L8081:* JSR $844B | + | L8081:* JSR $844B |
- | L8084: JSR $80FB | + | L8084: |
- | L8087: DEC $66 | + | L8087: |
- | L8089: BNE - | + | L8089: |
- | L808B:* JSR $8318 | + | L808B:* JSR $8318 |
- | L808E: LDA $00 | + | L808E: |
- | L8090: BPL ++ | + | L8090: |
- | L8092: JSR TwosCompliment ;($C3D4) | + | L8092: |
- | L8095: STA $66 | + | L8095: |
- | L8097:* JSR $84A7 | + | L8097:* JSR $84A7 |
- | L809A: JSR $816E | + | L809A: |
- | L809D: DEC $66 | + | L809D: |
- | L809F: BNE - | + | L809F: |
- | L80A1:* BEQ ++ | + | L80A1:* BEQ ++ |
- | L80A3: STA $66 | + | L80A3: |
- | L80A5:* JSR $84FE | + | L80A5:* JSR $84FE |
- | L80A8: JSR $8134 | + | L80A8: |
- | L80AB: DEC $66 | + | L80AB: |
- | L80AD: BNE - | + | L80AD: |
- | L80AF:* RTS | + | L80AF:* RTS |
- | L80B0: LDY EnDataIndex, | + | L80B0: |
- | L80B3: LDA $977B,Y | + | L80B3: |
- | L80B6: ASL ;*2 | + | L80B6: |
- | L80B7: RTS | + | L80B7: |
- | L80B8: LDX PageIndex | + | L80B8: |
- | L80BA: BCS $80FA | + | L80BA: |
- | L80BC: LDA $0405,X | + | L80BC: |
- | L80BF: BPL $80C7 | + | L80BF: |
- | L80C1: JSR $81FC | + | L80C1: |
- | L80C4: JMP $80F6 | + | L80C4: |
- | L80C7: JSR $80B0 | + | L80C7: |
- | L80CA: BPL $80EA | + | L80CA: |
- | L80CC: LDA $6B03,X | + | L80CC: |
- | L80CF: BEQ $80C1 | + | L80CF: |
- | L80D1: BPL $80D8 | + | L80D1: |
- | L80D3: JSR $81B1 | + | L80D3: |
- | L80D6: BEQ $80E2 | + | L80D6: |
- | L80D8: SEC | + | L80D8: |
- | L80D9: ROR $0402,X | + | L80D9: |
- | L80DC: ROR EnCounter, | + | L80DC: |
- | L80DF: JMP $80F6 | + | L80DF: |
- | L80E2: STA $0402,X | + | L80E2: |
- | L80E5: STA EnCounter, | + | L80E5: |
- | L80E8: BEQ $80F6 | + | L80E8: |
- | L80EA: LDA $977B,Y | + | L80EA: |
- | L80ED: LSR | + | L80ED: |
- | L80EE: LSR | + | L80EE: |
- | L80EF: BCC $80F6 | + | L80EF: |
- | L80F1: LDA #$04 | + | L80F1: |
- | L80F3: JSR $856B | + | L80F3: |
- | L80F6: LDA #$01 | + | L80F6: |
- | L80F8: STA $66 | + | L80F8: |
- | L80FA: RTS | + | L80FA: |
- | L80FB: LDX PageIndex | + | L80FB: |
- | L80FD: BCS $8133 | + | L80FD: |
- | L80FF: LDA $0405,X | + | L80FF: |
- | L8102: BPL $810A | + | L8102: |
- | L8104: JSR $81FC | + | L8104: |
- | L8107: JMP $812F | + | L8107: |
- | L810A: JSR $80B0 | + | L810A: |
- | L810D: BPL $8123 | + | L810D: |
- | L810F: LDA $6B03,X | + | L810F: |
- | L8112: BEQ $8104 | + | L8112: |
- | L8114: BPL $8120 | + | L8114: |
- | L8116: CLC | + | L8116: |
- | L8117: ROR $0402,X | + | L8117: |
- | L811A: ROR EnCounter, | + | L811A: |
- | L811D: JMP $812F | + | L811D: |
- | L8120: JSR $81B1 | + | L8120: |
- | L8123: LDA $977B,Y | + | L8123: |
- | L8126: LSR | + | L8126: |
- | L8127: LSR | + | L8127: |
- | L8128: BCC $812F | + | L8128: |
- | L812A: LDA #$04 | + | L812A: |
- | L812C: JSR $856B | + | L812C: |
- | L812F: LDA #$01 | + | L812F: |
- | L8131: STA $66 | + | L8131: |
- | L8133: RTS | + | L8133: |
- | L8134: LDX PageIndex | + | L8134: |
- | L8136: BCS $816D | + | L8136: |
- | L8138: JSR $80B0 | + | L8138: |
- | L813B: BPL $815E | + | L813B: |
- | L813D: LDA $0405,X | + | L813D: |
- | L8140: BMI $8148 | + | L8140: |
- | L8142: JSR $81C7 | + | L8142: |
- | L8145: JMP $8169 | + | L8145: |
- | L8148: LDA $6B03,X | + | L8148: |
- | L814B: BEQ $8142 | + | L814B: |
- | L814D: BPL $8159 | + | L814D: |
- | L814F: CLC | + | L814F: |
- | L8150: ROR $0403,X | + | L8150: |
- | L8153: ROR $0407,X | + | L8153: |
- | L8156: JMP $8169 | + | L8156: |
- | L8159: JSR $81C0 | + | L8159: |
- | L815C: BEQ $8169 | + | L815C: |
- | L815E: LDA $977B,Y | + | L815E: |
- | L8161: LSR | + | L8161: |
- | L8162: BCC $8169 | + | L8162: |
- | L8164: LDA #$01 | + | L8164: |
- | L8166: JSR $856B | + | L8166: |
- | L8169: LDA #$01 | + | L8169: |
- | L816B: STA $66 | + | L816B: |
- | L816D: RTS | + | L816D: |
- | L816E: LDX PageIndex | + | L816E: |
- | L8170: BCS $81B0 | + | L8170: |
- | L8172: JSR $80B0 | + | L8172: |
- | L8175: BPL $81A0 | + | L8175: |
- | L8177: LDA $0405,X | + | L8177: |
- | L817A: BMI $8182 | + | L817A: |
- | L817C: JSR $81C7 | + | L817C: |
- | L817F: JMP $81AC | + | L817F: |
- | L8182: LDA $6B03,X | + | L8182: |
- | L8185: BEQ $817C | + | L8185: |
- | L8187: BPL $818E | + | L8187: |
- | L8189: JSR $81C0 | + | L8189: |
- | L818C: BEQ $8198 | + | L818C: |
- | L818E: SEC | + | L818E: |
- | L818F: ROR $0403,X | + | L818F: |
- | L8192: ROR $0407,X | + | L8192: |
- | L8195: JMP $81AC | + | L8195: |
- | L8198: STA $0403,X | + | L8198: |
- | L819B: STA $0407,X | + | L819B: |
- | L819E: BEQ $81AC | + | L819E: |
- | L81A0: JSR $80B0 | + | L81A0: |
- | L81A3: LSR | + | L81A3: |
- | L81A4: LSR | + | L81A4: |
- | L81A5: BCC $81AC | + | L81A5: |
- | L81A7: LDA #$01 | + | L81A7: |
- | L81A9: JSR $856B | + | L81A9: |
- | L81AC: LDA #$01 | + | L81AC: |
- | L81AE: STA $66 | + | L81AE: |
- | L81B0: RTS | + | L81B0: |
- | L81B1: JSR $81B8 | + | L81B1: |
- | L81B4: STA $6AFE,X | + | L81B4: |
- | L81B7: RTS | + | L81B7: |
- | L81B8: LDA #$20 | + | L81B8: |
- | L81BA: JSR $F744 | + | L81BA: |
- | L81BD: LDA #$00 | + | L81BD: |
- | L81BF: RTS | + | L81BF: |
- | L81C0: JSR $81B8 | + | L81C0: |
- | L81C3: STA $6AFF,X | + | L81C3: |
- | L81C6: RTS | + | L81C6: |
- | L81C7: JSR $81F6 | + | L81C7: |
- | L81CA: BNE $81F5 | + | L81CA: |
- | L81CC: LDA #$01 | + | L81CC: |
- | L81CE: JSR $856B | + | L81CE: |
- | L81D1: LDA $6AFF,X | + | L81D1: |
- | L81D4: JSR $C3D4 | + | L81D4: |
- | L81D7: STA $6AFF,X | + | L81D7: |
- | L81DA: JSR $81F6 | + | L81DA: |
- | L81DD: BNE $81F5 | + | L81DD: |
- | L81DF: JSR $80B0 | + | L81DF: |
- | L81E2: SEC | + | L81E2: |
- | L81E3: BPL $81ED | + | L81E3: |
- | L81E5: LDA #$00 | + | L81E5: |
- | L81E7: SBC $0407,X | + | L81E7: |
- | L81EA: STA $0407,X | + | L81EA: |
- | L81ED: LDA #$00 | + | L81ED: |
- | L81EF: SBC $0403,X | + | L81EF: |
- | L81F2: STA $0403,X | + | L81F2: |
- | L81F5: RTS | + | L81F5: |
- | L81F6: JSR $F74B | + | L81F6: |
- | L81F9: AND #$20 | + | L81F9: |
- | L81FB: RTS | + | L81FB: |
- | L81FC: JSR $81F6 | + | L81FC: |
- | L81FF: BNE $81F5 | + | L81FF: |
- | L8201: LDA #$04 | + | L8201: |
- | L8203: JSR $856B | + | L8203: |
- | L8206: LDA $6AFE,X | + | L8206: |
- | L8209: JSR $C3D4 | + | L8209: |
- | L820C: STA $6AFE,X | + | L820C: |
- | L820F: JSR $81F6 | + | L820F: |
- | L8212: BNE $822A | + | L8212: |
- | L8214: JSR $80B0 | + | L8214: |
- | L8217: SEC | + | L8217: |
- | L8218: BPL $8222 | + | L8218: |
- | L821A: LDA #$00 | + | L821A: |
- | L821C: SBC EnCounter, | + | L821C: |
- | L821F: STA EnCounter, | + | L821F: |
- | L8222: LDA #$00 | + | L8222: |
- | L8224: SBC $0402,X | + | L8224: |
- | L8227: STA $0402,X | + | L8227: |
- | L822A: | + | L822A: |
- | L822B: LDA $0405,X | + | L822B: |
- | L822E: BPL $8232 | + | L822E: |
- | L8230: LSR | + | L8230: |
- | L8231: LSR | + | L8231: |
- | L8232: LSR | + | L8232: |
- | L8233: LDA $0408,X | + | L8233: |
- | L8236: ROL | + | L8236: |
- | L8237: ASL | + | L8237: |
- | L8238: TAY | + | L8238: |
- | L8239: LDA $96DB,Y | + | L8239: |
- | L823C: STA $81 | + | L823C: |
- | L823E: LDA $96DC,Y | + | L823E: |
- | L8241: STA $82 | + | L8241: |
- | L8243: RTS | + | L8243: |
- | L8244: JSR $80B0 | + | L8244: |
- | L8247: BPL $824C | + | L8247: |
- | L8249: JMP $833F | + | L8249: |
- | L824C: LDA $0405,X | + | L824C: |
- | L824F: AND #$20 | + | L824F: |
- | L8251: EOR #$20 | + | L8251: |
- | L8253: BEQ $82A2 | + | L8253: |
- | L8255: JSR $822B | + | L8255: |
- | L8258: LDY EnCounter, | + | L8258: |
- | L825B: LDA ($81),Y | + | L825B: |
- | L825D: CMP #$F0 | + | L825D: |
- | L825F: BCC $827F | + | L825F: |
- | L8261: CMP #$FA | + | L8261: |
- | L8263: BEQ $827C | + | L8263: |
- | L8265: CMP #$FB | + | L8265: |
- | L8267: BEQ $82B0 | + | L8267: |
- | L8269: CMP #$FC | + | L8269: |
- | L826B: BEQ $82B3 | + | L826B: |
- | L826D: CMP #$FD | + | L826D: |
- | L826F: BEQ $82A5 | + | L826F: |
- | L8271: CMP #$FE | + | L8271: |
- | L8273: BEQ $82DE | + | L8273: |
- | L8275: LDA #$00 | + | L8275: |
- | L8277: STA EnCounter, | + | L8277: |
- | L827A: BEQ $8258 | + | L827A: |
- | L827C: JMP $8312 | + | L827C: |
- | L827F: SEC | + | L827F: |
- | L8280: SBC EnDelay,X | + | L8280: |
- | L8283: BNE $8290 | + | L8283: |
- | L8285: STA EnDelay,X | + | L8285: |
- | L8288: INY | + | L8288: |
- | L8289: INY | + | L8289: |
- | L828A: TYA | + | L828A: |
- | L828B: STA EnCounter, | + | L828B: |
- | L828E: BNE $825B | + | L828E: |
- | L8290: INC EnDelay,X | + | L8290: |
- | L8293: INY | + | L8293: |
- | L8294: LDA ($81),Y | + | L8294: |
- | L8296: ASL | + | L8296: |
- | L8297: PHP | + | L8297: |
- | L8298: JSR Adiv32 ; | + | L8298: |
- | L829B: PLP | + | L829B: |
- | L829C: BCC $82A2 | + | L829C: |
- | L829E: EOR #$FF | + | L829E: |
- | L82A0: ADC #$00 | + | L82A0: |
- | L82A2: STA $00 | + | L82A2: |
- | L82A4: RTS | + | L82A4: |
- | L82A5: INC EnCounter, | + | L82A5: |
- | L82A8: INY | + | L82A8: |
- | L82A9: LDA #$00 | + | L82A9: |
- | L82AB: STA $6B01,X | + | L82AB: |
- | L82AE: BEQ $825B | + | L82AE: |
- | L82B0: PLA | + | L82B0: |
- | L82B1: PLA | + | L82B1: |
- | L82B2: RTS | + | L82B2: |
- | L82B3: LDA $6B03,X | + | L82B3: |
- | L82B6: BPL $82BE | + | L82B6: |
- | L82B8: JSR $E770 | + | L82B8: |
- | L82BB: JMP $82C3 | + | L82BB: |
- | L82BE: BEQ $82D2 | + | L82BE: |
- | L82C0: JSR $E77B | + | L82C0: |
- | L82C3: LDX PageIndex | + | L82C3: |
- | L82C5: BCS $82D2 | + | L82C5: |
- | L82C7: LDY EnCounter, | + | L82C7: |
- | L82CA: INY | + | L82CA: |
- | L82CB: LDA #$00 | + | L82CB: |
- | L82CD: STA $6B03,X | + | L82CD: |
- | L82D0: BEQ $82D7 | + | L82D0: |
- | L82D2: LDY EnCounter, | + | L82D2: |
- | L82D5: DEY | + | L82D5: |
- | L82D6: DEY | + | L82D6: |
- | L82D7: TYA | + | L82D7: |
- | L82D8: STA EnCounter, | + | L82D8: |
- | L82DB: JMP $825B | + | L82DB: |
- | L82DE: DEY | + | L82DE: |
- | L82DF: DEY | + | L82DF: |
- | L82E0: TYA | + | L82E0: |
- | L82E1: STA EnCounter, | + | L82E1: |
- | L82E4: LDA $6B03,X | + | L82E4: |
- | L82E7: BPL $82EF | + | L82E7: |
- | L82E9: JSR $E770 | + | L82E9: |
- | L82EC: JMP $82F4 | + | L82EC: |
- | L82EF: BEQ $82FB | + | L82EF: |
- | L82F1: JSR $E77B | + | L82F1: |
- | L82F4: LDX PageIndex | + | L82F4: |
- | L82F6: BCC $82FB | + | L82F6: |
- | L82F8: JMP $8258 | + | L82F8: |
- | L82FB: LDY EnDataIndex, | + | L82FB: |
- | L82FE: LDA $968B,Y | + | L82FE: |
- | L8301: AND #$20 | + | L8301: |
- | L8303: BEQ $8312 | + | L8303: |
- | L8305: LDA $0405,X | + | L8305: |
- | L8308: EOR #$05 | + | L8308: |
- | L830A: ORA $968B,Y | + | L830A: |
- | L830D: AND #$1F | + | L830D: |
- | L830F: STA $0405,X | + | L830F: |
- | L8312: JSR $81B1 | + | L8312: |
- | L8315: JMP $82A2 | + | L8315: |
- | L8318: JSR $80B0 | + | L8318: |
- | L831B: BPL $8320 | + | L831B: |
- | L831D: JMP $8395 | + | L831D: |
- | L8320: LDA $0405,X | + | L8320: |
- | L8323: AND #$20 | + | L8323: |
- | L8325: EOR #$20 | + | L8325: |
- | L8327: BEQ $833C | + | L8327: |
- | L8329: LDY EnCounter, | + | L8329: |
- | L832C: INY | + | L832C: |
- | L832D: LDA ($81),Y | + | L832D: |
- | L832F: TAX | + | L832F: |
- | L8330: AND #$08 | + | L8330: |
- | L8332: PHP | + | L8332: |
- | L8333: TXA | + | L8333: |
- | L8334: AND #$07 | + | L8334: |
- | L8336: PLP | + | L8336: |
- | L8337: BEQ $833C | + | L8337: |
- | L8339: JSR $C3D4 | + | L8339: |
- | L833C: STA $00 | + | L833C: |
- | L833E: RTS | + | L833E: |
- | L833F: LDY #$0E | + | L833F: |
- | L8341: LDA $6AFE,X | + | L8341: |
- | L8344: BMI $835E | + | L8344: |
- | L8346: CLC | + | L8346: |
- | L8347: ADC EnCounter, | + | L8347: |
- | L834A: STA EnCounter, | + | L834A: |
- | L834D: LDA $0402,X | + | L834D: |
- | L8350: ADC #$00 | + | L8350: |
- | L8352: STA $0402,X | + | L8352: |
- | L8355: BPL $8376 | + | L8355: |
- | L8357: JSR $C3D4 | + | L8357: |
- | L835A: LDY #$F2 | + | L835A: |
- | L835C: BNE $8376 | + | L835C: |
- | L835E: JSR $C3D4 | + | L835E: |
- | L8361: SEC | + | L8361: |
- | L8362: STA $00 | + | L8362: |
- | L8364: LDA EnCounter, | + | L8364: |
- | L8367: SBC $00 | + | L8367: |
- | L8369: STA EnCounter, | + | L8369: |
- | L836C: LDA $0402,X | + | L836C: |
- | L836F: SBC #$00 | + | L836F: |
- | L8371: STA $0402,X | + | L8371: |
- | L8374: BMI $8357 | + | L8374: |
- | L8376: CMP #$0E | + | L8376: |
- | L8378: BCC $8383 | + | L8378: |
- | L837A: LDA #$00 | + | L837A: |
- | L837C: STA EnCounter, | + | L837C: |
- | L837F: TYA | + | L837F: |
- | L8380: STA $0402,X | + | L8380: |
- | L8383: LDA $6AFC,X | + | L8383: |
- | L8386: CLC | + | L8386: |
- | L8387: ADC EnCounter, | + | L8387: |
- | L838A: STA $6AFC,X | + | L838A: |
- | L838D: LDA #$00 | + | L838D: |
- | L838F: ADC $0402,X | + | L838F: |
- | L8392: STA $00 | + | L8392: |
- | L8394: RTS | + | L8394: |
- | L8395: LDA #$00 | + | L8395: |
- | L8397: STA $00 | + | L8397: |
- | L8399: STA $02 | + | L8399: |
- | L839B: LDA #$0E | + | L839B: |
- | L839D: STA $01 | + | L839D: |
- | L839F: STA $03 | + | L839F: |
- | L83A1: LDA $0407,X | + | L83A1: |
- | L83A4: CLC | + | L83A4: |
- | L83A5: ADC $6AFF,X | + | L83A5: |
- | L83A8: STA $0407,X | + | L83A8: |
- | L83AB: STA $04 | + | L83AB: |
- | L83AD: LDA #$00 | + | L83AD: |
- | L83AF: LDY $6AFF,X | + | L83AF: |
- | L83B2: BPL $83B6 | + | L83B2: |
- | L83B4: LDA #$FF | + | L83B4: |
- | L83B6: ADC $0403,X | + | L83B6: |
- | L83B9: STA $0403,X | + | L83B9: |
- | L83BC: TAY | + | L83BC: |
- | L83BD: BPL $83D0 | + | L83BD: |
- | L83BF: LDA #$00 | + | L83BF: |
- | L83C1: SEC | + | L83C1: |
- | L83C2: SBC $0407,X | + | L83C2: |
- | L83C5: STA $04 | + | L83C5: |
- | L83C7: LDA #$00 | + | L83C7: |
- | L83C9: SBC $0403,X | + | L83C9: |
- | L83CC: TAY | + | L83CC: |
- | L83CD: JSR $E449 | + | L83CD: |
- | L83D0: LDA $04 | + | L83D0: |
- | L83D2: CMP $02 | + | L83D2: |
- | L83D4: TYA | + | L83D4: |
- | L83D5: SBC $03 | + | L83D5: |
- | L83D7: BCC $83E3 | + | L83D7: |
- | L83D9: LDA $00 | + | L83D9: |
- | L83DB: STA $0407,X | + | L83DB: |
- | L83DE: LDA $01 | + | L83DE: |
- | L83E0: STA $0403,X | + | L83E0: |
- | L83E3: LDA $6AFD,X | + | L83E3: |
- | L83E6: CLC | + | L83E6: |
- | L83E7: ADC $0407,X | + | L83E7: |
- | L83EA: STA $6AFD,X | + | L83EA: |
- | L83ED: LDA #$00 | + | L83ED: |
- | L83EF: ADC $0403,X | + | L83EF: |
- | L83F2: STA $00 | + | L83F2: |
- | L83F4: RTS | + | L83F4: |
- | L83F5: LDX PageIndex | + | L83F5: |
- | L83F7: LDA EnYRoomPos, | + | L83F7: |
- | L83FA: SEC | + | L83FA: |
- | L83FB: SBC EnRadY,X | + | L83FB: |
- | L83FE: AND #$07 | + | L83FE: |
- | L8400: SEC | + | L8400: |
- | L8401: BNE $8406 | + | L8401: |
- | L8403: JSR $E770 | + | L8403: |
- | L8406: LDY #$00 | + | L8406: |
- | L8408: STY $00 | + | L8408: |
- | L840A: LDX PageIndex | + | L840A: |
- | L840C: BCC $844A | + | L840C: |
- | L840E: INC $00 | + | L840E: |
- | L8410: LDY EnYRoomPos, | + | L8410: |
- | L8413: BNE $8429 | + | L8413: |
- | L8415: LDY #$F0 | + | L8415: |
- | L8417: LDA $49 | + | L8417: |
- | L8419: CMP #$02 | + | L8419: |
- | L841B: BCS $8429 | + | L841B: |
- | L841D: LDA $FC | + | L841D: |
- | L841F: BEQ $844A | + | L841F: |
- | L8421: JSR $8563 | + | L8421: |
- | L8424: BEQ $844A | + | L8424: |
- | L8426: JSR $855A | + | L8426: |
- | L8429: DEY | + | L8429: |
- | L842A: TYA | + | L842A: |
- | L842B: STA EnYRoomPos, | + | L842B: |
- | L842E: CMP EnRadY,X | + | L842E: |
- | L8431: BNE $8441 | + | L8431: |
- | L8433: LDA $FC | + | L8433: |
- | L8435: BEQ $843C | + | L8435: |
- | L8437: JSR $8563 | + | L8437: |
- | L843A: BNE $8441 | + | L843A: |
- | L843C: INC EnYRoomPos, | + | L843C: |
- | L843F: CLC | + | L843F: |
- | L8440: RTS | + | L8440: |
- | L8441: LDA $0405,X | + | L8441: |
- | L8444: BMI $8449 | + | L8444: |
- | L8446: INC $6B01,X | + | L8446: |
- | L8449: SEC | + | L8449: |
- | L844A: RTS | + | L844A: |
- | L844B: LDX PageIndex | + | L844B: |
- | L844D: LDA EnYRoomPos, | + | L844D: |
- | L8450: CLC | + | L8450: |
- | L8451: ADC EnRadY,X | + | L8451: |
- | L8454: AND #$07 | + | L8454: |
- | L8456: SEC | + | L8456: |
- | L8457: BNE $845C | + | L8457: |
- | L8459: JSR $E77B | + | L8459: |
- | L845C: LDY #$00 | + | L845C: |
- | L845E: STY $00 | + | L845E: |
- | L8460: LDX PageIndex | + | L8460: |
- | L8462: BCC $84A6 | + | L8462: |
- | L8464: INC $00 | + | L8464: |
- | L8466: LDY EnYRoomPos, | + | L8466: |
- | L8469: CPY #$EF | + | L8469: |
- | L846B: BNE $8481 | + | L846B: |
- | L846D: LDY #$FF | + | L846D: |
- | L846F: LDA $49 | + | L846F: |
- | L8471: CMP #$02 | + | L8471: |
- | L8473: BCS $8481 | + | L8473: |
- | L8475: LDA $FC | + | L8475: |
- | L8477: BEQ $84A6 | + | L8477: |
- | L8479: JSR $8563 | + | L8479: |
- | L847C: BNE $84A6 | + | L847C: |
- | L847E: JSR $855A | + | L847E: |
- | L8481: INY | + | L8481: |
- | L8482: TYA | + | L8482: |
- | L8483: STA EnYRoomPos, | + | L8483: |
- | L8486: CLC | + | L8486: |
- | L8487: ADC EnRadY,X | + | L8487: |
- | L848A: CMP #$EF | + | L848A: |
- | L848C: BNE $849D | + | L848C: |
- | L848E: LDA $FC | + | L848E: |
- | L8490: BEQ $8497 | + | L8490: |
- | L8492: JSR $8563 | + | L8492: |
- | L8495: BEQ $849D | + | L8495: |
- | L8497: DEC EnYRoomPos, | + | L8497: |
- | L849A: CLC | + | L849A: |
- | L849B: BCC $84A6 | + | L849B: |
- | L849D: LDA $0405,X | + | L849D: |
- | L84A0: BMI $84A5 | + | L84A0: |
- | L84A2: DEC $6B01,X | + | L84A2: |
- | L84A5: SEC | + | L84A5: |
- | L84A6: RTS | + | L84A6: |
- | L84A7: LDX PageIndex | + | L84A7: |
- | L84A9: LDA EnXRoomPos, | + | L84A9: |
- | L84AC: SEC | + | L84AC: |
- | L84AD: SBC EnRadX,X | + | L84AD: |
- | L84B0: AND #$07 | + | L84B0: |
- | L84B2: SEC | + | L84B2: |
- | L84B3: BNE $84B8 | + | L84B3: |
- | L84B5: JSR $E8F1 | + | L84B5: |
- | L84B8: LDY #$00 | + | L84B8: |
- | L84BA: STY $00 | + | L84BA: |
- | L84BC: LDX PageIndex | + | L84BC: |
- | L84BE: BCC $84FD | + | L84BE: |
- | L84C0: INC $00 | + | L84C0: |
- | L84C2: LDY EnXRoomPos, | + | L84C2: |
- | L84C5: BNE $84DA | + | L84C5: |
- | L84C7: LDA $49 | + | L84C7: |
- | L84C9: CMP #$02 | + | L84C9: |
- | L84CB: BCC $84DA | + | L84CB: |
- | L84CD: LDA $FD | + | L84CD: |
- | L84CF: BEQ $84D4 | + | L84CF: |
- | L84D1: JSR $8563 | + | L84D1: |
- | L84D4: CLC | + | L84D4: |
- | L84D5: BEQ $84FD | + | L84D5: |
- | L84D7: JSR $855A | + | L84D7: |
- | L84DA: DEC EnXRoomPos, | + | L84DA: |
- | L84DD: LDA EnXRoomPos, | + | L84DD: |
- | L84E0: CMP EnRadX,X | + | L84E0: |
- | L84E3: BNE $84F4 | + | L84E3: |
- | L84E5: LDA $FD | + | L84E5: |
- | L84E7: BEQ $84EE | + | L84E7: |
- | L84E9: JSR $8563 | + | L84E9: |
- | L84EC: BNE $84F4 | + | L84EC: |
- | L84EE: INC EnXRoomPos, | + | L84EE: |
- | L84F1: CLC | + | L84F1: |
- | L84F2: BCC $84FD | + | L84F2: |
- | L84F4: LDA $0405,X | + | L84F4: |
- | L84F7: BPL $84FC | + | L84F7: |
- | L84F9: INC $6B01,X | + | L84F9: |
- | L84FC: SEC | + | L84FC: |
- | L84FD: RTS | + | L84FD: |
- | L84FE: LDX PageIndex | + | L84FE: |
- | L8500: LDA EnXRoomPos, | + | L8500: |
- | L8503: CLC | + | L8503: |
- | L8504: ADC EnRadX,X | + | L8504: |
- | L8507: AND #$07 | + | L8507: |
- | L8509: SEC | + | L8509: |
- | L850A: BNE $850F | + | L850A: |
- | L850C: JSR $E8FC | + | L850C: |
- | L850F: LDY #$00 | + | L850F: |
- | L8511: STY $00 | + | L8511: |
- | L8513: LDX PageIndex | + | L8513: |
- | L8515: BCC $8559 | + | L8515: |
- | L8517: INC $00 | + | L8517: |
- | L8519: INC EnXRoomPos, | + | L8519: |
- | L851C: BNE $8536 | + | L851C: |
- | L851E: LDA $49 | + | L851E: |
- | L8520: CMP #$02 | + | L8520: |
- | L8522: BCC $8536 | + | L8522: |
- | L8524: LDA $FD | + | L8524: |
- | L8526: BEQ $852D | + | L8526: |
- | L8528: JSR $8563 | + | L8528: |
- | L852B: BEQ $8533 | + | L852B: |
- | L852D: DEC EnXRoomPos, | + | L852D: |
- | L8530: CLC | + | L8530: |
- | L8531: BCC $8559 | + | L8531: |
- | L8533: JSR $855A | + | L8533: |
- | L8536: LDA EnXRoomPos, | + | L8536: |
- | L8539: CLC | + | L8539: |
- | L853A: ADC EnRadX,X | + | L853A: |
- | L853D: CMP #$FF | + | L853D: |
- | L853F: BNE $8550 | + | L853F: |
- | L8541: LDA $FD | + | L8541: |
- | L8543: BEQ $854A | + | L8543: |
- | L8545: JSR $8563 | + | L8545: |
- | L8548: BEQ $8550 | + | L8548: |
- | L854A: DEC EnXRoomPos, | + | L854A: |
- | L854D: CLC | + | L854D: |
- | L854E: BCC $8559 | + | L854E: |
- | L8550: LDA $0405,X | + | L8550: |
- | L8553: BPL $8558 | + | L8553: |
- | L8555: DEC $6B01,X | + | L8555: |
- | L8558: SEC | + | L8558: |
- | L8559: RTS | + | L8559: |
- | L855A: LDA EnNameTable, | + | L855A: |
- | L855D: EOR #$01 | + | L855D: |
- | L855F: STA EnNameTable, | + | L855F: |
- | L8562: RTS | + | L8562: |
- | L8563: LDA EnNameTable, | + | L8563: |
- | L8566: EOR $FF | + | L8566: |
- | L8568: AND #$01 | + | L8568: |
- | L856A: RTS | + | L856A: |
- | L856B: EOR $0405,X | + | L856B: |
- | L856E: STA $0405,X | + | L856E: |
- | L8571: | + | L8571: |
; | ; | ||
Line 698: | Line 698: | ||
;Samus run animation. | ;Samus run animation. | ||
- | L8572: | + | L8572: |
;Samus front animation. | ;Samus front animation. | ||
- | L8576: | + | L8576: |
;Samus jump out of ball animation. | ;Samus jump out of ball animation. | ||
- | L8578: | + | L8578: |
;Samus Stand animation. | ;Samus Stand animation. | ||
- | L8579: | + | L8579: |
;Samus stand and fire animation. | ;Samus stand and fire animation. | ||
- | L857B: | + | L857B: |
;Samus stand and jump animation. | ;Samus stand and jump animation. | ||
- | L857D: | + | L857D: |
;Samus Jump animation. | ;Samus Jump animation. | ||
- | L857E: | + | L857E: |
;Samus summersault animation. | ;Samus summersault animation. | ||
- | L8580: | + | L8580: |
;Samus run and jump animation. | ;Samus run and jump animation. | ||
- | L8585: | + | L8585: |
;Samus roll animation. | ;Samus roll animation. | ||
- | L8588: | + | L8588: |
;Bullet animation. | ;Bullet animation. | ||
- | L858D: | + | L858D: |
;Bullet hit animation. | ;Bullet hit animation. | ||
- | L858F: | + | L858F: |
;Samus jump and fire animation. | ;Samus jump and fire animation. | ||
- | L8592: | + | L8592: |
;Samus run and fire animation. | ;Samus run and fire animation. | ||
- | L8594: | + | L8594: |
;Samus point up and shoot animation. | ;Samus point up and shoot animation. | ||
- | L8598: | + | L8598: |
;Samus point up animation. | ;Samus point up animation. | ||
- | L8599: | + | L8599: |
;Door open animation. | ;Door open animation. | ||
- | L859B: | + | L859B: |
;Door close animation. | ;Door close animation. | ||
- | L85A0: | + | L85A0: |
;Samus explode animation. | ;Samus explode animation. | ||
Line 758: | Line 758: | ||
;Samus run and point up animation. | ;Samus run and point up animation. | ||
- | L85A9: | + | L85A9: |
;Samus run, point up and shoot animation 1. | ;Samus run, point up and shoot animation 1. | ||
- | L85AD: | + | L85AD: |
;Samus run, point up and shoot animation 2. | ;Samus run, point up and shoot animation 2. | ||
- | L85AF: | + | L85AF: |
;Samus run, point up and shoot animation 3. | ;Samus run, point up and shoot animation 3. | ||
- | L85B1: | + | L85B1: |
;Samus on elevator animation 1. | ;Samus on elevator animation 1. | ||
- | L85B3: | + | L85B3: |
;Samus on elevator animation 2. | ;Samus on elevator animation 2. | ||
- | L85C2: | + | L85C2: |
;Samus on elevator animation 3. | ;Samus on elevator animation 3. | ||
- | L85D1: | + | L85D1: |
;Samus on elevator animation 4. | ;Samus on elevator animation 4. | ||
- | L85E0: | + | L85E0: |
;Wave beam animation. | ;Wave beam animation. | ||
- | L85EF: | + | L85EF: |
;Bomb tick animation. | ;Bomb tick animation. | ||
- | L85F1: | + | L85F1: |
;Bomb explode animation. | ;Bomb explode animation. | ||
- | L85F4: | + | L85F4: |
;Missile left animation. | ;Missile left animation. | ||
- | L85FD: | + | L85FD: |
;Missile right animation. | ;Missile right animation. | ||
- | L85FF: | + | L85FF: |
;Missile up animation. | ;Missile up animation. | ||
- | L8601: | + | L8601: |
;Missile explode animation. | ;Missile explode animation. | ||
- | L8603: | + | L8603: |
; | ; | ||
Line 808: | Line 808: | ||
FramePtrTable: | FramePtrTable: | ||
- | L860B: | + | L860B: |
- | L861B: | + | L861B: |
- | L862B: | + | L862B: |
- | L863B: | + | L863B: |
- | L864B: | + | L864B: |
- | L865B: | + | L865B: |
- | L866B: | + | L866B: |
- | L867B: | + | L867B: |
- | L868B: | + | L868B: |
- | L869B: | + | L869B: |
- | L86AB: | + | L86AB: |
- | L86BB: | + | L86BB: |
- | L86CB: | + | L86CB: |
- | L86DB: | + | L86DB: |
;The following table provides pointers to data used for the placement of the sprites that make up | ;The following table provides pointers to data used for the placement of the sprites that make up | ||
Line 827: | Line 827: | ||
PlacePtrTable: | PlacePtrTable: | ||
- | L86DF: | + | L86DF: |
- | L86EF: | + | L86EF: |
; | ; | ||
Line 860: | Line 860: | ||
; * | ; * | ||
; +--0--+ | ; +--0--+ | ||
- | L86FD: | + | L86FD: |
;Several Samus frames. | ;Several Samus frames. | ||
Line 888: | Line 888: | ||
; +--------+--------+--------+ | ; +--------+--------+--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L8701: | + | L8701: |
; +--8--+ | ; +--8--+ | ||
- | L8711: | + | L8711: |
;Samus summersault and roll frames. | ;Samus summersault and roll frames. | ||
Line 907: | Line 907: | ||
; +--------+--------+ | ; +--------+--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L871F: | + | L871F: |
;Samus summersault frame. | ;Samus summersault frame. | ||
Line 922: | Line 922: | ||
; +--------+--------+--------+ | ; +--------+--------+--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L872B: | + | L872B: |
;Elevator frame. | ;Elevator frame. | ||
Line 932: | Line 932: | ||
; +--------+--------+--------+--------+--------+--------+--------+--------+ | ; +--------+--------+--------+--------+--------+--------+--------+--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L8737: | + | L8737: |
;Several projectile frames. | ;Several projectile frames. | ||
Line 942: | Line 942: | ||
; +--------+ | ; +--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L8747: | + | L8747: |
;Power-up items and bomb explode frames. | ;Power-up items and bomb explode frames. | ||
Line 957: | Line 957: | ||
; +--------+--------+ | ; +--------+--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L8749: | + | L8749: |
;Door frames. | ;Door frames. | ||
Line 992: | Line 992: | ||
; +--------+ | ; +--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L8751: | + | L8751: |
;Samus explode. Special case. The bytes that are #$8X indicate displacement data will be loaded | ;Samus explode. Special case. The bytes that are #$8X indicate displacement data will be loaded | ||
Line 1016: | Line 1016: | ||
; +--------+--------+ | ; +--------+--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L875D: | + | L875D: |
; +--2--+ | ; +--2--+ | ||
- | L876D: | + | L876D: |
;Bomb explode frame. | ;Bomb explode frame. | ||
Line 1043: | Line 1043: | ||
; +--------+--------+--------+--------+ | ; +--------+--------+--------+--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L8775: | + | L8775: |
; +--8--+ | ; +--8--+ | ||
- | L8785: | + | L8785: |
;Missile up frame. | ;Missile up frame. | ||
Line 1060: | Line 1060: | ||
; +--------+ | ; +--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L878D: | + | L878D: |
;Missile left/right and missile explode frames. | ;Missile left/right and missile explode frames. | ||
Line 1070: | Line 1070: | ||
; +--------+--------+ | ; +--------+--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L8791: | + | L8791: |
;Missile explode frame. | ;Missile explode frame. | ||
Line 1090: | Line 1090: | ||
; | ; | ||
; +--0--+ | ; +--0--+ | ||
- | L8799: | + | L8799: |
;Missile explode frame. | ;Missile explode frame. | ||
Line 1120: | Line 1120: | ||
; +--------+ | ; +--------+ | ||
; +--0--+ | ; +--0--+ | ||
- | L87A5: | + | L87A5: |
;Statue frames. | ;Statue frames. | ||
Line 1150: | Line 1150: | ||
; | ; | ||
; +--0--+ | ; +--0--+ | ||
- | L87B1: | + | L87B1: |
; +--8--+ | ; +--8--+ | ||
- | L87C1: | + | L87C1: |
; | ; | ||
Line 1179: | Line 1179: | ||
;Samus run. | ;Samus run. | ||
- | L87CB: | + | L87CB: |
- | L87DB: | + | L87DB: |
;Samus run. | ;Samus run. | ||
- | L87DD: | + | L87DD: |
- | L87ED: | + | L87ED: |
;Samus run. | ;Samus run. | ||
- | L87F0: | + | L87F0: |
- | L8800: | + | L8800: |
;Samus facing forward. | ;Samus facing forward. | ||
- | L8802: | + | L8802: |
- | L8812: | + | L8812: |
;Samus stand. | ;Samus stand. | ||
- | L8818: | + | L8818: |
- | L8828: | + | L8828: |
;Samus run and fire. | ;Samus run and fire. | ||
- | L882C: | + | L882C: |
- | L883C: | + | L883C: |
;Samus run and fire. | ;Samus run and fire. | ||
- | L883E: | + | L883E: |
- | L884E: | + | L884E: |
;Samus run and fire. | ;Samus run and fire. | ||
- | L8851: | + | L8851: |
- | L8861: | + | L8861: |
;Samus stand and jump. | ;Samus stand and jump. | ||
- | L8863: | + | L8863: |
- | L8873: | + | L8873: |
;Samus jump and fire. | ;Samus jump and fire. | ||
- | L8874: | + | L8874: |
- | L8884: | + | L8884: |
;Samus summersault. | ;Samus summersault. | ||
- | L8885: | + | L8885: |
;Samus summersault. | ;Samus summersault. | ||
- | L888F: | + | L888F: |
;Samus summersault. | ;Samus summersault. | ||
- | L8899: | + | L8899: |
;Samus summersault. | ;Samus summersault. | ||
- | L88A3: | + | L88A3: |
;Samus roll. | ;Samus roll. | ||
- | L88AD: | + | L88AD: |
;Samus roll. | ;Samus roll. | ||
- | L88B8: | + | L88B8: |
;Samus roll. | ;Samus roll. | ||
- | L88C3: | + | L88C3: |
;Samus roll. | ;Samus roll. | ||
- | L88CE: | + | L88CE: |
;Samus stand and fire. | ;Samus stand and fire. | ||
- | L88D9: | + | L88D9: |
- | L88E9: | + | L88E9: |
;Elevator. | ;Elevator. | ||
- | L88EE: | + | L88EE: |
;Missile right. | ;Missile right. | ||
- | L88F8: | + | L88F8: |
;Missile left. | ;Missile left. | ||
- | L88FE: | + | L88FE: |
;Missile up. | ;Missile up. | ||
- | L8904: | + | L8904: |
;Bullet fire. | ;Bullet fire. | ||
- | L890A: | + | L890A: |
;Bullet hit. | ;Bullet hit. | ||
- | L890F: | + | L890F: |
;Samus stand and point up. | ;Samus stand and point up. | ||
- | L8914: | + | L8914: |
- | L8924: | + | L8924: |
;Samus from ball to pointing up. | ;Samus from ball to pointing up. | ||
- | L8928: | + | L8928: |
- | L8938: | + | L8938: |
;Door closed. | ;Door closed. | ||
- | L893C: | + | L893C: |
;Door open/close. | ;Door open/close. | ||
- | L8948: | + | L8948: |
;Samus explode. | ;Samus explode. | ||
- | L8954: | + | L8954: |
;Samus jump and point up. | ;Samus jump and point up. | ||
- | L8961: | + | L8961: |
- | L8971: | + | L8971: |
;Samus jump and point up. | ;Samus jump and point up. | ||
- | L8974: | + | L8974: |
- | L8984: | + | L8984: |
;Bomb explode. | ;Bomb explode. | ||
- | L8987: | + | L8987: |
;Samus run and point up. | ;Samus run and point up. | ||
- | L8995: | + | L8995: |
- | L89A5: | + | L89A5: |
;Samus run and point up. | ;Samus run and point up. | ||
- | L89A9: | + | L89A9: |
- | L89B9: | + | L89B9: |
;Samus run and point up. | ;Samus run and point up. | ||
- | L89BE: | + | L89BE: |
- | L89CE: | + | L89CE: |
;Samus run and point up. | ;Samus run and point up. | ||
- | L89D2: | + | L89D2: |
- | L89E2: | + | L89E2: |
;Samus point up, run and fire. | ;Samus point up, run and fire. | ||
- | L89E6: | + | L89E6: |
- | L89F6: | + | L89F6: |
;Samus point up, run and fire. | ;Samus point up, run and fire. | ||
- | L89FB: | + | L89FB: |
- | L8A0B: | + | L8A0B: |
;Bomb explode. | ;Bomb explode. | ||
- | L8A0F: | + | L8A0F: |
;Bomb explode. | ;Bomb explode. | ||
- | L8A1D: | + | L8A1D: |
;Wave beam. | ;Wave beam. | ||
- | L8A21: | + | L8A21: |
;Bomb explode. | ;Bomb explode. | ||
- | L8A26: | + | L8A26: |
- | L8A36: | + | L8A36: |
;Bomb tick. | ;Bomb tick. | ||
- | L8A3C: | + | L8A3C: |
;Bomb tick. | ;Bomb tick. | ||
- | L8A41: | + | L8A41: |
;Bomb item. | ;Bomb item. | ||
- | L8A46: | + | L8A46: |
;High jump item. | ;High jump item. | ||
- | L8A4E: | + | L8A4E: |
;Long beam item. | ;Long beam item. | ||
- | L8A56: | + | L8A56: |
;Screw attack item. | ;Screw attack item. | ||
- | L8A5E: | + | L8A5E: |
;Maru Mari item. | ;Maru Mari item. | ||
- | L8A66: | + | L8A66: |
;Varia item. | ;Varia item. | ||
- | L8A6E: | + | L8A6E: |
;Wave beam item. | ;Wave beam item. | ||
- | L8A76: | + | L8A76: |
;Ice beam item. | ;Ice beam item. | ||
- | L8A7E: | + | L8A7E: |
;Energy tank item. | ;Energy tank item. | ||
- | L8A86: | + | L8A86: |
;Missile item. | ;Missile item. | ||
- | L8A8E: | + | L8A8E: |
;Skree burrow. | ;Skree burrow. | ||
- | L8A9C: | + | L8A9C: |
;Not used. | ;Not used. | ||
- | L8AA1: | + | L8AA1: |
- | L8AB1: | + | L8AB1: |
- | L8AC1: | + | L8AC1: |
;Kraid statue. | ;Kraid statue. | ||
- | L8AC4: | + | L8AC4: |
- | L8AD4: | + | L8AD4: |
;Ridley statue. | ;Ridley statue. | ||
- | L8AD8: | + | L8AD8: |
- | L8AE8: | + | L8AE8: |
;Missile explode. | ;Missile explode. | ||
- | L8AE9: | + | L8AE9: |
;Missile explode. | ;Missile explode. | ||
- | L8AF3: | + | L8AF3: |
;Missile explode. | ;Missile explode. | ||
- | L8B03: | + | L8B03: |
; | ; | ||
Line 1395: | Line 1395: | ||
SamusEnterDoor: | SamusEnterDoor: | ||
- | L8B13: LDA DoorStatus ;The code determines if Samus has entered a door if the--> | + | L8B13: |
- | L8B15: BNE ++++ ;door status is 0, but door data information has been--> | + | L8B15: |
- | L8B17: LDY SamusDoorData ;written. If both conditions are met, Samus has just--> | + | L8B17: |
- | L8B19: BEQ ++++ ;entered a door. | + | L8B19: |
- | L8B1B: STA CurrentMissilePickups ; | + | L8B1B: |
- | L8B1D: STA CurrentEnergyPickups ; | + | L8B1D: |
- | L8B1F: LDA RandomNumber1 ; | + | L8B1F: |
- | L8B21: AND #$0F ;Randomly recalculate max missile pickups(16 max, 0 min). | + | L8B21: |
- | L8B23: STA MaxMissilePickup ; | + | L8B23: |
- | L8B25: ASL ; | + | L8B25: |
- | L8B26: ORA #$40 ;*2 for energy pickups and set bit 6(128 max, 64 min). | + | L8B26: |
- | L8B28: STA MaxEnergyPickup ; | + | L8B28: |
- | L8B2A: LDA PPUCNT0ZP ; | + | L8B2A: |
- | L8B2C: EOR #$01 ; | + | L8B2C: |
- | L8B2E: AND #$01 ;Erase name table door data for new room. | + | L8B2E: |
- | L8B30: TAY ; | + | L8B30: |
- | L8B31: LSR ; | + | L8B31: |
- | L8B32: STA $006C,Y ; | + | L8B32: |
- | L8B35: LDA ScrollDir ; | + | L8B35: |
- | L8B37: AND #$02 ;Is Samus scrolling horizontally? | + | L8B37: |
- | L8B39: BNE + ;If so, branch. | + | L8B39: |
- | L8B3B: LDX #$04 ;Samus currently scrolling vertically. | + | L8B3B: |
- | L8B3D: LDA ScrollY ;Is room centered on screen? | + | L8B3D: |
- | L8B3F: BEQ +++++ ;If so, branch. | + | L8B3F: |
- | L8B41: LDA $FF ; | + | L8B41: |
- | L8B43: EOR ObjectHi ;Get inverse of Samus' current nametable. | + | L8B43: |
- | L8B46: LSR ; | + | L8B46: |
- | L8B47: BCC +++ ;If Samus is on nametable 3, branch. | + | L8B47: |
- | L8B49: BCS ++ ;If Samus is on nametable 0, branch to decrement x. | + | L8B49: |
- | L8B4B:* LDX #$02 ;Samus is currently scrolling horizontally. | + | L8B4B:* LDX #$02 ;Samus is currently scrolling horizontally. |
- | L8B4D: LDA ObjectX ;Is Samus entering a left hand door? | + | L8B4D: |
- | L8B50: BPL ++ ;If so, branch. | + | L8B50: |
- | L8B52: | + | L8B52:* DEX |
SetDoorEntryInfo: | SetDoorEntryInfo: | ||
- | L8B53: | + | L8B53:* TXA |
- | L8B54: STA DoorScrollStatus ;Save door scroll status. | + | L8B54: |
- | L8B56: JSR SamusInDoor ; | + | L8B56: |
- | L8B59: LDA #$12 ; | + | L8B59: |
- | L8B5B: STA DoorDelay ;Set DoorDelay to 18 frames(going into door). | + | L8B5B: |
- | L8B5D: LDA SamusDoorData ; | + | L8B5D: |
- | L8B5F: JSR Amul16 ; | + | L8B5F: |
- | L8B62: ORA ObjAction ;Keep Samus action so she will appear the same comming--> | + | L8B62: |
- | L8B65: STA SamusDoorData ;out of the door as she did going in. | + | L8B65: |
- | L8B67: LDA #$05 ; | + | L8B67: |
- | L8B69: STA ObjAction ;Indicate Samus is in a door. | + | L8B69: |
- | L8B6C: | + | L8B6C:* RTS |
- | L8B6D:* JSR SetDoorEntryInfo ; | + | L8B6D:* JSR SetDoorEntryInfo |
- | L8B70: JSR VerticalRoomCentered ; | + | L8B70: |
- | L8B73: TXA ;X=#$01 or # | + | L8B73: |
SamusInDoor: | SamusInDoor: | ||
- | L8B74: ORA #$80 ;Set MSB of DoorStatus to indicate Samus has just--> | + | L8B74: |
- | L8B76: STA DoorStatus ;entered a door. | + | L8B76: |
- | L8B78: RTS ; | + | L8B78: |
; | ; | ||
- | L8B79: LDX #$B0 | + | L8B79: |
- | L8B7B:* JSR $8B87 | + | L8B7B:* JSR $8B87 |
- | L8B7E: LDA PageIndex | + | L8B7E: |
- | L8B80: SEC | + | L8B80: |
- | L8B81: SBC #$10 | + | L8B81: |
- | L8B83: TAX | + | L8B83: |
- | L8B84: BMI - | + | L8B84: |
- | L8B86: RTS | + | L8B86: |
- | L8B87: STX PageIndex | + | L8B87: |
- | L8B89: LDA ObjAction, | + | L8B89: |
- | L8B8C: JSR ChooseRoutine ;($C27C) | + | L8B8C: |
- | L8B8F: | + | L8B8F: |
- | L8B91: | + | L8B91: |
- | L8B93: | + | L8B93: |
- | L8B95: | + | L8B95: |
- | L8B97: | + | L8B97: |
- | L8B99: | + | L8B99: |
- | L8B9B: | + | L8B9B: |
- | L8B9D: INC $0300,X | + | L8B9D: |
- | L8BA0: LDA #$30 | + | L8BA0: |
- | L8BA2: JSR SetProjectileAnim ;($D2FA) | + | L8BA2: |
- | L8BA5: JSR $8CFB | + | L8BA5: |
- | L8BA8: LDY $0307,X | + | L8BA8: |
- | L8BAB: LDA $8BD1,Y | + | L8BAB: |
- | L8BAE: STA $030F,X | + | L8BAE: |
- | L8BB1: LDA $0307,X | + | L8BB1: |
- | L8BB4: CMP #$03 | + | L8BB4: |
- | L8BB6: BNE $8BBA | + | L8BB6: |
- | L8BB8: LDA #$01 | + | L8BB8: |
- | L8BBA: ORA #$A0 | + | L8BBA: |
- | L8BBC: STA $6B | + | L8BBC: |
- | L8BBE: LDA #$00 | + | L8BBE: |
- | L8BC0: STA $030A,X | + | L8BC0: |
- | L8BC3: TXA | + | L8BC3: |
- | L8BC4: AND #$10 | + | L8BC4: |
- | L8BC6: EOR #$10 | + | L8BC6: |
- | L8BC8: ORA $6B | + | L8BC8: |
- | L8BCA: STA $6B | + | L8BCA: |
- | L8BCC: LDA #$06 | + | L8BCC: |
- | L8BCE: JMP $DE47 | + | L8BCE: |
- | L8BD1: | + | L8BD1: |
- | L8BD5: LDA $030A,X | + | L8BD5: |
- | L8BD8: AND #$04 | + | L8BD8: |
- | L8BDA: BEQ $8BB1 | + | L8BDA: |
- | L8BDC: DEC $030F,X | + | L8BDC: |
- | L8BDF: BNE $8BB1 | + | L8BDF: |
- | L8BE1: LDA #$03 | + | L8BE1: |
- | L8BE3: CMP $0307,X | + | L8BE3: |
- | L8BE6: BNE $8BEE | + | L8BE6: |
- | L8BE8: LDY $010B | + | L8BE8: |
- | L8BEB: INY | + | L8BEB: |
- | L8BEC: BNE $8BB1 | + | L8BEC: |
- | L8BEE: STA $0300,X | + | L8BEE: |
- | L8BF1: LDA #$50 | + | L8BF1: |
- | L8BF3: STA $030F,X | + | L8BF3: |
- | L8BF6: LDA #$2C | + | L8BF6: |
- | L8BF8: STA $0305,X | + | L8BF8: |
- | L8BFB: SEC | + | L8BFB: |
- | L8BFC: SBC #$03 | + | L8BFC: |
- | L8BFE: JMP $8C7E | + | L8BFE: |
- | L8C01: LDA DoorStatus | + | L8C01: |
- | L8C03: BEQ $8C1D | + | L8C03: |
- | L8C05: LDA $030C | + | L8C05: |
- | L8C08: EOR $030C,X | + | L8C08: |
- | L8C0B: LSR | + | L8C0B: |
- | L8C0C: BCS $8C1D | + | L8C0C: |
- | L8C0E: LDA $030E | + | L8C0E: |
- | L8C11: EOR $030E,X | + | L8C11: |
- | L8C14: BMI $8C1D | + | L8C14: |
- | L8C16: LDA #$04 | + | L8C16: |
- | L8C18: STA $0300,X | + | L8C18: |
- | L8C1B: BNE $8C73 | + | L8C1B: |
- | L8C1D: LDA $0306,X | + | L8C1D: |
- | L8C20: CMP $0305,X | + | L8C20: |
- | L8C23: BCC $8C73 | + | L8C23: |
- | L8C25: LDA $030F,X | + | L8C25: |
- | L8C28: CMP #$50 | + | L8C28: |
- | L8C2A: BNE $8C57 | + | L8C2A: |
- | L8C2C: JSR $8CF7 | + | L8C2C: |
- | L8C2F: LDA $0307,X | + | L8C2F: |
- | L8C32: CMP #$01 | + | L8C32: |
- | L8C34: BEQ $8C57 | + | L8C34: |
- | L8C36: CMP #$03 | + | L8C36: |
- | L8C38: BEQ $8C57 | + | L8C38: |
- | L8C3A: LDA #$0A | + | L8C3A: |
- | L8C3C: STA $09 | + | L8C3C: |
- | L8C3E: LDA $030C,X | + | L8C3E: |
- | L8C41: STA $08 | + | L8C41: |
- | L8C43: LDY $50 | + | L8C43: |
- | L8C45: TXA | + | L8C45: |
- | L8C46: JSR $C2C5 | + | L8C46: |
- | L8C49: BCC $8C4C | + | L8C49: |
- | L8C4B: DEY | + | L8C4B: |
- | L8C4C: TYA | + | L8C4C: |
- | L8C4D: JSR $DC1E | + | L8C4D: |
- | L8C50: LDA #$00 | + | L8C50: |
- | L8C52: STA $0300,X | + | L8C52: |
- | L8C55: BEQ $8C73 | + | L8C55: |
- | L8C57: LDA $2D | + | L8C57: |
- | L8C59: LSR | + | L8C59: |
- | L8C5A: BCS $8C73 | + | L8C5A: |
- | L8C5C: DEC $030F,X | + | L8C5C: |
- | L8C5F: BNE $8C73 | + | L8C5F: |
- | L8C61: LDA #$01 | + | L8C61: |
- | L8C63: STA $030F,X | + | L8C63: |
- | L8C66: JSR $8CFB | + | L8C66: |
- | L8C69: LDA #$02 | + | L8C69: |
- | L8C6B: STA $0300,X | + | L8C6B: |
- | L8C6E: JSR $8C76 | + | L8C6E: |
- | L8C71: LDX PageIndex | + | L8C71: |
- | L8C73: JMP $8BB1 | + | L8C73: |
- | L8C76: LDA #$30 | + | L8C76: |
- | L8C78: STA $0305,X | + | L8C78: |
- | L8C7B: SEC | + | L8C7B: |
- | L8C7C: SBC #$02 | + | L8C7C: |
- | L8C7E: JSR $D2FD | + | L8C7E: |
- | L8C81: JMP $CBDA | + | L8C81: |
- | L8C84: LDA DoorStatus | + | L8C84: |
- | L8C86: CMP #$05 | + | L8C86: |
- | L8C88: BCS $8CC3 | + | L8C88: |
- | L8C8A: JSR $8CFB | + | L8C8A: |
- | L8C8D: JSR $8C76 | + | L8C8D: |
- | L8C90: LDX PageIndex | + | L8C90: |
- | L8C92: LDA $91 | + | L8C92: |
- | L8C94: BEQ $8CA7 | + | L8C94: |
- | L8C96: TXA | + | L8C96: |
- | L8C97: JSR $C2BF | + | L8C97: |
- | L8C9A: EOR $91 | + | L8C9A: |
- | L8C9C: LSR | + | L8C9C: |
- | L8C9D: BCC $8CA7 | + | L8C9D: |
- | L8C9F: LDA $76 | + | L8C9F: |
- | L8CA1: EOR #$07 | + | L8CA1: |
- | L8CA3: STA $76 | + | L8CA3: |
- | L8CA5: STA $1C | + | L8CA5: |
- | L8CA7: INC $0300,X | + | L8CA7: |
- | L8CAA: LDA #$00 | + | L8CAA: |
- | L8CAC: STA $91 | + | L8CAC: |
- | L8CAE: LDA $0307,X | + | L8CAE: |
- | L8CB1: CMP #$03 | + | L8CB1: |
- | L8CB3: BNE $8CC3 | + | L8CB3: |
- | L8CB5: TXA | + | L8CB5: |
- | L8CB6: JSR $C2C5 | + | L8CB6: |
- | L8CB9: BCS $8CC0 | + | L8CB9: |
- | L8CBB: JSR $CC07 | + | L8CBB: |
- | L8CBE: BNE $8CC3 | + | L8CBE: |
- | L8CC0: JSR $CC03 | + | L8CC0: |
- | L8CC3: JMP $8C71 | + | L8CC3: |
- | L8CC6: LDA DoorStatus | + | L8CC6: |
- | L8CC8: CMP #$05 | + | L8CC8: |
- | L8CCA: BNE $8CED | + | L8CCA: |
- | L8CCC: TXA | + | L8CCC: |
- | L8CCD: EOR #$10 | + | L8CCD: |
- | L8CCF: TAX | + | L8CCF: |
- | L8CD0: LDA #$06 | + | L8CD0: |
- | L8CD2: STA $0300,X | + | L8CD2: |
- | L8CD5: LDA #$2C | + | L8CD5: |
- | L8CD7: STA $0305,X | + | L8CD7: |
- | L8CDA: SEC | + | L8CDA: |
- | L8CDB: SBC #$03 | + | L8CDB: |
- | L8CDD: JSR $D2FD | + | L8CDD: |
- | L8CE0: JSR $CBDA | + | L8CE0: |
- | L8CE3: JSR $CB73 | + | L8CE3: |
- | L8CE6: LDX PageIndex | + | L8CE6: |
- | L8CE8: LDA #$02 | + | L8CE8: |
- | L8CEA: STA $0300,X | + | L8CEA: |
- | L8CED: JMP $8BB1 | + | L8CED: |
- | L8CF0: LDA DoorStatus | + | L8CF0: |
- | L8CF2: BNE $8CED | + | L8CF2: |
- | L8CF4: JMP $8C61 | + | L8CF4: |
- | L8CF7: LDA #$FF | + | L8CF7: |
- | L8CF9: BNE $8CFD | + | L8CF9: |
- | L8CFB: LDA #$4E | + | L8CFB: |
- | L8CFD: PHA | + | L8CFD: |
- | L8CFE: LDA #$50 | + | L8CFE: |
- | L8D00: STA $02 | + | L8D00: |
- | L8D02: TXA | + | L8D02: |
- | L8D03: JSR $C2BF | + | L8D03: |
- | L8D06: AND #$01 | + | L8D06: |
- | L8D08: TAY | + | L8D08: |
- | L8D09: LDA $8D3A,Y | + | L8D09: |
- | L8D0C: STA $03 | + | L8D0C: |
- | L8D0E: LDA $030C,X | + | L8D0E: |
- | L8D11: STA $0B | + | L8D11: |
- | L8D13: JSR $E96A | + | L8D13: |
- | L8D16: LDY #$00 | + | L8D16: |
- | L8D18: PLA | + | L8D18: |
- | L8D19: STA ($04),Y | + | L8D19: |
- | L8D1B: TAX | + | L8D1B: |
- | L8D1C: TYA | + | L8D1C: |
- | L8D1D: CLC | + | L8D1D: |
- | L8D1E: ADC #$20 | + | L8D1E: |
- | L8D20: TAY | + | L8D20: |
- | L8D21: TXA | + | L8D21: |
- | L8D22: CPY #$C0 | + | L8D22: |
- | L8D24: BNE $8D19 | + | L8D24: |
- | L8D26: LDX PageIndex | + | L8D26: |
- | L8D28: TXA | + | L8D28: |
- | L8D29: JSR $C2C0 | + | L8D29: |
- | L8D2C: AND #$06 | + | L8D2C: |
- | L8D2E: TAY | + | L8D2E: |
- | L8D2F: LDA $04 | + | L8D2F: |
- | L8D31: STA $005C,Y | + | L8D31: |
- | L8D34: LDA $05 | + | L8D34: |
- | L8D36: STA $005D,Y | + | L8D36: |
- | L8D39: RTS | + | L8D39: |
- | L8D3A: | + | L8D3A: |
- | L8D4A: | + | L8D4A: |
- | L8D5A: | + | L8D5A: |
; | ; | ||
;Kraid hideout enemy tile patterns. | ;Kraid hideout enemy tile patterns. | ||
- | L8D60: | + | L8D60: |
- | L8D70: | + | L8D70: |
- | L8D80: | + | L8D80: |
- | L8D90: | + | L8D90: |
- | L8DA0: | + | L8DA0: |
- | L8DB0: | + | L8DB0: |
- | L8DC0: | + | L8DC0: |
- | L8DD0: | + | L8DD0: |
- | L8DE0: | + | L8DE0: |
- | L8DF0: | + | L8DF0: |
- | L8E00: | + | L8E00: |
- | L8E10: | + | L8E10: |
- | L8E20: | + | L8E20: |
- | L8E30: | + | L8E30: |
- | L8E40: | + | L8E40: |
- | L8E50: | + | L8E50: |
- | L8E60: | + | L8E60: |
- | L8E70: | + | L8E70: |
- | L8E80: | + | L8E80: |
- | L8E90: | + | L8E90: |
- | L8EA0: | + | L8EA0: |
- | L8EB0: | + | L8EB0: |
- | L8EC0: | + | L8EC0: |
- | L8ED0: | + | L8ED0: |
- | L8EE0: | + | L8EE0: |
- | L8EF0: | + | L8EF0: |
- | L8F00: | + | L8F00: |
- | L8F10: | + | L8F10: |
- | L8F20: | + | L8F20: |
- | L8F30: | + | L8F30: |
- | L8F40: | + | L8F40: |
- | L8F50: | + | L8F50: |
- | L8F60: | + | L8F60: |
- | L8F70: | + | L8F70: |
- | L8F80: | + | L8F80: |
- | L8F90: | + | L8F90: |
- | L8FA0: | + | L8FA0: |
- | L8FB0: | + | L8FB0: |
- | L8FC0: | + | L8FC0: |
- | L8FD0: | + | L8FD0: |
- | L8FE0: | + | L8FE0: |
- | L8FF0: | + | L8FF0: |
- | L9000: | + | L9000: |
- | L9010: | + | L9010: |
- | L9020: | + | L9020: |
- | L9030: | + | L9030: |
- | L9040: | + | L9040: |
- | L9050: | + | L9050: |
- | L9060: | + | L9060: |
- | L9070: | + | L9070: |
- | L9080: | + | L9080: |
- | L9090: | + | L9090: |
- | L90A0: | + | L90A0: |
- | L90B0: | + | L90B0: |
- | L90C0: | + | L90C0: |
- | L90D0: | + | L90D0: |
- | L90E0: | + | L90E0: |
- | L90F0: | + | L90F0: |
- | L9100: | + | L9100: |
- | L9110: | + | L9110: |
- | L9120: | + | L9120: |
- | L9130: | + | L9130: |
- | L9140: | + | L9140: |
- | L9150: | + | L9150: |
;Ridley hideout enemy tile patterns. | ;Ridley hideout enemy tile patterns. | ||
- | L9160: | + | L9160: |
- | L9170: | + | L9170: |
- | L9180: | + | L9180: |
- | L9190: | + | L9190: |
- | L91A0: | + | L91A0: |
- | L91B0: | + | L91B0: |
- | L91C0: | + | L91C0: |
- | L91D0: | + | L91D0: |
- | L91E0: | + | L91E0: |
- | L91F0: | + | L91F0: |
- | L9200: | + | L9200: |
- | L9210: | + | L9210: |
- | L9220: | + | L9220: |
- | L9230: | + | L9230: |
- | L9240: | + | L9240: |
- | L9250: | + | L9250: |
- | L9260: | + | L9260: |
- | L9270: | + | L9270: |
- | L9280: | + | L9280: |
- | L9290: | + | L9290: |
- | L92A0: | + | L92A0: |
- | L92B0: | + | L92B0: |
- | L92C0: | + | L92C0: |
- | L92D0: | + | L92D0: |
- | L92E0: | + | L92E0: |
- | L92F0: | + | L92F0: |
- | L9300: | + | L9300: |
- | L9310: | + | L9310: |
- | L9320: | + | L9320: |
- | L9330: | + | L9330: |
- | L9340: | + | L9340: |
- | L9350: | + | L9350: |
- | L9360: | + | L9360: |
- | L9370: | + | L9370: |
- | L9380: | + | L9380: |
- | L9390: | + | L9390: |
- | L93A0: | + | L93A0: |
- | L93B0: | + | L93B0: |
- | L93C0: | + | L93C0: |
- | L93D0: | + | L93D0: |
- | L93E0: | + | L93E0: |
- | L93F0: | + | L93F0: |
- | L9400: | + | L9400: |
- | L9410: | + | L9410: |
- | L9420: | + | L9420: |
- | L9430: | + | L9430: |
- | L9440: | + | L9440: |
- | L9450: | + | L9450: |
- | L9460: | + | L9460: |
- | L9470: | + | L9470: |
- | L9480: | + | L9480: |
- | L9490: | + | L9490: |
- | L94A0: | + | L94A0: |
- | L94B0: | + | L94B0: |
- | L94C0: | + | L94C0: |
- | L94D0: | + | L94D0: |
- | L94E0: | + | L94E0: |
- | L94F0: | + | L94F0: |
- | L9500: | + | L9500: |
- | L9510: | + | L9510: |
- | L9520: | + | L9520: |
- | L9530: | + | L9530: |
- | L9540: | + | L9540: |
- | L9550: | + | L9550: |
; | ; | ||
PalPntrTbl: | PalPntrTbl: | ||
- | L9560: | + | L9560: |
- | L9562: | + | L9562: |
- | L9564: | + | L9564: |
- | L9566: | + | L9566: |
- | L9568: | + | L9568: |
- | L956A: | + | L956A: |
- | L956C: | + | L956C: |
- | L956E: | + | L956E: |
- | L9570: | + | L9570: |
- | L9572: | + | L9572: |
- | L9574: | + | L9574: |
- | L9576: | + | L9576: |
- | L9578: | + | L9578: |
- | L957A: | + | L957A: |
- | L957C: | + | L957C: |
- | L957E: | + | L957E: |
- | L9580: | + | L9580: |
- | L9582: | + | L9582: |
- | L9584: | + | L9584: |
- | L9586: | + | L9586: |
- | L9588: | + | L9588: |
- | L958A: | + | L958A: |
- | L958C: | + | L958C: |
- | L958E: | + | L958E: |
- | L9590: | + | L9590: |
- | L9592: | + | L9592: |
- | L9594: | + | L9594: |
- | L9596: | + | L9596: |
AreaPointers: | AreaPointers: | ||
- | L9598: | + | L9598: |
- | L959A: | + | L959A: |
- | L959C: | + | L959C: |
- | L959E: | + | L959E: |
- | L95A0: | + | L95A0: |
- | L95A2: | + | L95A2: |
- | L95A4: | + | L95A4: |
- | L95A6: | + | L95A6: |
- | L95A8: JMP $A320 | + | L95A8: |
- | L95AB: JMP $A315 | + | L95AB: |
- | L95AE: JMP $9C6F | + | L95AE: |
- | L95B1: JMP $9CE6 | + | L95B1: |
- | L95B4: JMP $9D21 | + | L95B4: |
- | L95B7: JMP $9D3D | + | L95B7: |
- | L95BA: JMP $9D6C | + | L95BA: |
- | L95BD: JMP $A0C6 | + | L95BD: |
- | L95C0: JMP $A142 | + | L95C0: |
AreaRoutine: | AreaRoutine: | ||
- | L95C3: JMP $9B25 ;Area specific routine. | + | L95C3: |
TwosCompliment_: | TwosCompliment_: | ||
- | L95C6: EOR #$FF ; | + | L95C6: |
- | L95C8: CLC ;The following routine returns the twos--> | + | L95C8: |
- | L95C9: ADC #$01 ;compliment of the value stored in A. | + | L95C9: |
- | L95CB: RTS ; | + | L95CB: |
- | L95CC: | + | L95CC: |
- | L95CD: | + | L95CD: |
- | L95CE: | + | L95CE: |
- | L95CF: | + | L95CF: |
;Special room numbers(used to start item room music). | ;Special room numbers(used to start item room music). | ||
- | L95D0: | + | L95D0: |
- | L95D7: | + | L95D7: |
- | L95D8: | + | L95D8: |
- | L95D9: | + | L95D9: |
- | L95DA: | + | L95DA: |
- | L95E5: LDA $6B02,X | + | L95E5: |
- | L95E8: JSR $8024 | + | L95E8: |
- | L95EB: | + | L95EB: |
- | L95ED: | + | L95ED: |
- | L95EF: | + | L95EF: |
- | L95F1: | + | L95F1: |
- | L95F3: | + | L95F3: |
- | L95F5: | + | L95F5: |
- | L95F7: | + | L95F7: |
- | L95F9: | + | L95F9: |
- | L95FB: | + | L95FB: |
- | L95FD: | + | L95FD: |
- | L95FF: | + | L95FF: |
- | L9601: | + | L9601: |
- | L9603: | + | L9603: |
- | L9605: | + | L9605: |
- | L9607: | + | L9607: |
- | L9609: | + | L9609: |
- | L960B: | + | L960B: |
- | L961B: | + | L961B: |
- | L962B: | + | L962B: |
- | L963B: | + | L963B: |
- | L964B: | + | L964B: |
- | L965B: | + | L965B: |
- | L966B: | + | L966B: |
- | L967B: | + | L967B: |
- | L968B: | + | L968B: |
- | L969B: | + | L969B: |
- | L96AB: | + | L96AB: |
- | L96BB: | + | L96BB: |
- | L96CB: | + | L96CB: |
- | L96DB: | + | L96DB: |
- | L96EB: | + | L96EB: |
- | L96FB: | + | L96FB: |
- | L970B: | + | L970B: |
- | L971B: | + | L971B: |
- | L9723: | + | L9723: |
- | L9733: | + | L9733: |
- | L9743: | + | L9743: |
- | L9753: | + | L9753: |
- | L9763: | + | L9763: |
- | L9773: | + | L9773: |
- | L977B: | + | L977B: |
- | L978B: | + | L978B: |
- | L979B: | + | L979B: |
- | L97A7: | + | L97A7: |
- | L97B7: | + | L97B7: |
- | L97C7: | + | L97C7: |
- | L97D1: | + | L97D1: |
- | L97D5: | + | L97D5: |
- | L97D8: | + | L97D8: |
- | L97DB: | + | L97DB: |
- | L97DC: LDA #$00 | + | L97DC: |
- | L97DE: STA $6AF4,X | + | L97DE: |
- | L97E1: RTS | + | L97E1: |
- | L97E2: LDA $81 | + | L97E2: |
- | L97E4: CMP #$01 | + | L97E4: |
- | L97E6: BEQ $97F1 | + | L97E6: |
- | L97E8: CMP #$03 | + | L97E8: |
- | L97EA: BEQ $97F6 | + | L97EA: |
- | L97EC: LDA $00 | + | L97EC: |
- | L97EE: JMP $8000 | + | L97EE: |
- | L97F1: LDA $01 | + | L97F1: |
- | L97F3: JMP $8003 | + | L97F3: |
- | L97F6: JMP $8006 | + | L97F6: |
- | L97F9: LDY $010B | + | L97F9: |
- | L97FC: INY | + | L97FC: |
- | L97FD: BEQ $9804 | + | L97FD: |
- | L97FF: LDA #$00 | + | L97FF: |
- | L9801: STA $6AF4,X | + | L9801: |
- | L9804: LDA #$0F | + | L9804: |
- | L9806: STA $00 | + | L9806: |
- | L9808: STA $01 | + | L9808: |
- | L980A: LDA $0405,X | + | L980A: |
- | L980D: ASL | + | L980D: |
- | L980E: BMI $97E2 | + | L980E: |
- | L9810: LDA $6AF4,X | + | L9810: |
- | L9813: CMP #$03 | + | L9813: |
- | L9815: BEQ $97E2 | + | L9815: |
- | L9817: JSR $99B7 | + | L9817: |
- | L981A: LDA $77F8,Y | + | L981A: |
- | L981D: BEQ $9822 | + | L981D: |
- | L981F: JMP $9899 | + | L981F: |
- | L9822: LDY $0408,X | + | L9822: |
- | L9825: LDA $77F6,Y | + | L9825: |
- | L9828: PHA | + | L9828: |
- | L9829: LDA $0402,X | + | L9829: |
- | L982C: BPL $983B | + | L982C: |
- | L982E: PLA | + | L982E: |
- | L982F: JSR $95C6 | + | L982F: |
- | L9832: PHA | + | L9832: |
- | L9833: LDA #$00 | + | L9833: |
- | L9835: CMP $0406,X | + | L9835: |
- | L9838: SBC $0402,X | + | L9838: |
- | L983B: CMP $77F6,Y | + | L983B: |
- | L983E: PLA | + | L983E: |
- | L983F: BCC $9849 | + | L983F: |
- | L9841: STA $0402,X | + | L9841: |
- | L9844: LDA #$00 | + | L9844: |
- | L9846: STA $0406,X | + | L9846: |
- | L9849: LDA $77F6,Y | + | L9849: |
- | L984C: PHA | + | L984C: |
- | L984D: LDA $0403,X | + | L984D: |
- | L9850: BPL $985F | + | L9850: |
- | L9852: PLA | + | L9852: |
- | L9853: JSR $95C6 | + | L9853: |
- | L9856: PHA | + | L9856: |
- | L9857: LDA #$00 | + | L9857: |
- | L9859: CMP $0407,X | + | L9859: |
- | L985C: SBC $0403,X | + | L985C: |
- | L985F: CMP $77F6,Y | + | L985F: |
- | L9862: PLA | + | L9862: |
- | L9863: BCC $986D | + | L9863: |
- | L9865: STA $0403,X | + | L9865: |
- | L9868: LDA #$00 | + | L9868: |
- | L986A: STA $0407,X | + | L986A: |
- | L986D: LDA $0405,X | + | L986D: |
- | L9870: PHA | + | L9870: |
- | L9871: JSR $9A06 | + | L9871: |
- | L9874: STA $6AFF,X | + | L9874: |
- | L9877: PLA | + | L9877: |
- | L9878: LSR | + | L9878: |
- | L9879: LSR | + | L9879: |
- | L987A: JSR $9A06 | + | L987A: |
- | L987D: STA $6AFE,X | + | L987D: |
- | L9880: LDA $6AF4,X | + | L9880: |
- | L9883: CMP #$04 | + | L9883: |
- | L9885: BNE $9894 | + | L9885: |
- | L9887: LDY $040B,X | + | L9887: |
- | L988A: INY | + | L988A: |
- | L988B: BNE $9899 | + | L988B: |
- | L988D: LDA #$05 | + | L988D: |
- | L988F: STA $040B,X | + | L988F: |
- | L9892: BNE $9899 | + | L9892: |
- | L9894: LDA #$FF | + | L9894: |
- | L9896: STA $040B,X | + | L9896: |
- | L9899: LDA $81 | + | L9899: |
- | L989B: CMP #$06 | + | L989B: |
- | L989D: BNE $98A9 | + | L989D: |
- | L989F: CMP $6AF4,X | + | L989F: |
- | L98A2: BEQ $98A9 | + | L98A2: |
- | L98A4: LDA #$04 | + | L98A4: |
- | L98A6: STA $6AF4,X | + | L98A6: |
- | L98A9: LDA $0404,X | + | L98A9: |
- | L98AC: AND #$20 | + | L98AC: |
- | L98AE: BEQ $990F | + | L98AE: |
- | L98B0: JSR $99B7 | + | L98B0: |
- | L98B3: LDA $77F8,Y | + | L98B3: |
- | L98B6: BEQ $98EF | + | L98B6: |
- | L98B8: LDA $040E,X | + | L98B8: |
- | L98BB: CMP #$07 | + | L98BB: |
- | L98BD: BEQ $98C3 | + | L98BD: |
- | L98BF: CMP #$0A | + | L98BF: |
- | L98C1: BNE $9932 | + | L98C1: |
- | L98C3: LDA $2D | + | L98C3: |
- | L98C5: AND #$02 | + | L98C5: |
- | L98C7: BNE $9932 | + | L98C7: |
- | L98C9: LDA $77F8,Y | + | L98C9: |
- | L98CC: CLC | + | L98CC: |
- | L98CD: ADC #$10 | + | L98CD: |
- | L98CF: STA $77F8,Y | + | L98CF: |
- | L98D2: AND #$70 | + | L98D2: |
- | L98D4: CMP #$50 | + | L98D4: |
- | L98D6: BNE $9932 | + | L98D6: |
- | L98D8: LDA #$02 | + | L98D8: |
- | L98DA: ORA $040F,X | + | L98DA: |
- | L98DD: STA $040C,X | + | L98DD: |
- | L98E0: LDA #$06 | + | L98E0: |
- | L98E2: STA $6AF4,X | + | L98E2: |
- | L98E5: LDA #$20 | + | L98E5: |
- | L98E7: STA $040F,X | + | L98E7: |
- | L98EA: LDA #$01 | + | L98EA: |
- | L98EC: STA $040D,X | + | L98EC: |
- | L98EF: LDA #$00 | + | L98EF: |
- | L98F1: STA $0404,X | + | L98F1: |
- | L98F4: STA $77F8,Y | + | L98F4: |
- | L98F7: STA $0406,X | + | L98F7: |
- | L98FA: STA $0407,X | + | L98FA: |
- | L98FD: LDA $6AFE,X | + | L98FD: |
- | L9900: JSR $9A10 | + | L9900: |
- | L9903: STA $0402,X | + | L9903: |
- | L9906: LDA $6AFF,X | + | L9906: |
- | L9909: JSR $9A10 | + | L9909: |
- | L990C: STA $0403,X | + | L990C: |
- | L990F: JSR $99B7 | + | L990F: |
- | L9912: LDA $77F8,Y | + | L9912: |
- | L9915: BNE $9932 | + | L9915: |
- | L9917: LDA $0404,X | + | L9917: |
- | L991A: AND #$04 | + | L991A: |
- | L991C: BEQ $9964 | + | L991C: |
- | L991E: LDA $0403,X | + | L991E: |
- | L9921: AND #$80 | + | L9921: |
- | L9923: ORA #$01 | + | L9923: |
- | L9925: TAY | + | L9925: |
- | L9926: JSR $99C3 | + | L9926: |
- | L9929: JSR $99BD | + | L9929: |
- | L992C: TYA | + | L992C: |
- | L992D: STA $77F8,X | + | L992D: |
- | L9930: TXA | + | L9930: |
- | L9931: TAY | + | L9931: |
- | L9932: TYA | + | L9932: |
- | L9933: TAX | + | L9933: |
- | L9934: LDA $77F8,X | + | L9934: |
- | L9937: PHP | + | L9937: |
- | L9938: AND #$0F | + | L9938: |
- | L993A: CMP #$0C | + | L993A: |
- | L993C: BEQ $9941 | + | L993C: |
- | L993E: INC $77F8,X | + | L993E: |
- | L9941: TAY | + | L9941: |
- | L9942: LDA $99D7,Y | + | L9942: |
- | L9945: STA $04 | + | L9945: |
- | L9947: STY $05 | + | L9947: |
- | L9949: LDA #$0C | + | L9949: |
- | L994B: SEC | + | L994B: |
- | L994C: SBC $05 | + | L994C: |
- | L994E: LDX $4B | + | L994E: |
- | L9950: PLP | + | L9950: |
- | L9951: BMI $9956 | + | L9951: |
- | L9953: JSR $95C6 | + | L9953: |
- | L9956: STA $05 | + | L9956: |
- | L9958: JSR $99E4 | + | L9958: |
- | L995B: JSR $8027 | + | L995B: |
- | L995E: JSR $99F4 | + | L995E: |
- | L9961: JMP $9967 | + | L9961: |
- | L9964: JSR $99AE | + | L9964: |
- | L9967: LDA $6AF4,X | + | L9967: |
- | L996A: CMP #$03 | + | L996A: |
- | L996C: BNE $9971 | + | L996C: |
- | L996E: JSR $99AE | + | L996E: |
- | L9971: LDY #$00 | + | L9971: |
- | L9973: LDA $77F8 | + | L9973: |
- | L9976: ORA $77F9 | + | L9976: |
- | L9979: ORA $77FA | + | L9979: |
- | L997C: ORA $77FB | + | L997C: |
- | L997F: ORA $77FC | + | L997F: |
- | L9982: ORA $77FD | + | L9982: |
- | L9985: AND #$0C | + | L9985: |
- | L9987: CMP #$0C | + | L9987: |
- | L9989: BNE $999E | + | L9989: |
- | L998B: LDA $0106 | + | L998B: |
- | L998E: ORA $0107 | + | L998E: |
- | L9991: BEQ $999E | + | L9991: |
- | L9993: STY $6F | + | L9993: |
- | L9995: LDY #$04 | + | L9995: |
- | L9997: STY $6E | + | L9997: |
- | L9999: JSR $8042 | + | L9999: |
- | L999C: LDY #$01 | + | L999C: |
- | L999E: STY $92 | + | L999E: |
- | L99A0: LDA $6B | + | L99A0: |
- | L99A2: BMI $99AB | + | L99A2: |
- | L99A4: LDA $6B02,X | + | L99A4: |
- | L99A7: ORA #$A2 | + | L99A7: |
- | L99A9: STA $6B | + | L99A9: |
- | L99AB: JMP $97E2 | + | L99AB: |
- | L99AE: JSR $99B7 | + | L99AE: |
- | L99B1: LDA #$00 | + | L99B1: |
- | L99B3: STA $77F8,Y | + | L99B3: |
- | L99B6: RTS | + | L99B6: |
- | L99B7: TXA | + | L99B7: |
- | L99B8: JSR $9B1B | + | L99B8: |
- | L99BB: TAY | + | L99BB: |
- | L99BC: RTS | + | L99BC: |
- | L99BD: TXA | + | L99BD: |
- | L99BE: JSR $9B1B | + | L99BE: |
- | L99C1: TAX | + | L99C1: |
- | L99C2: RTS | + | L99C2: |
- | L99C3: LDA #$00 | + | L99C3: |
- | L99C5: STA $0402,X | + | L99C5: |
- | L99C8: STA $0403,X | + | L99C8: |
- | L99CB: STA $0407,X | + | L99CB: |
- | L99CE: STA $0406,X | + | L99CE: |
- | L99D1: STA $6AFF,X | + | L99D1: |
- | L99D4: STA $6AFE,X | + | L99D4: |
- | L99D7: RTS | + | L99D7: |
- | L99D8: | + | L99D8: |
- | L99E4: LDA $030E | + | L99E4: |
- | L99E7: STA $09 | + | L99E7: |
- | L99E9: LDA $030D | + | L99E9: |
- | L99EC: STA $08 | + | L99EC: |
- | L99EE: LDA $030C | + | L99EE: |
- | L99F1: STA $0B | + | L99F1: |
- | L99F3: RTS | + | L99F3: |
- | L99F4: LDA $09 | + | L99F4: |
- | L99F6: STA $0401,X | + | L99F6: |
- | L99F9: LDA $08 | + | L99F9: |
- | L99FB: STA $0400,X | + | L99FB: |
- | L99FE: LDA $0B | + | L99FE: |
- | L9A00: AND #$01 | + | L9A00: |
- | L9A02: STA $6AFB,X | + | L9A02: |
- | L9A05: RTS | + | L9A05: |
- | L9A06: LSR | + | L9A06: |
- | L9A07: LDA $0408,X | + | L9A07: |
- | L9A0A: ROL | + | L9A0A: |
- | L9A0B: TAY | + | L9A0B: |
- | L9A0C: LDA $77F2,Y | + | L9A0C: |
- | L9A0F: RTS | + | L9A0F: |
- | L9A10: ASL | + | L9A10: |
- | L9A11: ROL | + | L9A11: |
- | L9A12: AND #$01 | + | L9A12: |
- | L9A14: TAY | + | L9A14: |
- | L9A15: LDA $77F0,Y | + | L9A15: |
- | L9A18: RTS | + | L9A18: |
- | L9A19: | + | L9A19: |
- | L9A27: LDA #$01 | + | L9A27: |
- | L9A29: JMP $8003 | + | L9A29: |
- | L9A2C: LDY $6AF4,X | + | L9A2C: |
- | L9A2F: CPY #$02 | + | L9A2F: |
- | L9A31: BNE $9AB0 | + | L9A31: |
- | L9A33: DEY | + | L9A33: |
- | L9A34: CPY $81 | + | L9A34: |
- | L9A36: BNE $9AB0 | + | L9A36: |
- | L9A38: LDA #$00 | + | L9A38: |
- | L9A3A: JSR $99D1 | + | L9A3A: |
- | L9A3D: STA $6AFC,X | + | L9A3D: |
- | L9A40: STA $6AFD,X | + | L9A40: |
- | L9A43: LDA $030E | + | L9A43: |
- | L9A46: SEC | + | L9A46: |
- | L9A47: SBC $0401,X | + | L9A47: |
- | L9A4A: STA $01 | + | L9A4A: |
- | L9A4C: LDA $0405,X | + | L9A4C: |
- | L9A4F: PHA | + | L9A4F: |
- | L9A50: LSR | + | L9A50: |
- | L9A51: PHA | + | L9A51: |
- | L9A52: BCC $9A5A | + | L9A52: |
- | L9A54: LDA #$00 | + | L9A54: |
- | L9A56: SBC $01 | + | L9A56: |
- | L9A58: STA $01 | + | L9A58: |
- | L9A5A: LDA $030D | + | L9A5A: |
- | L9A5D: SEC | + | L9A5D: |
- | L9A5E: SBC $0400,X | + | L9A5E: |
- | L9A61: STA $00 | + | L9A61: |
- | L9A63: PLA | + | L9A63: |
- | L9A64: LSR | + | L9A64: |
- | L9A65: LSR | + | L9A65: |
- | L9A66: BCC $9A6E | + | L9A66: |
- | L9A68: LDA #$00 | + | L9A68: |
- | L9A6A: SBC $00 | + | L9A6A: |
- | L9A6C: STA $00 | + | L9A6C: |
- | L9A6E: LDA $00 | + | L9A6E: |
- | L9A70: ORA $01 | + | L9A70: |
- | L9A72: LDY #$03 | + | L9A72: |
- | L9A74: ASL | + | L9A74: |
- | L9A75: BCS $9A7A | + | L9A75: |
- | L9A77: DEY | + | L9A77: |
- | L9A78: BNE $9A74 | + | L9A78: |
- | L9A7A: DEY | + | L9A7A: |
- | L9A7B: BMI $9A83 | + | L9A7B: |
- | L9A7D: LSR $00 | + | L9A7D: |
- | L9A7F: LSR $01 | + | L9A7F: |
- | L9A81: BPL $9A7A | + | L9A81: |
- | L9A83: JSR $9AF9 | + | L9A83: |
- | L9A86: PLA | + | L9A86: |
- | L9A87: LSR | + | L9A87: |
- | L9A88: PHA | + | L9A88: |
- | L9A89: BCC $9A9B | + | L9A89: |
- | L9A8B: LDA #$00 | + | L9A8B: |
- | L9A8D: SBC $0407,X | + | L9A8D: |
- | L9A90: STA $0407,X | + | L9A90: |
- | L9A93: LDA #$00 | + | L9A93: |
- | L9A95: SBC $0403,X | + | L9A95: |
- | L9A98: STA $0403,X | + | L9A98: |
- | L9A9B: PLA | + | L9A9B: |
- | L9A9C: LSR | + | L9A9C: |
- | L9A9D: LSR | + | L9A9D: |
- | L9A9E: BCC $9AB0 | + | L9A9E: |
- | L9AA0: LDA #$00 | + | L9AA0: |
- | L9AA2: SBC $0406,X | + | L9AA2: |
- | L9AA5: STA $0406,X | + | L9AA5: |
- | L9AA8: LDA #$00 | + | L9AA8: |
- | L9AAA: SBC $0402,X | + | L9AAA: |
- | L9AAD: STA $0402,X | + | L9AAD: |
- | L9AB0: LDA $0405,X | + | L9AB0: |
- | L9AB3: ASL | + | L9AB3: |
- | L9AB4: BMI $9AF4 | + | L9AB4: |
- | L9AB6: LDA $0406,X | + | L9AB6: |
- | L9AB9: CLC | + | L9AB9: |
- | L9ABA: ADC $6AFC,X | + | L9ABA: |
- | L9ABD: STA $6AFC,X | + | L9ABD: |
- | L9AC0: LDA $0402,X | + | L9AC0: |
- | L9AC3: ADC #$00 | + | L9AC3: |
- | L9AC5: STA $04 | + | L9AC5: |
- | L9AC7: LDA $0407,X | + | L9AC7: |
- | L9ACA: CLC | + | L9ACA: |
- | L9ACB: ADC $6AFD,X | + | L9ACB: |
- | L9ACE: STA $6AFD,X | + | L9ACE: |
- | L9AD1: LDA $0403,X | + | L9AD1: |
- | L9AD4: ADC #$00 | + | L9AD4: |
- | L9AD6: STA $05 | + | L9AD6: |
- | L9AD8: LDA $0400,X | + | L9AD8: |
- | L9ADB: STA $08 | + | L9ADB: |
- | L9ADD: LDA $0401,X | + | L9ADD: |
- | L9AE0: STA $09 | + | L9AE0: |
- | L9AE2: LDA $6AFB,X | + | L9AE2: |
- | L9AE5: STA $0B | + | L9AE5: |
- | L9AE7: JSR $8027 | + | L9AE7: |
- | L9AEA: BCS $9AF1 | + | L9AEA: |
- | L9AEC: LDA #$00 | + | L9AEC: |
- | L9AEE: STA $6AF4,X | + | L9AEE: |
- | L9AF1: JSR $99F4 | + | L9AF1: |
- | L9AF4: LDA #$08 | + | L9AF4: |
- | L9AF6: JMP $8003 | + | L9AF6: |
- | L9AF9: LDA $00 | + | L9AF9: |
- | L9AFB: PHA | + | L9AFB: |
- | L9AFC: JSR $9B1B | + | L9AFC: |
- | L9AFF: STA $0402,X | + | L9AFF: |
- | L9B02: PLA | + | L9B02: |
- | L9B03: JSR $9B20 | + | L9B03: |
- | L9B06: STA $0406,X | + | L9B06: |
- | L9B09: LDA $01 | + | L9B09: |
- | L9B0B: PHA | + | L9B0B: |
- | L9B0C: JSR $9B1B | + | L9B0C: |
- | L9B0F: STA $0403,X | + | L9B0F: |
- | L9B12: PLA | + | L9B12: |
- | L9B13: JSR $9B20 | + | L9B13: |
- | L9B16: STA $0407,X | + | L9B16: |
- | L9B19: RTS | + | L9B19: |
- | L9B1A: LSR | + | L9B1A: |
- | L9B1B: LSR | + | L9B1B: |
- | L9B1C: LSR | + | L9B1C: |
- | L9B1D: LSR | + | L9B1D: |
- | L9B1E: LSR | + | L9B1E: |
- | L9B1F: RTS | + | L9B1F: |
- | L9B20: ASL | + | L9B20: |
- | L9B21: ASL | + | L9B21: |
- | L9B22: ASL | + | L9B22: |
- | L9B23: ASL | + | L9B23: |
- | L9B24: RTS | + | L9B24: |
- | L9B25: JSR $9B37 | + | L9B25: |
- | L9B28: JSR $9DD4 | + | L9B28: |
- | L9B2B: JSR $A1E7 | + | L9B2B: |
- | L9B2E: JSR $A238 | + | L9B2E: |
- | L9B31: JSR $A28B | + | L9B31: |
- | L9B34: JMP $A15E | + | L9B34: |
- | L9B37: LDX #$78 | + | L9B37: |
- | L9B39: JSR $9B44 | + | L9B39: |
- | L9B3C: LDA $97 | + | L9B3C: |
- | L9B3E: SEC | + | L9B3E: |
- | L9B3F: SBC #$08 | + | L9B3F: |
- | L9B41: TAX | + | L9B41: |
- | L9B42: BNE $9B39 | + | L9B42: |
- | L9B44: STX $97 | + | L9B44: |
- | L9B46: LDY $6BF4,X | + | L9B46: |
- | L9B49: BNE $9B4C | + | L9B49: |
- | L9B4B: RTS | + | L9B4B: |
- | L9B4C: JSR $9C4D | + | L9B4C: |
- | L9B4F: TYA | + | L9B4F: |
- | L9B50: BNE $9B4B | + | L9B50: |
- | L9B52: LDY $010B | + | L9B52: |
- | L9B55: INY | + | L9B55: |
- | L9B56: BNE $9B65 | + | L9B56: |
- | L9B58: LDA $6BF8,X | + | L9B58: |
- | L9B5B: CMP #$05 | + | L9B5B: |
- | L9B5D: BEQ $9B4B | + | L9B5D: |
- | L9B5F: JSR $9B70 | + | L9B5F: |
- | L9B62: JMP $9C2B | + | L9B62: |
- | L9B65: LDA $2D | + | L9B65: |
- | L9B67: AND #$02 | + | L9B67: |
- | L9B69: BNE $9B4B | + | L9B69: |
- | L9B6B: LDA #$19 | + | L9B6B: |
- | L9B6D: JMP $9C31 | + | L9B6D: |
- | L9B70: LDY $6BF8,X | + | L9B70: |
- | L9B73: LDA $6BFA,X | + | L9B73: |
- | L9B76: BNE $9B81 | + | L9B76: |
- | L9B78: LDA $9D8F,Y | + | L9B78: |
- | L9B7B: STA $6BFA,X | + | L9B7B: |
- | L9B7E: INC $6BFB,X | + | L9B7E: |
- | L9B81: DEC $6BFA,X | + | L9B81: |
- | L9B84: LDA $9D94,Y | + | L9B84: |
- | L9B87: CLC | + | L9B87: |
- | L9B88: ADC $6BFB,X | + | L9B88: |
- | L9B8B: TAY | + | L9B8B: |
- | L9B8C: LDA $9D99,Y | + | L9B8C: |
- | L9B8F: BPL $9BAB | + | L9B8F: |
- | L9B91: CMP #$FF | + | L9B91: |
- | L9B93: BNE $9B9F | + | L9B93: |
- | L9B95: LDY $6BF8,X | + | L9B95: |
- | L9B98: LDA #$00 | + | L9B98: |
- | L9B9A: STA $6BFB,X | + | L9B9A: |
- | L9B9D: BEQ $9B84 | + | L9B9D: |
- | L9B9F: INC $6BFB,X | + | L9B9F: |
- | L9BA2: JSR $9BAF | + | L9BA2: |
- | L9BA5: LDY $6BF8,X | + | L9BA5: |
- | L9BA8: JMP $9B84 | + | L9BA8: |
- | L9BAB: STA $6BF9,X | + | L9BAB: |
- | L9BAE: RTS | + | L9BAE: |
- | L9BAF: PHA | + | L9BAF: |
- | L9BB0: LDA MotherBrainStatus | + | L9BB0: |
- | L9BB2: CMP #$04 | + | L9BB2: |
- | L9BB4: BCS $9BC6 | + | L9BB4: |
- | L9BB6: LDY #$60 | + | L9BB6: |
- | L9BB8: LDA $6AF4,Y | + | L9BB8: |
- | L9BBB: BEQ $9BC8 | + | L9BBB: |
- | L9BBD: TYA | + | L9BBD: |
- | L9BBE: CLC | + | L9BBE: |
- | L9BBF: ADC #$10 | + | L9BBF: |
- | L9BC1: TAY | + | L9BC1: |
- | L9BC2: CMP #$A0 | + | L9BC2: |
- | L9BC4: BNE $9BB8 | + | L9BC4: |
- | L9BC6: PLA | + | L9BC6: |
- | L9BC7: RTS | + | L9BC7: |
- | L9BC8: STY $4B | + | L9BC8: |
- | L9BCA: LDA $6BF5,X | + | L9BCA: |
- | L9BCD: STA $0400,Y | + | L9BCD: |
- | L9BD0: LDA $6BF6,X | + | L9BD0: |
- | L9BD3: STA $0401,Y | + | L9BD3: |
- | L9BD6: LDA $6BF7,X | + | L9BD6: |
- | L9BD9: STA $6AFB,Y | + | L9BD9: |
- | L9BDC: LDA #$02 | + | L9BDC: |
- | L9BDE: STA $6AF4,Y | + | L9BDE: |
- | L9BE1: LDA #$00 | + | L9BE1: |
- | L9BE3: STA $0409,Y | + | L9BE3: |
- | L9BE6: STA $6AF8,Y | + | L9BE6: |
- | L9BE9: STA $0408,Y | + | L9BE9: |
- | L9BEC: PLA | + | L9BEC: |
- | L9BED: JSR $95C6 | + | L9BED: |
- | L9BF0: TAX | + | L9BF0: |
- | L9BF1: STA $040A,Y | + | L9BF1: |
- | L9BF4: ORA #$02 | + | L9BF4: |
- | L9BF6: STA $0405,Y | + | L9BF6: |
- | L9BF9: LDA $9C26,X | + | L9BF9: |
- | L9BFC: STA $6AF9,Y | + | L9BFC: |
- | L9BFF: STA $6AFA,Y | + | L9BFF: |
- | L9C02: LDA $9DCC,X | + | L9C02: |
- | L9C05: STA $05 | + | L9C05: |
- | L9C07: LDA $9DCF,X | + | L9C07: |
- | L9C0A: STA $04 | + | L9C0A: |
- | L9C0C: LDX $97 | + | L9C0C: |
- | L9C0E: LDA $6BF5,X | + | L9C0E: |
- | L9C11: STA $08 | + | L9C11: |
- | L9C13: LDA $6BF6,X | + | L9C13: |
- | L9C16: STA $09 | + | L9C16: |
- | L9C18: LDA $6BF7,X | + | L9C18: |
- | L9C1B: STA $0B | + | L9C1B: |
- | L9C1D: TYA | + | L9C1D: |
- | L9C1E: TAX | + | L9C1E: |
- | L9C1F: JSR $8027 | + | L9C1F: |
- | L9C22: JSR $99F4 | + | L9C22: |
- | L9C25: LDX $97 | + | L9C25: |
- | L9C27: RTS | + | L9C27: |
- | L9C28: | + | L9C28: |
- | L9c2B: LDY $6BF9,X | + | L9c2B: |
- | L9C2E: LDA $9DC6,Y | + | L9C2E: |
- | L9C31: STA $6BD7 | + | L9C31: |
- | L9C34: LDA $6BF5,X | + | L9C34: |
- | L9C37: STA $04E0 | + | L9C37: |
- | L9C3A: LDA $6BF6,X | + | L9C3A: |
- | L9C3D: STA $04E1 | + | L9C3D: |
- | L9C40: LDA $6BF7,X | + | L9C40: |
- | L9C43: STA $6BDB | + | L9C43: |
- | L9C46: LDA #$E0 | + | L9C46: |
- | L9C48: STA $4B | + | L9C48: |
- | L9C4A: JMP $803C | + | L9C4A: |
- | L9C4D: LDY #$00 | + | L9C4D: |
- | L9C4F: LDA $6BF6,X | + | L9C4F: |
- | L9C52: CMP $FD | + | L9C52: |
- | L9C54: LDA $49 | + | L9C54: |
- | L9C56: AND #$02 | + | L9C56: |
- | L9C58: BNE $9C5F | + | L9C58: |
- | L9C5A: LDA $6BF5,X | + | L9C5A: |
- | L9C5D: CMP $FC | + | L9C5D: |
- | L9C5F: LDA $6BF7,X | + | L9C5F: |
- | L9C62: EOR $FF | + | L9C62: |
- | L9C64: AND #$01 | + | L9C64: |
- | L9C66: BEQ $9C6B | + | L9C66: |
- | L9C68: BCS $9C6D | + | L9C68: |
- | L9C6A: SEC | + | L9C6A: |
- | L9C6B: BCS $9C6E | + | L9C6B: |
- | L9C6D: INY | + | L9C6D: |
- | L9C6E: RTS | + | L9C6E: |
- | L9C6F: STY $02 | + | L9C6F: |
- | L9C71: LDY #$00 | + | L9C71: |
- | L9C73: LDA $6BF7,Y | + | L9C73: |
- | L9C76: EOR $02 | + | L9C76: |
- | L9C78: LSR | + | L9C78: |
- | L9C79: BCS $9C80 | + | L9C79: |
- | L9C7B: LDA #$00 | + | L9C7B: |
- | L9C7D: STA $6BF4,Y | + | L9C7D: |
- | L9C80: TYA | + | L9C80: |
- | L9C81: CLC | + | L9C81: |
- | L9C82: ADC #$08 | + | L9C82: |
- | L9C84: TAY | + | L9C84: |
- | L9C85: BPL $9C73 | + | L9C85: |
- | L9C87: LDX #$00 | + | L9C87: |
- | L9C89: LDA $0758,X | + | L9C89: |
- | L9C8C: BEQ $9C99 | + | L9C8C: |
- | L9C8E: JSR $9D64 | + | L9C8E: |
- | L9C91: EOR $075A,X | + | L9C91: |
- | L9C94: BNE $9C99 | + | L9C94: |
- | L9C96: STA $0758,X | + | L9C96: |
- | L9C99: TXA | + | L9C99: |
- | L9C9A: CLC | + | L9C9A: |
- | L9C9B: ADC #$08 | + | L9C9B: |
- | L9C9D: TAX | + | L9C9D: |
- | L9C9E: CMP #$28 | + | L9C9E: |
- | L9CA0: BNE $9C89 | + | L9CA0: |
- | L9CA2: LDX #$00 | + | L9CA2: |
- | L9CA4: JSR $9CD6 | + | L9CA4: |
- | L9CA7: LDX #$03 | + | L9CA7: |
- | L9CA9: JSR $9CD6 | + | L9CA9: |
- | L9CAC: LDA MotherBrainStatus | + | L9CAC: |
- | L9CAE: BEQ $9CC3 | + | L9CAE: |
- | L9CB0: CMP #$07 | + | L9CB0: |
- | L9CB2: BEQ $9CC3 | + | L9CB2: |
- | L9CB4: CMP #$0A | + | L9CB4: |
- | L9CB6: BEQ $9CC3 | + | L9CB6: |
- | L9CB8: LDA $9D | + | L9CB8: |
- | L9CBA: EOR $02 | + | L9CBA: |
- | L9CBC: LSR | + | L9CBC: |
- | L9CBD: BCS $9CC3 | + | L9CBD: |
- | L9CBF: LDA #$00 | + | L9CBF: |
- | L9CC1: STA MotherBrainStatus | + | L9CC1: |
- | L9CC3: LDA $010D | + | L9CC3: |
- | L9CC6: BEQ $9CD5 | + | L9CC6: |
- | L9CC8: LDA $010C | + | L9CC8: |
- | L9CCB: EOR $02 | + | L9CCB: |
- | L9CCD: LSR | + | L9CCD: |
- | L9CCE: BCS $9CD5 | + | L9CCE: |
- | L9CD0: LDA #$00 | + | L9CD0: |
- | L9CD2: STA $010D | + | L9CD2: |
- | L9CD5: RTS | + | L9CD5: |
- | L9CD6: LDA $8B,X | + | L9CD6: |
- | L9CD8: BMI $9CE5 | + | L9CD8: |
- | L9CDA: LDA $8C,X | + | L9CDA: |
- | L9CDC: EOR $02 | + | L9CDC: |
- | L9CDE: LSR | + | L9CDE: |
- | L9CDF: BCS $9CE5 | + | L9CDF: |
- | L9CE1: LDA #$FF | + | L9CE1: |
- | L9CE3: STA $8B,X | + | L9CE3: |
- | L9CE5: RTS | + | L9CE5: |
- | L9CE6: LDX #$00 | + | L9CE6: |
- | L9CE8: LDA $6BF4,X | + | L9CE8: |
- | L9CEB: BEQ $9CF6 | + | L9CEB: |
- | L9CED: TXA | + | L9CED: |
- | L9CEE: CLC | + | L9CEE: |
- | L9CEF: ADC #$08 | + | L9CEF: |
- | L9CF1: TAX | + | L9CF1: |
- | L9CF2: BPL $9CE8 | + | L9CF2: |
- | L9CF4: BMI $9D20 | + | L9CF4: |
- | L9CF6: LDA ($00),Y | + | L9CF6: |
- | L9CF8: JSR $9B1B | + | L9CF8: |
- | L9CFB: STA $6BF8,X | + | L9CFB: |
- | L9CFE: LDA #$01 | + | L9CFE: |
- | L9D00: STA $6BF4,X | + | L9D00: |
- | L9D03: STA $6BFB,X | + | L9D03: |
- | L9D06: INY | + | L9D06: |
- | L9D07: LDA ($00),Y | + | L9D07: |
- | L9D09: PHA | + | L9D09: |
- | L9D0A: AND #$F0 | + | L9D0A: |
- | L9D0C: ORA #$07 | + | L9D0C: |
- | L9D0E: STA $6BF5,X | + | L9D0E: |
- | L9D11: PLA | + | L9D11: |
- | L9D12: JSR $9B20 | + | L9D12: |
- | L9D15: ORA #$07 | + | L9D15: |
- | L9D17: STA $6BF6,X | + | L9D17: |
- | L9D1A: JSR $9D88 | + | L9D1A: |
- | L9D1D: STA $6BF7,X | + | L9D1D: |
- | L9D20: RTS | + | L9D20: |
- | L9D21: LDA #$01 | + | L9D21: |
- | L9D23: STA MotherBrainStatus | + | L9D23: |
- | L9D25: JSR $9D88 | + | L9D25: |
- | L9D28: STA $9D | + | L9D28: |
- | L9D2A: EOR #$01 | + | L9D2A: |
- | L9D2C: TAX | + | L9D2C: |
- | L9D2D: LDA $9D3C | + | L9D2D: |
- | L9D30: ORA $6C,X | + | L9D30: |
- | L9D32: STA $6C,X | + | L9D32: |
- | L9D34: LDA #$20 | + | L9D34: |
- | L9D36: STA $9A | + | L9D36: |
- | L9D38: STA $9B | + | L9D38: |
- | L9D3A: | + | L9D3A: |
- | L9D3B: | + | L9D3B: |
- | L9D3D: LDA ($00),Y | + | L9D3D: |
- | L9D3F: AND #$F0 | + | L9D3F: |
- | L9D41: | + | L9D41: |
- | L9D42: TAX | + | L9D42: |
- | L9D43: ASL | + | L9D43: |
- | L9D44: AND #$10 | + | L9D44: |
- | L9D46: EOR #$10 | + | L9D46: |
- | L9D48: ORA #$84 | + | L9D48: |
- | L9D4A: STA $0759,X | + | L9D4A: |
- | L9D4D: JSR $9D64 | + | L9D4D: |
- | L9D50: STA $075A,X | + | L9D50: |
- | L9D53: LDA #$01 | + | L9D53: |
- | L9D55: STA $0758,X | + | L9D55: |
- | L9D58: LDA #$00 | + | L9D58: |
- | L9D5A: STA $075B,X | + | L9D5A: |
- | L9D5D: STA $075C,X | + | L9D5D: |
- | L9D60: STA $075D,X | + | L9D60: |
- | L9D63: RTS | + | L9D63: |
- | L9D64: JSR $9D88 | + | L9D64: |
- | L9D67: ASL | + | L9D67: |
- | L9D68: ASL | + | L9D68: |
- | L9D69: ORA #$61 | + | L9D69: |
- | L9D6B: RTS | + | L9D6B: |
- | L9D6C: LDX #$03 | + | L9D6C: |
- | L9D6E: JSR $9D75 | + | L9D6E: |
- | L9D71: BMI $9D87 | + | L9D71: |
- | L9D73: LDX #$00 | + | L9D73: |
- | L9D75: LDA $8B,X | + | L9D75: |
- | L9D77: BPL $9D87 | + | L9D77: |
- | L9D79: LDA ($00),Y | + | L9D79: |
- | L9D7B: JSR $9B1B | + | L9D7B: |
- | L9D7E: STA $8B,X | + | L9D7E: |
- | L9D80: JSR $9D88 | + | L9D80: |
- | L9D83: STA $8C,X | + | L9D83: |
- | L9D85: LDA #$FF | + | L9D85: |
- | L9D87: RTS | + | L9D87: |
- | L9D88: LDA $FF | + | L9D88: |
- | L9D8A: EOR $49 | + | L9D8A: |
- | L9D8C: AND #$01 | + | L9D8C: |
- | L9D8E: RTS | + | L9D8E: |
- | L9D8F: | + | L9D8F: |
- | L9D9F: | + | L9D9F: |
- | L9DAF: | + | L9DAF: |
- | L9DBF: | + | L9DBF: |
- | L9DCF: | + | L9DCF: |
- | L9DDF: | + | L9DDF: |
- | L9DEF: | + | L9DEF: |
- | L9DF2: LDA $030C | + | L9DF2: |
- | L9DF5: EOR $9D | + | L9DF5: |
- | L9DF7: BNE $9DF1 | + | L9DF7: |
- | L9DF9: LDA $030E | + | L9DF9: |
- | L9DFC: SEC | + | L9DFC: |
- | L9DFD: SBC #$48 | + | L9DFD: |
- | L9DFF: CMP #$2F | + | L9DFF: |
- | L9E01: BCS $9DF1 | + | L9E01: |
- | L9E03: LDA $030D | + | L9E03: |
- | L9E06: SEC | + | L9E06: |
- | L9E07: SBC #$80 | + | L9E07: |
- | L9E09: BPL $9E0E | + | L9E09: |
- | L9E0B: JSR $95C6 | + | L9E0B: |
- | L9E0E: CMP #$20 | + | L9E0E: |
- | L9E10: BCS $9DF1 | + | L9E10: |
- | L9E12: LDA #$00 | + | L9E12: |
- | L9E14: STA $6E | + | L9E14: |
- | L9E16: LDA #$02 | + | L9E16: |
- | L9E18: STA $6F | + | L9E18: |
- | L9E1A: LDA #$38 | + | L9E1A: |
- | L9E1C: STA $030A | + | L9E1C: |
- | L9E1F: JMP $8042 | + | L9E1F: |
- | L9E22: JSR $9DF2 | + | L9E22: |
- | L9E25: JSR $9FED | + | L9E25: |
- | L9E28: JSR $A01B | + | L9E28: |
- | L9E2B: JSR $A02E | + | L9E2B: |
- | L9E2E: JSR $A041 | + | L9E2E: |
- | L9E31: LDA #$00 | + | L9E31: |
- | L9E33: STA $9E | + | L9E33: |
- | L9E35: RTS | + | L9E35: |
- | L9E36: JSR $9E43 | + | L9E36: |
- | L9E39: LDA $9E41,Y | + | L9E39: |
- | L9E3C: STA $1C | + | L9E3C: |
- | L9E3E: JMP $9E31 | + | L9E3E: |
- | L9E41: | + | L9E41: |
- | L9E43: DEC $9F | + | L9E43: |
- | L9E45: BNE $9E4B | + | L9E45: |
- | L9E47: LDA #$01 | + | L9E47: |
- | L9E49: STA MotherBrainStatus | + | L9E49: |
- | L9E4B: LDA $9F | + | L9E4B: |
- | L9E4D: AND #$02 | + | L9E4D: |
- | L9E4F: LSR | + | L9E4F: |
- | L9E50: TAY | + | L9E50: |
- | L9E51: RTS | + | L9E51: |
- | L9E52: JSR $9E43 | + | L9E52: |
- | L9E55: LDA $9E41,Y | + | L9E55: |
- | L9E58: STA $1C | + | L9E58: |
- | L9E5A: TYA | + | L9E5A: |
- | L9E5B: ASL | + | L9E5B: |
- | L9E5C: ASL | + | L9E5C: |
- | L9E5D: STA $FC | + | L9E5D: |
- | L9E5F: LDY MotherBrainStatus | + | L9E5F: |
- | L9E61: DEY | + | L9E61: |
- | L9E62: BNE $9E83 | + | L9E62: |
- | L9E64: STY MotherBrainHits | + | L9E64: |
- | L9E66: TYA | + | L9E66: |
- | L9E67: TAX | + | L9E67: |
- | L9E68: TYA | + | L9E68: |
- | L9E69: STA $6AF4,X | + | L9E69: |
- | L9E6C: JSR $9EF9 | + | L9E6C: |
- | L9E6F: CPX #$C0 | + | L9E6F: |
- | L9E71: BNE $9E68 | + | L9E71: |
- | L9E73: LDA #$04 | + | L9E73: |
- | L9E75: STA MotherBrainStatus | + | L9E75: |
- | L9E77: LDA #$28 | + | L9E77: |
- | L9E79: STA $9F | + | L9E79: |
- | L9E7B: LDA $0680 | + | L9E7B: |
- | L9E7E: ORA #$01 | + | L9E7E: |
- | L9E80: STA $0680 | + | L9E80: |
- | L9E83: JMP $9E2E | + | L9E83: |
- | L9E86: LDA #$10 | + | L9E86: |
- | L9E88: ORA $0680 | + | L9E88: |
- | L9E8B: STA $0680 | + | L9E8B: |
- | L9E8E: JSR $A072 | + | L9E8E: |
- | L9E91: INC $9A | + | L9E91: |
- | L9E93: JSR $9E43 | + | L9E93: |
- | L9E96: LDX #$00 | + | L9E96: |
- | L9E98: LDA $6AF4,X | + | L9E98: |
- | L9E9B: CMP #$05 | + | L9E9B: |
- | L9E9D: BNE $9EA4 | + | L9E9D: |
- | L9E9F: LDA #$00 | + | L9E9F: |
- | L9EA1: STA $6AF4,X | + | L9EA1: |
- | L9EA4: JSR $9EF9 | + | L9EA4: |
- | L9EA7: CMP #$40 | + | L9EA7: |
- | L9EA9: BNE $9E98 | + | L9EA9: |
- | L9EAB: LDA $07A0 | + | L9EAB: |
- | L9EAE: BNE $9EB5 | + | L9EAE: |
- | L9EB0: LDA $9F00,Y | + | L9EB0: |
- | L9EB3: STA $1C | + | L9EB3: |
- | L9EB5: LDY MotherBrainStatus | + | L9EB5: |
- | L9EB7: DEY | + | L9EB7: |
- | L9EB8: BNE $9ED5 | + | L9EB8: |
- | L9EBA: STY $9A | + | L9EBA: |
- | L9EBC: LDA #$04 | + | L9EBC: |
- | L9EBE: STA MotherBrainStatus | + | L9EBE: |
- | L9EC0: LDA #$1C | + | L9EC0: |
- | L9EC2: STA $9F | + | L9EC2: |
- | L9EC4: LDY MotherBrainHits | + | L9EC4: |
- | L9EC6: INC MotherBrainHits | + | L9EC6: |
- | L9EC8: CPY #$04 | + | L9EC8: |
- | L9ECA: BEQ $9ED3 | + | L9ECA: |
- | L9ECC: LDX #$00 | + | L9ECC: |
- | L9ECE: BCC $9ED5 | + | L9ECE: |
- | L9ED0: JMP $9ED6 | + | L9ED0: |
- | L9ED3: LSR $9F | + | L9ED3: |
- | L9ED5: RTS | + | L9ED5: |
- | L9ED6: LDA $0685 | + | L9ED6: |
- | L9ED9: ORA #$04 | + | L9ED9: |
- | L9EDB: STA $0685 | + | L9EDB: |
- | L9EDE: LDA #$05 | + | L9EDE: |
- | L9EE0: STA MotherBrainStatus | + | L9EE0: |
- | L9EE2: LDA #$80 | + | L9EE2: |
- | L9EE4: STA MotherBrainHits | + | L9EE4: |
- | L9EE6: RTS | + | L9EE6: |
- | L9EE7: PHA | + | L9EE7: |
- | L9EE8: AND #$F0 | + | L9EE8: |
- | L9EEA: ORA #$07 | + | L9EEA: |
- | L9EEC: STA $0400,X | + | L9EEC: |
- | L9EEF: PLA | + | L9EEF: |
- | L9EF0: JSR $9B20 | + | L9EF0: |
- | L9EF3: ORA #$07 | + | L9EF3: |
- | L9EF5: STA $0401,X | + | L9EF5: |
- | L9EF8: RTS | + | L9EF8: |
- | L9EF9: TXA | + | L9EF9: |
- | L9EFA: CLC | + | L9EFA: |
- | L9EFB: ADC #$10 | + | L9EFB: |
- | L9EFD: TAX | + | L9EFD: |
- | L9EFE: RTS | + | L9EFE: |
- | L9EFF: | + | L9EFF: |
- | L9F00: ORA #$0A | + | L9F00: |
- | L9F02: LDA MotherBrainHits | + | L9F02: |
- | L9F04: BMI $9F33 | + | L9F04: |
- | L9F06: CMP #$08 | + | L9F06: |
- | L9F08: BEQ $9F36 | + | L9F08: |
- | L9F0A: TAY | + | L9F0A: |
- | L9F0B: LDA $9F41,Y | + | L9F0B: |
- | L9F0E: STA $0503 | + | L9F0E: |
- | L9F11: LDA $9F39,Y | + | L9F11: |
- | L9F14: CLC | + | L9F14: |
- | L9F15: ADC #$42 | + | L9F15: |
- | L9F17: STA $0508 | + | L9F17: |
- | L9F1A: PHP | + | L9F1A: |
- | L9F1B: LDA $9D | + | L9F1B: |
- | L9F1D: ASL | + | L9F1D: |
- | L9F1E: ASL | + | L9F1E: |
- | L9F1F: PLP | + | L9F1F: |
- | L9F20: ADC #$61 | + | L9F20: |
- | L9F22: STA $0509 | + | L9F22: |
- | L9F25: LDA #$00 | + | L9F25: |
- | L9F27: STA $4B | + | L9F27: |
- | L9F29: LDA $07A0 | + | L9F29: |
- | L9F2C: BNE $9F38 | + | L9F2C: |
- | L9F2E: JSR $803F | + | L9F2E: |
- | L9F31: BCS $9F38 | + | L9F31: |
- | L9F33: INC MotherBrainHits | + | L9F33: |
- | L9F35: RTS | + | L9F35: |
- | L9F36: INC MotherBrainStatus | + | L9F36: |
- | L9F38: RTS | + | L9F38: |
- | L9F39: | + | L9F39: |
- | L9F48: ORA $20 | + | L9F48: |
- | L9F4A: ADC #$9F | + | L9F4A: |
- | L9F4C: BCS $9F64 | + | L9F4C: |
- | L9F4E: LDA #$00 | + | L9F4E: |
- | L9F50: STA MotherBrainStatus | + | L9F50: |
- | L9F52: LDA #$99 | + | L9F52: |
- | L9F54: STA $010A | + | L9F54: |
- | L9F57: STA $010B | + | L9F57: |
- | L9F5A: LDA #$01 | + | L9F5A: |
- | L9F5C: STA $010D | + | L9F5C: |
- | L9F5F: LDA $9D | + | L9F5F: |
- | L9F61: STA $010C | + | L9F61: |
- | L9F64: | + | L9F64: |
- | L9F65: | + | L9F65: |
- | L9F69: LDA $50 | + | L9F69: |
- | L9F6B: | + | L9F6B: |
- | L9F6C: ADC $4F | + | L9F6C: |
- | L9F6E: SEC | + | L9F6E: |
- | L9F6F: ROL | + | L9F6F: |
- | L9F70: AND #$03 | + | L9F70: |
- | L9F72: TAY | + | L9F72: |
- | L9F73: LDX $9F65,Y | + | L9F73: |
- | L9F76: LDA #$01 | + | L9F76: |
- | L9F78: STA $030F,X | + | L9F78: |
- | L9F7B: LDA #$01 | + | L9F7B: |
- | L9F7D: STA $0307,X | + | L9F7D: |
- | L9F80: LDA #$03 | + | L9F80: |
- | L9F82: STA $0300,X | + | L9F82: |
- | L9F85: LDA $9D | + | L9F85: |
- | L9F87: STA $030C,X | + | L9F87: |
- | L9F8A: LDA #$10 | + | L9F8A: |
- | L9F8C: STA $030E,X | + | L9F8C: |
- | L9F8F: LDA #$68 | + | L9F8F: |
- | L9F91: STA $030D,X | + | L9F91: |
- | L9F94: LDA #$55 | + | L9F94: |
- | L9F96: STA $0305,X | + | L9F96: |
- | L9F99: STA $0306,X | + | L9F99: |
- | L9F9C: LDA #$00 | + | L9F9C: |
- | L9F9E: STA $0304,X | + | L9F9E: |
- | L9FA1: LDA #$F7 | + | L9FA1: |
- | L9FA3: STA $0303,X | + | L9FA3: |
- | L9FA6: LDA #$10 | + | L9FA6: |
- | L9FA8: STA $0503 | + | L9FA8: |
- | L9FAB: LDA #$40 | + | L9FAB: |
- | L9FAD: STA $0508 | + | L9FAD: |
- | L9FB0: LDA $9D | + | L9FB0: |
- | L9FB2: ASL | + | L9FB2: |
- | L9FB3: ASL | + | L9FB3: |
- | L9FB4: ORA #$61 | + | L9FB4: |
- | L9FB6: STA $0509 | + | L9FB6: |
- | L9FB9: LDA #$00 | + | L9FB9: |
- | L9FBB: STA $4B | + | L9FBB: |
- | L9FBD: JMP $803F | + | L9FBD: |
- | L9FC0: LDA #$10 | + | L9FC0: |
- | L9FC2: ORA $0680 | + | L9FC2: |
- | L9FC5: STA $0680 | + | L9FC5: |
- | L9FC8: LDA $2C | + | L9FC8: |
- | L9FCA: BNE $9FD9 | + | L9FCA: |
- | L9FCC: LDA #$08 | + | L9FCC: |
- | L9FCE: STA $0300 | + | L9FCE: |
- | L9FD1: LDA #$0A | + | L9FD1: |
- | L9FD3: STA MotherBrainStatus | + | L9FD3: |
- | L9FD5: LDA #$01 | + | L9FD5: |
- | L9FD7: STA $1C | + | L9FD7: |
- | L9FD9: RTS | + | L9FD9: |
- | L9FDA: JSR $9F69 | + | L9FDA: |
- | L9FDD: BCS $9FEC | + | L9FDD: |
- | L9FDF: LDA $9D | + | L9FDF: |
- | L9FE1: STA $010C | + | L9FE1: |
- | L9FE4: LDY #$01 | + | L9FE4: |
- | L9FE6: STY $010D | + | L9FE6: |
- | L9FE9: DEY | + | L9FE9: |
- | L9FEA: STY MotherBrainStatus | + | L9FEA: |
- | L9FEC: RTS | + | L9FEC: |
- | L9FED: LDA $9E | + | L9FED: |
- | L9FEF: BEQ $A01A | + | L9FEF: |
- | L9FF1: LDA $0684 | + | L9FF1: |
- | L9FF4: ORA #$02 | + | L9FF4: |
- | L9FF6: STA $0684 | + | L9FF6: |
- | L9FF9: INC MotherBrainHits | + | L9FF9: |
- | L9FFB: LDA MotherBrainHits | + | L9FFB: |
- | L9FFD: CMP #$20 | + | L9FFD: |
- | L9FFF: LDY #$02 | + | L9FFF: |
- | LA001: LDA #$10 | + | LA001: |
- | LA003: BCC $A016 | + | LA003: |
- | LA005: LDX #$00 | + | LA005: |
- | LA007: LDA #$00 | + | LA007: |
- | LA009: STA $0500,X | + | LA009: |
- | LA00C: JSR $9EF9 | + | LA00C: |
- | LA00F: CMP #$D0 | + | LA00F: |
- | LA011: BNE $A007 | + | LA011: |
- | LA013: INY | + | LA013: |
- | LA014: LDA #$80 | + | LA014: |
- | LA016: STY MotherBrainStatus | + | LA016: |
- | LA018: STA $9F | + | LA018: |
- | LA01A: RTS | + | LA01A: |
- | LA01B: DEC $9A | + | LA01B: |
- | LA01D: BNE $A02D | + | LA01D: |
- | LA01F: LDA $2E | + | LA01F: |
- | LA021: AND #$03 | + | LA021: |
- | LA023: STA $9C | + | LA023: |
- | LA025: LDA #$20 | + | LA025: |
- | LA027: SEC | + | LA027: |
- | LA028: SBC MotherBrainHits | + | LA028: |
- | LA02A: LSR | + | LA02A: |
- | LA02B: STA $9A | + | LA02B: |
- | LA02D: RTS | + | LA02D: |
- | LA02E: DEC $9B | + | LA02E: |
- | LA030: LDA $9B | + | LA030: |
- | LA032: ASL | + | LA032: |
- | LA033: BNE $A040 | + | LA033: |
- | LA035: LDA #$20 | + | LA035: |
- | LA037: SEC | + | LA037: |
- | LA038: SBC MotherBrainHits | + | LA038: |
- | LA03A: ORA #$80 | + | LA03A: |
- | LA03C: EOR $9B | + | LA03C: |
- | LA03E: STA $9B | + | LA03E: |
- | LA040: RTS | + | LA040: |
- | LA041: LDA #$E0 | + | LA041: |
- | LA043: STA $4B | + | LA043: |
- | LA045: LDA $9D | + | LA045: |
- | LA047: STA $6BDB | + | LA047: |
- | LA04A: LDA #$70 | + | LA04A: |
- | LA04C: STA $04E0 | + | LA04C: |
- | LA04F: LDA #$48 | + | LA04F: |
- | LA051: STA $04E1 | + | LA051: |
- | LA054: LDY $9C | + | LA054: |
- | LA056: LDA $A06D,Y | + | LA056: |
- | LA059: STA $6BD7 | + | LA059: |
- | LA05C: JSR $803C | + | LA05C: |
- | LA05F: LDA $9B | + | LA05F: |
- | LA061: BMI $A06C | + | LA061: |
- | LA063: LDA $A071 | + | LA063: |
- | LA066: STA $6BD7 | + | LA066: |
- | LA069: JSR $803C | + | LA069: |
- | LA06C: RTS | + | LA06C: |
- | LA06D: | + | LA06D: |
- | LA072: LDY MotherBrainHits | + | LA072: |
- | LA074: BEQ $A086 | + | LA074: |
- | LA076: LDA $A0C0,Y | + | LA076: |
- | LA079: CLC | + | LA079: |
- | LA07A: ADC $9A | + | LA07A: |
- | LA07C: TAY | + | LA07C: |
- | LA07D: LDA $A0A3,Y | + | LA07D: |
- | LA080: CMP #$FF | + | LA080: |
- | LA082: BNE $A087 | + | LA082: |
- | LA084: DEC $9A | + | LA084: |
- | LA086: RTS | + | LA086: |
- | LA087: ADC #$44 | + | LA087: |
- | LA089: STA $0508 | + | LA089: |
- | LA08C: PHP | + | LA08C: |
- | LA08D: LDA $9D | + | LA08D: |
- | LA08F: ASL | + | LA08F: |
- | LA090: ASL | + | LA090: |
- | LA091: ORA #$61 | + | LA091: |
- | LA093: PLP | + | LA093: |
- | LA094: ADC #$00 | + | LA094: |
- | LA096: STA $0509 | + | LA096: |
- | LA099: LDA #$00 | + | LA099: |
- | LA09B: STA $0503 | + | LA09B: |
- | LA09E: STA $4B | + | LA09E: |
- | LA0A0: JMP $803F | + | LA0A0: |
- | LA0A3: | + | LA0A3: |
- | LA0B3: | + | LA0B3: |
- | LA0C3: | + | LA0C3: |
- | LA0C6: LDA $71 | + | LA0C6: |
- | LA0C8: BEQ $A13E | + | LA0C8: |
- | LA0CA: LDX $4B | + | LA0CA: |
- | LA0CC: LDA $0300,X | + | LA0CC: |
- | LA0CF: CMP #$0B | + | LA0CF: |
- | LA0D1: BNE $A13E | + | LA0D1: |
- | LA0D3: CPY #$98 | + | LA0D3: |
- | LA0D5: BNE $A103 | + | LA0D5: |
- | LA0D7: LDX #$00 | + | LA0D7: |
- | LA0D9: LDA $0500,X | + | LA0D9: |
- | LA0DC: BEQ $A0E7 | + | LA0DC: |
- | LA0DE: JSR $9EF9 | + | LA0DE: |
- | LA0E1: CMP #$D0 | + | LA0E1: |
- | LA0E3: BNE $A0D9 | + | LA0E3: |
- | LA0E5: BEQ $A13E | + | LA0E5: |
- | LA0E7: LDA #$8C | + | LA0E7: |
- | LA0E9: STA $0508,X | + | LA0E9: |
- | LA0EC: LDA $05 | + | LA0EC: |
- | LA0EE: STA $0509,X | + | LA0EE: |
- | LA0F1: LDA #$01 | + | LA0F1: |
- | LA0F3: STA $0503,X | + | LA0F3: |
- | LA0F6: LDA $4B | + | LA0F6: |
- | LA0F8: PHA | + | LA0F8: |
- | LA0F9: STX $4B | + | LA0F9: |
- | LA0FB: JSR $803F | + | LA0FB: |
- | LA0FE: PLA | + | LA0FE: |
- | LA0FF: STA $4B | + | LA0FF: |
- | LA101: BNE $A13E | + | LA101: |
- | LA103: LDA $04 | + | LA103: |
- | LA105: LSR | + | LA105: |
- | LA106: BCC $A10A | + | LA106: |
- | LA108: DEC $04 | + | LA108: |
- | LA10A: LDY #$00 | + | LA10A: |
- | LA10C: LDA ($04),Y | + | LA10C: |
- | LA10E: LSR | + | LA10E: |
- | LA10F: BCS $A13E | + | LA10F: |
- | LA111: CMP #$48 | + | LA111: |
- | LA113: BCC $A13E | + | LA113: |
- | LA115: CMP #$4C | + | LA115: |
- | LA117: BCS $A13E | + | LA117: |
- | LA119: LDA $0758,Y | + | LA119: |
- | LA11C: BEQ $A12E | + | LA11C: |
- | LA11E: LDA $04 | + | LA11E: |
- | LA120: AND #$9E | + | LA120: |
- | LA122: CMP $0759,Y | + | LA122: |
- | LA125: BNE $A12E | + | LA125: |
- | LA127: LDA $05 | + | LA127: |
- | LA129: CMP $075A,Y | + | LA129: |
- | LA12C: BEQ $A139 | + | LA12C: |
- | LA12E: TYA | + | LA12E: |
- | LA12F: CLC | + | LA12F: |
- | LA130: ADC #$08 | + | LA130: |
- | LA132: TAY | + | LA132: |
- | LA133: CMP #$28 | + | LA133: |
- | LA135: BNE $A119 | + | LA135: |
- | LA137: BEQ $A13E | + | LA137: |
- | LA139: LDA #$01 | + | LA139: |
- | LA13B: STA $075D,Y | + | LA13B: |
- | LA13E: PLA | + | LA13E: |
- | LA13F: PLA | + | LA13F: |
- | LA140: CLC | + | LA140: |
- | LA141: RTS | + | LA141: |
- | LA142: TAY | + | LA142: |
- | LA143: LDA $71 | + | LA143: |
- | LA145: BEQ $A15C | + | LA145: |
- | LA147: LDX $4B | + | LA147: |
- | LA149: LDA $0300,X | + | LA149: |
- | LA14C: CMP #$0B | + | LA14C: |
- | LA14E: BNE $A15C | + | LA14E: |
- | LA150: CPY #$5E | + | LA150: |
- | LA152: BCC $A15C | + | LA152: |
- | LA154: CPY #$72 | + | LA154: |
- | LA156: BCS $A15C | + | LA156: |
- | LA158: LDA #$01 | + | LA158: |
- | LA15A: STA $9E | + | LA15A: |
- | LA15C: TYA | + | LA15C: |
- | LA15D: RTS | + | LA15D: |
- | LA15E: LDY $010B | + | LA15E: |
- | LA161: INY | + | LA161: |
- | LA162: BNE $A1DA | + | LA162: |
- | LA164: LDY #$03 | + | LA164: |
- | LA166: JSR $A16B | + | LA166: |
- | LA169: LDY #$00 | + | LA169: |
- | LA16B: STY $4B | + | LA16B: |
- | LA16D: LDA $008B,Y | + | LA16D: |
- | LA170: BMI $A15D | + | LA170: |
- | LA172: LDA $008C,Y | + | LA172: |
- | LA175: EOR $2D | + | LA175: |
- | LA177: LSR | + | LA177: |
- | LA178: BCC $A15D | + | LA178: |
- | LA17A: LDA MotherBrainStatus | + | LA17A: |
- | LA17C: CMP #$04 | + | LA17C: |
- | LA17E: BCS $A15D | + | LA17E: |
- | LA180: LDA $2D | + | LA180: |
- | LA182: AND #$06 | + | LA182: |
- | LA184: BNE $A15D | + | LA184: |
- | LA186: LDX #$20 | + | LA186: |
- | LA188: LDA $6AF4,X | + | LA188: |
- | LA18B: BEQ $A19C | + | LA18B: |
- | LA18D: LDA $0405,X | + | LA18D: |
- | LA190: AND #$02 | + | LA190: |
- | LA192: BEQ $A19C | + | LA192: |
- | LA194: TXA | + | LA194: |
- | LA195: SEC | + | LA195: |
- | LA196: SBC #$10 | + | LA196: |
- | LA198: TAX | + | LA198: |
- | LA199: BPL $A188 | + | LA199: |
- | LA19B: RTS | + | LA19B: |
- | LA19C: LDA #$01 | + | LA19C: |
- | LA19E: STA $6AF4,X | + | LA19E: |
- | LA1A1: LDA #$04 | + | LA1A1: |
- | LA1A3: STA $6B02,X | + | LA1A3: |
- | LA1A6: LDA #$00 | + | LA1A6: |
- | LA1A8: STA $040F,X | + | LA1A8: |
- | LA1AB: STA $0404,X | + | LA1AB: |
- | LA1AE: JSR $802A | + | LA1AE: |
- | LA1B1: LDA #$F7 | + | LA1B1: |
- | LA1B3: STA $6AF7,X | + | LA1B3: |
- | LA1B6: LDY $4B | + | LA1B6: |
- | LA1B8: LDA $008C,Y | + | LA1B8: |
- | LA1BB: STA $6AFB,X | + | LA1BB: |
- | LA1BE: LDA $008D,Y | + | LA1BE: |
- | LA1C1: ASL | + | LA1C1: |
- | LA1C2: ORA $008B,Y | + | LA1C2: |
- | LA1C5: TAY | + | LA1C5: |
- | LA1C6: LDA $A1DB,Y | + | LA1C6: |
- | LA1C9: JSR $9EE7 | + | LA1C9: |
- | LA1CC: LDX $4B | + | LA1CC: |
- | LA1CE: INC $8D,X | + | LA1CE: |
- | LA1D0: LDA $8D,X | + | LA1D0: |
- | LA1D2: CMP #$06 | + | LA1D2: |
- | LA1D4: BNE $A1DA | + | LA1D4: |
- | LA1D6: LDA #$00 | + | LA1D6: |
- | LA1D8: STA $8D,X | + | LA1D8: |
- | LA1DA: RTS | + | LA1DA: |
- | LA1DB: | + | LA1DB: |
- | LA1E7: LDY $010B | + | LA1E7: |
- | LA1EA: INY | + | LA1EA: |
- | LA1EB: BEQ $A237 | + | LA1EB: |
- | LA1ED: LDA $010A | + | LA1ED: |
- | LA1F0: STA $03 | + | LA1F0: |
- | LA1F2: LDA #$01 | + | LA1F2: |
- | LA1F4: SEC | + | LA1F4: |
- | LA1F5: JSR $8045 | + | LA1F5: |
- | LA1F8: STA $010A | + | LA1F8: |
- | LA1FB: LDA $010B | + | LA1FB: |
- | LA1FE: STA $03 | + | LA1FE: |
- | LA200: LDA #$00 | + | LA200: |
- | LA202: JSR $8045 | + | LA202: |
- | LA205: STA $010B | + | LA205: |
- | LA208: LDA $2D | + | LA208: |
- | LA20A: AND #$1F | + | LA20A: |
- | LA20C: BNE $A216 | + | LA20C: |
- | LA20E: LDA $0681 | + | LA20E: |
- | LA211: ORA #$08 | + | LA211: |
- | LA213: STA $0681 | + | LA213: |
- | LA216: LDA $010A | + | LA216: |
- | LA219: ORA $010B | + | LA219: |
- | LA21C: BNE $A237 | + | LA21C: |
- | LA21E: DEC $010B | + | LA21E: |
- | LA221: STA MotherBrainHits | + | LA221: |
- | LA223: LDA #$07 | + | LA223: |
- | LA225: STA MotherBrainStatus | + | LA225: |
- | LA227: LDA $0680 | + | LA227: |
- | LA22A: ORA #$01 | + | LA22A: |
- | LA22C: STA $0680 | + | LA22C: |
- | LA22F: LDA #$0C | + | LA22F: |
- | LA231: STA $2C | + | LA231: |
- | LA233: LDA #$0B | + | LA233: |
- | LA235: STA $1C | + | LA235: |
- | LA237: RTS | + | LA237: |
- | LA238: LDA $010D | + | LA238: |
- | LA23B: BEQ $A28A | + | LA23B: |
- | LA23D: LDA $010C | + | LA23D: |
- | LA240: STA $6BDB | + | LA240: |
- | LA243: LDA #$84 | + | LA243: |
- | LA245: STA $04E0 | + | LA245: |
- | LA248: LDA #$64 | + | LA248: |
- | LA24A: STA $04E1 | + | LA24A: |
- | LA24D: LDA #$1A | + | LA24D: |
- | LA24F: STA $6BD7 | + | LA24F: |
- | LA252: LDA #$E0 | + | LA252: |
- | LA254: STA $4B | + | LA254: |
- | LA256: LDA $5B | + | LA256: |
- | LA258: PHA | + | LA258: |
- | LA259: JSR $803C | + | LA259: |
- | LA25C: PLA | + | LA25C: |
- | LA25D: CMP $5B | + | LA25D: |
- | LA25F: BEQ $A28A | + | LA25F: |
- | LA261: TAX | + | LA261: |
- | LA262: LDA $010B | + | LA262: |
- | LA265: LSR | + | LA265: |
- | LA266: LSR | + | LA266: |
- | LA267: LSR | + | LA267: |
- | LA268: SEC | + | LA268: |
- | LA269: ROR | + | LA269: |
- | LA26A: AND #$0F | + | LA26A: |
- | LA26C: ORA #$A0 | + | LA26C: |
- | LA26E: STA $0201,X | + | LA26E: |
- | LA271: LDA $010B | + | LA271: |
- | LA274: AND #$0F | + | LA274: |
- | LA276: ORA #$A0 | + | LA276: |
- | LA278: STA $0205,X | + | LA278: |
- | LA27B: LDA $010A | + | LA27B: |
- | LA27E: LSR | + | LA27E: |
- | LA27F: LSR | + | LA27F: |
- | LA280: LSR | + | LA280: |
- | LA281: SEC | + | LA281: |
- | LA282: ROR | + | LA282: |
- | LA283: AND #$0F | + | LA283: |
- | LA285: ORA #$A0 | + | LA285: |
- | LA287: STA $0209,X | + | LA287: |
- | LA28A: RTS | + | LA28A: |
- | LA28B: LDA #$10 | + | LA28B: |
- | LA28D: STA $4B | + | LA28D: |
- | LA28F: LDX #$20 | + | LA28F: |
- | LA291: JSR $A29B | + | LA291: |
- | LA294: TXA | + | LA294: |
- | LA295: SEC | + | LA295: |
- | LA296: SBC #$08 | + | LA296: |
- | LA298: TAX | + | LA298: |
- | LA299: BNE $A291 | + | LA299: |
- | LA29B: LDA $0758,X | + | LA29B: |
- | LA29E: AND #$0F | + | LA29E: |
- | LA2A0: CMP #$01 | + | LA2A0: |
- | LA2A2: BNE $A28A | + | LA2A2: |
- | LA2A4: LDA $075D,X | + | LA2A4: |
- | LA2A7: BEQ $A2F2 | + | LA2A7: |
- | LA2A9: INC $075B,X | + | LA2A9: |
- | LA2AC: LDA $075B,X | + | LA2AC: |
- | LA2AF: LSR | + | LA2AF: |
- | LA2B0: BCS $A2F2 | + | LA2B0: |
- | LA2B2: TAY | + | LA2B2: |
- | LA2B3: SBC #$03 | + | LA2B3: |
- | LA2B5: BNE $A2BA | + | LA2B5: |
- | LA2B7: INC $0758,X | + | LA2B7: |
- | LA2BA: LDA $A310,Y | + | LA2BA: |
- | LA2BD: STA $0513 | + | LA2BD: |
- | LA2C0: LDA $0759,X | + | LA2C0: |
- | LA2C3: STA $0518 | + | LA2C3: |
- | LA2C6: LDA $075A,X | + | LA2C6: |
- | LA2C9: STA $0519 | + | LA2C9: |
- | LA2CC: LDA $07A0 | + | LA2CC: |
- | LA2CF: BNE $A2DA | + | LA2CF: |
- | LA2D1: TXA | + | LA2D1: |
- | LA2D2: PHA | + | LA2D2: |
- | LA2D3: JSR $803F | + | LA2D3: |
- | LA2D6: PLA | + | LA2D6: |
- | LA2D7: TAX | + | LA2D7: |
- | LA2D8: BCC $A2EB | + | LA2D8: |
- | LA2DA: LDA $0758,X | + | LA2DA: |
- | LA2DD: AND #$80 | + | LA2DD: |
- | LA2DF: ORA #$01 | + | LA2DF: |
- | LA2E1: STA $0758,X | + | LA2E1: |
- | LA2E4: STA $075D,X | + | LA2E4: |
- | LA2E7: DEC $075B,X | + | LA2E7: |
- | LA2EA: RTS | + | LA2EA: |
- | LA2EB: LDA #$40 | + | LA2EB: |
- | LA2ED: STA $075C,X | + | LA2ED: |
- | LA2F0: BNE $A30A | + | LA2F0: |
- | LA2F2: LDY $075B,X | + | LA2F2: |
- | LA2F5: BEQ $A30A | + | LA2F5: |
- | LA2F7: DEC $075C,X | + | LA2F7: |
- | LA2FA: BNE $A30A | + | LA2FA: |
- | LA2FC: LDA #$40 | + | LA2FC: |
- | LA2FE: STA $075C,X | + | LA2FE: |
- | LA301: DEY | + | LA301: |
- | LA302: TYA | + | LA302: |
- | LA303: STA $075B,X | + | LA303: |
- | LA306: LSR | + | LA306: |
- | LA307: TAY | + | LA307: |
- | LA308: BCC $A2BA | + | LA308: |
- | LA30A: LDA #$00 | + | LA30A: |
- | LA30C: STA $075D,X | + | LA30C: |
- | LA30F: RTS | + | LA30F: |
- | LA310: | + | LA310: |
- | LA315: LDY #$05 | + | LA315: |
- | LA317: JSR $99B1 | + | LA317: |
- | LA31A: DEY | + | LA31A: |
- | LA31B: BPL $A317 | + | LA31B: |
- | LA31D: STA $92 | + | LA31D: |
- | LA31F: RTS | + | LA31F: |
- | LA320: TXA | + | LA320: |
- | LA321: JSR $9B1B | + | LA321: |
- | LA324: TAY | + | LA324: |
- | LA325: JSR $99B1 | + | LA325: |
- | LA328: STA $92 | + | LA328: |
- | LA32A: RTS | + | LA32A: |
- | LA32B: | + | LA32B: |
- | LA330: | + | LA330: |
- | LA337: | + | LA337: |
- | LA347: | + | LA347: |
- | LA348: | + | LA348: |
- | LA358: | + | LA358: |
- | LA359: | + | LA359: |
- | LA369: | + | LA369: |
- | LA36A: | + | LA36A: |
- | LA37A: | + | LA37A: |
- | LA37B: | + | LA37B: |
- | LA388: | + | LA388: |
- | LA391: | + | LA391: |
- | LA3A1: | + | LA3A1: |
- | LA3A2: | + | LA3A2: |
- | LA3B2: | + | LA3B2: |
- | LA3B3: | + | LA3B3: |
- | LA3C3: | + | LA3C3: |
- | LA3C4: | + | LA3C4: |
- | LA3D4: | + | LA3D4: |
- | LA3D5: | + | LA3D5: |
- | LA3DE: | + | LA3DE: |
- | LA3E7: | + | LA3E7: |
- | LA3F0: | + | LA3F0: |
- | LA3F9: | + | LA3F9: |
; | ; | ||
EnemyAnimIndexTbl: | EnemyAnimIndexTbl: | ||
- | LA406: | + | LA406: |
- | LA409: | + | LA409: |
- | LA40B: | + | LA40B: |
- | LA40E: | + | LA40E: |
- | LA410: | + | LA410: |
- | LA412: | + | LA412: |
- | LA414: | + | LA414: |
- | LA416: | + | LA416: |
- | LA41C: | + | LA41C: |
- | LA41E: | + | LA41E: |
- | LA421: | + | LA421: |
- | LA425: | + | LA425: |
- | LA427: | + | LA427: |
; | ; | ||
EnemyFramePtrTbl1: | EnemyFramePtrTbl1: | ||
- | LA42C: | + | LA42C: |
- | LA43C: | + | LA43C: |
- | LA44C: | + | LA44C: |
- | LA45C: | + | LA45C: |
- | LA46C: | + | LA46C: |
- | LA47C: | + | LA47C: |
- | LA48C: | + | LA48C: |
- | LA49C: | + | LA49C: |
- | LA4AC: | + | LA4AC: |
- | LA4BC: | + | LA4BC: |
- | LA4CC: | + | LA4CC: |
- | LA4DC: | + | LA4DC: |
- | LA4EC: | + | LA4EC: |
- | LA4FC: | + | LA4FC: |
- | LA50C: | + | LA50C: |
- | LA51C: | + | LA51C: |
EnemyFramePtrTbl2: | EnemyFramePtrTbl2: | ||
- | LA52C: | + | LA52C: |
- | LA53C: | + | LA53C: |
EnemyPlacePtrTbl: | EnemyPlacePtrTbl: | ||
- | LA540: | + | LA540: |
- | LA550: | + | LA550: |
; | ; | ||
- | LA560: | + | LA560: |
- | LA562: | + | LA562: |
- | LA572: | + | LA572: |
- | LA57A: | + | LA57A: |
- | LA58A: | + | LA58A: |
- | LA58C: | + | LA58C: |
- | LA592: | + | LA592: |
- | LA59E: | + | LA59E: |
- | LA5A4: | + | LA5A4: |
- | LA5B4: | + | LA5B4: |
- | LA5C4: | + | LA5C4: |
;Enemy frame drawing data. | ;Enemy frame drawing data. | ||
- | LA5C8: | + | LA5C8: |
- | LA5CD: | + | LA5CD: |
- | LA5D2: | + | LA5D2: |
- | LA5D7: | + | LA5D7: |
- | LA5E4: | + | LA5E4: |
- | LA5F1: | + | LA5F1: |
- | LA5FB: | + | LA5FB: |
- | LA600: | + | LA600: |
- | LA606: | + | LA606: |
- | LA60D: | + | LA60D: |
- | LA613: | + | LA613: |
- | LA618: | + | LA618: |
- | LA61E: | + | LA61E: |
- | LA625: | + | LA625: |
- | LA62B: | + | LA62B: |
- | LA630: | + | LA630: |
- | LA635: | + | LA635: |
- | LA63A: | + | LA63A: |
- | LA641: | + | LA641: |
- | LA651: | + | LA651: |
- | LA65F: | + | LA65F: |
- | LA66B: | + | LA66B: |
- | LA678: | + | LA678: |
- | LA687: | + | LA687: |
- | LA691: | + | LA691: |
- | LA69C: | + | LA69C: |
- | LA6A3: | + | LA6A3: |
- | LA6AC: | + | LA6AC: |
- | LA6BC: | + | LA6BC: |
- | LA6CC: | + | LA6CC: |
- | LA6DC: | + | LA6DC: |
- | LA6E0: | + | LA6E0: |
- | LA6EE: | + | LA6EE: |
- | LA6FE: | + | LA6FE: |
- | LA708: | + | LA708: |
- | LA70E: | + | LA70E: |
- | LA713: | + | LA713: |
; | ; | ||
Palette00: | Palette00: | ||
- | LA718: | + | LA718: |
- | LA719: | + | LA719: |
- | LA71A: | + | LA71A: |
;The following values are written to the background palette: | ;The following values are written to the background palette: | ||
- | LA71B: | + | LA71B: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA72B: | + | LA72B: |
- | LA73B: | + | LA73B: |
Palette01: | Palette01: | ||
- | LA73C: | + | LA73C: |
- | LA73D: | + | LA73D: |
- | LA73E: | + | LA73E: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA73F: | + | LA73F: |
- | LA741: | + | LA741: |
Palette03: | Palette03: | ||
- | LA742: | + | LA742: |
- | LA743: | + | LA743: |
- | LA744: | + | LA744: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA745: | + | LA745: |
- | LA747: | + | LA747: |
Palette02: | Palette02: | ||
- | LA748: | + | LA748: |
- | LA749: | + | LA749: |
- | LA74A: | + | LA74A: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA74B: | + | LA74B: |
- | LA74D: | + | LA74D: |
Palette04: | Palette04: | ||
- | LA74E: | + | LA74E: |
- | LA74F: | + | LA74F: |
- | LA750: | + | LA750: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA751: | + | LA751: |
- | LA753: | + | LA753: |
Palette05: | Palette05: | ||
- | LA754: | + | LA754: |
- | LA755: | + | LA755: |
- | LA756: | + | LA756: |
;The following values are written to the background palette: | ;The following values are written to the background palette: | ||
- | LA757: | + | LA757: |
- | LA758: | + | LA758: |
Palette06: | Palette06: | ||
- | LA759: | + | LA759: |
- | LA75A: | + | LA75A: |
- | LA75B: | + | LA75B: |
;The following values are written to the background palette: | ;The following values are written to the background palette: | ||
- | LA75C: | + | LA75C: |
- | LA75D: | + | LA75D: |
Palette07: | Palette07: | ||
- | LA75E: | + | LA75E: |
- | LA75F: | + | LA75F: |
- | LA760: | + | LA760: |
;The following values are written to the background palette: | ;The following values are written to the background palette: | ||
- | LA761: | + | LA761: |
- | LA771: | + | LA771: |
- | LA772: | + | LA772: |
Palette08: | Palette08: | ||
- | LA773: | + | LA773: |
- | LA774: | + | LA774: |
- | LA775: | + | LA775: |
;The following values are written to the background palette: | ;The following values are written to the background palette: | ||
- | LA776: | + | LA776: |
- | LA786: | + | LA786: |
- | LA787: | + | LA787: |
Palette09: | Palette09: | ||
- | LA788: | + | LA788: |
- | LA789: | + | LA789: |
- | LA78A: | + | LA78A: |
- | LA78B: | + | LA78B: |
- | LA78C: | + | LA78C: |
Palette0A: | Palette0A: | ||
- | LA78D: | + | LA78D: |
- | LA78E: | + | LA78E: |
- | LA78F: | + | LA78F: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA790: | + | LA790: |
- | LA793: | + | LA793: |
Palette0B: | Palette0B: | ||
- | LA794: | + | LA794: |
- | LA795: | + | LA795: |
- | LA796: | + | LA796: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA797: | + | LA797: |
- | LA79A: | + | LA79A: |
Palette0C: | Palette0C: | ||
- | LA79B: | + | LA79B: |
- | LA79C: | + | LA79C: |
- | LA79D: | + | LA79D: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA79E: | + | LA79E: |
- | LA7A1: | + | LA7A1: |
Palette0D: | Palette0D: | ||
- | LA7A2: | + | LA7A2: |
- | LA7A3: | + | LA7A3: |
- | LA7A4: | + | LA7A4: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA7A5: | + | LA7A5: |
- | LA7A8: | + | LA7A8: |
Palette0E: | Palette0E: | ||
- | LA7A9: | + | LA7A9: |
- | LA7AA: | + | LA7AA: |
- | LA7AB: | + | LA7AB: |
;The following values are written to the background palette: | ;The following values are written to the background palette: | ||
- | LA7AC: | + | LA7AC: |
- | LA7B0: | + | LA7B0: |
Palette0F: | Palette0F: | ||
- | LA7B1: | + | LA7B1: |
- | LA7B2: | + | LA7B2: |
- | LA7B3: | + | LA7B3: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA7B4: | + | LA7B4: |
- | LA7B8: | + | LA7B8: |
Palette10: | Palette10: | ||
- | LA7B9: | + | LA7B9: |
- | LA7BA: | + | LA7BA: |
- | LA7BB: | + | LA7BB: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA7BC: | + | LA7BC: |
- | LA7C0: | + | LA7C0: |
Palette11: | Palette11: | ||
- | LA7C1: | + | LA7C1: |
- | LA7C2: | + | LA7C2: |
- | LA7C3: | + | LA7C3: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA7C4: | + | LA7C4: |
- | LA7C8: | + | LA7C8: |
Palette12: | Palette12: | ||
- | LA7C9: | + | LA7C9: |
- | LA7CA: | + | LA7CA: |
- | LA7CB: | + | LA7CB: |
;The following values are written to the sprite palette: | ;The following values are written to the sprite palette: | ||
- | LA7CC: | + | LA7CC: |
- | LA7D0: | + | LA7D0: |
; | ; | ||
RmPtrTbl: | RmPtrTbl: | ||
- | LA7D1: | + | LA7D1: |
- | LA7E1: | + | LA7E1: |
- | LA7F1: | + | LA7F1: |
StrctPtrTbl: | StrctPtrTbl: | ||
- | LA7FB: | + | LA7FB: |
- | LA80B: | + | LA80B: |
- | LA81B: | + | LA81B: |
- | LA82B: | + | LA82B: |
; | ; | ||
Line 3693: | Line 3693: | ||
;Byte 0=Y coordinate of room on the world map. | ;Byte 0=Y coordinate of room on the world map. | ||
;Word 0=Address of next entry in the table that has a different Y coordinate.--> | ;Word 0=Address of next entry in the table that has a different Y coordinate.--> | ||
- | ; $FFFF=No more items with different Y coordinates. | + | ; |
;Byte 1=X coordinate of room in the world map. | ;Byte 1=X coordinate of room in the world map. | ||
;Byte 2=byte offset-1 of next special item in the table that has the same--> | ;Byte 2=byte offset-1 of next special item in the table that has the same--> | ||
- | ; Y coordinate(short entry). $FF=No more items with different X--> | + | ; |
- | ; | + | ; |
;Byte 3=Item type. See list below for special item types. | ;Byte 3=Item type. See list below for special item types. | ||
;Bytes 4 to end of entry(ends with #$00)=Data bytes for special item(s).--> | ;Bytes 4 to end of entry(ends with #$00)=Data bytes for special item(s).--> | ||
- | ; It is possible to have multiple special items in one room. | + | ; |
;Short entry(one without a data word in it): | ;Short entry(one without a data word in it): | ||
;Byte 0=X coordinate of room in the world map(Y coordinate is the same--> | ;Byte 0=X coordinate of room in the world map(Y coordinate is the same--> | ||
- | ; as the last long item entry in the table). | + | ; |
;Byte 1=byte offset-1 of next special item in the table that has the same--> | ;Byte 1=byte offset-1 of next special item in the table that has the same--> | ||
- | ; Y coordinate(short entry). $FF=No more items with different X--> | + | ; |
- | ; | + | ; |
;Byte 2=Item type. See list below for special item types. | ;Byte 2=Item type. See list below for special item types. | ||
;Bytes 3 to end of entry(ends with #$00)=Data bytes for special item(s).--> | ;Bytes 3 to end of entry(ends with #$00)=Data bytes for special item(s).--> | ||
- | ; It is possible to have multiple special items in one room. | + | ; |
; | ; | ||
;Special item types: | ;Special item types: | ||
Line 3726: | Line 3726: | ||
;Elevator to end. | ;Elevator to end. | ||
- | LA83B: | + | LA83B: |
- | LA83C: | + | LA83C: |
- | LA83E: | + | LA83E: |
;Elevator to Brinstar. | ;Elevator to Brinstar. | ||
- | LA843: | + | LA843: |
- | LA844: | + | LA844: |
- | LA846: | + | LA846: |
;10 missile door. | ;10 missile door. | ||
- | LA84B: | + | LA84B: |
- | LA84C: | + | LA84C: |
- | LA84E: | + | LA84E: |
;Rinkas | ;Rinkas | ||
- | LA853: | + | LA853: |
;Rinkas | ;Rinkas | ||
- | LA857: | + | LA857: |
;Rinkas | ;Rinkas | ||
- | LA85B: | + | LA85B: |
- | LA85C: | + | LA85C: |
- | LA85E: | + | LA85E: |
;Rinkas | ;Rinkas | ||
- | LA862: | + | LA862: |
- | LA863: | + | LA863: |
- | LA865: | + | LA865: |
;Rinkas | ;Rinkas | ||
- | LA869: | + | LA869: |
- | LA86A: | + | LA86A: |
- | LA86C: | + | LA86C: |
;Door at bottom of escape shaft. | ;Door at bottom of escape shaft. | ||
- | LA870: | + | LA870: |
- | LA871: | + | LA871: |
- | LA873: | + | LA873: |
;Mother brain, Zeebetite, 3 cannons and Rinkas. | ;Mother brain, Zeebetite, 3 cannons and Rinkas. | ||
- | LA878: | + | LA878: |
;2 Zeebetites, 6 cannons and Rinkas. | ;2 Zeebetites, 6 cannons and Rinkas. | ||
- | LA884: | + | LA884: |
- | LA894: | + | LA894: |
;Right door, 2 Zeebetites, 6 cannons and Rinkas. | ;Right door, 2 Zeebetites, 6 cannons and Rinkas. | ||
- | LA896: | + | LA896: |
- | LA8A6: | + | LA8A6: |
;Left door. | ;Left door. | ||
- | LA8AA: | + | LA8AA: |
; | ; | ||
Line 3797: | Line 3797: | ||
;Room #$00 | ;Room #$00 | ||
- | LA8AF: | + | LA8AF: |
;Room object data: | ;Room object data: | ||
- | LA8B0: | + | LA8B0: |
;Room #$01 | ;Room #$01 | ||
- | LA8BD: | + | LA8BD: |
;Room object data: | ;Room object data: | ||
- | LA8BE: | + | LA8BE: |
;Room #$02 | ;Room #$02 | ||
- | LA8C5: | + | LA8C5: |
;Room object data: | ;Room object data: | ||
- | LA8C6: | + | LA8C6: |
- | LA8D6: | + | LA8D6: |
- | LA8E6: | + | LA8E6: |
- | LA8F6: | + | LA8F6: |
;Room #$03 | ;Room #$03 | ||
- | LA8FA: | + | LA8FA: |
;Room object data: | ;Room object data: | ||
- | LA8FB: | + | LA8FB: |
- | LA90B: | + | LA90B: |
- | LA91B: | + | LA91B: |
;Room #$04 | ;Room #$04 | ||
- | LA929: | + | LA929: |
;Room object data: | ;Room object data: | ||
- | LA92A: | + | LA92A: |
- | LA93A: | + | LA93A: |
- | LA94A: | + | LA94A: |
- | LA95A: | + | LA95A: |
;Room #$05 | ;Room #$05 | ||
- | LA95E: | + | LA95E: |
;Room object data: | ;Room object data: | ||
- | LA95F: | + | LA95F: |
- | LA96F: | + | LA96F: |
;Room #$06 | ;Room #$06 | ||
- | LA975: | + | LA975: |
;Room object data: | ;Room object data: | ||
- | LA976: | + | LA976: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LA986: | + | LA986: |
;Room #$07 | ;Room #$07 | ||
- | LA990: | + | LA990: |
;Room object data: | ;Room object data: | ||
- | LA991: | + | LA991: |
- | LA9A1: | + | LA9A1: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LA9A4: | + | LA9A4: |
;Room #$08 | ;Room #$08 | ||
- | LA9AB: | + | LA9AB: |
;Room object data: | ;Room object data: | ||
- | LA9AC: | + | LA9AC: |
- | LA9BC: | + | LA9BC: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LA9C5: | + | LA9C5: |
;Room #$09 | ;Room #$09 | ||
- | LA9CF: | + | LA9CF: |
;Room object data: | ;Room object data: | ||
- | LA9D0: | + | LA9D0: |
- | LA9E0: | + | LA9E0: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LA9EF: | + | LA9EF: |
;Room #$0A | ;Room #$0A | ||
- | LA9F2: | + | LA9F2: |
;Room object data: | ;Room object data: | ||
- | LA9F3: | + | LA9F3: |
- | LAA03: | + | LAA03: |
- | LAA13: | + | LAA13: |
- | LAA23: | + | LAA23: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LAA27: | + | LAA27: |
;Room #$0B | ;Room #$0B | ||
- | LAA33: | + | LAA33: |
;Room object data: | ;Room object data: | ||
- | LAA34: | + | LAA34: |
- | LAA44: | + | LAA44: |
- | LAA54: | + | LAA54: |
- | LAA64: | + | LAA64: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LAA6B: | + | LAA6B: |
;Room #$0C | ;Room #$0C | ||
- | LAA75: | + | LAA75: |
;Room object data: | ;Room object data: | ||
- | LAA76: | + | LAA76: |
- | LAA86: | + | LAA86: |
- | LAA96: | + | LAA96: |
- | LAAA6: | + | LAAA6: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LAAA7: | + | LAAA7: |
;Room #$0D | ;Room #$0D | ||
- | LAAAE: | + | LAAAE: |
;Room object data: | ;Room object data: | ||
- | LAAAF: | + | LAAAF: |
- | LAABF: | + | LAABF: |
- | LAACF: | + | LAACF: |
- | LAADF: | + | LAADF: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LAAE0: | + | LAAE0: |
;Room #$0E | ;Room #$0E | ||
- | LAAE3: | + | LAAE3: |
;Room object data: | ;Room object data: | ||
- | LAAE4: | + | LAAE4: |
- | LAAF4: | + | LAAF4: |
- | LAB04: | + | LAB04: |
;Room #$0F | ;Room #$0F | ||
- | LAB12: | + | LAB12: |
;Room object data: | ;Room object data: | ||
- | LAB13: | + | LAB13: |
- | LAB23: | + | LAB23: |
- | LAB33: | + | LAB33: |
- | LAB43: | + | LAB43: |
;Room #$10 | ;Room #$10 | ||
- | LAB4A: | + | LAB4A: |
;Room object data: | ;Room object data: | ||
- | LAB4B: | + | LAB4B: |
- | LAB5B: | + | LAB5B: |
- | LAB6B: | + | LAB6B: |
- | LAB7B: | + | LAB7B: |
;Room #$11 | ;Room #$11 | ||
- | LAB7C: | + | LAB7C: |
;Room object data: | ;Room object data: | ||
- | LAB7D: | + | LAB7D: |
- | LAB8D: | + | LAB8D: |
- | LAB9D: | + | LAB9D: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LABA2: | + | LABA2: |
;Room #$12 | ;Room #$12 | ||
- | LABA5: | + | LABA5: |
;Room object data: | ;Room object data: | ||
- | LABA6: | + | LABA6: |
- | LABB6: | + | LABB6: |
- | LABC6: | + | LABC6: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LABCB: | + | LABCB: |
;Room #$13 | ;Room #$13 | ||
- | LABCE: | + | LABCE: |
;Room object data: | ;Room object data: | ||
- | LABCF: | + | LABCF: |
- | LABDF: | + | LABDF: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LABE8: | + | LABE8: |
;Room #$14 | ;Room #$14 | ||
- | LABEF: | + | LABEF: |
;Room object data: | ;Room object data: | ||
- | LABF0: | + | LABF0: |
- | LAC00: | + | LAC00: |
;Room enemy/door data: | ;Room enemy/door data: | ||
- | LAC0F: | + | LAC0F: |
; | ; | ||
Line 3973: | Line 3973: | ||
;Structure #$00 | ;Structure #$00 | ||
- | LAC16: | + | LAC16: |
- | LAC26: | + | LAC26: |
;Structure #$01 | ;Structure #$01 | ||
- | LAC29: | + | LAC29: |
- | LAC39: | + | LAC39: |
- | LAC49: | + | LAC49: |
;Structure #$02 | ;Structure #$02 | ||
- | LAC50: | + | LAC50: |
- | LAC60: | + | LAC60: |
;Structure #$03 | ;Structure #$03 | ||
- | LAC69: | + | LAC69: |
;Structure #$04 | ;Structure #$04 | ||
- | LAC70: | + | LAC70: |
;Structure #$05 | ;Structure #$05 | ||
- | LAC77: | + | LAC77: |
;Structure #$06 | ;Structure #$06 | ||
- | LAC7A: | + | LAC7A: |
- | LAC8A: | + | LAC8A: |
;Structure #$07 | ;Structure #$07 | ||
- | LAC8B: | + | LAC8B: |
- | LAC9B: | + | LAC9B: |
;Structure #$08 | ;Structure #$08 | ||
- | LACA4: | + | LACA4: |
- | LACB4: | + | LACB4: |
;Structure #$09 | ;Structure #$09 | ||
- | LACB5: | + | LACB5: |
- | LACC5: | + | LACC5: |
;Structure #$0A | ;Structure #$0A | ||
- | LACC6: | + | LACC6: |
;Structure #$0B | ;Structure #$0B | ||
- | LACD0: | + | LACD0: |
- | LACE0: | + | LACE0: |
- | LACF0: | + | LACF0: |
;Structure #$0C | ;Structure #$0C | ||
- | LACF9: | + | LACF9: |
- | LAD09: | + | LAD09: |
- | LAD19: | + | LAD19: |
;Structure #$0D | ;Structure #$0D | ||
- | LAD26: | + | LAD26: |
;Structure #$0E | ;Structure #$0E | ||
- | LAD2D: | + | LAD2D: |
;Structure #$0F | ;Structure #$0F | ||
- | LAD3C: | + | LAD3C: |
;Structure #$10 | ;Structure #$10 | ||
- | LAD3F: | + | LAD3F: |
;Structure #$11 | ;Structure #$11 | ||
- | LAD48: | + | LAD48: |
- | LAD58: | + | LAD58: |
;Structure #$12 | ;Structure #$12 | ||
- | LAD61: | + | LAD61: |
;Structure #$13 | ;Structure #$13 | ||
- | LAD66: | + | LAD66: |
;Structure #$14 | ;Structure #$14 | ||
- | LAD6B: | + | LAD6B: |
- | LAD7B: | + | LAD7B: |
- | LAD8B: | + | LAD8B: |
;Structure #$15 | ;Structure #$15 | ||
- | LAD99: | + | LAD99: |
- | LADA9: | + | LADA9: |
;Structure #$16 | ;Structure #$16 | ||
- | LADAC: | + | LADAC: |
- | LADBC: | + | LADBC: |
;Structure #$17 | ;Structure #$17 | ||
- | LADC8: | + | LADC8: |
- | LADD8: | + | LADD8: |
;Structure #$18 | ;Structure #$18 | ||
- | LADDD: | + | LADDD: |
- | LADED: | + | LADED: |
- | LADFD: | + | LADFD: |
;Structure #$19 | ;Structure #$19 | ||
- | LADFE: | + | LADFE: |
- | LAE0E: | + | LAE0E: |
;Structure #$1A | ;Structure #$1A | ||
- | LAE0F: | + | LAE0F: |
;Structure #$1B | ;Structure #$1B | ||
- | LAE1A: | + | LAE1A: |
;Structure #$1C | ;Structure #$1C | ||
- | LAE1E: | + | LAE1E: |
;Structure #$1D | ;Structure #$1D | ||
- | LAE21: | + | LAE21: |
;Structure #$1E | ;Structure #$1E | ||
- | LAE2C: | + | LAE2C: |
;Structure #$1F | ;Structure #$1F | ||
- | LAE36: | + | LAE36: |
- | LAE46: | + | LAE46: |
; | ; | ||
Line 4098: | Line 4098: | ||
MacroDefs: | MacroDefs: | ||
- | LAE49: | + | LAE49: |
- | LAE4D: | + | LAE4D: |
- | LAE51: | + | LAE51: |
- | LAE55: | + | LAE55: |
- | LAE59: | + | LAE59: |
- | LAE5D: | + | LAE5D: |
- | LAE61: | + | LAE61: |
- | LAE65: | + | LAE65: |
- | LAE69: | + | LAE69: |
- | LAE6D: | + | LAE6D: |
- | LAE71: | + | LAE71: |
- | LAE75: | + | LAE75: |
- | LAE79: | + | LAE79: |
- | LAE7D: | + | LAE7D: |
- | LAE81: | + | LAE81: |
- | LAE85: | + | LAE85: |
- | LAE89: | + | LAE89: |
- | LAE8D: | + | LAE8D: |
- | LAE91: | + | LAE91: |
- | LAE95: | + | LAE95: |
- | LAE99: | + | LAE99: |
- | LAE9D: | + | LAE9D: |
- | LAEA1: | + | LAEA1: |
- | LAEA5: | + | LAEA5: |
- | LAEA9: | + | LAEA9: |
- | LAEAD: | + | LAEAD: |
- | LAEB1: | + | LAEB1: |
- | LAEB5: | + | LAEB5: |
- | LAEB9: | + | LAEB9: |
- | LAEBD: | + | LAEBD: |
- | LAEC1: | + | LAEC1: |
- | LAEC5: | + | LAEC5: |
- | LAEC9: | + | LAEC9: |
- | LAECD: | + | LAECD: |
- | LAED1: | + | LAED1: |
- | LAED5: | + | LAED5: |
- | LAED9: | + | LAED9: |
- | LAEDD: | + | LAEDD: |
- | LAEE1: | + | LAEE1: |
- | LAEE5: | + | LAEE5: |
- | LAEE9: | + | LAEE9: |
- | LAEED: | + | LAEED: |
- | LAEF1: | + | LAEF1: |
- | LAEF5: | + | LAEF5: |
- | LAEF9: | + | LAEF9: |
- | LAEFD: | + | LAEFD: |
- | LAF01: | + | LAF01: |
- | LAF05: | + | LAF05: |
- | LAF09: | + | LAF09: |
- | LAF0D: | + | LAF0D: |
- | LAF11: | + | LAF11: |
- | LAF15: | + | LAF15: |
- | LAF19: | + | LAF19: |
- | LAF1D: | + | LAF1D: |
;Not used. | ;Not used. | ||
- | LAF21: | + | LAF21: |
- | LAF31: | + | LAF31: |
- | LAF41: | + | LAF41: |
- | LAF51: | + | LAF51: |
- | LAF61: | + | LAF61: |
- | LAF71: | + | LAF71: |
- | LAF81: | + | LAF81: |
- | LAF91: | + | LAF91: |
- | LAFA1: | + | LAFA1: |
- | LAFB1: | + | LAFB1: |
- | LAFC1: | + | LAFC1: |
- | LAFD1: | + | LAFD1: |
- | LAFE1: | + | LAFE1: |
- | LAFF1: | + | LAFF1: |
; | ; | ||
Line 4183: | Line 4183: | ||
EscapeSQ2Data: | EscapeSQ2Data: | ||
- | LB000: | + | LB000: |
- | LB001: | + | LB001: |
- | LB002: | + | LB002: |
- | LB003: | + | LB003: |
- | LB004: | + | LB004: |
- | LB005: | + | LB005: |
- | LB006: | + | LB006: |
- | LB007: | + | LB007: |
- | LB008: | + | LB008: |
- | LB009: | + | LB009: |
- | LB00A: | + | LB00A: |
- | LB00B: | + | LB00B: |
- | LB00C: | + | LB00C: |
- | LB00D: | + | LB00D: |
- | LB00E: | + | LB00E: |
- | LB00F: | + | LB00F: |
- | LB010: | + | LB010: |
- | LB011: | + | LB011: |
- | LB012: | + | LB012: |
- | LB013: | + | LB013: |
- | LB014: | + | LB014: |
- | LB015: | + | LB015: |
- | LB016: | + | LB016: |
- | LB017: | + | LB017: |
- | LB018: | + | LB018: |
- | LB019: | + | LB019: |
- | LB01A: | + | LB01A: |
- | LB01B: | + | LB01B: |
- | LB01C: | + | LB01C: |
- | LB01D: | + | LB01D: |
- | LB01E: | + | LB01E: |
- | LB01F: | + | LB01F: |
- | LB020: | + | LB020: |
- | LB021: | + | LB021: |
- | LB022: | + | LB022: |
- | LB023: | + | LB023: |
- | LB024: | + | LB024: |
- | LB025: | + | LB025: |
- | LB026: | + | LB026: |
- | LB027: | + | LB027: |
- | LB028: | + | LB028: |
- | LB029: | + | LB029: |
- | LB02A: | + | LB02A: |
- | LB02B: | + | LB02B: |
- | LB02C: | + | LB02C: |
- | LB02D: | + | LB02D: |
- | LB02E: | + | LB02E: |
- | LB02F: | + | LB02F: |
- | LB030: | + | LB030: |
- | LB031: | + | LB031: |
- | LB032: | + | LB032: |
- | LB033: | + | LB033: |
- | LB034: | + | LB034: |
- | LB035: | + | LB035: |
- | LB036: | + | LB036: |
- | LB037: | + | LB037: |
- | LB038: | + | LB038: |
- | LB039: | + | LB039: |
- | LB03A: | + | LB03A: |
- | LB03B: | + | LB03B: |
- | LB03C: | + | LB03C: |
- | LB03D: | + | LB03D: |
- | LB03E: | + | LB03E: |
- | LB03F: | + | LB03F: |
- | LB040: | + | LB040: |
- | LB041: | + | LB041: |
- | LB042: | + | LB042: |
- | LB043: | + | LB043: |
- | LB044: | + | LB044: |
- | LB045: | + | LB045: |
- | LB046: | + | LB046: |
- | LB047: | + | LB047: |
- | LB048: | + | LB048: |
- | LB049: | + | LB049: |
- | LB04A: | + | LB04A: |
- | LB04B: | + | LB04B: |
- | LB04C: | + | LB04C: |
EscapeSQ1Data: | EscapeSQ1Data: | ||
- | LB04D: | + | LB04D: |
- | LB04E: | + | LB04E: |
- | LB04F: | + | LB04F: |
- | LB050: | + | LB050: |
- | LB051: | + | LB051: |
- | LB052: | + | LB052: |
- | LB053: | + | LB053: |
- | LB054: | + | LB054: |
- | LB055: | + | LB055: |
- | LB056: | + | LB056: |
- | LB057: | + | LB057: |
- | LB058: | + | LB058: |
- | LB059: | + | LB059: |
- | LB05A: | + | LB05A: |
- | LB05B: | + | LB05B: |
- | LB05C: | + | LB05C: |
- | LB05D: | + | LB05D: |
- | LB05E: | + | LB05E: |
- | LB05F: | + | LB05F: |
- | LB060: | + | LB060: |
- | LB061: | + | LB061: |
- | LB062: | + | LB062: |
- | LB063: | + | LB063: |
- | LB064: | + | LB064: |
- | LB065: | + | LB065: |
- | LB066: | + | LB066: |
- | LB067: | + | LB067: |
- | LB068: | + | LB068: |
- | LB069: | + | LB069: |
- | LB06A: | + | LB06A: |
- | LB06B: | + | LB06B: |
- | LB06C: | + | LB06C: |
- | LB06D: | + | LB06D: |
- | LB06E: | + | LB06E: |
- | LB06F: | + | LB06F: |
- | LB070: | + | LB070: |
- | LB071: | + | LB071: |
- | LB072: | + | LB072: |
- | LB073: | + | LB073: |
- | LB074: | + | LB074: |
- | LB075: | + | LB075: |
- | LB076: | + | LB076: |
- | LB077: | + | LB077: |
- | LB078: | + | LB078: |
- | LB079: | + | LB079: |
- | LB07A: | + | LB07A: |
- | LB07B: | + | LB07B: |
- | LB07C: | + | LB07C: |
- | LB07D: | + | LB07D: |
- | LB07E: | + | LB07E: |
- | LB07F: | + | LB07F: |
- | LB080: | + | LB080: |
- | LB081: | + | LB081: |
- | LB082: | + | LB082: |
- | LB083: | + | LB083: |
- | LB084: | + | LB084: |
- | LB085: | + | LB085: |
- | LB086: | + | LB086: |
- | LB087: | + | LB087: |
- | LB088: | + | LB088: |
- | LB089: | + | LB089: |
- | LB08A: | + | LB08A: |
- | LB08B: | + | LB08B: |
- | LB08C: | + | LB08C: |
- | LB08D: | + | LB08D: |
- | LB08E: | + | LB08E: |
- | LB08F: | + | LB08F: |
- | LB090: | + | LB090: |
- | LB091: | + | LB091: |
- | LB092: | + | LB092: |
- | LB093: | + | LB093: |
- | LB094: | + | LB094: |
- | LB095: | + | LB095: |
- | LB096: | + | LB096: |
- | LB097: | + | LB097: |
- | LB098: | + | LB098: |
- | LB099: | + | LB099: |
- | LB09A: | + | LB09A: |
- | LB09B: | + | LB09B: |
- | LB09C: | + | LB09C: |
- | LB09D: | + | LB09D: |
- | LB09E: | + | LB09E: |
- | LB09F: | + | LB09F: |
- | LB0A0: | + | LB0A0: |
- | LB0A1: | + | LB0A1: |
- | LB0A2: | + | LB0A2: |
- | LB0A3: | + | LB0A3: |
- | LB0A4: | + | LB0A4: |
- | LB0A5: | + | LB0A5: |
- | LB0A6: | + | LB0A6: |
- | LB0A7: | + | LB0A7: |
- | LB0A8: | + | LB0A8: |
- | LB0A9: | + | LB0A9: |
- | LB0AA: | + | LB0AA: |
- | LB0AB: | + | LB0AB: |
- | LB0AC: | + | LB0AC: |
- | LB0AD: | + | LB0AD: |
- | LB0AE: | + | LB0AE: |
- | LB0AF: | + | LB0AF: |
- | LB0B0: | + | LB0B0: |
- | LB0B1: | + | LB0B1: |
- | LB0B2: | + | LB0B2: |
- | LB0B3: | + | LB0B3: |
- | LB0B4: | + | LB0B4: |
- | LB0B5: | + | LB0B5: |
- | LB0B6: | + | LB0B6: |
- | LB0B7: | + | LB0B7: |
- | LB0B8: | + | LB0B8: |
- | LB0B9: | + | LB0B9: |
- | LB0BA: | + | LB0BA: |
- | LB0BB: | + | LB0BB: |
- | LB0BC: | + | LB0BC: |
- | LB0BD: | + | LB0BD: |
- | LB0BE: | + | LB0BE: |
- | LB0BF: | + | LB0BF: |
- | LB0C0: | + | LB0C0: |
- | LB0C1: | + | LB0C1: |
- | LB0C2: | + | LB0C2: |
- | LB0C3: | + | LB0C3: |
- | LB0C4: | + | LB0C4: |
- | LB0C5: | + | LB0C5: |
- | LB0C6: | + | LB0C6: |
- | LB0C7: | + | LB0C7: |
- | LB0C8: | + | LB0C8: |
- | LB0C9: | + | LB0C9: |
- | LB0CA: | + | LB0CA: |
- | LB0CB: | + | LB0CB: |
- | LB0CC: | + | LB0CC: |
- | LB0CD: | + | LB0CD: |
- | LB0CE: | + | LB0CE: |
EscapeTriData: | EscapeTriData: | ||
- | LB0CF: | + | LB0CF: |
- | LB0D0: | + | LB0D0: |
- | LB0D1: | + | LB0D1: |
- | LB0D2: | + | LB0D2: |
- | LB0D3: | + | LB0D3: |
- | LB0D4: | + | LB0D4: |
- | LB0D5: | + | LB0D5: |
- | LB0D6: | + | LB0D6: |
- | LB0D7: | + | LB0D7: |
- | LB0D8: | + | LB0D8: |
- | LB0D9: | + | LB0D9: |
- | LB0DA: | + | LB0DA: |
- | LB0DB: | + | LB0DB: |
- | LB0DC: | + | LB0DC: |
- | LB0DD: | + | LB0DD: |
- | LB0DE: | + | LB0DE: |
- | LB0DF: | + | LB0DF: |
- | LB0E0: | + | LB0E0: |
- | LB0E1: | + | LB0E1: |
- | LB0E2: | + | LB0E2: |
- | LB0E3: | + | LB0E3: |
- | LB0E4: | + | LB0E4: |
- | LB0E5: | + | LB0E5: |
- | LB0E6: | + | LB0E6: |
- | LB0E7: | + | LB0E7: |
- | LB0E8: | + | LB0E8: |
- | LB0E9: | + | LB0E9: |
- | LB0EA: | + | LB0EA: |
- | LB0EB: | + | LB0EB: |
- | LB0EC: | + | LB0EC: |
- | LB0ED: | + | LB0ED: |
- | LB0EE: | + | LB0EE: |
- | LB0EF: | + | LB0EF: |
- | LB0F0: | + | LB0F0: |
- | LB0F1: | + | LB0F1: |
- | LB0F2: | + | LB0F2: |
- | LB0F3: | + | LB0F3: |
- | LB0F4: | + | LB0F4: |
- | LB0F5: | + | LB0F5: |
- | LB0F6: | + | LB0F6: |
- | LB0F7: | + | LB0F7: |
- | LB0F8: | + | LB0F8: |
- | LB0F9: | + | LB0F9: |
- | LB0FA: | + | LB0FA: |
- | LB0FB: | + | LB0FB: |
- | LB0FC: | + | LB0FC: |
- | LB0FD: | + | LB0FD: |
- | LB0FE: | + | LB0FE: |
- | LB0FF: | + | LB0FF: |
- | LB100: | + | LB100: |
- | LB101: | + | LB101: |
- | LB102: | + | LB102: |
- | LB103: | + | LB103: |
- | LB104: | + | LB104: |
- | LB105: | + | LB105: |
- | LB106: | + | LB106: |
- | LB107: | + | LB107: |
- | LB108: | + | LB108: |
- | LB109: | + | LB109: |
- | LB10A: | + | LB10A: |
- | LB10B: | + | LB10B: |
- | LB10C: | + | LB10C: |
- | LB10D: | + | LB10D: |
- | LB10E: | + | LB10E: |
- | LB10F: | + | LB10F: |
- | LB110: | + | LB110: |
- | LB111: | + | LB111: |
- | LB112: | + | LB112: |
- | LB113: | + | LB113: |
- | LB114: | + | LB114: |
- | LB115: | + | LB115: |
- | LB116: | + | LB116: |
- | LB117: | + | LB117: |
- | LB118: | + | LB118: |
- | LB119: | + | LB119: |
- | LB11A: | + | LB11A: |
- | LB11B: | + | LB11B: |
- | LB11C: | + | LB11C: |
- | LB11D: | + | LB11D: |
- | LB11E: | + | LB11E: |
- | LB11F: | + | LB11F: |
- | LB120: | + | LB120: |
- | LB121: | + | LB121: |
- | LB122: | + | LB122: |
- | LB123: | + | LB123: |
- | LB124: | + | LB124: |
- | LB125: | + | LB125: |
- | LB126: | + | LB126: |
- | LB127: | + | LB127: |
- | LB128: | + | LB128: |
- | LB129: | + | LB129: |
- | LB12A: | + | LB12A: |
- | LB12B: | + | LB12B: |
- | LB12C: | + | LB12C: |
- | LB12D: | + | LB12D: |
- | LB12E: | + | LB12E: |
- | LB12F: | + | LB12F: |
- | LB130: | + | LB130: |
- | LB131: | + | LB131: |
- | LB132: | + | LB132: |
- | LB133: | + | LB133: |
- | LB134: | + | LB134: |
- | LB135: | + | LB135: |
- | LB136: | + | LB136: |
- | LB137: | + | LB137: |
- | LB138: | + | LB138: |
- | LB139: | + | LB139: |
- | LB13A: | + | LB13A: |
- | LB13B: | + | LB13B: |
- | LB13C: | + | LB13C: |
- | LB13D: | + | LB13D: |
- | LB13E: | + | LB13E: |
- | LB13F: | + | LB13F: |
- | LB140: | + | LB140: |
- | LB141: | + | LB141: |
- | LB142: | + | LB142: |
- | LB143: | + | LB143: |
- | LB144: | + | LB144: |
- | LB145: | + | LB145: |
- | LB146: | + | LB146: |
- | LB147: | + | LB147: |
- | LB148: | + | LB148: |
- | LB149: | + | LB149: |
- | LB14A: | + | LB14A: |
- | LB14B: | + | LB14B: |
- | LB14C: | + | LB14C: |
- | LB14D: | + | LB14D: |
- | LB14E: | + | LB14E: |
- | LB14F: | + | LB14F: |
- | LB150: | + | LB150: |
- | LB151: | + | LB151: |
- | LB152: | + | LB152: |
- | LB153: | + | LB153: |
- | LB154: | + | LB154: |
- | LB155: | + | LB155: |
- | LB156: | + | LB156: |
- | LB157: | + | LB157: |
- | LB158: | + | LB158: |
- | LB159: | + | LB159: |
EscapeNoiseData: | EscapeNoiseData: | ||
- | LB15A: | + | LB15A: |
- | LB15B: | + | LB15B: |
- | LB15C: | + | LB15C: |
- | LB15D: | + | LB15D: |
- | LB15E: | + | LB15E: |
- | LB15F: | + | LB15F: |
- | LB160: | + | LB160: |
MthrBrnRoomTriData: | MthrBrnRoomTriData: | ||
- | LB161: | + | LB161: |
- | LB162: | + | LB162: |
- | LB163: | + | LB163: |
- | LB164: | + | LB164: |
- | LB165: | + | LB165: |
- | LB166: | + | LB166: |
- | LB167: | + | LB167: |
- | LB168: | + | LB168: |
- | LB169: | + | LB169: |
- | LB16A: | + | LB16A: |
- | LB16B: | + | LB16B: |
- | LB16C: | + | LB16C: |
- | LB16D: | + | LB16D: |
- | LB16E: | + | LB16E: |
- | LB16F: | + | LB16F: |
- | LB170: | + | LB170: |
- | LB171: | + | LB171: |
- | LB172: | + | LB172: |
- | LB173: | + | LB173: |
- | LB174: | + | LB174: |
- | LB175: | + | LB175: |
- | LB176: | + | LB176: |
- | LB177: | + | LB177: |
- | LB178: | + | LB178: |
- | LB179: | + | LB179: |
- | LB17A: | + | LB17A: |
- | LB17B: | + | LB17B: |
- | LB17C: | + | LB17C: |
- | LB17D: | + | LB17D: |
- | LB17E: | + | LB17E: |
- | LB17F: | + | LB17F: |
- | LB180: | + | LB180: |
- | LB181: | + | LB181: |
- | LB182: | + | LB182: |
- | LB183: | + | LB183: |
- | LB184: | + | LB184: |
- | LB185: | + | LB185: |
- | LB186: | + | LB186: |
- | LB187: | + | LB187: |
- | LB188: | + | LB188: |
- | LB189: | + | LB189: |
- | LB18A: | + | LB18A: |
- | LB18B: | + | LB18B: |
MthrBrnRoomSQ1Data: | MthrBrnRoomSQ1Data: | ||
- | LB18C: | + | LB18C: |
- | LB18D: | + | LB18D: |
;SQ1 music data runs down into the SQ2 music data. | ;SQ1 music data runs down into the SQ2 music data. | ||
MthrBrnRoomSQ2Data: | MthrBrnRoomSQ2Data: | ||
- | LB18E: | + | LB18E: |
- | LB18F: | + | LB18F: |
- | LB190: | + | LB190: |
- | LB191: | + | LB191: |
- | LB192: | + | LB192: |
- | LB193: | + | LB193: |
- | LB194: | + | LB194: |
- | LB195: | + | LB195: |
- | LB196: | + | LB196: |
- | LB197: | + | LB197: |
- | LB198: | + | LB198: |
- | LB199: | + | LB199: |
- | LB19A: | + | LB19A: |
- | LB19B: | + | LB19B: |
- | LB19C: | + | LB19C: |
- | LB19D: | + | LB19D: |
- | LB19E: | + | LB19E: |
- | LB19F: | + | LB19F: |
;Unused tile patterns. | ;Unused tile patterns. | ||
- | LB1A0: | + | LB1A0: |
- | LB1B0: | + | LB1B0: |
- | LB1C0: | + | LB1C0: |
- | LB1D0: | + | LB1D0: |
- | LB1E0: | + | LB1E0: |
- | LB1F0: | + | LB1F0: |
; | ; | ||
;SFXdata. The top four entries are used by the noise music player for drum beats. | ;SFXdata. The top four entries are used by the noise music player for drum beats. | ||
- | LB200: | + | LB200: |
DrumBeat00SFXData: | DrumBeat00SFXData: | ||
- | LB201: | + | LB201: |
DrumBeat01SFXData: | DrumBeat01SFXData: | ||
- | LB204: | + | LB204: |
DrumBeat02SFXData: | DrumBeat02SFXData: | ||
- | LB207: | + | LB207: |
DrumBeat03SFXData: | DrumBeat03SFXData: | ||
- | LB20A: | + | LB20A: |
GamePausedSFXData: | GamePausedSFXData: | ||
- | LB20D: | + | LB20D: |
ScrewAttSFXData: | ScrewAttSFXData: | ||
- | LB211: | + | LB211: |
MissileLaunchSFXData: | MissileLaunchSFXData: | ||
- | LB215: | + | LB215: |
BombExplodeSFXData: | BombExplodeSFXData: | ||
- | LB219: | + | LB219: |
SamusWalkSFXData: | SamusWalkSFXData: | ||
- | LB21D: | + | LB21D: |
SpitFlameSFXData: | SpitFlameSFXData: | ||
- | LB221: | + | LB221: |
SamusHitSQ1SQ2SFXData: | SamusHitSQ1SQ2SFXData: | ||
- | LC225: | + | LC225: |
BossHitSQ2SFXData: | BossHitSQ2SFXData: | ||
- | LB229: | + | LB229: |
BossHitSQ1SFXData: | BossHitSQ1SFXData: | ||
- | LB22D: | + | LB22D: |
IncorrectPasswordSQ1SFXData: | IncorrectPasswordSQ1SFXData: | ||
- | LB231: | + | LB231: |
IncorrectPasswordSQ2SFXData: | IncorrectPasswordSQ2SFXData: | ||
- | LB235: | + | LB235: |
TimeBombTickSFXData: | TimeBombTickSFXData: | ||
- | LB239: | + | LB239: |
EnergyPickupSFXData: | EnergyPickupSFXData: | ||
- | LB23D: | + | LB23D: |
MissilePickupSFXData: | MissilePickupSFXData: | ||
- | LB241: | + | LB241: |
MetalSFXData: | MetalSFXData: | ||
- | LB245: | + | LB245: |
LongRangeShotSFXData: | LongRangeShotSFXData: | ||
- | LB249: | + | LB249: |
ShortRangeShotSFXData: | ShortRangeShotSFXData: | ||
- | LB24D: | + | LB24D: |
JumpSFXData: | JumpSFXData: | ||
- | LB251: | + | LB251: |
EnemyHitSFXData: | EnemyHitSFXData: | ||
- | LB255: | + | LB255: |
BugOutOFHoleSFXData: | BugOutOFHoleSFXData: | ||
- | LB259: | + | LB259: |
WaveBeamSFXData: | WaveBeamSFXData: | ||
- | LB25D: | + | LB25D: |
IceBeamSFXData: | IceBeamSFXData: | ||
- | LB261: | + | LB261: |
BombLaunch1SFXData: | BombLaunch1SFXData: | ||
- | LB265: | + | LB265: |
BombLaunch2SFXData: | BombLaunch2SFXData: | ||
- | LB269: | + | LB269: |
SamusToBallSFXData: | SamusToBallSFXData: | ||
- | LB26D: | + | LB26D: |
MetroidHitSFXData: | MetroidHitSFXData: | ||
- | LB26E: | + | LB26E: |
SamusDieSFXData: | SamusDieSFXData: | ||
- | LB275: | + | LB275: |
SamusBeepSFXData: | SamusBeepSFXData: | ||
- | LB279: | + | LB279: |
BigEnemyHitSFXData: | BigEnemyHitSFXData: | ||
- | LB27D: | + | LB27D: |
StatueRaiseSFXData: | StatueRaiseSFXData: | ||
- | LB281: | + | LB281: |
DoorSFXData: | DoorSFXData: | ||
- | LB285: | + | LB285: |
;The following table is used by the CheckSFXFlag routine. | ;The following table is used by the CheckSFXFlag routine. | ||
Line 4705: | Line 4705: | ||
ChooseNextSFXRoutineTbl: | ChooseNextSFXRoutineTbl: | ||
- | LB289: | + | LB289: |
- | LB28D: | + | LB28D: |
- | + | ||
- | LB28E: | + | LB28E: |
- | LB292: | + | LB292: |
- | LB293: | + | LB293: |
- | LB297: | + | LB297: |
- | LB298: | + | LB298: |
- | LB29C: | + | LB29C: |
- | LB29D: | + | LB29D: |
- | LB2A1: | + | LB2A1: |
- | LB2A2: | + | LB2A2: |
- | LB2A6: | + | LB2A6: |
- | LB2A7: | + | LB2A7: |
- | LB2AB: | + | LB2AB: |
- | LB2AC: | + | LB2AC: |
- | LB2B0: | + | LB2B0: |
- | LB2B1: | + | LB2B1: |
- | LB2B5: | + | LB2B5: |
- | LB2B6: | + | LB2B6: |
- | LB2BA: | + | LB2BA: |
;The tables below contain addresses for SFX handling routines. | ;The tables below contain addresses for SFX handling routines. | ||
;Noise Init SFX handling routine addresses: | ;Noise Init SFX handling routine addresses: | ||
- | LB2BB: | + | LB2BB: |
- | LB2BD: | + | LB2BD: |
- | LB2BF: | + | LB2BF: |
- | LB2C1: | + | LB2C1: |
- | LB2C3: | + | LB2C3: |
- | LB2C5: | + | LB2C5: |
- | LB2C7: | + | LB2C7: |
- | LB2C9: | + | LB2C9: |
;Noise Continue SFX handling routine addresses: | ;Noise Continue SFX handling routine addresses: | ||
- | LB2CB: | + | LB2CB: |
- | LB2CD: | + | LB2CD: |
- | LB2CF: | + | LB2CF: |
- | LB2D1: | + | LB2D1: |
- | LB2D3: | + | LB2D3: |
- | LB2D5: | + | LB2D5: |
- | LB2D7: | + | LB2D7: |
- | LB2D9: | + | LB2D9: |
;SQ1 Init SFX handling routine addresses: | ;SQ1 Init SFX handling routine addresses: | ||
- | LB2DB: | + | LB2DB: |
- | LB2DD: | + | LB2DD: |
- | LB2DF: | + | LB2DF: |
- | LB2E1: | + | LB2E1: |
- | LB2E3: | + | LB2E3: |
- | LB2E5: | + | LB2E5: |
- | LB2E7: | + | LB2E7: |
- | LB2E9: | + | LB2E9: |
;SQ1 Continue SFX handling routine addresses: | ;SQ1 Continue SFX handling routine addresses: | ||
- | LB2EB: | + | LB2EB: |
- | LB2ED: | + | LB2ED: |
- | LB2EF: | + | LB2EF: |
- | LB2F1: | + | LB2F1: |
- | LB2F3: | + | LB2F3: |
- | LB2F5: | + | LB2F5: |
- | LB2F7: | + | LB2F7: |
- | LB2F9: | + | LB2F9: |
;Triangle init handling routine addresses: | ;Triangle init handling routine addresses: | ||
- | LB2FB: | + | LB2FB: |
- | LB2FD: | + | LB2FD: |
- | LB2FF: | + | LB2FF: |
- | LB301: | + | LB301: |
- | LB303: | + | LB303: |
- | LB305: | + | LB305: |
- | LB307: | + | LB307: |
- | LB309: | + | LB309: |
;Triangle continue handling routine addresses: | ;Triangle continue handling routine addresses: | ||
- | LB30B: | + | LB30B: |
- | LB30E: | + | LB30E: |
- | LB30F: | + | LB30F: |
- | LB311: | + | LB311: |
- | LB313: | + | LB313: |
- | LB315: | + | LB315: |
- | LB317: | + | LB317: |
- | LB319: | + | LB319: |
LoadNoiseSFXInitFlags: | LoadNoiseSFXInitFlags: | ||
- | LB31B: LDA NoiseSFXFlag ;Load A with Noise init SFX flags, (1st SFX cycle). | + | LB31B: |
- | LB31E: LDX #$89 ;Lower address byte in ChooseNextSFXRoutineTbl. | + | LB31E: |
- | LB320: BNE GotoSFXCheckFlags ;Branch always. | + | LB320: |
LoadNoiseSFXContFlags: | LoadNoiseSFXContFlags: | ||
- | LB322: LDA NoiseContSFX ;Load A with Noise continue flags, (2nd SFX cycle). | + | LB322: |
- | LB325: LDX #$8E ;Lower address byte in ChooseNextSFXRoutineTbl. | + | LB325: |
- | LB327: BNE GotoSFXCheckFlags ;Branch always. | + | LB327: |
LoadSQ1SFXInitFlags: | LoadSQ1SFXInitFlags: | ||
- | LB329: LDA SQ1SFXFlag ;Load A with SQ1 init flags, (5th SFX cycle). | + | LB329: |
- | LB32C: LDX #$93 ;Lower address byte in ChooseNextSFXRoutineTbl. | + | LB32C: |
- | LB32E: BNE GotoSFXCheckFlags ;Branch always. | + | LB32E: |
LoadSQ1SFXContFlags: | LoadSQ1SFXContFlags: | ||
- | LB330: LDA SQ1ContSFX ;Load A with SQ1 continue flags, (6th SFX cycle). | + | LB330: |
- | LB333: LDX #$98 ;Lower address byte in ChooseNextSFXRoutineTbl. | + | LB333: |
- | LB335: BNE GotoSFXCheckFlags ;Branch always. | + | LB335: |
GotoSFXCheckFlags: | GotoSFXCheckFlags: | ||
- | LB337: JSR CheckSFXFlag ; | + | LB337: |
- | LB33A: JMP ($00E2) ;if no flag found, Jump to next SFX cycle, | + | LB33A: |
- | ;else jump to specific SFX handling routine. | + | ;else jump to specific SFX handling routine. |
LoadSTriangleSFXInitFlags: | LoadSTriangleSFXInitFlags: | ||
- | LB33D: LDA TriangleSFXFlag ;Load A with Triangle init flags, (7th SFX cycle). | + | LB33D: |
- | LB340: LDX #$9D ;Lower address byte in ChooseNextSFXRoutineTbl. | + | LB340: |
- | LB342: BNE GotoSFXCheckFlags ;Brach always. | + | LB342: |
LoadTriangleSFXContFlags: | LoadTriangleSFXContFlags: | ||
- | LB344: LDA TriangleContSFX ;Load A with Triangle continue flags, (8th SFX cycle). | + | LB344: |
- | LB347: LDX #$A2 ;Lower address byte in ChooseNextSFXRoutineTbl. | + | LB347: |
- | LB349: BNE GotoSFXCheckFlags ;Branch always. | + | LB349: |
LoadMultiSFXInitFlags: | LoadMultiSFXInitFlags: | ||
- | LB34B: LDA MultiSFXFlag ;Load A with Multi init flags, (3rd SFX cycle). | + | LB34B: |
- | LB34E: LDX #$A7 ;Lower address byte in ChooseNextSFXRoutineTbl. | + | LB34E: |
- | LB350: JSR CheckSFXFlag ; | + | LB350: |
- | LB353: JSR FindMusicInitIndex ; | + | LB353: |
- | LB356: JSR Add8 ;($BC64)Add 8 to MusicInitIndex. | + | LB356: |
- | LB359: JMP ($00E2) ;If no flag found, Jump to next SFX cycle, | + | LB359: |
- | ;else jump to specific SFX handling subroutine. | + | ;else jump to specific SFX handling subroutine. |
LoadMultiSFXContFlags: | LoadMultiSFXContFlags: | ||
- | LB35C: LDA MultiContSFX ;Load A with $68C flags (4th SFX cycle). | + | LB35C: |
- | LB35F: LDX #$AC ;Lower address byte in ChooseNextSFXRoutineTbl. | + | LB35F: |
- | LB361: JMP GotoSFXCheckFlags ; | + | LB361: |
LoadSQ1Flags: | LoadSQ1Flags: | ||
- | LB364: JSR LoadSQ1SFXInitFlags ; | + | LB364: |
- | LB367: RTS ; | + | LB367: |
- | LoadSQ1ChannelSFX: | + | LoadSQ1ChannelSFX: |
- | LB368: LDA #$00 ;($4000 - $4003) - SQ1. | + | LB368: |
- | LB36A: BEQ + ;Branch always. | + | LB36A: |
- | LoadTriangleChannelSFX: | + | LoadTriangleChannelSFX: |
- | LB36C: LDA #$08 ;($4008 - $400B) - Triangle. | + | LB36C: |
- | LB36E: BNE + ;Branch always. | + | LB36E: |
- | LoadNoiseChannelSFX: | + | LoadNoiseChannelSFX: |
- | LB370: LDA #$0C ;($400C - $400F) - Noise. | + | LB370: |
- | LB372: BNE + ;Branch always. | + | LB372: |
- | LoadSQ2ChannelSFX: | + | LoadSQ2ChannelSFX: |
- | LB374: LDA #$04 ;($4004 - $4007) - SQ2. | + | LB374: |
LoadSFXData: | LoadSFXData: | ||
- | LB376:* STA $E0 ;Lower address byte of desired APU control register. | + | LB376:* STA $E0 |
- | LB378: LDA #$40 ; | + | LB378: |
- | LB37A: STA $E1 ;Upper address byte of desired APU control register. | + | LB37A: |
- | LB37C: STY $E2 ;Lower address byte of data to load into sound channel. | + | LB37C: |
- | LB37E: LDA #$B2 ; | + | LB37E: |
- | LB380: STA $E3 ;Upper address byte of data to load into sound channel. | + | LB380: |
- | LB382: LDY #$00 ;Starting index for loading four byte sound data. | + | LB382: |
LoadSFXRegisters: | LoadSFXRegisters: | ||
- | LB384:* LDA ($E2),Y ;Load A with SFX data byte. | + | LB384:* LDA ($E2), |
- | LB386: STA ($E0),Y ;Store A in SFX register. | + | LB386: |
- | LB388: | + | LB388: |
- | LB389: | + | LB389: |
- | LB38A: CMP #$04 ;channel are loaded one after the other (the loop--> | + | LB38A: |
- | LB38C: BNE - ;repeats four times). | + | LB38C: |
- | LB38E: | + | LB38E: |
PauseSFX: | PauseSFX: | ||
- | LB38F:* INC SFXPaused ; | + | LB38F:* INC SFXPaused |
- | LB392: JSR ClearSounds ; | + | LB392: |
- | LB395: STA PauseSFXStatus ; | + | LB395: |
- | LB398: RTS ; | + | LB398: |
- | LB399:* LDA SFXPaused ;Has SFXPaused been set? if not, branch | + | LB399:* LDA SFXPaused |
- | LB39C: BEQ -- ; | + | LB39C: |
- | LB39E: LDA PauseSFXStatus ;For the first #$12 frames after the game has been--> | + | LB39E: |
- | LB3A1: CMP #$12 ;paused, play GamePaused SFX. If paused for # | + | LB3A1: |
- | LB3A3: BEQ ++ ;frames or more, branch to exit. | + | LB3A3: |
- | LB3A5: AND #$03 ; | + | LB3A5: |
- | LB3A7: CMP #$03 ;Every fourth frame, repeat GamePaused SFX | + | LB3A7: |
- | LB3A9: BNE + ; | + | LB3A9: |
- | LB3AB: LDY #$0D ;Lower address byte of GamePaused SFX data(Base=$B200) | + | LB3AB: |
- | LB3AD: JSR LoadSQ1ChannelSFX ;($B368) Load GamePaused SFX data. | + | LB3AD: |
- | LB3B0:* INC PauseSFXStatus ; | + | LB3B0:* INC PauseSFXStatus |
- | LB3B3: | + | LB3B3:* RTS |
; | ; | ||
Line 4919: | Line 4919: | ||
SoundEngine: | SoundEngine: | ||
- | LB3B4: LDA #$C0 ;Set APU to 5 frame cycle, disable frame interrupt. | + | LB3B4: |
- | LB3B6: STA APUCommonCntrl1 ; | + | LB3B6: |
- | LB3B9: LDA NoiseSFXFlag ;is bit zero is set in NoiseSFXFlag(Silence--> | + | LB3B9: |
- | LB3BC: | + | LB3BC: |
- | LB3BD: BCS ++ ; | + | LB3BD: |
- | LB3BF: LDA MainRoutine ; | + | LB3BF: |
- | LB3C1: CMP #$05 ;Is game paused? | + | LB3C1: |
- | LB3C3: BEQ --- ; | + | LB3C3: |
- | LB3C5: LDA #$00 ;Clear SFXPaused when game is running. | + | LB3C5: |
- | LB3C7: STA SFXPaused ; | + | LB3C7: |
- | LB3CA: JSR LoadNoiseSFXInitFlags ; | + | LB3CA: |
- | LB3CD: JSR LoadMultiSFXInitFlags ; | + | LB3CD: |
- | LB3D0: JSR LoadSTriangleSFXInitFlags ; | + | LB3D0: |
- | LB3D3: JSR LoadMusicTempFlags ; | + | LB3D3: |
ClearSFXFlags: | ClearSFXFlags: | ||
- | LB3D6:* LDA #$00 ; | + | LB3D6:* LDA #$00 ; |
- | LB3D8: STA NoiseSFXFlag ; | + | LB3D8: |
- | LB3DB: STA SQ1SFXFlag ; | + | LB3DB: |
- | LB3DE: STA SQ2SFXFlag ;Clear all SFX flags. | + | LB3DE: |
- | LB3E1: STA TriangleSFXFlag ; | + | LB3E1: |
- | LB3E4: STA MultiSFXFlag ; | + | LB3E4: |
- | LB3E7: STA MusicInitFlag ; | + | LB3E7: |
- | LB3EA: RTS ; | + | LB3EA: |
- | LB3EB:* JSR InitializeSoundAddresses ; | + | LB3EB:* JSR InitializeSoundAddresses |
- | LB3EE: BEQ -- ;Branch always. | + | LB3EE: |
CheckRepeatMusic: | CheckRepeatMusic: | ||
- | LB3F0: LDA MusicRepeat ; | + | LB3F0: |
- | LB3F3: BEQ + ;If music is supposed to repeat, reset music, | + | LB3F3: |
- | LB3F5: LDA CurrentMusic ;flags else branch to exit. | + | LB3F5: |
- | LB3F8: STA CurrentMusicRepeat ; | + | LB3F8: |
- | LB3FB: RTS ; | + | LB3FB: |
CheckMusicFlags: | CheckMusicFlags: | ||
- | LB3FC: LDA CurrentMusic ;Loads A with current music flags and compares it--> | + | LB3FC: |
- | LB3FF: CMP CurrentSFXFlags ;with current SFX flags. | + | LB3FF: |
- | LB402: BEQ ++ ;just clear music counters, else clear everything. | + | LB402: |
- | InitializeSoundAddresses: | + | InitializeSoundAddresses: |
- | LB404:* JSR ClearMusicAndSFXAddresses ; | + | LB404:* JSR ClearMusicAndSFXAddresses |
- | LB407: JSR ClearSounds ;($B43E)all sound addresses in order to start--> | + | LB407: |
- | LB40A:* JSR ClearSpecialAddresses ; | + | LB40A:* JSR ClearSpecialAddresses |
- | LB40D: | + | LB40D: |
ClearSpecialAddresses: | ClearSpecialAddresses: | ||
- | LB40E: LDA #$00 ; | + | LB40E: |
- | LB410: STA TriangleCounterCntrl ; | + | LB410: |
- | LB413: STA SFXPaused ;pausing music and controlling triangle length. | + | LB413: |
- | LB416: STA CurrentMusicRepeat ; | + | LB416: |
- | LB419: STA MusicRepeat ; | + | LB419: |
- | LB41C: RTS ; | + | LB41C: |
- | ClearMusicAndSFXAddresses: | + | ClearMusicAndSFXAddresses: |
- | LB41D: LDA #$00 ; | + | LB41D: |
- | LB41F: STA SQ1InUse ; | + | LB41F: |
- | LB422: STA SQ2InUse ; | + | LB422: |
- | LB425: STA TriangleInUse ; | + | LB425: |
- | LB428: STA WriteMultiChannelData ; | + | LB428: |
- | LB42B: STA NoiseContSFX ;Clears any SFX or music--> | + | LB42B: |
- | LB42E: STA SQ1ContSFX ;currently being played. | + | LB42E: |
- | LB431: STA SQ2ContSFX ; | + | LB431: |
- | LB434: STA TriangleContSFX ; | + | LB434: |
- | LB437: STA MultiContSFX ; | + | LB437: |
- | LB43A: STA CurrentMusic ; | + | LB43A: |
- | LB43D: | + | LB43D: |
- | ClearSounds: | + | ClearSounds: |
- | LB43E: LDA #$10 ; | + | LB43E: |
- | LB440: STA SQ1Cntrl0 ; | + | LB440: |
- | LB443: STA SQ2Cntrl0 ; | + | LB443: |
- | LB446: STA NoiseCntrl0 ;Clears all sounds that might be in--> | + | LB446: |
- | LB449: LDA #$00 ;The sound channel registers. | + | LB449: |
- | LB44B: STA TriangleCntrl0 ; | + | LB44B: |
- | LB44E: STA DMCCntrl1 ; | + | LB44E: |
- | LB451: | + | LB451: |
SelectSFXRoutine: | SelectSFXRoutine: | ||
- | LB452: LDX ChannelType ; | + | LB452: |
- | LB455: STA NoiseSFXLength, | + | LB455: |
- | LB458: TXA ; | + | LB458: |
- | LB459: BEQ ++ ;Branch if SFX uses noise channel. | + | LB459: |
- | LB45B: CMP #$01 ; | + | LB45B: |
- | LB45D: BEQ + ;Branch if SFX uses SQ1 channel. | + | LB45D: |
- | LB45F: CMP #$02 ; | + | LB45F: |
- | LB461: BEQ MusicBranch00 ;Branch if SFX uses SQ2 channel. | + | LB461: |
- | LB463: CMP #$03 ; | + | LB463: |
- | LB465: BEQ MusicBranch01 ;Branch if SFX uses triangle wave. | + | LB465: |
- | LB467: RTS ;Exit if SFX routine uses no channels. | + | LB467: |
- | LB468:* JSR LoadSQ1ChannelSFX ; | + | LB468:* JSR LoadSQ1ChannelSFX |
- | LB46B: BEQ ++ ;Branch always. | + | LB46B: |
- | MusicBranch00: | + | MusicBranch00: |
- | LB46D: JSR LoadSQ2ChannelSFX ; | + | LB46D: |
- | LB470: BEQ ++ ;Branch always. | + | LB470: |
- | MusicBranch01: | + | MusicBranch01: |
- | LB472: JSR LoadTriangleChannelSFX ; | + | LB472: |
- | LB475: BEQ ++ ;Branch always. | + | LB475: |
- | LB477:* JSR LoadNoiseChannelSFX ; | + | LB477:* JSR LoadNoiseChannelSFX |
- | LB47A:* JSR UpdateContFlags ;($B493)Set continuation flags for this SFX. | + | LB47A:* JSR UpdateContFlags |
- | LB47D: TXA ; | + | LB47D: |
- | LB47E: STA NoiseInUse, | + | LB47E: |
- | LB481: LDA #$00 ; | + | LB481: |
- | LB483: STA ThisNoiseFrame, | + | LB483: |
- | LB486: STA NoiseSFXData, | + | LB486: |
- | LB489: STA MultiSFXData, | + | LB489: |
- | LB48C: STA ScrewAttackSFXData, | + | LB48C: |
- | LB48F: STA WriteMultiChannelData ; | + | LB48F: |
- | LB492: RTS ; | + | LB492: |
UpdateContFlags: | UpdateContFlags: | ||
- | LB493:* LDX ChannelType ;Loads X register with sound channel just changed. | + | LB493:* LDX ChannelType |
- | LB496: LDA NoiseContSFX, | + | LB496: |
- | LB499: AND #$00 ;flags for that channel. | + | LB499: |
- | LB49B: ORA CurrentSFXFlags ;Load new continuation flags. | + | LB49B: |
- | LB49E: STA NoiseContSFX, | + | LB49E: |
- | LB4A1: RTS ; | + | LB4A1: |
ClearCurrentSFXFlags: | ClearCurrentSFXFlags: | ||
- | LB4A2: LDA #$00 ;Once SFX has completed, this block clears the--> | + | LB4A2: |
- | LB4A4: STA CurrentSFXFlags ;SFX flag from the current flag register. | + | LB4A4: |
- | LB4A7: BEQ - ; | + | LB4A7: |
IncrementSFXFrame: | IncrementSFXFrame: | ||
- | LB4A9: LDX ChannelType ;Load SFX channel number. | + | LB4A9: |
- | LB4AC: INC ThisNoiseFrame, | + | LB4AC: |
- | LB4AF: LDA ThisNoiseFrame, | + | LB4AF: |
- | LB4B2: CMP NoiseSFXLength, | + | LB4B2: |
- | LB4B5: BNE + ; | + | LB4B5: |
- | LB4B7: LDA #$00 ;If current frame is last frame, | + | LB4B7: |
- | LB4B9: STA ThisNoiseFrame, | + | LB4B9: |
- | LB4BC: | + | LB4BC:* RTS |
;The CheckSFXFlag routine loads E0 thru E3 with the below values: | ;The CheckSFXFlag routine loads E0 thru E3 with the below values: | ||
Line 5066: | Line 5066: | ||
CheckSFXFlag: | CheckSFXFlag: | ||
- | LB4BD: STA CurrentSFXFlags ;Store any set flags in $064D. | + | LB4BD: |
- | LB4C0: STX $E4 ; | + | LB4C0: |
- | LB4C2: LDY #$B2 ; | + | LB4C2: |
- | LB4C4: STY $E5 ; | + | LB4C4: |
- | LB4C6: LDY #$00 ;Y=0 for counting loop ahead. | + | LB4C6: |
- | LB4C8:* LDA ($E4),Y ; | + | LB4C8:* LDA ($E4), |
- | LB4CA: STA $00E0,Y ;See table above for values loaded into $E0--> | + | LB4CA: |
- | LB4CD: | + | LB4CD: |
- | LB4CE: | + | LB4CE: |
- | LB4CF: CMP #$04 ;Loop repeats four times to load the values. | + | LB4CF: |
- | LB4D1: BNE - ; | + | LB4D1: |
- | LB4D3: LDA ($E4),Y ; | + | LB4D3: |
- | LB4D5: STA ChannelType ;# | + | LB4D5: |
- | LB4D8: LDY #$00 ;Set y to 0 for counting loop ahead. | + | LB4D8: |
- | LB4DA: LDA CurrentSFXFlags ; | + | LB4DA: |
- | LB4DD: | + | LB4DD: |
- | LB4DE:* ASL CurrentSFXFlags ; | + | LB4DE:* ASL CurrentSFXFlags |
- | LB4E1: BCS + ;This portion of the routine loops a maximum of--> | + | LB4E1: |
- | LB4E3: INY ;eight times looking for any SFX flags that have--> | + | LB4E3: |
- | LB4E4: | + | LB4E4: |
- | LB4E5: | + | LB4E5: |
- | LB4E6: CMP #$10 ; | + | LB4E6: |
- | LB4E8: BNE - ;next SFX cycle. | + | LB4E8: |
RestoreSFXFlags: | RestoreSFXFlags: | ||
- | LB4EA: PLA ; | + | LB4EA: |
- | LB4EB: STA CurrentSFXFlags ;Restore original data in CurrentSFXFlags. | + | LB4EB: |
- | LB4EE: RTS ; | + | LB4EE: |
- | SFXFlagFound: | + | SFXFlagFound: |
- | LB4EF:* LDA ($E0),Y ;This routine stores the starting address of the--> | + | LB4EF:* LDA ($E0), |
- | LB4F1: STA $E2 ;specific SFX handling routine for the SFX flag--> | + | LB4F1: |
- | LB4F3: | + | LB4F3: |
- | LB4F4: LDA ($E0),Y ;$E2 and $E3. | + | LB4F4: |
- | LB4F6: STA $E3 ; | + | LB4F6: |
- | LB4F8: JMP RestoreSFXFlags ; | + | LB4F8: |
; | ; | ||
Line 5108: | Line 5108: | ||
;on the SFX. It starts out quiet, then becomes louder then goes quiet again. | ;on the SFX. It starts out quiet, then becomes louder then goes quiet again. | ||
SpitFlamesTbl: | SpitFlamesTbl: | ||
- | LB4FB: | + | LB4FB: |
- | LB50B: | + | LB50B: |
SpitFlameSFXStart: | SpitFlameSFXStart: | ||
- | LB50F: LDA #$14 ;Number of frames to play sound before a change. | + | LB50F: |
- | LB511: LDY #$21 ;Lower byte of sound data start address(base=$B200). | + | LB511: |
- | LB513: JMP SelectSFXRoutine ; | + | LB513: |
SpitFlameSFXContinue: | SpitFlameSFXContinue: | ||
- | LB516: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB516: |
- | LB519: BNE + ;If more frames to process, branch. | + | LB519: |
- | LB51B: JMP EndNoiseSFX ;($B58F)End SFX. | + | LB51B: |
- | LB51E:* LDY NoiseSFXData ; | + | LB51E:* LDY NoiseSFXData |
- | LB521: LDA $B4FB,Y ;Load data from table above and store in NoiseCntrl0. | + | LB521: |
- | LB524: STA NoiseCntrl0 ; | + | LB524: |
- | LB527: INC NoiseSFXData ;Increment to next entry in data table. | + | LB527: |
- | LB52A: | + | LB52A: |
ScrewAttackSFXStart: | ScrewAttackSFXStart: | ||
- | LB52B: LDA #$05 ;Number of frames to play sound before a change. | + | LB52B: |
- | LB52D: LDY #$11 ;Lower byte of sound data start address(base=$B200). | + | LB52D: |
- | LB52F: JSR SelectSFXRoutine ; | + | LB52F: |
- | LB532: LDA $B213 ;#$00. | + | LB532: |
- | LB535: STA NoiseSFXData ;Clear NoiseSFXData. | + | LB535: |
- | LB538: | + | LB538:* RTS |
ScrewAttackSFXContinue: | ScrewAttackSFXContinue: | ||
- | LB539: LDA ScrewAttackSFXData ;Prevents period index from being incremented until--> | + | LB539: |
- | LB53C: CMP #$02 ;after the tenth frame of the SFX. | + | LB53C: |
- | LB53E: BEQ + ;Branch if not ready to increment. | + | LB53E: |
- | LB540: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB540: |
- | LB543: BNE - ; | + | LB543: |
- | LB545: INC ScrewAttackSFXData ;Increment every fifth frame. | + | LB545: |
- | LB548: RTS ; | + | LB548: |
- | LB549:* JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB549:* JSR IncrementSFXFrame |
- | LB54C: BNE IncrementPeriodIndex ; | + | LB54C: |
- | LB54E: DEC NoiseSFXData ; | + | LB54E: |
- | LB551: DEC NoiseSFXData ;Decrement NoiseSFXData by three every fifth frame. | + | LB551: |
- | LB554: DEC NoiseSFXData ; | + | LB554: |
- | LB557: INC MultiSFXData ;Increment MultiSFXData. | + | LB557: |
- | LB55A: LDA MultiSFXData ;end screw attack SFX. MultiSFXData does not--> | + | LB55A: |
- | LB55D: CMP #$0F ;appear to be linked to multi SFX channels in--> | + | LB55D: |
- | LB55F: BNE -- ;this routine. | + | LB55F: |
- | LB561: JMP EndNoiseSFX ;($B58F)End SFX. | + | LB561: |
IncrementPeriodIndex: | IncrementPeriodIndex: | ||
- | LB564: INC NoiseSFXData ; | + | LB564: |
- | LB567: LDA NoiseSFXData ;lowering the frequency of the noise SFX. | + | LB567: |
- | LB56A: STA NoiseCntrl2 ; | + | LB56A: |
- | LB56D: RTS ; | + | LB56D: |
MissileLaunchSFXStart: | MissileLaunchSFXStart: | ||
- | LB56E: LDA #$18 ;Number of frames to play sound before a change. | + | LB56E: |
- | LB570: LDY #$15 ;Lower byte of sound data start address(base=$B200). | + | LB570: |
- | LB572: JSR GotoSelectSFXRoutine ; | + | LB572: |
- | LB575: LDA #$0A ; | + | LB575: |
- | LB577: STA NoiseSFXData ;Start increment index for noise channel at #$0A. | + | LB577: |
- | LB57A: RTS ; | + | LB57A: |
MissileLaunchSFXContine: | MissileLaunchSFXContine: | ||
- | LB57B: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB57B: |
- | LB57E: BNE IncrementPeriodIndex ; | + | LB57E: |
- | LB580: JMP EndNoiseSFX ;($B58F)End SFX. | + | LB580: |
BombExplodeSFXStart: | BombExplodeSFXStart: | ||
- | LB583: LDA #$30 ;Number of frames to play sound before a change. | + | LB583: |
- | LB585: LDY #$19 ;Lower byte of sound data start address(base=$B200). | + | LB585: |
GotoSelectSFXRoutine: | GotoSelectSFXRoutine: | ||
- | LB587:* JMP SelectSFXRoutine ; | + | LB587:* JMP SelectSFXRoutine |
;The following routine is used to continue BombExplode and SamusWalk SFX. | ;The following routine is used to continue BombExplode and SamusWalk SFX. | ||
NoiseSFXContinue: | NoiseSFXContinue: | ||
- | LB58A: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB58A: |
- | LB58D: BNE MusicBranch02 ;If more frames to process, branch to exit. | + | LB58D: |
EndNoiseSFX: | EndNoiseSFX: | ||
- | LB58F: JSR ClearCurrentSFXFlags ; | + | LB58F: |
- | LB592: LDA #$10 ; | + | LB592: |
- | LB594: STA NoiseCntrl0 ;disable envelope generator(sound off). | + | LB594: |
MusicBranch02: | MusicBranch02: | ||
- | LB597: RTS ;Exit for multiple routines. | + | LB597: |
SamusWalkSFXStart: | SamusWalkSFXStart: | ||
- | LB598: LDA NoiseContSFX ;If MissileLaunch, | + | LB598: |
- | LB59B: AND #$34 ;already being played, branch to exit. | + | LB59B: |
- | LB59D: BNE MusicBranch02 ; | + | LB59D: |
- | LB59F: LDA #$03 ;Number of frames to play sound before a change. | + | LB59F: |
- | LB5A1: LDY #$1D ;Lower byte of sound data start address(base=$B200). | + | LB5A1: |
- | LB5A3: BNE - ;Branch always. | + | LB5A3: |
MultiSFXInit: | MultiSFXInit: | ||
- | LB5A5: STA MultiSFXLength ; | + | LB5A5: |
- | LB5A8: JSR LoadSQ2ChannelSFX ;($B374)Set SQ2 SFX data. | + | LB5A8: |
- | LB5AB: JSR UpdateContFlags ;($B493)Set continue SFX flag. | + | LB5AB: |
- | LB5AE: LDA #$01 ; | + | LB5AE: |
- | LB5B0: STA SQ1InUse ;Disable music from using SQ1 and SQ2 while--> | + | LB5B0: |
- | LB5B3: LDA #$02 ;SFX are playing. | + | LB5B3: |
- | LB5B5: STA SQ2InUse ; | + | LB5B5: |
- | LB5B8: LDA #$00 ; | + | LB5B8: |
- | LB5BA: STA SQ1ContSFX ; | + | LB5BA: |
- | LB5BD: STA SQ1SFXData ; | + | LB5BD: |
- | LB5C0: STA SQ1SQ2SFXData ;Clear all listed memory addresses. | + | LB5C0: |
- | LB5C3: STA SQ1SFXPeriodLow ; | + | LB5C3: |
- | LB5C6: STA ThisMultiFrame ; | + | LB5C6: |
- | LB5C9: STA WriteMultiChannelData ; | + | LB5C9: |
- | LB5CC: RTS ; | + | LB5CC: |
EndMultiSFX: | EndMultiSFX: | ||
- | LB5CD: LDA #$10 ; | + | LB5CD: |
- | LB5CF: STA SQ1Cntrl0 ;Disable SQ1 envelope generator(sound off). | + | LB5CF: |
- | LB5D2: STA SQ2Cntrl0 ;Disable SQ2 envelope generator(sound off). | + | LB5D2: |
- | LB5D5: LDA #$7F ; | + | LB5D5: |
- | LB5D7: STA SQ1Cntrl1 ;Disable SQ1 sweep. | + | LB5D7: |
- | LB5DA: STA SQ2Cntrl1 ;Disable SQ2 sweep. | + | LB5DA: |
- | LB5DD: JSR ClearCurrentSFXFlags ; | + | LB5DD: |
- | LB5E0: LDA #$00 ; | + | LB5E0: |
- | LB5E2: STA SQ1InUse ; | + | LB5E2: |
- | LB5E5: STA SQ2InUse ;Allows music player to use SQ1 and SQ2 channels. | + | LB5E5: |
- | LB5E8: INC WriteMultiChannelData ; | + | LB5E8: |
- | LB5EB: RTS ; | + | LB5EB: |
BossHitSFXStart: | BossHitSFXStart: | ||
- | LB5EC: LDY #$2D ;Low byte of SQ1 sound data start address(base=$B200). | + | LB5EC: |
- | LB5EE: JSR LoadSQ1ChannelSFX ;($B368)Set SQ1 SFX data. | + | LB5EE: |
- | LB5F1: LDY #$29 ;Low byte of SQ2 sound data start address(base=$B200). | + | LB5F1: |
- | LB5F3: JMP MultiSFXInit ; | + | LB5F3: |
BossHitSFXContinue: | BossHitSFXContinue: | ||
- | LB5F6: INC SQ1SFXData ;Increment index to data in table below. | + | LB5F6: |
- | LB5F9: LDY SQ1SFXData ; | + | LB5F9: |
- | LB5FC: LDA $B63C,Y ; | + | LB5FC: |
- | LB5FF: STA SQ1Cntrl0 ;Load SQ1Cntrl0 and SQ2Cntrl0 from table below. | + | LB5FF: |
- | LB602: STA SQ2Cntrl0 ; | + | LB602: |
- | LB605: LDA SQ1SFXData ; | + | LB605: |
- | LB608: CMP #$14 ;After #$14 frames, end SFX. | + | LB608: |
- | LB60A: BEQ ++ ; | + | LB60A: |
- | LB60C: CMP #$06 ;After six or more frames of SFX, branch. | + | LB60C: |
- | LB60E: BCC + ; | + | LB60E: |
- | LB610: LDA RandomNumber1 ; | + | LB610: |
- | LB612: ORA #$10 ;Set bit 5. | + | LB612: |
- | LB614: AND #$7F ;Randomly set bits 7, 3, 2, 1 and 0. | + | LB614: |
- | LB616: STA SQ1SFXPeriodLow ;Store in SQ1 period low. | + | LB616: |
- | LB619: ROL ; | + | LB619: |
- | LB61A: STA SQ1SQ2SFXData ; | + | LB61A: |
- | LB61D: JMP WriteSQ1SQ2PeriodLow ; | + | LB61D: |
- | LB620:* INC SQ1SQ2SFXData ; | + | LB620:* INC SQ1SQ2SFXData |
- | LB623: INC SQ1SQ2SFXData ;Increment SQ1 and SQ2 period low by two. | + | LB623: |
- | LB626: INC SQ1SFXPeriodLow ; | + | LB626: |
- | LB629: INC SQ1SFXPeriodLow ; | + | LB629: |
WriteSQ1SQ2PeriodLow: | WriteSQ1SQ2PeriodLow: | ||
- | LB62C: LDA SQ1SQ2SFXData ; | + | LB62C: |
- | LB62F: STA SQ2Cntrl2 ;Write new SQ1 and SQ2 period lows to SQ1 and SQ2--> | + | LB62F: |
- | LB632: LDA SQ1SFXPeriodLow ; | + | LB632: |
- | LB635: STA SQ1Cntrl2 ; | + | LB635: |
- | LB638: RTS ; | + | LB638: |
- | LB639:* JMP EndMultiSFX ;($B5CD)End SFX. | + | LB639:* JMP EndMultiSFX |
BossHitSFXDataTbl: | BossHitSFXDataTbl: | ||
- | LB63C: | + | LB63C: |
- | LB64C: | + | LB64C: |
SamusHitSFXContinue: | SamusHitSFXContinue: | ||
- | LB650: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB650: |
- | LB653: BNE + ;If more SFX frames to process, branch. | + | LB653: |
- | LB655: JMP EndMultiSFX ;($B5CD)End SFX. | + | LB655: |
- | LB658:* LDY #$25 ;Low byte of SQ1 sound data start address(base=$B200). | + | LB658:* LDY #$25 ;Low byte of SQ1 sound data start address(base=$B200). |
- | LB65A: JSR LoadSQ1ChannelSFX ;($B368)Set SQ1 SFX data. | + | LB65A: |
- | LB65D: LDA RandomNumber1 ; | + | LB65D: |
- | LB65F: AND #$0F ;Randomly set last four bits of SQ1 period low. | + | LB65F: |
- | LB661: STA SQ1Cntrl2 ; | + | LB661: |
- | LB664: LDY #$25 ;Low byte of SQ2 sound data start address(base=$B200). | + | LB664: |
- | LB666: JSR LoadSQ2ChannelSFX ;($B374)Set SQ2 SFX data. | + | LB666: |
- | LB669: LDA RandomNumber1 ; | + | LB669: |
- | LB66B: LSR ;Multiply random number by 4. | + | LB66B: |
- | LB66C: LSR ; | + | LB66C: |
- | LB66D: AND #$0F ; | + | LB66D: |
- | LB66F: STA SQ2Cntrl2 ;Randomly set bits 2 and 3 of SQ2 period low. | + | LB66F: |
- | LB672: RTS ; | + | LB672: |
SamusHitSFXStart: | SamusHitSFXStart: | ||
- | LB673: LDY #$25 ;Low byte of SQ1 sound data start address(base=$B200). | + | LB673: |
- | LB675: JSR LoadSQ1ChannelSFX ;($B368)Set SQ1 SFX data. | + | LB675: |
- | LB678: LDA RandomNumber1 ; | + | LB678: |
- | LB67A: AND #$0F ;Randomly set last four bits of SQ1 period low. | + | LB67A: |
- | LB67C: STA SQ1Cntrl2 ; | + | LB67C: |
- | LB67F: CLC ; | + | LB67F: |
- | LB680: LDA RandomNumber1 ;Randomly set last three bits of SQ2 period low+1. | + | LB680: |
- | LB682: AND #$03 ; | + | LB682: |
- | LB684: ADC #$01 ;Number of frames to play sound before a change. | + | LB684: |
- | LB686: LDY #$25 ;Low byte of SQ2 sound data start address(base=$B200). | + | LB686: |
- | LB688: JSR MultiSFXInit ; | + | LB688: |
- | LB68B: LDA RandomNumber1 ; | + | LB68B: |
- | LB68D: LSR ;Multiply random number by 4. | + | LB68D: |
- | LB68E: LSR ; | + | LB68E: |
- | LB68F: AND #$0F ; | + | LB68F: |
- | LB691: STA SQ2Cntrl2 ;Randomly set bits 2 and 3 of SQ2 period low. | + | LB691: |
- | LB694: | + | LB694:* RTS |
IncorrectPasswordSFXStart: | IncorrectPasswordSFXStart: | ||
- | LB695: LDY #$31 ;Low byte of SQ1 sound data start address(base=$B200). | + | LB695: |
- | LB697: JSR LoadSQ1ChannelSFX ;($B368)Set SQ1 SFX data. | + | LB697: |
- | LB69A: LDA #$20 ;Number of frames to play sound before a change. | + | LB69A: |
- | LB69C: LDY #$35 ;Low byte of SQ2 sound data start address(base=$B200). | + | LB69C: |
- | LB69E: JMP MultiSFXInit ; | + | LB69E: |
IncorrectPasswordSFXContinue: | IncorrectPasswordSFXContinue: | ||
- | LB6A1: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB6A1: |
- | LB6A4: BNE - ;If more frames to process, branch to exit. | + | LB6A4: |
- | LB6A6: JMP EndMultiSFX ;($B5CD)End SFX. | + | LB6A6: |
;The following table is used by the below routine to load SQ1Cntrl2 data in the--> | ;The following table is used by the below routine to load SQ1Cntrl2 data in the--> | ||
Line 5328: | Line 5328: | ||
MissilePickupSFXTbl: | MissilePickupSFXTbl: | ||
- | LB6A9: | + | LB6A9: |
MissilePickupSFXContinue: | MissilePickupSFXContinue: | ||
- | LB6B0: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB6B0: |
- | LB6B3: BNE MusicBranch03 ;If more frames to process, branch to exit. | + | LB6B3: |
- | LB6B5: LDY SQ1SFXData ; | + | LB6B5: |
- | LB6B8: LDA MissilePickupSFXTbl, | + | LB6B8: |
- | LB6BB: BNE + ; | + | LB6BB: |
- | LB6BD: JMP EndSQ1SFX ;($B6F2)SFX completed. | + | LB6BD: |
- | LB6C0:* STA SQ1Cntrl2 ; | + | LB6C0:* STA SQ1Cntrl2 |
- | LB6C3: LDA $B244 ;#$28. | + | LB6C3: |
- | LB6C6: STA SQ1Cntrl3 ;load SQ1Cntrl3 with #$28. | + | LB6C6: |
- | LB6C9: INC SQ1SFXData ;Increment index to data table above every 5 frames. | + | LB6C9: |
MusicBranch03: | MusicBranch03: | ||
- | LB6CC: RTS ;Exit from multiple routines. | + | LB6CC: |
MissilePickupSFXStart: | MissilePickupSFXStart: | ||
- | LB6CD: LDA #$05 ;Number of frames to play sound before a change. | + | LB6CD: |
- | LB6CF: LDY #$41 ;Lower byte of sound data start address(base=$B200). | + | LB6CF: |
- | LB6D1: BNE +++ ;Branch always. | + | LB6D1: |
EnergyPickupSFXContinue: | EnergyPickupSFXContinue: | ||
- | LB6D3: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB6D3: |
- | LB6D6: BNE MusicBranch03 ;If more frames to process, branch to exit. | + | LB6D6: |
- | LB6D8: INC SQ1SFXData ; | + | LB6D8: |
- | LB6DB: LDA SQ1SFXData ;Every six frames, reload SFX info. Does it--> | + | LB6DB: |
- | LB6DE: CMP #$03 ;three times for a total of 18 frames. | + | LB6DE: |
- | LB6E0: BEQ + ; | + | LB6E0: |
- | LB6E2: LDY #$3D ; | + | LB6E2: |
- | LB6E4: JMP LoadSQ1ChannelSFX ;($B368)Set SQ1 SFX data. | + | LB6E4: |
EnergyPickupSFXStart: | EnergyPickupSFXStart: | ||
- | LB6E7: LDA #$06 ;Number of frames to play sound before a change. | + | LB6E7: |
- | LB6E9: LDY #$3D ;Lower byte of sound data start address(base=$B200). | + | LB6E9: |
- | LB6EB: BNE +++ ;Branch always. | + | LB6EB: |
;The following continue routine is used by the metal, bird out of hole, | ;The following continue routine is used by the metal, bird out of hole, | ||
Line 5369: | Line 5369: | ||
SQ1SFXContinue: | SQ1SFXContinue: | ||
- | LB6ED: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB6ED: |
- | LB6F0: BNE MusicBranch03 ; | + | LB6F0: |
EndSQ1SFX: | EndSQ1SFX: | ||
- | LB6F2:* LDA #$10 ; | + | LB6F2:* LDA #$10 ; |
- | LB6F4: STA SQ1Cntrl0 ;Disable envelope generator(sound off). | + | LB6F4: |
- | LB6F7: LDA #$00 ; | + | LB6F7: |
- | LB6F9: STA SQ1InUse ;Allows music to use SQ1 channel. | + | LB6F9: |
- | LB6FC: JSR ClearCurrentSFXFlags ; | + | LB6FC: |
- | LB6FF: INC WriteMultiChannelData ; | + | LB6FF: |
- | LB702: RTS ; | + | LB702: |
SamusJumpSFXStart: | SamusJumpSFXStart: | ||
- | LB703: LDA CurrentMusic ;If escape music is playing, exit without playing--> | + | LB703: |
- | LB706: CMP #$04 ;Samus jump SFX. | + | LB706: |
- | LB708: BEQ MusicBranch03 ; | + | LB708: |
- | LB70A: LDA #$0C ;Number of frames to play sound before a change. | + | LB70A: |
- | LB70C: LDY #$51 ;Lower byte of sound data start address(base=$B200). | + | LB70C: |
- | LB70E: BNE SelectSFX1 ;Branch always. | + | LB70E: |
EnemyHitSFXStart: | EnemyHitSFXStart: | ||
- | LB710: LDA #$08 ;Number of frames to play sound before a change. | + | LB710: |
- | LB712: LDY #$55 ;Lower byte of sound data start address(base=$B200). | + | LB712: |
- | LB714: BNE SelectSFX1 ;Branch always. | + | LB714: |
BulletFireSFXStart: | BulletFireSFXStart: | ||
- | LB716: LDA HasBeamSFX ; | + | LB716: |
- | LB719: LSR ;If Samus has ice beam, branch. | + | LB719: |
- | LB71A: BCS +++++ ; | + | LB71A: |
- | LB71C: LDA SQ1ContSFX ;If MissilePickup, | + | LB71C: |
- | LB71F: AND #$CC ;or EnemyHit SFX already playing, branch to exit. | + | LB71F: |
- | LB721: BNE MusicBranch03 ; | + | LB721: |
- | LB723: LDA HasBeamSFX ; | + | LB723: |
- | LB726: ASL ;If Samus has long beam, branch. | + | LB726: |
- | LB727: BCS + ; | + | LB727: |
- | LB729: LDA #$03 ;Number of frames to play sound before a change. | + | LB729: |
- | LB72B: LDY #$4D ;Lower byte of sound data start address(base=$B200). | + | LB72B: |
- | LB72D: BNE SelectSFX1 ;Branch always (Plays ShortBeamSFX). | + | LB72D: |
HasLongBeamSFXStart: | HasLongBeamSFXStart: | ||
- | LB72F:* LDA #$07 ;Number of frames to play sound before a change. | + | LB72F:* LDA #$07 ;Number of frames to play sound before a change. |
- | LB731: LDY #$49 ;Lower byte of sound data start address(base=$B200). | + | LB731: |
- | LB733: BNE SelectSFX1 ;Branch always. | + | LB733: |
MetalSFXStart: | MetalSFXStart: | ||
- | LB735: LDA #$0B ;Number of frames to play sound before a change. | + | LB735: |
- | LB737: LDY #$45 ;Lower byte of sound data start address(base=$B200). | + | LB737: |
SelectSFX1: | SelectSFX1: | ||
- | LB739:* JMP SelectSFXRoutine ; | + | LB739:* JMP SelectSFXRoutine |
BirdOutOfHoleSFXStart: | BirdOutOfHoleSFXStart: | ||
- | LB73C: LDA CurrentMusic ;If escape music is playing, use this SFX to make--> | + | LB73C: |
- | LB73F: CMP #$04 ;the bomb ticking sound, else play regular SFX. | + | LB73F: |
- | LB741: BEQ + ; | + | LB741: |
- | LB743: LDA #$16 ;Number of frames to play sound before a change. | + | LB743: |
- | LB745: LDY #$59 ;Lower byte of sound data start address(base=$B200). | + | LB745: |
- | LB747: BNE SelectSFX1 ;Branch always. | + | LB747: |
- | LB749:* LDA #$07 ;Number of frames to play sound before a change. | + | LB749:* LDA #$07 ;Number of frames to play sound before a change. |
- | LB74B: LDY #$39 ;Lower byte of sound data start address(base=$B200). | + | LB74B: |
- | LB74D: BNE SelectSFX1 ;Branch always. | + | LB74D: |
BulletFireSFXContinue: | BulletFireSFXContinue: | ||
- | LB74F: LDA HasBeamSFX ; | + | LB74F: |
- | LB752: LSR ;If Samus has ice beam, branch. | + | LB752: |
- | LB753: BCS +++ ; | + | LB753: |
- | LB755: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB755: |
- | LB758: BNE + ;If more frames to process, branch to exit. | + | LB758: |
- | LB75A: JMP EndSQ1SFX ;($B6F2)If SFX finished, jump. | + | LB75A: |
- | LB75D: | + | LB75D:* RTS |
HasIceBeamSFXStart: | HasIceBeamSFXStart: | ||
- | LB75E:* LDA #$07 ;Number of frames to play sound before a change. | + | LB75E:* LDA #$07 ;Number of frames to play sound before a change. |
- | LB760: LDY #$61 ;Lower byte of sound data start address(base=$B200). | + | LB760: |
- | LB762: JMP SelectSFXRoutine ; | + | LB762: |
HasIceBeamSFXContinue: | HasIceBeamSFXContinue: | ||
- | LB765:* JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB765:* JSR IncrementSFXFrame |
- | LB768: BNE + ;If more frames to process, branch. | + | LB768: |
- | LB76A: JMP EndSQ1SFX ;($B6F2)If SFX finished, jump. | + | LB76A: |
- | LB76D:* LDA SQ1SFXData ; | + | LB76D:* LDA SQ1SFXData |
- | LB770: AND #$01 ;Determine index for IceBeamSFXDataTbl below. | + | LB770: |
- | LB772: TAY ; | + | LB772: |
- | LB773: LDA IceBeamSFXDataTbl, | + | LB773: |
- | LB776: BNE ++ ; | + | LB776: |
IceBeamSFXDataTbl: | IceBeamSFXDataTbl: | ||
- | LB778: | + | LB778: |
- | LB779: | + | LB779: |
WaveBeamSFXStart: | WaveBeamSFXStart: | ||
- | LB77A: LDA #$08 ;Number of frames to play sound before a change. | + | LB77A: |
- | LB77C: LDY #$5D ;Lower byte of sound data start address(base=$B200). | + | LB77C: |
- | LB77E: JMP SelectSFXRoutine ; | + | LB77E: |
WaveBeamSFXContinue: | WaveBeamSFXContinue: | ||
- | LB781: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB781: |
- | LB784: BNE + ;If more frames to process, branch. | + | LB784: |
- | LB786: LDY SQ1SQ2SFXData ; | + | LB786: |
- | LB789: INC SQ1SQ2SFXData ;Load wave beam SFXDisable/ | + | LB789: |
- | LB78C: LDA WaveBeamSFXDisLngthTbl, | + | LB78C: |
- | LB78F: STA SQ1Cntrl0 ; | + | LB78F: |
- | LB792: BNE MusicBranch10 ;If at end of WaveBeamSFXDisableLengthTbl, | + | LB792: |
- | LB794: JMP EndSQ1SFX ;($B6F2)If SFX finished, jump. | + | LB794: |
- | LB797:* LDA SQ1SFXData | + | LB797:* LDA SQ1SFXData |
- | LB79A: AND #$01 ; | + | LB79A: |
- | LB79C: TAY ;Load wave beam SFX period low data from--> | + | LB79C: |
- | LB79D: LDA WaveBeamSFXPeriodLowTbl, | + | LB79D: |
LoadSQ1PeriodLow: | LoadSQ1PeriodLow: | ||
- | LB7A0:* STA SQ1Cntrl2 ;Change the period low data for SQ1 channel. | + | LB7A0:* STA SQ1Cntrl2 |
- | LB7A3: INC SQ1SFXData ; | + | LB7A3: |
MusicBranch10: | MusicBranch10: | ||
- | LB7A6: RTS ;Exit for multiple routines. | + | LB7A6: |
WaveBeamSFXPeriodLowTbl: | WaveBeamSFXPeriodLowTbl: | ||
- | LB7A7: | + | LB7A7: |
- | LB7A8: | + | LB7A8: |
WaveBeamSFXDisLngthTbl: | WaveBeamSFXDisLngthTbl: | ||
- | LB7A9: | + | LB7A9: |
- | LB7AA: | + | LB7AA: |
- | LB7AB: | + | LB7AB: |
DoorOpenCloseSFXStart: | DoorOpenCloseSFXStart: | ||
- | LB7AC: LDA $B287 ;#$30. | + | LB7AC: |
- | LB7AF: STA TrianglePeriodLow ;Set triangle period low data byte. | + | LB7AF: |
- | LB7B2: LDA $B288 ;#$B2. | + | LB7B2: |
- | LB7B5: AND #$07 ;Set triangle period high data byte. | + | LB7B5: |
- | LB7B7: STA TrianglePeriodHigh ;#$B7. | + | LB7B7: |
- | LB7BA: LDA #$0F ; | + | LB7BA: |
- | LB7BC: STA TriangleChangeLow ;Change triangle channel period low every frame by #$0F. | + | LB7BC: |
- | LB7BF: LDA #$00 ; | + | LB7BF: |
- | LB7C1: STA TriangleChangeHigh ;No change in triangle channel period high. | + | LB7C1: |
- | LB7C4: LDA #$1F ;Number of frames to play sound before a change. | + | LB7C4: |
- | LB7C6: LDY #$85 ;Lower byte of sound data start address(base=$B200). | + | LB7C6: |
- | LB7C8: JMP SelectSFXRoutine ; | + | LB7C8: |
DoorOpenCloseSFXContinue: | DoorOpenCloseSFXContinue: | ||
- | LB7CB: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB7CB: |
- | LB7CE: BNE + ; | + | LB7CE: |
- | LB7D0: JMP EndTriangleSFX ;($B896)End SFX. | + | LB7D0: |
- | LB7D3:* JSR DecreaseTrianglePeriods ; | + | LB7D3:* JSR DecreaseTrianglePeriods |
- | LB7D6: JMP WriteTrianglePeriods ; | + | LB7D6: |
BeepSFXStart: | BeepSFXStart: | ||
- | LB7D9: LDA TriangleContSFX ;If BombLaunchSFX is already playing, branch--> | + | LB7D9: |
- | LB7DC: AND #$80 ;without playing BeepSFX. | + | LB7DC: |
- | LB7DE: BNE MusicBranch10 ; | + | LB7DE: |
- | LB7E0: LDA #$03 ;Number of frames to play sound before a change. | + | LB7E0: |
- | LB7E2: LDY #$79 ;Lower byte of sound data start address(base=$B200). | + | LB7E2: |
- | LB7E4: JMP SelectSFXRoutine ; | + | LB7E4: |
BeepSFXContinue: | BeepSFXContinue: | ||
- | LB7E7: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB7E7: |
- | LB7EA: BNE MusicBranch10 ;If more frames to process, branch to exit. | + | LB7EA: |
- | LB7EC: JMP EndTriangleSFX ;($B896)End SFX. | + | LB7EC: |
BigEnemyHitSFXStart: | BigEnemyHitSFXStart: | ||
- | LB7EF: LDA #$12 ;Increase triangle low period by #$12 every frame. | + | LB7EF: |
- | LB7F1: STA TriangleChangeLow ; | + | LB7F1: |
- | LB7F4: LDA #$00 ; | + | LB7F4: |
- | LB7F6: STA TriangleChangeHigh ;Does not change triangle period high. | + | LB7F6: |
- | LB7F9: LDA $B27F ;#$42. | + | LB7F9: |
- | LB7FC: STA TrianglePeriodLow ;Save new triangle period low data. | + | LB7FC: |
- | LB7FF: LDA $B280 ;#$18. | + | LB7FF: |
- | LB802: AND #$07 ;#$1F. | + | LB802: |
- | LB804: STA TrianglePeriodHigh ;Save new triangle period high data. | + | LB804: |
- | LB807: LDA #$0A ;Number of frames to play sound before a change. | + | LB807: |
- | LB809: LDY #$7D ;Lower byte of sound data start address(base=$B200). | + | LB809: |
- | LB80B: JMP SelectSFXRoutine ; | + | LB80B: |
BigEnemyHitSFXContinue: | BigEnemyHitSFXContinue: | ||
- | LB80E: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB80E: |
- | LB811: BNE + ;If more frames to process, branch | + | LB811: |
- | LB813: JMP EndTriangleSFX ;($B896)End SFX | + | LB813: |
- | LB816:* JSR IncreaseTrianglePeriods ; | + | LB816:* JSR IncreaseTrianglePeriods |
- | LB819: LDA RandomNumber1 ; | + | LB819: |
- | LB81B: AND #$3C ; | + | LB81B: |
- | LB81D: STA TriangleSFXData ; | + | LB81D: |
- | LB820: LDA TrianglePeriodLow ;Randomly set or clear bits 2, 3, 4 and 5 in--> | + | LB820: |
- | LB823: AND #$C3 ;triangle channel period low. | + | LB823: |
- | LB825: ORA TriangleSFXData ; | + | LB825: |
- | LB828: STA TriangleCntrl2 ; | + | LB828: |
- | LB82B: LDA TrianglePeriodHigh ; | + | LB82B: |
- | LB82E: ORA #$40 ;Set 4th bit in triangle channel period high. | + | LB82E: |
- | LB830: STA TriangleCntrl3 ; | + | LB830: |
- | LB833: RTS ; | + | LB833: |
SamusToBallSFXStart: | SamusToBallSFXStart: | ||
- | LB834: LDA #$08 ;Number of frames to play sound before a change. | + | LB834: |
- | LB836: LDY #$6D ;Lower byte of sound data start address(base=$B200). | + | LB836: |
- | LB838: JSR SelectSFXRoutine ; | + | LB838: |
- | LB83B: LDA #$05 ; | + | LB83B: |
- | LB83D: STA PercentDifference ;Stores percent difference. In this case 5 = 1/5 = 20%. | + | LB83D: |
- | LB840: LDA $B26F ;#$DD. | + | LB840: |
- | LB843: STA TrianglePeriodLow ;Save new triangle period low data. | + | LB843: |
- | LB846: LDA $B270 ;#$3B. | + | LB846: |
- | LB849: AND #$07 ;#$02. | + | LB849: |
- | LB84B: STA TrianglePeriodHigh ;Save new triangle period high data. | + | LB84B: |
- | LB84E: RTS ; | + | LB84E: |
SamusToBallSFXContinue: | SamusToBallSFXContinue: | ||
- | LB84F: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB84F: |
- | LB852: BNE + ;If more frames to process, branch. | + | LB852: |
- | LB854: JMP EndTriangleSFX ;($B896)End SFX. | + | LB854: |
- | LB857:* JSR DivideTrianglePeriods ; | + | LB857:* JSR DivideTrianglePeriods |
- | LB85A: LDA TriangleLowPercentage ; | + | LB85A: |
- | LB85D: STA TriangleChangeLow ;Store new values to change triangle periods. | + | LB85D: |
- | LB860: LDA TriangleHighPercentage ; | + | LB860: |
- | LB863: STA TriangleChangeHigh ; | + | LB863: |
- | LB866: JSR DecreaseTrianglePeriods ; | + | LB866: |
WriteTrianglePeriods: | WriteTrianglePeriods: | ||
- | LB869: LDA TrianglePeriodLow ;Write TrianglePeriodLow to triangle channel. | + | LB869: |
- | LB86C: STA TriangleCntrl2 ; | + | LB86C: |
- | LB86F: LDA TrianglePeriodHigh ; | + | LB86F: |
- | LB872: ORA #$08 ;Write TrianglePeriodHigh to triangle channel. | + | LB872: |
- | LB874: STA TriangleCntrl3 ; | + | LB874: |
- | LB877: RTS ; | + | LB877: |
BombLaunchSFXStart: | BombLaunchSFXStart: | ||
- | LB878: LDA #$04 ;Number of frames to play sound before a change. | + | LB878: |
- | LB87A: LDY #$65 ;Lower byte of sound data start address(base=$B200). | + | LB87A: |
- | LB87C: JMP SelectSFXRoutine ; | + | LB87C: |
BombLaunchSFXContinue: | BombLaunchSFXContinue: | ||
- | LB87F: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB87F: |
- | LB882: BNE MusicBranch04 ;If more frames to process, branch to exit. | + | LB882: |
- | LB884: INC TriangleSFXData ; | + | LB884: |
- | LB887: LDA TriangleSFXData ;After four frames, load second part of SFX. | + | LB887: |
- | LB88A: CMP #$02 ; | + | LB88A: |
- | LB88C: BNE + ; | + | LB88C: |
- | LB88E: JMP EndTriangleSFX ;($B896)End SFX. | + | LB88E: |
- | LB891:* LDY #$69 ;Lower byte of sound data start address(base=$B200). | + | LB891:* LDY #$69 ;Lower byte of sound data start address(base=$B200). |
- | LB893: JMP LoadTriangleChannelSFX ; | + | LB893: |
EndTriangleSFX: | EndTriangleSFX: | ||
- | LB896: LDA #$00 ; | + | LB896: |
- | LB898: STA TriangleCntrl0 ;clear TriangleCntr0(sound off). | + | LB898: |
- | LB89B: STA TriangleInUse ;Allows music to use triangle channel. | + | LB89B: |
- | LB89E: LDA #$18 ; | + | LB89E: |
- | LB8A0: STA TriangleCntrl3 ;Set length index to #$03. | + | LB8A0: |
- | LB8A3: JSR ClearCurrentSFXFlags ; | + | LB8A3: |
MusicBranch04: | MusicBranch04: | ||
- | LB8A6: RTS ;Exit from for multiple routines. | + | LB8A6: |
MetroidHitSFXStart: | MetroidHitSFXStart: | ||
- | LB8A7: LDA #$03 ;Number of frames to play sound before a change. | + | LB8A7: |
- | LB8A9: LDY #$71 ;Lower byte of sound data start address(base=$B200). | + | LB8A9: |
- | LB8AB: JSR SelectSFXRoutine ; | + | LB8AB: |
- | LB8AE: JMP RndTrianglePeriods ; | + | LB8AE: |
MetroiHitSFXContinue: | MetroiHitSFXContinue: | ||
- | LB8B1: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB8B1: |
- | LB8B4: BEQ + ; | + | LB8B4: |
- | LB8B6: INC TriangleSFXData ; | + | LB8B6: |
- | LB8B9: LDA TriangleSFXData ;Randomize triangle periods nine times throughout--> | + | LB8B9: |
- | LB8BC: CMP #$09 ;the course of the SFX. | + | LB8BC: |
- | LB8BE: BNE MusicBranch04 ;If SFX not done, branch. | + | LB8BE: |
- | LB8C0: JMP EndTriangleSFX ;($B896)End SFX. | + | LB8C0: |
RndTrianglePeriods: | RndTrianglePeriods: | ||
- | LB8C3:* LDA RandomNumber1 ;Randomly set or reset bits 7, 4, 2 and 1 of--> | + | LB8C3:* LDA RandomNumber1 |
- | LB8C5: ORA #$6C ;triangle channel period low. | + | LB8C5: |
- | LB8C7: STA TriangleCntrl2 ; | + | LB8C7: |
- | LB8CA: AND #$01 ; | + | LB8CA: |
- | LB8CC: ORA #$F8 ;Randomly set or reset last bit of triangle--> | + | LB8CC: |
- | LB8CE: STA TriangleCntrl3 ;channel period high. | + | LB8CE: |
- | LB8D1: RTS ; | + | LB8D1: |
SamusDieSFXStart: | SamusDieSFXStart: | ||
- | LB8D2: JSR InitializeSoundAddresses ; | + | LB8D2: |
- | LB8D5: LDA #$0E ;Number of frames to play sound before a change. | + | LB8D5: |
- | LB8D7: LDY #$75 ;Lower byte of sound data start address(base=$B200). | + | LB8D7: |
- | LB8D9: JSR SelectSFXRoutine ; | + | LB8D9: |
- | LB8DC: LDA #$15 ;Decrease triangle SFX periods by 4.8% every frame. | + | LB8DC: |
- | LB8DE: STA PercentDifference ; | + | LB8DE: |
- | LB8E1: LDA $B277 ;#$40. | + | LB8E1: |
- | LB8E4: STA TrianglePeriodLow ; | + | LB8E4: |
- | LB8E7: LDA #$00 ;Initial values of triangle periods. | + | LB8E7: |
- | LB8E9: STA TrianglePeriodHigh ; | + | LB8E9: |
- | LB8EC: | + | LB8EC:* RTS |
SamusDieSFXContinue: | SamusDieSFXContinue: | ||
- | LB8ED: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB8ED: |
- | LB8F0: BNE + ; | + | LB8F0: |
- | LB8F2: LDA #$20 ;Store change in triangle period low. | + | LB8F2: |
- | LB8F4: STA TriangleChangeLow ; | + | LB8F4: |
- | LB8F7: LDA #$00 ; | + | LB8F7: |
- | LB8F9: STA TriangleChangeHigh ;No change in triangle period high. | + | LB8F9: |
- | LB8FC: JSR DecreaseTrianglePeriods ; | + | LB8FC: |
- | LB8FF: INC TriangleSFXData ; | + | LB8FF: |
- | LB902: LDA TriangleSFXData ; | + | LB902: |
- | LB905: CMP #$06 ; | + | LB905: |
- | LB907: BNE - ;If more frames to process, branch to exit. | + | LB907: |
- | LB909: JMP EndTriangleSFX ;($B896)End SFX. | + | LB909: |
- | LB90C:* JSR DivideTrianglePeriods ; | + | LB90C:* JSR DivideTrianglePeriods |
- | LB90F: LDA TriangleLowPercentage ; | + | LB90F: |
- | LB912: STA TriangleChangeLow ;Update triangle periods. | + | LB912: |
- | LB915: LDA TriangleHighPercentage ; | + | LB915: |
- | LB918: STA TriangleChangeHigh ; | + | LB918: |
- | LB91B: JSR IncreaseTrianglePeriods ; | + | LB91B: |
- | LB91E: JMP WriteTrianglePeriods ; | + | LB91E: |
StatueRaiseSFXStart: | StatueRaiseSFXStart: | ||
- | LB921: LDA $B283 ;#$11. | + | LB921: |
- | LB924: STA TrianglePeriodLow ;Save period low data. | + | LB924: |
- | LB927: LDA $B284 ;#$09. | + | LB927: |
- | LB92A: AND #$07 ; | + | LB92A: |
- | LB92C: STA TrianglePeriodHigh ;Store last three bits in $B284. | + | LB92C: |
- | LB92F: LDA #$00 ; | + | LB92F: |
- | LB931: STA TriangleChangeHigh ;No change in Triangle period high. | + | LB931: |
- | LB934: LDA #$0B ; | + | LB934: |
- | LB936: STA TriangleChangeLow ; | + | LB936: |
- | LB939: LDA #$06 ;Number of frames to play sound before a change. | + | LB939: |
- | LB93B: LDY #$81 ;Lower byte of sound data start address(base=$B200). | + | LB93B: |
- | LB93D: JMP SelectSFXroutine ; | + | LB93D: |
StatueRaiseSFXContinue: | StatueRaiseSFXContinue: | ||
- | LB940: JSR IncrementSFXFrame ;($B4A9)Get next databyte to process in SFX. | + | LB940: |
- | LB943: BNE ++ ; | + | LB943: |
- | LB945: INC TriangleSFXData ;Increment TriangleSFXData every 6 frames. | + | LB945: |
- | LB948: LDA TriangleSFXData ; | + | LB948: |
- | LB94B: CMP #$09 ;When TriangleSFXData = #$09, end SFX. | + | LB94B: |
- | LB94D: BNE + ; | + | LB94D: |
- | LB94F: JMP EndTriangleSFX ;($B896)End SFX. | + | LB94F: |
- | LB952:* LDA TriangleChangeLow ; | + | LB952:* LDA TriangleChangeLow |
- | LB955: PHA ;Save triangle periods. | + | LB955: |
- | LB956: LDA TriangleChangeHigh ; | + | LB956: |
- | LB959: PHA ; | + | LB959: |
- | LB95A: LDA #$25 ; | + | LB95A: |
- | LB95C: STA TriangleChangeLow ; | + | LB95C: |
- | LB95F: LDA #$00 ;No change in triangle period high. | + | LB95F: |
- | LB961: STA TriangleChangeHigh ; | + | LB961: |
- | LB964: JSR IncreaseTrianglePeriods ; | + | LB964: |
- | LB967: PLA ; | + | LB967: |
- | LB968: STA TriangleChangeHigh ;Restore triangle periods. | + | LB968: |
- | LB96B: PLA ; | + | LB96B: |
- | LB96C: STA TriangleChangeLow ; | + | LB96C: |
- | LB96F: JMP WriteTrianglePeriods ; | + | LB96F: |
- | LB972:* JSR DecreaseTrianglePeriods ; | + | LB972:* JSR DecreaseTrianglePeriods |
- | LB975: JMP WriteTrianglePeriods ; | + | LB975: |
IncreaseTrianglePeriods: | IncreaseTrianglePeriods: | ||
- | LB978: CLC | + | LB978: |
- | LB979: LDA TrianglePeriodLow ; | + | LB979: |
- | LB97C: ADC TriangleChangeLow ;Calculate new TrianglePeriodLow. | + | LB97C: |
- | LB97F: STA TrianglePeriodLow ; | + | LB97F: |
- | LB982: LDA TrianglePeriodHigh ; | + | LB982: |
- | LB985: ADC TriangleChangeHigh ;Calculate new TrianglePeriodHigh. | + | LB985: |
- | LB988: STA TrianglePeriodHigh ; | + | LB988: |
- | LB98B: RTS ; | + | LB98B: |
DecreaseTrianglePeriods: | DecreaseTrianglePeriods: | ||
- | LB98C: SEC | + | LB98C: |
- | LB98D: LDA TrianglePeriodLow ; | + | LB98D: |
- | LB990: SBC TriangleChangeLow ;Calculate new TrianglePeriodLow. | + | LB990: |
- | LB993: STA TrianglePeriodLow ; | + | LB993: |
- | LB996: LDA TrianglePeriodHigh ; | + | LB996: |
- | LB999: SBC TriangleChangeHigh ;Calculate new TrianglePeriodHigh. | + | LB999: |
- | LB99C: STA TrianglePeriodHigh ; | + | LB99C: |
- | LB99F: RTS ; | + | LB99F: |
DivideTrianglePeriods: | DivideTrianglePeriods: | ||
- | LB9A0: LDA TrianglePeriodLow ; | + | LB9A0: |
- | LB9A3: PHA ;Store TrianglePeriodLow and TrianglePeriodHigh. | + | LB9A3: |
- | LB9A4: LDA TrianglePeriodHigh ; | + | LB9A4: |
- | LB9A7: PHA ; | + | LB9A7: |
- | LB9A8: LDA #$00 ; | + | LB9A8: |
- | LB9AA: STA DivideData ; | + | LB9AA: |
- | LB9AD: LDX #$10 ; | + | LB9AD: |
- | LB9AF: ROL TrianglePeriodLow ; | + | LB9AF: |
- | LB9B2: ROL TrianglePeriodHigh ; | + | LB9B2: |
- | LB9B5:* ROL DivideData ;The following routine takes the triangle period--> | + | LB9B5:* ROL DivideData |
- | LB9B8: LDA DivideData ;high and triangle period low values and reduces--> | + | LB9B8: |
- | LB9BB: CMP PercentDifference ;them by a certain percent. | + | LB9BB: |
- | LB9BE: BCC + ;determined by the value stored in--> | + | LB9BE: |
- | LB9C0: SBC PercentDifference ; | + | LB9C0: |
- | LB9C3: STA DivideData ;then the values will be reduced by 20%(1/ | + | LB9C3: |
- | LB9C6:* ROL TrianglePeriodLow ;If PercentDifference=# | + | LB9C6:* ROL TrianglePeriodLow |
- | LB9C9: ROL TrianglePeriodHigh ;be reduced by 10%(1/10), etc. This function is--> | + | LB9C9: |
- | LB9CC: DEX ;basically a software emulation of a sweep function. | + | LB9CC: |
- | LB9CD: BNE -- ; | + | LB9CD: |
- | LB9CF: LDA TrianglePeriodLow ; | + | LB9CF: |
- | LB9D2: STA TriangleLowPercentage ; | + | LB9D2: |
- | LB9D5: LDA TrianglePeriodHigh ; | + | LB9D5: |
- | LB9D8: STA TriangleHighPercentage ; | + | LB9D8: |
- | LB9DB: PLA ; | + | LB9DB: |
- | LB9DC: STA TrianglePeriodHigh ;Restore TrianglePerodLow and TrianglePeriodHigh. | + | LB9DC: |
- | LB9DF: PLA ; | + | LB9DF: |
- | LB9E0: STA TrianglePeriodLow ; | + | LB9E0: |
- | LB9E3: RTS ; | + | LB9E3: |
; | ; | ||
SetVolumeAndDisableSweep: | SetVolumeAndDisableSweep: | ||
- | LB9E4: LDA #$7F ; | + | LB9E4: |
- | LB9E6: STA MusicSQ1Sweep ;Disable sweep generator on SQ1 and SQ2. | + | LB9E6: |
- | LB9E9: STA MusicSQ2Sweep ; | + | LB9E9: |
- | LB9EC: STX SQ1DutyEnvelope ;Store duty cycle and volume data for SQ1 and SQ2. | + | LB9EC: |
- | LB9EF: STY SQ2DutyEnvelope ; | + | LB9EF: |
- | LB9F2: RTS ; | + | LB9F2: |
ResetVolumeIndex: | ResetVolumeIndex: | ||
- | LB9F3: LDA SQ1MusicFrameCount ;If at the beginning of a new SQ1 note, set--> | + | LB9F3: |
- | LB9F6: CMP #$01 ; | + | LB9F6: |
- | LB9F8: BNE + ; | + | LB9F8: |
- | LB9FA: STA SQ1VolumeIndex ; | + | LB9FA: |
- | LB9FD:* LDA SQ2MusicFrameCount ; | + | LB9FD:* LDA SQ2MusicFrameCount |
- | LBA00: CMP #$01 ;If at the beginning of a new SQ2 note, set--> | + | LBA00: |
- | LBA02: BNE + ; | + | LBA02: |
- | LBA04: STA SQ2VolumeIndex ; | + | LBA04: |
- | LBA07: | + | LBA07:* RTS |
LoadSQ1SQ2Periods: | LoadSQ1SQ2Periods: | ||
- | LBA08: LDA WriteMultiChannelData ; | + | LBA08: |
- | LBA0B: BEQ + ;loaded, branch to exit. | + | LBA0B: |
- | LBA0D: LDA #$00 ; | + | LBA0D: |
- | LBA0F: STA WriteMultiChannelData ; | + | LBA0F: |
- | LBA12: LDA MusicSQ1Sweep ; | + | LBA12: |
- | LBA15: STA SQ1Cntrl1 ; | + | LBA15: |
- | LBA18: LDA MusicSQ1PeriodLow ; | + | LBA18: |
- | LBA1B: STA SQ1Cntrl2 ;Loads SQ1 channel addresses $4001, $4002, $4003. | + | LBA1B: |
- | LBA1E: LDA MusicSQ1PeriodHigh ; | + | LBA1E: |
- | LBA21: STA SQ1Cntrl3 ; | + | LBA21: |
- | LBA24: LDA MusicSQ2Sweep ; | + | LBA24: |
- | LBA27: STA SQ2Cntrl1 ; | + | LBA27: |
- | LBA2A: LDA MusicSQ2PeriodLow ; | + | LBA2A: |
- | LBA2D: STA SQ2Cntrl2 ;Loads SQ2 channel addresses $4005, $4006, $4007. | + | LBA2D: |
- | LBA30: LDA MusicSQ2PeriodHigh ; | + | LBA30: |
- | LBA33: STA SQ2Cntrl3 ; | + | LBA33: |
- | LBA36: | + | LBA36:* RTS |
LoadSQ1SQ2Channels: | LoadSQ1SQ2Channels: | ||
- | LBA37: LDX #$00 ;Load SQ1 channel data. | + | LBA37: |
- | LBA39: JSR WriteSQCntrl0 ; | + | LBA39: |
- | LBA3C: INX ;Load SQ2 channel data. | + | LBA3C: |
- | LBA3D: JSR WriteSQCntrl0 ; | + | LBA3D: |
- | LBA40: RTS ; | + | LBA40: |
WriteSQCntrl0: | WriteSQCntrl0: | ||
- | LBA41: LDA SQ1VolumeCntrl, | + | LBA41: |
- | LBA44: BEQ +++++ ; | + | LBA44: |
- | LBA46: STA VolumeCntrlAddress ; | + | LBA46: |
- | LBA48: JSR LoadSQ1SQ2Periods ; | + | LBA48: |
- | LBA4B: LDA SQ1VolumeData, | + | LBA4B: |
- | LBA4E: CMP #$10 ;If sound channel is not currently--> | + | LBA4E: |
- | LBA50: BEQ +++++++ ;playing sound, branch. | + | LBA50: |
- | LBA52: LDY #$00 ; | + | LBA52: |
- | LBA54:* DEC VolumeCntrlAddress ;Desired entry in VolumeCntrlAdressTbl. | + | LBA54:* DEC VolumeCntrlAddress |
- | LBA56: BEQ + ; | + | LBA56: |
- | LBA58: INY ;*2(2 byte address to find voulume control data). | + | LBA58: |
- | LBA59: INY ; | + | LBA59: |
- | LBA5A: BNE - ;Keep decrementing until desired address is found. | + | LBA5A: |
- | LBA5C:* LDA VolumeCntrlAddressTbl, | + | LBA5C:* LDA VolumeCntrlAddressTbl, |
- | LBA5F: STA $EC ;Volume data address low byte. | + | LBA5F: |
- | LBA61: LDA VolumeCntrlAddressTbl+1, | + | LBA61: |
- | LBA64: STA $ED ;Volume data address high byte. | + | LBA64: |
- | LBA66: LDY SQ1VolumeIndex, | + | LBA66: |
- | LBA69: LDA ($EC),Y ;Load desired volume for current channel into--> | + | LBA69: |
- | LBA6B: STA Cntrl0Data ; | + | LBA6B: |
- | LBA6D: CMP #$FF ;If last entry in volume table is #$FF, restore--> | + | LBA6D: |
- | LBA6F: BEQ MusicBranch05 ;volume to its original level after done reading--> | + | LBA6F: |
- | LBA71: CMP #$F0 ;Volume data. If #$F0 is last entry, turn sound--> | + | LBA71: |
- | LBA73: BEQ MusicBranch06 ;off on current channel until next note. | + | LBA73: |
- | LBA75: LDA SQ1DutyEnvelope, | + | LBA75: |
- | LBA78: AND #$F0 ;add this frame of volume data and store results--> | + | LBA78: |
- | LBA7A: ORA Cntrl0Data ;in Cntrl0Data. | + | LBA7A: |
- | LBA7C: TAY ; | + | LBA7C: |
- | LBA7D:* INC SQ1VolumeIndex, | + | LBA7D:* INC SQ1VolumeIndex, |
- | LBA80:* LDA SQ1InUse,X ;If SQ1 or SQ2(depends on loop iteration) in use, | + | LBA80:* LDA SQ1InUse, |
- | LBA83: BNE + ;branch to exit, else write SQ(1 or 2)Cntrl0. | + | LBA83: |
- | LBA85: TXA ; | + | LBA85: |
- | LBA86: BEQ ++ ;If currently on SQ1, branch to write SQ1 data. | + | LBA86: |
- | WriteSQ2Cntrl0: | + | WriteSQ2Cntrl0: |
- | LBA88: STY SQ2Cntrl0 ;Write SQ2Cntrl0 data. | + | LBA88: |
- | LBA8B: | + | LBA8B:* RTS |
- | WriteSQ1Cntrl0: | + | WriteSQ1Cntrl0: |
- | LBA8C:* STY SQ1Cntrl0 ;Write SQ1Cntrl0 data. | + | LBA8C:* STY SQ1Cntrl0 |
- | LBA8F: RTS ; | + | LBA8F: |
MusicBranch05: | MusicBranch05: | ||
- | LBA90: LDY SQ1DutyEnvelope, | + | LBA90: |
- | LBA93: BNE --- ;Branch always. | + | LBA93: |
MusicBranch06: | MusicBranch06: | ||
- | LBA95: LDY #$10 ;Disable envelope generator and set volume to 0. | + | LBA95: |
- | LBA97: BNE --- ;Branch always. | + | LBA97: |
- | LBA99:* LDY #$10 ;Disable envelope generator and set volume to 0. | + | LBA99:* LDY #$10 ;Disable envelope generator and set volume to 0. |
- | LBA9B: BNE ----- ;Branch always. | + | LBA9B: |
GotoCheckRepeatMusic: | GotoCheckRepeatMusic: | ||
- | LBA9D:* JSR CheckRepeatMusic ; | + | LBA9D:* JSR CheckRepeatMusic |
- | LBAA0: RTS ; | + | LBAA0: |
GotoLoadSQ1SQ2Channels: | GotoLoadSQ1SQ2Channels: | ||
- | LBAA1:* JSR LoadSQ1SQ2Channels ; | + | LBAA1:* JSR LoadSQ1SQ2Channels |
- | LBAA4: RTS ; | + | LBAA4: |
LoadCurrentMusicFrameData: | LoadCurrentMusicFrameData: | ||
- | LBAA5: JSR ResetVolumeIndex ; | + | LBAA5: |
- | LBAA8: LDA #$00 ; | + | LBAA8: |
- | LBAAA: TAX ;X = #$00. | + | LBAAA: |
- | LBAAB: STA ThisSoundChannel ;(#$00, #$04, #$08 or #$0C). | + | LBAAB: |
- | LBAAE: BEQ ++ ; | + | LBAAE: |
- | LBAB0: | + | LBAB0:* TXA |
- | LBAB1: LSR ; | + | LBAB1: |
- | LBAB2: TAX ;Increment to next sound channel(1,2 or 3). | + | LBAB2: |
- | ; | + | ; |
- | IncrementToNextChannel: | + | IncrementToNextChannel: |
- | LBAB3: INX ; | + | LBAB3: |
- | LBAB4: TXA ; | + | LBAB4: |
- | LBAB5: CMP #$04 ;If done with four sound channels, branch to load--> | + | LBAB5: |
- | LBAB7: BEQ -- ;sound channel SQ1 SQ2 data. | + | LBAB7: |
- | LBAB9: LDA ThisSoundChannel ;Add 4 to the least significant byte of the current--> | + | LBAB9: |
- | LBABC: | + | LBABC: |
- | LBABD: ADC #$04 ;sound channel address ranges to process. | + | LBABD: |
- | LBABF: STA ThisSoundChannel ; | + | LBABF: |
- | LBAC2: | + | LBAC2:* TXA |
- | LBAC3: ASL ;*2(two bytes for sound channel info base address). | + | LBAC3: |
- | LBAC4: TAX ; | + | LBAC4: |
- | LBAC5: LDA SQ1LowBaseByte, | + | LBAC5: |
- | LBAC8: STA $E6 ;Load sound channel info base address into $E6--> | + | LBAC8: |
- | LBACA: LDA SQ1HighBaseByte, | + | LBACA: |
- | LBACD: STA $E7 ; | + | LBACD: |
- | LBACF: LDA SQ1HighBaseByte, | + | LBACF: |
- | LBAD2: BEQ -- ;to find data for next sound channel. | + | LBAD2: |
- | LBAD4: TXA ; | + | LBAD4: |
- | LBAD5: LSR ;/2. Determine current sound channel (0,1,2 or3). | + | LBAD5: |
- | LBAD6: TAX ; | + | LBAD6: |
- | LBAD7: DEC SQ1MusicFrameCount, | + | LBAD7: |
- | LBADA: BNE IncrementToNextChannel ; | + | LBADA: |
- | ;load the next set of sound channel data. | + | ;load the next set of sound channel data. |
LoadNextChannelIndexData: | LoadNextChannelIndexData: | ||
- | LBADC: LDY SQ1MusicIndexIndex, | + | LBADC: |
- | LBADF: INC SQ1MusicIndexIndex, | + | LBADF: |
- | LBAE2: LDA ($E6),Y ; | + | LBAE2: |
- | LBAE4: BEQ ---- ;Branch if music has reached the end. | + | LBAE4: |
- | LBAE6: TAY ;Transfer music data index to Y (base=$BE77) . | + | LBAE6: |
- | LBAE7: CMP #$FF ; | + | LBAE7: |
- | LBAE9: BEQ + ;At end of loop? If yes, branch. | + | LBAE9: |
- | LBAEB: AND #$C0 ; | + | LBAEB: |
- | LBAED: CMP #$C0 ;At beginnig of new loop? if yes, branch. | + | LBAED: |
- | LBAEF: BEQ ++ ; | + | LBAEF: |
- | LBAF1: JMP LoadMusicChannel ; | + | LBAF1: |
RepeatMusicLoop: | RepeatMusicLoop: | ||
- | LBAF4:* LDA SQ1RepeatCounter, | + | LBAF4:* LDA SQ1RepeatCounter, |
- | LBAF7: BEQ ++ ; | + | LBAF7: |
- | LBAF9: DEC SQ1RepeatCounter, | + | LBAF9: |
- | LBAFC: LDA SQ1LoopIndex, | + | LBAFC: |
- | LBAFF: STA SQ1MusicIndexIndex, | + | LBAFF: |
- | LBB02: BNE ++ ;Branch unless music has reached the end. | + | LBB02: |
StartNewMusicLoop: | StartNewMusicLoop: | ||
- | LBB04: | + | LBB04:* TYA |
- | LBB05: AND #$3F ;Remove last six bits of loop controller and save--> | + | LBB05: |
- | LBB07: STA SQ1RepeatCounter, | + | LBB07: |
- | LBB0A: DEC SQ1RepeatCounter, | + | LBB0A: |
- | LBB0D: LDA SQ1MusicIndexIndex, | + | LBB0D: |
- | LBB10: STA SQ1LoopIndex, | + | LBB10: |
- | LBB13:* JMP LoadNextChannelIndexData ; | + | LBB13:* JMP LoadNextChannelIndexData |
- | LBB16:* JMP LoadNoiseChannelMusic ; | + | LBB16:* JMP LoadNoiseChannelMusic |
- | LBB19:* JMP LoadTriangleCntrl0 ; | + | LBB19:* JMP LoadTriangleCntrl0 |
LoadMusicChannel: | LoadMusicChannel: | ||
- | LBB1C: TYA ; | + | LBB1C: |
- | LBB1D: AND #$B0 ; | + | LBB1D: |
- | LBB1F: CMP #$B0 ;Is data byte music note length data? If not, branch. | + | LBB1F: |
- | LBB21: BNE + ; | + | LBB21: |
- | LBB23: TYA ; | + | LBB23: |
- | LBB24: AND #$0F ;Separate note length data. | + | LBB24: |
- | LBB26: CLC ; | + | LBB26: |
- | LBB27: ADC NoteLengthTblOffset ;Find proper note lengths table for current music. | + | LBB27: |
- | LBB2A: TAY ; | + | LBB2A: |
- | LBB2B: LDA NoteLengths0Tbl, | + | LBB2B: |
- | LBB2E: STA SQ1FrameCountInit, | + | LBB2E: |
- | LBB31: TAY ;Y now contains note length. | + | LBB31: |
- | LBB32: TXA ; | + | LBB32: |
- | LBB33: CMP #$02 ;If loading Triangle channel data, branch. | + | LBB33: |
- | LBB35: BEQ - ; | + | LBB35: |
LoadSoundDataIndexIndex: | LoadSoundDataIndexIndex: | ||
- | LBB37: LDY SQ1MusicIndexIndex, | + | LBB37: |
- | LBB3A: INC SQ1MusicIndexIndex, | + | LBB3A: |
- | LBB3D: LDA ($E6),Y ;Load index to sound channel music data. | + | LBB3D: |
- | LBB3F: TAY ; | + | LBB3F: |
- | LBB40: | + | LBB40:* TXA |
- | LBB41: CMP #$03 ;If loading Noise channel data, branch. | + | LBB41: |
- | LBB43: BEQ --- ; | + | LBB43: |
- | LBB45: PHA ;Push music channel number on stack(0, 1 or 2). | + | LBB45: |
- | LBB46: LDX ThisSoundChannel ; | + | LBB46: |
- | LBB49: LDA MusicNotesTbl+1, | + | LBB49: |
- | LBB4C: BEQ + ;If data is #$00, skip period high and low loading. | + | LBB4C: |
- | LBB4E: STA MusicSQ1PeriodLow, | + | LBB4E: |
- | LBB51: LDA MusicNotesTbl, | + | LBB51: |
- | LBB54: ORA #$08 ;Ensure minimum index length of 1. | + | LBB54: |
- | LBB56: STA MusicSQ1PeriodHigh, | + | LBB56: |
- | LBB59: | + | LBB59:* TAY |
- | LBB5A: PLA ;Pull stack and restore channel number to X. | + | LBB5A: |
- | LBB5B: TAX ; | + | LBB5B: |
- | LBB5C: TYA ; | + | LBB5C: |
- | LBB5D: BNE + ;If period information was present, branch. | + | LBB5D: |
- | + | ||
NoPeriodInformation: | NoPeriodInformation: | ||
- | LBB5F: LDA #$00 ;Turn off channel volume since no period data present. | + | LBB5F: |
- | LBB61: STA Cntrl0Data ; | + | LBB61: |
- | LBB63: TXA ; | + | LBB63: |
- | LBB64: CMP #$02 ;If loading triangle channel data, branch. | + | LBB64: |
- | LBB66: BEQ ++ ; | + | LBB66: |
- | LBB68: LDA #$10 ;Turn off volume and disable env. generator(SQ1, | + | LBB68: |
- | LBB6A: STA Cntrl0Data ; | + | LBB6A: |
- | LBB6C: BNE ++ ;Branch always. | + | LBB6C: |
PeriodInformationFound: | PeriodInformationFound: | ||
- | LBB6E:* LDA SQ1DutyEnvelope, | + | LBB6E:* LDA SQ1DutyEnvelope, |
- | LBB71: STA Cntrl0Data ; | + | LBB71: |
- | LBB73: | + | LBB73:* TXA |
- | LBB74: DEC SQ1InUse,X ; | + | LBB74: |
- | LBB77: CMP SQ1InUse,X ;If SQ1 or SQ2 are being used by SFX routines, branch. | + | LBB77: |
- | LBB7A: BEQ +++ ; | + | LBB7A: |
- | LBB7C: INC SQ1InUse,X ;Restore not in use status of SQ1 or SQ2. | + | LBB7C: |
- | LBB7F: LDY ThisSoundChannel ; | + | LBB7F: |
- | LBB82: TXA ; | + | LBB82: |
- | LBB83: CMP #$02 ;If loading triangle channel data, branch. | + | LBB83: |
- | LBB85: BEQ + ; | + | LBB85: |
- | LBB87: LDA SQ1VolumeCntrl, | + | LBB87: |
- | LBB8A: BNE ++ ;Cntrl0Data to SQ1 or SQ2. | + | LBB8A: |
- | LBB8C:* LDA Cntrl0Data ; | + | LBB8C:* LDA Cntrl0Data |
- | LBB8E: STA SQ1Cntrl0, | + | LBB8E: |
- | LBB91:* LDA Cntrl0Data ; | + | LBB91:* LDA Cntrl0Data |
- | LBB93: STA SQ1VolumeData, | + | LBB93: |
- | LBB96: LDA MusicSQ1PeriodLow, | + | LBB96: |
- | LBB99: STA SQ1Cntrl2, | + | LBB99: |
- | LBB9C: LDA MusicSQ1PeriodHigh, | + | LBB9C: |
- | LBB9F: STA SQ1Cntrl3, | + | LBB9F: |
- | LBBA2: LDA MusicSQ1Sweep, | + | LBBA2: |
- | LBBA5: STA SQ1Cntrl1, | + | LBBA5: |
LoadNewMusicFrameCount: | LoadNewMusicFrameCount: | ||
- | LBBA8: LDA SQ1FrameCountInit, | + | LBBA8: |
- | LBBAB: STA SQ1MusicFrameCount, | + | LBBAB: |
- | LBBAE: JMP IncrementToNextChannel ; | + | LBBAE: |
SQ1SQ2InUse: | SQ1SQ2InUse: | ||
- | LBBB1:* INC SQ1InUse,X ;Restore in use status of SQ1 or SQ1. | + | LBBB1:* INC SQ1InUse, |
- | LBBB4: JMP LoadNewMusicFrameCount ; | + | LBBB4: |
LoadTriangleCntrl0: | LoadTriangleCntrl0: | ||
- | LBBB7: LDA TriangleCounterCntrl ; | + | LBBB7: |
- | LBBBA: AND #$0F ;If lower bits set, branch to play shorter note. | + | LBBBA: |
- | LBBBC: BNE ++ ; | + | LBBBC: |
- | LBBBE: LDA TriangleCounterCntrl ; | + | LBBBE: |
- | LBBC1: AND #$F0 ;If upper bits are set, branch to play longer note. | + | LBBC1: |
- | LBBC3: BNE + ; | + | LBBC3: |
- | LBBC5: TYA ; | + | LBBC5: |
- | LBBC6: JMP AddTriangleLength ; | + | LBBC6: |
- | LBBC9:* LDA #$FF ;Disable length cntr(play until triangle data changes). | + | LBBC9:* LDA #$FF ;Disable length cntr(play until triangle data changes). |
- | LBBCB: BNE + ;Branch always. | + | LBBCB: |
AddTriangleLength: | AddTriangleLength: | ||
- | LBBCD: | + | LBBCD: |
- | LBBCE: ADC #$FF ;Add # | + | LBBCE: |
- | LBBD0: ASL ;*2. | + | LBBD0: |
- | LBBD1: ASL ;*2. | + | LBBD1: |
- | LBBD2: CMP #$3C ; | + | LBBD2: |
- | LBBD4: BCC + ;If result is greater than #$3C, store # | + | LBBD4: |
- | LBBD6: LDA #$3C ;triangle linear count allowed). | + | LBBD6: |
- | LBBD8:* STA TriLinearCount ; | + | LBBD8:* STA TriLinearCount |
- | LBBDB:* JMP LoadSoundDataIndexIndex ; | + | LBBDB:* JMP LoadSoundDataIndexIndex |
LoadNoiseChannelMusic: | LoadNoiseChannelMusic: | ||
- | LBBDE: LDA NoiseContSFX ; | + | LBBDE: |
- | LBBE1: AND #$FC ;If playing any Noise SFX, branch to exit. | + | LBBE1: |
- | LBBE3: BNE + ; | + | LBBE3: |
- | LBBE5: LDA $B200,Y ; | + | LBBE5: |
- | LBBE8: STA NoiseCntrl0 ;Load noise channel with drum beat SFX starting--> | + | LBBE8: |
- | LBBEB: LDA $B201,Y ;at address B201. The possible values of Y are--> | + | LBBEB: |
- | LBBEE: STA NoiseCntrl2 ;#$01, #$04, #$07 or #$0A. | + | LBBEE: |
- | LBBF1: LDA $B202,Y ; | + | LBBF1: |
- | LBBF4: STA NoiseCntrl3 ; | + | LBBF4: |
- | LBBF7:* JMP LoadNewMusicFrameCount ; | + | LBBF7:* JMP LoadNewMusicFrameCount |
;The following table is used by the InitializeMusic routine to find the index for loading | ;The following table is used by the InitializeMusic routine to find the index for loading | ||
Line 6063: | Line 6063: | ||
InitMusicIndexTbl: | InitMusicIndexTbl: | ||
- | LBBFA: | + | LBBFA: |
- | LBBFB: | + | LBBFB: |
- | LBBFC: | + | LBBFC: |
- | LBBFD: | + | LBBFD: |
- | LBBFE: | + | LBBFE: |
- | LBBFF: | + | LBBFF: |
- | LBC00: | + | LBC00: |
- | LBC01: | + | LBC01: |
- | LBC02: | + | LBC02: |
- | LBC03: | + | LBC03: |
- | LBC04: | + | LBC04: |
- | LBC05: | + | LBC05: |
;The tables below contain addresses for SFX and music handling routines. | ;The tables below contain addresses for SFX and music handling routines. | ||
;Multi channel Init SFX and music handling routine addresses: | ;Multi channel Init SFX and music handling routine addresses: | ||
- | LBC06: | + | LBC06: |
- | LBC08: | + | LBC08: |
- | LBC0A: | + | LBC0A: |
- | LBC0C: | + | LBC0C: |
- | LBC0E: | + | LBC0E: |
- | LBC10: | + | LBC10: |
- | LBC12: | + | LBC12: |
- | LBC14: | + | LBC14: |
;Multi channel continue SFX handling routine addresses: | ;Multi channel continue SFX handling routine addresses: | ||
- | LBC16: | + | LBC16: |
- | LBC18: | + | LBC18: |
- | LBC1A: | + | LBC1A: |
- | LBC1C: | + | LBC1C: |
- | LBC1E: | + | LBC1E: |
- | LBC20: | + | LBC20: |
- | LBC22: | + | LBC22: |
- | LBC24: | + | LBC24: |
;Music handling routine addresses: | ;Music handling routine addresses: | ||
- | LBC26: | + | LBC26: |
- | LBC28: | + | LBC28: |
- | LBC2A: | + | LBC2A: |
- | LBC2C: | + | LBC2C: |
- | LBC2E: | + | LBC2E: |
- | LBC30: | + | LBC30: |
- | LBC32: | + | LBC32: |
- | LBC34: | + | LBC34: |
; | ; | ||
LoadMusicTempFlags: | LoadMusicTempFlags: | ||
- | LBC36: LDA CurrentMusicRepeat ;Load A with temp music flags, (9th SFX cycle). | + | LBC36: |
- | LBC39: LDX #$B6 ;Lower address byte in ChooseNextSFXRoutineTbl. | + | LBC39: |
- | LBC3B: BNE + ;Branch always. | + | LBC3B: |
LoadMusicInitFlags: | LoadMusicInitFlags: | ||
- | LBC3D: LDA MusicInitFlag ;Load A with Music flags, (10th SFX cycle). | + | LBC3D: |
- | LBC40: LDX #$B1 ;Lower address byte in ChooseNextSFXRoutineTbl. | + | LBC40: |
- | LBC42:* JSR CheckSFXFlag ; | + | LBC42:* JSR CheckSFXFlag |
- | LBC45: JSR FindMusicInitIndex ; | + | LBC45: |
- | LBC48: JMP ($00E2) ;If no flag found, Jump to next SFX cycle, | + | LBC48: |
- | ;else jump to specific SFX handling subroutine. | + | ;else jump to specific SFX handling subroutine. |
- | ContinueMusic: | + | ContinueMusic: |
- | LBC4B: LDA CurrentMusic ; | + | LBC4B: |
- | LBC4E: BEQ +++ ;Branch to exit of no music playing. | + | LBC4E: |
- | LBC50: JMP LoadCurrentMusicFrameData ; | + | LBC50: |
; | ; | ||
Line 6136: | Line 6136: | ||
FindMusicInitIndex: | FindMusicInitIndex: | ||
- | LBC53: LDA #$FF ;Load MusicInitIndex with #$FF. | + | LBC53: |
- | LBC55: STA MusicInitIndex ; | + | LBC55: |
- | LBC58: LDA CurrentSFXFlags ; | + | LBC58: |
- | LBC5B: BEQ ++ ;Branch to exit if no SFX flags set for Multi SFX. | + | LBC5B: |
- | LBC5D:* INC MusicInitIndex ; | + | LBC5D:* INC MusicInitIndex |
- | LBC60: ASL ;Shift left until bit flag is in carry bit. | + | LBC60: |
- | LBC61: BCC - ;Loop until SFX flag found. | + | LBC61: |
- | LBC63: | + | LBC63:* RTS |
;The following routine is used to add eight to the music index when looking for music flags | ;The following routine is used to add eight to the music index when looking for music flags | ||
;in the MultiSFX address. | ;in the MultiSFX address. | ||
Add8: | Add8: | ||
- | LBC64: LDA MusicInitIndex ; | + | LBC64: |
- | LBC67: CLC ; | + | LBC67: |
- | LBC68: ADC #$08 ;Add #$08 to MusicInitIndex. | + | LBC68: |
- | LBC6A: STA MusicInitIndex ; | + | LBC6A: |
- | LBC6D: RTS ; | + | LBC6D: |
- | LBC6E: LDA CurrentMusic ; | + | LBC6E: |
- | LBC71: ORA #$F0 ;This code does not appear to be used in this page. | + | LBC71: |
- | LBC73: STA CurrentMusic ; | + | LBC73: |
- | LBC76: | + | LBC76:* RTS |
Music00Start: | Music00Start: | ||
- | LBC77: JMP Music00Init ; | + | LBC77: |
Music01Start: | Music01Start: | ||
- | LBC7A: JMP Music01Init ; | + | LBC7A: |
Music02Start: | Music02Start: | ||
- | LBC7D: JMP Music02Init ; | + | LBC7D: |
Msic03Start: | Msic03Start: | ||
- | LBC80: JMP Music03Init ; | + | LBC80: |
Music04Start: | Music04Start: | ||
- | LBC83: JMP Music04Init ; | + | LBC83: |
Music05Start: | Music05Start: | ||
- | LBC86: JMP Music05Init ; | + | LBC86: |
Music04Init: | Music04Init: | ||
- | LBC89: LDA #$B3 ;Duty cycle and volume data for SQ1 and SQ2. | + | LBC89: |
XYMusicInit: | XYMusicInit: | ||
- | LBC8B: | + | LBC8B:* TAX |
- | LBC8C: TAY ;Duty cycle and volume data for SQ2. | + | LBC8C: |
- | LBC8D:* JSR SetVolumeAndDisableSweep ; | + | LBC8D:* JSR SetVolumeAndDisableSweep |
- | LBC90: JSR InitializeMusic ; | + | LBC90: |
- | LBC93: JMP LoadCurrentMusicFrameData ; | + | LBC93: |
Music03Init: | Music03Init: | ||
- | LBC96: LDA #$34 ;Duty cycle and volume data for SQ1 and SQ2. | + | LBC96: |
- | LBC98: BNE -- ;Branch always | + | LBC98: |
Music02Init: | Music02Init: | ||
- | LBC9A: LDA #$F4 ;Duty cycle and volume data for SQ1 and SQ2. | + | LBC9A: |
- | LBC9C: BNE -- ;Branch always | + | LBC9C: |
Music05Init: | Music05Init: | ||
- | LBC9E: LDX #$F5 ;Duty cycle and volume data for SQ1. | + | LBC9E: |
- | LBCA0: LDY #$F6 ;Duty cycle and volume data for SQ2. | + | LBCA0: |
- | LBCA2: BNE - ;Branch always | + | LBCA2: |
Music01Init: | Music01Init: | ||
- | LBCA4: LDX #$B6 ;Duty cycle and volume data for SQ1. | + | LBCA4: |
- | LBCA6: LDY #$F6 ;Duty cycle and volume data for SQ2. | + | LBCA6: |
- | LBCA8: BNE - ;Branch always | + | LBCA8: |
Music00Init: | Music00Init: | ||
- | LBCAA: LDX #$92 ;Duty cycle and volume data for SQ1. | + | LBCAA: |
- | LBCAC: LDY #$96 ;Duty cycle and volume data for SQ2. | + | LBCAC: |
- | LBCAE: BNE - ;Branch always | + | LBCAE: |
;The following address table provides starting addresses of the volume data tables below: | ;The following address table provides starting addresses of the volume data tables below: | ||
VolumeCntrlAddressTbl: | VolumeCntrlAddressTbl: | ||
- | LBCB0: | + | LBCB0: |
VolumeDataTbl1: | VolumeDataTbl1: | ||
- | LBCBA: | + | LBCBA: |
VolumeDataTbl2: | VolumeDataTbl2: | ||
- | LBCC5: | + | LBCC5: |
VolumeDataTbl3: | VolumeDataTbl3: | ||
- | LBCCF: | + | LBCCF: |
VolumeDataTbl4: | VolumeDataTbl4: | ||
- | LBCDA: | + | LBCDA: |
- | LBCEA: | + | LBCEA: |
- | LBCFA: | + | LBCFA: |
VolumeDataTbl5: | VolumeDataTbl5: | ||
- | LBD03: | + | LBD03: |
- | LBD13: | + | LBD13: |
- | LBD23: | + | LBD23: |
;The init music table loads addresses $062B thru $0637 with the initial data needed to play the | ;The init music table loads addresses $062B thru $0637 with the initial data needed to play the | ||
Line 6251: | Line 6251: | ||
;Mother brain music. | ;Mother brain music. | ||
- | LBD31: | + | LBD31: |
- | LBD36: | + | LBD36: |
;Escape music. | ;Escape music. | ||
- | LBD3E: | + | LBD3E: |
- | LBD43: | + | LBD43: |
;Norfair music(not used this memory page). | ;Norfair music(not used this memory page). | ||
- | LBD4B: | + | LBD4B: |
- | LBD50: | + | LBD50: |
;Kraid area music(not used this memory page). | ;Kraid area music(not used this memory page). | ||
- | LBD58: | + | LBD58: |
- | LBD5D: | + | LBD5D: |
;Item room music. | ;Item room music. | ||
- | LBD65: | + | LBD65: |
- | LBD6A: | + | LBD6A: |
;Ridley area music(not used this memory page). | ;Ridley area music(not used this memory page). | ||
- | LBD72: | + | LBD72: |
- | LBD77: | + | LBD77: |
;End game music(not used this memory page). | ;End game music(not used this memory page). | ||
- | LBD7F: | + | LBD7F: |
- | LBD84: | + | LBD84: |
;Intro music(not used this memory page). | ;Intro music(not used this memory page). | ||
- | LBD8C: | + | LBD8C: |
- | LBD91: | + | LBD91: |
;Fade in music | ;Fade in music | ||
- | LBD99: | + | LBD99: |
- | LBD9E: | + | LBD9E: |
;Power up music | ;Power up music | ||
- | LBDA6: | + | LBDA6: |
- | LBDAB: | + | LBDAB: |
;Brinstar music(not used this memory page). | ;Brinstar music(not used this memory page). | ||
- | LBDB3: | + | LBDB3: |
- | LBDB8: | + | LBDB8: |
;Tourian music | ;Tourian music | ||
- | LBDC0: | + | LBDC0: |
- | LBDC5: | + | LBDC5: |
ItemRoomTriangleIndexData: | ItemRoomTriangleIndexData: | ||
- | LBDCD: | + | LBDCD: |
- | LBDCE: | + | LBDCE: |
- | LBDCF: | + | LBDCF: |
- | LBDD0: | + | LBDD0: |
- | LBDD1: | + | LBDD1: |
- | LBDD2: | + | LBDD2: |
- | LBDD3: | + | LBDD3: |
- | LBDD4: | + | LBDD4: |
- | LBDD5: | + | LBDD5: |
- | LBDD6: | + | LBDD6: |
- | LBDD7: | + | LBDD7: |
- | LBDD8: | + | LBDD8: |
- | LBDD9: | + | LBDD9: |
ItemRoomSQ1IndexData: | ItemRoomSQ1IndexData: | ||
- | LBDDA: | + | LBDDA: |
- | LBDDB: | + | LBDDB: |
ItemRoomSQ2IndexData: | ItemRoomSQ2IndexData: | ||
- | LBDDC: | + | LBDDC: |
- | LBDDD: | + | LBDDD: |
- | LBDDE: | + | LBDDE: |
- | LBDDF: | + | LBDDF: |
- | LBDE0: | + | LBDE0: |
- | LBDE1: | + | LBDE1: |
- | LBDE2: | + | LBDE2: |
- | LBDE3: | + | LBDE3: |
- | LBDE4: | + | LBDE4: |
- | LBDE5: | + | LBDE5: |
- | LBDE6: | + | LBDE6: |
- | LBDE7: | + | LBDE7: |
- | LBDE8: | + | LBDE8: |
- | LBDE9: | + | LBDE9: |
- | LBDEA: | + | LBDEA: |
- | LBDEB: | + | LBDEB: |
- | LBDEC: | + | LBDEC: |
- | LBDED: | + | LBDED: |
- | LBDEE: | + | LBDEE: |
- | LBDEF: | + | LBDEF: |
- | LBDF0: | + | LBDF0: |
- | LBDF1: | + | LBDF1: |
- | LBDF2: | + | LBDF2: |
- | LBDF3: | + | LBDF3: |
- | LBDF4: | + | LBDF4: |
- | LBDF5: | + | LBDF5: |
- | LBDF6: | + | LBDF6: |
PowerUpSQ1IndexData: | PowerUpSQ1IndexData: | ||
- | LBDF7: | + | LBDF7: |
- | LBDF8: | + | LBDF8: |
- | LBDF9: | + | LBDF9: |
- | LBDFA: | + | LBDFA: |
- | LBDFB: | + | LBDFB: |
- | LBDFC: | + | LBDFC: |
- | LBDFD: | + | LBDFD: |
- | LBDFE: | + | LBDFE: |
- | LBDFF: | + | LBDFF: |
- | LBE00: | + | LBE00: |
- | LBE01: | + | LBE01: |
- | LBE02: | + | LBE02: |
- | LBE03: | + | LBE03: |
- | LBE04: | + | LBE04: |
- | LBE05: | + | LBE05: |
- | LBE06: | + | LBE06: |
- | LBE07: | + | LBE07: |
PowerUpTriangleIndexData: | PowerUpTriangleIndexData: | ||
- | LBE08: | + | LBE08: |
- | LBE09: | + | LBE09: |
- | LBE0A: | + | LBE0A: |
- | LBE0B: | + | LBE0B: |
- | LBE0C: | + | LBE0C: |
PowerUpSQ2IndexData: | PowerUpSQ2IndexData: | ||
- | LBE0D: | + | LBE0D: |
- | LBE0E: | + | LBE0E: |
- | LBE0F: | + | LBE0F: |
- | LBE10: | + | LBE10: |
- | LBE11: | + | LBE11: |
- | LBE12: | + | LBE12: |
- | LBE13: | + | LBE13: |
- | LBE14: | + | LBE14: |
- | LBE15: | + | LBE15: |
- | LBE16: | + | LBE16: |
- | LBE17: | + | LBE17: |
- | LBE18: | + | LBE18: |
- | LBE19: | + | LBE19: |
- | LBE1A: | + | LBE1A: |
- | LBE1B: | + | LBE1B: |
- | LBE1C: | + | LBE1C: |
FadeInSQ2IndexData: | FadeInSQ2IndexData: | ||
- | LBE1D: | + | LBE1D: |
- | LBE1E: | + | LBE1E: |
- | LBE1F: | + | LBE1F: |
- | LBE20: | + | LBE20: |
- | LBE21: | + | LBE21: |
- | LBE22: | + | LBE22: |
- | LBE23: | + | LBE23: |
- | LBE24: | + | LBE24: |
- | LBE25: | + | LBE25: |
- | LBE26: | + | LBE26: |
- | LBE27: | + | LBE27: |
- | LBE28: | + | LBE28: |
- | LBE29: | + | LBE29: |
- | LBE2A: | + | LBE2A: |
- | LBE2B: | + | LBE2B: |
- | LBE2C: | + | LBE2C: |
- | LBE2D: | + | LBE2D: |
- | LBE2E: | + | LBE2E: |
- | LBE2F: | + | LBE2F: |
- | LBE30: | + | LBE30: |
- | LBE31: | + | LBE31: |
- | LBE32: | + | LBE32: |
- | LBE33: | + | LBE33: |
- | LBE34: | + | LBE34: |
- | LBE35: | + | LBE35: |
FadeInTriangleIndexData: | FadeInTriangleIndexData: | ||
- | LBE36: | + | LBE36: |
- | LBE37: | + | LBE37: |
- | LBE38: | + | LBE38: |
- | LBE39: | + | LBE39: |
- | LBE3A: | + | LBE3A: |
- | LBE3B: | + | LBE3B: |
- | LBE3C: | + | LBE3C: |
- | LBE3D: | + | LBE3D: |
FadeInSQ1IndexData: | FadeInSQ1IndexData: | ||
- | LBE3E: | + | LBE3E: |
- | LBE3F: | + | LBE3F: |
- | LBE40: | + | LBE40: |
- | LBE41: | + | LBE41: |
- | LBE42: | + | LBE42: |
- | LBE43: | + | LBE43: |
- | LBE44: | + | LBE44: |
- | LBE45: | + | LBE45: |
- | LBE46: | + | LBE46: |
TourianSQ2IndexData: | TourianSQ2IndexData: | ||
- | LBE47: | + | LBE47: |
- | LBE48: | + | LBE48: |
- | LBE49: | + | LBE49: |
- | LBE4A: | + | LBE4A: |
- | LBE4B: | + | LBE4B: |
- | LBE4C: | + | LBE4C: |
- | LBE4D: | + | LBE4D: |
- | LBE4E: | + | LBE4E: |
- | LBE4F: | + | LBE4F: |
- | LBE50: | + | LBE50: |
- | LBE51: | + | LBE51: |
- | LBE52: | + | LBE52: |
- | LBE53: | + | LBE53: |
- | LBE54: | + | LBE54: |
- | LBE55: | + | LBE55: |
- | LBE56: | + | LBE56: |
- | LBE57: | + | LBE57: |
- | LBE58: | + | LBE58: |
TourianSQ1IndexData: | TourianSQ1IndexData: | ||
- | LBE59: | + | LBE59: |
- | LBE5A: | + | LBE5A: |
- | LBE5B: | + | LBE5B: |
- | LBE5C: | + | LBE5C: |
- | LBE5D: | + | LBE5D: |
- | LBE5E: | + | LBE5E: |
- | LBE5F: | + | LBE5F: |
- | LBE60: | + | LBE60: |
- | LBE61: | + | LBE61: |
TourianTriangleIndexData: | TourianTriangleIndexData: | ||
- | LBE62: | + | LBE62: |
- | LBE63: | + | LBE63: |
- | LBE64: | + | LBE64: |
- | LBE65: | + | LBE65: |
- | LBE66: | + | LBE66: |
- | LBE67: | + | LBE67: |
- | LBE68: | + | LBE68: |
- | LBE69: | + | LBE69: |
- | LBE6A: | + | LBE6A: |
- | LBE6B: | + | LBE6B: |
- | LBE6C: | + | LBE6C: |
- | LBE6D: | + | LBE6D: |
- | LBE6E: | + | LBE6E: |
- | LBE6F: | + | LBE6F: |
- | LBE70: | + | LBE70: |
- | LBE71: | + | LBE71: |
- | LBE72: | + | LBE72: |
- | LBE73: | + | LBE73: |
- | LBE74: | + | LBE74: |
- | LBE75: | + | LBE75: |
- | LBE76: | + | LBE76: |
;The following table contains the musical notes used by the music player. | ;The following table contains the musical notes used by the music player. | ||
Line 6497: | Line 6497: | ||
MusicNotesTbl: | MusicNotesTbl: | ||
- | LBE77: | + | LBE77: |
- | LBE78: | + | LBE78: |
- | LBE79: | + | LBE79: |
- | LBE7A: | + | LBE7A: |
- | LBE7B: | + | LBE7B: |
- | LBE7C: | + | LBE7C: |
- | LBE7D: | + | LBE7D: |
- | LBE7E: | + | LBE7E: |
- | LBE7F: | + | LBE7F: |
- | LBE80: | + | LBE80: |
- | LBE81: | + | LBE81: |
- | LBE82: | + | LBE82: |
- | LBE83: | + | LBE83: |
- | LBE84: | + | LBE84: |
- | LBE85: | + | LBE85: |
- | LBE86: | + | LBE86: |
- | LBE87: | + | LBE87: |
- | LBE88: | + | LBE88: |
- | LBE89: | + | LBE89: |
- | LBE8A: | + | LBE8A: |
- | LBE8B: | + | LBE8B: |
- | LBE8C: | + | LBE8C: |
- | LBE8D: | + | LBE8D: |
- | LBE8E: | + | LBE8E: |
- | LBE8F: | + | LBE8F: |
- | LBE90: | + | LBE90: |
- | LBE91: | + | LBE91: |
- | LBE92: | + | LBE92: |
- | LBE93: | + | LBE93: |
- | LBE94: | + | LBE94: |
- | LBE95: | + | LBE95: |
- | LBE96: | + | LBE96: |
- | LBE97: | + | LBE97: |
- | LBE98: | + | LBE98: |
- | LBE99: | + | LBE99: |
- | LBE9A: | + | LBE9A: |
- | LBE9B: | + | LBE9B: |
- | LBE9C: | + | LBE9C: |
- | LBE9D: | + | LBE9D: |
- | LBE9E: | + | LBE9E: |
- | + | ||
- | LBE9F: | + | LBE9F: |
- | LBEA0: | + | LBEA0: |
- | LBEA1: | + | LBEA1: |
- | LBEA2: | + | LBEA2: |
- | LBEA3: | + | LBEA3: |
- | LBEA4: | + | LBEA4: |
- | LBEA5: | + | LBEA5: |
- | LBEA6: | + | LBEA6: |
- | LBEA7: | + | LBEA7: |
- | LBEA8: | + | LBEA8: |
- | LBEA9: | + | LBEA9: |
- | LBEAA: | + | LBEAA: |
- | LBEAB: | + | LBEAB: |
- | LBEAC: | + | LBEAC: |
- | LBEAD: | + | LBEAD: |
- | LBEAE: | + | LBEAE: |
- | LBEAF: | + | LBEAF: |
- | LBEB0: | + | LBEB0: |
- | LBEB1: | + | LBEB1: |
- | LBEB2: | + | LBEB2: |
- | LBEB3: | + | LBEB3: |
- | LBEB4: | + | LBEB4: |
- | LBEB5: | + | LBEB5: |
- | LBEB6: | + | LBEB6: |
- | LBEB7: | + | LBEB7: |
- | LBEB8: | + | LBEB8: |
- | LBEB9: | + | LBEB9: |
- | LBEBA: | + | LBEBA: |
- | LBEBB: | + | LBEBB: |
- | LBEBC: | + | LBEBC: |
- | LBEBD: | + | LBEBD: |
- | LBEBE: | + | LBEBE: |
- | LBEBF: | + | LBEBF: |
- | LBEC0: | + | LBEC0: |
- | LBEC1: | + | LBEC1: |
- | LBEC2: | + | LBEC2: |
- | LBEC3: | + | LBEC3: |
- | LBEC4: | + | LBEC4: |
- | LBEC5: | + | LBEC5: |
- | LBEC6: | + | LBEC6: |
- | LBEC7: | + | LBEC7: |
- | LBEC8: | + | LBEC8: |
- | LBEC9: | + | LBEC9: |
- | LBECA: | + | LBECA: |
- | LBECB: | + | LBECB: |
- | LBECC: | + | LBECC: |
- | LBECD: | + | LBECD: |
- | LBECE: | + | LBECE: |
- | LBECF: | + | LBECF: |
- | LBED0: | + | LBED0: |
- | LBED1: | + | LBED1: |
- | LBED2: | + | LBED2: |
- | LBED3: | + | LBED3: |
- | LBED4: | + | LBED4: |
- | LBED5: | + | LBED5: |
- | LBED6: | + | LBED6: |
- | LBED7: | + | LBED7: |
- | LBED8: | + | LBED8: |
- | LBED9: | + | LBED9: |
- | LBEDA: | + | LBEDA: |
- | LBEDB: | + | LBEDB: |
- | LBEDC: | + | LBEDC: |
- | LBEDD: | + | LBEDD: |
- | LBEDE: | + | LBEDE: |
- | LBEDF: | + | LBEDF: |
- | LBEE0: | + | LBEE0: |
- | LBEE1: | + | LBEE1: |
- | LBEE2: | + | LBEE2: |
- | LBEE3: | + | LBEE3: |
- | LBEE4: | + | LBEE4: |
- | LBEE5: | + | LBEE5: |
- | LBEE6: | + | LBEE6: |
- | LBEE7: | + | LBEE7: |
- | LBEE8: | + | LBEE8: |
- | LBEE9: | + | LBEE9: |
- | LBEEA: | + | LBEEA: |
- | LBEEB: | + | LBEEB: |
- | LBEEC: | + | LBEEC: |
- | LBEED: | + | LBEED: |
- | LBEEE: | + | LBEEE: |
- | LBEEF: | + | LBEEF: |
- | LBEF0: | + | LBEF0: |
- | LBEF1: | + | LBEF1: |
- | LBEF2: | + | LBEF2: |
- | LBEF3: | + | LBEF3: |
- | LBEF4: | + | LBEF4: |
- | LBEF5: | + | LBEF5: |
- | LBEF6: | + | LBEF6: |
;The following tables are used to load the music frame count addresses ($0640 thru $0643). The | ;The following tables are used to load the music frame count addresses ($0640 thru $0643). The | ||
Line 6698: | Line 6698: | ||
NoteLengths0Tbl: | NoteLengths0Tbl: | ||
- | LBEF7: | + | LBEF7: |
- | LBEF8: | + | LBEF8: |
- | LBEF9: | + | LBEF9: |
- | LBEFA: | + | LBEFA: |
- | LBEFB: | + | LBEFB: |
- | LBEFC: | + | LBEFC: |
- | LBEFD: | + | LBEFD: |
- | LBEFE: | + | LBEFE: |
- | LBEFF: | + | LBEFF: |
- | LBF00: | + | LBF00: |
- | LBF01: | + | LBF01: |
;Used by item room, fade in, Brinstar music, Ridley area music, Mother brain music, | ;Used by item room, fade in, Brinstar music, Ridley area music, Mother brain music, | ||
Line 6714: | Line 6714: | ||
NoteLengths1Tbl: | NoteLengths1Tbl: | ||
- | LBF02: | + | LBF02: |
- | LBF03: | + | LBF03: |
- | LBF04: | + | LBF04: |
- | LBF05: | + | LBF05: |
- | LBF06: | + | LBF06: |
- | LBF07: | + | LBF07: |
- | LBF08: | + | LBF08: |
- | LBF09: | + | LBF09: |
- | LBF0A: | + | LBF0A: |
- | LBF0B: | + | LBF0B: |
- | LBF0C: | + | LBF0C: |
;Used by intro and end game music. | ;Used by intro and end game music. | ||
NoteLengths2Tbl: | NoteLengths2Tbl: | ||
- | LBF0D: | + | LBF0D: |
- | LBF0E: | + | LBF0E: |
- | LBF0F: | + | LBF0F: |
- | LBF10: | + | LBF10: |
- | LBF11: | + | LBF11: |
- | LBF12: | + | LBF12: |
- | LBF13: | + | LBF13: |
- | LBF14: | + | LBF14: |
- | LBF15: | + | LBF15: |
- | LBF16: | + | LBF16: |
- | LBF17: | + | LBF17: |
- | LBF18: | + | LBF18: |
- | InitializeMusic: | + | InitializeMusic: |
- | LBF19: JSR CheckMusicFlags ; | + | LBF19: |
- | LBF1C: LDA CurrentSFXFlags ;Load current SFX flags and store CurrentMusic address. | + | LBF1C: |
- | LBF1F: STA CurrentMusic ; | + | LBF1F: |
- | LBF22: LDA MusicInitIndex ; | + | LBF22: |
- | LBF25: TAY ; | + | LBF25: |
- | LBF26: LDA InitMusicIndexTbl, | + | LBF26: |
- | LBF29: TAY ; | + | LBF29: |
- | LBF2A: LDX #$00 ; | + | LBF2A: |
- | LBF2C:* LDA InitMusicTbl, | + | LBF2C:* LDA InitMusicTbl, |
- | LBF2F: STA NoteLengthTblOffset, | + | LBF2F: |
- | LBF32: | + | LBF32: |
- | LBF33: | + | LBF33: |
- | LBF34: | + | LBF34: |
- | LBF35: CMP #$0D ; | + | LBF35: |
- | LBF37: BNE - ; | + | LBF37: |
- | LBF39: LDA #$01 ;Resets addresses $0640 thru $0643 to # | + | LBF39: |
- | LBF3B: STA SQ1MusicFrameCount ;These addresses are used for counting the--> | + | LBF3B: |
- | LBF3E: STA SQ2MusicFrameCount ;number of frames music channels have been playing. | + | LBF3E: |
- | LBF41: STA TriangleMusicFrameCount ; | + | LBF41: |
- | LBF44: STA NoiseMusicFrameCount ; | + | LBF44: |
- | LBF47: LDA #$00 ; | + | LBF47: |
- | LBF49: STA SQ1MusicIndexIndex ; | + | LBF49: |
- | LBF4C: STA SQ2MusicIndexIndex ;Resets addresses $0638 thru $063B to # | + | LBF4C: |
- | LBF4F: STA TriangleMusicIndexIndex ; | + | LBF4F: |
- | LBF52: STA NoiseMusicIndexIndex ; | + | LBF52: |
- | LBF55: RTS ; | + | LBF55: |
;The following data is a repeat of the above routine and is not used. | ;The following data is a repeat of the above routine and is not used. | ||
- | LBF56: | + | LBF56: |
- | LBF66: | + | LBF66: |
- | LBF76: | + | LBF76: |
- | LBF86: | + | LBF86: |
- | LBF96: | + | LBF96: |
- | LBFA6: | + | LBFA6: |
; | ; | ||
RESET: | RESET: | ||
- | LBFB0: SEI ;Disables interrupt. | + | LBFB0: |
- | LBFB1: CLD ;Sets processor to binary mode. | + | LBFB1: |
- | LBFB2: LDX #$00 ; | + | LBFB2: |
- | LBFB4: STX PPUControl0 ;Clear PPU control registers. | + | LBFB4: |
- | LBFB7: STX PPUControl1 ; | + | LBFB7: |
- | LBFBA:* LDA PPUStatus ; | + | LBFBA:* LDA PPUStatus |
- | LBFBD: BPL - ;Wait for VBlank. | + | LBFBD: |
- | LBFBF:* LDA PPUStatus ; | + | LBFBF:* LDA PPUStatus |
- | LBFC2: BPL - ; | + | LBFC2: |
- | LBFC4: ORA #$FF ; | + | LBFC4: |
- | LBFC6: STA MMC1Reg0 ;Reset MMC1 chip.--> | + | LBFC6: |
- | LBFC9: STA MMC1Reg1 ;(MSB is set). | + | LBFC9: |
- | LBFCC: STA MMC1Reg2 ; | + | LBFCC: |
- | LBFCF: STA MMC1Reg3 ; | + | LBFCF: |
- | LBFD2: JMP Startup ; | + | LBFD2: |
;The following data is not used. | ;The following data is not used. | ||
- | LBFD5: | + | LBFD5: |
- | LBFE5: | + | LBFE5: |
- | LBFF5: | + | LBFF5: |
; | ; | ||
- | LBFFA: | + | LBFFA: |
- | LBFFC: | + | LBFFC: |
- | LBFFE: | + | LBFFE: |
</ | </ | ||
+ |