simphax / Touchmote

Touchmote
GNU General Public License v3.0
114 stars 32 forks source link

Deadzone for Wiimote Pointer #65

Closed Papermanzero closed 1 year ago

Papermanzero commented 8 years ago

Currently Touchmote misses adjustments for a wiimote pointer deadzone. The sensitivity of the pointer is too high to play certain games like first person shooters or strategy games. A IR pointer deadzone ensures that, the mouse or touch controls wouldn't jerk all the time. GlovePie scripts implemented such a mechnism. Range Functions: http://glovepie.org/w/index.php?title=Preliminary_Documentation_v0.45 Script with Deadzone: http://glovepie.org/forum/viewtopic.php?f=6&t=2164

1seam1 commented 4 years ago

Nice, can do. I'll check these out later on when I get off work.

1seam1 commented 4 years ago

Ok, using the latest build currently and deleted my previous config file. I matched the settings you had listed above:

"test_deltaAccel": true, "test_deltaAccelMulti": 10.0, "test_deltaAccelMinTravel": 0.1, "test_deltaAccelEasingDuration": 0.0, "fpsmouse_deadzone": 0.01, "fpsmouse_speed": 25,

Out of these, changing "test_deltaAccelMulti" from .4 to 10.0 made a big difference and made things much more playable I feel (testing with quake 3). And changing "test_fpsmouseOffset": 0.25, to 0.01 also seemed to help. I have been keeping "fpsmouse_speed" at about 20-25. Still tweaking things a little.

Ryochan7 commented 4 years ago

I have tested upping the test_deltaAccelMulti setting to 6.0 and that does feel a bit better. The extra pull can be felt though. The default will stay at 4.0 for now. Unfortunately, testing that setting showed a bug that I made with build 20191125. A bad copy paste caused the new test_smoothingWeight setting to actually change the value of test_deltaAccelMulti. Looking at your previous post, you have encountered the bug. Here is a fixed build. Please change the test_deltaAccelMulti setting in settings.json again after replacing the exe.

Touchmote_20191127.zip https://drive.google.com/file/d/1BBMl0kJ5O2HQ2S8hpLbuV84LGj9IIzMO/view?usp=sharing

Touchmote_nouiAccess_20191127.zip https://drive.google.com/file/d/1pjb6Zorhw2DzeiN2Zca7ks89tzwHMtFy/view?usp=sharing

Also, the old test_fpsmouseOffset value was set at 0.09236 when it was a constant in the code. One other thing that I did not mention before is that the value can only be in the range of 0.0 to 1.0.

1seam1 commented 4 years ago

Ok offset at .25 is the better way to go for sure. I gotta say, this is working pretty damn good. This is the config I am using. Lemme know if you think I should change anything for better performance:

"test_deltaAccel": true, "test_deltaAccelMulti": 10.0, "test_deltaAccelMinTravel": 0.1, "test_deltaAccelEasingDuration": 0.0, "test_regionEasingXDuration": 0.025, "test_deltaAccelMaxTravel": 0.5, "test_regionEasingXOffset": 0.8, "test_smoothingWeight": 0.4, "test_fpsmouseOffset": 0.25, "pointer_positionSmoothing": 3, "fpsmouse_deadzone": 0.01, "fpsmouse_speed": 20, "touch_touchTapThreshold": 40, "touch_edgeGestureHelperMargins": 30, "touch_edgeGestureHelperRelease": 60, "xinput_rumbleThreshold_big": 200, "xinput_rumbleThreshold_small": 200

Ryochan7 commented 4 years ago

Now that I am mostly satisfied with the recent progress, I would like to attempt to convert this to the 1.0 b15 release. The inclusion of the 1 Euro Filter is interesting but it will be one of the hardest challenges to overcome for getting a similar setup working. 1 Euro Filter should provide better smoothing than vanilla 1.0 b14 though. I guess I could strip out the filter and go back to using a weighted average if I still like that better. I have not installed the b15 release yet so maybe this won't be feasible.

Ryochan7 commented 4 years ago

