GBA程序开发入门1

原创 2003年06月13日 16:40:00

GBA程序开发入门<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.GBA简介

 

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

GBA的硬件功能十分多.它的CPU是以RISC为基础的32ARM CPU,主频是16.78MHz.屏幕最大支持240x16016位真彩色显示.在图形处理方面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上的读书软件,这个软件做得很不错,除了看书,甚至还可以浏览图片.

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 

 

不说多了,我们还是主要来看看如何开发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加一个128MBEZ-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大概10MB.有了它,你用不着去找什么cygwin(200-300MB)和配置什么Arm Gcc,DevKitAdv已经帮你做好了一切,你只需安装它就OK.

 

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

 

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

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

 

 

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

 

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

GBA程序开发入门3

下面我将一一讲解上篇的程序前三行:typedef unsigned char u8;typedef unsigned short u16;typedef unsigned long u32;定义GBA...
  • tangl_99
  • tangl_99
  • 2003年06月13日 17:07
  • 9411

GBA程序开发入门2

3.第一个GBA程序 现在我们开始我们的第一个GBA程序.在这个程序中我们将在屏幕上显示一张的图片.首先你建立一张240*160大小,256色的bmp图片,比如这样:名字就叫helloworld.bm...
  • tangl_99
  • tangl_99
  • 2003年06月13日 17:08
  • 4101

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

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

小程序-开发入门

各位好,2017年1月9号,随着小程序上线的序幕,一场由微信挑起的原生APP与小程序的线上撕逼正式拉开了序幕。一时间沸腾的网络文章诸如《原生APP已死》的文章成爆炸之势。作为一名Android的原生开...
  • sfq19881224
  • sfq19881224
  • 2017年01月13日 10:47
  • 636

GBA的内存其实很大

2011-1-10        以前当看到GBA的ram只用几百KB的时候,感到有点不可思议—怎么那么小啊,根本就不跟GBA游戏精致的界面相称。       后来注意到GBA使用的的闪存是Nor F...
  • Koupoo
  • Koupoo
  • 2011年01月10日 11:30
  • 1003

微信小程序开发入门篇

本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果。开发准备工作获取微信小程序的 AppID登录 https://mp.weixin.qq.com ,就可以在网站的“设置”...
  • xiangzhihong8
  • xiangzhihong8
  • 2016年12月19日 13:31
  • 11936

GBA编程和汉化常用软件汇总

内容来自GBA吧中的痴狂小黑,本人只是做个汇总和搬运。 1.简易图片导入导出套装(PicSimpleImEx & AutoPicRock)Ver1.0 这两个软件是用C#写的,想要用,先装...
  • u012260499
  • u012260499
  • 2016年10月19日 10:33
  • 638

GBA multiBoot时的Arduino源代码~

//Description: The GBA connector pinouts are as follows: //(Looing at GBA) // __________________ ...
  • ESZETA
  • ESZETA
  • 2013年09月22日 20:51
  • 1060

自己动手丰衣足食-自己动手修改GBA ROM游戏文件

经过一天的努力终于琢磨出怎么修改GBA的游戏文件也就是俗称的ROM文件,起因是因为偶然看到二手GBM,顿时抑制不住买了一台,可惜买得晚了,完美运行游戏又带金手指功能的烧录卡买不到了。SUPERCARD...
  • l198738655
  • l198738655
  • 2017年03月21日 12:06
  • 3850

gba 中的ARM 汇编

工作还是没搞定……“编写GBA游戏的时候我们所看的教程都用C来写,用纯汇编来学习写GBA游戏仅仅是让大家熟悉一下ARM汇编……”真是人闲得闲死,什么东西都在学,郁闷的郁闷,虚空的虚空……整理一下过去在...
  • excuseser
  • excuseser
  • 2005年04月22日 21:01
  • 1341
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GBA程序开发入门1
举报原因:
原因补充:

(最多只允许输入30个字)