Just a Blog

[스틱 개조] 데몬바이트 아케이드 인코더(Daemonbite Arcade Encoder) 적용 본문

Game

[스틱 개조] 데몬바이트 아케이드 인코더(Daemonbite Arcade Encoder) 적용

wehong 2021. 6. 9. 10:51

제로딜레이(Zero Delay) 보드를 적용했던 자작 스틱에 데몬바이트 아케이드 인코더를 적용해 보았다. 데몬바이트 아케이드 인코더는 'MickGyver'라는 제작자(아마 본명은 아니겠지?)가 아두이노 보드(Arduino Pro Micro)로 만들 수 있도록 소스를 공개(https://github.com/MickGyver/DaemonBite-Arcade-Encoder)한 프로그램이다. Github 페이지에도 기재되어 있지만, MiSTer에서 USB 폴링 레이트(polling rate)를 1ms로 했을 때 평균 0.74ms, 표준편차 0.29, 최대 1.28ms의 우수한 입력 지연(input lag) 품질을 가지고 있는 것으로 소개되고 있다. MisterAddons 트위터 계정에서 2020년 5월 28일 공개테스트 결과에 따르면, 8Bitdo, Brook, Hori 등 유명 컨트롤러와의 비교에서 거의 최상급의 입력 지연 품질을 보여줬다.

 

Ranking (Overall)

 

만드는 방법이나 비용이 크게 문제 되지 않을 것으로 판단하고 작업을 시작했는데, 기존 인코더 보드를 Arduino Pro Micro 보드로 바꾸면 될 것 같았고 Arduino Pro Micro 보드는 호환품이면 몇 천원으로 구매 가능할 것으로 생각했기 때문이다. 하지만 스틱 및 버튼과 보드 연결을 위해서 듀폰 케이블과 헤더핀도 필요했고, 아두이노 보드는 이전 보다 가격이 소폭 상승하기도 했다.

 

구매한 Arduino Pro Micro 호환품

 

최초에는 스틱/버튼 연결 케이블을 잘라 듀폰 케이블을 자른 것과 납땜하려고 생각했는데, 자세히 보니 스틱/버튼 케이블 끝의 커넥터에 듀폰 케이블 숫단자를 꽂아도 될 것 같아서 케이블을 손상시키지는 않았다. 여차하면 다시 원래 인코더 보드로 돌아가려는 심산이었다. 하지만 이것이 연결을 불안하게 하는 것도 같아서 좀 더 단단하게 고정하는 방법을 생각해 보려고 한다.

 

버튼 연결용 2핀 커넥터와 듀폰 커넥터를 연결한 모습

 

버튼쪽의 접지 단자는 여러 개인 반면 아두이노 보드 쪽의 접지 핀은 한 개이기 때문에 주변으로 그라운드 핀을 둘러서 박았다. 버튼 별로 필요한 접지를 신호선 근처에 바로 꽂게 하려는 의도였다.

 

아두이노 보드 주위로 박아버린 그라운드용 핀 헤더

 

연결에 치중해서 구성하다 보니 배선이 지저분 한데 정리가 필요해 보인다. 보드를 스틱 몸체 내부에 고정할 방법도 고려해야 할 것 같다. 스틱을 흔들거나 뒤집으면 내부가 엉망이 될 것 같은 생각이 든다.

 

배선 정리와 보드 고정 필요

 

Windows에서 컨트롤러 상태를 확인해 보니 'Arduino Leonardo'로 잡히고 잘 동작했다.

 

Windows에서 인식된 모습

 

버튼 및 레버 입력 인식 확인

 

MiSTer에 연결하면 조이스틱 ID(Joystick ID)가 2341:8036으로 잡힌다. MiSTer에서 조금 문제가 발생했는데, 후술하겠다.

 

MiSTer에서 인식된 모습

 

전혀 생각하지 못했는데, 버튼이나 스틱 입력이 발생할 때 마다 LED가 켜지는 모양이다. 하지만 스틱 내부에 위치시킬 것이므로 별다른 효용은 없을 것 같다.

 

입력 시 붉은색으로 LED가 켜진다

 

가지고 있는 여분 아케이드 스틱의 버튼이 11개여서 B10은 연결하지 않았다.

 

GitHub에서 제공되는 PS3 호한 기반 커넥션

 

드라마틱한 성능 향상을 체험한 것은 아니지만 MiSTer에서 쾌적하다는 느낌을 받을 정도였다. 1ms 폴링을 하지 않는 환경에서는 다른 것과 별 차이가 없을지도 모르겠다.

아쉬운 점은 터보(turbo) 기능을 가지고 있지 않은 것인데, 소스 코드를 봐서는 수정 가능할 지도 모르겠으나 그러면 소스코드 주석에 적혀 있는 타이밍 계산이 깨질 것 같다.

MiSTer에서 처음 스틱을 설정할 때 B7, B8 버튼이 두 번 눌러지는 것 같은 현상이 발생해 세팅이 어려운 문제가 있었다. 선 연결 문제인가 하고 Windows의 USB 컨트롤러 설정에서 버튼 입력을 확인해 보니 그쪽에서는 문제가 보이지 않았다.

 

스틱 구성

 

제로딜레이 보드가 저렴한 가격으로  주목을 받았었는데, 데몬바이트 아케이드 인코더도 아두이노와 약간의 부품들로 입력지연이 적은 스틱을 구성할 수 있는 방법 중 하나인 것 같다.

 

*업데이트

아두이노 보드 USB 연결선을 거치하기 위한 고리하나 추가해 줌

옆에 선 정리 고리 하나 추가

 

Comments