I'm not sure if this is a really a bug. Maybe it can be overcome by manual configuration with an editor, but on the other hand it should work gui-configuration.
My computer is an AMD2600 PC with GentooLinux installed running Gnome 2.32. Vice-version is 2.3.17 (SDL80386 GCC 4.5.3) with sdl-ui enabled. I only tried this with x64 so far. I'm using a Saitek RumblePad P2600. The gamepad is a clone of an analog playstation-gamepad with two analog thumbsticks, one D-pad and 12 buttons. The gamepad is recognized and i can map directions/keys to it. Unfortunately I can not move diagonal with the D-pad.
I started with an empty configuration, saved the joymap and attached the mapfile. If you take a look at it then you will see that the D-pad is recognized as hat and not as joystick. That's a bit suspicious to me, but it's correct though.
I also tried some "./SDLJoyTest-linux32"-program that i got from a mupen64-side. There the dpad is also recognized as hat, but according to the output handles diagonal movement. The same goes for jstest (which is not using SDL though).
It would be ideal if this can be fixed in such a way that it works out of the box, but if I need to modify the joymap-file manually, then I would appreciate some help there. I already tried it and didn't manage to fully understand the configuration-scheme.
Let me know if you need further information and/or testing.
standard-joymap of Saitek RumblePadP2600
Looks like the hat direction release handling was broken. A prime example of sloppy coding (on my part) without hardware to test with.
Proposed (untested, still no hat-joysticks around) patch here: http://viceminus.git.sourceforge.net/git/gitweb.cgi?p=viceminus/viceminus;a=commitdiff;h=06989b9b6f4de618574a8ac6b4b4b7da03085fc7
Patch from viceminus (nojoopa) applied in rev 25608, please retest with current trunk.
Wow, that was a fast fix. And after a short test, I can confirm that it works. Amazing! You guys rock. If you would be female and rich, then I would even consider marrying you. =)
Anyway, here is a small addition: Maybe I should file a separate bugreport for this, but since it's such a small issue, I will quickly add it here and leave it to you to either ignore it or investigate. If you still would prefer that I start a new bug for this, then please leave me a short note.
When you hold the d-pad in some direction and enter the emulator-menu (default F12), then release the d-pad and exit the menu again, the emulator doesn't recognize that the d-pad is not pressed anymore and the game-character continues to move into the direction you pressed before.
I can think of a very few situations where this might become handy, but in my opinion this more often confuses the user, especially when you mapped the menu-button to a gamepad-button and quickly press it during ingame-action, like i did while testing.
please open a new bug with the other issue (if you can, please try it with other emus than x64 too, that might give some hints)
closing this one because its fixed