GBA游戏怎么自己改版
共6个答案
-
皮囊丶
要自己改版GBA游戏,你需要以下几个步骤:
1. 下载和安装适用于GBA游戏修改的工具:你可以在互联网上找到一些适用于GBA游戏修改的工具,例如“Advance Map”、“Advance Text”、“Lunar IPS”等。下载并安装这些工具。
2. 下载原始游戏ROM文件:在修改GBA游戏之前,你需要有游戏的原始ROM文件。你可以从一些提供ROM下载的网站上找到你想修改的游戏的ROM文件。
3. 打开Advance Map:使用Advance Map这个工具,你可以编辑游戏的地图。打开Advance Map并加载你想修改的游戏的ROM文件。你将能够查看和编辑游戏中的各个地图。
4. 修改地图:在Advance Map中,你可以移动、添加、删除和修改地图上的各个元素,如建筑物、道路、树木等。你可以根据自己的想法来修改地图,使得游戏体验更加独特。
5. 修改文本:使用Advance Text这个工具,你可以编辑游戏中的文本。打开Advance Text并加载你想修改的游戏的ROM文件。你可以修改游戏中的对话、菜单、道具名称等文本内容。
6. 应用补丁:如果你有一些游戏改进的补丁文件(通常是IPS格式),你可以使用Lunar IPS这个工具来将其应用到游戏的原始ROM文件上。打开Lunar IPS并选择你的补丁文件和原始ROM文件,然后点击“应用补丁”按钮。
7. 测试和保存:在完成修改后,你可以使用GBA模拟器来测试你的游戏。确保所有的修改都按照你的预期工作。如果一切正常,你可以保存修改后的ROM文件。
游戏修改涉及技术操作和版权问题,请尊重游戏开发者的权益,并仅在个人私下使用的范围内进行修改。
-
西藏圣地
首先我们打开脚本编辑器,读取一个ROM 之后在输入地址的下方我们会看到一个“翻译成脚本”的按钮,按下它! 按下之后那个按钮的文字会变为“翻译成文本”通过资料我们查到开头博士的那段话地址是1aa211,所以我们在地址输入框输入1aa211。 输入完成后按下“开始分析”按钮,编辑器就会开始自动分析,然后我们就可以在下方的框框里看到分析的结果,是不是我们在游戏里看到的文字呢??? 发现文字之后我们点击右边的“编辑”按钮,在弹出的“文字编辑”对话框中的下半部分,也就是“更改文字”栏里面我们直接用键盘输入想要在ROM里出现的文字,最后点击“确定”等待编辑器自动处理完成就好了!!是不是很方便呢?? 注意:如果你输入的文字码表中没有的话在最后点击确定后编辑器会自动提示的,另外就是需要换行,换页,翻行时请用编辑器下面的按钮插入。
OK,教程到这里就结束了。
-
喋喋以喋以喋喋
制作成功的游戏,需要软件大致有SQL,PHOTOSHOP,.net系列,autoCAD等等等等,硬件:电脑配置要达到服务器级别,而且不止一台 流程嘛,企划,剧本,分析,制作程序,测试,反馈,再测试,不断的后续补丁 所以一个人是不可能掌握所有知识的,需要一个很大的团队,如果只想做一个普通的国产网游那样的简单图形游戏,10人的团队就够了 PS:仙剑1可是1个人的团队做出来的,到仙剑4也只用了10个人,所以你要有梦想的话,坚信下去,早晚能成功 GOOD LUCK 要开发一个游戏需要很大的开资,你要先想好,计算好,如果你自己不会制作网络游戏的话,那就要请专业人员来帮助你了,要请的人也有很多
例如:游戏设计师(建议游戏还是由你自己设计比较好,否则你开发网络游戏就没什么意思了)
游戏程序设计员
主页设计师(你自己会做网页的话就不必要请了)
GM等等 开发网络游戏最主要的网络设备是服务器,如果没足够资金买服务器就不用想开发网络游戏了,垃圾一点的服务器价格一般都在8000RMB左右,不过服务器可以租用,等赚到钱再买也可以 小弟只能回答到这里了……
最基本的就是DirectX(是微软推出的一套基于Windows系统的多媒体应用程式接口APIs函式) 现在大多数游戏都基于DX9.0C及DX10.
然后是编程VC(编写C++语言的)
画面,音乐等DirectX中都有包含. 大概就以DirectX和VC为关键主要的,象PS,3DMAX,FLASH等做处理的! picture数组
可以用坐标来完成
用数组来记录坐标
棋谱代码 我想是靠自己写吧
比如
Private Sub Form_Load()
Picture1(1).Picture = LoadPicture(\"\") 这图是兵
End SubPrivate Sub Picture1_Click(Index As Integer)
If Index = 1 Then
If Picture1(1).Top >= 1000 Then 没过河
Picture1(1).Left = 500 保持不变 意思就是不能左右移动,当用鼠标指定他的位子就可以上前一步
ElseIf Picture1(1).Top <= 700 Then 已经过河
可以就解除限制
End If
End If
End Sub
还要判断你指定位子的坐标,是否远远超过一步距离,或远远小于一步距离
可以用所画的线来判断位子
实际代码不是这样写的
只是希望你明白这个道理
上述就是vb6.0编辑游戏的主要技巧,望采纳!
-
甜甜甜
链接变了GBA游戏开发简单入门
http://dev.gameres.com/Program/Other/GBA/GBA.htmGBA游戏开发简单入门(续篇)
http://dev.gameres.com/Program/Other/GBA/GBA_1.htmGBA教程 -- 地图显示
http://dev.gameres.com/Program/Other/GBA/GBAMap.htmGBA教程 -- 精灵显示
http://dev.gameres.com/Program/Other/GBA/GBASprite.htmGBA的Tile模式技术探讨——空间占用篇
http://dev.gameres.com/Program/Other/GBA/GBATile_memory.htmGBA编程初解
http://dev.gameres.com/Program/Other/GBA/GBAProgram.htm详细说明GBA的TILE方式(一)
http://dev.gameres.com/Program/Other/GBA/GBATile1.htm详细说明GBA的TILE方式(二)
http://dev.gameres.com/Program/Other/GBA/GBATile2.htmGBA开发C语言内功补习
http://dev.gameres.com/Program/Other/GBA/Cprog.htmGBA颜色特效的设置方法
http://dev.gameres.com/Program/Other/GBA/GBAEffect.htm
-
米奇的红裤衩儿
如何Hack GBA ROM
作者:zhaosili(.zZ~~) 转载请注明
本文假定你已经了解80x86汇编(尽管指令集不同),并且会使用TRW2000(尽
管没用到)之类对程序进行调试。
工具:
VisualBoyAdvance-1.5、HexWorkshop(或其它十六进制编辑器)、No$Gba
Debugger
ROM:GBA-302 - Dave Mirra Freestyle BMX 2 (E)
写本文时笔者也是刚学会如何通过修改程序指令HACK GBA rom。(整整花了我
一上午时间研究)如果你不懂THUMB和ARM指令集的话(和我一样)就先看
No$Gba HELP中的CPU Reference部分,里面有较为详细的介绍。在我所HACK的
这个rom用的是THUMB。Hack的目标是时间无限(尽管在游戏中如果这样改就相
当于游戏无法结束)。
用VisualBoyAdvance-1.5的Search for Cheats...功能找到时间的地址
为0200DBF0。(注:不要用Emucheat之类找,否则还要加上一定的偏移地址,
很麻烦)
用No$gba载入ROM。选择DEBUG->DEFINE BREAK/CONDITION。在文本框中填入
[0200DBF0],这样一个断点就设置好了。(具体断点怎么设看No$gba的HELP)
这样当0200DBF0中的数值改变时就会中断下来。按F9(可能要多次)进入,正
常进行游戏。当出现时间改变时就会中断在0800A292。观察上方有指令sub
r0,1h及str r0,[r1]估计时间就是在sub r0,1h处被减少的(为什么?如果你
会用trw2000经验告诉你就是这样)。于是双击0800a28e这一行,在sub处设断。
按F9,游戏正常进行一两秒后就会被中断。此时寄存器r0=77h(十进制119,就是
119秒,在游戏中显示1:59)。按F7,到下一条指令str r0,[r1](r1=0200dbf0是
时间的地址),这条指令作用是使r1内对应地址所存的数值等于r0内的值(具
体看No$Gba HELP中的CPU Reference部分)。可见要使时间无限只要将sub
r0,1h改掉,r0内的数值就不会变,0200dbf0处的数值也就不会变。我选择将
sub r0,1h改为sub r0,0h(在sub上点右键,选change instrution,填入sub
r0,0h)。将断点删除,按F9进入游戏,时间是不是不会减了呢?
接下来就要改rom了,先记下没修改前的机器code,就是0800xxxx旁边的数值
(应该是6808 3801 6008 6810)。然后记下改后的机器code,应为6808 3800
6008 6810。把高低位对调,对调完后应该是0868 0138 0860 1068和0868
0038 0860 1068。用HexWorkshop打开rom,查找0868 0138 0860 1068。找到
后修改为0868 0038 0860 1068。存盘。用VisualBoyAdvance-1.5载入play看
看,时间是不是无限了。收工。
有什么问题欢迎共同探讨,我的QQ:32743622
-
flower、?
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开发包--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:devkitadvbin;%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.cobjcopy -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 的数据文件,我们用的是 ,这里以\"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 ,这里以\"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_ENABLE);// 在背景层画图,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>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_buffer=(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,用来把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下直接修改像素点位置来完成旋转的例程,待会儿大家可以比较一下.
- 相关问答
- 最新问答
- 最新资讯
-
- 什么回合游戏 6个回答
- 探险游戏有哪些 6个回答
- 玩音游会得腱鞘炎吗 6个回答
- 问道端游和手游哪个赚钱 6个回答
- 现在哪个游戏可以搬砖 6个回答
- 王者一样的游戏有哪些 6个回答
- 传奇霸主至尊强散怎么获得 6个回答
- 变态游戏有什么 6个回答
- 哪个游戏不氪金能玩 6个回答
- 免费下载的游戏是什么 6个回答