matzman666 / OpenVR-InputEmulator

An OpenVR driver that allows to create virtual controllers, emulate controller input, manipulate poses of existing controllers and remap buttons. A client-side library that communicates with the driver via shared-memory is also included.
GNU General Public License v3.0
718 stars 138 forks source link

Add support for motion cancellation #4

Open noorbeast opened 7 years ago

noorbeast commented 7 years ago

Motion and VR compliment each other perfectly and with quality peripherals, transducers and sound are about the ultimate seated experience.

Unfortunately the lack of a generic motion cancellation solution, subtracting the rig movement from the HMD, is the real gap, particularly for large axis movement sims: https://www.xsimulator.net/community/threads/latest-oculus-update-totally-screwed-my-tracking.9917/

It would be easy to mount VR controllers to a motion rig and have instant tracking, as they are not really needed for anything else. But there needs to be a generic way to offset the rig motion from the HMD.

The motion community would be most interested in and really grateful for a motion cancellation solution and extending the OpenVR-InputEmulator project would seem a logical possibility.

You would find plenty of willing testers with VR and 2-6+DOF motion simulators at xsimulator.net.

traveltrousers commented 7 years ago

AFAIK the vive stops sending any transform data when it's occluded, but the rift still allows rotation, so it might be possible to use one controller at the pivot point for (relatively) clean rotation data and another near the head to provide translation... for the rift at least.

bastiuscha commented 7 years ago

Is there any noticeable difference between not using any compensation mode and this mode?

Now i tested it. With "Use reference Tracker" the vibration sinsitivity, is stronger and the drunk feeling is better (lower :] ). But i can say for now, without my bodyshaker, it is not far away of "good". But with activated shaker, my vive display oscillated much. I will check for better mountingplaces.

Maybe the "drunky" feeling will be better, if i bring the tracked controller more near to the rig pivot.

@traveltrousers thanks for the link. looks good

bastiuscha commented 7 years ago

I have some cool news. With deactivated modes, now i can use motion cancellation. "reference Tracker" still not, but deactivated, it's ok to drive. But i don't use my bodyshaker. This is the price i must pay. Sadly... but for that i have motion cancellation. The only thing is still, that it makes a drunken feeling. I can say, after some drive tests, i will accustom myself and the feelig will better from time to time. But something don't fit. I can't detect exactly, what is the reason for that. If i shift to the next gear, the "car" is shaking minimal. This is a weird feeling. But if i set this in my motion seat to low, then it's ok. I believe, short fast movings (and the complete car is shaking/moving a little bit) are the reason for my drunken feeling.

misoswan commented 7 years ago

hello put the steam VR on, turn on the emulator, let it be turned on, and can you run the game outside the steam? it is right? user cv1... (love game DCS world)

imagebuff commented 7 years ago

@matzman666 There is a guy who apparently has been wrestling high frequency vibration issues while using a vive tracker on a drone. He just recently announced on Reddit that he finally licked the problem. Maybe he can help you with your motion tracking vibration issues.

[–]UberJaymis[S] [score hidden] 2 hours ago I've been working on this kind of thing for a while, and finally got it working with stable tracking. Also tested in Tilt Brush: https://twitter.com/jaymis/status/870535738621698049 Last time I tried this it didn't work so well: https://twitter.com/jaymis/status/799630782276857856 Turns out that high frequency vibration is bad for Vive tracking :) I'll release 3D files of my mounting system soon!

Lalancelot commented 7 years ago

This is how I tested your work with my Vive:

https://www.youtube.com/watch?v=Cd69--h7HgA

In the motion cancellation menu, there is a profile menu. I tried to set a 'base' profile and a 'stabilized' profile to see if I could switch between the two, but nothing happened when I did. The only options that seem to work was the 'motion cancellation' and the 'detect controller'. All the rest did not seem to do anything.

But the cancellation works and I love it for Elite Dangerous. It keeps the seat position synchronized with the game even if I adjust my seat to the controller position. Before it was a pain to always stay at the exact seat position while playing. Now, I don't have to worry about that, as it follow along all my chair adjustments.

If ever it lost synchronization between the base and the headset, I could get a position slightly offset (really slightly) that I could fix with the reset seat position. But most of the time, it was right on the spot.

Synkndown commented 7 years ago

I would like to add that this worked perfectly for me. HTC Vive, Project cars, 2dof, controller mounted at top of seat. https://youtu.be/rD3b_e2zkPc Thank you!

thefrozncity commented 7 years ago

Thank you madman666, it works. But i am hanving FOV reduction issues. In specific moment FOV is reduced (Exactly edge of view). And sometimes distortion there. Except that, works perfect. I have tried linear/zero/reference mode all. But no noticeable changes there.

And I mounted controller (cv1 user) 10 oclock direction In front of head. I cannot mount controller top of my seat. I am using 3dof rig (dofreality.com).

Kindly let me know how can I overcome this problem Thanks.

hortynz commented 7 years ago

@matzman666, just wanted to say a big vote of thanks for your efforts! I haven't yet tried it on my rig, but have done a test with a controller in my hand, and it seems to work really well. I'll get it onto my motion sim for a proper trial soon. p.s. it's bad to throw the offset controller around while inside the vr! :)

spit40 commented 7 years ago

@matzman666 - I'm getting the same thing as @thefrozncity . I'm also using CV1 and also on DOF Reality as it happens. I'm using it for flight sim which may mean I have a different experience to the drivers here - more sustained larger angles perhaps. Mainly its great thanks but I get a few problems: 1) Black area intrudes from bottom of HMD at times 2) Controller seems to stop responding sometimes. I shake the post holding the touch and see its stopped applying compensation 3) Probably related to (2) the compensation stops working, sometimes flicks back into action, sometimes seems to not compensate completely.

Controller is just above my head to the side a bit. I'm using Aerofly FS2 running it in Steam VR mode.

bastiuscha commented 7 years ago

@spit40 Same here (problem 2 & 3) with my car rig. I can't replicate the origin of the issue. Maybe vibrations, maybe the controller is not perfectly tracked... but i have to say, i use vive.

chrigima commented 7 years ago

Thanks for the great work! I run it from the motion platform, works quite well so far!

