IDE 환경에 PAlib를 세팅해 놓으면 IDE의 다양한 편리성을 그대로 사용할 수 있어 편할 것입니다.
그래서 생산성과 능률도 오을 것이라고 봅니다. 깨져보이는 이미지는 클릭하면 정상크기의 이미지창이 열립니다. 참고로 http://www.palib.info/wiki/doku.php?id=day1 내용을 참고했습니다.

1. 필요사항
-.Visual C++ 2005 : http://msdn.microsoft.com/vstudio/express/downloads/
-.devkitPro : http://www.devkitpro.org
-.PALib : http://www.palib.info
#중요사항 : PALib를 devkitPro 폴더 아래에 설치해야 한다. AppWizard (코드 완성기능)가 제대로 작동하지 않을수 있다.

2. 환경 셋업
devkitPro와 PALib를 설치할때 벌써 어느 정도의 환경변수가 설정되었다. 하지만 이 변수들은 make 툴을 위한 것이어서 UNIX 스타일로 적혀 있다. Visual Studio안에서 devkitPro와 PALib를 컴파일 하기 위해서 우리는 먼저 새로운 환경변수를 설정할 필요가 있다.
시작->제어판->성능 및 유지 관리->시스템 을 열고 고급탭을 눌러 환경변수 버튼을 클릭한다.
아래쪽의 시스템변수안에 있는 새로 만들기 버튼을 클릭하여 DKP_HOME 이라는 변수를 추가하고 Windows 스타일로 devkitPro를 설치한 루트 폴더를 적어 넣는다.

3. 설치

PALib AppWizard를 다운 받아서 설치하세요. zip 파일을 지우지 않을 폴더에 압축을 풉니다. 보통 devkitPro 루트 폴더에 압축을 풀기를 추천합니다.
압축을 풀면 VC8_Express_Setup.js 와 VC8_Setup.js 파일이 보일 겁니다. 본인이 가지고 있는 것이Visual C++ 2005 Express 버젼이면 첫번째 것을 다른 버젼이면 뒤에 것을 더블 클릭하여 설치합니다. 그럼 아래와 같은 설치 완료 창이 보일 것입니다.
만약 드림위버같은 js 파일 편집기가 설치되어 있어 편집화면이 열리면 시작>실행>cmd 하여 도스창을 띄웁니다. 그리고 위 압축 파일을 설치한 곳으로 이동해서 WScript.exe [경로를 포함한 파일명]를 이용하여 실행합니다.
(예: C:\devkitPro\PALibAppWizard> WScript.exe  C:\devkitPro\PALibAppWizard\ VC8_Setup.js )

4. 첫 프로젝트 빌드
Visual C++ 를 열고 파일>새로 만들기>프로젝트를 했을때 열린 창에서 왼쪽에 NintendoDS 이 보이고 선택시 PALib Application 이라는 항목이 보일 것입니다. 프로젝트를 만들기 전에 먼저 프로젝트 위치를 변경해야 합니다. PALib 프로젝트를 컴파일 하기위해 사용되는 make 툴은 공백을 가진 긴파일명과 디렉토리명을 지원하지 않습니다.
도구>옵션을 선택하여 열린 창에서 왼쪽의 프로젝트및 솔루션을 선택한수 Visual Studio 프로젝트 위치 항목을 공백없이 자기에 맞게 변경합니다.

파일 > 새로 만들기 > 프로젝트를 선택하여 창을 열고 NintendoDS 카테고리를 선택후 PALib Application 위자드를 선택합니다. 적당한 프로젝트 명을 입력하고 확인을 선택합니다.

위자드에 변경할수 있는 내용은 없습니다. 첫번째 화면에서 전체적인 설명이 나옵니다. 다음을 선택합니다.

두번째 페이지에서 Standard application과 Minimal application 사이에서 선택할 수 있습니다. 둘의 차이는 두번째 항목은 간단한 Hello World 같은 프로그램을 만들때 사용합니다. Standard application 항목을 선택하고 마침을 누릅니다.

이제 위자드에 의해 생성된 파일들을 확인해 보면 

