PGR21.com
- 경험기, 프리뷰, 리뷰, 기록 분석, 패치 노트 등을 올리실 수 있습니다.
Date 2015/02/04 16:28:20
Name 랜덤여신
Subject [기타] 난생 처음 만들었던 GBA 게임
제가 프로그래밍을 시작한 건 초등학교 5학년 때의 일입니다. 그리고 그때부터 저의 관심사 중 하나는, 내가 만든 프로그램을 ['들고 다니고 싶다']는 것이었습니다. 어렸을 때 제가 쓰던 핸드폰은 게임을 다운로드 받아서 설치할 수 있었습니다. 저는 이것이 '자바'라는 프로그래밍 언어로 만들어졌다는 것을 알고 있었고, 제가 만든 자바 프로그램을 여기다 넣을 수 있기를 바랐습니다. 방법을 이리 저리 찾아 봤지만 도무지 알 수 없었습니다. 통신사와의 계약에 따라 [선택 받은(?) 일부 회사만 핸드폰에 게임을 넣을 권리를 가지고 있다]는 사실을 깨달은 것은 한참 후의 일입니다.

대략 2009년 무렵으로 기억합니다. 저는 친구를 통해 한 게임기를 알게 되었습니다. ['GP2X 위즈']라고 불리는 이 기계는 몇 가지 특이한 점이 있었습니다.



- 한국 회사가 만드는 휴대용 게임기: 저는 한국에 아직까지 게임기 만드는 회사가 존재한다는 것 자체가 신기했습니다.

- 리눅스 기반: 당시 대부분의 PMP는 윈도 CE를 쓰고 있었습니다. 제가 리눅스에 친숙하기 때문에 이것은 좋은 점이었습니다.

- API 공개: 이것이 결정적이었습니다. 당시 핸드폰을 비롯한 거의 대부분의 휴대용 기기는 일부 허가 받은 업체만 앱을 올릴 수 있었습니다. 이 게임기는 남녀노소 종족 불문하고 [누구나 앱을 만들어 올릴 수 있었습니다.]

- 에뮬레이터 게임기: 게임기를 만드는 것까지는 좋지만, 한국 게임기 회사로서는 당연하게도 독점작은 커녕 그냥 게임 자체가 거의 없었습니다. 그래서 이 게임기의 이전 모델이었던 GP2X와 GP32는 사용자들이 에뮬레이터를 올려서 썼습니다. 에뮬레이터가 개발될 수 있었던 것은 API가 공개되어 있었기 때문이죠. 아이러니하게도 이런 점 때문에 '에뮬레이터 전용 게임기'로 외국에까지 알려지면서 한국보다 외국에서 더 잘 팔리는 게임기가 되었습니다.

- 적절한 가격: 20만 원. PSP보다는 쌉니다.

저는 이 게임기를 꼭 사야겠다는 열망에 불타 올랐습니다. 마침 이명박 전 대통령이 '명텐도' 운운 발언을 하면서 당시 거의 유일한 휴대용 게임기 회사였던 게임 파크 홀딩스에 관심이 모아지기도 했습니다. 게임 파크 홀딩스는 명텐도 논란이 발생하기 한참 전부터 있었지만, 호평이든 악평이든 관심이 아쉬운 상황이었으니까요.

하지만 유감스럽게도 GP2X 위즈는 아직 출시되기 전이었죠. 이전 모델을 사기는 좀 그렇고, 출시를 기다리는 도중 앞서 말한 친구가 또 다른 제안을 했습니다. ["게임을 미리 만들어 놓으면 어떨까?"]

이 친구의 생각은 이랬습니다. 게임보이 어드밴스(GBA) 에뮬레이터는 온갖 기계로 포팅되어 있습니다. 컴퓨터, 아이폰, 안드로이드, 그리고 탈옥하면 PSP, NDS에서도 돌아갑니다. 따라서 [GBA로 게임을 만들어 놓으면 자동으로 멀티플랫폼]을 달성할 수 있지 않겠느냐는 것입니다.

저는 이 말에 혹해서 GBA 게임을 어떻게 만드는지 공부하기 시작했습니다. 그리하여 3일쯤 걸려서 만든 것이 이겁니다:

https://barosl.com/tmp/gba/ - 용량이 20MB로 큽니다. 모바일 사용자 분들은 조심하세요.

https://barosl.com/tmp/baroslized-gba.zip - 웹 버전이 너무 느리신 분들은 (특히 IE에서 느립니다) 여기서 롬을 직접 다운 로드 받아서 보실 수 있습니다.

보시다시피 게임은 아니고, 음악 플레이어라고도 부르기 민망한 수준의 앱입니다. 원래 목표는 리듬 게임을 만들려던 것이었기 때문에 그렇습니다.

만들 때는 무척 재밌었는데, 다 만들고 나니 무척 애매해졌습니다. GBA는 빈말로도 개발하기 좋은 환경이라고는 할 수 없습니다. 또한 GBA의 제한된 성능 때문에 진짜 유용한 앱을 만들려면 포기해야 하는 게 상당히 많겠다는 것을 알았습니다. 하지만 배운 것도 있습니다:

- 운영 체제 없이 프로그램 만들기: [GBA는 운영 체제가 없습니다.] 프로그래머는 운영 체제의 도움이나 방해 없이 자기 멋대로 메모리를 주물럭 주물럭 할 수 있습니다. 늘 운영 체제로부터 도움을, 때때로 방해를 받아 왔던 저로서는 매우 신선한 경험이었습니다. 특히 C에서 volatile 키워드를 처음으로 써 봤습니다.

- GBA는 음악을 재생할 수 있다: 단순 8-비트 음악이 아니라 [사람 목소리가 포함된 진짜 노래를 재생할 수 있다]는 것을 알았습니다. 저는 그때까지 GBA 성능상 불가능한 줄 알았거든요.

아쉬운 것은 제가 만든 롬을 실제 기계에서 돌려 보지 못했다는 것입니다. 커스텀 롬을 실제 게임기에서 돌려 보려면 '닥터'가 필요한데, 돈이 아깝기도 했고 귀찮기도 했습니다. 언젠가 기회가 되면 해 보고 싶군요.

결국 저 '음악 플레이어'는 제가 GBA로 만들어 본 처음이자 마지막 프로그램이 되었습니다. 지금은 소스 코드도 어디 도망가서 찾을 수도 없습니다. 아마 하드디스크 어딘가에 있을 것 같긴 한데...

얼마 후 GP2X 위즈가 왔고, 저는 그 게임기 전용으로 만들라는 게임은 안 만들고 이번에도 유틸리티를 만들기 시작했습니다. 그 이야기는 다음 기회에...

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
15/02/04 16:30
수정 아이콘
gba 게임 만드신건 화살표 키 외에 어떤 키들을 사용하나요?
랜덤여신
15/02/04 16:33
수정 아이콘
없습니다! 심지어 일시 정지조차 안 됩니다. 하하. 그래픽 테스트 + 오디오 테스트 수준밖에 안 되는 거죠. 원래 계획대로라면 저걸 발전시켜서 진짜 음악 플레이어를 만들 생각이었습니다만... 관심이 떨어지면서 위즈 전용으로 전환하는 바람에...

(음, 제 기억이 맞다면 뭔가 다른 기능이 하나 정도 있었던 것도 같은데... 잘 기억이 안 나는군요. 되감기가 있었던가? 소스 코드가 없어서 확실히 알 수가 없네요. ㅠㅠ)
15/02/04 16:34
수정 아이콘
그렇군요. 글을 읽던 도중에 링크를 먼저 클릭하고 화려한 게임보이 스플래시 화면을 보고나니 당연히 훌륭히 동작하는 게임일거라고 넘겨짚었습니다. 흐흐
랜덤여신
15/02/04 16:35
수정 아이콘
아, 맞네요. X 키(실제 게임기에서는 아마 A 버튼)이 되감기입니다. 이것으로 총 기능 개수가 무려 두 배로 늘었군요.
Rainbowchaser
15/02/04 17:04
수정 아이콘
신기하네요, 다른 탭으로 두고 웹서핑하니 버퍼링이 덜덜덜
랜덤여신
15/02/04 17:11
수정 아이콘
GBA를 웹 브라우저에서 돌릴 수는 있지만 아직까지는 발전이 더 필요한 것 같습니다.
15/02/04 17:19
수정 아이콘
저 무렵 딩고 A320이라고 비스무리한 개념의 중국산 휴대 에뮬레이터를 사용했었습니다.
그 쪽도 리눅스 기반 개발이 되서 GP2X 계열 프로그램이랑 호환도 하고 내가 더 좋네 하고 싸우던 기억이...
랜덤여신
15/02/04 17:23
수정 아이콘
제 또 다른 친구가 A320을 사서 저도 좀 가지고 놀았습니다. (제 앱도 포팅을 한 것 같기도 하고 아닌 것 같기도 하고...) 외국 해커들이 리눅스도 올려서 좋았죠.

다만 전원 키가 소프트 키라서 문제 발생하면 끄기가 난감하다는 게 불편했습니다. 배터리 분리도 안 되니까... 옛날식으로 리셋 구멍을 꾹 눌러야 했죠.
15/02/04 17:27
수정 아이콘
리셋을 하도 많이 눌러야 하는 기계라 나중에는 아예 리셋 구멍 자체를 칼로 파서 넓혀서 썼습니다 크크크...
A320도 스펙에 비해 해볼 수 있는 게 많아서 참 재미있었는데 요새는 뭐 스마트폰 한 대면 NDS에 PSP까지 에뮬레이팅이 되는 시대라...
후속기체 뻘인 A330은 아직도 종종 GBA나 SFC 돌릴 때 쓰긴 하는데 A320만 못하네요 ㅠ.ㅠ
랜덤여신
15/02/04 17:28
수정 아이콘
아, 그런 방법이... 놀랍군요.

