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播放器(它的声音处理方面能力也不错哦),做成随身电影播放齐,做成电子词典等,只要你有能力设计它的软件。 

不说多了,我们还是主要来看看如何开发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语言作为首选。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
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播放器(它的声音处理方面能力也不错哦),做成随身电影播放齐,做成电子词典等,只要你有能力设计它的软件。
不说多了,我们还是主要来看看如何开发GBA的软件。应该说,你只要会点C语言,就可以进入GBA的开发行列中了。在GBA上写程序比在电脑上写程序更简单。GBA是单总线的设计,也就是说通过简单的读写命令就能完成所有的内部硬件操作。访问GBA内部的寄存器就犹如访问一块内存一样简单,而GBA所有的功能都是通过读写寄存器而完成的。
2.GBA程序开发准备
GBA开发所需要的东西除了一台可以用的电脑外,主要就是一个编译器和一个GBA模拟器。
有了GBA模拟器,你就可以在你的电脑上运行GBA程序了。GBA模拟器应该是到处可以找得到的。我推荐的是VisualBoyAdvance。你可以在上下载最新的版本。如果你还想把你的程序弄到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://去下载这个软件。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. 。
我以DevkitAdv配置的gcc为主还讲解GBA的程序开发。
安装DevKitAdv很简单,用WinZip或WinRAR软件解压下载文件后,双击DKA_Setup.exe,出现下面的对话框,选择安装目录,然后点击"Install"就进行安装了。整个DevKitAdv共49MB,应该是十分小的。
编译器和模拟器都装好后,下面我们需要一批小工具,主要就是帮我们转换图片,声音等数据。GBA程序编译后通常都是一个rom文件,图像和声音等数据都是包含在主程序里的。这些工具能把我们电脑上的图片或声音文件转换成一个*.h头文件,然后包含在主程序里编译。关于这种转换工具也是有许多,我推荐的图形转换工具是kaleid_1-2-3,在http://上下载,它可以转换我们平时用的BMP文件。声音转换工具是wav2gbac.exe,也是在http://下载,它可以转换我们平时用的WAV文件。
好了,下载完后这两个小工具后,准备工作就算做完了。 |||
3.第一个GBA程序
现在我们开始我们的第一个GBA程序。在这个程序中我们将在屏幕上显示一张的图片。
首先你建立一张240*160大小,256色的bmp图片,比如这样:
名字就叫helloworld.bmp.打开刚才下载的Kaleid_1-2-3程序。选中菜单File中Open,打开这个helloworld.bmp文件,再选中菜单File中Convert and Save.出现对话框:
如图一样选择各项选择,特别注意的是一定要选择“BitMap Graphics(Mode 4)”和“Save As C Source”,并且去掉“#include <agbtypes.h>”的选择。最后单击“Convert and Save”,保存为helloworld.h。
图像数据已经转换好了,接着我们开始写代码。建立个main.c的文件,并把helloworld.h放在一个目录下。然后在main.c中写下代码:
typedef unsigned char u8;typedef unsigned short u16;typedef unsigned long u32;#define REG_DISPCNT *(u16*)0x04000000// 显示寄存器地址#define VRAM 0x06000000 // 图像缓冲区地址#define PALETTE 0x5000000// 调色板地址#define MODE_4 0x04 // mode4标志#define BG2_ENABLE 0x0400// BG_2标志#define SetMode(Mode) REG_DISPCNT=(Mode) // 设置显示模式的宏定义#include "helloworld.h" // 包含图像调色板和数据的头文件u16* palette_mem=(u16*)PALETTE; // 系统调色板u16* video_buffer=(u16*)VRAM; // 图像缓冲区void Draw(u16* src_palette,u16* src_data,u16* dst_palette,u16* dst_data);int main(){// 设置屏幕模式,这里使用MODE_4SetMode (MODE_4 | BG2_ENABLE);// helloworld_pal和helloworld_gfx是在"helloworld.h"定义的调色板和图像数据数组名Draw((u16*)helloworld_pal,(u16*)helloworld_gfx,palette_mem,video_buffer);// 死循环while(1){ ;}}// MODE_4绘图函数void Draw(u16* )0x04000000// 显示寄存器地址#define VRAM 0x06000000 // 图像缓冲区地址#define PALETTE 0x5000000// 调色板地址#define MODE_4 0x04 // mode4标志#define BG2_ENABLE 0x0400// BG_2标志#define SetMode(Mode) REG_DISPCNT=(Mode) // 设置显示模式的宏定义#include "helloworld.h" // 包含图像调色板和数据的头文件u16* palette_mem=(u16*)PALETTE; // 系统调色板u16* video_buffer=(u16*)VRAM; // 图像缓冲区void Draw(u16* src_palette,u16* src_data,u16* dst_palette,u16* dst_data);int main(){// 设置屏幕模式,这里使用MODE_4SetMode (MODE_4 | BG2_ENABLE);// helloworld_pal和helloworld_gfx是在"helloworld.h"定义的调色板和图像数据数组名Draw((u16*)helloworld_pal,(u16*)helloworld_gfx,palette_mem,video_buffer);// 死循环while(1){ ;}}// MODE_4绘图函数void Draw(u16* src_palette,u16* src_data,u16* dst_palette,u16* dst_data){int loop,x,y;// 写入目的调色板for(loop = 0; loop < 256; loop++)dst_palette[loop] = src_palette[loop];// 写入图像缓冲区for(x = 0; x < 120; x++)for(y = 0; y < 160; y++)dst_data[(y) *120 + (x)]=src_data[(y) *120 + (x)];}
最后建立一个编译批处理命令make.bat来帮我们编译生成目标代码。
写入下面的命令到一个新建的make.bat文件里面
PATH=C:“devkitadv“bin;%PATH%gcc -lm -o main.elf main.cobjcopy -v -O binary main.elf main.binpause

