I solved my own problem with a few lines of code in the player update
event.
Note that my game restricts x-axis movement with 'hidden' wall world tiles, but could be easily adapted for anyone looking to accomplish the same goal (force use of crank or other input mechanism for player control):
if cancelDPad==0 then
if event.dy!=0 then
realY = event.y
realY -= event.dy
cancelDPad = 1
goto event.px,realY
end
else
cancelDPad = 0
end
call "calculateMove"
end