Just to let you know (if you're interested!), I've managed to solve my problem. Well, my programming one anyway! :-)

What I've done is when the player chooses to travel in a direction I make a note of a destination "stop" point (+32 pixels)

Then as he travels (at the varying pixel rate) I check to see if he has reached or exceeded the "stop" point.

If he has I then (this is the crucial bit) check to see if he is requesting and is able to travel to the next tile. If he does he simply is allowed to continue after increasing the "stop" point by 32 again.

If he dosn't want to continue, or isn't able to, I then stop him at the correct point (ie the stop point) so stopping him exceeding it. This effect means the player is never able to stop inbetween any tiles but is allowed to continue smoothly is he wishs.

The difference is amazing. Super smooth scrolling!


Thanks again for your feedback.

One question you might be able to help with, do I have to call QueryPerformanceFrequency() for every frame, or is that fixed depending on the processor?