I spoke to one of you guys in the Reddit thread a while ago and finally got around to trying to document a controller after I asked about having it being supported in RetroArch. I was told to make a post in here by TheToadKing with the info, so hopefully I’ve been able to provide you with everything needed.
It is the ThinkGeek 8-bitty and is a bit of an oddity as far as controllers go. It doesn’t reply on single code or character button mapping.
It sends two different characters per button. One when the button is pressed and a different character when the button is released. Some bluetooth controllers support the iCade scheme that the 8-bitty follows so it would allow for supporting a small handful of controllers in implementation and not just the 8-bitty. Unfortunately, success in using this controller largely depends on app support.
Product Page for the 8-bitty: http://www.thinkgeek.com/product/ecea/
There is an open source SDK for the iCade but it’s mainly for iOS and doesn’t seem to mention the 8-bitty at all. Dunno if it is complete. It’s what is linked on the 8-bitty page, though.
Device Name in Bluetooth Settings when connected to my phone: ThinkGeek 8-bitty Game Controller
/proc/bus/input/devices
I: Bus=0005 Vendor=0000 Product=0000 Version=0000 N: Name=“BT HID” P: Phys= S: Sysfs=/devices/virtual/input/input11 U: Uniq= H: Handlers=sysrq event6 keyreset keychord B: PROP=0 B: EV=12001b B: KEY=400000 0 0 0 10000 2000007 ff9f387a c94057ff febeffdf ffefffff ffffffff fffffffe B: ABS=f00 0 B: MSC=10 B: LED=1f
Button mapping:
If I pressed the left shoulder button repeatedly, it would be sent as: hrhrhrhrhrhrhrhrhr No spaces between characters sent, only the characters mentioned below.
Left Shoulder pressed: h Left Shoulder released: r Right Shoulder pressed: j Right Shoulder released: n
Up pressed: w Up released: e down pressed: x down released: z left pressed: a left released: q right pressed: d right released: c
middle left (aka select) pressed: y middle left (aka select) released: t middle right (aka start) pressed: u middle right (aka start) released: f
top left (aka Y) pressed: i top left (aka Y) released: m top right (aka X) pressed: o top right (aka X) released: g bottom left (aka B) pressed: k bottom left (aka B) released: p bottom right (aka A) pressed: l bottom right (aka A) released: v