InfiniteMac OSx86

InfiniteMac OSx86 (http://infinitemac.com/forum.php)
-   10.X (http://infinitemac.com/forumdisplay.php?f=36)
-   -   Microsoft Mouse driver for non-MS mice (http://infinitemac.com/showthread.php?t=3054)

milanca 06-03-2009 04:34 PM

Microsoft Mouse driver for non-MS mice
 
I was looking for more windows/linux like mouse movement under OSX and the closest solution i came up with was Microsoft Intelli mouse(explorer) with Microsoft IntelliPoint driver. I have Logitech MX400 Laser mouse and Logitech VX nano cordless. Logitech software allows me to map the buttons but the acceleration curve is still in OSX fashion. IntelliPoint driver completely replaces it with its own acceleration curve and the mouse movement is more in Windows-like manner.

Searching the net i found this post explaining how to use MS driver (IntelliPoint software can be downloaded from MS site) with non-MS mice.

http://groups.google.com/group/alpha...5ed909aa?pli=1

I have tested it with VX nano cordless mouse and A4Tech X7 mouse. I started to love my Hack again. Here is also a quick howto, with some more details, based on the original link, if you would like to use this driver for your mouse.

Open SystemProfiler, navigate to USB section:

http://milanca.infinitemac.com/image...m_profiler.jpg

My A4Tech mouse has product id: 0x000e and vendor id:0x09da. You can use osx calculator (apple+3 to switch) to convert hex to dec values. Converted product id is 14 and vendor id is 2522.

Install Microsoft IntelliPoint software (can be downloaded from MS site) and after restart navigate to:

/System/Library/Extensions/MicrosoftMouse.kext/Contents/Plugins/MicrosoftMouseUSB.kext/

If you open Package Contents you'll have Info.plist here which you can edit with PlistEditor, TextMate, etc.

Add this section before first <key>:
Code:

                <key>A4Tech</key>
                <dict>
                        <key>CFBundleIdentifier</key>
                        <string>com.microsoft.driver.MicrosoftMouseUSB</string>
                        <key>HIDPointerAccelerationTable</key>
                        <data>
                        AACAAFVTQioABwAAAAAAAQABAAAAAQAAAAAgAAAQAABxOwAATOMA
                        BE7FAA03BAAFRAAAFIAAAAcsAAAj4AAACQAAADSwAAAK2AAARfAA
                        AA0IAABXkAAAD2AAAGkAAAASEAAAeoAAABUAAACJAAAAF8AAAJEA
                        AAAawAAAlrAAAB2QAACZsAAAIKAAAJswAAAj8AAAnDAAACewAACc
                        MAAAAIAAABIAAHE7AABWfwAESgAADqAAAAY6AAAfQAAABygAACkA
                        AAAI2AAAPGAAAAm4AABHQAAACrAAAFMwAAALwAAAYDAAAAzAAABs
                        IAAADuAAAIQgAAARYAAAnSAAABQAAAC0AAAAFsAAAMcAAAAZoAAA
                        1AAAABzgAADbAAAAIIAAAOAAAAAkQAAA4wAAACegAADjAAAAALAA
                        ABQAAHE7AABhTgAESgAAD2AAAAUyAAAXYAAABjIAACCgAAAHLAAA
                        LCAAAAgIAAA3oAAACOQAAENAAAAJwAAAUIAAAAqgAABfIgAAC5AA
                        AG1wAAAMcAAAewAAAA6AAACYoAAAEMAAALYAAAATQAAA0gAAABZg
                        AADpAAAAGiAAAPoAAAAdoAABAwAAACEgAAEHAAAAJIAAAQoAAAAn
                        oAABDAAAAADgAAARAABxOwAAbXcABBoAABHwAAAFGgAAG/AAAAXw
                        AAAmYAAABvwAADQAAAAITAAAT+AAAAlsAABt4AAACngAAI3AAAAL
                        sAAAtkAAAA1QAADZgAAAEQAAAPeAAAAVwAABEQAAABlgAAEgAAAA
                        HUAAASgAAAAhAAABLgAAACSAAAEyAAAAJ4AAATUAAAAAUAAAEgAA
                        cTsAAEuwAARMAAAOAAAABUAAABVQAAAHJAAAJiAAAAi0AAA1wAAA
                        CpAAAEmAAAAL6AAAVoAAAA0gAABiAAAADhgAAGrQAAAPGAAAdAAA
                        ABGQAACHgAAAFFAAAJoAAAAXYAAAqYAAABpgAAC0AAAAHVAAALkA
                        AAAg0AAAvIAAACQgAAC9gAAAJ7AAAL6AAAABAAAAEAAAcTsAAFZ/
                        AAO4AAASoAAABSAAACVAAAAGCAAAN4AAAAbwAABfAAAAB/AAAIoA
                        AAAJKAAAyyAAAArwAAD3gAAADSAAARyAAAAQAAABOAAAABRAAAFK
                        AAAAGQAAAVMAAAAc0AABVwAAACDgAAFbgAAAJCAAAV2AAAAnoAAB
                        XgAAAFJwAAAJlNEAWTAAAAoSaQBf8AAACpAAAGawAAAA4AAAHAAB
                        GFUAATAAAAGyKAAC8AAAAlNpAAagAAADb0oAENAAAAOteAAUWAAA
                        A+ulABfgAAAEKdMAG2gAAARoAAAe8AAABKIBACKYAAAE2VYAJiAA
                        AAUUqwApaAAABVAAACywAAAFgAEAMcgAAAW1VgA2QAAABeqrADq4
                        AAAGIAAAPzAAAAZiAABD3AAABp6rAEh4AAAG21YATRQAAAcYAABR
                        sAAAB3oBAFbcAAAH2VYAW/gAAAg4qwBhFAAACJgAAGYwAAAJFgEA
                        bAAAAAmRVgBx0AAACgyrAHegAAAKiAAAfXAAAAEAAAATAAEYVQAB
                        MAAAAbIoAAMQAAACU2kABxAAAAMvSgARgAAAA6z7AByIAAAEOqsA
                        KOAAAASBVgAwiAAABMgAADgwAAAFDVYAQJgAAAVQAABI8AAABcar
                        AFKwAAAGOAAAXHAAAAbxVgBnwAAAB0yrAG1YAAAHqAAAcvAAAAhM
                        AAB5BAAACPAAAH8YAAAJlAAAhSwAAAo4AACLQAA=
                        </data>
                        <key>IOClass</key>
                        <string>MicrosoftMouseUSB</string>
                        <key>IOProviderClass</key>
                        <string>IOUSBInterface</string>
                        <key>bConfigurationValue</key>
                        <integer>1</integer>
                        <key>bInterfaceNumber</key>
                        <integer>0</integer>
                        <key>idProduct</key>
                        <integer>14</integer>
                        <key>idVendor</key>
                        <integer>2522</integer>
                        <key>bInterfaceClass</key>
                        <integer>3</integer>
                        <key>bInterfaceProtocol</key>
                        <integer>2</integer>
                        <key>bInterfaceSubClass</key>
                        <integer>1</integer>
                </dict>

Change key name and Product/Vendor ids with your converted values. If you use TextMate you can save the file at this point.
Launch terminal and become 'su' so we can fix permissions/ownership/extensions cache

Code:

sudo -s
cd /System/Library/Extensions
chmod -R 755 MicrosoftMouse.kext
chown -R root:wheel MicrosoftMouse.kext
cd ..
rm -rf Extensions.*
kextcache -k Extensions/
reboot

After restarting you can use this driver. In system preferences->microsoft mouse->pointer speed you can switch from OSX mouse tracking to IntelliPoint pointer speed and adjust it to your needs. Check if the driver is properly loaded by clicking on mouse pointer icon (top right corner next to the '?' icon). Under Mouse Info you should have something like this:

http://milanca.infinitemac.com/image...soft_mouse.jpg

Regards

elk 06-03-2009 05:28 PM

Nice Idea and a very good tutorial.
But I have a question: Could I use this for trackpads (in my case a synaptic) too? I love OSX, but the cursor-acceleration is crap :)

Best regards,
elk

broker220981 09-25-2009 02:25 AM

Still not the same
 
Tried that, still not the same.
Driver recognized my mouse, but it still feels wrong - like if mac driver is actually active, but Microsoft one sits on top of it and tries recalculate the movement.
I have windows machine on the same table with exact the same mouse. The difference feels especially when doing lots of short fast movements (shaking).

NghiaDev 12-16-2009 09:02 AM

Well done! Really good guide!
I followed the instructions and everything works fine.
In my opinion the mouse and font rendering from Microsoft Windows are better than Mac OS X's way.
It's really difficult to control the mouse that doesn't move at the same speed ( Mac OS X )
Snow does not offer this option for users ( bad )

milanca 12-17-2009 12:46 AM

@NghiaDev, thanks.

@broker220981, yes i guess you're right, mac os x native driver is still active in a way and MS driver is recalculating the movement in its way. Far from perfect solution but a bit better, or at least it seems to me.

What i wanted, and actually tried, is to re-compile IOHIDFamily back in 10.5.x. Mouse movement and accel. curve is there and the code is very old; I compared it with tiger's kext (part with mouse movement and acc.) and its the same one. I wanted to disable acceleration at all but the kext is missing zillion files to compile properly. So i gave up setting up its build environment. When i have some more free time i will try to set it up in Snow Leopard and try to patch it again. Just hope i won't give up that soon.

Symbiosis 09-15-2011 03:29 PM

I have a MacBookPro with 10.7 Lion and Logitech mouse. Made all by tutorial, it is very simple... But Intellimouse does not recognise my mouse. Show: No microsoft mouse was found. Why it happens ? Please, Help me ! (((

Andru 09-16-2011 11:38 PM

Quote:

Originally Posted by Symbiosis (Post 55475)
But Intellimouse does not recognise my mouse. Show: No microsoft mouse was found. Why it happens ? Please, Help me ! (((

Hi, Symbiosis. New versions of Microsoft drivers need to be a binary patch.
Navigate to MicrosoftMouse.kext/Contents/MacOS and open MicrosoftMouse file in any Hex Editor. Find the line 077D and replace it on your Product ID. Save and exit from the Hex Editor. Then go to MicrosoftMouse.kext/Contents/Plugins/MicrosoftMouseUSB.kext/Contents and open Info.plist. Find there <key>M077D</key> and change Product/Vendor IDs below.
Good luck. :)

NghiaDev 07-28-2012 03:54 AM

@Andru: Thanks