2021-04-24

안드로이드 기기에서 게임 컨트롤러를 8BitDo 블루투스 어댑터로 무선 연결했을 때 문제점과 해결책

Pro 2 컨트롤러를 안드로이드TV 박스인 GT-King에 블루투스 연결하면, 다음과 같은 문제가 생긴다.

■GT-King의 내장 블루투스 안정성이 형편없어서 Pro 2 컨트롤러가 플레이 중 딜레이 생기고 수시로 끊긴다.

Pro 2 컨트롤러를 삼성 갤럭시탭이나 스마트폰과 연결했을 땐 블루투스 연결이 안정적으로 동작했기 때문에 빼박 GT-King의 문제다. GT-King뿐 아니라 중국산 안드로이드TV박스에서 곧잘 나타나는 문제다. 블루투스 헤드폰 역시 못 들을 정도로 잘 끊긴다.

그래서 대안으로 8BitDo 블루투스 어댑터를 썼다. GT-King의 USB포트에 꼽으면 내장 블루투스와 상관 없이 독립적으로 동작한다. Pro 2 컨트롤러의 모드 선택 버튼을 S(스위치) 또는 A(Mac OS)로 맞춘 뒤, 페어링 모드로 해놓고, 블루투스 어댑터의 페어링 버튼을 누르면 몇 초 안에 무선 연결이 된다.

그런데, 믿었던 8BitDo 블루투스 어댑터도 문제가 있었다. 가끔 끊기고 방향키가 멋대로 움직였다. 원인을 찾아보니 USB3.0이 간섭을 일으켜서란다. 그래서 어댑터를 GT-King 뒤의 USB2.0 포트로 옮겨 꼽았다. 꼽을 공간이 비좁아서 연장선까지 활용했다. 그러고 나니 증상이 사라졌다.

이제 연결은 안정적으로 되는데, 문제가 또 남았다. 안드로이드용 PPSSPP에서 컨트롤러의 SELECT 키가 뒤로가기(Back)으로 인식되는 문제다. PPSSPP 설정에서 키를 매핑해도 뒤로가기를 우선해서 인식한다. PPSSPP로 게임하다가 SELECT 키를 누르면 게임에서 빠져나오게 된다. 이대로 두고 SELECT 기능을 다른 키에 매핑해서 쓰는 방법도 있지만, 불편해서 해결 방법을 찾아보기로 했다.

SELECT 키가 뒤로가기(Back)로 인식되는 까닭은 8BitDo 블루투스 어댑터로 연결된 게임 컨트롤러를 안드로이드에서 XBOX360 유선 컨트롤러로 인식하기 때문이다. Pro 2 컨트롤러뿐 아니라 듀얼쇼크3, 4도 마찬가지다. 8BitDo 블루투스 어댑터로 연결한 게임 컨트롤러는 안드로이드 OS가 XBOX360 유선 컨트롤러의 키 레이아웃을 적용한다.

이걸 해결하려면 일단 안드로이드 기기가 루팅되어 있어야 한다. OS의 키 레이아웃 파일에 접근해야 하기 때문이다. 내 GT-King은 루팅되어 있기에 가능했다.

<해결 방법>

1. 루트 탐색기 앱으로 /system/usr/keylayout 폴더에 있는 Vendor_045e_Product_028e.kl 파일(XBOX360 유선 컨트롤러 레이아웃)을 PC로 복사한다.

2. Vendor_045e_Product_028e.kl를 TXT 편집기로 열어서 아래 항목을 찾아 오른쪽처럼 바꾼다.

key 314   BACK → key 314   BUTTON_SELECT

혹시 HOME 버튼을 MODE 버튼으로 쓰고 싶다면 아래 항목도 바꾼다.

key 316   HOME → key 316   BUTTON_MODE

그리고 파일을 같은 이름으로 저장한다.

3. 키값을 수정해서 저장한 파일을 /system/usr/keylayout 폴더에 넣고, 권한을 644 준다(안 주면 기기 부팅에 문제 생김).

4. /system/usr/keychar 폴더에 있는 Vendor_045e_Product_028e.kcm을 삭제한다(이걸 지워줘야 SELECT 버튼의 뒤로가기, MODE 버튼의 종료 기능이 사라진다).

5. 재부팅

이렇게 하면, 컨트롤러의 select 버튼에서 뒤로가기 기능이 사라지고 에뮬 키 설정에서 SELECT 버튼이 Back이 아닌 SELECT로 보인다. 이제 PPSSPP에서 SELECT 버튼의 뒤로가기 우선 인식이 사라져서 자유롭게 매핑할 수 있다.

과정이 길었는데, 이렇게 하니 GT-King에서 8BitDo Pro 2 컨트롤러+블루투스 어댑터 조합을 문제 없이 쓸 수 있었다.

댓글 없음:

댓글 쓰기