Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Normal Launcher 2, by Davros
- ;;
- ;; Description: This will generate a normal sprite without showing the hand.
- ;; Specify the actual sprite that is generated below.
- ;;
- ;; NOTE: Trying to generate a sprite that doesn't exist will crash your game.
- ;;
- ;; Uses first extra bit: NO
- ;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- SPRITE_TO_GEN = $2B
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; sprite code JSL
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- dcb "INIT"
- dcb "MAIN"
- PHB
- PHK
- PLB
- JSR SPRITE_CODE_START
- PLB
- RTL
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; main torpedo ted launcher code
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- SPRITE_CODE_START LDA $17AB,x ; \ return if it's not time to generate
- BNE RETURN ; /
- LDA #$50 ; \ set time till next generation = 50
- STA $17AB,x ; /
- LDA $178B,x ; \ don't generate if off screen vertically
- CMP $1C ; |
- LDA $1793,x ; |
- SBC $1D ; |
- BNE RETURN ; /
- LDA $179B,x ; \ don't generate if off screen horizontally
- CMP $1A ; |
- LDA $17A3,x ; |
- SBC $1B ; |
- BNE RETURN ; /
- LDA $179B,x ; \ ?? something else related to x position of generator??
- SEC ; |
- SBC $1A ; |
- CLC ; |
- ADC #$10 ; |
- CMP #$20 ; |
- BCC RETURN ; /
- JSL $02A9DE ; \ get an index to an unused sprite slot, return if all slots full
- BMI RETURN ; / after: Y has index of sprite being generated
- GENERATE_SPRITE LDA #$08 ; \ set sprite status for new sprite
- STA $14C8,y ; /
- LDA #SPRITE_TO_GEN ; \ set sprite number for new sprite
- STA $009E,y ; /
- LDA $179B,x ; \ set x position for new sprite
- STA $00E4,y ; |
- LDA $17A3,x ; |
- STA $14E0,y ; /
- LDA $178B,x ; \ set y position for new sprite
- STA $00D8,y ; |
- LDA $1793,x ; |
- STA $14D4,y ; /
- PHX ; \ before: X must have index of sprite being generated
- TYX ; | routine clears *all* old sprite values...
- JSL $07F7D2 ; | ...and loads in new values for the 6 main sprite tables
- JSR SUB_GET_DIR ; |
- TYA ; |
- STA $157C,x ; |
- STA $00 ; |
- LDA #$30 ; |
- STA $1540,x ; |
- PLX ; |
- RETURN RTS
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; horizontal mario/sprite contact - shared
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- SUB_GET_DIR LDY #$00 ; |
- LDA $94 ; |
- SEC ; |
- SBC $E4,x ; |
- STA $0F ; |
- LDA $95 ; |
- SBC $14E0,x ; |
- BPL RETURN_2 ; |
- INY ; |
- RETURN_2 RTS ; return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement