Commit graph

64 commits

Author SHA1 Message Date
David Khachaturov
bbb34d6ee7 - Implemented Gyro to Analog Trigger Inputs 2020-05-19 10:21:18 +01:00
David Khachaturov
5857a44f65 - Fixed joycons not being properly detached with the new lack of input lag 2020-05-17 17:44:12 +01:00
David Khachaturov
7b722dddb3 - Fixed DS4 joycon joining bug 2020-05-17 17:11:17 +01:00
Robert Borg
cd659366b5
ensures we get the latest available HID data (#345)
Fixed input delay
2020-05-17 16:52:16 +01:00
David Khachaturov
ce3cb236b1 - LongPowerOff fix (so that it actually uses the AppSettings), and for Pro Controller
- Began trying out BT pairing modes
2020-05-09 18:35:21 +01:00
Abk16
3b10bb609f
JoyCons power-off feature (#334)
* Tracking button down timestamps (for long press detection)
* Added joycons power-off functionality
2020-05-09 16:54:11 +01:00
David Khachaturov
fb9240d568 - small rumble motor fix 2020-05-09 16:53:43 +01:00
David Khachaturov
b7b8309995 - Fixed vibration not picking up SmallMotor (simple addition for now) 2020-05-07 15:50:07 +01:00
David Khachaturov
38609c0fd7 - Changed things back to non-DS4 gyro times 2020-05-06 13:41:57 +01:00
David Khachaturov
7d75f396d7 - Changed the way rumble is handled
- thanks to spite-triangle in issue #314
 - Changed some rumble defaults
 - caught some more ViGEm exceptions
2020-05-06 13:26:34 +01:00
David Khachaturov
a0a0a21646 - Fixed DS4 Gyro timestamp field 2020-04-24 10:13:37 +01:00
David Khachaturov
da9680eb9a - Proper gyro settings (may need re-looking at, but good enough right now) 2020-04-22 21:01:01 +01:00
David Khachaturov
cce68c35c3 - Removed Fody and co
- Began working on getting gyro into the right format after getting the driver to work!
2020-04-22 18:56:16 +01:00
David Khachaturov
0577c68b43 - DS4 implementation changes
- Using my own build of ViGEmClient with extra functions
2020-04-20 15:14:50 +01:00
David Khachaturov
6bd8bc0ea9 - Updated to latest ViGEm.NET 2020-04-19 09:34:19 +01:00
David Khachaturov
58731a78f0 - Added DS4 emulation option (without gyro) for use with Playstation Now or Remote Play.
- Fixed bug where right trigger wouldn't work on pro controllers.
2020-04-18 22:36:50 +01:00
David Khachaturov
4b49cc305f - Fixed gyro and reset_mouse not working when set to left joycon's buttons 2020-04-14 08:43:41 +01:00
David Khachaturov
146a712c06 - Renamed BetterJoyForCemu to BetterJoy
- Fixed joy-to-joy bug (hopefully last)
 - Added drag toggle
2020-04-08 08:47:36 +01:00
David Khachaturov
77913a8562 - Fixed joycon-to-joycon mapping
- thanks TheZBlock
2020-04-07 18:02:24 +01:00
David Khachaturov
2678c8775e - Fixed age-old bug whereby triggers would be wrongly registered in single-joycon mode 2020-04-07 17:47:24 +01:00
David Khachaturov
cd16154e88 - Hopefully fixed lag introduced in v6 2020-04-07 16:55:06 +01:00
David Khachaturov
33ebf58aa3 - Added option to map joy-to-joy 2020-04-07 16:50:01 +01:00
David Khachaturov
e4c0690306 - Implemented active-gyro button 2020-04-07 16:20:56 +01:00
David Khachaturov
d8352d9b34 - Added added ability to drag when mapping left/right/mouse buttons
- Catching VigemBusNotFound exception
 - Added ability to set button for re-centering the gyro
2020-04-07 14:52:04 +01:00
David Khachaturov
1b423d87cc Small Rumble change 2020-04-03 16:31:06 +01:00
David Khachaturov
ca406a99b6 Added special button re-mapping system 2020-04-03 15:53:04 +01:00
David Khachaturov
45baa6360f - Fixed USB high CPU usage (d'oh!)
- Another attempt at fixing USB lag
 - Moved to WindowsInput for mouse movement
 - Linked "Capture" button to Print Screen
2020-04-03 09:19:54 +01:00
David Khachaturov
5e11617fa9 - Probably fixed USB lag?
- Added left-hand mode for mouse movement
- Made Home LED on default
2020-04-02 11:11:02 +01:00
David Khachaturov
e579f4a94e - Added option to use gyro input as mouse
- Changed default of UseHIDG to false
 - Improved start-up and shut-down time
 - Added option to disable motion server
2020-04-02 10:23:48 +01:00
Kurt Yilmaz
ac17d06aa0 Snes Support (#205)
* SNES product ID found, logic partially filled. Icon added.

* Bluetooth working, icon working. Wired still laggy.

* Fixed wired connection and stick centering issues
2019-11-10 14:17:23 +00:00
David Khachaturov
5b7f16a876 Merged with master and kept new updates. 2019-10-21 20:31:39 +01:00
David Khachaturov
035820ba11 - Added single-joycon vertical mode.
- Implemented Trozmagon's null check
2019-10-21 20:27:08 +01:00
unknown
9833aa8a53 Added the ability to toggle the HOME button ring LED on and off 2019-06-12 22:08:54 -06:00
David Khachaturov
a12518886c Formatting clean-up and calibration addition cleanup. 2019-04-27 15:21:06 +01:00
xqdoo00o
45a241dcf6 feat for non-original controller 2019-04-27 20:41:50 +08:00
David Khachaturov
25d3fdbe20 Separate swap buttons out into swapAB and swapXY.
For https://github.com/huphuphup
2019-04-12 13:52:45 +01:00
Idan Weizman
c0db76d738 Fix stick casting overflow. 2019-03-13 09:30:24 +02:00
David Khachaturov
95f1b2bbde Began implementation of 3rd party controller support 2019-02-03 16:16:00 +00:00
Jun Wu
390313b3da Fix Rumble feature for bluetooth devices
When rumble_obj.t >= 0, SendRumble should be frequently called to make
Rumbling actually work.
2019-02-02 21:47:21 -08:00
David Khachaturov
c8e98cc86e Adjusted wait timing to allow for rumble (seems to not have re-introduced lag; more testing needed)
More joycon joining bug-fixing (more like fixing my bad coding)
2019-02-02 15:52:23 +00:00
David Khachaturov
235aca5f75 Allow for more than 1 pair of joycons to join up (could be buggy)
Change some colours
2019-02-02 15:19:03 +00:00
David Khachaturov
c8e0f93d54 Adjusted previous commit to prevent USB timeout 2019-02-02 14:01:14 +00:00
Jun Wu
5dd969da05 Read Joycon inputs in a non-blocking way
This makes sure ReceiveRaw() won't block forever, so Poll() has chance
to SendRumble().

Practically, it seems the Joycons frequently send inputs so it's not
necessary, at least for the bluetooth version I got.
2019-02-02 01:36:28 -08:00
Jun Wu
85f77cb91c SendRumble less frequently to reduce input lag
I was using two Joycons as a single controller. One (often right, sometimes
both, sometimes left) of the Joycons seems to have random lags.
This patch reliably removes the lag for me.

Potentially fixes #32.

More context:

I first excluded the possibility that the Bluetooth connection is lagging,
because when I click the "locate" button, both Joycons can rumble
immediately without lag.

Reading the existing issues seems to suggest something was wrong with
threading. When I tried moving both Joycons' "Poll" to a single thread,
by calling both ReceiveRaw() and other.ReceiveRaw() in a single Joycon
Poll thread, and removing "lock { ...}"s), lag still exists.

I then suspected the I/O loop is too busy so the code does not have time
to consume events in time. By adding some debug prints, I was able to
confirm that at the time the code receives an event (after hid_read),
it was already too late. However, it is strange that a) hid_read almost
always returns immediately, b) a single "poll" still takes a few
milliseconds. Finally, I found "SendRumble" is the culprit causing
the majority of the few milliseconds delay. Therefore the patch.

The 5 seconds is not a scientific choice. It works for me. I don't have
a USB controller to test it right now.
2019-02-02 01:31:17 -08:00
David Khachaturov
a451fa94fc Added battery indicator in the form of a background colour (Green->Orange->Red->Dark Red->Black) and in UdpServer info.
Improved stick calculations. Thanks eWaster.
2019-01-24 18:28:49 +00:00
unknown
95a35e39bd prevent gyro drift on some controllers
On some original Nintendo controllers gyro drift occurs (moves
constantly to the right, for example).

Not dividing the neutral point by 2 seems to fix the problem, and
it doesn't seem to effect other controllers negatively (tested
with 8bitDo N30 pro and SF30 Pro).
2019-01-05 22:52:09 +01:00
David Khachaturov
68b6928d86 Fixed gyro in single joycon mode.
Added tooltip on button.
2018-08-23 16:36:55 +03:00
David Khachaturov
37aba95e81 Added ability to toggle for single/double joycon mode.
Reworked UI further.
Final commit for v5.
2018-08-23 15:48:19 +03:00
David Khachaturov
be3c73bc96 Reworked UI.
Improved USB support.
Improved rumble.

(all in all, the program is becoming actually nice to use)
2018-08-22 12:52:41 +03:00
David Khachaturov
64946ed444 Implemented Progressive Scan. (can leave program running and (dis)connect controllers whenever)
Fixed controllers timing out randomly.
2018-08-18 20:52:34 +03:00