如果你的devkitadv是在D盘,那么就应该是PATH=D:“devkitadv“bin;%PATH%,我这里的DevKitAdv是安装在C盘的。执行make.bat,如果没有错误的话就可以得到编译出来的main.bin和main.elf. main.bin就是可以运行的GBA的rom.你可以用的模拟器VisualBoyAdvance来打开运行它,或者烧录到GBA卡带上运行。
这是在模拟器VisualBoyAdvance中运行的结果。
下面我将一一讲解上面的程序
前三行:
typedef unsigned char u8;typedef unsigned short u16;typedef unsigned long u32;

定义GBA程序自己的数据类型,因为这样我们就很容易知道每个数据在GBA中占的字节数。
#define REG_DISPCNT *(u16*)0x04000000// 显示寄存器地址

REG_DISPCNT是设置显示模式的寄存器.GBA中有mode0-mode5六个显示模式。我们这个程序的显示模式是mode4,也就是240x160的8位色(256色)的双缓冲显示模式。比如mode3,就是240x160的16位真彩色的单缓冲显示模式。
#define VRAM 0x06000000// 图像缓冲区地址#define PALETTE 0x5000000 // 调色板地址
VRAM就是GBA的显示内存,简单地说VRAM中的数据就是屏幕上的图象。跟我们的平常用的计算机一样的。PALETTE就是调色板地址,简单地说就是装图像调色板的地方。
#define MODE_4 0x04
这东西在百度文库有、自己找找吧本回答被提问者和网友采纳
第2个回答  2013-03-10
1.GBA
游戏男孩高级(GBA)是一个32位的掌上游戏机是日本任天堂公司于2001年。它着重于游戏机,便携式,主要是2D游戏(3D游戏还是不错的)。 GBA非常有效的硬件图像处理加速,GBA基本上是现在全球公认的最好的掌上游戏机。

GBA的硬件是非常多的功能。它的CPU是基于RISC的32位ARM CPU频率是16.78MHz。该屏幕支持240x240点的16位真彩色显示。其他的图形处理GBA提供硬件加速支持硬件图形旋转,缩放,alpha混合,面对输入/输出褪色。

GBA软件开发的基于C语言的程序设计很简单,很自由,也吸引了众多爱好者做的事情上的GBA(不一定是游戏)。你可以把它变成一个PDA,MP3播放器(它的声音处理能力,哦也),制成一个便携式电影播放器齐电子词典,只要你有能力设计软件。

也不多说了,我们主要来看看如何开发GBA软件。应该说,只要你点的C语言,你可以进入GBA的开发行列。写程序更容易编写一个程序在计算机上的GBA。 GBA是一个单一的总线设计,可以通过一个简单的读取和写入命令所有的内部硬件操作。 GBA等内部寄存器访问一个内存块,就是这么简单,GBA所有的功能都通过读写寄存器。

2.GBA的程序开发准备

GBA发展需要的东西,除了一台电脑,可用于编译器和GBA模拟器。

GBA模拟器,你可以运行GBA计算机上的程序。 GBA模拟器应该到处都可以找到他们。我建议VisualBoyAdvance的。您可以下载最新版本的 。如果你想要让你的程序玩GBA的机器,然后应该有一个GBA,你也应该有一个刻录机。如EZ-FLASH。它可以燃烧的ROM GBA卡带运行在您的计算机上,然后把上的GBA。 (EZ-FLASH的GBA 128MB的总约1000元人民币)的

GBA的应用程序开发人员编写的程序采用汇编语言和C / C + +语言,汇编语言,但我们通常使用的8086汇编,但臂组装。任天堂可能会觉得,C + +运行的程序过多食用,不建议C + +语言开发,所以我们一直在C语言作为首选。

GBA开发的C语言编译器,有两种,一种是免费的GCC ARM提供ArmSDT的。

这里的gcc,当然,不是一个简单的Linux GCC,但ARM GCC。简单地说就是我们平时常见的产生ARM CPU的代码转化为gcc和gcc。你可能会问,难道我们要使用Linux操作系统?事实上,我们是在windows下做GBA开发的gcc linux下的东西,但我们也可以Cygwin的(在windows下模拟UNIX工具),运行windows下的GCC。这cygwin的gcc时,你可以根据自己的配置ARM GCC,配置的ARM GCC也可以直接去下载。 ,如DevKitAdv,你可以去到http:// 下载该软件。 DevKitAdv约10 MB。有了它,你不需要寻找一个cygwin(200-300MB),配置ARM GCC,DevKitAdv帮助你得到你需要的一切,安装OK。

ArmSDT发展计划,专门针对ARM CPU ARM公司提供的C语言编译器。正如上面提到的,GBA是一个32位的ARM CPU,所以这可以被用于开发ArmSDT GBA程序。因为ArmSDT ARM的官方开发工具包,所以它的编译的速度和质量比免费的GCC,但支持的C语言确实不和海湾合作委员会(GCC,毕竟,已经成为一个标准的语言编译器),最关键的问题它不是免费的,但免费测试版是可用的。 ARM公司的网站,你可以去下载ARMSDT2.51。 <a href=""网站 。

GCC配置,到DevkitAdv主要讲解GBA程序开发。

安装DevKitAdv很简单,使用WinZip或WinRAR软件解压下载文件,双击DKA_Setup.exe的后,会出现下面的对话框,选择安装目录,然后点击“Install”进行安装。全DevKitAdv共49MB,应该是非常小的。

编译器和仿真器的安装,下面我们需要一组的小工具,主要是帮助我们转换的图片,语音和数据。 GBA所编制的程序通常是一个ROM文件,图像和声音数据都包含在主程序中。这些工具可以计算机上的图片或声音文件转换成*。 H头文件,然后在主编译的程序。关于这个转换工具,是许多图形转换工具,我的建议是kaleid_1-2-3对于http:// WWW。 gbadev.org 下载它可以转换成BMP文件,我们通常使用的。声音转换工具wav2gbac.exe的,也是它可以转换href="http://" target="_blank"> 的下载,网址为<a通常WAV文件。

下载后,两个小工具,即使筹备工作。 | | |

3。 GBA程序

现在我们开始我们的第一个GBA程序。在此过程中,我们将显示在屏幕上的图像的a。

首先,您需要建立一个240 * 160大小,256色bmp格式的图片,如:

称为helloworld.bmp打开刚刚下载的程序,你Kaleid_1-2-3。选择“文件”菜单,选择“打开”,打开这helloworld.bmp文件,然后选择“文件”菜单上,选择“转换和保存对话框:

图选择相同的选项,必须特别注意选择”位图图形(模式4)“和”另存为C源代码“,并删除”#包括“的选择。最后,点击“转换并保存”,保存为helloworld.h。

图像数据已被转换,然后我们开始编写代码。创建一个的main.c文件并helloworld.h在一个目录中。然后编写代码#:

typedef无符号字符U8; typedef无符号短U16;的typedef unsigned long类型U32; - 定义REG_DISPCNT *(U16 *)0x04000000 / /注册地址的#define VRAM 0x06000000 / /图像缓冲区地址的#define PALETTE 0x5000000 / /调色板地址#定义MODE_4 0X04 / /的#define BG2_ENABLE的设置0x0400 / / BG_2模式4的标志标识的#define SetMode(模式)REG_DISPCNT“(模式)/ /设置显示模式的宏定义#包括“helloworld.h”,/ /头文件,其中包含图像调色板和数据U16 * palette_mem =(U16)PALETTE; / /系统调色板U16 * video_buffer =(U16)的VRAM / /图像缓冲区无效画(U16 * src_palette U16 * dst_palette * src_data,U16,U16 * dst_data);诠释的main(){/ /设置屏幕模式,使用MODE_4SetMode(MODE_4 | BG2_ENABLE);/ / helloworld_pal和helloworld_gfx,在HelloWorld。 H的定义调色板和图像数据数组名抽奖((U16)helloworld_pal(U16 *)helloworld_gfx palette_mem video_buffer);/ /无限循环:(1){}} / / MODE_4绘图函数void抽奖(U16 *)0x04000000 / /显示寄存器地址#define定义VRAM 0x06000000 / /图像缓冲区地址的#define PALETTE 0x5000000 / /调色板地址#定义MODE_4 0X04 / /定义BG2_ENABLE的0x0400的模式4 / / BG_2国旗标志的SetMode(模式)REG_DISPCNT“(模式) / /设置显示模式的宏定义#包括“helloworld.h”,/ /头文件,它包含图像调色板和数据U16 * palette_mem =(U16 *)PALETTE; / /系统调色板板U16 * video_buffer =(U16 *) VRAM / /图像缓冲区无效抽奖(U16 * src_palette * src_data,U16,U16 * dst_palette,U16 * dst_data),诠释的main(){/ /设置屏幕模式用在这里MODE_4SetMode(MODE_4 | BG2_ENABLE);/ / helloworld_pal的和中的“helloworld.h”的定义的调色板和图像数据数组名抽奖(helloworld_gfx(U16)helloworld_pal,(U16)helloworld_gfx,palette_mem,video_buffer);/ /无限循环,而(1){}} / / MODE_4图* src_palette绘图函数void(U16 U16 * src_data U16,U16 * dst_palette,* dst_data){int循环,X,Y ;/ /写(循环= 0;环<256;循环+ +)dst_palette [循环的目的调色板= src_palette [循环] ;/ /写入图像缓冲器(x = 0的等,x <120等,x + +)(y = 0时y的<160 y的+ +)dst_data [(y)的* 120 +(倍) ] = src_data [(Y)* 120 +(X)];}

终于建立了一个批处理命令make.bat,以帮助我们的编译器生成的目标代码的编译器。

下面的命令写入到一个新的make.bat文件内

PATH = C:“devkitadv的”bin;%PATH%GCC-LM-O main.elf main.cobjcopy-VO二进制main.elf main.binpause

,如果您devkitadv是在D盘,那么它应该是PATH = D:“devkitadv斌;%PATH%,我DevKitAdv是安装在C盘。执行make.bat,如果有没有错误,那么你可以得到的编译器输出main.bin和main.elf。,将按以上可以运行GBA ROM模拟器VisualBoyAdvance的,你可以用它来打开运行它,或刻录到GBA卡带运行。<BR /这是运行在模拟器VisualBoyAdvance的结果。

现在,我会一一解释的前三行以上的程序

typedef无符号的char U8; typedef无符号短U16; typedef无符号长U32

定义GBA程序自己的数据类型,这样我们就可以很容易地知道,每个数据占的字节数在GBA。

定义REG_DISPCNT *(U16) 0x04000000 / /显示寄存器地址

REG_DISPCNT设置显示模式寄存器。,GBA有MODE0-MODE5显示模式。此过程中的显示模式是模式4,也就是双缓冲显示模式240x240点8位色(256色)。像模式3,240x240点的16位真彩色,单缓冲显示模式。

#VRAM 0x06000000 / /图像缓冲区地址的#define PALETTE 0x5000000 / /调色板地址

VRAM是GBA的显示记忆体,简单地说VRAM数据,我们通常使用的计算机屏幕上的图像。PALETTE调色板地址,简单地说是加载图像调色板。

#MODE_4 0x04的
这东西百度文库,自己的外观。
第3个回答  2013-02-01
GBA开发的好像是C语言。
第4个回答  2013-02-15
更好的软件开发
但是,相比之下,比游戏设计的软件开发是很难了解的。
软件设计,学习一些编程语言,这些语言?应该有一定的基础,好学,您将学习一些JAVA,JSP,ASP.NET(网页设计),VB.NET,J2ME(手机的发展)
将不得不学习一些游戏设计,三维动画类,它属于IT行业的专业,他一般都比较底,主要是学习游戏编程语言和游戏动画设计(3DMAX)。
但是我最后说,无论是无论什么时候,只要你学习不够精细,通过在各自的领域将有一个非常好的位置,你未来的收入是相当可观的,更多的东西,你一定要记住,我们必须选择专业,你有兴趣,你真的会在这方面有所作为的方式,我是学软件开发。 ^

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网