ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 구형 노트북을 레트로 게임 머신으로 - 2. PS 듀얼쇼크3 연결하기
    IT 생활/구형 노트북 생명 연장 2020. 9. 15. 23:10

    이 글은 구형 리눅스 노트북에 MAME 설치하기의 다음 이야기로 Playstation의 Dualshork3 (듀얼쇼크3)을 MAME에 조이스틱으로 연결하는 방법에 대해서 설명합니다. 

    구형 노트북을 레트로 게임 머신으로 - 1.MAME 설치하기

    안녕하세요 류똥구입니다. 제가 평소에 게임을 즐겨하지는 않지만 가끔은 어릴적에 하던 오락실 게임들이 하고 싶을 때가 있습니다. 오락실도 예전 만큼 많이 있지 않기도 하고 아저씨가 가서 �

    welcome1208.tistory.com

    안녕하세요 류똥구입니다.

    MAME를 설치하고 난 뒤 하루에 한판씩은 게임을 하고 있었는데요.

    키보드로 게임을 하니까 아무래도 오락실에서 하던 느낌이 안 살더라구요.

    그래서 집에서 방치되어 있던 듀얼쇼크3로 게임을 하려고 알아봤습니다.

     

    다들 집에 남는 듀얼쇼크 정도는 있지 않나요?

    그럼 이번 포스팅에서는 리눅스 (Ubuntu 계열)에 듀얼쇼크3를 연결하고 MAME에 조이스틱을 설정하는 방법에 대해서 설명하도록 하겠습니다.


    확인 환경

    • Intel i5-3340M (4 vcore)
    • 8GB RAM
    • 128GB SSD
    • Bluetooth 4.0 (듀얼쇼크3가 bluetooth2.0을 사용하며로 2.0 이상 버전이면 가능)
    • LXLE 리눅스 (Ubuntu의 경량버전 리눅스 배포판) (Ubuntu 16.04.6 LTS와  동일 환경)
    • Playstation Dualshork CECHZC2K
    • Data 전송용 USB mini type B케이블 (충전 시 필요)

     

    듀얼쇼크 준비

    아마 저와 같다면 여러분들도 듀얼쇼크가 집안 어딘가에 쳐박혀 있다가 나왔을 가능성이 큽니다.

    듀얼쇼크가 배터리 용량이 얼마 없어서 방전이 다 되었겠지만 혹시나 하는 마음에 PS버튼을 꾸욱 눌러서 켜지는지 확인해 봅니다.

     

    사진 출처 :https://www.cnet.com/reviews/sony-dualshock-3-review/

     

    듀얼쇼크의 앞면이라고 해야나요? 위 그림에 빨간색 네모 박스 안에 있는 4개의 빨간색 LED가 점등되면 바로 이어서 진행하시면 됩니다. 그렇지 않다면 방전이 된 것이므로 충전을 한 뒤에 진행하면 됩니다.

     

    듀얼쇼크를 충전 또는 노트북에 연결을 위해 가져온 USB 케이블이 Mini Type B인지 확인합니다.

     

    사진 출처 :https://kr.element14.com/qualtek-electronics/3021015-10/usb-cable-2-0-plug-a-mini-b-3/dp/2809750

     

    Mini Type B 케이블은 한쪽은 일반적으로 많이 사용되는 Type A이고 다른 한쪽은 사다리꼴 모양으로 되어 있습니다.

    듀얼쇼크는 기본적으로 Data 전송용 USB 케이블을 사용해야 한다고 합니다.

     

     

    출처 : https://m.blog.naver.com/PostView.nhn?blogId=ck_data&logNo=221305034432&proxyReferer=https:%2F%2Fwww.google.com%2F

     

    데이터 케이블은 우리가 흔히 본 usb 디스크 처럼 4개의 접촉 단자가 있습니다.

    Mini Type B 케이블의 Type A 부분을 봐서 데이터 전송이 가능한 케이블인지 확인합니다.

     

     

    듀얼쇼크 유선 연결

    듀얼쇼크와 컴퓨터를 USB Mini Type B 케이블로 연결하여 줍니다.

    $ lsusb
    Bus 002 Device 017: ID 054c:0268 Sony Corp. Batoh Device / PlayStation 3 Controller
    Bus 002 Device 007: ID 043e:70d6 LG Electronics USA, Inc. 
    Bus 002 Device 006: ID 0930:6545 Toshiba Corp. Kingston DataTraveler 102/2.0 / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick
    Bus 002 Device 005: ID 04ca:0061 Lite-On Technology Corp. 
    Bus 002 Device 004: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
    Bus 002 Device 003: ID 0480:a20c Toshiba America Inc 
    Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 004: ID 0c45:64e0 Microdia 
    Bus 001 Device 005: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
    Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    

    lsusb 명령으로 usb에 연결된 디바이스들을 확인해서 PlayStation 3 Controller가 있는지 확인합니다.

     

    듀얼쇼크 무선 연결

    컴퓨터와 USB로 연결이 되어 있다면 케이블을 분리해 줍니다.

     

    컴퓨터에 듀얼쇼크를 연결하기 위해서는 bluetooth 관리 툴인 bluez 설치가 필요합니다.

    다음 명령으로 설치가 되어 있는지 확인 할 수 있습니다.

    명령 결과 bluez가 설치 되어 있으면  bluez 설치는 넘어가시기 바랍니다.

    $ apt list | grep bluez
    
    WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
    
    bluez/xenial-updates,xenial-security,now 5.37-0ubuntu5.3 amd64 [installed]
    bluez-btsco/xenial 1:0.50-0ubuntu6 amd64
    bluez-cups/xenial-updates,xenial-security,now 5.37-0ubuntu5.3 amd64 [installed]
    bluez-dbg/xenial-updates,xenial-security 5.37-0ubuntu5.3 amd64
    bluez-hcidump/xenial-updates,xenial-security 5.37-0ubuntu5.3 amd64
    bluez-obexd/xenial-updates,xenial-security,now 5.37-0ubuntu5.3 amd64 [installed,automatic]
    bluez-tests/xenial-updates,xenial-security 5.37-0ubuntu5.3 amd64
    bluez-tools/xenial 0.2.0~20140808-5 amd64
    libkf5bluezqt-data/xenial,xenial 5.36.0-0ubuntu1~ubuntu16.04~ppa1 all
    libkf5bluezqt-dev/xenial 5.36.0-0ubuntu1~ubuntu16.04~ppa1 amd64
    libkf5bluezqt6/xenial 5.36.0-0ubuntu1~ubuntu16.04~ppa1 amd64
    libkf5bluezqt6-dbg/xenial 5.18.0-0ubuntu1 amd64
    python-bluez/xenial 0.22-1 amd64

    bluez가 설치 되지 않은 분들은 다음 명령들을 순차적으로 실행하여 설치하도록 합니다.

    $ sudo apt-get install bluez
    $ systemctl enable bluetooth
    $ systemctl start bluetooth
    $ systemctl status bluetooth
    ● bluetooth.service - Bluetooth service
       Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
       Active: active (running) since Tue 2020-09-15 21:46:44 KST; 1h 48min ago
         Docs: man:bluetoothd(8)
     Main PID: 2944 (bluetoothd)
       Status: "Running"
       CGroup: /system.slice/bluetooth.service
               └─2944 /usr/lib/bluetooth/bluetoothd
    
    Sep 15 21:46:44 ryuNote bluetoothd[2944]: Not enough free handles to register service
    Sep 15 21:46:44 ryuNote bluetoothd[2944]: Not enough free handles to register service
    Sep 15 21:46:44 ryuNote bluetoothd[2944]: Not enough free handles to register service
    Sep 15 21:46:44 ryuNote bluetoothd[2944]: Current Time Service could not be registered
    Sep 15 21:46:44 ryuNote bluetoothd[2944]: gatt-time-server: Input/output error (5)
    Sep 15 21:46:44 ryuNote bluetoothd[2944]: Not enough free handles to register service
    Sep 15 21:46:44 ryuNote bluetoothd[2944]: Not enough free handles to register service
    Sep 15 21:46:44 ryuNote bluetoothd[2944]: Sap driver initialization failed.
    Sep 15 21:46:44 ryuNote bluetoothd[2944]: sap-server: Operation not permitted (1)
    Sep 15 23:28:04 ryuNote bluetoothd[2944]: sixaxis: compatible device connected: PLAYSTATION(R)3 Controller (054C:0268)

    bluetooth가 위와 같이 active (running) 상태이면 정상적으로 설치되어 동작 중인 것 입니다.

     

    설치한 bluetooth 툴을 이용하여 다음과 같이 수행합니다.

    $ bluetoothctl
    [NEW] Controller 24:F5:AA:B8:D3:D2 ryuNote [default]
    [NEW] Device 00:06:F7:85:C1:71 PLAYSTATION(R)3 Controller     <- 블루투스로 듀얼쇼크 인식
    [bluetooth]# agent on  <- 블루투스 연결 agent 시작
    Agent registered
    [bluetooth]# default-agent   <- 블투투스 agent로 default agent 사용
    Default agent request successful
    [bluetooth]# power on   <- 컴퓨터의 블루투스 전원 켬
    Changing power on succeeded
    [bluetooth]# discoverable on   <- 페어링을 위해 컴퓨터 블루투스 디바이스 노출
    Changing discoverable on succeeded
    [CHG] Controller 24:F5:AA:B8:D3:D2 Discoverable: yes
    [bluetooth]# scan on   <- 주변에 블루투스 장비 스캔
    Discovery started
    [CHG] Controller 24:F5:AA:B8:D3:D2 Discovering: yes
    

    bluetooth 툴이 켜진 상태에서 듀얼쇼크의 PS 버튼을 꾹 눌러서 페어링 모드를 시작합니다.

    [bluetooth]# scan on
    Discovery started
    [CHG] Controller 24:F5:AA:B8:D3:D2 Discovering: yes
    [CHG] Device 00:06:F7:85:C1:71 Connected: yes   <- 듀얼쇼크 인식
    Authorize service
    [agent] Authorize service 00001124-0000-1000-8000-00805f9b34fb (yes/no): yes <- 페어링 승인
    [PLAYSTATION(R)3 Controller]# scan off   <- 페어링을 위한 scan 종료
    [CHG] Device 40:8C:E9:43:95:F2 RSSI is nil <- 페어링 안 맺은 장비들은 인식 끊김
    [CHG] Device 4C:4C:FC:04:7E:01 RSSI is nil
    Discovery stopped
    [CHG] Controller 24:F5:AA:B8:D3:D2 Discovering: no
    [PLAYSTATION(R)3 Controller]# quit   <- bluetooth 툴 종료
    

    여기까지 완료하였으면 컴퓨터와 듀얼쇼크가 블루투스로 정상적으로 페어링 되었습니다.

    듀얼쇼크가 1p로 연결된 것을 확인 할 수 있습니다.

     

    듀얼쇼크 연결 확인

    jstest-gtk를 사용하여 유선 또는 무선으로 연결된 듀얼쇼크가 정상적으로 동작하는지 확인하기 위해서 줍니다.

     

    우선, 조이스틱 툴인 jstest-gtk를 설치해 줍니다.

    $ sudo apt-get install jstest-gtk

    jstest-gtk 명령으로 조이스틱 툴을 실행해 줍니다.

    $ jstest-gtk

     

    jstest-gtk 실행 화면

     

    jstest-gtk가 실행되면 자동으로 컴퓨터에 연결되어 있는 조이스틱들을 보여줍니다.

    앞서서 lsusb로 확인한 것과 같이 PlayStation 3 Controller가 있는 것을 확인할 수 있습니다.

     

    PlayStation 3 Controller를 더블클릭해 줍니다.

     

    jstest-gtk에서 듀얼쇼크 확인 화면

     

    듀얼쇼크의 키 입력 확인 및 키 매핑을 할 수 있는데요.

     

    좌측 6축키를 아래로 하였을 떄

     

    듀얼쇼크의 키들의 입력이 제대로 인식 되는지 확인 해 줍니다.

    연결이 되어 있다면 입력이 정상적으로 인식하게 됩니다.

    MAME 키 매핑

    mame를 실행시킨 뒤 input 설정으로 들어갑니다

    MAME 실행화면
    키 설정 메뉴

    player 1 controls를 선택해서 1p 키 입력 설정 화면으로 이동합니다.

    키 설정 화면

    게임 상에서 사용할 키에 맞춰서 input이 기본적으로 지정이 되어 있는데요.
    변경하고 싶은 키에 가서 엔터를 누르고 조이스틱의 키를 입력해줍니다.

    한가지 키에 입력을 여러가지 넣고 싶으면 한번 입력값을 설정한 뒤에 다시 해당 키에 대해서 다시 엔터를 누른 다음에 조이스틱의 키를 입력해주면 됩니다.



    이상으로 듀얼쇼크를 리눅스 컴퓨터에 연결해서 MAME에서 사용하는 방법에 대해서 알아보았습니다.

    댓글

Designed by Tistory.