Re: [AD] The huge Windows force feedback patch. |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
- To: "'Allegro Development'" <alleg-developers@xxxxxxxxxx>
- Subject: Re: [AD] The huge Windows force feedback patch.
- From: <trent@xxxxxxxxxx>
- Date: Mon, 11 Aug 2014 10:41:39 -0600
- Thread-index: AQIgucSHzQaIVpG/7uSMW+wZ5k7iSgLWbfKkAjLFucoC0oRgoQFUbSNOASOdYQ4B1PWZZQIeuw7GAg6Q/TwBiAXt/AI5Z28AAnQIaewBlY7CgwJVLT/fAnaj5tABfuirIgHkmaENAS2iISwCpDtPpAEuc52FAYe7gl8CGAawcAHT8p9pmdNvbxA=
I committed your patch with a couple minor changes:
One function was named "diver" instead of driver.
Left out uncrustify.cfg and ex_joystick_events changes.
Thanks.
-----Original Message-----
From: beoran@xxxxxxxxxx [mailto:beoran@xxxxxxxxxx]
Sent: August 11, 2014 10:34 AM
To: Allegro Development
Subject: Re: [AD] The huge Windows force feedback patch.
Yes, it's normal if if the delay parameter of the force feedback effect
isn't zero, then, the effect will start with a delay. You can try this in
ex_haptic2. Set the delay to 0 (full left) and the effect should play
instantaniously.
Kind Regars,
B.
On 8/11/14, Trent Gamblin <trent@xxxxxxxxxx> wrote:
> Another thing, the effects in the examples take a full second before
> they start playing, is that normal?
>
> ---- beoran@xxxxxxxxxx wrote ----
>
>>Yes, that is likely to be the cause then.
>>
>>I also just double checked it with ex_joystick_hotpluging myself and
>>the layout before and after the patch stays the same if you use the
>>DirectInput mode of the F710. I do admit that my changes to
>>ex_joystick_events make it more difficult to compare before and after,
>>but with ex_joystick_hotplugging's log it's more clear that it stays
>>the same.
>>
>>Kind Regards,
>>
>>B.
>>
>>On 8/11/14, trent@xxxxxxxxxx <trent@xxxxxxxxxx> wrote:
>>> Ok, I think I was using it in XInput mode before.
>>>
>>> -----Original Message-----
>>> From: beoran@xxxxxxxxxx [mailto:beoran@xxxxxxxxxx]
>>> Sent: August 11, 2014 7:58 AM
>>> To: Allegro Development
>>> Subject: Re: [AD] The huge Windows force feedback patch.
>>>
>>> Well, how did you use the F710 before the patch? In DirectInput mode
>>> or in XInput mode? If you used it before in XInput mode, then what
>>> you saw in Allegro under DirectInput was the "shadowed" joypad. The
>>> F710 has actually
>>> 3
>>> different layouts: 1) the XInput layout in XInput mode,
>>> 2) the "shadowed" DirectInput layout in XInput mode and 3) the real
>>> DirectInput layout in DirectInput mode. Which could explain the
>>> differences you are seeing.
>>>
>>> What could be a bugor unintended change is if you saw a different
>>> layout before and after the patch with the F710 switched to
>>> DirectInput mode in both cases. If that's is the problems you are
>>> seeing I'll investigate it further.
>>>
>>> Kind Regards,
>>>
>>> B.
>>>
>>> On 8/11/14, trent@xxxxxxxxxx <trent@xxxxxxxxxx> wrote:
>>>> I'd like to apply the patch, but there's still one thing that's not
>>>> really clear to me. When I switch my joystick to DirectInput mode,
>>>> why is the button layout different after the patch? Apologize if
>>>> you already answered this.
>>>>
>>>> -----Original Message-----
>>>> From: beoran@xxxxxxxxxx [mailto:beoran@xxxxxxxxxx]
>>>> Sent: August 11, 2014 2:00 AM
>>>> To: Allegro Development
>>>> Subject: Re: [AD] The huge Windows force feedback patch.
>>>>
>>>> That was caused by the "shadowing" and by ex_joystick_event which
>>>> had a bug where it would show presses from different joystics as if
>>>> they came from the active one.
>>>>
>>>> The "shadowing" should now be fixed with the fixes I pushed to that
>>>> pull request & patch, and same for ex_joystick_event. I'd be
>>>> surprised if you still saw it with the lastest version of my patch.
>>>>
>>>> For people who use Allegro's joysticks the important point to keep
>>>> in mind that even before this patch, you had and still have have to
>>>> use the .id flag of the joystick event combined with
>>>> al_get_joystick() to make sure you correctly interpret from which
>>>> joystick the events are coming from.
>>>>
>>>> Also, in case you really need XInput devices to stay as they were,
>>>> it's possible to disable the XInput driver at compile time using
>>>> cmake -DWANT_XINPUT=no. This will also disable the XInput filter in
>>>> Directinput devices and the force feedback for them, but it apart
>>>> from the directinput force feedback driver, all should be as it was
>>>> before the patch with that flag.
>>>>
>>>> Kind Regards,
>>>>
>>>> B.
>>>>
>>>>
>>>> On 8/11/14, trent@xxxxxxxxxx <trent@xxxxxxxxxx> wrote:
>>>>> What about the multiple buttons being signalled when you press 1
>>>>> button on the joystick? Isn't that a compatibility issue?
>>>>>
>>>>> -----Original Message-----
>>>>> From: beoran@xxxxxxxxxx [mailto:beoran@xxxxxxxxxx]
>>>>> Sent: August 10, 2014 8:03 PM
>>>>> To: Allegro Development
>>>>> Subject: Re: [AD] The huge Windows force feedback patch.
>>>>>
>>>>> Dear Trent,
>>>>>
>>>>> Thanks for taking time to check my patch. The layout of the
>>>>> joystick should stay the same EXCEPT for XInput devices which now
>>>>> get the XInput layout. I consider it as a functional improvement
>>>>> that they now get the correct XInput layout, and that the two
>>>>> triggers show up as analog slider axes and not as buttons like
>>>>> they would under DirectInput. In this case only the poatch is not
>>>>> perfectly backwards compatible but we can't have our cake and eat it
too.
>>>>>
>>>>> I was playing around a bit with ex_joystick_events, mostly in an
>>>>> attempt to make the button names more legible, etc. If you don't
>>>>> like those changes I'll just revert to Allegro's current
>>>>> ex_joystick_events later on, it's not essential to this patch.
>>>>>
>>>>> Kind Regards,
>>>>> B.
>>>>>
>>>>> On 8/11/14, trent@xxxxxxxxxx <trent@xxxxxxxxxx> wrote:
>>>>>> Thanks for doing that. Before I can say anything else I need to
>>>>>> read the full patch and test it out some more, which might be a
>>>>>> while. As long as the joysticks work the same as before, ie in
>>>>>> the most common case where the user has 1 joystick, and the game
>>>>>> is recompiled with this patch, the button mappings are all the
>>>>>> same, then it should be fine. However, your updates to
>>>>>> ex_joystick_events although they look better don't suit every
joystick, do they?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: beoran@xxxxxxxxxx [mailto:beoran@xxxxxxxxxx]
>>>>>> Sent: August 10, 2014 7:31 PM
>>>>>> To: Allegro Development
>>>>>> Subject: Re: [AD] The huge Windows force feedback patch.
>>>>>>
>>>>>> Dear Trent,
>>>>>>
>>>>>> I understand your concern, so I spend most of the day looking for
>>>>>> a solution.
>>>>>>
>>>>>> I looked into a better way to filter the XInput devices from
>>>>>> DirectInput and with some inspiration from SDL and a lot of
>>>>>> testing, I was able to make it work both on MinGW and on MSys2.
>>>>>>
>>>>>> This better way requires only user32.dll and windows.h, no
>>>>>> special headers, and compiles fine on MinGW. Only requirement is
>>>>>> that you use
>>>>> Windows XP.
>>>>>> For
>>>>>> some reason the DirectInput driver still supported Windows 95,
>>>>>> but I had to upgrade to use GetRawDeviceList() on which the
>>>>>> filtering method is based. I don't think that that is any
>>>>>> problem, since Allegro 5 doesn't support windows 95 for other
>>>>>> things such as audio
>>>> anymore anyway.
>>>>>>
>>>>>> With this better filtering method there should be no "gotchas"
>>>>>> left with compiling and using Allegro on MinGW with this patch,
>>>>>> and the rest of Allegro should keep working as it was.
>>>>>>
>>>>>> Finally, months of hard work went into this patch and while there
>>>>>> might be some bugs left in it, he best way to get these fixed is
>>>>>> by getting people to test it more widely.
>>>>>>
>>>>>> Kind Regards,
>>>>>>
>>>>>> B.
>>>>>>
>>>>>> On 8/10/14, Trent Gamblin <trent@xxxxxxxxxx> wrote:
>>>>>>> If the patch has this many gotchas I won't be applying it. The
>>>>>>> entire rest of Allegro works perfectly with MinGW, there's no
>>>>>>> sense in IMO destroying that for haptics, so find.better ways to
>>>>>>> do these
>>>> things.
>>>>>>>
>>>>>>> ---- beoran@xxxxxxxxxx wrote ----
>>>>>>>
>>>>>>>>OK, I pushed some more commits to the same pull request.
>>>>>>>>
>>>>>>>>What they do is
>>>>>>>>1) fix ex_joystick_events
>>>>>>>>2) Detect sal.h and include it only if found1.
>>>>>>>>3) Detect wbemidl.h for use by the filtering snippet. If ound,
>>>>>>>>enable the snippet, if not disable it. For various reasons,
>>>>>>>>mingw can't compile the filtering stippet (I said it was
>>>>>>>>horrible), but
>>>>>>>>msys2/mingw64 can. That's why I was forced to conditionally
>>>>>>>>compile it like this.
>>>>>>>>4) Some various minor bugs.
>>>>>>>>
>>>>>>>>https://github.com/liballeg/allegro5/pull/8.patch
>>>>>>>>
>>>>>>>>Kind Regards,
>>>>>>>>
>>>>>>>>B.
>>>>>>>>
>>>>>>>>----------------------------------------------------------------
>>>>>>>>---
>>>>>>>>-
>>>>>>>>-
>>>>>>>>-
>>>>>>>>--------
>>>>>>>>--
>>>>>>>>https://lists.sourceforge.net/lists/listinfo/alleg-developers
>>>>>>> ----------------------------------------------------------------
>>>>>>> ---
>>>>>>> -
>>>>>>> -
>>>>>>> -
>>>>>>> --------
>>>>>>> --
>>>>>>> https://lists.sourceforge.net/lists/listinfo/alleg-developers
>>>>>>>
>>>>>>
>>>>>> -----------------------------------------------------------------
>>>>>> ---
>>>>>> -
>>>>>> -
>>>>>> ------
>>>>>> --
>>>>>> --
>>>>>> https://lists.sourceforge.net/lists/listinfo/alleg-developers
>>>>>>
>>>>>>
>>>>>> -----------------------------------------------------------------
>>>>>> ---
>>>>>> -
>>>>>> -
>>>>>> --------
>>>>>> --
>>>>>> https://lists.sourceforge.net/lists/listinfo/alleg-developers
>>>>>>
>>>>>
>>>>> ------------------------------------------------------------------
>>>>> ---
>>>>> -
>>>>> ------
>>>>> --
>>>>> --
>>>>> https://lists.sourceforge.net/lists/listinfo/alleg-developers
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------
>>>>> ---
>>>>> -
>>>>> --------
>>>>> --
>>>>> https://lists.sourceforge.net/lists/listinfo/alleg-developers
>>>>>
>>>>
>>>> -------------------------------------------------------------------
>>>> ---
>>>> ------
>>>> --
>>>> --
>>>> https://lists.sourceforge.net/lists/listinfo/alleg-developers
>>>>
>>>>
>>>> -------------------------------------------------------------------
>>>> ---
>>>> --------
>>>> --
>>>> https://lists.sourceforge.net/lists/listinfo/alleg-developers
>>>>
>>>
>>> --------------------------------------------------------------------
>>> --------
>>> --
>>> --
>>> https://lists.sourceforge.net/lists/listinfo/alleg-developers
>>>
>>>
>>> --------------------------------------------------------------------
>>> ----------
>>> --
>>> https://lists.sourceforge.net/lists/listinfo/alleg-developers
>>>
>>
>>----------------------------------------------------------------------
>>--------
>>--
>>https://lists.sourceforge.net/lists/listinfo/alleg-developers
> ----------------------------------------------------------------------
> --------
> --
> https://lists.sourceforge.net/lists/listinfo/alleg-developers
>
----------------------------------------------------------------------------
--
--
https://lists.sourceforge.net/lists/listinfo/alleg-developers