Ended up omitting the use of the 1 Euro Filter after all. The filter seemed to not be configurable by default and the values used for the variables felt too stiff for my liking. It might be worth experimenting with it later but the weighted average approach is good enough for me. I am considering migrating Touchmote to use ViGEmBus rather than ScpVBus as that is one update that Touchmote could really use.

Touchmote_1.0b15_20191213.zip https://drive.google.com/file/d/1JLBh6vmqiMzNY1jLAzkScB0dLt6gM5od/view?usp=sharing

Touchmote_1.0b15_nouiAccess_20191213.zip https://drive.google.com/file/d/1jk5ZODbEBQl42Kewpvv0JKCMYJEp8bUf/view?usp=sharing

Forked code https://github.com/Ryochan7/Touchmote/tree/ryochan7

Settings

"pointer_FPS": 100,
"test_deltaAccel": true,
"test_deltaAccelMulti": 4.0,
"test_deltaAccelMinTravel": 0.04,
"test_deltaAccelEasingDuration": 0.08,
"test_regionEasingXDuration": 0.24,
"test_deltaAccelMaxTravel": 0.425,
"test_regionEasingXOffset": 0.8,
"test_smoothingWeight": 0.3,
"test_fpsmouseOffset": 0.25,
"pointer_positionSmoothing": 2,
"fpsmouse_deadzone": 0.018,
"fpsmouse_speed": 35,
Papermanzero commented 4 years ago

Maybe considering the switch joy cons would be also cool. In general touchmote needs to be reworked imo. :)

1seam1 commented 4 years ago

Ended up omitting the use of the 1 Euro Filter after all. The filter seemed to not be configurable by default and the values used for the variables felt too stiff for my liking. It might be worth experimenting with it later but the weighted average approach is good enough for me. I am considering migrating Touchmote to use ViGEmBus rather than ScpVBus as that is one update that Touchmote could really use.

Touchmote_1.0b15_20191213.zip https://drive.google.com/file/d/1JLBh6vmqiMzNY1jLAzkScB0dLt6gM5od/view?usp=sharing

Touchmote_1.0b15_nouiAccess_20191213.zip https://drive.google.com/file/d/1jk5ZODbEBQl42Kewpvv0JKCMYJEp8bUf/view?usp=sharing

Forked code https://github.com/Ryochan7/Touchmote/tree/ryochan7

Settings

"pointer_FPS": 100,
"test_deltaAccel": true,
"test_deltaAccelMulti": 4.0,
"test_deltaAccelMinTravel": 0.04,
"test_deltaAccelEasingDuration": 0.08,
"test_regionEasingXDuration": 0.24,
"test_deltaAccelMaxTravel": 0.425,
"test_regionEasingXOffset": 0.8,
"test_smoothingWeight": 0.3,
"test_fpsmouseOffset": 0.25,
"pointer_positionSmoothing": 2,
"fpsmouse_deadzone": 0.018,
"fpsmouse_speed": 35,

Nice! Good work, I'm sure a lot of people will appreciate this.

Ryochan7 commented 4 years ago

I personally would be more interested in the Switch Pro controller than the Joy Cons. Making a playable Wiimote setup has been an interesting challenge. It is too bad that Motion Plus support is almost non-existent in Windows as I prefer gyro controls over using IR. It would probably be better to eventually have a different program available but it would be useful to keep Touchmote alive for a while. There are still more experiments to perform.

Currently, my main game controller is the DualShock 4 and I have been the maintainer of DS4Windows for a while. My experiments with working on DS4Windows has opened up many extra control options that Steam does not perform well IMO. One recent addition was usable Mouse-like Joystick support for the gyro; the Steam version is extremely wonky to me. Using it a bit now for playing Halo Reach as the game does not support mixed Xinput + KB+M input.

Ryochan7 commented 4 years ago

Updated build. This version is a departure from vanilla Touchmote. Changes:

You will need to copy over the bundled DLL library files to use the latest build. Also, make sure you have Visual C++ Redistributable 2017 (x64) installed on your PC so Touchmote can connect to ViGEmBus.

Visual C++ Redistributable 2017 (x64): https://aka.ms/vs/15/release/vc_redist.x64.exe

ViGEmBus Installer: https://github.com/ViGEm/ViGEmBus/releases/download/v1.16.112/ViGEmBus_Setup_1.16.115.exe

Touchmote_b15_vigem_20191216.zip: https://drive.google.com/file/d/1UOLIm7Lo1uaMfQytgRed29tUl8gBdvYL/view?usp=sharing

Touchmote_b15_vigem_nouiAccess_20191216.zip: https://drive.google.com/file/d/1jg_39cv10fsTY0N8TU-A_NSnmbIhOSon/view?usp=sharing

Code: https://github.com/Ryochan7/Touchmote/tree/ryochan7

Setting changes:

"test_fpsmouseOffset": 0.36,
1seam1 commented 4 years ago

awesome, ill test this out soon

Ryochan7 commented 4 years ago

I just encountered a problem myself so I should point it out. I recently had to reinstall Windows 10 so I had to download the zipped archive of the changes. Upon getting everything set up, I got an error in the app stating that an object could not be initialized.

The cause was due to the security block that Windows likes to put on downloaded zipped files; can't remember what the block is called exactly but I have dealt with this issue in DS4Windows in the past. There are two ways to get around the issue. First, if using the built-in zip extractor in Explorer, make sure to go to the zip file properties first and check the "Unblock" box under General > Security. The other way is just to use 7-Zip to unzip the file as it seems to ignore that flag during extraction.

I guess my recommendation would be to use 7-Zip to extract the zip archive file.

Ryochan7 commented 4 years ago

Almost had a hard drive crash so it will be best to post updated settings now before I lose them. Big changes are an increased mouse offset, decreased min travel (test_deltaAccelMinTravel) for delta acceleration, and decreased smoothing.

Full settings.json file: https://gist.github.com/Ryochan7/4cc87d8f89fe1f49dd7db8889b2a804e

Custom settings portion:

"pointer_FPS": 100,
"test_deltaAccel": true,
"test_deltaAccelMulti": 4.0,
"test_deltaAccelMinTravel": 0.02,
"test_deltaAccelEasingDuration": 0.2,
"test_regionEasingXDuration": 0.24,
"test_deltaAccelMaxTravel": 0.425,
"test_regionEasingXOffset": 0.8,
"test_smoothingWeight": 0.25,
"test_fpsmouseOffset": 0.65,
"pointer_positionSmoothing": 2,
"fpsmouse_deadzone": 0.018,
"fpsmouse_speed": 35,
Ryochan7 commented 4 years ago

From now on, I will be distributing 7-Zip archives rather than normal zip archives. I have just packaged the previous build into a 7z file. Using 7-Zip is required to extract the contents of the file but I would expect most people to have 7-Zip installed on their machines anyway.

A new build will probably be released fairly soon but I don't have the dev tools to build Touchmote at the moment. I found an error with the button to Y axis mapping routine for the ViGEm build. The axis gets inverted. Found out from using the Boost mechanic in Star Wars Ep. 1 Racer; hold Up to charge meter and then press Boost button.

Touchmote_b15_vigem_20191216.7z: https://drive.google.com/file/d/16FIDx227AB-1ye31iY2kPfTooBuMePvs/view?usp=sharing

Touchmote_b15_vigem_nouiAccess_20191216.7z: https://drive.google.com/file/d/11cO8p-RWZg8lG9eEs_0H7xVeUvg8aYxg/view?usp=sharing

1seam1 commented 4 years ago

nice, thanks for the builds

Ryochan7 commented 4 years ago

Updated build. Changes:

Touchmote_b15_vigem_20200120.7z: https://drive.google.com/file/d/1f8BWm9CFuNNLT03d5-hMgPopXNGHOnHL/view?usp=sharing

Touchmote_b15_vigem_nouiAccess_20200120.7z https://drive.google.com/file/d/1voVtv2iYnEHQx2PSTT79yIJhGT9vHEZ0/view?usp=sharing

Papermanzero commented 4 years ago

Don't you want to create an own repository or fork? I mean your work and updates are incredible and it seems you have fun with the project. 😃

Ryochan7 commented 4 years ago

Forked it when I got back into tweaking Touchmote again. Didn't want to lose any changes. It was supposed to be a one time update but autism took a hold of me.

https://github.com/Ryochan7/Touchmote/tree/ryochan7

1seam1 commented 4 years ago

Can you add a way to map mouse middle button?

Ryochan7 commented 4 years ago

Updated build. Changes:

Time for a YouTube channel shill. Ended up recording a playthrough of Half-Life 2 played with a Wiimote. Changes to the Touchmote code and my config were made while playing. The last three parts reflect my current progress. Here is a link to part 12 (Follow Freeman!) which is the longest of those three parts.

https://www.youtube.com/watch?v=Iy1jv2hJAj4

Touchmote_b15_vigem_20200209_2.7z: https://drive.google.com/file/d/1z47FshiDwOFRw3L0kJfP3DjINFx9AKdy/view?usp=sharing

Touchmote_b15_vigem_nouiAccess_20200209_2.7z: https://drive.google.com/file/d/17nziCYhg8EazFxh_gaj5nn0UNIZGXITr/view?usp=sharing

Changed settings:

"test_regionEasingXDuration": 0.1,
"test_fpsmouseOffset": 0.8,
"fpsmouse_deadzone": 0.021,
Ryochan7 commented 4 years ago

Can you add a way to map mouse middle button?

I didn't know that was not an option. Never had a reason to map it yet. It should be easy to add that functionality.

1seam1 commented 4 years ago

Can you add a way to map mouse middle button?

I didn't know that was not an option. Never had a reason to map it yet. It should be easy to add that functionality.

Yea, I have been having to use glovepie to manually assign the middle mouse button using a tiny script. It would be nice if touchmote just let you do this by default. Not sure why its never been an assignable button like LB and RB. Cool half life video btw, keep up the great work!

Ryochan7 commented 4 years ago

Found out why middle mouse button binding was not possible beforehand. The version of InputSimulator that Touchmote uses has no support for it. There is an updated version of the InputSimulator library that does allow simulating MB but I need to test it out before I commit anything.

https://www.nuget.org/packages/InputSimulatorPlus/

Sorry about not getting to this sooner. Been busy with DS4Windows development. One recent change to DS4Windows can apply to Touchmote as well and it improves app performance quite a bit. Hopefully I can get something done in the next couple of days.

1seam1 commented 4 years ago

No worries, lookin forward to it

Ryochan7 commented 4 years ago

Haven't played with Touchmote much recently. Here are the most recent changes:

Touchmote_b15_vigem_20200316.7z: https://drive.google.com/file/d/1ySSS8CwPqVCyJepNtWCi5knJIHNLaGgD/view?usp=sharing

Touchmote_b15_vigem_nouiAccess_20200316.7z: https://drive.google.com/file/d/17htNZW9JgERh9GPn-74e4JwNFqPYPUBz/view?usp=sharing

Gist for current settings.json: https://gist.github.com/Ryochan7/4cc87d8f89fe1f49dd7db8889b2a804e

todely commented 4 years ago

Hello, You have made a great job ! I’m not the only one to have a problem: After few reboot, touchmote no more start, have to launch the exe many many time before gui come up Any idea ? Thanks !

b0b33140 commented 4 years ago

Hello ! I have a problem with PCSX2 and Demulshooter: The position of the sensor is not taken into account (at the top of my screen), to have the target in the center of the screen I must aim the sensor at the top of my screen. Is it possible to correct this problem with touchmote_b15_vigem_20200316?

Thanks for the improvements made to Touchmote Ryochan7.

Ryochan7 commented 4 years ago

I believe my current version does not use the vertical offset sensor bar setting; I never used it. I would have to check how to include that feature again.

@todely If you are talking about the Run at Windows Startup option (can't remember the actual label for it), that option has been broken for a while due to recent Windows updates. Touchmote requires being run as the administrator and Windows blocks elevated processes from auto-starting using that routine. Touchmote would have to be changed to start from a Task in order to actually be allowed to start at login.

My current experiments have been involving the Switch Pro controller and mapping it as an Xbox 360 controller. I have not touched the Touchmote source code for a while. The last change made was taking the radial distance into account for the fpsmouse output curve rather than per axis displacement. Implementing that feature definitely helped improve mouse control in DS4Windows. I have not packaged a version of Touchmote with that feature as of yet.

kaio01 commented 4 years ago

Hi, im trying to use my wiimote with touchmote + retroarch + beetle psx + time crisis, i have windows 10 64 bit, but if i install 64 bit ver of touchmote it didn't start, only 32 bit version works and i don't know why. After many tests I managed to make the wiimote work with time crisis, but the cursor's sensitivity is too much... unplayable. On retroarch my mouse sensitivity is at 5 (it is the minimum possible in the option menu). So I tried to replace these two files (Touchmote_b15_vigem_20200316.7z and Touchmote_b15_vigem_nouiAccess_20200316.7z ) with mine in the touchmote folder, in two different tests and starting sign.bat first too, but touchmote not start. Maybe because my touchmote is 32bit? Or maybe I have to install something else? Thanks I hope you can help me!

b0b33140 commented 4 years ago

Hi, im trying to use my wiimote with touchmote + retroarch + beetle psx + time crisis, i have windows 10 64 bit, but if i install 64 bit ver of touchmote it didn't start, only 32 bit version works and i don't know why. After many tests I managed to make the wiimote work with time crisis, but the cursor's sensitivity is too much... unplayable. On retroarch my mouse sensitivity is at 5 (it is the minimum possible in the option menu). So I tried to replace these two files (Touchmote_b15_vigem_20200316.7z and Touchmote_b15_vigem_nouiAccess_20200316.7z ) with mine in the touchmote folder, in two different tests and starting sign.bat first too, but touchmote not start. Maybe because my touchmote is 32bit? Or maybe I have to install something else? Thanks I hope you can help me!

I updated Visual C ++ to make this version work: https://support.microsoft.com/fr-fr/help/2977003/the-latest-supported-visual-c-downloads

Ryochan7 commented 4 years ago

Visual C++ 2015-2019 Redistributable is required due to the custom Nefarius.ViGEm.Client.dll file. That DLL file is the same library that is used in the current DS4Windows.

https://aka.ms/vs/16/release/vc_redist.x64.exe

Also, I have only put out 64 bit builds of my custom version. Hardly anybody with a modern system should have a need for a 32 bit build.

kaio01 commented 4 years ago

Thanks, now everything works good. My last problem, i use Tsheller to autorun Hyperspin at startup but if I also start Touchmote at startup, touchmote run but Hyperspin not. What can i do? thanks!

kaio01 commented 4 years ago

i fix it by run touchmote directly from hyperspin from a .bat file. A queston: everytime i aim out of my screen the pointer go crazy, by doing this several times the pointer returns to normal. What can i change in settings.json to make it better? thanks

Ryochan7 commented 4 years ago

What do you mean by the pointer goes crazy? If you mean it keeps going for a period of time then that is supposed to happen. FPS Mouse is set up to keep moving the mouse at the previous mouse speed for a period of time after the Wiimote goes out of range of the sensor bar.

If the cursor changes direction or does a massive jump then maybe the Wiimote has detected a different light source and Touchmote has switched to using that.

The code for FPS Mouse mode has been changed to take sensor bar position into account. It roughly works the same way it does with the Touch Cursor mode. With where I normally position my sensor bar, using Top for sensor bar position actually seems to feel better than using Center. Hopefully I will get a new build packaged in the next day or so.

Ryochan7 commented 4 years ago

Upon experimenting some more, it seems the problem is more an issue with the rotation code than anything else. If pointer_considerRotation is set to false, the problem never pops up.

kaio01 commented 4 years ago

Thanks for the answer i Will try to set It to false. Another question, Is It normal that pcsxr and touchmote works only if my mouse It's plugged in? If i unplug my mouse, touchmote works in Windows but not in pcsxr. What can i do? Thanks ♥️

Ryochan7 commented 4 years ago

Updated build. Changes.

Touchmote_b15_vigem_20200528.7z: https://drive.google.com/file/d/1z3UcPO7E8EN3GEC8f9Dy1RFRbBA7uVaq/view?usp=sharing

Touchmote_b15_vigem_nouiAccess_20200528.7z: https://drive.google.com/file/d/1RMLrfkdiMYfng7OS809N6SUpYJHCJJ53/view?usp=sharing

@kaio01 Not sure why that would happen. Haven't used PCSXR in a long time.

b0b33140 commented 4 years ago

Thank you for your work Ryochan7, the vertical offset to pointer is the next step?

Ryochan7 commented 4 years ago

Sensorbar compensation has always been available for Touch Cursor mode. Looking at the Git log, it shows that I made a change specifically for FPS Mouse mode around 20191215 that took the option away from FPS Mouse mode. The latest build added the option back to FPS Mouse mode. My sensor bar is slightly elevated and using Top for sensorbar compensation actually feels better with my setup. Originally I thought I would not end up using the option.

https://github.com/Ryochan7/Touchmote/commit/046fc4cb6caf3b12edddd2e9c48eb944c10762fb#diff-d91425d61d2ecaf7d67f91fe13e6b8ff

I ended up reinstalling Windows yesterday after running into computer problems from a power surge; been having weird power issues since around the time lockdown started. Ended up finding out later that the reinstall was not really necessary so I just gave myself more work to do. It will take some time to get my dev environment and Wiimote setup back to the way I had it before. Was playing some Half-Life 2: Update and Bulletstorm beforehand; hopefully at least the HL2:U save is in Cloud storage.

b0b33140 commented 4 years ago

I do not understand. When I change the value sensor bar position on center top or bottom nothing changes. I tried to set the value wiimote> to point on touch cursor, mouse cursor or left stick but the compensation of the sensorbar does not work.

Screenshot PCSX2 config touchmote sensor pos

Good luck with the extra work because of the overvoltage.

kaio01 commented 4 years ago

@Ryochan7 Thanks now everthing works Better! I have only a litle problem now, how to make pointer allignment Better? Mine sometimes It is too much up, then too much on the right, i fix the top/bottom allignment by change pointer_sensorBarPosCompensation to 0.5. Do you have any advice to tell me? Thanks.

kaio01 commented 4 years ago

Every time i aim out of my screen, the pointer allignment change. After i do this many times i find the right allignment, It seems that if i move my pointer from center position, then It have difficult to find the default allignment. Can you help me? Thanks

kaio01 commented 4 years ago

And how to change touchmote sensibility? Thanks

Ryochan7 commented 4 years ago

The GUI offers hardly any options for editing the cursor sensitivity. You have to manually edit variables in the settings.json file in order to adjust the sensor bar margins and FPS Mouse speed variables. The variables with names of pointer_* control various variables related to the sensor bar sensitivity and Touch Cursor mode. Variables with names of test_* are specific to my changes to FPS Mouse mode.

Ryochan7 commented 4 years ago

@b0b33140 If nothing else, maybe the event that is supposed to tell other routines to re-calculate the sensor bar margins is not being fired. You might be forced to restart Touchmote in order for the sensor bar position setting to take effect. The event fires on my machine though.

Also, it does not matter much but I was able to recover my saves and I beat both games using Touchmote.

Ryochan7 commented 4 years ago

Updated build. Changes:

Touchmote_b15_vigem_20200616.7z: https://drive.google.com/file/d/1N7HBGq3Jd8B-I2YOfpXw2okFVxwVnIKO/view?usp=sharing

Touchmote_b15_vigem_nouiAccess_20200616.7z: https://drive.google.com/file/d/1z8mpvzzU5Shn92vfatv7yUnNVQwtRLpG/view?usp=sharing

freecodecampster commented 3 years ago

Updated build. Changes:

  • Added SuppressUnmanagedCodeSecurity attribute to NativeMethods class in HidLibrary. Big performance increase
  • Bundled updated HidLibrary DLL file
  • Updated Touchmote to use newer ViGEm.NET client library and API
  • Bundled updated Nefarius.ViGEm.Client DLL file

Touchmote_b15_vigem_20200616.7z: https://drive.google.com/file/d/1N7HBGq3Jd8B-I2YOfpXw2okFVxwVnIKO/view?usp=sharing

Touchmote_b15_vigem_nouiAccess_20200616.7z: https://drive.google.com/file/d/1z8mpvzzU5Shn92vfatv7yUnNVQwtRLpG/view?usp=sharing

Ryochan7 your build was crashing on a newly installed Windows 10. I was missing some prerequisites that I'll put here in case anyone else has the same problem. Thanks very much for your work - it works beautifully in a couple of games I've tried.

https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads Install Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019 install both x86 and x64 versions.

https://github.com/ViGEm/ViGEmBus/releases Install ViGEmBus

http://www.touchmote.net/ Install Touchmote v1.0b15_x64

Then install Ryochan7's VigEm based update by overwriting files in C:\Program Files\Touchmote with files in archive Touchmote_b15_vigem_nouiAccess_20200616.7z.

Wiimote Nunchuk 360 Controller Windows (button n-1 in some games) Notes
A   Right Bumper Button 6  
B   Right Trigger Z- Axis  
Home   Guide Win-G Opens Game Bar
Left   X Button 3  
Right   B Button 2  
Up   Y Button 4  
Down   A Button 1  
Plus   Start Button 7  
Minus   Back Button 8  
One   Left Stick Press Button 9  
Two   Right Stick Press Button 10  
Tilt X-   Right Stick Left X- Rotation Deadzone 0.01 Scale 1.00 (sensitivity how much movement required to reach max) Threshold 0.30 (how much movement required, 1 is like 90 degrees )   Same for other tilt axis
Tilt X+   Right Stick Right X+ Rotation  
Tilt Y-   Right Stick Up Y- Rotation  
Tilt Y+   Right Stick Down Y+ Rotation When you assign just Y- and Y+ to Stick Up and Down you have to hold the wiimote horizontally
Tilt Z-   Right Stick Up Y- Rotation  
Tilt Z+   Right Stick Down Y+ Rotation When you assign both Y and Z axis to Stick Up and Down you can hold the wiimote vertically like a joystick
  C Left Bumper Button 5  
  Z Left Trigger Z+ Axis  
  Stick Up Left Stick Up Y+ Axis  
  Stick Down Left Stick Down Y- Axis  
  Stick Left Left Stick Left X- Axis  
  Stick Right Left Stick Right X+ Axis  
  Tilt X- Left Hat Left Deadzone 0.40 Scale 1.00 (how much movement to reach max value) Threshold 0.70 (how much movement required to send values, 1 is like 90 degrees )
  Tilt X+ Right Hat Right Deadzone 0.40 Scale 1.00 (sensitivity) Threshold 0.70 (how much movement required to send values, 1 is like 90 degrees )
  Tilt Y- Up Hat Up Deadzone 0.40 Scale 1.00 (sensitivity) Threshold 0.50 (how much movement required to send values, 1 is like 90 degrees )
  Tilt Y+ Down Hat Down Deadzone 0.40 Scale 1.00 (sensitivity) Threshold 0.50 (how much movement required to send values, 1 is like 90 degrees )
Nostradanus commented 3 years ago

Yo, hope it's not considered a necro... it might be a stupid question but is it important where Touchmote is installed? Long story short it's not in my program files folder and I'm starting to wonder if ryochan's fork isn't backing up to a "safe" settings.json because I don't feel like I'm seeing any changes when I edit the deadzone or the sensitivity. The cursor still feels a bit jittery, though admittedly way lesser than with the mode 2 from the Dolphin Maybar.

Apart from that, the middle mouse button support is great!

Ryochan7 commented 3 years ago

It has been a while since I used Touchmote. I think Touchmote installs itself to C:\Program Files\Touchmote\Touchmote.exe by default.

Been experimenting with other devices lately. I ended up making mappers for the Switch Pro controller, JoyCons, and most recently the DualSense. There hasn't been a game that I have wanted to try to play with the Wiimote lately.

carolis15 commented 3 years ago

Hi, I hope everyone is okay. In recent months there have been changes in some games to be able to use raw input, with this change Touchmote has become a fantastic way to play light gun games. The problem is that the mouse pointer is recognized as "unknown device", this does not have any problem for one player, but when you try to play with two wiimotes, the two crosshairs move at the same time because the game cannot differentiate between the two wiimotes. I was wondering if there is something that can be modified to assign each wiimote a different name/ID. Thank you