导航:首页 > 文件教程 > gba游戏制作教程

gba游戏制作教程

发布时间:2021-03-04 03:21:58

㈠ 如何制作GBA游戏

GBAS 是 GameBoy Advance development System (GameBoy Advance 开发系统)的缩写,它主要的功能便是用来做 GameBoy Advance 游戏以及数据的传输,使用者可以自行将自己所撰写的 GameBoy Advance 软件透过 GBAS 烧录机传至 GBAS 64M 或 GBS 128M 的覆写卡上面,然后插入 GameBoy Advance 的主机执行。就是说,如果你自己也会开发GBA的游戏的话(据说对于好的程序员不是很难),那么你根本不需要任天堂的授权,就可以把自己开发的GBA游戏直接通过GBAS系统在GBA上游玩。
GBAS 烧录机的功能除了负责将 GameBoy Advance 的软件传输至覆写卡外,他还具备可将原版 GameBoy Advance 卡带备份至计算机储存成 *.GBA 的计算机档案,或者将原版 GameBoy Advance 卡带以及 GBAS 覆写卡中的记忆存盘备份成 *.SAV 的计算机档案。这些备份的档案均可配合各种 GameBoy Advance 计算机仿真器执行。而这就意味着你可以利用这款系统自由把网络上的GBA游戏的ROM通过GBAS烧录机直接拷贝到专用GBAS卡带上,想想网络上已经可以执行的GBA游戏ROM的数量,是不是有些心动了?
应该说GBAS是一个相当完善的系统,虽然这款系统刚刚开发完毕,但是它在功能上已经相当优秀了,那我们现在看看它有那些特点。
一、EEPROM 特殊记忆支持: 这款GBAS是目前唯一支持 EEPROM 记忆格式的 GBA 开发工具,也是目前唯一可以对应 Super Mario Advance (日/美)的开发工具。哈哈,要知道超级MARIO大冒险的美版还没有出啊,而在网络上,这个游戏的ROM早就有了,所以大家可以看到在图片中执行的GBA游戏就是超级MARIO大冒险的美版。

二、超大电池记忆: 超大 1M 电池记忆,支持所有游戏记忆(包括游戏王五代的超大电池记忆也能支持)。 这个特点是相当好的,也比较贴近玩家的特点,一般来说,用了这个东西,什么游戏的记录都不会出问题了,玩家完全没有必要担心、GBAS的记忆空间不足。
三、合卡功能: GBAS 支持合卡,64M 版本可支持两个 32M 的游戏合卡。这样,玩家可以一次录进两个32M的游戏,使GBAS成为一个合卡,要是玩家拥有的是128M的覆写卡,嘿嘿,那就可以让你的GBAS成为4合1卡了,这样就节约了游戏烧录拷贝的时间,当然,128M的卡几个自然要高得多了。
四、操作接口:全新窗口下烧录接口(包含游戏上载,下载以及游戏记录文件上载下载功能)全新修正了游戏传输问题,更快速更准确,支持窗口 9X 作业平台,安装容易使用方便,使用者完全不用担心会出什么问题。
GBA的软件制作烧录系统—GBAS

㈡ 如何制作GBA游戏或HACK GBA

