2020-09-29

XBOX360 무선 컨트롤러, 안드로이드에서 트리거 인식 문제 해결

이제는 구형이 된 XBOX360 무선 컨트롤러는 전용 USB 리시버만 있으면 안드로이드 기기에서도 쓸 수 있습니다.

XBOX360 컨트롤러 비정품 리시버, MS 로고가 없다.


제 USB 리시버는 중국산 짝퉁인데도 안드로이드 기기에서 잘 인식됩니다. 윈도10과 달리 안드로이드에서는 별도의 드라이버나 어플 없이 바로 잡힙니다. 그런데, 문제가 있더군요. .emu 시리즈 에뮬에선 모든 버튼이 잘 인식되지만, 레트로아크, PPSSPP, Kodi에선 L, R 트리거 버튼 인식에 문제가 생깁니다.

마이크로소프트가 XBOX360 컨트롤러부터 X-input이라는 새로운 입력 시스템을 채택했는데, 이걸 D-input과 호환되도록 만든 부분에서 문제가 있는 모양입니다. L, R 트리거가 버튼이 아니라 축으로 인식되기 때문에 일부 에뮬과 게임에선 트리거 인식이 안 됩니다.

PPSSPP에선 트리거를 매핑할 순 있지만, 게임 중 한쪽 트리거 버튼을 눌러보면 다른쪽 트리거 버튼과 동시에 눌리며 엉뚱하게 작동합니다. Kodi에서도 트리거를 설정하면 방향키가 멋대로 움직여버립니다. 그리고 레트로아크에선 트리거 버튼을 매핑하는 순간, 멈춥니다.

레트로아크의 컨트롤러 cfg 파일을 편집기로 열어서 할당된 키값인 +2, -2를 넣어서 저장하는 방법도 써봤지만, PPSSPP처럼 동시에 키가 눌려버립니다.

이 상태론 레트로아크, PPSSPP, Kodi에서 XBOX360 무선 컨트롤러는 양쪽 트리거 버튼이 없다고 생각하고 써야 합니다. 

궁리 끝에 키 레이아웃(.kl)을 안드로이드 기기에 넣는 방법을 써보기로 했습니다. 구글에서 찾아보니 XBOX360 무선 컨트롤러용 키 레이아웃 파일이 있더군요. 이걸 제가 쓰는 안드로이드 박스 GT-king에 넣어봅니다.

Vendor_045e_Product_02a1.kl

시스템 파일에 접근해야 해서 루팅이 필요합니다. 제 GT-king은 이미 루팅 되어 있는 상태라 수월했어요. X-plore File Manager나 Root Explorer 같은 탐색기 어플로 루트의  /system/usr/keylayout 폴더에 Vendor_045e_Product_02a1.kl 파일을 복사해 넣습니다.

복사만 하면 안 되고 반드시 파일에 권한(Permission)을 줘야 기기가 먹통 되지 않습니다. 탐색기 어플 기능을 써서 권한을 RW-R-R로 맞춥니다. 

그리고 재부팅해서 레트로아크에서 트리거를 키 설정해보면, 다른 키값으로 바뀌어 있고 잘 인식됩니다. PPSSPP, Kodi에서도 정상 작동합니다. 이젠 언루팅해도 상관 없습니다.

전 보통 플스1 미만 게임에선 양쪽 트리거 버튼을 각각 강제 세이브(L), 강제 로드(R)로 할당해요.

트리거 인식 문제 때문에 다른 컨트롤러로 바꿔야 하나 싶었는데, 계속 재활용해야겠군요.

댓글 없음:

댓글 쓰기