seerge / g-helper

Lightweight Armoury Crate alternative for Asus laptops and ROG Ally. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models
https://seerge.github.io/g-helper/
GNU General Public License v3.0
6.83k stars 247 forks source link

dpi change has no effect on sensitivity unless using an Armoury Crate #2776

Closed seedcrack closed 2 months ago

seedcrack commented 2 months ago

Rules

What's wrong?

My new M3 gen ii mouse is able to change dpi on Ghelper but it has no effect on sensitivity whatsoever. Curently my mouse feels like 400 dpi despite setting it at 800/1600/3200. My workaround on this is installing Armoury, change dpi and uninstall. this however, was short lasted bc it resets to default if I disconnect my mouse

How to reproduce the bug?

My logs should explains it but I'll explain what happened when I first got the mouse and what's my workaround is

  1. connect M3 gen ii mouse to laptop (dpi feels like 1600) (not sure if it was a default or not)
  2. changing dpi (doesn't work)
  3. install Armoury Crate
  4. changing dpi on Armoury (this one's worked) (I set it to 1000) (DPI 2 on Armoury crate)
  5. Uninstall Armoury (the dpi settings carry on)
  6. I tried synchronized the mouse (It does nothing)
  7. Try reconnecting the mouse (dpi seems to reverted to DPI 1 which is 400)
  8. dpi stuck at 400 and Ghelper is unable to change dpi (lightings still works)

Logs

This log starts when I relaunch Ghelper as I write this report log.txt

This log starts when I was messing with dpi settings and install armoury crate at 12:30 log.txt

Device and Model

Asus TUF A15 FA507NV

Additional information.

I have no Armoury crate installed currently I disconnect my mouse in the end For whatever reason this only affects on DPI and all RGB is still working properly I just got this mouse today and this occurs right out of the box, I have Ghelper before buying this Armoury crate is installed to change dpi then uninstalled, the "default" that the mouse reset to when I reconnect seems to based on "DPI 1" on Armoury

Armoury Crate

Uninstalled

Asus Services

None

Version

0.176.0

OS

Windows 11 23H2

seerge commented 2 months ago

@seedcrack hello,

Try this build, it has more verbose logging. GHelper.zip

Behavior will be the same, but please upload a log from it to see what happens in communication with your mouse.

seedcrack commented 2 months ago

log.txt

seerge commented 2 months ago

@seedcrack ok, thanks.

@IceStormNG do you know what could be the reason here ? :|

IceStormNG commented 2 months ago

My only guess is, that the mouse sets DPI differently and whoever requested the mouse didn't test it properly, so the profile is broken now.

In that case, I will need a packet log from AC when it changes the DPI. + Screenshots from AC for the DPI page

Although... the Mouse seems to confirm the change. But it could also be a recent firmware change. ASUS seems to do what they can to break everything

seedcrack commented 2 months ago

image

And where do I get the log files?

seerge commented 2 months ago

@seedcrack ok, then you can try to record what payload AC sends to the mouse when you actually set DPI


Install https://www.hhdsoftware.com/device-monitoring-studio (will require reboot)

  1. Launch Monitoring Studio, pick Asus device with detected Product ID 0x1A9B (for TUF M3 GEN II) from the list and double click on it Screenshot 2024-01-20 163125

  2. Add Packet View to Procesing and click Start Screenshot 2024-01-20 163136

  3. Go to Armoury and change DPI Mouse settings

  4. Check if Monitoring Studio catching a lot of data (Armoury spams it like crazy). If NOT - you probably have selected wrong Asus device on step 2 (so need to re-do it)

  5. In Monitoring Studio select Tools -> Save to Log, and save data Screenshot 2024-01-20 163247

Upload this data here.

seedcrack commented 2 months ago

Ok so the program displays 3 option on my mouse

  1. logged when my mouse has an input
  2. logged when I move my cursor
  3. logged when I change dpi or any mouse settings The 3rd one is probably what you're looking for https://drive.google.com/file/d/1ZA8SN3BwiEPcIWYzut36kqtW-qHxnwBy/view?usp=sharing

image It will only report the specific things on each one

IceStormNG commented 2 months ago

Alright. The mouse does exactly what I do. Except for one packt when changing the DPI profile.

It also seems like this mouse supports DPI colors (at least AC sends them).

GHelper.zip

seedcrack commented 2 months ago

log.txt AC uninstalled only DPI 2 works profile switch doesn't work (probably bc only DPI 2 works)

IceStormNG commented 2 months ago

GHelper.zip

Hm... Then we could try this. Please test this build and check whether DPI profile toggle works correctly now. If not.. I have another option.

seedcrack commented 2 months ago

log.txt DPI profile switch works but they aren't responding to DPI changes Like DPI 1 -> 2 (800) -> (1800) works But changing Dpi 2 to other value doesn't change it accordingly and it (physically) stays at 1800, same with other DPI slot

Okay why is 1800 on this built is way more sensitive than the last? is this intentional? or did you disable DPI or something?

IceStormNG commented 2 months ago

I think I know what is going on here. Can you please test the following:

Do another Armoury crate Packet recording and do the following:

  1. Set the active DPI Profile to the first one and set the DPI to 1000
  2. Then change active DPI profile to the last one and set DPI to the maximum (8000 for your mouse).

I have the feeling ASUS changed the offset for the dpi, which used to start counting at 1, but from the recordings and logs it looks like it starts at 0 for your mouse. Which means the DPI profiles are shifted by one.

seedcrack commented 2 months ago

https://drive.google.com/file/d/1TLKoQTFAaw6yToUDYu7dUnic4N8xEx0U/view?usp=sharing

Also for whatever reason the AC's 1800 DPI doesn't match with my expectation from Ghelper built you sent (the one that only DPI 2 works) and turns out Ghelper's 1800 DPI has the same sensitivity as AC's 1000 DPI as I tested it with a ruler (It took the same distance on my mousepad to move my cursor accross screen)

I also did a test with the latest one you sent, it seems that the DPI profile switch only switch DPI value to the default of each profile (400 / 800 / 1600 / 3200). The DPI 2 does matched with 1600 on AC even though it's supposed to be 800 so you're on the right track I think

IceStormNG commented 2 months ago

@seedcrack can you change DPI in 100 increments or in 50 increments in Armoury Crate? And yes, the DPI profile is 0-based for this mouse while all the others used 1-based.

If it is 50 increments, like it seems from the packet logs, then this build might do it:

GHelper.zip

seedcrack commented 2 months ago

It can do both 50 and 100 increments Everything worked as intended in this build, thank you!

before closing this though, this is gonna be implemented in the next official build right?

seerge commented 2 months ago

@IceStormNG amazing! Thanks

Could it be that DPI not being saved on TUF M4 have same reason (i.e. DPI profiles starting from 0 ) ?

@seedcrack as soon as @IceStormNG will make a PR with changes - i'll merge them and include in next releases of course :)

IceStormNG commented 2 months ago

@IceStormNG amazing! Thanks

Could it be that DPI not being saved on TUF M4 have same reason (i.e. DPI profiles starting from 0 ) ?

Possibly. I can tell once the requestor sent the packet logs.

IceStormNG commented 2 months ago

Pull Request https://github.com/seerge/g-helper/pull/2795 is created

seerge commented 2 months ago

@IceStormNG great, merged and closing this as resolved then