티스토리 뷰

요즘따라 IIDX가 재밌더라. 굳이 오락실에 가서 게임을 해야 할 이유도 모르겠었고, 특히 IIDX는 오래되고 비싼 게임이라는 이미지라서 내가 할 일이 없을 줄 알았다. 그런데 2주 사이에 오락실에만 6만원은 썼다. 그러고 나니, 어두컴컴하고 시끄러운 오락실에서 1시간에 1만원씩 써가면서 게임을 할 바에는 집에서 편안하게 할 방법을 찾게 되었다.

 

물론 컨트롤러, 즉 비트콘을 사려고 한다면 해답은 정해져 있다. DJ Dao의 PHOENIXWAN. 그러나 50만원의 가격은 부담스러웠다. 그 와중에 마침 구형 ASC 컨트롤러를 저렴한 가격에 중고로 구입하게 되었다.

 

도대체 왜 박스에 보증서를 붙여둬서 보증서를 따로 보관할 수 없게 만들었는지 모르겠다.

이런 짤막한 설명서 동봉. 차후의 A/S를 위해서 박스를 보관하라고는 하지만, 박스 크기가 지나치게 크기도 하고, 어차피 개조할 예정인데 공식 수리가 무슨 의미겠는가. (사실 이 오래된 물건을 수리해 줄리가 없으니 아무래도 좋다)

 

이 거대한 물건을 두고 할 일은 크게 두 가지이다.

1. 버튼 교체

2. 기판 교체로 PC에서 아날로그 턴테이블 인식시키기

 

1. 버튼 교체

겉으로만 보면 아케이드를 완벽 재현한 듯하지만, 저 버튼은 그 악명높은 "박힘콘"의 버튼과 같다. 100g 스프링과  100g 스위치의 조합으로 덜 박힐것은 같지만, 실제로는 더 잘 박힌다는 이야기도 있다. 끔찍한 무게감과 삐걱거리는 키감 등등, 게임을 끔찍이도 못하는 내게도 기본 버튼은 아니었다.

실제 아케이드 기계야 버튼 교체는 그냥 하면 되는, 일상적인 유지보수니까 글 제목에 "개조"라고 달 이유도 없다. 하지만, 저 버튼들은 플라스틱 사출이라서 그냥 교체할 수가 없다. 키판을 뜯어서 튀어나온 플라스틱 사출을 갈아줘야 기성 버튼을 장착할 수 있다.

전동 조각기가 있었다면 10분이면 충분했겠지만, 수공구로 갈아내는 데에 3시간은 쓴 것 같다. 큰 부분은 니퍼로 잡아 뜯고, 나머지 부분은 줄(야스리...) 로 갈아냈다.

그러면 아케이드의 버튼을 그대로 장착할 수 있다. 사진에서는 산와 OBSA-45UK 버튼을 장착했다.

 

정말 믿을 수 없게도, 기본 스위치는 케이블과 납땜이 되어있기에 전부 잘라내고 커넥터를 달아줬다. 산와 스위치는 기본으로 100g 스프링과 100g 스위치가 달려있어서, 20g 스프링과 50g 스위치로 바꿔줬다.

 

기본 버튼은 두께가 아주 얇기 때문에, 두꺼운 아케이드 버튼과는 간섭이 있어서 이대로는 뚜껑을 닫을 수가 없다.

그러니 키판의 하판도 그에 알맞게 구멍을 뚫어야 한다. 심지어 키판이 결합되는 본체 부분도 마찬가지로 잘라서 공간을 확보해야 한다. 나는 이 모든 일을 아크릴 칼과 줄톱을 들고 수공구로 했다... 시간이 아깝다.

아무튼, 버튼을 교체하는 것이야 그냥 알맞게 케이블만 연결해주고 열심히 갈고 자르면 되는 일.

 

2. 기판 교체

기본으로 장착된 기판이다. 포토인터럽터의 신호를 74시리즈 IC칩 3개를 통해 양방향 회전 신호로 분리해내서 PS2와의 통신을 담당하는 칩으로 보낸다. 물론 PS2에서 비트매니아 CS만 하기에는 별 문제가 없겠지만, PC에서 컨버터를 통해 사용하려면 다양한 불편이 뒤따른다.

양방향 회전 신호밖에 주어지지 않으니, 스크래치를 돌리는 속도가 전달되지 않아 선곡 화면에서 불편할 뿐더러, 인코더의 부족한 PPR을 보상하기 위해 입력이 멈추고 나서도 한참동안 회전 신호가 전달된다. 게임에서는 짧은 간격의 스크래치를 인식시키기 위해서는 반드시 스크래치를 양 방향으로 번갈아서 입력해야 하며, 롱노트 입력을 끊기 위한 백스핀 스크래치를 더 빠르게 입력해야 하는 불편이 따른다. PS2 시리즈에서야 이를 감안해서 스크래치 판정이 후한 보정이 있다. CS판의 발매는 롱노트의 도입 (17 SIRIUS)보다 먼저 끝났으니 (16 EMPRESS) 롱노트 관련 문제는 없다. 그렇지만 인피니타스를 하거나 BMS를 하려면......

기판은 다음과 같이 되어있다. A와 B신호는 일반적인 인코더와 같이 사용하면 되고, VCC 경우에는 1.3V 정도에서 8mA정도 흐른다고 보면 되겠다. 실제 기판은 3.3V? 3.45V? 에서 330옴 저항을 통해 연결된다. 나는 3.3V에서 300옴 저항으로 연결했는데 충분했다.

 

https://github.com/progmem/re-usbemani

 

GitHub - progmem/re-usbemani: [WIP] USBemani v3's current progress

[WIP] USBemani v3's current progress. Contribute to progmem/re-usbemani development by creating an account on GitHub.

github.com

이제 기판을 만들어야 하는데, 마침 좋은 프로젝트가 있었다. 프로 마이크로에 해당 펌웨어를 올리고 선만 잘 이어주면 된다.

몇가지 유의할 점이 있다.

 

1) beatmani Premium controller 인식시키기

descriptors.c에서, VendorID = 0x1CCF , ProductID = 0x8048 로 바꿔준다.

ManufacturerString은 "Konami Amusement",

ProductString은 "beatmania IIDX controller premium model"로 지정하면 된다. 

이렇게 옵션을 주면 안드로이드용 IIDX Ultimate Mobile에서 컨트롤러로 정상 인식되고 infinitas에서도 별 문제 없이 작동했다.

 

2) 키 배열

스크래치의 절대값 입력을 x축으로 바꿔야한다.

descriptors.c에서 USBemaniDeviceReport[]를 보면

HID_RI_USAGE(8, 0x30),            // X
...
HID_RI_USAGE(8, 0x36),            // Slider

부분이 있다. 이를 다음과 같이 맞바꿔준다.

HID_RI_USAGE(8, 0x36),            // X
...
HID_RI_USAGE(8, 0x30),            // Slider

 

키 배치로는, 컨트롤러의 1번부터 7번 키가 PC에서 1번부터 7번까지로 인식되게 지정하면 충분하다. 여기서 E1, ... E4는 PC에서 인식되는 키 기준으로 9, 10, 11, 12로 잡아줘야 한다. (8번을 건너뛴다)

PS2에서 스크래치를 정상적으로 사용하려면, hold time을 1200ms 정도는 주어야 했다.

스크래치 PPR은 56, target_max=256, target _rot = 144 정도 주었다.

 

3) PlayStation 2

프로 마이크로 5V 버전을 사용했기 때문에 Logic Level Converter로 PS2의 3.3V로 신호를 내렸다.

원래는 github repo의 설명대로 transistor 를 이용해서 open collector output을 구현하려 했으나 실패했고, MISO 라인도 마찬가지로 logic level convert에서 direct로 연결했다.

 

MISO 라인을 logic level converter 없이 PS2에 바로 연결했을 때에는 오작동이 심각하였다. 2P 단자에서는 전혀 인식이 되지 않았고, 1P 단자에서도 입력이 지멋대로 들어가는 문제가 있었다.

 

엉망인 회로 상태.

원래 의도한 회로이다.

 

결론:

PC와 PS2 모두에서 정상적으로 작동하는, 버튼 교체도 마음대로 할 수 있고 스크래치 크기도 아케이드와 똑같고 인식에도 큰 문제 없는 컨트롤러를 저렴하게 갖게 되었다.

그러나 원판의 골조가 연약하고 외관이 전부 얇은 ABS 판으로만 구성되어있어서 아쉬운 점이 많다.

또한 스크래치의 경우도 톱니가 너무 성겨서(PPR이 너무 낮아서. IIDX 구기체의 실제 PPR은 72) 미세한 입력이 씹히는듯한? 기분이 있다.

향후에 개조를 더 한다면, 외부 프레임을 새로 만들어서 버튼과 스크래치를 이식하고, 3D printing으로 더 많은 톱니로 교체해서 PPR을 개선하면 좋겠다.

 

아니, 돈벌어서 피닉스완 사야지...

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함