Main > Main Forum

Reading MAME as technical reference and historical document: 720 controller

<< < (9/17) > >>

abaraba:

--- Quote from: Paul Olson ---Are you using the analog stick the way the original controller is used? Spinning around the outside instead of pointing in a certain direction?

--- End quote ---

Yes. Even when I do it very slowly rotation is not smooth, it jitters and flickers, plus rotation step itself is much more coarse than with mouse, for some reason.

When I try just to point some direction it sometimes works, diagonals hardly where I want it to, and sometimes orientation gets mixed so when I point up it faces left, huh?! It looks like cos/sin & sign/overflow issue, but it strangely does not happen with circling mouse.

Anyone else with analog joystick around here?



--- Quote ---I don't think I have ever heard any complaints about how the game works with an analog stick.

--- End quote ---

I would be surprised if anyone would even care to play it like that. If you try to spin it fast you can't help but let it off the edge a bit, and every time you do so it flickers and jitters even more. -- With arcade trackball or spinner, you could perhaps go for some pretty high-score, but with analog stick - no way.



--- Quote ---I think the code that you posted works the same as what I have. LETA0 shifted 8 bits right is LETA1 (just assuming that from the .85 code).

--- End quote ---

You can test it pretty well with a ball-mouse, if you take it apart and spin encoder wheels separately.



--- Quote ---  
You assume that the lower code is just a label, so you just ignore it. What you are leaving it with is no way to adjust the inputs in the game tab menu. All of the system 2 games include the paperboy settings and then are modified on a per game basis.

--- End quote ---

Yes, there are some adjustments to be made, what I mean is this...

   PORT_MODIFY("LETA0")   
   PORT_BIT( 0xffff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)

   PORT_MODIFY("LETA1")   
   PORT_BIT( 0xffff, 0x0000, IPT_DIAL_V ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)


I call my calibration input "DIAL_V", it could be just "DIAL" but with both of them set the same name it leaves tab menu bit unclear, so what I'm saying is that you can replace "IPT_DIAL" with "IPT_AD_STICK_X", "IPT_TRACKBALL_X", "IPT_POSITIONAL", "IPT_POSITIONAL_V"... and it would work just the same. -- Now, I am not testing this extensively, so there may be some unapparent differences.



--- Quote ---You can also set the sensitivity of the dial device there.

--- End quote ---

Yes, those I call "small adjustments", for that we need someone with authentic controller.



--- Quote ---Probably more importantly, even with the code changed to support the dial, to everyone who tries to use it, it will look like they are supposed to use an analog stick. Isn't that the original complaint?

--- End quote ---

Yeah, I think for the moment it's best to set it to "dial", like with other spinner games.

abaraba:

--- Quote from: Derrick Renaud ---Step 1. modify the "INPUT_PORTS_START( 720 )" section to add the relative controls from pre 85u1 back in to exist with the current controls.

--- End quote ---

Problem here is that authentic controller routine seem to work just fine whether this is initialized to relative or absolute, but 'anal_hack' routine requires absolute initialization.

So, if we set them to "DIAL" (relative) either anal_hack needs modification, or we need to branch code in initialization routine too. The easy way out would be to leave this initialization to "ANALOG_STICK", or maybe even better change it to "POSITIONAL" and "POSITIONAL_V" (also absolute).


Are you aware that analog hack, as it is, also makes it unplayable for keyboard?



--- Quote ---Step 2. modify the "READ8_HANDLER( leta_r )" section to check if the new relative ports have changed.  If so return that data.  If not, then return the fake data if it changed.

--- End quote ---

"new relative ports" - what variable(s) are you talking about?

I was thinking either to do it in real-time by checking some variable that contains info saying from which device signal originated,

or

...to simply to check whether analog joystick is plugged/enabled or not. So, if analog joystick is plugged in and MAME started up with "-joy", then enable analog hack, any other case go normal route, but do this at initialization time and forget later about it.



================
Shifters, let's start with the game people are actually interested to test.
  -- What is the game? What it does currently? What should it be doing?

Gray_Area:

--- Quote from: abaraba on January 14, 2011, 12:26:21 am ---...but 'anal_hack' routine requires absolute initialization.
--- End quote ---

Umm.

I thought the reason for changing the code to analog stick support was that it also allowed it to be played by anyone with a digital joystick.

abaraba:
Shifters
--------

The problem is most arcade 2-way (HI/LOW) shifters use only one switch, when held down it's one gear and when depressed it means it is shifted to the other gear.

When playing it with keyboard people do not want to hold down a key just so to stay in HI gear, so MAME implemented it with two switches, which then ruins it for authentic 1-switch interface.


Hardware solution: hack the shifter by placing second micro switch somewhere, while waiting on software solution.

Software solution: make it work with only 1 switch (toggle) so it works with authentic shifters, and tell people to map that input to 'Caps Lock' if they want to play it with keyboard.

BadMouth:
Lets stay on 720 until the modified driver has been tested and verified to work properly with the original controller.
(This is the 720 thread)

Can you attach your modified driver as a text file, like Paul did?

Xiaou2, you seem to be the only one with an actually controller.
You were the one who started this mess.
Now it's time for you to do your part and do the testing.

Please try Paul's driver and report back.
Please try abaraba's driver if he uploads it.
(maybe you guys could upload an already compiled build to megaupload or somewhere?)

There are some sensitivity settings at the bottom of this page that might be helpful:
http://jstookey.com/arcade/720/720-arcadejoy.php

Having a driver that works with both input devices is the first step.
If it's not done, nothing will ever follow.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version