Ko:Getting started with GP2X development

From wiki.gp2x.org

Contents

간략한 과정 요약

GP2X는 흥미있는 다양한 하드웨어를 지닌 휴대용 기기입니다. GP2X는 기기에 맞게 수정된 버전의 리눅스로 기동됩니다만, 이러한 사실을 사용자가 알기란 어렵습니다.

GP2X에는 세가지 종류의 메모리가 있습니다. 그것은 64MB의 램, 그리고 일반적으로 부트로더와 운영체제, 그리고 공용 라이브러리들을 저장하는 64MB의 NAND 플래쉬 메모리와 각종 프로그램과 미디어를 저장할 수 있으며 16MB와 4GB까지의 용량을 지닌 탈착식의 SD 카드입니다. 기기의 전원을 올리면, 하얀 스크린은 하드웨어 부트, 까만 배경의 GP2X 로고 스크린이 시스템이 부트 로더를 실행하고 있다는 것을 보여주고 난 후에 녹색의 배경이 리눅스를 부팅하고 있다는 것을 보여줍니다. 마지막으로, GP2X는 사용자가 GP2X를 이용할 수 있게 해주는 프로그램인 /usr/gp2x/gp2xmenu를 실행하게 됩니다. GUI 메뉴를 통해 사용자는 (영화, 사진, 텍스트 등)을 보기 위해 파일이나 (게임, 유틸리티 등)을 실행하기 위한 프로그램을 선택할 수 있습니다.

프로그램을 개발하는 것은 다른 컴퓨터에서 크로스 컴파일러를 이용하여 이루어 집니다. 컴파일된 프로그램과 관련 데이터 파일, 쉘스크립트, 미디어 파일은 SD 카드로 복사됩니다. 그리고 통상의 메뉴를 통해서 실행파일이 GP2X에서 실행됩니다.

개발의 공통적인 목표

GP2X에서 개발의 목표는 다양합니다. 아래의 여러 목표들이 전부 다는 아니지만, 많은 사람은 여기에서 하나의 또는 그 이상의 목표를 택하게 됩니다.

에뮬레이션

이 방법은 GP2X 에서 다른 플랫폼에서 실행되는 바이너리 이미지를 실행하기 위한 소프웨어 에뮬레이터를 사용하는 것입니다. 에뮬레이션은 하나의 소프트웨어 에뮬레이터를 통해서 수십, 수백가지의 프로그램을 사용할 수 있다는 잇점이 있습니다. 하지만 에뮬레이션은 실행속도가 느리거나, 불안정하거나, 저작권법의 문제를 지니고 있습니다.

좋은 에뮬레이터를 만든다는 것은 매우 어려운 작업입니다. 이에 비해 배포를 위한 바이너리 이미지를 만드는 것은 보다 쉬운 작업입니다. 이 모두가 커뮤니티를 위해서는 유용한 작업입니다.

포팅

이 방법은 현재 존재하는 애플리케이션의 소스 코드를 수정하여 GP2X에서 실행될 수 있도록 컴파일하는 것입니다. 포팅은 이미 존재하는 소스코드를 작성하기 위한 수고를 덜 수 있으면서 애플리케이션이나 프레임워크를 GP2X에 추가할 수 있다는 잇점이 있습니다. 포팅은 GP2X의 향상된 성능을 이용하기 위해 게임의 대부분을 재작성하는 것에 비해 단지 콘트롤을 GP2X의 명세에 맞게 재작성만 하면 되는 정도로 쉽습니다.

포팅의 예로 Super Methane Brothers 게임을 보세요. 여러 플랫폼에서 돌아가는 일반적인 소스코드는 여러 플랫폼에서 돌아가면서 스프라이트를 그리거나, 폰트를 이용하고, 그리고 램 전체에 각각의 스크린을 그리는 자신만의 일반적인 루틴들을 사용합니다. GP2X를 위해 포팅된 코드는 SDL을 사용하여 물리적인 스크린을 기동하거나, MikMod를 사용하여 음악을 스피커로 내보낸다던지, 역시 SDL을 사용하여 조이스틱을 다루게 됩니다. 그 결과는 충분히 재미있고, 충분히 기능적인 게임이 됩니다.

원래 '포팅'이라는 단어는 다른 플랫폼에서 만들어지고 사용되는 소프트웨어를 GP2X에서 실행될 수 있도록 한다라는 의미를 지니고 있습니다. 운영체제, SDL 프레임워크, 그리고 대부분의 소프트웨어 에뮬레이터들은 다른 플랫폼에서 이루어직 작업을 포팅한 결과입니다. GP2X로 소프트웨어를 포팅하는 것은 이 플랫폼을 유용하고 활발하게 사용되도록 만들어 줄 것입니다.

시작하기

GP2X에서 개발을 시작하기 위해서는 당신이 해야 할 일은 아래와 같습니다.

  • 개발환경을 구축한다(아래를 참조).
  • 예제 프로그램을 시험한다.
  • 스스로 프로그램을 만든다.

개발환경의 구축

당신 스스로 게임을 만들기 전에 알아두어야 할 것들

  • 우선 어떤 SDL 문제가 발생할 수 있는지 봅니다.
  • 개발 FAQ에는 다양하고 매우 유용한 정보가 있습니다.
  • 개발 튜토리얼
  • 또한 GP2X 하드웨어 해킹을 시작하기를 시도할 수도 있습니다.
  • 하드웨어의 명세를 알기 위해서는 문서를 보세요.
  • 표준 API인 SDL외에도 다른 SDK들이 있습니다.
  • 만약 다른 GP2X 해커에게 메일링 리스트를 통해서 GP2X 해컬에게 질문하고 싶다면, [1]GPX-DEV 메일링 리스트에 가입하세요.

GP2X 프로그램을 컴파일하기

아마도 실행파일에 필요한 라이브러리를 포함하여 컴파일하여 .gpe 실행파일만을 복사하는 것이 최선의 방법일 것입니다. 하지만, 동적으로 라이브러리를 링크하고 싶다면(실행파일에 라이브러리를 포함하지 않는다면), 필요한 라이브러리를 매우 주의하여 필요한 라이브러리들을 같이 복사해야 합니다. /lib 디렉토리에 필요한 라이브러리들을 복사하는 것은 당신의 GP2X를 비싼 벽돌로 만들어 버릴 수도 있습니다. 당신이 만든 실행파일을 실행하기 위해서 당신의 라이브러리가 있는 디렉토리로 LD_LIBRARY_PATH를 설정하는 쉘스크립트를 만드는 것도 좋은 방법입니다.

Personal tools