A330은 무엇이 문제인가요?
15/02/04 17:36
수정 아이콘
에뮬레이터 버전 판올림이 없어서... A320에 비해 램이 두배로 늘기는 했습니다만 리눅스도 못 올라가고 제조사 지원도 끊기는 바람에 끈 떨어진 바가지 신세가 됐었죠.
모든 기종에서 사운드 밀림 현상이 있습니다.
심지어 패미컴까지...
스타슈터
15/02/05 00:13
수정 아이콘
초딩때 멋도모르고 프로그램 만들어 보겠다고 gwbasic을 열심히 주물럭거리던 기억이 나네요.
물론 이미 윈도우 98 세대였지만 집에 굴러다니던 프로그래밍 책이 마침 만화로 배우는 gwbasic이였던지라...크크크
게임코딩은 학교 그룹 프로젝트때 자바로 딱한번 만들어보고 그뒤로는 할게 못되는구나 싶어 접었습니다. -.-;

근데 본문 시작에 언급하신것과는 역설적으로 GBA 보다는 자바가 훨씬 더 게임/프로그램을 휴대기기에 배포하기 쉬워졌네요?
지금이라도 안드로이드용으로 개발하시면 그때의 꿈은 더이상 꿈이 아닌 시대가 되었네요. 흐흐흐
랜덤여신
15/02/05 00:17
수정 아이콘
네, 스마트폰이 만연하게 된 이후로 제 꿈 중 하나는 이뤘다고 봐도 될 것 같습니다. 오랫동안 스마트폰 비슷한 물건을 기다려 왔거든요. 사막 한복판이든 산중 깊숙한 곳이든 전 세계 어디서나 인터넷에 접속할 수 있는 정보 단말기... 저는 가끔 '좀만 더 늦게 태어날 걸' 하고 후회도 합니다. 하하
15/02/07 15:49
수정 아이콘
gba리버싱 한창 유행해서 엄청 삽질했던 기억이 나네요
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회 추천
56212 [기타] e-sports, 스토리메이킹과 도발, 예의와 결례의 사이 [54] Lustboy9585 15/02/05 9585 23
56211 [LOL] 삼성 vs SKT 리뷰 - SKT는 과연 미드캐리팀인가 [27] 삭제됨7446 15/02/04 7446 2
56210 [LOL] 아마추어가 아닌 세미프로의 경기력! 설명충 등판 [34] 빛돌v9092 15/02/04 9092 6
56209 [LOL] 다시 돌아온 파워랭킹 2주차 [20] Leeka6337 15/02/04 6337 0
56208 [기타] 스타관련 컨텐츠 영어 번역 해보실 분 계신가요? [30] likeade6383 15/02/04 6383 0
56207 [기타] 난생 처음 만들었던 GBA 게임 [14] 랜덤여신8638 15/02/04 8638 2
56206 [LOL] 모든팀이 5경기를 펼친, 현 롤챔스 잡담. [28] Leeka7915 15/02/04 7915 0
56205 [LOL] 역시 너프후엔 신스킨이죠!! [28] 삭제됨7576 15/02/04 7576 0
56204 [LOL] GE 타이거즈의 활약이 반가운 이유 [24] becker7059 15/02/04 7059 12
56203 [기타] [스타1] 스베누 스타리그 4강 A조 Preview [3] JaeS5923 15/02/04 5923 2
56202 [LOL] 2월 4일 (수) 리그 프리뷰 [23] 류시프4522 15/02/03 4522 1
56201 [LOL] KT vs GE 1경기 결정적인 순간 [7] 삭제됨5631 15/02/03 5631 1
56200 [기타] 창세기전 4 FGT 소감 [18] The xian8354 15/02/03 8354 0
56199 [LOL] 16분에 용3스텍 정글 쉬바나 공략! [57] papaGom11089 15/02/03 11089 2
56198 [기타] 게임과 교육학을 접목시킨다면 어떨까? (절대 어려운 글 아님) [54] Ataraxia16845 15/02/02 6845 2
56197 [하스스톤] 올해 월드챔피언쉽 룰이 정복전으로 확정되었습니다. [26] Leeka9840 15/02/02 9840 0
56196 [LOL] 레이디스 배틀 윈터시즌이 끝났습니다(잡설) [24] 눈뜬세르피코14051 15/02/02 14051 1
56195 [기타] [스타1] 스베누 + 헝그리앱 8강 결과 및 합계 Ranking(2/2 현재) [7] 은별15063 15/02/02 15063 3
56194 [하스스톤] 인벤이 또 한건을 해냈습니다! [18] Leeka10085 15/02/02 10085 1
56193 [기타] [워크3] 안녕하세요 노재욱입니다. 좋은영상을 하나 나눔하려고 왔습니다. [14] 삭제됨7193 15/02/02 7193 3
56192 [스타2] 2015년 2월 첫째주 WP 랭킹 (15.2.1 기준) - 이승현, 정상 탈환! [7] Davi4ever5261 15/02/02 5261 0
56191 [LOL] 2월 2일 (월) 리그 프리뷰 [7] 류시프6089 15/02/01 6089 5
56190 [기타] [스타1] 비상사테, 흥행우려 [56] 영웅과몽상가14900 15/02/01 14900 1
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로