As far as I know DXTimer uses the onIdle event and probably reassigns it from your procedure to its own, just stick everything from you're GameLoop to timers OnTimer event and everything should be fine.