2018/01/16

[Korean] GBS-8200 아케이드 기판용 업스캔 컨버터의 개조

2020/6/27 update
이 글을 작성한 뒤로 펌웨어가 많이 업데이트되어 현재는 웹페이지에서 설정을 바꿀 수 있게 되었습니다. 하지만 기능추가로 인한 요구성능이 올라가서 최신소스로는 더이상 Arduino Mega/Uno/Nano계열을 사용할 수 없습니다. 대신 ESP8266칩을 쓰는 nodeMCU를 사용해야 하니 주의바랍니다. 과거버전을 사용할 경우 롬을 과거 펌웨어로 써야합니다. 필요한 사람을 위해 상기 하드웨어의 마지막 펌웨어를 올려둡니다.

gbs-8200_arduino_mega_uno_nano_firmware_final

 십수년 전부터 아케이드 기판용 업스캔 컨버터가 중국에서 싼 값에 제작되어, 지금까지도  LCD기계 등에 많이 들어간 GBS-8200은 그냥 싼 맛에 쓰는 장비입니다. 240p 또는 480i 신호를 보드에 입력해주면 업스캔컨버팅을 거쳐 640x480, 800x600, 1024x768, 1360x768 중 하나를 설정에서 지정한대로 DSUB포트를 통해 출력해줍니다. 앞서 말했듯이 싼 맛이라 화질은 온갖 잡티가 보이고 업스캔 컨버터 자체 노이즈가 발생하며, 자체딜레이도 3프레임 정도로 그냥저냥 화면 띄워주는 용도외에는 별다른 장점이 없습니다. 근데 이 싸구려 컨버터가 개조를 통해 잔노이즈는 어쩔 수 없지만 XRGB2와 3급의 화질에 버금가며 자체딜레이도 단 1프레임(!)으로 줄일 수 있는 방법을 서양의 포럼에서 활발히 진행되고 있는 개조소식을 알게되어 소개할까 합니다. 이 글을 읽기 앞서 과거 포스팅내용의 2번 항목을 보시면 대충 어떻게 생긴 물건인지 알 수 있습니다.

 이 개조는 이 포럼(영어)에서 dooklink에 의해 프로젝트가 시작되었으며, 그 후 mybook4과 Ian Stedman 등 많은 사람들의 기여로 다듬어져 왔습니다. 요점은 GBS-8200에 컨트롤칩과 통신하기 위한 통신포트가 있는데 사용자들이 일반적으로 쓸 일은 없었습니다만, 이 포트로 외부로부터 보드의 직접제어를 통한 쓸데없는 필터사용 억제, 라인더블링(또는 x4), 필요시에만 디인터레이스처리 등 중요 필터만 남기고 모두 비활성화한 결과, 240p 무지연/480i 1프레임지연240p-480i 전환간에 거의 순간에 가까운 전환(!!), RGB게인/동기신호 자동제어라는 경이적인 물건으로 바뀌게 됩니다. 특히 프로그레시브와 인터레이스 화면의 전환은 40만원에 호가하는 프레임마이스터나 20만원을 호가하는 가장 지연이 짧다고 알려진 OSSC의 경우에도 짧은 전환암전이 있습니다만, 이건 정말 문자그대로 1프레임 이하 또는 마이크로초(us)에 가까울 정도로 엄청나게 빠른 속도로 전환합니다. 한 부분에 지나지 않지만 인터넷에서 단 2만원가량주고 살 수 있는 물건이 20-40만원을 호가하는 물건보다 압도하는 성능입니다. 
참고로 이 개조를 하게되면 컴포넌트 입력 "아직은" 안됩니다.

개조후 특징
1. 입력지연 ~50ms -> 16.6ms
2. 240p/480i 전환속도 : 매우 빠름 (100ms 미만으로 생각됨)
3. RGB 밝기 자동제어
4. 업스캔모드 : blend -> line doubler (2x), tripler (3x), quadrupler (4x)

업스캔모드가 라인더블러로 전환되기에 480i화면은 약간 떨려보일 수 있습니다. 정확히 말하자면 XRGB-2/2+/3 B1과 같은 결과가 나옵니다. 단 해상도가 480p만이 아닌 롬 구울 때 세팅에 따라 720p, 960p도 가능합니다. (4:3/16:9 세팅도 각각 가능)

 dooklink가 제안한 방식은 라즈베리파이를 사용한 직접 커맨드입력으로 해상도설정을 제어하는 방식이었습니다. 사용하는데는 문제없지만, 자동스크립트를 제작하지 않는이상 일일이 키보드로 제어해야 하기에 약간 실용성 면에서는 부족한 면이 있었습니다. 그 후, 3년정도의 시간이 흘러 rama라는 사람이 혜성처럼 나타나 dooklink외 기여자들이 만들어 놓은 소스를 바탕으로 아두이노를 사용한 자동제어방법을 제안하였습니다. 따라서 사용자입장에서는 그냥 꽂으면 알아서 인식해서 알아서 띄웁니다. 크게 실용적으로 쓰기에 개선이 되었기에 포럼에서 소개한 방법을 토대로 한번 만들어 봤습니다. 이 작업은 납땜 및 케이블 제작이 필요합니다.



 GBS-8200 V4 2009년 생산으로 여겨지는 보드를 구입하고 자그마한 마스터기판에 아두이노 나노 호환 기판을 꼽고 자작회로를 작성한 후, 각 필요한 포트를 케이블로 연결해주었습니다. 납땜으로 케이블제작 없이 직접 연결하여도 상관없습니다. 전원은 아두이노에 USB로 공급 및 보드도 따로 공급해도 상관없고, 그림과 같이 GBS-8200과 아두이노의 5V VCC를 서로 연결하여 어느 한쪽만 전원을 공급해도 알아서 전원이 들어오게끔 해도 괜찮습니다. 핀은 다음과 같이 연결해줍니다.

1. 필요한 물품리스트
A. GBS-8200/8220, HD 9800 등. 아마존, 이베이, 알리익스프레스 등이 싸며 세운상가에서도 구할 수는 있습니다. 사진상에 보이는 케이블이 연결된 포트가 처음부터 있는 GBS-8220 V3를 구하거나 또는 납땜용 구멍만 있는 경우 직접 핀을 꽂는 작업을 해주어야 합니다. 저는 여기서 구매하였습니다. 세운상가에서 LCD모니터용 기계에 쓸 목적으로 대량으로 들여온 후, 2만원 미만에 팔고있다는 얘기도 들려오고 있습니다. 

(참고)
- 우측에 있는 입출력포트가 4핀이 아닌 6핀버전도 존재. 4핀/6핀버전 두 버전 모두 SDA SCL포트가 있는 것이 확인되면 문제없이 개조가능.
- CGA to HDMI버전도 같은 칩을 쓰기에 개조가능. 단, 색상 한 개의 표시위치가 옆으로 틀어져있다고 알려져 있음.

B. 케이블 제작용 재료. 저는 콘솔용 RGB케이블에 대응되도록 하였으며, 아케이드 컨트롤 박스용 RGB케이블도 보유하고 있어서 다 대응되도록 RGB21 스카트암 단자 케이블을 제작하였습니다. 케이블 제작이 여의치 않으면 핀에 맞춰 다이렉트로 연결해도 괜찮습니다. 

(참고) 
- 좌측하단 DSUB위의 RGB 입력측 핀규격: 일본 JST의 XH 8핀 (2.5mm간격)
- 우측 통신용 핀규격 : 일본 JST XH 4핀 (2.5mm간격)
- 상단 VGA2출력용 핀규격 : 일본 JST PH 12핀 (2mm 간격)


C. Arduino Pro mini / uno / nano 또는 그 호환카피보드. Atmega328P와 5V VCC가 있으며, USB포트가 미리 달려있는 물건으로 구하는 게 프로그램 굽는 작업할 때 편합니다. 전 여기서 샀습니다. 알리 익스프레스나 이베이에도 동일한 물건이 널려있으니 되도록 핀과 USB가 다 박혀있는 저렴한 것을 찾는 것이 좋습니다.

아두이노: GBS-8200
A0: VGA2 출력의 적색(R)
A4: SDA
A5: SCL
10또는 D10: VGA2 출력의 수직동기(V)

D. IDE 하드디스크 등에서 쓰던 점퍼핀. 일반펌웨어가 아닌 직접제어 모드로 변경에 필요합니다. GBS-82xx 우측의 하얀 4핀 커넥터 밑에 조그맣게 2개의 핀이 있는데 여기에 점퍼핀을 꽂아주면 됩니다.


2. 필요한 자료리스트
A. 아두이노 프로그램 소스는 여기서 다운로드 합니다. 지금 현재도 계속 갱신되고 있습니다.

B. 아두이노 개발환경을 공식페이지에서 다운로드 합니다.

C. 아두이노 드라이버. 사진처럼 arduino nano 호환보드를 사용할 경우 CH430 드라이버가 필요할 수도 있습니다. 전 여기서 드라이버를 다운로드하였습니다. 윈도우 7이후 64비트환경은 윈도우 부팅할 때 반드시 드라이버 디지털서명 무시옵션으로 부팅하셔야 드라이버를 설치할 수 있습니다.

3. 결과

연결은 다음과 같이 하였습니다.
기판 RGBS출력 >> GBS-8200 >> SC-512N1-L/DVI 입력

거두절미하고 사진을 참조바랍니다. 개조전 원래 펌웨어와 개조 후 업스캔한 결과를 Micomsoft SC-512N1-L/DVI로 캡쳐하였습니다. 사진은 오락실에서 한때 많이들 즐겼던 스트라이커즈 1945-3 (1999) 의 봄을 썼을 때의 모습입니다. 기판 240p 출력을 1280x960 59.94프레임으로 업스캔되었으며, 봄연출은 원래 1프레임당 깜빡임으로 표시하게끔 되어있습니다. 개조전에는 blend필터적용으로 깜빡깜빡이며 연출되는 투명효과가 강제로 줄이 간 상태로 깜빡임없이 표시되고 있던 것이 개조후에는 정상적으로 깜빡임으로 투명효과를 잘 나타내 주고 있습니다.

비교대상이 서로간 영상크기비율이 약간 안맞는 건 애교로 넘어갑시다.


개조전 봄연출. 240p >> 1360x768 출력. blend필터로 빗금이 생기며 뭉개진 연출

개조후 봄연출. 240p >> 라인 4x 1280x960 출력. 원래 연출 그대로 2프레임 정상표시

개조후 데모플레이 화면

다음은 플레이스테이션2의 개조후 출력결과입니다. 프레임버퍼를 1단계만 쓰기에 약간 흔들리는 게 보이는 건 2-3단계 프레임버퍼를 거치는 프레임마이스터(그로인한 지연발생)에 비해 지연이 적지만 어쩔 수 없습니다. 그걸 감안하면 지연도 개조전보다 확실히 적어지고 훌륭하게 표시해줍니다. 2018년 1월 16일 현재 480p SOG신호는 받을 수 없지만 최신 소스에 SOG입력에 관한 내용추가가 시작되었으므로 조만간 480p SOG 신호입력도 가능할지도 모릅니다. 

개조후 Beatmania IIDX USA판 480i를 업스캔 출력결과 #1

개조후 Beatmania IIDX USA판 480i->1440x960p60 출력결과 #2

개조후 Beatmania IIDX USA판 480i->1440x960p60 출력결과 #3


개조후 도돈파치 대왕생 240p->1280x960p60 출력결과

개조후 PS2 SEGA AGES 2500 드래곤포스 480i->1280x960p60 출력결과


동영상도 준비했습니다. PS2 소니정품 RGB케이블을 사용했으며, 안타깝게도 개조전의 영상은 업스캔컨버터가 동기신호를 못잡아서 비교조차 할 수 없었습니다. LM1881 회로를 통해서 RGBHV로 넣어주면 잡힐지도 모르겠습니다. 중간중간에 하얀 화면에서 영상이 튀는 경우가 있는데, 화면조정용 가변저항을 최저치로 줄여놨더니 동기신호를 놓치는 경우가 발생했습니다. 영상 녹화후 저항을 적당량 돌려주었더니 이런 현상은 더이상 일어나지 않았습니다.


PS2 도돈파치 대왕생 240p->1280x960p60 데모영상 (firmware 2018/1/15ver.)



개조후 PS2 도돈파치 대왕생 240p-480i 전환 데모영상 


보기에 어떻습니까? 상당히 괜찮은 결과 아닐까요? 혹시 이 보드를 기보유중인 분들은 각종 재료비 포함 단돈 만원 정도로 상당한 개선효과를 볼 수 있습니다. 혹시나 이 개조가 힘들경우 가격이 조금 더 비싸지만 다른 아케이드 기판 라인더블러 제품중  Wei-ya ACV-011 / ACV-012G나 모델명이 따로 없는 이 제품을 구매하는 것도 괜찮을 듯 합니다.

프레임마이스터도 이제 곧 단종에 들어가거나 엄청나게 비싼 문제가 있고, OSSC도 20만원가량 하기에 금전적으로 부담을 느끼신다면 이런 방법도 있겠구나 싶은 느낌으로 봐주시면 좋을 것 같습니다. 그럼 이만 줄이겠습니다.

코멘트나 오류발견, 질문 등 얼마든지 환영합니다.