One problem that I noticed is that the motion compensation is totally wrong sometimes. It happens often when the controller is on but not visible in the VR yet (switch on, but don't move) when you enable compensation. After disabling the compensation, the controller pose is correct, enabling comensation again results in a totally wrong compensation.

I logged some data during void CServerDriver::_setMotionCompensationZeroPose(const vr::DriverPose_t& pose) The recent HMD pose is logged as well.

Controller position 0.0175703 0.151576 -1.5634 Controller rotation 0.267086 0.701452 -0.427502 -0.503858 Controller w<-d translation -0.90544 0.352741 -0.110538 Controller w<-d rotation -0.572029 0.600314 0.150047 -0.999996 HMD position 0.0118754 0.110629 -0.85663 HMD rotation 0.995315 -0.0761361 -0.0595844 -0.000966878 HMD w<-d translation 0 0 0 HMD w<-d rotation 0.00182706 4.25223e-06 0.00232735 -0.999996

Interestingly, the compensation works if you play around with the controller that it looses connection, after reconnecting the comensatet pose is totally wrong, but after disable/enable cycle of the compensation it works again. Then the log looks like

Controller position -0.261946 0.49679 -0.62994 Controller rotation 0.0211378 0.0886557 0.608851 0.788032 Controller w<-d translation 0 0 0 Controller w<-d rotation 0.00182706 4.25223e-06 0.00232735 -0.999996 HMD position 0.0409907 0.122835 -0.881634 HMD rotation 0.99653 -0.0806234 0.0136787 -0.0155421 HMD w<-d translation 0 0 0 HMD w<-d rotation 0.00182706 4.25223e-06 0.00232735 -0.999996

Do you have any idea what could happen here?

TripRodriguez commented 7 years ago

Thank you so much for making this! So far I've used this only with Oculus (non-steam DCS World) via ReVive, but will be testing with a Vive this week.

It seems to me like there doesn't seem to be any compensation for rotational head tracking. Maybe it's working but just not quite enough? I'll see how the Vive compares in this regard and also look at the mounting location for the compensation tracked controller.

Thanks again,

Trip

TripRodriguez commented 7 years ago

Quick follow up: With a Vive running natively in SteamVR it works BEAUTIFULLY! I'm thrilled to finally have proper motion tracking on my motion sim!

Thank you Matzman666, this is what I've been begging for ever since I got my motion sim up and running.

TripRodriguez commented 7 years ago

It seems I too can't use my bass shakers because they cause my tracking to go crazy when using the motion compensation.

I did also at least once have the motion sim itself apparently cause enough vibration to lose tracking. I hope we get the updated version with a fix soon!

This is otherwise awesome!

spit40 commented 7 years ago

Same here with the bass shaker problem.

TripRodriguez commented 7 years ago

@spit40 Which VR set are you using? Vive?

spit40 commented 7 years ago

I'm on Rift

Wagnard commented 7 years ago

Not sure if i'm doing something wrong but when I try to use motion cancellation and I move my chair to left or right (no motion sim atm) . I see the screen gradually turning black.(black screen border) Its as if the world is not generated completely around me. Anyone have an idea?

Moving the head to look left or right is ok. but turning my chair on itself will make the screen black.

I have CV1, SteamVR home

TripRodriguez commented 7 years ago

I encountered this phenomenon with Oculus Rift in DCS World via SteamVR on my 6DOF motion sim. When I used a Vive it worked perfectly! I haven't tested motion compensation in any other games yet, and I'm selling the vive and keeping the Rift, so for the foreseeable future all my testing will be on that. Vive image quality and lenses just suck which is a shame because I'd rather support Valve. Next I'll be testing with Dirt Rally, but I'm crazy busy currently and might not get around to it for some time as I have to build a new mounting system for my racing gear to work with my new top platform.

Trip

On Thu, Aug 17, 2017 at 10:56 AM, Wagnard notifications@github.com wrote:

Not sure if i'm doing something wrong but when I try to use motion cancellation and I move my chair to left or right (no motion sim atm) . I see the screen gradually turning black.(black screen border) Its as if the world is not generated completely around me. Anyone have an idea?

Moving the head to look left or right is ok. but turning my chair on itself will make the screen black.

I have CV1, SteamVR home

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/matzman666/OpenVR-InputEmulator/issues/4#issuecomment-323097032, or mute the thread https://github.com/notifications/unsubscribe-auth/AceMUzmnwPZcW9mjATRVbvbIV4gBGDGhks5sZFO1gaJpZM4M2T90 .

Wagnard commented 7 years ago

Well for me I dont even have to be on a game to see the problem, just on the SteamVR home I can see the issue when I enable the motion compensation. I guess I'll have to try a Vive and see if it's better. I hope this can be fixed before I spend another 1k$ :/

clyevo commented 6 years ago

_> Wagnard commented on Aug 17

Not sure if i'm doing something wrong but when I try to use motion cancellation and I move my chair to left or right (no motion sim atm) . I see the screen gradually turning black.(black screen border) Its as if the world is not generated completely around me. Anyone have an idea?

Moving the head to look left or right is ok. but turning my chair on itself will make the screen black.

I have CV1, SteamVR home_

Yes i have the exact same problem as well on my CV1. It is as if the view area does not follow the motion compensation tracker. Does anyone else have this problem?

TripRodriguez commented 6 years ago

Same here when I tried with DCS World. Worked fine on Vive but had this problem with RIft. Running DCS World this way for me required using Revive so that might be related.

Out of curiosity, has anyone had this issue when using a Rift through SteamVR WITHOUT Revive? I'd like to test at some point by installing the Steam version of DCS World so I can try it without Revive being in the mix, but I only own one aircraft on the steam version.

On Fri, Nov 10, 2017 at 2:31 PM, clyevo notifications@github.com wrote:

_> Wagnard commented on Aug 17

Not sure if i'm doing something wrong but when I try to use motion cancellation and I move my chair to left or right (no motion sim atm) . I see the screen gradually turning black.(black screen border) Its as if the world is not generated completely around me. Anyone have an idea?

Moving the head to look left or right is ok. but turning my chair on itself will make the screen black.

I have CV1, SteamVR home_

Yes i have the exact same problem as well on my CV1. It is as if the view area does not follow the motion compensation tracker. Does anyone else have this problem?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/matzman666/OpenVR-InputEmulator/issues/4#issuecomment-343564950, or mute the thread https://github.com/notifications/unsubscribe-auth/AceMU2bS13yWAQ_y9pavttv6pzEC8ZADks5s1KSMgaJpZM4M2T90 .

clyevo commented 6 years ago

TripRodriguez commented 2 hours ago Same here when I tried with DCS World. Worked fine on Vive but had this problem with RIft. Running DCS World this way for me required using Revive so that might be related.

Out of curiosity, has anyone had this issue when using a Rift through SteamVR WITHOUT Revive? I'd like to test at some point by installing the Steam version of DCS World so I can try it without Revive being in the mix, but I only own one aircraft on the steam version.

I was asking you the same thing in xsimulator.net forum. But so far i ve tried assetto corsa without the revive with CV1 and its the same thing. And the same thing if you use in steam vr home (not in any game), by manually rotating the tracker. I think its how oculus runtime works which translates improperly into openvr. Odd enough not many users with CV1 testing out this motion cancellation plugin. Maybe @matzman666 can shed some light on this matter, whether it can be solved by bugfix or its limitation of oculus runtime.

spit40 commented 6 years ago

I am using Rift. Playing Aerofly FS2 through SteamVR. Not having any luck with it.

1) SteamVR dashboard is very to navigate with Rift controllers. Its very flaky in responding to selections. 2) Despite shock absorption the bass shakers create a lot of screen jitter in tracker compensation mode 3) Kalman filter mode isn't much fun - fat black border 4) Even in tracker compensation mode it doesn't compensate that well if I bank at a tight angle or pitch severely - I can create brackets to move the placement of the tracker/controller nearer my head but it doesn't seem worth it given 1-3

