Here you go! And I actually worked out how to use diff properly this time! I had to rename a couple of variables because they were clashing with 2xPM, but otherwise there were no big problems. DDT3x looks like bicubic, but without the softening effect. It's pretty good, but I prefer xBR.