GBA程序开发入门

1.GBA简介

Game Boy Advanced(GBA)是日本任天堂公司于2001年推出的一款32位掌上游戏机.它着重于游戏机的便携式,并且以2D游戏为主(3D游戏依然不错).GBA有十分高效硬件图像处理加速,GBA基本上是现在全球公认的最佳的掌上游戏机.

GBA的硬件功能十分多.它的CPU是以RISC为基础的32位ARM CPU,主频是16.78MHz.屏幕最大支持240x160的16位真彩色显示.在图形处理方面GBA还另外提供了硬件加速,支持硬件上的图形旋转,缩放,alpha混合,face in/out淡入淡出等.

GBA的软件开发主要是以C语言为主,程序设计简单而且十分自由,也正是这一点吸引了许多爱好者在GBA上做东西(不一定是游戏).你完全可以把它做成PDA,做成Mp3播放器(它的声音处理方面能力也不错哦),做成随身电影播放齐,做成电子词典等,只要你有能力设计它的软件.

比如azhong的主页http://huangyz2002abcd.nease.net/上就有他写的WORDBOY字典软件.还有MUSIC PLAYER GBA的音乐播放器,能让GBA变身Mp3播放器.VideoGBA,能把图片转换成GBA影片的工具.不过要制做它的电影有点困难.这里提供一部已经做来的,<<黑客帝国>>的片断下载: http://213.30.21.181/web/down/show.asp?id=40&down=1

在http://readboy.nease.net/上还可以找到READBOY,GBA上的读书软件,这个软件做得很不错,除了看书,甚至还可以浏览图片.

不说多了,我们还是主要来看看如何开发GBA的软件.应该说,你只要会点C语言,就可以进入GBA的开发行列中了.在GBA上写程序比在电脑上写程序更简单.GBA是单总线的设计,也就是说通过简单的读写命令就能完成所有的内部硬件操作.访问GBA内部的寄存器就犹如访问一块内存一样简单,而GBA所有的功能都是通过读写寄存器而完成的.

2.GBA程序开发准备

GBA开发所需要的东西除了一台可以用的电脑外,主要就是一个编译器和一个GBA模拟器.

有了GBA模拟器,你就可以在你的电脑上运行GBA程序了.GBA模拟器应该是到处可以找得到的.我推荐的是VisualBoyAdvance.你可以在www.gbadev.org上下载最新的版本.如果你还想把你的程序弄到GBA机器上玩,那么除了应该有个GBA外,还应该有个ROM烧录器.比如EZ-Flash.通过它可以把电脑上的ROM烧录到GBA卡带上,然后放到GBA上运行.(总共一个GBA加一个128MB的EZ-Flash大概是1000元人民币)

GBA程序开发可以用汇编语言和C/C++语言来写程序,不过汇编语言比较复杂,而且不是我们平常使用8086汇编,而是Arm汇编.任天堂公司可能觉得C++程序运行消耗太大,不推荐C++语言来开发,所以我们都一直将C语言作为首选.

GBA开发所用的C语言编译器主要有两种,一种是免费的gcc,一种是Arm公司提供的ArmSDT.

这里的gcc当然不是简单的linux下的gcc,而是Arm Gcc.简单地说就是把我们平时常见的gcc改造成生成ARM CPU代码的gcc.你可能会问难道我们要使用linux操作系统了吗?其实我们还是在windows下做GBA开发,虽然gcc主要是在linux下的东西,但是我们也可以从cygwin(在windows下模拟UNIX的工具)中得到在windows下运行的gcc.你可以根据这个cygwin下的gcc,自己去配置Arm Gcc,也可以直接去下载个配置好了的Arm Gcc.比如DevKitAdv,你可以到http://www.gbadev.org 去下载这个软件.DevKitAdv大概10多MB.有了它,你用不着去找什么cygwin(200-300MB)和配置什么Arm Gcc了,DevKitAdv已经帮你做好了一切,你只需安装它就OK了.

ArmSDT是Arm公司提供的专门为ARM CPU的开发程序的C语言编译器.前面说过,GBA是采用32位的ARM CPU,所以这个ArmSDT是可以用来开发GBA程序的.而且由于ArmSDT是ARM公司官方的开发包,所以它的编译速度和质量上都比免费的gcc要高,但对C语言的支持也不及gcc好(gcc毕竟已经成了C语言编译器的标准),最关键的问题它不是免费的,但是它的免费测试版还是可以用的.你可以到Arm公司的网站去下载ARMSDT2.51. http://www.arm.com

我以DevkitAdv配置的gcc为主还讲解GBA的程序开发.

安装DevKitAdv很简单,用WinZip或WinRAR软件解压下载文件后,双击DKA_Setup.exe,出现下面的对话框,选择安装目录,然后点击"Install"就进行安装了.整个DevKitAdv共49MB,应该是十分小的.