Hopefully I'll have dumped Rift for Pimax in the next few months, but the jitter/shaker thing will still need work. Some noise reduction must be possible with that?

TripRodriguez commented 6 years ago

FYI I bought a Pimax 4K and returned it. YMMV but for me (I have an IPD of 67.5) it was like I was cross eyed all the time. If your IPD is 65 or lower it might work well for you. I think the physical IPD of the 4K is less than 64mm so people with above average IPD are the ones who suffer. Also it was uncomfortable (cheap foam) and it seemed like ASW or ATW or both didn't work so low frame rates were a bigger problem. Last I heard the Pimax 8K had bigger issues than the 4K.

On Mon, Nov 13, 2017 at 4:50 PM, spit40 notifications@github.com wrote:

I am using Rift. Playing Aerofly FS2 through SteamVR. Not having any luck with it.

  1. SteamVR dashboard is very to navigate with Rift controllers. Its very flaky in responding to selections.
  2. Despite shock absorption the bass shakers create a lot of screen jitter in tracker compensation mode
  3. Kalman filter mode isn't much fun - fat black border
  4. Even in tracker compensation mode it doesn't compensate that well if I bank at a tight angle or pitch severely - I can create brackets to move the placement of the tracker/controller nearer my head but it doesn't seem worth it given 1-3

Hopefully I'll have dumped Rift for Pimax in the next few months, but the jitter/shaker thing will still need work. Some noise reduction must be possible with that?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/matzman666/OpenVR-InputEmulator/issues/4#issuecomment-344070377, or mute the thread https://github.com/notifications/unsubscribe-auth/AceMUxgs_Ynagaw7edQBOuJGkbeypZXJks5s2LmWgaJpZM4M2T90 .

clyevo commented 6 years ago

TripRodriguez commented 16 hours ago Last I heard the Pimax 8K had bigger issues than the 4K.

What is the main problem with pimax 8k? I am sure it is better than oculus and vive right?

spit40 commented 17 hours ago I am using Rift. Playing Aerofly FS2 through SteamVR. Not having any luck with it.

SteamVR dashboard is very to navigate with Rift controllers. Its very flaky in responding to selections. Despite shock absorption the bass shakers create a lot of screen jitter in tracker compensation mode Kalman filter mode isn't much fun - fat black border Even in tracker compensation mode it doesn't compensate that well if I bank at a tight angle or pitch severely - I can create brackets to move the placement of the tracker/controller nearer my head but it doesn't seem worth it given 1-3 Hopefully I'll have dumped Rift for Pimax in the next few months, but the jitter/shaker thing will still need work. Some noise reduction must be possible with that?

