This is a port from the SPSR repo, it's going to need a lot of work to be properly integrated but as of this commit it at least runs.