Code; NOTE: $00-$03 already contain the X/Y position I want to spawn these sprites at
SpawnChildren:
LDA !Size,x
DEC A
STA $0F
LDA #$00
STA $0E
LDY #$0B
.SpriteGenLoop
LDA $14C8,y
BNE .Next
PHX
LDA $7FAB9E,x
TYX
STA $7FAB9E,x
LDA #$01
STA $14C8,y
LDX $0E
LDA SpinyTableOffset,x
CLC
ADC $0F
TAX
LDA $00
CLC
ADC SpinyDispXLow,x
STA $00E4,y
LDA $01
ADC SpinyDispXHigh,x
STA $14E0,y
LDA $02
CLC
ADC SpinyDispYLow,x
STA $00D8,y
LDA $03
ADC SpinyDispYHigh,x
STA $14D4,y
TYX
JSL $07F7D2
JSL $0187A7
LDA #$08
STA $7FAB10,x
LDX $0E
LDA SpinySpeedX,x
STA $00B6,y
LDA SpinySpeedY,x
STA $00AA,y
LDA #$01
STA.w !Direction,y
PLX
DEC $0E
LDA $0E
BMI .DestroySpiny
.Next
DEY
CPY #$00
BPL .SpriteGenLoop
.DestroySpiny
STZ $14C8,x
LDA #$03
STA $1DF9
.Return
RTS
SpinyTableOffset: db $00,$03
SpinyDispXLow: db $E8,$D8,$C8
db $08,$08,$08
SpinyDispXHigh: db $FF,$FF,$FF
db $00,$00,$00
SpinyDispYLow: db $F0,$E8,$E0
db $F0,$E8,$E0
SpinyDispYHigh: db $FF,$FF,$FF
db $FF,$FF,$FF
SpinySpeedX: db $E8,$18
SpinySpeedY: db $C0,$C0