Fizzlefade added.
It could still use some tidying up and the variables should be named too.
ATM, it will has a memory leak, because a surface is not being freed.
Merge origin/master