So, even with my superb Buffalo controller, 8-way movement with a USB controller is still wacky. It often goes at diagonals, when shifting from an U/D cardinal, to a L/R cardinal (or the reverse). This feels like an input ghosting issue, except it's clearly Allegro.
(I had originally thought that my controllers were just rubbish, but even the HQ products like the Buffalo pad, and the RetroUSB adapter do this.)
Perhaps adding in a tiny delay when reading input, to shift between the D/D and L/R cardinals would fix it, so that ZC doesn't take that change in (two) presses as a (single) diagonal. Moreover, that diagonal often continues until released, and the intended direction is pressed a second time.
I'm going to check if JoyToKey would fix it. That might be a viable workaround, as long as ZC doesn't stop accepting key presses.
Update: JoyToKey does improve matters, although there is still some level of ghosting. That could be the dell USB host controller, though.