Advertisement
Guest User

Untitled

a guest
Sep 16th, 2014
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.81 KB | None | 0 0
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;; Normal Launcher 2, by Davros
  3. ;;
  4. ;; Description: This will generate a normal sprite without showing the hand.
  5. ;; Specify the actual sprite that is generated below.
  6. ;;
  7. ;; NOTE: Trying to generate a sprite that doesn't exist will crash your game.
  8. ;;
  9. ;; Uses first extra bit: NO
  10. ;;
  11. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  12.  
  13. SPRITE_TO_GEN = $2B
  14.  
  15. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  16. ; sprite code JSL
  17. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  18.  
  19. dcb "INIT"
  20. dcb "MAIN"
  21. PHB
  22. PHK
  23. PLB
  24. JSR SPRITE_CODE_START
  25. PLB
  26. RTL
  27.  
  28. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  29. ; main torpedo ted launcher code
  30. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  31.  
  32. SPRITE_CODE_START LDA $17AB,x ; \ return if it's not time to generate
  33. BNE RETURN ; /
  34. LDA #$50 ; \ set time till next generation = 50
  35. STA $17AB,x ; /
  36. LDA $178B,x ; \ don't generate if off screen vertically
  37. CMP $1C ; |
  38. LDA $1793,x ; |
  39. SBC $1D ; |
  40. BNE RETURN ; /
  41. LDA $179B,x ; \ don't generate if off screen horizontally
  42. CMP $1A ; |
  43. LDA $17A3,x ; |
  44. SBC $1B ; |
  45. BNE RETURN ; /
  46. LDA $179B,x ; \ ?? something else related to x position of generator??
  47. SEC ; |
  48. SBC $1A ; |
  49. CLC ; |
  50. ADC #$10 ; |
  51. CMP #$20 ; |
  52. BCC RETURN ; /
  53. JSL $02A9DE ; \ get an index to an unused sprite slot, return if all slots full
  54. BMI RETURN ; / after: Y has index of sprite being generated
  55.  
  56. GENERATE_SPRITE LDA #$08 ; \ set sprite status for new sprite
  57. STA $14C8,y ; /
  58. LDA #SPRITE_TO_GEN ; \ set sprite number for new sprite
  59. STA $009E,y ; /
  60. LDA $179B,x ; \ set x position for new sprite
  61. STA $00E4,y ; |
  62. LDA $17A3,x ; |
  63. STA $14E0,y ; /
  64. LDA $178B,x ; \ set y position for new sprite
  65. STA $00D8,y ; |
  66. LDA $1793,x ; |
  67. STA $14D4,y ; /
  68. PHX ; \ before: X must have index of sprite being generated
  69. TYX ; | routine clears *all* old sprite values...
  70. JSL $07F7D2 ; | ...and loads in new values for the 6 main sprite tables
  71. JSR SUB_GET_DIR ; |
  72. TYA ; |
  73. STA $157C,x ; |
  74. STA $00 ; |
  75. LDA #$30 ; |
  76. STA $1540,x ; |
  77. PLX ; |
  78. RETURN RTS
  79.  
  80. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  81. ; horizontal mario/sprite contact - shared
  82. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  83.  
  84. SUB_GET_DIR LDY #$00 ; |
  85. LDA $94 ; |
  86. SEC ; |
  87. SBC $E4,x ; |
  88. STA $0F ; |
  89. LDA $95 ; |
  90. SBC $14E0,x ; |
  91. BPL RETURN_2 ; |
  92. INY ; |
  93. RETURN_2 RTS ; return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement