Jump to content

ALPS Touchpad driver with VoodooInput


skyrilhd

Recommended Posts

Happy new year to you all! v1.0.5 has been released which include many changes, hence the long changelog :D.

 

Basically, the TL;DR is:

- official v8 support (SS4 and SS5) (huge thanks to @forte500 for testing)

    - trackstick now works as well (huge thanks to @PMD for testing) 

- in-official V1-V6 support (needs testing)

- sync with the latest acidanthera VoodooPS2 repo

- the driver can be now used from 10.11 (El Capitan) instead of 10.13

 

The update can be found on the releases page:

https://github.com/SkyrilHD/VoodooPS2-ALPS/releases/tag/1.0.5

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • Moderators

thanks @skyrilhd

Big improvement since I 1st started the v8 testing, here's some issue I noticed

1) Trackstick works but tracking speed is a little fast and the middle button doesn't work for scrolling

Tried lowering the speed of the track stick but that made the touchpad speed really slow.

2) Touchpad works for about 15 mins or so and then it'll only go side to side and swiping. It won't go up or down

ctrl+alt+prtscr doesn't seem make any difference

Sleep / Wake - makes no difference

 

Let me know what files you need and I'll attach them

Quote

 

macuser@MacUsers-MBP ~ % kextstat | grep PS2

Executing: /usr/bin/kmutil showloaded

No variant specified, falling back to release

   68    2 0                  0x19000    0x19000    as.acidanthera.voodoo.driver.PS2Controller (1.0.5) 13B152AC-0069-3836-A4F0-081D8C8E806C <13 8 6 5 3 1>

   90    0 0                  0xd000     0xd000     as.acidanthera.voodoo.driver.PS2Keyboard (1.0.5) 209FF404-6B3E-322B-B22C-03A4D1F69333 <68 55 8 6 5 3 1>

   91    0 0                  0x13000    0x13000    com.skyrilhd.PS2Trackpad (1.0.5) A5C8493C-5240-3DCB-A871-11CA091973BB <68 55 6 5 3>

macuser@MacUsers-MBP ~ %

 

 

e7470.ioreg.zip

Link to comment
Share on other sites

@Jake Lo

1)
Can you try the kext below? I cut the speed in half and added scrolling when the middle button is pressed.

 

2)
I know this issue. I'm still trying to figure out why it's happening. Strangely enough, there is no issue at all with the touchpad (the coordinates report fine), but something strange happens with VoodooInput (the y coordinate always reports -2602). I added more debugging code to see where the issue is being caused.

 

This command should be enough for logs:

sudo dmesg > alps.log

 

VoodooPS2Controller-1.0.6-DEBUG.zip

Link to comment
Share on other sites

  • Moderators

Yay! middle button now works for scrolling. The track stick speed is almost perfect.

I said almost because sometimes it overshoots the target but workable.

Is there a way to enable Inertia?

Ok, here's the log for the touchpad issue, hope you will able to find the issue.

The touchpad will stop moving up and down and only go side to side. 

Looking at Fingermgmt.app, the mouse always stick to the bottom, both fingers or 3. 

alps.log.zip

Link to comment
Share on other sites

@Jake Lo

Quote

Is there a way to enable Inertia?

As a workaround, you can enable inertia with a third-party app called Mos: https://github.com/Caldis/Mos.

However, I am trying to add inertia to the driver itself so that no third-party is required. But that will take time. I think it would be better if I fix the touchpad issue first, then I can work on the inertia.

 

Quote

Ok, here's the log for the touchpad issue, hope you will able to find the issue.

The touchpad will stop moving up and down and only go side to side. 

Looking at Fingermgmt.app, the mouse always stick to the bottom, both fingers or 3. 

Thanks. VoodooInput reports -2602 as well. Can this be triggered, or does it happen randomly? Does it happen after or even before it has slept?

 

I added more logging. 

VoodooPS2Controller-1.0.6-DEBUG.zip

Link to comment
Share on other sites

  • Moderators

Update to OC 0.7.7 and updated Lilu + AppleALC + Whatevergreen to the latest

The version seems to be working well. Sleep / Wake continues working.

Running for an hour or so and then unfortunately it stopped again. Can't see what triggers it.

Was just doing basic moves and scrolling, scrolling and zoom in and out.

Trackstick continues working, no issue there.

alps.log.zip

unlike previously, the mouse are now stuck to the top instead of the bottom

Link to comment
Share on other sites

@Jake Lo Thanks for the log.

 

This is what I found:

ALPS: Dimensions before sending to VoodooInput: [0] 2421x512
VoodooInput: ALPS: transducer->currentCoordinates.y * 1.0f: f
VoodooInput: ALPS: result / engine->getLogicalMaxY(): f
VoodooInput: ALPS: result * MT2_MAX_Y: f
VoodooInput: ALPS: scaled_x: 6688 scaled_y: 0

The valid coordinates are present until the driver accesses VoodooInput. For whatever reason, during scaling, the coordinate gets lost (notice the scaled_y being 0).

 

This is the responsible code for scaling.

IOFixed scaled_x = ((transducer->currentCoordinates.x * 1.0f) / engine->getLogicalMaxX()) * MT2_MAX_X;
IOFixed scaled_y = ((transducer->currentCoordinates.y * 1.0f) / engine->getLogicalMaxY()) * MT2_MAX_Y;

While x gets scaled correctly, y does not.

 

Funnily enough, this also happened when Dr Hurt used scaling to make trackpads the same divisor. Removing that fixed the 0 reporting. In case someone is interested: Link. Weirdly enough, this only happens on V8 touchpads!

 

The big question mark remains: Why does it happen after a while?

 

The attached kext will show if transducer->currentCoordinates.y and engine->getLogicalMaxY() are present.

Can I also get a log when it is working normally as well? Maybe it will help if I can compare it with the broken log.

 

VoodooPS2Controller-1.0.6-DEBUG.zip

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...