Isnt there settings for noise/sensitivity under one of the motion cancellation mode? I don get that problem because no basshaker so the main issue for me was that the rotational compensation didnt work and instead show the black edges of the view area.

spit40 commented 6 years ago

There's a fundamental here that maybe I'm missing. Is this whole emulator dependent on a tracker/touch /device as the reference? There are other modes but where do they get the reference data from?

TripRodriguez commented 6 years ago

http://www.tested.com/tech/784924-projections-episode-24-pimax-8k-vr-headset-hands-/

On Tue, Nov 14, 2017 at 9:50 AM, clyevo notifications@github.com wrote:

TripRodriguez commented 16 hours ago Last I heard the Pimax 8K had bigger issues than the 4K.

What is the main problem with pimax 8k? I am sure it is better than oculus and vive right?

spit40 commented 17 hours ago I am using Rift. Playing Aerofly FS2 through SteamVR. Not having any luck with it.

SteamVR dashboard is very to navigate with Rift controllers. Its very flaky in responding to selections. Despite shock absorption the bass shakers create a lot of screen jitter in tracker compensation mode Kalman filter mode isn't much fun - fat black border Even in tracker compensation mode it doesn't compensate that well if I bank at a tight angle or pitch severely - I can create brackets to move the placement of the tracker/controller nearer my head but it doesn't seem worth it given 1-3 Hopefully I'll have dumped Rift for Pimax in the next few months, but the jitter/shaker thing will still need work. Some noise reduction must be possible with that?

Isnt there settings for noise/sensitivity under one of the motion cancellation mode? I don get that problem because no basshaker so the main issue for me was that the rotational compensation didnt work and instead show the black edges of the view area.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/matzman666/OpenVR-InputEmulator/issues/4#issuecomment-344282134, or mute the thread https://github.com/notifications/unsubscribe-auth/AceMU4UqkGBUEd0BCMFBV1WRk-jKB9N9ks5s2aiigaJpZM4M2T90 .

vanderhoe commented 6 years ago

What about mixed reality HMD's, like the Microsoft thing, or Lenovo Explorer. These make their spatial reference through analyzing HMD-mounted cameras' input, which means there are no beacons/sensors that you could mount on the rig. This, in turn, means that we need to isolate the rig's movements in space and subtract them from the HMD's perception of the user's 3D vector. Any ideas? Any plans to add that to the VR Emulator/Plug-In?

Thanks

Wagnard commented 6 years ago

@matzman666 Thanks for the attempt to fix the oculus rift touch. Sadly it didn't work for me. I did go to the analog input remapping page of the joystick axis and selected "Ignore Snap To Neutral Position" and "Button Press Deadzone Fix" Both of theses didn't do anything when moving the controller or pressing a button. Of course, the good controller was selected.

kblood commented 6 years ago

@Wagnard I am not sure this fix does what you think it does. It wont fix the menus in Fallout 4 VR... although it seems like it should. It does however fix other problems in the game. The menus will remain awkward to use. F.ex. I could not pick up items, instead the game decided to hold the item. It is supposed to go into the inventory though. Items overall and such becomes much easier to use with this Oculus Fix.

bastiuscha commented 6 years ago

After the last steam VR update (yesterday) my old version of input emulator, did not work anymore. I started motion chancellation, no error message... but it did not do the job. So i today loaded the new version from here to test. Now i have a error message! "could not set device mode: device not found!" What can i do? Sometimes the is instead of "device not found" -> "unknown error".

Until yesterday, that tool worked awesome all the time.

matzman666 commented 6 years ago

Now i have a error message! "could not set device mode: device not found!"

The latest SteamVR update broke Input Emulator. I still need some time to adapt to the changes in the driver API. But Valve was nice enough to provide a separate beta branch that is still compatible with Input Emulator. Till the next version of Input Emulator is released use this branch.

bastiuscha commented 6 years ago

Thank you very much! Noorbeast still helped me out. You're right... with "openvr-inputemulator-temporary" it works again. ^_^

bastiuscha commented 6 years ago

After a long testing day, i can say, this beta branch ist very unstable on my win7. My vive stop working many times, short after start steam VR. For the moment i can life with that.... i have to ;D