GBAS 是 GameBoy Advance development System (GameBoy Advance 开发系统)的缩写,它主要的功能便是用来做 GameBoy Advance 游戏以及数据的传输,使用者可以自行将自己所撰写的 GameBoy Advance 软件透过 GBAS 烧录机传至 GBAS 64M 或 GBS 128M 的覆写卡上面,然后插入 GameBoy Advance 的主机执行。就是说,如果你自己也会开发GBA的游戏的话(据说对于好的程序员不是很难),那么你根本不需要任天堂的授权,就可以把自己开发的GBA游戏直接通过GBAS系统在GBA上游玩。GBAS 烧录机的功能除了负责将 GameBoy Advance 的软件传输至覆写卡外,他还具备可将原版 GameBoy Advance 卡带备份至计算机储存成 *.GBA 的计算机档案,或者将原版 GameBoy A dvance 卡带以及 GBAS 覆写卡中的记忆存盘备份成 *.SAV 的计算机档案。这些备份的档案均可配合各种 GameBoy Advance 计算机仿真器执行。而这就意味着你可以利用这款系统自由把网络上的GBA游戏的ROM通过GBAS烧录机直接拷贝到专用GBAS卡带上,想想网络上已经可以执行的GBA游戏ROM的数量,是不是有些心动了?应该说GBAS是一个相当完善的系统,虽然这款系统刚刚开发完毕,但是它在功能上已经相当优秀了,那我们现在看看它有那些特点。一、EEPROM 特殊记忆支持: 这款GBAS是目前唯一支持 EEPROM 记忆格式的 GBA 开发工具,也是目前唯一可以对应 Super Mario Advance (日/美)的开发工具。哈哈,要知道超级MARIO大冒险的美版还没有出啊,而在网 络上,这个游戏的ROM早就有了,所以大家可以看到在图片中执行的GBA游戏就是超级MARIO大冒险的美版。二、超大电池记忆: 超大 1M 电池记忆,支持所有游戏记忆(包括游戏王五代的超大电池记忆也能支持)。 这个特点是相当好的,也比较贴近玩家的特点,一般来说,用了这个东西,什么游戏的记录都不会出问题了,玩家完全没有必要担心、GBAS的记忆空间不足。三、合卡功能: GBAS 支持合卡,64M 版本可支持两个 32M 的游戏合卡。这样,玩家可以一次录进两个32M的游戏,使GBAS成为一个合卡,要是玩家拥有的是128M的覆写卡,嘿嘿,那就可以让你的GBAS成为4合1卡了,这样就节约了游戏烧录拷贝的时间,当然,128M的卡几个自然要高得多了。四、 操作接口:全新窗口下烧录接口(包含游戏上载,下载以及游戏记录文件上载下载功能)全新修正了游戏传输问题,更快速更准确,支持窗口 9X 作业平台,安装容易使用方便,使用者完全不用担心会出什么问题。GBA的软件制作烧录系统—GBAS简单入门-一. GBA开发包--DevKitAdv 简介DevKitAdv 主要包括两部分,一是GCC++编译器,二是 GBA库.GCC++编译器功能和我们常用的VC差不多,只不过少了个编辑源代码的文本编辑器(至少我没发现,我用的是EditPlus,UltraEdit也可以),还有就是--不支持类(class),真是让人头痛,只能用struct来替代.它的作用是把我们写的代码编译成二进制的可执行文件,当然这个可执行文件是相对GBA和GBA模拟器而言的.就 Windows里的EXE文件无法在Mac机上使用是一样的道理;GBA库提供了图像,控制及声音一系列的函数,和GCC++配合使用.下载地址: http://occultforces.mine.nu/~darkfader/gba/files/devkitadv.zip二. DevKitAdv 的安装没啥好说的,解压后就可以直接使用,编译时设置DevKitAdv的路径就可以了,建议做一个批处理文件,比如 go.batset 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*)0x04000000 // 显示寄存器地址#define VRAM 0x06000000 // 图像缓冲区地址#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_4SetMode (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.cobj -v -O binary main.elf main.bin你会看目录下多了个"main.bin",这个就是能在GBA模拟器上执行的二进制文件!教程中t1-t10目录为源程序目录,里面有个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还有专为精灵设置的物体层,它的用法和背景层一样,只是功能有点不一样,地址是0x06000000.有关用这里就不详细说了,大家可以把精灵数据直接输出到物体缓冲区就可以了.下面是源程序:... ...// 包含图像调色板和数据的头文件#include "gfx/image.h"// ----------- 全局变量 --------// 系统调 色板u16* palette_mem=(u16*)PALETTE;// 图像缓冲区u16* video_buffer=(u16*)VRAM;// ----------- 函数定义 ---------// MODE_4绘图函数void Draw(u16* src_palette,u16* src_data,u16* dst_palette,u16* dst_data);// ----------- 主程序 ------------int main(){// 设置屏幕模式,这里使用MODE_4SetMode (MODE_4 | BG2_ENABLE);// 在背景层画图,Palette和Data是在"image.h"定义的调色板和图像数据数组名Draw(Palette,Data,palette_mem,video_buffer);}// 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)];}}}编译后得到main.bin,然后在GBA模拟器里运行,就可以得到这样的结果:五. 在MODE_5画图的 GBA 程序 (t3)在GBA的MODE_5里画一幅图也要经过相似3个步骤,只不过不需要调色板数据:1. 把原始真彩图像文件转换成 *.h / *.c 的数据文件,我们用的是 < Targa2GBA > ,这里以"image.bmp"(240*160)为例,DOS窗口下进Targa2GBA目录, 输入"t2g mode5 image.bmp image.h",转换后我们就得到了一个"image.h"文件;2. 在程序开头#include "image.h",这样就能在程序中使用"image.h"定义的图像数据;3. 在程序中把"image.h"定义的图像数据写入图像缓冲区.下面就是源程序:// 包含图像数据的头文件#include "gfx/image.h"// ----------- 全局变量 --------// 图像缓冲区u16* video_buffer=(u16*)VRAM;// ----------- 函数定义 ---------// MODE_5绘图函数void Draw(int x,int y,int w,int h,u16 *src_data,u16 *dst_data);// ----------- 主程序 ------------int main(){// 设置屏幕模式,这里使用MODE_5SetMode (MODE_5 | BG2_ENABL);// 在背景层画图,image是在"image.h"定义的图像数据数组名Draw(0,0,240,160,image,video_buffer);}// MODE_5绘图函数void Draw(int x,int y,int w,int h,u16 *src_data,u16 *dst_data){int i,o,idst;// 把源图像数据复制到图像缓冲区的指定地方idst =(y*160)+x;for (i=0;i<h;i++){for (o=0;o<w;o++){if (*src_data != 0){dst_data[idst] = *src_data;}idst++;src_data++;}idst += (160-w);}}编译后运行结果:六. 全屏显示的 MODE_5 GBA 程序 (t4)由于GBA不支持线性的图像变换,因此得到的结果会产生一些马赛克的现象,现在还是附上这个变换函数和最终结果,其实质量还是可以接受的,大家可以试试使用这个新的MODE_5.// 切换到新MODE_5全屏模式,page为缓冲区,原理是把显示寄存器数据X,Y交换,得到128*160的显示,GBA就会全屏显示.void SetFlipMode(int page){u16 *ioreg=(u16*)0x4000000;*ioreg=5+((page&1)>>4)+(1>>10);ioreg[0x10]=0;ioreg[0x11]=256;ioreg[0x12]=128;ioreg[0x13]=0;}int main(){// 设置屏幕模式,这里使用MODE_5SetMode (MODE_5 | BG2_ENABLE);// 切换模式SetFlipMode(0);// 在背景层画图,image是在"image.h"定义的图像数据数组名Draw(0,0,240,160,image,video_buffer);r七. GBA的双缓冲显示(t5)大家在做上面MODEL_5的程序时一定会发现图像在闪动(第六节的240*160的MM象被破了相...),而MODEL_4下却比较稳定--这是因为MODEL_5下要处理16bits(实质上是15bits)的图像,数据量比MODEL_4下的8bits大很多,在没使用双缓冲的情况下,图像填充时就会造成闪烁,这就是为什么我们抛弃了MODEL_3的原因...原理也很简单,图像在背缓冲区里填充好之后再直接输出到前缓冲区显示,程序里就是一个 "等待同步-> 交换缓冲" 的过程:... ...// ----------- 全局变量 --------// 图像缓冲区u16* video_bu ffer=(u16*)M5_VRAM;// ----------- 函数定义 ---------... ...// 等待缓冲区数据同步void WaitSync ();// 交换缓冲区内容void SwapScreen ();// ----------- 主程序 ------------int main(){// 设置屏幕模式,这里使用MODE_5SetMode (MODE_5 | BG2_ENABLE);while(1){// 在背景层画图,image是在"image.h"定义的图像数据数组名Draw(0,0,240,160,image,video_buffer);WaitSync();SwapScreen();}}// 等待缓冲区数据同步void WaitSync (){while (*(volatile u16*)0x4000006<160) {};}// 交换缓冲区void SwapScreen ():{if (REG_DISPCNT & BACKBUFFER){REG_DISPCNT &= ~BACKBUFFER;video_buffer = (u16*) M5_VRAM;}else{REG_DISPCNT |= BACKBUFFER;video_buffer = (u16*) VRAM;}}八. GBA 的按键输入(t6)讲了老半天的图像,虽说是对着MM,但大家一定也有点烦了,我们现在就换个方向,来看看GBA的控制.... ...// 按键控制#define KEY_A 1#define KEY_B 2#define KEY_SELECT 4#define KEY_START 8#define KEY_RIGHT 16#define KEY_LEFT 32#define KEY_UP 64#define KEY_DOWN 128#define KEY_R 256#define KEY_L 512volatile u32* KEYS = (volatile u32*)0x04000130;// 包含图像调色板和数据的头文件#include "gfx/image.h"// ----------- 全局变量 --------// 图像缓冲区u16* video_buffer=(u16*)M5_VRAM;// 图像显示坐标int img_x,img_y;// ----------- 函数定义 ---------// 按键控制void KeyAction();... ...// ----------- 主程序 ------------int main(){// 设置屏幕模式,这里使用MODE_5SetMode (MODE_5 | BG2_ENABLE);while(1){// 处理按键事件KeyAction();// 在背景层画图,image是在"image.h"定义的图像数据数组名Draw(img_x,img_y,96,64,image,video_buffer); WaitSync();SwapScreen();}}// 处理按键事件void KeyAction(){// 上方向键if(! ( (*KEYS) & KEY_UP) ){img_y+=5;}// 下方向键if(! ( (*KEYS) & KEY_DOWN) ){img_y-=5;}}eturn(0);九. 简单声音输出(t7)Simple is the Best(简洁至上),这里我们使用一个现成的声音模块(Troff Player,by Vova & Serge).这里还要用到一个转换工具< MOD2GBA >,用来把MOD音乐文件转换成GBA的 *.c / *.h 声音数据文件.MOD和MIDI差不多,但支持更多更强的效果.MOD可以由konvertor这个强大的软件转换而来.// MOD数据文件#include "song_data.h"// MOD: 播放函数文件#include "modplayer.h"// ----------- 主程序 ------------int main(){//设置屏幕模式,这里使用MODE_4SetMode (MODE_4 | BG2_ENABLE);// 初始化声音(声道数,音量)InitSound(2, 7);// 初始化音乐(节拍,循环)InitSong(20000, 0);while(1){// 更新音乐播放状态UpdateSong();}}OK,就这么EZ.十. 用图块建立可滚动/缩放/旋转的背景(t8)这一节主要是源程序中注释为主,这里就不详细说明了."gba.h"包含基本宏定义,"maths.h"是sin/cos乘256后的值数组,"main.h"包括了我们定义背景结构及操作背景的函数.程序中的地图背景是由 同的图块所构成,而这些图块统一紧挨着放在一个图像文件,这样每个图块就会有一个索引号;地图信息只要记录这张地图里共有多少个 单位(图块)以及每个单位对应的图块索引号就OK了,在例子中"gfx/tiles.h"就是图块大本营,而"gfx/level1.h"则是图块索引排列表.地图工具为"map editor beta 4".背景的滚动/缩放/旋转是通过一系列的简单数学计算,修改GBA系统提供的一些背景属性来完成,因为是由硬件来完成背景的操作(MODE_1),所以速度很快,我还有个MODE_5下直接修改像素点位置来完成旋转的例程,待会儿大家可以比较一下.

