훔..언젠가 들었던 기억이 나긴 하는데.. 기원이 어디서 부터지... 프로그래밍을 하면서 Hello World!!! 를 찍는게 말이다.. 어쨋든.. 여지껏 많은 언어들을 하면서 젤 첨 Hello~~ 부터 찍었던것 같다.. 누가 시킨것도 아닌데 ^^ 다른 사람이랑 똑같이 하는게 싫어서 난 항상 약간 삐뚤어지게 했던것 같다.. 어떻게 했냐믄.. 자바를 배울때.. Hello Java! C++을 배울때.. Hello Cpp! 이제 psp를 하니까 Hellow PSP!!! 그럼 소스가 궁금하신 분들은 함 보시죠~
/* * 이 소스는 아래에 주석과 같이 pspdev에서 배포한 sample 소스를 바탕으로 제작되었습니다. */ /* * PSP Software Development Kit - http://www.pspdev.org * ----------------------------------------------------------------------- * Licensed under the BSD license, see LICENSE in PSPSDK root for details. * * main.c - Basic PSPSDK sample. * * Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org> * Copyright (c) 2005 James Forshaw <tyranid@gmail.com> * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca> * * $Id: main.c 363 2005-06-27 20:35:14Z tyranid $ */
/* 자.. 우선 필요한 헤더를 포함해야 합니다. */ #include <pspkernel.h> #include <pspdebug.h> #include <stdlib.h> #include <string.h>
/* 현재 모듈의 정보를 정의해줍니다. * PSP_MODULE_INFO는 다음과 같이 정의되어 있답니다.
* 처음에 적도록 되어있는 name이 XMB에서 PSP->GAME으로 들어갔을때 보이는 이름입니다. * attribute는 모르겠고요 ^^;; major, minor version은 update때 모듈간의 관계를 파악하기 위해서.. * 버전 관리를 하려고 둔것 같습니다. */ PSP_MODULE_INFO("Hello PSP", 0, 1, 1);
/* 요놈은 메인 쓰레드의 attribute의 값을 설정하는 놈이라는데 optional이라네요.. * 뭐 해도 그만 안해도 그만이란 말이죵.. 그래도 한번 머라 되어있는지 볼까요?
* 요렇게 되어 있네요 ^^ */ PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
/* 요넘은 디버그 메세지를 출력해주는 함수를 쓰기 편하게 이름을 새로하나 주는건데요.. * 보통 C에서 printf를 많이 쓰니까 이름을 하나 더 주는겁니다. * printf("테스트 입니다\n"); 요렇게 쓴거하고 * pspDebugScreenPrintf ("테스트 입니다\n"); 요렇게 쓴거하고 똑같다는 거죠. * 그럼 pspDebugScreenPrintf 요넘의 정의를 볼까요?
* 요넘은 좀 자세히 나왔네요.. c에서 printf 사용하시는거랑 같다고 보심됩니다. */ #define printf pspDebugScreenPrintf
/* 프로그램이 종료될 때 불릴 콜백 함수입니다. * 홈 브류를 종료할 때 요 함수를 부릅니다.
* XMB로 나갈 때 사용한다고 써있죠~? 그리고 쓰레드 내에 있어야 이 함수가 작동한다네요.. * 보시면 아시겠지만 이 함수도 sceKernelCreateCallback으로 해서 쓰레드로 존재합니다. */ int exit_callback(void) { sceKernelExitGame();
return 0; }
/* * 게임 종료할 때 HOME 키를 누르면 빠져나갈지 물어보는 화면이 나오죠? * 그걸 나오게 하기 위해서 콜백을 만들고, 등록하는 겁니다.
* 자.. 중요한 함수입니다. 홈 브류를 빠져나갈 수 있게 해주는 함수입니다. * 설명을 읽어볼까요? exit callback을 등록해서 HOME 버튼을 활성화 하지만 요 안에다가 * sceKernelExitGame 함수를 부르면 쫑난다고 되어있군요.. * 여기 콜백 부분은 여기 써진걸 고대로 사용하시면 되요.. * 프로그램이 끝날 때 먼가 해주고 싶으시면 exit_callback 요 함수 안에다가 해주시면 됩니다.