- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GBA开发文档
一. GBA开发包--DevKitAdv 简介
DevKitAdv 主要包括两部分,一是GCC++编译器,二是 GBA库.
GCC++编译器功能和我们常用的VC差不多,只不过少了个编辑源代码的文本编辑器(至少我没发现,我用的是EditPlus,UltraEdit也可以),还有就是--不支持类(class),真是让人头痛,只能用struct来替代.它的作用是把我们写的代码编译成二进制的可执行文件,当然这个可执行文件是相对GBA和GBA模拟器而言的.就象Windows里的EXE文件无法在Mac机上使用是一样的道理;
GBA库提供了图像,控制及声音一系列的函数,和GCC++配合使用.
下载地址: HYPERLINK http://occultforces.mine.nu/%7Edarkfader/gba/files/devkitadv.zip http://occultforces.mine.nu/~darkfader/gba/files/devkitadv.zip
?
二. DevKitAdv 的安装 没啥好说的,解压后就可以直接使用,编译时设置DevKitAdv的路径就可以了,建议做一个批处理文件,比如 go.bat
set PATH=d:\devkitadv\bin;%PATH%
cmd (win98是command)
三. 最简单的 GBA 程序 (t1)
// main.c
// 一些基本数据类型
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned long u32;
#define REG_DISPCNT *(u16*)0 // 显示寄存器地址
#define VRAM 0 // 图像缓冲区地址
#define M5_VRAM 0x0600A000 // M5缓冲区地址
#define BACKBUFFER 0x010 // 双缓冲/背缓冲地址
#define PALETTE 0x5000000 // 调色板地址
#define MODE_3 0x03 // 240*160 15bits/单缓冲区
#define MODE_4 0x04 // 240*160 8bits/双缓冲区
#define MODE_5 0x05 // 160*128 15bits/双缓冲区
#define BG2_ENABLE 0x0400 // BG_2
#define SetMode(Mode) REG_DISPCNT=(Mode) // 设置显示模式的宏定义
// 主程序
int main()
{
//设置屏幕模式,这里使用MODE_4
SetMode (MODE_4 | BG2_ENABLE);
}
1.MODE_5和MODE_3都是16bits,但MODE_3只有单缓冲,制作动画效果肯定没双缓冲好,因此排除MODE_3;
2.MODE_4是8bits,理论上256色对于掌机够用了,虽然16bits真彩的诱惑没有人想抗拒,可MODE_5只有160*128咧,在实际应用中建议还是使用MODE_4.
很简单吧--的确是的,现在要用GCC编译它:
gcc -lm -o main.elf main.c
objcopy -v -O binary main.elf main.bin
你会看目录下多了个main.bin,这个就是能在GBA模拟器上执行的二进制文件! 教程中t1-t7目录为源程序目录,里面有个make.bat,修改代码后直接执行它就可以编译,但要注意我的devkitadv是装在D:,你要是装在别的盘就得改一下make.bat的path参数.
四. 在MODE_4背景层画图的 GBA 程序 (t2)
在GBA的MODE_4里画一幅图要经过3个步骤:
1. 把原始256色图像文件转换成 *.h / *.c 的数据文件,我们用的是 BMP2GBA ,这里以image.bmp为例,转换后我们就得到了一个image.h文件;
2. 在程序开头#include image.h,这样就能在程序中使用image.h定义的调色板和图像数据;
3. 在程序中把image.h定义的调色板和图像数据写入MODE_4背景层的调色板和图像缓冲区.
另外,GBA还有专为精灵设置的物体层,它的用法和背景层一样,只是功能有点不一样,地址是0有关用这里就不详细说了,大家可以把精灵数据直接输出到物体缓冲区就可以了.
下面是源程序:
... ...
// 包含图像调色板和数据的头文件
您可能关注的文档
最近下载
- 2024年安徽省高考化学真题卷(含答案与解析).pdf VIP
- 司马光的故事市公开课一等奖省赛课微课金奖PPT课件.pptx
- 2014010904013王亮森题目四.docx
- 《国有企业管理人员处分条例》考试题库200题(含答案).docx
- 2023年楚雄师范学院计算机科学与技术专业《操作系统》科目期末试卷A(有答案).docx VIP
- 《接力切换技术原理》课件.pptx VIP
- 电子科技大学820计算机专业基础考研真题试题(含答案)2011—2016年.pdf
- 公司治理:基本原理及中国特色-姜付秀-第10章+法律机制.pptx VIP
- 课件:兽药的合理使用.ppt
- 弗莱雷《被压迫者教育学》.pdf
文档评论(0)