㈢ 找制作GBA游戏的软件

同样有一款制作rpg游戏的gba程序(也算一种游戏)
名字叫rpg制作大师
可以作出像ff1
2
3(最终幻想)一样的游戏
比较不错
上手较难
lz可以试一试
最好是找教程
制作大师
也算游戏了

㈣ 如何制作像火焰纹章那样的GBA游戏附软件和教程,有基础

----------------------------------------------------
选择游戏培训学校应该从多方面了解,不可盲目
我建议您从以下几点进行选择,回才能选出答您适合的游戏培训学校
1、网络查询,通过上网查找您所看中的学校,初步了解该学校的培训机构
2、实地探访,光靠网络查询是不够的,您应该实地了解该学校的规模
3、试听课程,通过几节课的试听您大概了解到这所学校是否适合您
4、是否正规,试听完后初步可以认定了,可是最后还应该了解该所学校是否有齐全的手续。
最后,我推荐您一个游戏培训公司 北京幸星国际游戏美术学院
地址:朝阳区酒仙桥路14号兆维工业园A区2号楼1门4层

㈤ GBA模拟器 的游戏怎么制作

3L说的有理,如果你特别想尝试一下游戏制作,你可以玩玩RPG制造这个游戏,这个游戏就是让玩家能够体验制作游戏的乐趣而开发的,可以自己设置人物,建筑等等。很有意思。

㈥ 如何制作一个gba口袋妖怪游戏

这个太深奥了,没有编程的基础就不要想了

㈦ CIA格式的GBA游戏怎么制作

你好,抄这情况是citra读取rom文件失败,可能原袭因是你的rom损坏或者格式不对,citra目前基本只支持cci文件
另外,即使你rom正确,citra也无法正常运行xy,当你选好主角后就会死机,这个没办法,citra还没做到能通关xy的程度,即使你能用第三方存档。

㈧ 制作GBA游戏需要学习什么_

有个叫RGB游戏制作大师的软件

㈨ GBA游戏是怎么制作得。

GBA游戏的64M和电脑上的不一样的,所有GBA游戏不小。
制作的话和别的游戏一样做的

㈩ 网上的那些hack的游戏是怎么制作的GBA的

欢迎进入gba rom hack圈!
hack的方法大部分是下面五种:
(大部分是)使用普通的原版rom+一些现成的改版工具(比如advance map, pokemon rom viewer,pokemon game editor,dsvania edit,map deluxe之类的)制作的;
(一些是)基于其他人做好的rom base(以让别人作为改版的蓝本发布在平台上的改版)再调整,并使用改版工具的;
(一些更厉害的)一部分是使用改版工具,但是更主要使用十六进制编辑的;
(极少有的)一部分是通过完整的反汇编项目编译的;
(强大的大佬)几乎不使用改版工具,而是以十六进制编辑和asm插入为主。
然而,对于那些无敌版,无限金钱版,可以说在上面五种之外。其hack模式与主要修改内容的hack不同——它们从来不是以修改器或者十六进制编辑为主,而是使用NO$GBA-d调试并修改asm以达到金钱不减之类的效果。当然,虽然这些hack的技术要求一般更高,但这样的hack一般不是很优质。
如果你想开始做hack的话,建议从修改器开始。虽然有的时候不能摆脱hex,但是总的来说还是最快、最容易的上手的方式。其他的方式是需要对gba或者说,计算机,有更一步认识才能做的。当你理解了hex的含义,可以尝试挑战没有修改器的游戏或者修改器功能非常有限,hack技术不成熟的游戏。如果你会汇编,那我建议你不要来问我,因为汇编是gba rom hack最“深刻而危险”的东西,也是最“万能而伟大”的东西。

阅读全文

与gba游戏制作教程相关的资料

热点内容
谷道网络技术有限公司 浏览:513
小米电视不能识别u盘apk文件 浏览:390
如何将摄像头的数据变高清 浏览:581
西青大数据 浏览:457
2016支付宝vs微信 浏览:745
移动g2f怎么进入3g网络 浏览:435
linux配置阿帕奇 浏览:18
音乐标签id3修改工具 浏览:589
数据频繁变化是什么 浏览:977
iphone来电壁纸 浏览:40
删除文件夹找不到指定路径怎么办 浏览:487
原力大数据招聘 浏览:479
数据线圆头什么意思 浏览:768
协和app怎么取号 浏览:664
c坐标转换代码 浏览:707
唐筛数据为什么能看出男女 浏览:44
快手java 浏览:835
qq分享的文件在哪里 浏览:226
爱念电影 浏览:656
97不用下载播放器的 浏览:649

友情链接