미친해커

[Nintendo 3DS] hello-world 예제 코드분석(주석설명) 본문

Nintendo/3DS

[Nintendo 3DS] hello-world 예제 코드분석(주석설명)

미친해커 2022. 4. 21. 22:45
반응형

hello-world 예제

hello-world 예제는 devkitPro를 설치하면 함께 다운로드되는 Nintendo 사의 게임기들의 예제 코드(프로젝트)중 하나 이다. 기본적으로 검은색 콘솔 중앙에 'Hello World!' 를 출력한다. 코드는 다음과 같다.

/*
	Hello World example made by Aurelio Mannara for libctru
	This code was modified for the last time on: 12/12/2014 21:00 UTC+1
*/

#include <3ds.h>
#include <stdio.h>

int main(int argc, char **argv)
{
	gfxInitDefault();

	//상단 화면을 콘솔 초기화합니다. 두 번째 인자로 NULL을 사용하면 기본 콘솔을 사용합니다.
	consoleInit(GFX_TOP, NULL);

	//커서를 15행과 19열로 이동한 다음 "Hello World!"를 출력합니다.
	//커서를 이동하려면 "\x1b[r;cH"를 출력해야합니다. 여기서 r과 c는
	//각각 커서를 이동할 행과 열입니다.
	//상단 화면에는 30개의 행과 50개의 열이 있습니다.
	//하단 화면에는 30개의 행과 40개의 열이 있습니다.
	printf("\x1b[16;20HHello World!");

	printf("\x1b[30;16HPress Start to exit.");

	// 메인 루프
	while (aptMainLoop())
	{
		//모든 입력을 스캔합니다. 이 작업은 프레임 마다 한 번 수행해야 합니다.
		hidScanInput();

		//hidKeysDown 은 방금 누른 버튼에 대한 정보를 반환합니다.
		u32 kDown = hidKeysDown();

		if (kDown & KEY_START) break; // 메뉴로 돌아가기 위해 메인 루프를 중단합니다.

		// 프레임 버퍼 플러시 및 스왑
		gfxFlushBuffers();
		gfxSwapBuffers();

		//Wait for VBlank
		gspWaitForVBlank();
	}

	gfxExit();
	return 0;
}

 

반응형
Comments