닌텐도 DS 게임은... 원래 닌텐도에서 발급하는 라이센스를 취득한뒤에 게임 제작을 할 수 있습니다.
(물론.. PSP나.. XBOX 다 그런 시스템입니다)

허나.. 개 개인이 그런 라이센스를 받는다는거 자체가 불가능한 일이고.. 하지만 뭔가 만들고 싶고..
그런 분들을 위한 툴입니다

해외에선 많이 알려진, 널리 사용하는 devkitPro를 사용하여 NDS 프로그래밍 하는 방법을 알려드리겠습니다.

1. 우선 http://www.devkitpro.org/downloads/ 사이트로 들어가셔서 최신 devkitPro를 다운로드 합니다.

사용자 삽입 이미지

1-1. 클릭하면 sourceforge 로 들어가서 최신 버젼을 다운로드 할 수 있음.
사용자 삽입 이미지

2. 이제 다운로드 한 최신 프로그램을 설치 합니다.
사용자 삽입 이미지

2-1. 첫번째것을 선택해서 next
사용자 삽입 이미지

2-2. 그냥 next
사용자 삽입 이미지

2-3. 뭘 설치할지 묻는 화면입니다.
사용자 삽입 이미지
각각..
 minmal system : 리눅스와 같이 ls, gcc 뭐 이런 명령어들을 명령프롬프트창(dos창)에서 사용할 수 있게 합니다.
 devkitARM : 닌텐도 DS는 ARM프로세서를 사용합니다. 당연히 설치 합니다. 이외 국산 게임기인 gp32 등을 만질수 있는 gcc 도 제공합니다.
 devkitPPC : PocketPC ... 즉.. PDA 같은 시스템입니다. 의외로.. 닌텐도 게임큐브나.. 닌텐도 wil 컴파일도 있습니다
 devkitPSP : 말그대로 PSP 컴파일 입니다. 이걸로 PSP 컴파일 할 수 있습니다.
 Programmer's Notepad : IDE 툴입니다. 우리는 Visual Studio를 사용할 것 이므로 패스..
 Insight : 음... 디버깅 툴이랍니다.. 설치 합시다.

2-4. 설치 디렉토리를 선택합니다. 그냥 디폴트값을 두고 next
사용자 삽입 이미지

2-5. 인터넷으로 설치 파일을 다운로드 하고 있습니다...
사용자 삽입 이미지

2-6. 다 다운로드하면 자동 설치 합니다. 끝나면 next..
사용자 삽입 이미지

2-7. 설치가 완료되었습니다.
사용자 삽입 이미지


3. 그냥 저 상태에서 컴파일 해도 되지만. 좀더 쉽게 프로그래밍 하기 위해 라이브러리를 다운로드 합시다.
  가장 유명한 라이브러리는 PAlib 입니다.
  http://forum.palib.info/ 으로 들어가셔서 라이브러리를 다운합니다.
  참고로 저 사이트엔 라이브러리에 관한 튜토리얼도 제공되니 필히 읽어 보시기 바랍니다.
  (한국어 버젼도 있습니다)
사용자 삽입 이미지

4. 다운로드는 c:\devitpro 즉, 아까 devkitpro를 설치한 디렉토리에 다운로드 합니다.
사용자 삽입 이미지

5. 다운로드 한 파일을 알집을 통해 '현재 폴더에 풀기'로 압축 풉니다.
사용자 삽입 이미지

6. visual studio 에서 컴파일 할 수 있게 http://www.thechip.net/images/PALibAppWizard.zip 의 파일을 c:\devkitpro 에 다운로드 합니다. 그리고 이건 해당 파일명 폴더로 압축풉니다.
사용자 삽입 이미지

7. 압축을 풀면 아래와 같은 파일이 있는데, 각각 Visual Studio 2005 express 버젼과 Visual Studio 2005 버젼입니다. 자신의 환경에 맞게 설치 합니다. VSExpress 경우 MSDN 사이트에서 무료로 다운로드 할 수 있습니다.
이 파일은.. 오우거 엔진의 VS 연동 파일을 개조 했다고 합니다 :)
사용자 삽입 이미지


8. 설치가 완료 됬습니다. 이제 Visual Studio 를 실행시켜 봅니다.
사용자 삽입 이미지

9. 새 프로젝트 생성을 보면 NintendoDS 가 있습니다 >_<
 경로명 주의 사항을 잘 읽어보시고 셋팅해줍니다.
사용자 삽입 이미지

10. 별 내용 없습니다. Finsh 누릅니다.
사용자 삽입 이미지

11. 원할한 디버깅을 위해 예뮬레이터를 연결합니다.
   Tool -> External Tools (도구 -> 외부도구) 를 클릭합니다.
사용자 삽입 이미지

12. 가장 아랫줄... (9번째 줄 일껍니다) 를 아래와 같이 셋팅합니다.
사용자 삽입 이미지

Command : C:\devkitPro\PAlib\Emulators\no$gba\NO$GBA.EXE
Arguments : $(TargetDir)\$(TargetName).sc.nds
Inital directory : $(TargetDir)

C:\devkitPro\PAlib\Emulators에 들어가면 NDS 예뮬 프로그램이 많습니다.
하지만 가장 괜찮은건 No$GBA 라는군요. 다른걸로 사용해도 무방합니다.
단, No$GBA 경우 생성되는 파일의 *.sc.nds 파일을 업로드 해야 제대로 실행됩니다.

13. 계속.. 외부도구에 쉽게 접근하기 위해 단축키를 설정합니다.
Tool -> Option (도구 -> 옵션) 으로 들어갑니다.
사용자 삽입 이미지

14. 키보드 설정에 Tools (도구) 쪽의 외부도구 9번 (NDS 설정이 9번째 라인이므로 9번입니다. 다른 라인에 하셨으면 그거 에 맞는 번호를 찾으셔야 합니다)에 빨간 박스 해놓은곳에 키를 직접 눌러 셋팅합니다.
사용자 삽입 이미지

15. 이제 디버깅을 해봅시다. 에러가 생겼네요 >_<
사용자 삽입 이미지

16. 뭐가 문제인지 찾아가 봅시다.

extern inline u16 PA_GetBmpWidth(void *bmpdata){
 BMP_Headers *Bmpinfo = (BMP_Headers*)(bmpdata+14);
 return Bmpinfo->Width;
}
에서 void *bmpdata 가 갑자기 BMP_Header * 로 붙어서 문제가 생긴거 같습니다.
PA_GetBmpWidth(void *bmpdata) -> PA_GetBmpWidth(BMP_Headers*bmpdata) 로 변경합니다.

한군데 더 그런곳이 있는데, 거기도 똑같이 변경합니다.
사용자 삽입 이미지
사용자 삽입 이미지

17. 또 문제가 생겼네요.. 이번엔 arm7 라이브러리가 없답니다. 그러면.. 복사해 주면 간단해지겠죠
아까 devkitpro 설치한 디렉토리로 가셔서 palib 의 lib 디렉토리를 devkitpro/msys 에 복사합니다.

사용자 삽입 이미지

당연히 합칩니다. >_<
사용자 삽입 이미지

18. 다시 디버깅 해봅시다. 파일이 3개나 나왔습니다. 이러면 성공입니다.
사용자 삽입 이미지

19. 이제 아까 설정한 키를 눌러서 예뮬을 돌려 봅니다. Hello world 가 나오면 성공입니다
사용자 삽입 이미지

신고
블로그 이미지

프로그래머 지향자 RosaGigantea

바쁜 일상 생활중의 기억 장소

티스토리 툴바