Surely, I've made my game using TDirectDrawSurfaces, and it works perfectly, so you're mussing something up yourself.

Firstly, check if you have the latest version of UnDelphiX, with the places fixed what I've posted here: http://www.pascalgamedevelopment.com...a4662506d7214e

On the main DXDraw, check if you have doDirectX7Mode, do3D, doFlip, doHardware all on. Othervise hardware mode won't be turned on.

When you're drawing, use the (main) DXDraw.Surface.blahblah functions to draw your graphic, not the DXDraw.Surface.Canvas.blahblah, as those are the simple GDI functions, so they're slow as bloody hell!

If you're doing hit check, you maybe should concider using hitboxes for example, just be sure to store every degree's sin to an array when your game starts and read the values from the array instead of generating them with the Delphi functions as they're slow as hell... (cos is sin(x+90), starting from 0 after 360... You can put in 450¬? if you're lazy for the check )

P.S. I'm sorry if I've said something stupid or what you already know!