프로그래밍/SGDK 메가드라이브 개발

메가드라이브 게임 만들기 #1 - SGDK의 환경 설정

windship 2019. 6. 1. 00:47

출처 : https://ameblo.jp/arcade-cabinet/entry-12268974254.html

 

『メガドライブのゲームの作り方 その1 - SGDKの環境設定』

SGDKを用いて、メガドライブのプログラミングを始めて約10か月。今年で48歳になる劣化した脳細胞は、一週間もすれば覚えたことを忘れてしまいます。そこで、自分…

ameblo.jp

 

 SGDK를 이용해서, 메가드라이브 프로그래밍을 시작한 지 약 10개월. 올해로 48세가 되어 늙어가는 뇌세포는, 1주일 정도면 기억한 것을 잊어 버립니다. 그래서, 제 나름대로 시행착오 끝에 체득한 메가드라이브 게임 만드는 방법을 기록으로 남겨 두기로 했습니다. 팩맨같은 도트 먹기 게임을 실제로 만들어 보려고 합니다.

 

<프로그래밍에 필요한 소프트웨어>

* SGDK : 메가 드라이브의 개발 키트. (Stephane씨에 의해 개발됨)

* Code::Blocks : 오픈 소스 C/C++ 통합개발환경

* EDGE : 256색 도트 그래픽을 위해 개발된 윈도우용 그래픽 에디터

* Fusion : 메가드라이브 에뮬레이터 (이외에도 Gens나 Regen 같은 것들도 있습니다)

 

<SGDK의 인스톨>

 

1. 여기에서 SGDK를 다운로드 한다

  (2017년 4월 25일 최신 버전은 SGDK 1.22)

 

2. 다운로드한 파일을 기억하기 쉬운 곳에 저장

  (여기에서는 C:\MEGADRIVE\sgdk122 로 합니다)

 

3. 윈도우의 환경변수를 설정합니다.

  윈도우 10의 경우, 데스크탑의 '컴퓨터'를 우클릭하고 속성 > 왼쪽 시스템에서 상세설정을 엽니다. 거기에서 뜨는 윈도우 아래쪽의 "환경변수(N)..."을 클릭하고, 유저 환경변수의 "신규(N)..."을 클릭합니다.

  "GDK"와 "GDK_WIN"의 두개의 환경 변수를 신규 등록합니다.

 

  * GDK의 등록 ('\'가 아니라 '/'로 해야합니다)

  * GDK_WIN의 등록

 

<Code::Blocks의 인스톨>

 

1. Code::Blocks 사이트에서 셋업 파일을 다운로드 합니다. codeblocks-16.01mingw-setup.exe 파일을 다운 받습니다(2017. 4. 25 현재 최신 버전).

 

2. 셋업 파일을 실행하여 Code::Blocks를 인스톨합니다. 설정은 전부 디폴트 값으로 해도 문제 없습니다.

 

3. 셋업이 완료되면 Code::Blocks가 실행됩니다.

처음에 컴파일러를 고르는 화면이 나오므로, GNU GCC Compiler를 선택하고 OK를 클릭합니다.

 

4. 다음으로 Code::Blocks의 확장자를 연결하는 과정이 있는데, 확장자 연결이 필요없다면 제일 위의 옵션을 선택합니다.

 

5. Code::Blocks의 메뉴에서 Setting -> Compiler...를 선택합니다.

6. 'Copy'를 클릭합니다.

7. 새로운 컴파일러의 이름을 물어보므로, 'Sega Genesis Compiler'라고 입력하고 OK를 클릭합니다.

 

8. OK를 클릭합니다.

 

9. Toolchain executables의 탭으로 가서 Compiler's installation directory에 있는 '...' 버튼을 클릭하고 SGDK를 설치한 폴더를 선택합니다.

10. Program Files를 아래와 같이 각각 '...' 버튼을 클릭해 선택해 줍니다.

모두 선택했다면 OK를 눌러줍니다. 이것으로 설정은 완료입니다.

 

<프로젝트의 신규 작성>

 

1. Code::Blocks의 메뉴에서 File > New > Project... 를 선택

2. Empty project 를 선택하고 'Go'를 클릭

3. 'Next >'를 클릭

4. 프로젝트 이름과 저장될 폴더를 설정합니다.

  여기에서는 프로젝트 이름을 'CookieMan', 프로젝트 폴더를 'C:\MEGADRIVE\sgdk122\projects'로 했습니다.

5. 아까 위에서 설정한 컴파일러 'Sega Genesis Compiler'를 선택하고, 아래와 같이 설정하고 'Finish'를 클릭하면 새 프로젝트가 만들어집니다.

6. 다음으로 작성한 프로젝트를 우클릭하여 Properties... 를 선택

7. Makefile을 SGDK용의 커스텀 Makefile로 설정하고 OK를 클릭하여 윈도우를 닫습니다.

8. 다시 프로젝트의 Properties...를 열고, 같은 방식으로 윈도우를 닫고, 'Project's build options...'를 클릭

9. 'defaults'에서 "Make" commands 탭을 열고, 아래와 같이 설정한 뒤 OK를 클릭

10. 프로젝트가 저장된 폴더에 아래외 같이 폴더를 추가로 만들어 줍니다.

src : 소스파일(*.c, *.s)

inc : 헤더 파일(*.h, *.inc)

res : 이미지/사운드 리소스 파일(*.wav, *.png)

가 저장될 폴더입니다.

11. 프로그램 소스(main.c)를 만듭니다.

  메뉴의 File > New > File... 을 선택

12. C/C++ source 를 선택하고 'Go'를 클릭

13. 'Next >' 를 클릭

14. C언어를 선택하고, 'Next >' 를 클릭

15. 파일명과 파일 경로를 물어오므로, 'Filename with full path:' 에 있는 '...' 버튼을 클릭

16. 파일명은 main.c로, 경로는 아까 만든 src 폴더를 지정합니다.

17. default에 체크

이것으로, main.c를 Code::Blocks에서 편집할 수 있게 되었습니다.

아래와 같이 코드를 짭니다. SGDK 사이트에 있던 Hello World의 코드입니다.

 

#include <genesis.h>

int main()
{
VDP_drawText("Hello Genny World!", 10, 13);

while(1)
{
//read input
//move sprite
//update score
//draw current screen (logo, start screen, settings, game, gameover, credits...)
}
return (0);
}

 

17. 프로젝트를 빌드합니다.

18. 문제없이 완료된다면, 프로젝트 경로에 있는 out 폴더에 rom.bin이 만들어질 것입니다.

  이 파일을 에뮬레이터로 실행시키면 아래와 같은 화면을 볼 수 있습니다.

  메가드라이브의 롬파일이 완성되었습니다!

 

* 내용은 SGDK의 공식 사이트에 자세하게 설명되어 있습니다.

* 내용에 잘못된 부분이 있을 수도 있습니다. 혹시 틀린 부분을 발견하셨다면, 코멘트로 지적해 주시면 감사하겠습니다.