ProjectM has changed a lot the last years, so I don’t think porting this module is the right thing to (if at all possible). I am developing it against the latest API and have it mostly working as can be seen in the attached demo video that demonstrates a couple of the thousands presets available.