-. logo.bmp : DS 로더에서 보여질 프로그램의 이미지이다.
-. logo_wifi.bmp : WiFi에 사용될 로고이다.
-. main.cpp : 중요 프로그램 파일이다. 약간의 코드가 이미 작성되어 있다.
-. Makefile : Visual Studio 를 위해 PALib makefile를 최적화했다.
-. ReadMe.txt : 정보 파일

PALibTemplate 안에 있던 기본 PALib Makefile를 수정한 거라 작동을 잘한다.
왼쪽 솔루션 탐색기창의 프로젝트명에서 마우스 오른쪽키를 눌러 나타난 메뉴에서 빌드를 선택하던지 F7 키를 눌러 컴파일 해본다.
아래 출력창에 결과가 나타날 것이다. 에러가 발생하지 않았다면 “.nds”, “ds.gba”, “.sc.nds” 타입의 세개의 파일이 Release 폴더에 생성된다. 그렇게 쉽게 되면 재미가 없지요. ^^;;

처음에 아래와 같은 에러가 발생했습니다. C:\devkitPro\PAlib\include\nds\arm9\PA_Sound.h 파일에서 형변환 에러가 발생한 겁니다. 출력창의 에러행을 클릭하면 자동으로 PA_Sound.h 파일이 열리고 그 위치로 이동할 겁니다.

형변환 없이 바로 값을 대입하면서 발생한 에러 이므로 (u32*) 를 넣어서 형변환을 해주고 PA_Sound.h파일을 저장합니다.


그리고 다시 빌드를 해봅니다. 그러면 또 다른 에러가 발생합니다.

NDS rom tool 이 arm7.bin 파일을 열수 없다는 건데요. NDS rom tool 설정을 어디서 변경하는지는 잘 모르겠고 하니 C:\devkitPro\PAlib\lib\arm7\arm7.bin 파일을 해당 경로로 폴더를 만들어서 복사해 놓습니다. 그리고 다시 컴파일 하면 에러가 사라지고 3개의 파일이 생성됩니다.

이 파일을 emulator로 실행해 봤습니다. 폰트체가 게임같은 분위기를 주는군요. ^^
5. Visual C++에 Emulator 셋업
이 단계는 선택적인 사항이지만 추천합니다. 외부 툴로서 NDS 에뮬레이터를 셋업할 것입니다. 그러면 프로젝트를 빨리 테스트 할수 있습니다. 도구> 외부 도구를 선택하여 추가 버튼을 누릅니다.
NDeSmuME 에뮬레이터를 예로 들어서 작성해 보겠습니다.

도구 메뉴에 추가되어 있는 걸 볼수 있을 겁니다. 그걸 선택해 보면 바로 에뮬레이터가 뜨면서 실행상태를 보여 줍니다. 편해졌는데 여기에 단축키를 지정하면 더 편하겠지요.
도구 > 옵션 > 환경 > 키보드 를 선택한후 에뮬을 외부도구 항목에서 몇번째로 등록했는지 확인후
아래 그림과 같이 도구.외부명령[x] 의 x 번째 항목을 선택하고 원하는 단축키를 입력하고 할당키를 선택합니다. 그리고 확인 버튼을 눌러 창을 닫은 후 도구 메뉴에서 확인해 보면 단축키가 지정된 것을 확인 할 수 있을 겁니다.

이제 개발 환경이 세팅되었으니 IDE 의 이점을 최대한 살려 자기가 만들고 싶은 걸 만들어 봅시다~~ ^^

-.참고로 비스타 운영체계에 설정할때는 관리자권한이 필요해서 수동으로 작업을 해야 되네요.
1. PALibAppWizard.vsz 파일을 테스트 에디터로 연다.
2. AppWizard 압축 파일이 설치된 경로에 맞게 “ABSOLUTE_PATH” 변수값을 변경한다.
3. “PALibAppWizard.ico” 와 “PALibAppWizard.vsz” 파일을
[Visual Studio]/VC/Express/VCProjects 폴더에 복사한다.
4. “PALibAppWizard.vsdir” 파일을
[Visual Studio]/VC/Express/VCProjects/NintendoDS 폴더에 복사한다.
(“NintendoDS” 폴더는 수작업으로 생성한다.)

