Main > Main Forum

Fixing MAME's handling of 12-position rotary controls

Pages: << < (5/17) > >>

RandyT:


Do these sticks have an indicator pointing to the same direction as the on-screen action?

Also, are ALL of these games 12-way or are there 24-way and 6-way and whathaveyou?  And if so, how do you manage these?

Don't get me wrong, for someone with a couple of GP-Wiz49 interfaces, direct input connection would be fine (there should be plenty of free inputs for it.)  The gamepad buttons are probably a pretty good candidate for being held down all the time as well without difficulty.  The keyboard encoders might have some other difficulties related to programming them and such, but I haven't tested for these possibilities yet.

RandyT

RobotronNut:


--- Quote from: Kremmit on January 30, 2006, 03:08:02 pm ---A consistent left/right hack for all the games would be the 2nd best option, but you'd need another layer of hardware just to convert the 12-way switch into left/right presses, like the Druin board.  And everybody that's used one of those knows it's not perfect.  One click doesn't always equal 1 turn, and it ought to.

--- End quote ---

but the problems may very well be mame's fault, not druin's. does MameAnalog+ work 100% correctly with druin's board?

i prefer druin's to direct connect, because it doesn't leave any keys always on, as long as there is a software solution that yields perfect behavior.

mahuti:

There are 2 types. Optical and Mechanical rotaries. The optical ones are like spinners. The mechanical ones are 12 position, though I seem to recall there being mention of either and 8 or 10 position mechanical rotary as well. The 12 position ones are currently the only ones that anybody ever talks about, Ikari warriors being the primary game.

The sticks didn't have an indicator about which way the stick was supposed to point (i.e no "north" arrow) but you could definitely FEEL the major clicks as you spun your little dude around.

As you click left with a rotary to shoot somebody while you're walking forward and you rotate one click and your guy moves 2 clicks...AAARGhh.. maddening. Like having mario all confused on a ladder in Donkey Kong. I know you can relate. You KNOW what's supposed to happen, and something is obviously NOT happening and you just wanna scream.

Kremmit:


--- Quote from: RandyT on January 30, 2006, 05:13:11 pm ---Do these sticks have an indicator pointing to the same direction as the on-screen action?
--- End quote ---

Nope, but they could.  The same side of the stick is always pointing straight up when the character is pointing straight up.


--- Quote from: RandyT on January 30, 2006, 05:13:11 pm ---Also, are ALL of these games 12-way or are there 24-way and 6-way and whathaveyou?  And if so, how do you manage these?
--- End quote ---

Nope, all the games using mechanichal rotary sticks are 12-way. 

There are some other games that always come up when we get to talking about rotary games, that used different hardware:  Xybots, Frontline, Cal. 50. 

Xybots had a stick that didn't rotate all the way, it went a little less than 1/2 a turn either direction.  Twisting it contacted either a "Turn Right" or "Turn Left" switch.  MAME already correctly emulates this, by mapping "Turn Right" and "Turn Left" to button presses.

Frontline (and Tin Star & Wild Western) used a 8-way joystick with a knob instead of a regular handle.  When you twisted the knob, it rotated an actuator that would contact the correct microswitch(es) to point the gun in the correct direction.  You could also call this an 8-way rotary, but it does not use an 8-position switch, but rather 4 microswitches, just like a joystick.  MAME already correctly emulates this, with aiming handled by the "P2 Joystick" controls.

Cal. 50 used a rotary joystick with an optical encoder wheel on the bottom.  MAME already correctly emulates this, by using the "Dial" control type.


--- Quote from: RandyT on January 30, 2006, 05:13:11 pm ---Don't get me wrong, for someone with a couple of GP-Wiz49 interfaces, direct input connection would be fine (there should be plenty of free inputs for it.) 

--- End quote ---


Agreed.  Two rotary joys could even be handled by a single GP-Wiz Eco, for less than $20.  If MAME were fixed.


--- Quote from: RobotronNut on January 30, 2006, 05:14:53 pm ---but the problems may very well be mame's fault, not druin's. does MameAnalog+ work 100% correctly with druin's board?

--- End quote ---

The problem is MAME's fault.  MAME is forcing us to use an extra piece of hardware to translate an simple bit of absoulte data (which way is the switch pointing) into some very non-absolute data (how long were you twisting the knob), which MAME then attempts to re-translate back into absolute data (where would the switch be pointing if you turned it for x number of nanoseconds), and the result is that your guy doesn't point where he should.

Analog_+ works perfectly without the Druin's board.  It just doesn't support all the games.


--- Quote from: rdagger on January 30, 2006, 04:14:50 pm ---It would be possible to build a USB rotary interface that did not require a keyboard encoder.  It could have 2 headers for 2 rotary joysticks and a single USB plug.  It could also have an on/off switch to prevent key presses when not in use.  The interface could be designed to implement either a USB keyboard or joystick using HID drivers.  The cost would probably be about the same as a standard rotary interface, but it would be easier to wire and not require any keyboard encoder inputs.

--- End quote ---

Why save keyboard encoder inputs by building a whole extra encoder?  I just don't get this thinking.  Again, don't get me wrong.  If you build one, and it works better than what we've got now, good.  But fixing the software seems like a superior fix in this case.


--- Quote from: RobotronNut on January 30, 2006, 05:09:03 pm ---
based on the code in snk.c, the ROM reads 4 bits from an input port and expects to see a number from 0 thru 11, so the 12 switch inputs must have gone through a hardware encoder.


--- End quote ---

If that's the case, then it was on-board the original PCB, and all it did was translate a simple closed circuit into a number.  Can you tell what's feeding that number to snk.c now?


--- Quote from: rdagger on January 30, 2006, 04:08:18 pm ---If you had 2 joysticks wired up using 24 inputs than there would always be 2 key presses being sent to the computer, which could be annoying when not playing a game.

--- End quote ---

If this proved troublesome, a dpdt switch wired to the ground for the rotary switch could be used to kill them when not in use.

RandyT:


--- Quote from: mahuti on January 30, 2006, 05:37:05 pm ---There are 2 types. Optical and Mechanical rotaries. The optical ones are like spinners. The mechanical ones are 12 position, though I seem to recall there being mention of either and 8 or 10 position mechanical rotary as well. The 12 position ones are currently the only ones that anybody ever talks about, Ikari warriors being the primary game.

--- End quote ---

If this is true, then that is a good reason as to why 12 direct connections may not be the best approach, except for the games that require exactly a 12 position dial.


--- Quote ---The sticks didn't have an indicator about which way the stick was supposed to point (i.e no "north" arrow) but you could definitely FEEL the major clicks as you spun your little dude around.

--- End quote ---

As I expected.  Still confident that a better solution can be had for far fewer inputs, but MAME would have to support it properly and some hardware would be involved.


--- Quote ---As you click left with a rotary to shoot somebody while you're walking forward and you rotate one click and your guy moves 2 clicks...AAARGhh.. maddening. Like having mario all confused on a ladder in Donkey Kong. I know you can relate. You KNOW what's supposed to happen, and something is obviously NOT happening and you just wanna scream.

--- End quote ---

Yeah, I'm familiar with the problem.  No time constant or sensitivity seems to offer good results when using a button for right or left.  That's why I haven't even considered adding that kind of support.  It's one of those things that doesn't work well enough for it to be considered a "solution".

RandyT

Pages: << < (5/17) > >>

Go to full version