evolaco commented 6 years ago

Is there a way to fix the yaw? every time the structure turns with the loss traction there are black stripes on the sides as if the screen were moving, that makes the cancellation totally useless

Wagnard commented 6 years ago

This issue seems to happen only with the oculus rift.

evolaco commented 6 years ago

and has a solution?

TripRodriguez commented 6 years ago

Nope. My solution was I switched to Vive.

-----Original Message----- From: "evolaco" notifications@github.com Sent: ‎3/‎23/‎2018 4:01 PM To: "matzman666/OpenVR-InputEmulator" OpenVR-InputEmulator@noreply.github.com Cc: "TripRodriguez" corvairgrymm@gmail.com; "Comment" comment@noreply.github.com Subject: Re: [matzman666/OpenVR-InputEmulator] Add support for motioncancellation (#4)

and has a solution? — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

evolaco commented 6 years ago

Can not cancel the cancellation of yaw with the software? buy the touch just for this ..

TripRodriguez commented 6 years ago

It's not a yaw problem, the plugin just doesn't work properly with the Oculus SDK. It has much more problem than just this, yaw just happens to be the one causing you the biggest problem currently.

On Fri, Mar 23, 2018 at 6:17 PM, evolaco notifications@github.com wrote:

Can not cancel the cancellation of yaw with the software? buy the touch just for this ..

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/matzman666/OpenVR-InputEmulator/issues/4#issuecomment-375812983, or mute the thread https://github.com/notifications/unsubscribe-auth/AceMU5RnJTG4l3DkW1dp5FCCHG87XsO1ks5thXSRgaJpZM4M2T90 .

evolaco commented 6 years ago

and is it working to make it work with oculus or is it a problem that will never be solved?

apointner commented 6 years ago

Hello matzman666. It may sounds crazy, but i like to buy the vive pro, if motion cancelling works there (with dcs world). Can you confirm that? I´m absolut dependant on your App, cause i need to counter 360° Roll and Pitch Axis Movement.

clyevo commented 6 years ago

i hope it works for pimax vr vive pro soooo expensive

On Tue, Apr 24, 2018 at 6:23 AM, WerkSchmiede notifications@github.com wrote:

Hello matzman666. It may sounds crazy, but i like to buy the vive pro, if motion cancelling works there (with dcs world). Can you confirm that? I´m absolut dependant on your App, cause i need to counter 360° Roll and Pitch Axis Movement.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/matzman666/OpenVR-InputEmulator/issues/4#issuecomment-383742084, or mute the thread https://github.com/notifications/unsubscribe-auth/AGyS0at4d97iECl8tZa5Q9Jwnye5STk7ks5trlRygaJpZM4M2T90 .

bastiuscha commented 5 years ago

@matzman666 I know, that is not the perfect place, but i don't know how to contact you in a other form. I asked different people with experience, but no one had a clue. I searched for a possibility, to disable tracking of the vive hmd. I use your motion cancellation tool for my motion rig, but i can't use a butt kicker. I tryed all.....but my rig transfer the oscillation always to my tracker. That make it impossible, to become a acceptable result. For now, i simply disable the vibrations. But i think, i not really need roomtracking. I'm strapped anyway and can't move. So i think: why not turn my vive to a oculus go like "tracking"? :) Do you see a possibility to do so? I heard, the pimax tool have this feature. Your help could be great. sry for my english

edit: of course i mean only room tracking. the head tracking (gyro stuff) i need :)

clyevo commented 5 years ago

don forget the gyro will also be affected by the butt kicker

bastiuscha commented 5 years ago

Of course, i can forget. :D My seat vibrate really strong. And i can set the vibrations stronger, than "real", but my head is not vibrating. So, the gyro is not really affected.

TripRodriguez commented 5 years ago

The Nov. 27th SteamVR update seemed to break this for me, anyone else? If OVR InputEmulator is installed I get an error message and steamVR goes into "Safe Mode". While in safe mode trying to set a controller function in the dropdown gives and "unknown error" popup.

bastiuscha commented 5 years ago

I had the same issue... many people have problems with save mode, since the last update. But this is self-sufficient from the input emulator. I know other people with that problem too...without that tool. For me, after a revive update, it worked again. I have no idea was it that the reason, or not.