위모 리모컨(Wii Remote)을 컴퓨터에 연결하는 방법만 알면 리눅스에서도 닌텐도 Wii 게임을 즐길 수 있습니다. 에뮬레이터로 구동되는 게임이라면 PC 전용 게임 패드 대신 위모 리모컨을 사용해 어떤 게임이든 플레이할 수 있습니다.
이 가이드의 절차는 데비안(Debian), 민트(Mint), 우분투(Ubuntu) 등 데비안 계열 리눅스 배포판 기준으로 작성되었습니다.
위모 리모컨 사용을 위해 준비할 것들
Wii 컨트롤러 외에 아래의 리눅스 패키지들을 설치해야 합니다.
- lswm
- wminput
- libcwiid1
위 도구들은 터미널에서 단 한 줄의 명령어로 모두 설치할 수 있습니다.
sudo apt-get install lswm wminput libcwiid1
RPM 기반 배포판(Fedora, CentOS 등)을 사용 중이라면 YUM 또는 유사한 패키지 관리자로 동일하게 설치할 수 있습니다.
Wii 리모컨을 리눅스에 연결하는 방법
명령줄 인터페이스를 통해 Wii 리모컨을 설정할 수 있습니다. 아래 순서대로 진행하세요.
리눅스 명령 터미널을 연 뒤, Wii 컨트롤러의 블루투스 주소를 확인하기 위해 다음 명령어를 입력합니다.
lswm
프롬프트가 나타나면 Wii 컨트롤러의 1번과 2번 버튼을 동시에 길게 누릅니다. 정상적으로 인식되면 터미널에 다음과 같은 문자·숫자 조합이 표시됩니다.
00:1B:7A:4F:61:C4
참고: 반드시 컴퓨터의 블루투스가 켜져 있어야 합니다. PC가 위모 리모컨을 감지하기까지 몇 번 시도해야 할 수 있습니다.
Nano 편집기를 열어 Wii 버튼을 키보드 키에 매핑하는 설정 파일을 작성합니다. 터미널에 다음 명령어를 입력합니다.
sudo nano /etc/cwiid/wminput/gamepad
아래 내용을 복사해서 Nano 편집기 파일 맨 아래에 붙여넣습니다.
Wiimote.Down = KEY_RIGHT
Wiimote.Left = KEY_DOWN
Wiimote.Right = KEY_UP
Wiimote.1 = KEY_SPACE
Wiimote.2 = KEY_LEFTCTRL
Wiimote.A = KEY_LEFTALT
Wiimote.B = KEY_RIGHTCTRL
Wiimote.Plus = KEY_LEFTSHIFTCTRL + O를 눌러 설정 파일을 저장합니다.
CTRL + X를 눌러 Nano 편집기를 종료합니다.
버튼 매핑 설정을 마쳤다면 아래 명령어를 실행합니다.
sudo wminput -c /etc/cwiid/wminput/gamepad
프롬프트가 뜨면 다시 한번 Wii 컨트롤러의 1번과 2번 버튼을 동시에 길게 누릅니다. 화면에 "ready"라는 단어가 표시되면 연결 성공입니다. 이제 원하는 게임을 실행하고 위모 리모컨으로 플레이해 보세요.
팁: Wii 컨트롤러의 큰 장점 중 하나는 십자(D-pad) 방향키입니다. Xbox One의 아날로그 스틱보다 감도가 낮아 옛날 고전 게임을 플레이할 때 오히려 더 좋은 조작감을 제공합니다.
리눅스용 Wii 리모컨 설정 파일 이해하기
새로 만든 설정 파일에는 이미 다음과 같은 기본 텍스트가 포함되어 있을 수 있습니다.
# gameport
Classic.Dpad.X = ABS_X
Classic.Dpad.Y = ABS_Y
Classic.A = BTN_A
파일 내 각 줄의 형식은 Wii 컨트롤러 버튼 = 키보드 키입니다. 예를 들어,
Wiimote.Up = KEY_UP
이 설정은 위모 리모컨의 Up 버튼을 키보드의 위쪽 방향키에 연결합니다. 하지만 대부분의 게임에서는 Wii 리모컨을 옆으로 돌려 잡아야 하므로, Up 버튼을 왼쪽 방향키에 매핑하는 것이 더 자연스러울 수 있습니다.
Wiimote.Up = KEY_LEFT
추천 버튼 매핑표
| Wii 리모컨 버튼 | 리눅스 키보드 |
|---|---|
| Up | Left Arrow (←) |
| Down | Right Arrow (→) |
| Left | Down Arrow (↓) |
| Right | Up Arrow (↑) |
| 1 | Space |
| 2 | Left CTRL |
| A | Left ALT |
| B | Right CTRL |
| Plus (+) | Left Shift |
대부분의 에뮬레이터는 버튼 매핑 과정을 간편하게 지원하므로, Wii 리모컨을 리눅스에 연결한 후 특정 게임이나 콘솔에 맞게 조작 설정을 더 세부적으로 커스터마이징할 수 있습니다. 일부 PC 게임은 마우스 키까지 Wii 컨트롤러에 매핑할 수 있도록 허용합니다.
팁: 인터넷 아카이브(Internet Archive)의 아케이드 사이트에서 레트로 게임용 추천 컨트롤러 설정을 참고할 수 있습니다.
Wii 리모컨에서 설정 가능한 버튼 목록
리눅스에서는 Wii 클래식 컨트롤러(Wii Classic Controller)와 Wii 눈척(Wii Nunchuk) 등 여러 Wii 액세서리를 함께 사용할 수 있습니다. gamepad 파일에서 설정할 수 있는 모든 Wii 컨트롤러 버튼은 다음과 같습니다.
Wii 리모컨 (Wiimote)
- Wiimote.Up
- Wiimote.Down
- Wiimote.Left
- Wiimote.Right
- Wiimote.A
- Wiimote.B
- Wiimote.1
- Wiimote.2
- Wiimote.Plus
- Wiimote.Minus
- Wiimote.Home
- Wiimote.Dpad.X
- Wiimote.Dpad.Y
Wii 눈척 (Nunchuk)
- Nunchuk.C
- Nunchuk.Z
- Nunchuk.Stick.X
- Nunchuk.Stick.Y
Wii 클래식 컨트롤러 (Classic Controller)
- Classic.Up
- Classic.Down
- Classic.Left
- Classic.Right
- Classic.Minus
- Classic.Plus
- Classic.Home
- Classic.A
- Classic.B
- Classic.X
- Classic.Y
- Classic.ZL
- Classic.ZR
- Classic.L
- Classic.R
- Classic.Dpad.X
- Classic.Dpad.Y
- Classic.LStick.X
- Classic.LStick.Y
- Classic.RStick.X
- Classic.RStick.Y
- Classic.LAnalog
- Classic.RAnalog
유의사항: 안타깝게도 리눅스 환경에서는 Wii 리모컨의 모션 컨트롤(동작 인식) 기능을 설정할 수 없습니다. 하지만 동작 인식이 필요하지 않은 Wii 게임 ROM이라면 충분히 즐길 수 있습니다.
리눅스 키보드 매핑 코드표
아래는 설정 파일을 작성할 때 참고할 수 있는 리눅스 키보드 키 코드 가이드입니다.
| 키 | 코드 |
|---|---|
| Escape | KEY_ESC |
| 0 | KEY_0 |
| 1 | KEY_1 |
| 2 | KEY_2 |
| 3 | KEY_3 |
| 4 | KEY_4 |
| 5 | KEY_5 |
| 6 | KEY_6 |
| 7 | KEY_7 |
| 8 | KEY_8 |
| 9 | KEY_9 |
| - (마이너스) | KEY_MINUS |
| = (이퀄) | KEY_EQUAL |
| BackSpace | KEY_BACKSPACE |
| Tab | KEY_TAB |
| Q | KEY_Q |
| W | KEY_W |
| E | KEY_E |
| R | KEY_R |
| T | KEY_T |
| Y | KEY_Y |
| U | KEY_U |
| I | KEY_I |
| O | KEY_O |
| P | KEY_P |
| [ | KEY_LEFTBRACE |
| ] | KEY_RIGHTBRACE |
| Enter | KEY_ENTER |
| CTRL (왼쪽) | KEY_LEFTCTRL |
| A | KEY_A |
| S | KEY_S |
| D | KEY_D |
| F | KEY_F |
| G | KEY_G |
| H | KEY_H |
| J | KEY_J |
| K | KEY_K |
| L | KEY_L |
| ; (세미콜론) | KEY_SEMICOLON |
| ' (어포스트로피) | KEY_APOSTROPHE |
| # | — |
| Shift (왼쪽) | KEY_LEFTSHIFT |
| \ (백슬래시) | KEY_BACKSLASH |
| Z | KEY_Z |
| X | KEY_X |
| C | KEY_C |
| V | KEY_V |
| B | KEY_B |
| N | KEY_N |
| M | KEY_M |
| , (쉼표) | KEY_COMMA |
| . (마침표) | KEY_DOT |
| / (슬래시) | KEY_SLASH |
| Shift (오른쪽) | KEY_RIGHTSHIFT |
| ALT (왼쪽) | KEY_LEFTALT |
| Space bar | KEY_SPACE |
| Caps Lock | KEY_CAPSLOCK |
| F1 | KEY_F1 |
| F2 | KEY_F2 |
| F3 | KEY_F3 |
| F4 | KEY_F4 |
| F5 | KEY_F5 |
| F6 | KEY_F6 |
| F7 | KEY_F7 |
| F8 | KEY_F8 |
| F9 | KEY_F9 |
| F10 | KEY_F10 |
| F11 | KEY_F11 |
| F12 | KEY_F12 |
| Num Lock | KEY_NUMLOCK |
| Shift Lock | KEY_SHIFTLOCK |
| 0 (키패드) | KEY_KP0 |
| 1 (키패드) | KEY_KP1 |
| 2 (키패드) | KEY_KP2 |
| 3 (키패드) | KEY_KP3 |
| 4 (키패드) | KEY_KP4 |
| 5 (키패드) | KEY_KP5 |
| 6 (키패드) | KEY_KP6 |
| 7 (키패드) | KEY_KP7 |
| 8 (키패드) | KEY_KP8 |
| 9 (키패드) | KEY_KP9 |
| . (키패드 마침표) | KEY_KPDOT |
| + (키패드 플러스) | KEY_KPPLUS |
| - (키패드 마이너스) | KEY_KPMINUS |
| 왼쪽 방향키 | KEY_LEFT |
| 오른쪽 방향키 | KEY_RIGHT |
| 위쪽 방향키 | KEY_UP |
| 아래쪽 방향키 | KEY_DOWN |
| Home | KEY_HOME |
| Insert | KEY_INSERT |
| Delete | KEY_DELETE |
| Page Up | KEY_PAGEUP |
| Page Down | KEY_PAGEDOWN |