This UberASM contains a library that allows you to fade from one BG gradient to another in a smooth way, without advanced asm knowledge. This can be useful to change aesthetics as time passes or as the level is progressed (similar to some levels in DKC), or also to make HDMA gradients work with the level end colors fade.
All that's needed is the HDMA tables (like those generated by EffectTool/GradientTool, using the RedGreen-Blue format) and to call the provided routines when you want to start the fade. Check out the readme for more info. Included a couple examples codes: one changes the gradient as the timer passes, the other changes it at level end.
Note that the code is SA-1 only. Also pay attention to the RAM usage.