Just an update if anyone cares, I got C2D_Fade working. And as I suspected, you need to run it over several frames, with the alpha incrementing from 0 to 255 before changing to the new screen, and then incrementing from 255 to 0 to complete the transition. TWLoader does something very similar to achieve a transition, which helped me realise how to use this function so big thanks to Robz8. Hopefully the devkitPro team will put an example on their repos to make it clearer for others who want to use this feature of Citro2d.