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 버들피리불며

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

공지사항

카테고리

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