Ahhhhhh that's satisfying. Just optimised the living shit out of my virtual text rendering code.
Dungeons of Freeport SDL version now runs at the right speed. Was an easy fix too.
I'd done the text rendering in a QUICK and nasty way just to ensure it worked. It re-rendered each character every frame, which is adding and removing a LOT Of sprite nodes.