#Vitsy, 19 16 bytes
Vitsy, 19 16 bytes
Yeah this needs some reducing. I'm out of practice!
D1H}\[\['*'O]aO] (implicit input) D Peek n, push n. 1 Push 1. H Pop x, pop y, push range(x, y) } Reverse, pop n, reverse, push n. \[ ] Pop n, do bracketed items n times. \[ ] Pop n, do bracketed items n times. '*'O Output the character *. aO Output a newline. Think of it as though I'm iterating through a list (1 through n) and popping out the number of *s according to the currently selected list item.
Explanation soon.