Monday, June 18, 2012

Working analog stick in Chinese Android Gaming Devices – will we ever see one?

 

With the release this year of the Yinlips YDPG 18, YDPG 16, JXD 601, JXD 5110, JXD S7100 – and variants of the above, you’re all right to be a little confused, and likely a little cynical, about whether more choice is a good thing, or whether Apple should move into this space.

The various devices all promise greatness but at this point, none of them implement a fully working analog stick, despite the hardware being present on all of them. The common response is to blame the manufacturer, but what is the real technical reason behind those sticks not working in any android N64 or PSX emulator?

Robert Broglia, author of the .emu emulators (which do not emulate systems at this time which use analog sticks by the way) kindly shared his thoughts on this, as per the email trail below:

Hi Robert

I was wondering with your testing, whether you had any thoughts on the "analog controller" on the YDPG18. My understanding is that the controller is a true analog controller, but the version of android that runs it is not capable of supporting analog controls.  In addition, it appears that the emulator apps on the market for the PS1 and for the N64 both also lack support for an analog control.

I have gleaned the above from trawling the net - not always the best source of information.  I would absolutely love to hear your considered thoughts on the matter. 
In particular:
1. Will an android device with a working analog controller for PS1 and N64 emulation ever be possible?
2. Is the problem on the YDPG18 due to the version of android that it runs, the lack of support for analog stick in the emulators, or is it a fundamental hardware issue?

Thank you for your time.

Regards
Larry

 

On 15/06/2012, at 2:32 PM, Robert Broglia wrote:

Hi Larry,

There were some new APIs added in Android 3.1+ which allow joysticks to send events using X,Y coordinates, namely getAxisValue. Android 2.3 can still recognize analog joysticks, but it converts them to digital events. My apps actually do a similar conversion since I don't yet emulate any systems that have analog sticks, but eventually I will. Assuming the YDPG18's joystick internally works with analog coordinates, then it might be possible take advantage of it if you can get a newer version of Android running on the hardware.

Regards,
Robert

So there you have it, the cold hard technical truth:

  • those analog sticks are real from a hardware point of view
  • Android version < 3.1 do not support APIs that provide true proportional analog controls
  • apart from the version of android that runs on your system of choice, the next challenge is to get the authors of Android N64Oid and FPSe to update their emulators to support the analog sticks on these devices.

So, if you’re shopping around for an Android retrogaming device, and analog control support is important, you need to get one that at least runs android > 3.1, and then hope for the relevant emulators to catch up!

Suddenly, devices like the JXD S5110 which ships with Android 4.0, spring to the top of the list for this issue … for a mere $99.99 smackeroos, now, perhaps, with a bit of future proofing thrown in.

2 comments:

  1. Hey Larry, I love this posting. We are now looking forward and testing some joysticks or game controllers for the retro handhelds. So only the device supporting Andriod 3.1 system can use the joystick? Thus, only JXD S5110 can do this?

    ReplyDelete
  2. Hi Willgoo
    The joysticks you are testing may work for Android < 3.1, but they will not work as proper analog sticks. As Robert says, emulators will convert the analog movement into an "on off" digital movement. For real analog controls, the emulator writers of FPSE and N64oid to write their emulators to support the analog controller API that is available only after Android 3.1, or some other workaround.

    ReplyDelete