I can tell you right now that my stuff doesn’t properly handle conflicting directions properly over USB, but the code change has already been made so it would; so right+left+up would report as just up. Most consoles will work fine, but not USB, yet. MC Cthulhu firmware update to properly handle it is coming soon, and is already in place in the kittys.
As for hardware vs software, it’s actually a question of hardware vs software vs protocol. The USB code that my stuff uses for USB sends the data for the dpad has a POV hat and the analog sticks are, well, analog values. Each of those can represent only one single direction; there’s no such thing as ‘both left and right’ that can be sent. That’s a protocol limitation. There are a lot of protocols that can send that data though; NES, SNES, Genesis, Saturn*, Gamecube, NeoGeo, TG-16*, and SIXAXIS all have the ability to send each direction as a separate bit. (*Saturn and TG-16 may cause detection problems if they try to, but that’s the consoles fault, not the controllers)
So if the protocol can’t carry opposing directions, then the hardware needs to properly handle those inputs and clean them up for sending, like seeing left+right+up and sending ‘up’ to the console. That’s the hardware, and is a quick firmware update on my stuff to do so. Hacked pads, well, it’ll be a crap shoot how it handles things. If the protocol supports conflicting directions, like the ones I listed above, chances are the hardware will properly send that data. If it doesn’t, you do have the option of rigging your own cleaner in hardware between the buttons and hardware so that conflicting signals aren’t sent. Let me know if anyone wants me to draw one up; it should be doable with a single 50 cent logic chip and four pull up resistors. (EDIT: Oops, two 50 cent chips and four pull up resistors; could be done with a single small microcontroller and no resistors for cheaper but that’d require folks to be able to program it.)
Last is the software that sees and interprets what was sent over the protocol. We don’t have any control over that. If it freaks when it sees conflicting directions, then the only option is to change the hardware to properly clean the inputs, perhaps with the cleaner circuit I mentioned above. Software shouldn’t be a problem if the protocol used doesn’t allow conflicting directions; we shouldn’t have any software problems using the Xbox360 or PS3 USB protocols.