NDS自制软件简易教程1



掌叔
2008-06-15 09:28:45

摘自:ndsbbs
作者:nashi1987

之前的教程对有些人来说也许太深了,有点晦涩难懂.所以我再写一篇简单的:

这篇教程完成的功能很简单,就是在NDS的触摸屏上显示"Hello World!".代码量也很少.下面来详细讲一下.

首先应包含所须头文件:
#include

#include
#include

nds.h是每个NDS程序都应有的,它定义了很多所需的基本的东西.console.h包含向屏幕输出所用到的函数的定义.stdio.h是C标准输入输出函数库.

接下来是主函数:

// int main(void) {

videoSetMode(0);
videoSetModeSub(MODE_0_2D | DISPLAY_BG0_ACTIVE);
vramSetBankC(VRAM_C_SUB_BG);

SUB_BG0_CR = BG_MAP_BASE(31);

BG_PALETTE_SUB[255] = RGB15(31,31,31);


consoleInitDefault((u16*)SCREEN_BASE_BLOCK_SUB(31), (u16*)CHAR_BASE_BLOCK_SUB(0), 16);

iprintf("x1b[10;10HHello World!");

return 0;
}  //

videoSetMode (0)是显示屏设置,这里设置为只用下屏.videoSetModeSub(MODE_0_2D | DISPLAY_BG0_ACTIVE)是显示模式设置.参数MODE_0_2D 表示文本方式,DISPLAY_BG0_ACTIVE表示使用背景0.vramSetBankC(VRAM_C_SUB_BG);是显存映射设置.具体可看前面的教程.SUB_BG0_CR = BG_MAP_BASE(31)是设置背景0的控制寄存器.
consoleInitDefault((u16*)SCREEN_BASE_BLOCK_SUB(31), (u16*)CHAR_BASE_BLOCK_SUB(0), 16)是文本输出初始化.iprintf("x1b[10;10HHello World!")这个函数跟C语言中的printf用法类似.

"iprintf()"函数之前的设置可以不用深究,只要知道有它们才能用"iprintf()".

好了,这就是NDS的HelloWorld.希望大家都加入NDS自制软件的开发行列!

附件是源代码