I've used an XBox 360 controller, XBox One controller, and an 8Bitdo controller.
There's also Joy2Key. It translates your controller/joystick inputs into keyboard inputs, and you can set different profiles per application. I found myself using that in DosBox a lot for games that wouldn't otherwise pick up my pad.