Browse by type
Please read and follow the important instructions for installing in the wiki:
https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller/wiki/How-to-Install
Downloads are available on Google Code:
https://code.google.com/p/os-x-voodoo-ps2-controller/downloads/list
My build environment is currently Xcode 4.6.3, using SDK 10.8, targeting OS X 10.6.
No other build environment is supported.
Currently, builds are provided only for 64-bit systems. 32-bit/64-bit FAT binaries are not provided. But you can build your own should you need them. I do not test 32-bit, and there may be times when the repo is broken with respect to 32-bit builds, but I do check on major releases to see if the build still works for 32-bit.
Here's how to build 32-bit (universal):
probably not necessary, but a good idea to check that the targets don't have overrides: - multi-select all the Targets - check/change Architectures to 'Standard (32/64-bit Intel)' - build (either w/ menu or with make)
Or, if you have the command line tools installed, just run:
For FAT binary (32-bit and 64-bit in one binary) make BITS=3264
For 32-bit only make BITS=32
The source code is maintained at the following sites:
https://code.google.com/p/os-x-voodoo-ps2-controller/
https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller
Please use the following threads on tonymacx86.com for feedback, questions, and help:
http://www.tonymacx86.com/hp-probook/75649-new-voodoops2controller-keyboard-trackpad.html#post468941 http://www.tonymacx86.com/mountain-lion-laptop-support/87182-new-voodoops2controller-keyboard-trackpad-clickpad-support.html#post538365
While implementing the "just for fun" feature in the keyboard driver where Ctrl+Alt+Del maps to the power key (for selection of Restart, Sleep, Shutdown), I discovered that if you invoke this function with the Ctrl and Alt (Command) keys down, the system will do an abrupt and unsafe restart. You can verify this yourself by holding down the Ctrl and Alt keys while pressing the actual power button.
Very rarely, both the keyboard and trackpad are not working after a fresh boot or after sleep, even on systems where this is normally not a problem. As of the v1.7.15a release this problem appears to be solved. Time will tell.
Very rarely, the keyboard/trackpad may become unresponsive or a key may repeat indefinitely. As of the v1.7.15a release this problem appears to be solved. Time will tell.
Note: often times you will see either of the two problems mentioned above right after installing. Generally, another reboot and/or repair permissions & rebuild caches will fix the problem.
2013-08-15 v1.8.7
2013-08-05 v1.8.6
2013-07-01 v1.8.5
Added support for HPQOEM:17F0 (HP ProBook 4340s)
Corrected error in setProperties for ApplePS2Controller. Now works with utility 'ioio'
2013-05-26 v1.8.4
2013-05-07 v1.8.3
WakeDelay in ioreg for ApplePS2Controller is now correct integer type instead of bool.
Added support for HP ProBook 5330m.
Eliminated FakeSMC dependency. The drivers now look directly at DSDT in ioreg to determine what to use for configuration instead of the "mb-product"/"mb-manufacturer" properties of FakeSMC.
Remove extraneous mapping for R_OPTION in ProBook-87 keyboard configuration.
2013-04-07 v1.8.2
Fixed problem under Snow Leopard where VoodooPS2Keyboard.kext was not loading.
Fix issue with Eject (Insert) causes DVD to eject immediately instead of after a delay. Now the driver honors the HIDF12EjectDelay configuration setting, which by default is 250 ms. You can also change it in the Info.plist if you wish. 250 ms provides a slight delay that avoids accidental eject.
Added support for HP:4111 keyboard map/configuration for HP ProBook 4520s.
Changed the default assignment of the right "menu/application" key (on 4530s in between right Alt and right Ctrl). Prior to this release it was assigned to Apple 'Fn' key. Now it is assigned such that it is 'right Windows' which maps to Apple 'option.' This is configurable in the keyboard driver's Info.plist.
Fixed a bug where special functions/media keys were not mapped to F-keys by default until you checked then unchecked the option for this in SysPrefs -> Keyboard.
2013-03-15 v1.8.1
New feature: It is now possible to toggle the Keyboard Prefs "Use all F1, F2…" option with a keyboard hotkey. On the ProBook 4xx0s series, it is Ctrl+'prt sc'.
New feature: Added keyboard mapping/ADB (92) code for the Eject key. On the ProBook 4xx0s series, it is assigned to the 'insert' key. See this link for more information on the various modifiers that can be used with the Eject key: http://support.apple.com/kb/ht1343
Supported added to Info.plist for keyboards on ProBook 8460p/6470b laptops. Credits to nguyenmac and kpkp.
Platform Profile computer specific sections in Info.plist are now merged with the 'Default' section making it easier to create/manage alternate configurations, because you only have to enter the differences/overrides.
Fixed a bug in the ProBook specific Info.plist (for those not using kozlek's FakeSMC) where SleepPressTime was not set to 3000.
Developers: Updated to Xcode 4.61, and also optimized a bit for size and exporting less symbols into kernel namespace.
2013-03-04 v1.8.0
Feature: Info.plist content is now driven off the mb-manufacturer/mb-product ioreg properties provided by kozlek's FakeSMC. This allows different keyboard layouts/trackpad settings to be based on which machine/motherboard the drivers find themselves running on. As of this time, support has been added for the Probook 4x30s series (HP/167C). Users who create custom settings for other hardware are encouraged to submit their Info.plist changes and mb-manufacturer/mb-product IDs from the FakeSMC device in the ioreg. I will integrate these new profiles into future builds. This also means that I'm only distributing one version of the package from now on, with special instructions for ProBook users not using the latest FakeSMC.
bug fix: Fixed UnsmoothInput option. It was not working at all.
Changed the default Resolution/ScrollResolution from 2300 to 2950. This results in more control for finer movements, but slower overall acceleration. You may have to adjust your pointer speeds in System Prefs -> Trackpad to suit your preference.
bug fix: Fixed a problem on Snow Leopard if Kernel Cache was being used.
For developers: Fixed 32-bit build.
2013-02-26 v1.7.17
2013-02-25 v1.7.16
bug fix: Fix some problems with pass through packets (pass through capability applies if you have both a trackpad and a stick).
Add support for 'genADB' for keyboards without a number pad. Hold down Alt (command), then type digits to simulate an ADB code, then release Alt. This features is only available with the DEBUG version. Previously this worked only with the numpad digits.
Add LogScanCodes property to keyboard driver. Now you can log scan codes to the Console system.log, even in the Release version. Use 'ioio' to set this property to true, and you will see scan codes logged in the Console. Set it back to false when you're done.
2013-02-21 v1.7.15a (beta)
2013-02-20 v1.7.15 (beta)
Slight tweak to middle button handling: The code will now commit to a single left/right button if you touch the touchpad after pressing one of the buttons (instead of waiting the 100ms to see if a middle button event should happen instead).
bug fix: Fixed a problem with startup (multithreaded issue), where the keyboard would not work or indefinitely repeat at the login screen.
bug fix: Fix problem with holding down Alt and using numpad digits to type an ADB code (a feature only for debug mode). Had to undo most of "non-chaotic" startup and approach from another angle.
New feature: Some keyboards do not generate 'break' codes when a key is released. This causes OS X to believe the user is holding the key down. Fn+F1 through Fn+F12 can have this. Seems to be common on Dell laptops. Since I failed to find a way to force the keyboard to generate break codes for these keys (some controllers seem to just ignore this), I have implemented the ability to specify these keys by their scan code in the keyboard driver's Info.plist. You must specify the scan code of each key in the "Breakless PS2" section. See VoodooPS2Keyboard/VoodooPS2Keyboard-Breakless-Info.plist for an example (tested with my Probook keyboard for all Fn+fkeys).
2013-02-17 v1.7.14 (beta)
Bug fix: Fixed problem where Synaptics trackpad would load even if a Synaptics device was not detected.
Internal change: Re-wrote the interrupt handling code. Prior to this version, data was not pulled from the PS2 port until the "work loop" got around to it. All the interrupt routines did was signal the scheduler to wake the work loop. With this version, data is collected directly in the interrupt routine, placed in a ring buffer, and the work loop is only scheduled when a complete packet has arrived. So, for the keyboard driver, the work loop is activated whenever a full scan code sequence has been sent (from 1 to 3 bytes), for the mouse driver, when a full 3-byte packet has arrived, and for the trackpad driver, when a full 6-byte packet has arrived. Not only is this more efficient (only scheduling the work loop when there is actual work to do), it is also safer as data is gathered from the PS2 port as soon as it is available. This is a pretty major change.
setProperties/setParamProperties is now fully implemented in the keyboard driver. This means you can use 'ioio' to change configuration values on demand. It also means that eventually the prefpane will be able to manipulate the keyboard Info.plist options just like it can with the trackpad. When I get around to working on the prefpane…
Added an option to most Info.plist to allow a device to be "disabled." By setting DisableDevice to true, you can keep that driver code from loading and being considered for probing. By default, none of the drivers are disabled, but disabling them may improve startup performance as well as reduce the chances of things going wrong. I think a future version of the ProBook Installer should automatically disable the devices not used on the ProBook.
Implemented a "non-chaotic" startup. Turns out that OS X will start all devices in parallel. While this can make the system start up faster, it might not be such a good idea for devices interacting with one resource, in this case, the PS2 port. The keyboard driver now waits for the PS2Controller to finish starting before starting it's "probe" process. And the mouse/trackpad drivers wait for the keyboard driver to finish starting before starting their "probe" process. A future version may make this optional.
The keyboard driver's "probe" function now will always return success. I have not found a reliable way to detect a keyboard actually being present or not, so it will always load and in the Release version does not test for the keyboard existing at all. Also important to note that the mouse/trackpad drivers now wait for the keyboard to load (see above), so it is really necessary to have the keyboard driver loading always anyway.
Added a special case for Synaptics type 0x46 (really a hack for Probooks with a Synaptics stick) to report led present, because we know it is there and it works.
Cleaned up some of the logic for middle button clicks, such that releasing either button will immediately release the middle button.
Note: v1.7.13 skipped.
2013-02-07 v1.7.12 (beta)
Implemented middle click by clicking both the left and right physical buttons at one time. Time for button clicks to be considered middle instead of right/left is configurable as MiddleClickTime. Default is 100ms.
Implemented a new option in the Info.plist for the trackpad: ImmediateClick. Set by default to false. If true, it changes the behavior of clicking and dragging with tap and double-tap hold. Prior to this option, a tap does not register its button up until the double click time has passed. For some actions
$ claude mcp add OS-X-Voodoo-PS2-Controller \
-- python -m otcore.mcp_server <graph>