编译器和模拟器都装好后,下面我们需要一批小工具,主要就是帮我们转换图片,声音等数据.GBA程序编译后通常都是一个rom文件,图像和声音等数据都是包含在主程序里的.这些工具能把我们电脑上的图片或声音文件转换成一个*.h头文件,然后包含在主程序里编译.关于这种转换工具也是有许多,我推荐的图形转换工具是kaleid_1-2-3,在http://www.gbadev.org上下载,它可以转换我们平时用的BMP文件.声音转换工具是wav2gbac.exe,也是在http://www.gbadev.org下载,它可以转换我们平时用的WAV文件.

好了,下载完后这两个小工具后,准备工作就算做完了.

GBA程序开发入门1相关推荐

  1. 掌上游戏机开发指南——GBA程序开发入门

    1.GBA简介 Game Boy Advanced(GBA)是日本任天堂公司于2001年推出的一款32位掌上游戏机.它着重于游戏机的便携式,并且以2D游戏为主(3D游戏依然不错).GBA有十分高效硬件 ...

  2. GBA程序开发入门3

    下面我将一一讲解上篇的程序 前三行: typedef unsigned char u8; typedef unsigned short u16; typedef unsigned long u32; ...

  3. 教孩子学编程python语言pdf_iOS(iPhone)应用程序开发入门视频教程(35讲)

    资源名称:iOS(iPhone)应用程序开发入门视频教程(35讲) 资源目录: [IT教程网]ios(iPhone)应用程序开发入门视频教程:第10讲多视图应用程序 [IT教程网]ios(iPhone ...

  4. 《微信小程序开发入门精要》——导读

    本节书摘来自异步社区<微信小程序开发入门精要>一书中的导读,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 第1章 微信小程序入门 第1章第1节 ...

  5. android入门程序源代码,安卓程序开发入门

    您可能感兴趣的话题: 安卓程序开发入门 核心提示:本教程为大家介绍采用Eclipse软件来编写安卓Hello,World程序. 创建一个新项目是很简单的,只要你安装了Eclipse插件,并且你的Ecl ...

  6. Linux 应用程序开发入门

    Linux 应用程序开发入门 Neo Chen (netkiller) <openunix@163.com> 版权 © 2011, 2012 http://netkiller.github ...

  7. 小程序onload_微信小程序开发入门之共享账本(十四)

    微信小程序开发入门之共享账本(十四) (备注:微信小程序的wxml文件相当于HTML文件,wxss文件相当于CSS文件,js文件就是JavaScript文件,数据库为NoSQL数据库,数据库脚本语言也 ...

  8. 小程序开发入门基础篇-张代浩-专题视频课程

    小程序开发入门基础篇-1995人已学习 课程介绍         采用小程序wepy框架,初级讲解如何搭建小程序的开发环境,创建工程,语法介绍.开发调试等,课程采用实战代码案例作为教材,通俗易懂,简单 ...

  9. 《微信小程序开发入门精要》——第2章,第2.8节带边距的水平等间隔排列

    本节书摘来自异步社区<微信小程序开发入门精要>一书中的第2章,第2.8节带边距的水平等间隔排列,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.8 ...

最新文章

  1. 几句代码 修改 Kali 2020.3 - root 用户的密码
  2. Windows 8 动手实验系列教程 实验8:Windows应用商店API
  3. ACM 全部算法总结
  4. 全球及中国数字电视产业盈利模式及发展动态建议报告2021-2027年
  5. 阿里云ECS上LVM磁盘配置
  6. CodeForces - 660C Hard Process
  7. gitee怎么仓库间传文件_实现一个简单的基于码云(Gitee) 的 Storage
  8. foreach lambda写法_Java8新特性之forEach+Lambda 表达式遍历Map和List
  9. LintCode-- Remove Linked List Elements
  10. 中国无人车第一案!百度状告景驰王劲:窃取机密,不还电脑,索赔5000万
  11. html克隆元素增加id,h.js - 元素克隆与追加
  12. sklearn文本特征提取
  13. 2019年电赛H题电磁炮实录
  14. 图片验证码的测试用例梳理
  15. 【行业聚焦】畅捷通用自然语言技术颠覆企业应用人机交互模式!
  16. python下载图片代码_基于Python下载网络图片方法汇总代码实例
  17. 2021昆明icpc B 状压+期望dp,一点几何模拟
  18. Granafa监控仪表盘:自定义简约型-只显示资源总览,各个主机详情
  19. 计算机成绩分数段,用FreQuency函数统计学生成绩分数段的技巧-excel技巧-电脑技巧收藏家...
  20. .7z.001 这种让人头疼的分卷格式

热门文章

  1. Excel表格中行列互换的方法?
  2. ${}和`${}`的用法
  3. 实用工具推荐【待更新】
  4. java pdfbox 转jpg_java实现PDF转图片的方法
  5. CentOS8-1905 本地dnf源挂载
  6. Reference定义(PhantomReference,Cleaner)
  7. 【Excel】给自己做个2020年高考倒计时
  8. download file with c++
  9. 被动与主动信息收集 | 系统性学习 | 无知的我费曼笔记
  10. 机器学习数学原理(3)——生成型学习算法