-.비스타일경우 시스템변수에 다음 경로를 추가해야 컴파일이 됩니다.
C:\devkitPro\devkitARM\bin;
C:\devkitPro\devkitARM\arm-eabi\bin;
C:\devkitPro\devkitARM\libexec\gcc\arm-eabi\4.1.1;
Posted by 버들피리불며

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절

  1. 2007.05.25 18:07
    댓글 주소 수정/삭제 댓글
    아아!! 이런 꿈에나 나올법한 블로그가 있다니...
    프로그래머로 태어난것이 행복하군요 :)
    • 2007.06.06 20:49
      댓글 주소 수정/삭제
      말씀을 재밌게 하시네요.. ^^ 좋게 봐주셔서 고맙습니다.
      많은 도움이 되길 바랍니다.
  2. 에이치
    2007.06.06 14:29
    댓글 주소 수정/삭제 댓글
    글읽다보니 의문이 드는게
    위쪽부분에 DKP_HOME라고 환경변수 설정한게 있는데
    이건 어디서 쓰이는건가요?
    • 2007.06.06 20:50
      댓글 주소 수정/삭제
      devkitPro를 설치하면 자동으로 설정되는 변수일겁니다.
      그러니깐 컴파일러 환경 변수죠..
  3. 에이치
    2007.06.06 21:33
    댓글 주소 수정/삭제 댓글
    답변감사합니다.
    그런데 저는 실수로 환경변수 추가안하고
    쓰고 있는데 멀쩡하게 잘 되는것 같더군요.

    근데 정확히 어디에 쓰이는 변수인지 궁금하네요.(찜찜.-_-;)
    • 2007.10.10 14:05
      댓글 주소 수정/삭제
      문제없다면 신경안쓰셔도 됩니다.
      문제있으면 컴파일하던지 그럴때 에러가 날테니깐요..
  4. 닥대갈
    2007.10.10 01:42
    댓글 주소 수정/삭제 댓글
    와,, 킹왕짱 좋은글 감사합니다.
  5. 라피
    2007.10.20 19:12
    댓글 주소 수정/삭제 댓글
    컴파일은 되는데,
    No$Gba 에뮬에서
    Bad Header Checksum(real gameboy would shutdown)
    Bad Fixed 96h at Header(0B2h)
    에러가 뜨면서 안 되는군요ㅡ_ㅡ;
    DeSmuMe에서 해봐야겠습니다 ㅎㅎ
    ->DeSmuMe에선 잘 되는군요. R4에서도 잘 되네요^^
    • 2007.10.21 00:24
      댓글 주소 수정/삭제
      네 이상하게 No$Gba 에뮬에서는 그렇더군요.
      나머지 에뮬에서는 잘 돌아 갑니다.
      이유는 저도 잘 모르겠네요.
  6. 꼬망
    2007.11.08 11:04
    댓글 주소 수정/삭제 댓글
    닌텐도 게임개발에 궁금한게요
    와이파이용 게임을 제작하고싶은데
    게임서버는 어떻게 하나요
    닌텐도에서 서버를 이용하나요 아니면
    자체제작 서버를 돌리나요?
    • 2007.11.08 17:53
      댓글 주소 수정/삭제
      와이파이 서버 주소를 알수도 없고
      들어 갈수 있는 권한도 없습니다.
      또 서버용 프로그램을 돌려야 되는데
      그렇게 할수도 없잖아요.. ^^
      자체 서버를 이용해야 합니다.
  7. 삽질...
    2007.12.11 02:07
    댓글 주소 수정/삭제 댓글
    님이 작성한것 처럼 하였는데...

    Linking...
    c:/devkitpro/devkitarm/bin/../lib/gcc/arm-eabi/4.1.2/../../../../arm-eabi/lib/ds_arm9_crt0.o: In function `CIDLoop':
    ds_arm9_crt0.s: (.init+0x2ac): undefined reference to `initSystem'
    collect2: ld returned 1 exit status
    make[1]: *** [/d/Personal_Project/ProjectDS/PADemo/PADemo/Release/PADemo.elf] Error 1
    make: *** [build] Error 2

    이런 링크 에러가 발생하네요...

    2일동안 고민하고 있습니다.
    도와 주세요..
    • 2007.12.11 13:04
      댓글 주소 수정/삭제
      undefined reference to `initSystem'

      위에 함수가 정의가 안되어 있다고 하네요.
      include 해야 할 헤더파일을 빼먹은 건 없는지 확인해보세요..
    • 삽질...
      2007.12.13 22:38
      댓글 주소 수정/삭제
      외국 사이트를 검색해서 해결했습니다.

      devkitProUpdater-1.4.4로 설치하였는데
      devkitARM 버전 문제였습니다.
      2.1 -> 2.0으로 재설치하니
      컴파일시 에러가 없어졌습니다..
    • 2007.12.26 02:12
      댓글 주소 수정/삭제
      네 호환성 문제가 있었군요.
      전에 버젼에서 업그레이드 했을때는 그런 에러가 안나와서 몰랐는데..
      새로 비스타에 세팅하다보니 그렇군요.
      2.0 파일을 다운받아서 압축을 푼후 devkitPro의 같은 폴더에
      덮어 쓰면 되는군요.
    • 닥대갈
      2008.03.06 11:20
      댓글 주소 수정/삭제
      우어, 예전에 잘 되던게 최근에 다시 설치하니 안되서
      2일동안 삽질을 했는데,,
      진작에 덧글을 읽어볼껄 그랬네요ㅠㅠ
  8. vc++2008안되나요
    2007.12.16 03:07
    댓글 주소 수정/삭제 댓글
    PAlibAppWizard에서 VC8_Express_Setup.js를 실행을 했는데 다음과 같은 에러가 났어요. Windows Script host창이 뜨면서 Cannot find where Visual Studio 8.0 is installed.
    그래서 js를 열어보니 "var strVC8Key = "HKLM\\Software\\Microsoft\\VCExpress\\8.0\\Setup\\VC\\ProductDir";
    에서 보니 VC++ 2005 버전이 8.0 이더군요. 저는 VC++ 2008 Express의 9.0을 사용합니다. 어떻게 해야 하는지 알려주세요.
    혹시 해서. 8.0을 9.0으로 수정해서 js파일을 실행할때는 설치 완료 되었다고 나오지만 vc에서 뉴프로젝트를 실행하고 파일명을 입력하고 오케하면 다음 단계로 넘어가지 안고 프로젝트를 수행할 수가 없습니다.
    이제 입문하는 초보입니다. 잘좀 알려주세요...
    • 2007.12.18 01:43
      댓글 주소 수정/삭제
      vc++ 2008 한글정식판은 아직 안나온걸로 아는데...
      저도 PAlibAppWizard 는 만들어 놓은걸 갖다가 써서
      내부의 그런 경로 정보를 바꿔도 안되면
      딱히 말씀드릴께 없네요. 전 vc++ 2005를 써서 말이죠.
    • 2007.12.26 00:17
      댓글 주소 수정/삭제
      제일 위에 나와 있는 참고했던 문서를 보니 이런 내용이 있네요.
      VC2008 Express를 사용할때 “VC8_Express_Setup.js”파일에서 모든 “8.0” 를 “9.0” 로 바꾸고 “VC8” 를 “VC9” 로 바꾼다. “PALibAppWizard.vsz” 문서에서 “Wizard=VsWizard.VsWizardEngine.8.0” 를 “Wizard=VsWizard.VsWizardEngine.9.0” 으로 바꾼다.
      추가로 수동 설치 방법도 있습니다.
  9. 2008.01.01 21:48
    댓글 주소 수정/삭제 댓글
    비스타의 경우 아래와 같이 추가 한다고 하셨는데,
    변수 이름은 어떻게 해야 하는것인가요?

    -.비스타일경우 시스템변수에 다음 경로를 추가해야 컴파일이 됩니다.
    C:\devkitPro\devkitARM\bin;
    C:\devkitPro\devkitARM\arm-eabi\bin;
    C:\devkitPro\devkitARM\libexec\gcc\arm-eabi\4.1.1;
    • 2008.01.01 22:39
      댓글 주소 수정/삭제
      path 에 추가해야 된다는 말씀입니다.
  10. 2008.01.01 21:53
    댓글 주소 수정/삭제 댓글
    그리고 이글을 보고 C++인스톨부터 모든걸 따라한것 같은데,
    아래와 같은 에러가 나타나네요...
    그런데, 전 비스타 쓰는데, 웬 /bin/sh등이 나타나는지 모르겠네요...
    저런건 유닉스에서 나타나는거 아닌가요?
    그리고 에러가 있는거 같은데, 뭔지 모르겠네요
    1>------ 빌드 시작: 프로젝트: test001, 구성: Release Win32 ------
    1>메이크파일 프로젝트 작업 수행 중
    1>basename: extra operand `2005/Projects/test001/test001'
    1>Try `basename --help' for more information.
    1>/bin/sh: line 0: [: too many arguments
    1>make[1]: *** /c/Users/조현진/Documents/Visual: Invalid request code. Stop.
    1>make: *** [build] Error 2
    1>빌드 로그가 "file://c:\Users\조현진\Documents\Visual Studio 2005\Projects\test001\test001\Release\BuildLog.htm"에 저장되었습니다.
    1>test001 - 오류: 0개, 경고: 0개
    ========== 빌드: 성공 1, 실패 0, 최신 0, 생략 0 ==========
    • 2008.01.01 22:40
      댓글 주소 수정/삭제
      위에 글을 자세히 보면 경로에 공백이 있으면 안됩니다.
      그래서 NDS 프로젝트용 폴더는 따로 생성해서 사용해보세요.
  11. 조현진
    2008.01.02 07:05
    댓글 주소 수정/삭제 댓글
    친절한 답변 감사합니다.
    앞으로 이런 바보 같은 질문은 삼가하도록 하겠습니다.
    경로에 공백이라.....
    • 2008.01.02 23:28
      댓글 주소 수정/삭제
      하하하.. 아닙니다.
      가끔 아무리 봐도 안보일때가 있죠..
      옆 사람이 보면 바로 보이는 것도요..
      좋은 결과 기대해 봅니다.^^
  12. Cardia
    2008.01.05 17:52
    댓글 주소 수정/삭제 댓글
    안녕하세요! 이렇게 좋은 정보들을 이제야 발견했네요!!
    벌써부터 설렙니다 두근두근 *-_-*
    좋은 강좌 부탁 드려요!!
    • 2008.01.10 11:57
      댓글 주소 수정/삭제
      네 안녕하세요. 요새 제가 인터넷하기 힘든 곳에서 일하다 보니 관리하기가 쉽지 않네요.
      이 블로그가 도움이 되었으면 합니다. ^^
  13. 2014.02.18 19:51 신고
    댓글 주소 수정/삭제 댓글
    이클립스 케플러도 안되고, Visual Studio 2010(Pro)도 안되고, Visual Studio 2008 Express 도 안되고, 윈도우 8 이라 오히려 잘 안되는 거 같은데... 직접 파일 옮겨보기도 했는데... 아 답이 없어요... 저는 Unity3d 프로그래머라 C# 보다 C,C++를 공부할려고 합니다. 닌텐도 3DS XL 디바이스도 샀고 닌텐도 어플리케이션 프로젝트 생성하는 단계까지 뜨면 프로젝트를 생성하면 에러나면서 템플릿을 못가져가 오는 것 같해요. 솔루션도 안보이고요... 까페 가입해도 알기가 힘들고... 님이 말하신 관리자 권한도 cmd 창 관리자 권한으로 실행시켜서 실행해보는데, 잘 안되요... 어떤게 문제일까요?


BLOG main image
닌텐도 DS 관련해서 Palib를 소개하고 제가 개발한 홈브류와 다른 개발자의 홈브류를 소개하고자 합니다. NDS 자체 제작(Homebrew)에 관심있는 다른 분들의 길잡이가 되고 싶습니다. by 버들피리불며

공지사항

카테고리

분류 전체보기 (39)
따라하기 (5)
PA_lib 소개 (10)
Homebrew 소개 (7)
나의 Homebrew (15)
기부하기(Donate) (1)
Wii (1)
Total : 117,269
Today : 0 Yesterday : 1