The three encoders you listed are pretty much equal in general gaming, but there are small details that might make a difference, mostly if you start going outside of mame. Most of the technical differences can't be seen by the user.
For mame, the Keywiz and Ipac are keyboard encoders. The GPwiz is a gamepad encoder. In most cases, mame treats keyboards and gamepads the same, but there is one area where mame doesn't. Mame imposes a "joystick_map" on the direction axes of gamepad type devices, and not on keyboards. You might see a small diference on 4-way game like pacman, as mame converts the direction inputs to 4-way earlier in gamepad devices (more details below). But you'll see the biggest difference in qbert (a rotated 4-way joystick game); keyboard encoder can do the normal in game remap so the diagonals work as the user expects, but since mame converts gamepad diagonals earlier, this why won't work. Instead, the -joystick_map option will need to be used. (
Thread with more details)
Outside of mame, some old emus prefer keyboard inputs, others like gamepads. And many retail games can't split a keyboard to two players (street fighter IV and all EA games come to mind). You can't split one gamepad or use two different keyboard encoder either, but two gpwizes will work great for these games. More $$ of corse to get two gpwizes, and if you're onlly maming, one of any will be fine.
As for dedicated 4-ways, there are a few reasons. Dedicated 4-ways are physically restricted from hitting the diagonals, usually have a shorter throw, and "feel better" for 4-way game. While 8-way joysticks will work, depending on how mame is emulating the game and which type (keyboard vs gamepad) encoder, you might run into few control problems. Hanging on the ladders in donkey kong, not turning when you want in pacman, accidentally turning too earily in pacman are the ones that come to mind.
The reason I say depends is that DashRender listed one of the conditions: mame emulating a game as an 8-way when the game was a 4-way. And it's not technically right. Id say the grids look as follows:
8-way:
UL U UR
L 0 R
DL D DR4-way:
x U x
L 0 R
x D xwith "0" as "no signal", and "x" as "not supposed to be possible". Notice how the 8-way sends both Up and Left singals at the same time for the upleft diagonal. A 4-way game doesn't expect to get Up and Left at the same time, which is what a diagonal is. When it does get it, the game might treat it as centered, treat it like nothing happened, go the new direction, or "stick" until centered.
To help mame and players, if mame knows it's a 4-way joystick input, mame won't send both Up and Left; instead mame decided to send one or the other. IIRC, with gamepads, it continues sending the direction sent before both were pressed; with keyboards mame sends the newer of the two. (As mentioned near top, one of the small differences in mame between the encoders.)
Hope I didn't get too technical. And blame Dash for alerting me to this thread.
