Menu

#50 Input from SNES to USB adapter (retrousb.com) is incorrect.

open
nobody
UI (9)
5
2010-12-29
2010-12-29
D. Johnston
No

When using either OpenEmu 1.0b6 or tonight's git build on OS X 10.6.5 (XCode 3.2.5), input from my SNES controller and attached USB adapter from retrousb.com is interpreted incorrectly. When using Preferences > Controls to configure this controller for any of the six OpenEmu emulators, more than one physical gamepad button is mapped to a single logical input. For instance,

> both the physical X and Y buttons are identified as logical "P1 B1"
> both the physical A and B buttons are identified as logical "P1 B2"
> both the physical L and Select buttons are identified as logical "P1 B3"
> both the physical R and Start buttons are identified as logical "P1 B4"

This of course makes the controller useless, since physical input cannot be correctly mapped by Preferences > Controls as logical ones, and since ~/Library/Preferences/com.openemu.OpenEmu.plist stores input identifiers as some sort of binary data, manual configuration/troubleshooting is impossible.

I have verified that this fault is not caused by a defect of the usb device using Apple's HDI Explorer (whose source code is available from http://developer.apple.com/library/mac/#samplecode/HID_Explorer/index.html\).

** see the attached image now **

Each of the buttons identified in the drop-down list correctly receives input from this controller, but strangely seems to identify multiple input by the same name. For instance,

> Physical X is mapped to the first entry of element 0x1 while physical Y is mapped to the second logical entry of element 0x1.
> etc.

It is interesting to note that though the logical HDI elements/identifiers overlap, causing confusion to the OpenEmu code which calls the HDI libraries, they have unique "Cookie" values within HID Explorer; that is, the first 0x1 element (physical X) has a cookie value of 0x3, while the second 0x1 element (physical Y) has a cookie value of 0x7. I wonder if some analysis of input identifiers within HDI explorer could lead to some more robust gamepad input code for OpenEmu.

Discussion

  • D. Johnston

    D. Johnston - 2010-12-29

    Troubleshooting and input analysis of an SNES USB adapter with Apple's HDI_Explorer

     
  • Josh

    Josh - 2010-12-29

    please come join us in #openemu on freenode and I'd love to walk through what is going on with this.

     
  • Josh

    Josh - 2010-12-29

    Also please reopen this issue on github, we're in the middle of transitioning so I haven't flipped everything over yet.

     

Log in to post a comment.

MongoDB Logo MongoDB