Arqade Asked by MalikTH on August 23, 2020
In the Android Bedrock version of Minecraft, I am able to connect an OUYA controller via Bluetooth. However, many of the keybinds do not work as expected. Through some testing, I have been able to come up with a list of binds:
When I enter a world, there are several issues relating to the camera. I know that both triggers on the OUYA controller are analog triggers. Likely because of this, the left trigger, when not pressed, constantly rotates the camera to the left, and when it is pressed, it moves the camera to the right. It also pauses the game, implying that it is bound to the Start button as well. The right trigger moves the camera down when it is pressed, and does not move the camera initially; after pressing it down, it moves the camera up when not pressed. The right analog stick controls the camera as intended.
How would I get this controller to work normally since all of the keybinds seem to be all over the place?
On Android, gamepad mappings are defined in Key Layout files.
https://source.android.com/devices/input/key-layout-files
Sometimes there's already a key layout file for your device. Sometimes you need to create one from scratch. The filename should include the vendor and product IDs for your gamepad. For the OUYA gamepad, the filename is:
Vendor_2836_Product_0001.kl
If you search for this filename you can find the official file that was distributed on the OUYA:
# Copyright (C) 2011 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# OUYA Game Controller
#
key 0x130 BUTTON_A
key 0x133 BUTTON_B
key 0x131 BUTTON_X
key 0x132 BUTTON_Y
# Button "LB" maps to BUTTON_L1.
key 0x134 BUTTON_L1
# Button "RB" maps to BUTTON_R1.
key 0x135 BUTTON_R1
# These two keycodes are for click (press from above) on analog control sticks.
key 0x136 BUTTON_THUMBL
key 0x137 BUTTON_THUMBR
# D-pad
key 0x138 DPAD_UP
key 0x139 DPAD_DOWN
key 0x13a DPAD_LEFT
key 0x13b DPAD_RIGHT
# Power and Home Key
key 0x13e HOME #Short Press
key 0x13f HOME ALT #Long Press
# Left (0x00, 0x01) and right (0x03, 0x04) analog control stick.
# The reported value for flat is 128 out of a range from -32767 to 32768, which is absurd.
# This confuses applications that rely on the flat value because the joystick actually
# settles in a flat range of +/- 4096 or so.
axis 0x00 X flat 4096
axis 0x01 Y flat 4096
axis 0x03 Z flat 4096
axis 0x04 RZ flat 4096
# Triggers.
# (Shoulder trigger buttons marked with "LT" and "RT" are analog.
# Each axis has range from 0 to 255.)
axis 0x02 LTRIGGER
axis 0x05 RTRIGGER
key 0x13c BUTTON_L2
key 0x13d BUTTON_R2
Save that in your Vendor_2836_Product_0001.kl file and put it on your Android in /system/usr/keylayout. Restart your Android device and now your gamepad should use the new mapping.
Answered by nondebug on August 23, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP