Just a Blog

GCW Zero 사용기 본문

Gear

GCW Zero 사용기

wehong 2017. 8. 17. 00:21

예전에 GCW Zero를 구입하고 올린 글이 있는데 벌써 1년을 넘어 약 2년에 가까운 시간 이전이다.

그동안 이 기기에 대한 사용느낌을 조금 더 상세히 적어 보고자 한다.


이하의 내용에서 언급되는 게임 아케이드 및 콘솔 에뮬레이터는 그것이 클린룸 방식으로 개발된 에뮬레이터라면 법적으로 문제의 소지가 없겠지겠만, 게임 아케이드 및 콘솔의 바이오스, 그 플랫폼에서 구동되는 게임롬, 기업 비밀 정보를 기반으로 제작된 에뮬레이터 등은 저작권으로 인해 법적인 문제가 발생할 수 있음을 미리 밝힙니다.





1. 최근 분위기


그동안 에뮬레이터 구동의 용도로 사용할 수 있는 고성능의 기기들이 다수 선보이게 되면서 이 기기에 대한 대중의 관심은 매우 작아졌다.

이 기기와 관련한 최근의 블로그 글이 거의 없는 것은 물론이고 이 기기를 테마로 한 네이버 카페 한 곳도 현재 신규 글이 거의 없는 상태이다.

이러한 경향은 해외도 마찬가지로 보이는데 대표 커뮤니티 포럼이라고 할 수 있는 Dingoonity.org의 GCW Zero란에도 새로운 주제의 글은 현저히 줄고 있고 기존 정보의 업데이트가 주를 이루고 있다.

공식 사이트의 지원은 이미 훨씬 전에 중단되다시피해서, 다운로드 할 수 있는 서드파티 앱들에 대한 내용은 종종 업데이트 되는 반면 제작사 지원의 핵심이라고 할 수 있는 펌웨어(OpenDingux Linux와 root 파일시스템을 지칭하는 것 같다) 업데이트는 2014년 8월 20일자 업데이터 이후 게시되지 않고 있다.



2. 업데이트


Github에 GCW Zero용 공간을 마련하여 GCW Zero의 리눅스 커널, 부트로더, 라이브러리 등의 소스 코드를 제공하고 있기는 하다.

기반 소스 코드까지 제공하는 것은 매우 반가운 일이기는 하지만, 과연 일반 사용자들이 툴체인을 깔고 커널과 부트로더를 컴파일하여 기기에 올리는 작업을 할 수 있을까 하는 의문이 든다.

그런 작업은 임베디드 시스템 개발 경험이 있어야 원활하게 수행할 수 있기 때문이다.

이 기기의 모토가 'Open Source Gaming Console'인 만큼 이 기기가 어느 정도의 기본 경험이 있는 사용자를 타겟으로 한다고 주장하면 할 말이 없긴 한데, 숙련된 사용자도 참조할 자료가 너무 없지 않나 싶은 수준이다.

반면 공식 사이트에 있는 오래된 2014년 8월 20일자 펌웨어는 자체 실행 형식의 파일로서 일반 사용자도 설치할 만 해 보였다.

따라서 GCW Zero 사용자는, 최신 버전의 기반 SW를 직접 빌드하고 설치할지 아니면 오래되었지만 나름 쓸 만 하고 설치하기 쉬운 공식사이트 펌웨어를 설치할지를 선택해야 한다.


< 공식 사이트의 펌웨어 설치 시에는 리눅스 커널 및 root 파일시스템 버전 정보 >



3. 하드웨어


이 기기의 사양은 공식 사이트 소개란에 나와 있다.

메인 프로세서는 Ingenic JZ4770은 1GHz로 동작하는 MIPS 기반 프로세서이며, 메인 메모리는 DDR2 512MB이다.

저장공간은 내부 스토리지가 16GB이며 외부 스토리지로 마이크로SD(SDHC 32GB까지, SDXC 64GB까지)를 사용할 수 있다.


화면은 320x240 픽셀, 4:3 비율의 3.5인치 LCD가 장착되었는데, 화면 해상도가 에뮬레이션에 보편적으로 사용되는 안드로이드 기반 기기보다 낮다.

발매당시 구매 희망자들은 오히려 낮은 해상도가 장점을 가진다고 주장했는데, 화면 처리에 필요한 부하가 덜 할 것이라는 점이 하나의 이유였고 구형 기기 에뮬레이션 시에 원래 해상도와 가깝게 재현된다는 것이 또 다른 이유였다.

하지만 낮은 해상도가 처리 부하를 줄이는데 큰 역할을 하는 것으로 보이기는 하나, 에뮬레이션이 아닌 GCW Zero의 오리지널 게임의 외양적 모습마저도 저평가하게 만드는 요소가 된다고 생각한다.

에뮬레이터도 QVGA 해상도까지만 출력되는 콘솔로 에뮬레이션 대상이 제한이 되지만, 어차피 QVGA 해상도를 출력하는 소위 5세대 콘솔들(PS1, N64, 3DO, Sega Saturn 등)을 에뮬레이션 하기에 GCW Zero의 성능이 여유로운 편은 아니기에 큰 문제라고 보기는 어렵다.


이 기기의 인상적인 특징 중 하나는 인풋/아웃풋 인터페이스가 꽤 다양하게 제공된다는 것이다.

OTG 지원되는 USB 2.0 포트, HDMI 1.3 포트, 이어폰과 TV 출력을 위한 AV포트 등이 있다.

이 중 HDMI 포트는 아쉽게도 2014-8-20 펌웨어에서 사용할 수 없다.


컨트롤 인터페이스도 잘 구성되어 있다.

컨트롤러는 PSP와 거의 동일한 레이아웃으로, 아날로그 컨트롤러 하나, 십자기 컨트롤러 하나, 일반 버튼 4개, start/selct 버튼 각 1개, 숄더(L/R) 버튼 2개, 전원조작 슬라이더 1개가 있다.

십자키 감도는 좋은 편이 아니어서 개조하시는 고수 분들도 계신다.

아날로그 스틱은 동작 방식이 PSP의 방식과 거의 흡사하고 PSP처럼 1개만 제공되는데, 에뮬레이터나 내장된 기본 게임에서도 기본적으로 사용되도록 설정되어 있지 않기 때문에 거의 사용되지 않는다는 것이 아이러니하다.

가속도계, 진동모터, 마이크도 포함되어 있다는 점은 놀라운데, 역시 이를 이용하는 게임이나 앱을 거의 경험한 적이 없다.


< 기본 버튼 배치 >


< 가속도센서(중력센서)와 진동(rumble)도 존재하는데, 테스트 앱을 통해 처음 경험했다 >


네트워크는 Wi-Fi 802.11 b/g/n을 지원한다.

무선 네트워크를 통해 SSH, FTP 등의 연결이 가능함으로써 기기로 파일을 전송하거나 내부 설정을 바꾸는 것들이 굉장히 용이하다.

root 계정으로 외부에서 접근할 수 있도록 한 것이 좀 찜찜하기는 한데, 설정 앱에서 root에게 임의의 패스워드를 잠시 발급하거나 외부 접근을 아예 막어버리도록 하는 것도 가능하다.

하지만 일반 사용자가 쉽게 사용할 수 있는 전용의 접속 클라이언트 프로그램이 없다는 점은 이 기기의 단점이다.

PC에서 파일을 어떻게 기기로 옮기는지에 대한 문의가 초창기 온라인 커뮤니티에 많았다.



4. 전용 소프트웨어


설정 유틸리티 앱들의 경우 초기 버전은 폰트도 작고 UI 모습도 후지고 기능도 뒤쳐졌는데 한번 메이저 업데이트 후 어느 정도 사용할 만 한 정도는 되었다.

그리고 기본으로 설치된 전용 게임들은 사용자의 이목을 끌 수준이 못된다.                                                                                   


< 초기 UI 수준 - 리눅스 터미널을 보는 듯 하다 >


열정을 가지고 열심히 만드신 게임을 공개하시는 분들도 계시는 것으로 알고 있는데, 오리지널 게임보다는 기존 게임의 재구현 또는 개선 형식이 많았다. 

다른 사용자들의 사용기를 봐도 전용 게임을 즐겼다는 글은 본 적이 없다.


< Games 목록에 기본 포함된 게임들 >


< 기본 내장된 Freedoom 게임 모습 >



5. 에뮬레이터


(<2019.8.18> GCW Zero 에서의 에뮬레이터에 대한 내용은 별도의 글로 작성하였습니다)


GCW Zero가 오픈 소스 게이밍 플랫폼을 위해 제작되었는지는 모르겠지만 많은 구매자들은 구형 콘솔 게임기 에뮬레이션을 염두해 두었을 것이다.

이 점은 제작사 측에서도 알고 있었다고 생각되는데, 기기의 사용자 메뉴 항목에 Emulators라는 목록을 제공하고 있으며 공식 사이트의 Download 페이지에 여러 종류의 에뮬레이터 프로그램들을 게재하고 있기 때문이다.


에뮬레이터들은 초기 열정적 사용자들에 의해 다양하게 갖추어져 있다.

대부분의 에뮬레이터들은 리눅스를 기반으로 하고 있으며, 리눅스에서 구동될 수 있는 에뮬레이터라면 GCW Zero용으로 포팅하기도 용이하다.


리눅스 기반 에뮬레이터들로부터 받은 개인적인 느낌은, 리눅스 기반 에뮬레이터들이 에뮬레이션 대상의 기능 구현에는 충실하지만 실제 기기의 느낌을 제공하는 부분은 좀 미흡하다는 것이다.

말이나 글로 상세히 설명하기 어려운데 간단히 얘기하면, 실제 기기와 다른 느낌을 주어서 실제 그 기기를 사용한다는 생각이 들지 않는다.

인풋 딜레이, 화면 프레임, 화면전환 효과 등을 실제 기기와 비슷하게 맞추지 못해 실제 기기나 다른 에뮬레이터에서의 구동과 전혀 다르게 느껴지는 것이 많았다.

물론 에뮬레이터가 실제 대상을 모사하는 것이니 만큼 완벽하게 모의하지 못할 수도 있고 리눅스의 SDL 라이브러리 등이 아직 매끄러운 성능을 못 낼 수도 있겠다는 예상이 되기는 한다.

특히 가상머신 기반의 안드로이드 쪽에서 유료지만 썩 괜찮은 에뮬레이터들이 등장하는 모습을 보게되면, 리눅스 에뮬레이터들이 좀 아쉽다는 생각을 하게 된다. -> (<2019.5.28> 이 의견을 철회합니다. 최근 GPD XD Plus 등의 안드로이드 에뮬레이터를 자주 사용해 본 결과, 안드로이드 OS에서의 에뮬레이션 환경도 좋은 편이 아니라는 생각을 갖게 되었습니다. 입력 지연 문제 등에서는 리눅스 기반 환경이 더 나을 수도 있겠다는 생각도 들었습니다.)


또 한가지 아쉬운 부분은, 에뮬레이터 제작자가 다양하다 보니 각 에뮬레이터 별로 사용자 인터페이스(UI)가 상이해서 혼란스럽다는 점이다.

시스템 메뉴로 가는 방법이 어떤 에뮬레이터는 옆의 슬라이드 버튼이고 또 어떤 에뮬레이터는 select 버튼이다.

이는 에뮬레이터 마다 개발자들이 달라서 저마다 선호하는 방식으로 구현되었기 때문이기도 하겠지만,  PSP, NDS, 3DS 등에서 기본적으로 제공하는 홈 버튼이 제공되지 않아서 에뮬레이션 중인 상황에서 메인 메뉴로 나갈 수 있는 공통의 물리적 인터페이스가 없기 때문인 것으로 보인다.


에뮬레이터의 편의성 부분은 대부분의 에뮬레이터에게 높은 점수를 주겠다.

특히 롬 구동 형식의 에뮬레이터가 제공하는 에뮬레이션 스테이트 기반 세이브 기능은 중간 저장 기능을 제공하지 않는 게임 플레이 시에 매우 편리한 기능이었다.




6. 개발


Apple II 기기를 에뮬레이션하고 싶었는데 GCW Zero용으로 에뮬레이터가 없어서, 리눅스의 LinApple 에뮬레이터를 GCW Zero에 포팅하고자 시도해 본 적이 있다.

가능하겠다 싶었던 이유는 LinApple이 SDL 기반으로 제작되어 있었고 소스 분량이 많지 않았기 때문이었다.

공식 사이트의 Develop 항목 내용을 참조하여 Toolchain을 설치했고 LinApple 소스를 가져와 포팅을 시도했다.

GCW Zero 자체에 기본으로 설치된 라이브러리가 많았지만 LinApple에서 FTP로 원격에서 디스크 이미지를 읽어오는 기능을 위한 라이브러리 추가가 어려워 해당 기능을 삭제하려고 코드를 손봤고, 빌드는 잘 되었다.

하지만 GCW Zero의 앱 포맷인 opk 파일을 만들려고 하면 이상하게 바이너리의 크기가 작아지는 현상이 있어서 결국 구동을 못 해 봤다. 

이후 동일한 아이디어로 LinApple 포팅을 시도한 사용자의 글이 있었다.

그 분은 빌드는 성공한 것 같은데 키보드를 비롯한 인풋 방법이 없어서 프로그램 구동이 어렵다고 했고 현재 에뮬레이터를 공개하지는 않았다.


개발시에 GCW Zero 자체 에뮬레이터가 없기 때문에, 타겟을 바꿔서 빌드 해 보든지 아니면 실제 기기에 실행 파일을 옮겨서 구동해 보든지 해야 했다.



7. 총평


개인적 총평은 다음과 같다.


- 리눅스와 임베디드 시스템 개발을 했던 사람이면 여러가지 시도해 볼 것이 많겠으나, 일반 사용자에게는 불친절하고 볼품없어 보일 수 있다.

- 16비트 콘솔을 에뮬레이팅하기에 성능은 충분(전용칩을 사용하는 일부 게임 제외)하지만 리눅스 기반 에뮬레이터의 실기 모의 품질이 아쉽다.

- SDL 기반 리눅스 게임을 만들어서 다른 사람들에게 공개하고 싶은 사람에게는 좋은 환경일 것이다.

Comments