Cluster Sprite ASM code, ripped straight from my (MrDeePay) UberASM files, which were ripped 

straight from Ladida's Cluster sprite ZIP!  This should all go into Level_init_code.asm and some 

JMPs to get it going should suffice.


Rain Cluster
	008
	If it's possible for Cluster code to run starting on screen 0A of level 007,
	that would be great, and this cluster JMP can be added to level 077.

	If I can get some stuff done with Brutal Beach Bash (01E), you'll see this
	sprite a little more.

Sandstorm Cluster
	087, 101, 102, 104, 16D, 16E, 16F, 174, 175, 19F, 1A4, 1A6

Leaves Cluster
	00A, 00B, 00C, 00F, 011, 0A5, 0A6

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;
; Rain Cluster Sprite Generator. I figured it would be worth one more shot at trying to get it to 

work.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;
RainStorm:
	!RainCount = $13		; Amount of sprites to fall down, -1. 
					; Values outside of 00-13 are not recommended.

	!RainSpriteNum = $09		; Cluster sprite number.  Change this value to
					; whatever you use on your end.


	LDY #!RainCount


	-

	LDA #!RainSpriteNum

	STA $1892,y

	LDA ItsRainingMen,y	; \ Initial X and Y position of each sprite.

	PHA 			; | Is relative to screen border.

	AND #$F0 		; |
 STA $1E16,y 	; |

	PLA 			; |

	ASL #4			; |

	STA $1E02,y 		; |

	DEY 			; | Loop until all slots are done.

	BPL - 			; /


	LDA #$01 	; \ Run cluster sprite routine.

	STA $18B8 	; /


	;PLB	        ;

	;PLY           	;

	RTS            	; Return.


	ItsRainingMen:

	db $06,$45,$9E,$E2,$A7,$BC,$59,$40,$61,$F5,$D6,$24,$7B,$33,$C6,$0B,$00,$39,$70,$A1

	; Initial X and Y position table of sprites.

	; Relative to screen border.

	; Format: $xy
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;
; Sandstorm Cluster Sprite Generator
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;
OperationDesertStorm:
	!DustCount = $13	; Amount of sprites to fall down, -1.
				;Values outside of 00-13 are not recommended.

	!DustSpriteNum = $10	; Cluster sprite number.  Change this value to
				; whatever you use on your end.



	LDY #!DustCount


	-

	LDA #!DustSpriteNum

	STA $1892,y

	LDA Dustbowl,y	; \ Initial X and Y position of each sprite.

	PHA 		; | Is relative to screen border.

	AND #$F0 	; |

	STA $1E16,y 	; |

	PLA 		; |

	;ASL #4		; |

	ASL 		; |
	ASL 		; |
	ASL 		; |
	ASL 		; |
	STA $1E02,y 	; |

	DEY 		; | Loop until all slots are done.

	BPL - 		; /


	LDA #$01 	; \ Run cluster sprite routine.

	STA $18B8 	; /

	RTS             ; Return.



	Dustbowl:

	db $06,$45,$9E,$E2,$A7,$BC,$59,$40,$61,$F5,$D6,$24,$7B,$33,$C6,$0B,$00,$39,$70,$A1


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;
; Leaf Cluster Sprite Generator
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;

LeafForestZone:
!LeafCount = $13 ; Amount of spikes to fall down, -1.
		  ; Values outside of 00-13 are not recommended.

LDY #!LeafCount
-
LDA #$0C 	; \ Custom cluster sprite 00.
STA $1892,y 	; /
LDA InitXY,y 	; \ Initial X and Y position of each spike.
PHA 		; | Is relative to screen border.
AND #$F0 	; |
STA $1E16,y	; |
PLA 		; |
ASL 		; |
ASL 		; |
ASL 		; |
ASL 		; |
STA $1E02,y 	; |
DEY 		; | Loop until all slots are done.
BPL - 		; /
LDA #$01 	; \ Run cluster sprite routine.
STA $18B8 	; /

RTS

InitXY:
db $06,$45,$9E,$E2,$A7,$BC,$59,$40,$61,$F5,$D6,$24,$7B,$33,$C6,$0B,$00,$39,$70,$A1