Close
Advertise Here
Results 1 to 8 of 8
  1. #1
    OUYA Devotee ajb999's Avatar
    Join Date
    Apr 2014
    Location
    Idaho
    Posts
    218


    Guide for getting third party controllers and remotes to work correctly with the OUYA

    I wrote a guide on making a custom kl file so that your third party controller/remote works correctly with the OUYA. This works with USB encoders as well in case you want to build your own arcade controls.

    http://burdbroscustomarcade.us/forum...a-and-android/

  2. #2


    Thanks! This is really interesting, at least for me as a developer!

    By the way: It would help a lot if the OUYA team integrated those gamepad configurations in the firmware.
    THE DINOEXPLOITATION WILL BE TELEVISED!
    http://www.explosivedinosaurs.com

  3. #3
    OUYA Devotee ajb999's Avatar
    Join Date
    Apr 2014
    Location
    Idaho
    Posts
    218


    There have been more and more kl files included with each update. For some controllers people own like official PlayStation and Xbox there are already kl files included. You can still go in and tweak them however you want since some people don't like the default config.

    I see no reason why someone couldn't make an app that let you make the custom kl using a GUI. Unfortunately I do not have the skills for this. The 2 IDs can be pulled from the logcat and keytest finds the scan code so the pieces are there. Just need someone with the know how.

  4. #4


    I've compiled a driver for my generic Dragonrise gamepad, and this guide helped me a lot to create a working keylayout for it. It's not perfect, but totally usable for now, except in one game i've tried that didn't recognized my controller. Many thanks!

    Cheers,
    Fabrício.

  5. #5
    OUYA Devotee ajb999's Avatar
    Join Date
    Apr 2014
    Location
    Idaho
    Posts
    218


    There are some games that don't seem to work with anything except for the ouya controller. Also some don't recognize the axis and only respond with dpad inputs. Luckily it's only a few that don't work. It would be nice to have a way to get any controller to work with any game. It would be nice to have an app or built in gamepad mapper for 3rd party controllers. I've tried experimenting with developing one but it's way past my level right now.

  6. #6


    You could try using tincore keymapper. Using it just for ouya remapping is as easy as many people here think, it basically remaps everything, and you can create different profiles for different games. Dunno if it solves the problem of not recognizing my controller on the game i told so.

    The only drawback is that i've experienced controller lag when remapping the original Ouya controller, but there are some ways to 'hide' it from tincore itself. I was thinking if changing .kl files on the fly could work. So, it was just a matter of writing a small app to remap buttons for games that do it wrong.

    Cheers,
    Fabrício.

  7. #7
    OUYA Devotee ajb999's Avatar
    Join Date
    Apr 2014
    Location
    Idaho
    Posts
    218


    I've used tincore with some playstore games and it worked. The lag bothers me though. If the OUYA recognizes a controller and all buttons are mapped right you would think that the controller would work correctly in games also. The problem is all of the different developer programs and how they recognize input in the compiled game. BUTTON_A, BUTTON_B, etc.. should be the same through all apps/games but isn't for some reason. Same thing for the axis. The strange thing is I can get the OUYA controller as well as our arcade cp to work with any game on my tablet just fine.

    I've talked through email with the devs at OUYA on 3rd party controls but have been busy and I think the ticket number has ended. I need to get back in contact with them and see if there's another way to go about assigning axis/buttons other than a kl or a mapper. Something that would be consistent in all games.

    I'm interested in what app you made to map buttons if you don't mind sharing.

  8. #8


    Oh, sorry, you misunderstood me.

    I was says that, if we could modify .kl files on the fly, it was just a matter of writing some script to copy and replace the correspondent keylayout (by the way, it's possible... Just have to replace files... and unplug and plug controller again. I think that exists 'mount' and 'unmount' commands that could even be used to avoid this manual work of unplugging). I didn't made any program, neither have knowledge to do that.

    I was experimenting during the day and... Tincore not working anymore as i expected since i've compiled and installed my gamepad driver. So, not an option anymore.

    And you are right. I've tried everything on .kl files, but doesn't matter in certain games. The only thing I could think of is that the game processes the scancodes directly, instead of using keylayout files. Something like, the game reads what are the controllers connected (number 1 - Ouya ... number 2 - Generic USB) and something like (pseudocode):

    if (controller.type != ouya_controller) {
    switch (controller.scancodes){
    case '298': input=button_A;
    case '299': input=button_B;
    ...
    case 'n': input=button_n;
    }
    }

    Maybe it's based on generic.kl file, but instead of using the file itself, it only uses its values as reference... dunno...

    The only thing I could think of is spoofing the app somehow so that converts one scancode to another... Unfortunately i can't help... (I don't even had used linux before my need for driver compilation!).

    At least, every game I liked with wrong keymapping, doesn't get sacrificed in the gameplay aspect at all, so i'm fine with it. If someone could solve this issue, even better. Maybe on future Ouya Inc. solves that... Maybe some developers could solve it for the specific games of themselves.

    Sorry if i couldn't help pal.

    Cheers,
    Fabrício.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •