Mac OS X Issues

Tested on OS X 10.3.2 JRE 1.4.2_03 on a 1GHz Powerbook G4:

  1. The build.xml file does not properly package the distribution. The libjinput.jnilib file should not be left in plugins/OSX/src/native. The plugins/OSX/src/native/build folder remains empty after the build.

Ideally all the plugin jars and native libs should be placed together in ‘dist’ subdirectories or something - named for each platform

  1. Several keys are not reported on my 1GHz Tibook
    All qualifier keys and PgUp, PgDn, CapsLock (PgUp/PgDn are on the cursor up/down keys and triggered when the ‘fn’ key is held when pressing these… since home/end uses the same technique and is reported I figured these should too.)

  2. Key names are not shown for any keys -How do you make a meaningful UI to show what key the user presses when they assign a key to an action?
    Everything is reported as ‘Key n’ where n is 0 to 255.

  3. Trackpad reports a right button but it only has a single button. Software will make incorrect decisions about available buttons, possibly making the game uncontrollable.

  4. MacAlly iShock II FFB Game Controller - recognized but no axis or buttons are reported - this used to work… on OS X 10.2. The controller still works to move the mouse pointer around the screen and the iShockXManager app works fine. The controller is working.

I know that some of these issues are the fault of bugs in the OS. But should we try to work around them in the plugin?

For the iShock II… it is strange that the test apps (I tried 2) don’t show any axis or buttons, and the device type shows as “unknown”, but the test apps do show the full device name. Running the ControllerReadTest I get these messages printed to the console:

Found gamepad [Macally iShock II FFB Game Controller] device address [3891664]
*Adding collection
*Adding collection
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding button
*Adding misc component
*Adding misc component
*Adding misc component
*Adding misc component
Axis count = 2
Axis count = 2
Axis count = 0
Axis count = 124
Key Poll result [0]
Key Poll result [0]
Key Poll result [0]
ement: 266

Weird eh?

Very.

On the TrackPad. is it possible that hat the secodn button is the virtual right button? (crl-click? cmd-click? something like that.) Have you trid that to see ?

JK

Yes, I tried that. The ctrl-click is not seen as the second button. Which I sort of expected, since that is a higher level thing.

[quote]Tested on OS X 10.3.2 JRE 1.4.2_03 on a 1GHz Powerbook G4:

  1. The build.xml file does not properly package the distribution. The libjinput.jnilib file should not be left in plugins/OSX/src/native. The plugins/OSX/src/native/build folder remains empty after the build.
    [/quote]
    This is by design. The build folder is used for temporary file storage, not the final binary. Since there is no documentation stating where it should go, I haven’t really bothered to move it anywhere in particular.

That has been discussed but no decisions have been made. If there was a spec for the whole of the GTG libraries, that would be easier to do.

Have posted to Apple on this. The keys don’t get enumerated with their API functions so this one I can’t fix until they provide another path to go other than the standard HID libraries.

That’s not an OSX issue. There is no specification for returning a key letter or anything similar for a key. Post this one as a specification issue. Can’t be fixed until there is a specification that defines what to do.

By design. Internally all buttons in BSD are assumed to have 2 buttons, thus all buttons in OSX are assumed to have 2 buttons. Can’t fix.

OS bug. Apple would like to hear about these in Bug Reporter.

[quote]That’s not an OSX issue. There is no specification for returning a key letter or anything similar for a key. Post this one as a specification issue. Can’t be fixed until there is a specification that defines what to do.
[/quote]
Wow. So at best a game can say “Yes a key is bound to this action. I can’t tell you what key it is.” Are the key numbers standardized in any way? If I want W,A,S,D to move my player how can I code that to JInput buttons in my game?

[quote]By design. Internally all buttons in BSD are assumed to have 2 buttons, thus all buttons in OSX are assumed to have 2 buttons. Can’t fix.
[/quote]
Can’t we work around this? Is there a way to know when you have a standard Apple pointing device (e.g. look at the manufacturer ID) and secretly refuse to report the second button? As long as Apple doesn’t actually make a two-button pointing device this will work. You could define a property to enable/disable this “hack”.

[quote]OS bug. Apple would like to hear about these in Bug Reporter.
[/quote]
I’m not sure how this is an OS bug - Are you basing this only on the fact that it appeared to work on 10.2. Can you reproduce this? I wouldn’t know what to report. Like I said, the controller appears to work outside of JInput.

I’m not sure I understand the key issue. The Win32 plug in returns the key name as its name string (eg the axis for the “a” key is named “A”)

Ill try the webstart on my OSX box and maybe that will make it clear…

Sure, a developer can grab the device string and map everything to one button. That won’t happen at the API level though - specifically because it is a hack.

Send them your test application and describe to them what isn’t working properly. Tell them that it was working in 10.2 to the extent that you can.

Re: 2 mouse buttons when there is really only one… One man’s “hack” is another man’s “workaround” :slight_smile: IMO the current state is worse than the alternative “hacked” state.

Re: iShock game pad
Before I report the bug I would like to investigate a bit more. For instance - those messages printed to the console… “Adding Button”, “Axis count =2” etc… obviously the inputs are detected at some level. How are they detected at that level and yet not showing up at another level? I will need to find some time to go through the code for the plugin.

Jeff,
The problem is exactly that the name string is not assigned a user friendly value. It appears to be assign “Key n” to the name, where n is just some number that means nothing to an end user.