原著:乐水
6. ROM(Read Only Memory) - ’只读存储器’ 地址: 0x08000000 大小: 看你的游戏卡的大小罗 作用: 存放所有的程序和数据 7. ARM - 32bit 指令系统 (RISC,精简指令集) 8. Thumb - 16bit 指令系统 (具体区别详见 http://gbadev.org/files/armthumb-romram.txt) 9. DMA(Direct Memory Access) - 直接内存访问 10.DISPCNT(Display Controller) - 显示控制(内存地址) 当初看水银兄写的gba教程时一直不明白明明是256色模式,可指向VRAM的指针却是short型的。后来才知道,gba访问VRAM时一次必须读写2个字节,即16bit。我晕~~!所以我只好严格要求自己的blit函数。虽然也找到一个可以写8bit的putpixel函数代码,但速度太慢了不适合用在显示大量图片的地方。 需要注意的地方大概都说完了,我们可以进入代码部分了。 虽然是专用游戏机,但显示模式也需要设定才行。 #define REG_DISPCNT *(u16*)0x04000000// 显示寄存器地址 #define VRAM 0x06000000 // 图像缓冲区地址 #define M5_VRAM 0x0600A000 // M5缓冲区地址 #define BACKBUFFER 0x010// 双缓冲/背缓冲地址 #define PALETTE 0x5000000// 调色板地址 #define MODE_3 0x03 // 240*160 15位/单缓冲区 #define MODE_4 0x04 // 240*160 8位/双缓冲区 #define MODE_5 0x05 // 160*128 15位/双缓冲区 #define BG2_ENABLE 0x0400 // BG_2 #define SetMode(Mode) REG_DISPCNT=(Mode) // 设置显示模式的宏定义
|