导航:首页 > 源码编译 > gba游戏源码

gba游戏源码

发布时间:2022-12-22 20:02:08

⑴ 口袋妖怪漆黑的魅影金象徽章代码

这个的金手指代码是没有的,只能自己慢慢去打。
该游戏是绿宝石的改版。
绿宝石为红蓝宝石的资料片。
新剧情

原作中由豪力帮助玩家搬家的情节修改为过动猿帮助玩家搬家。
然而由于游戏问题的存在,与过动猿对话时出现的音效仍是豪力的叫声。
熔岩队与海洋队都变为了反派组织,海洋队的主基地还在蓝宝石的原址,而熔岩队则搬到了凹凸山道。还增加了绿岭宇宙中心的剧情。
游戏中局至终局剧情几乎完全修改,部分地点也随着剧情进行了修改,增加了许多剧情,如:固拉多与盖欧卡对决,以及烈空坐制止灾难的剧情,并且首次出现了过场动画。
固拉多与盖欧卡的捕获地点变为陆之窟和海之窟,等级提升,并且在登入名人堂后出现。
原本在登入名人堂后才能遇到的烈空坐变为了剧情必须遇到。
在完成丰缘图鉴后,可以从小田卷博士处获得菊草叶、火球鼠、小锯鳄其中的一只。
前宝可梦联盟冠军大吾在主角成为新一届冠军后出现在流星瀑布深处,主角可以挑战一次。
新系统
新系统
全国图鉴不需要通信即可获得。
由于源代码使用火红叶绿修改,因此游戏的绘图和建筑与红宝石蓝宝石有些许差异。
绿宝石包含火红叶绿的所有道具数据,以防止出现红宝石蓝宝石因无火红叶绿新增道具而引发错误的问题。
增加同火红叶绿一样的无线联机功能,以及无线联机游戏的游戏角。
所有的宝可梦都有了动画。
可以与所有道馆馆主再战,且可以进行双打对战。
与第四世代联动
第四世代游戏可以在获得全国图鉴之后从第三世代的游戏中传送宝可梦到第四世代游戏中。在游戏卡在DS插槽中时,将GBA游戏卡插入任天堂DS机器里的GBA插槽中,随后第四世代游戏中的主角来到伙伴公园,即可从第三世代传送宝可梦。
学会第三世代秘传学习器招式的宝可梦不能从第三世代传送过来。如果想要传送,必须先寻求水静市遗忘爷爷的帮助。

⑵ 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语言作为首选。

⑶ 文件后辍的格式gba是什么意思

后辍名为.GBA的文件是GBA掌机的模拟器ROM文件,可以使用
VisualBoy Advance 等模拟器打开就能玩了……

下载地址:http://down.52pk.com/soft/846.htm

VisualBoy Advance 1.7.2 汉化修正版
功能强大的 GameBoyAdvance 模拟器支持几乎 100% 的 GBA 游戏。强大的调试功能,图像增强。作弊功能~。
新版本更新如下:
*修正了一些源代码
*改进了记忆定时器
*增加了对基本语言 dll文件的检测
*修正了GB模式中映射图像闪烁的显示问题,等等。
汉化版更新:更正了几处被遮盖的对话框信息。为方便向作者报告错误,错误报告对话框内字串未汉化

⑷ 帮我推荐一本书,有关FLASH游戏制作的或c++游戏制作的书.谢谢!我是菜鸟啊!

Game Developer Magazine 1994 - 2000年,共7年的游戏开发者杂志电子版(含源码
Graphics Programming Black Book (by Michael Abrash).zip,图形编程黑书,Id software的Michael Abrash编着
Game Programming Gems I.rar ,游戏编程精粹I、II(含源码)
Game Programming Gems II.rar
Graphics Gems I.rar ,图形学精粹I、II、III、IV、V
Graphics Gems II.rar
Graphics Gems III IBM.rar
Graphics Gems IV IBM.rar
Graphics Gems V.rar
Computer Graphics, C Version (2nd Ed.).rar ,计算机图形学C版(第二版)
half_life2_engine.zip ,半条命2游戏引擎源代码
D3DTutorial10_Half-Life2_Shading.pdf ,半条命2游戏引擎光照分析
Course.PTR.3D.Game.Engine.Programming.eBook-LinG.rar ,3D游戏引擎编程
3D Game Engine Design.rar ,3D游戏引擎设计
3D Game Engine Design source code.rar ,3D游戏引擎设计源代码
3D.Game.Programming.All.In.One.zip ,3D游戏编程大全
Game Design - Theory and Practice.rar ,游戏设计 - 理论与实践
game.programming.all.in.one.zip ,游戏编程大全
The Cg Tutorial - The Definitive Guide to Programmable Real-Time Graphics.rar ,CG指导 - 可编程实时图形权威指南
Tricks Of The 3D Game Programming Gurus - Advanced 3D Graphics And Rasterization.rar ,3D游戏编程大师技巧 - 高级3D图形和光栅化
Ultimate Game Design Building Game Worlds.rar ,终极游戏设计 - 创建游戏世界
Core.Techniques.And.Algorithms.In.Game.Programming.rar ,核心技术和算法在游戏编程
Simulating Humans.rar ,仿真人类

3D Lighting - History, Concepts, and Techniques.rar ,3D光照 - 历史,概念和技术
Lighting.Techniques.For.Real-Time.3D.Rendering.rar ,光照技术For实时3D渲染
Vector.Game.Math.Processors.zip ,向量游戏数学处理器
AI for Computer Games and Animation - A Cognitive Modeling Approach.rar ,AI(人工智能)for计算机游戏和动画 - 一个认知建模方案
AI.Game.Development.Synthetic.Creatures.With.Learning.And.Reactive.Behaviors.rar ,AI游戏开发 - 合成生物With学习和反应举止
AI.Techniques.for.Game.Programming.rar ,AI技术for游戏编程(含源码)
Ai.Game.Programming.Wisdom.rar ,AI游戏编程(代码)
Real_Time_Rendering.rar ,实时渲染
special.effects.game.programming.rar ,特效(特殊效果)游戏编程(含源码)
Shaders.for.Game.Programmers.and.Artists.zip ,着色器for游戏开发者和艺术家
Real-Time Shader Programming.rar ,实时着色器编程
Wordware.Publishing.Advanced.Lighting.and.Materials.With.Shaders.rar ,高级光照和材质with着色器
OReilly - Physics for Game Developers.rar ,物理for游戏开发者

GPU Programming Guide.rar ,GPU编程指南
Collision.Detection.pdf.rar ,碰撞检测
Collision.Detection.-.Algorithms.and.Applications.rar ,碰撞检测 - 算法与应用
focus.on.3D.terrain.zip ,游戏3D地形编程
Focus.On.3D.Models.zip ,游戏3D模型编程
Focus.On.2D.in.Direct3D.-.fly.pdf ,集中于Direct3D中的2D
Beginning.Game.Audio.Programming.rar ,开始游戏音频编程(含源码)
Internetworked.3D.Computer.Graphics.rar ,互连网间的3D计算机图形学

Beginning.Math.and.Physics.For.Game.Programmers.zip ,开始数学和物理for游戏编程者(PDF版)
Beginning Math and Physics for Game Programmers[CHM].rar ,开始数学和物理for游戏编程者(CHM版)
3D.Math.Primer.for.graphics.and.game.development.zip ,3D数学初步for图形和游戏开发
The art of computer game design.rar ,计算机游戏设计艺术
Sams.Beginning.3D.Game.Programming.eBook-LiB.rar ,3D游戏编程入门
MIT.Press.Rules.of.Play.Game.Design.Fundamentals.rar ,游戏设计基础
design a pc game engine.rar ,设计一个PC游戏引擎

Advanced Graphics Programming Techniques Using Opengl.rar ,高级图形编程技术用OpenGL
Real-time.Rendering.Tricks.and.Techniques.in.DirectX.rar ,DirectX实时渲染技巧与技术
Real-Time Rendering Tricks and Techniques in DirectX(src).ZIP ,DirectX实时渲染技巧与技术(源代码)
Real Time 3D Terrain Engines Using C++ And Dx9.rar ,实时3D地形引擎用C++和Dx9
MS.Press.-.Microsoft.DirectX.9.Programmable.Graphics.Pipeline.rar ,Microsoft DirectX9可编程图形管线
Wordware.Publishing.OpenGL.Game.Development.eBook-YYePG.rar ,OpenGL游戏开发
Beginning.OpenGL.Game.Programming.ebook.zip ,OpenGL游戏编程入门
OpenGL.Programming.Guide.rar ,OpenGL编程指南
Addison.Wesley.-.OpenGL.Programming.Guide.2nd.Edition.rar ,OpenGL编程指南(第二版)
Addison-Wesley,.OpenGL.Shading.Language.(2004).DDU.ShareConnector.rar ,OpenGL着色语言(2004)
Learn Vertex and Pixel Shader Programming With Directx 9.rar ,学习顶点和像素着色器编程用DirectX9
Shaderx2 - Shader Programming Tips & Tricks With Directx 9.rar ,Shaderx2 - 着色器编程提示与技巧With DirectX9
ShaderX2 Introctions and Tutorials with DirectX9.rar ,ShaderX2介绍和指导With DirectX9
Direct3D.ShaderX.-.Vertex.and.Pixel.Shader.Tips.and.Tricks.rar ,Direct3D.ShaderX - 顶点和像素着色器提示和技巧
Advanced 3D Game Programming with DirectX 9.rar ,高级3D游戏编程用DirectX 9.0(含源码,CHM版)
Advanced 3D Game Programming with DirectX 9[PDF].rar ,高级3D游戏编程用DirectX 9.0(PDF版)
DirectX 3D Graphics Programming Bible.rar ,DirectX 3D图形编程宝典
Introction to 3D Game Programming with DirectX 9.0.rar ,介绍对3D游戏编程用DirectX9.0(含部分源代码)
Beginning.Direct3D.Game.Programming.rar ,Direct3D游戏编程入门
Beginning.DirectX9.zip ,DirectX9入门
Cutting Edge Direct 3D Programming.rar ,Cutting Edge(刀刃)Direct 3D编程
Game.Scripting.Mastery.zip ,游戏描述语言掌握
Data.Structures.for.Game.Programmers.rar ,数据结构for游戏编程者(含源码)
2_OpenGL.Extensions.-.Nvidia.rar ,OpenGL扩展(Nvidia)
Managed.DX.9.Kick.Start.Graphics.And.Game.Programming.rar ,DirectX9图形和游戏编程
OpenGL.Reference.Manual.rar ,OpenGL参考手册
OpenGL.Super.Bible.rar ,OpenGL超级宝典

Tricks of the Windows Game Programming Gurus.rar ,Windows游戏编程大师技巧
Tricks of Win Game Programming Gurus 2ed.rar ,Windows游戏编程大师技巧(第二版)
Game.Programming.Beginners.Guide.rar ,游戏编程初学者指南
Chris_Crawford_on_Game_Design.rar ,Chris Crawford写的游戏设计书

Advanced.Animation.with.DirectX.rar ,高级动画with DirectX(含源码)
Inside Direct3D.rar ,深入Direct3D
Direct3D_9_Basics.rar ,Direct3D 9基础
Sams Teach Yourself DirectX 7 in 24 Hours.rar ,教你自己DirectX7在24小时
Programming.Role.Playing.Games.with.DirectX.rar ,用DirectX编程RPG游戏(含源码)
Programming Multiplayer Games.rar ,编程多玩家游戏
Net Game Programming With Directx 9.0.rar ,网络游戏编程with Directx 9.0
Programming Linux Games.rar ,编程Linux游戏
Developing Online Games - An Insiders Guide.rar ,开发在线游戏 - 一个权威人士的指导
Game Coding Complete.rar ,游戏编码完全
Strategy Game Programming with DirectX 9.0.rar ,策略游戏编程用DirectX9.0
Strategy Game Programming with DirectX 9.0 Source Code.zip ,策略游戏编程用DirectX9.0(源代码)
Addison-Wesley - Software Engineering and Computer Games.rar ,软件工程和计算机游戏
Artificial Intelligence and Software Engineering.rar ,AI和软件工程
Game-Programming-OpenGL-C++.rar ,有关OpenGl和C++的一些资料

GBA Programming Game Boy Advance The Unofficial Guide.rar ,GBA编程非官方指南
Palm.OS.Game.Programming.zip ,Palm掌上操作系统游戏编程
Mac.Game.Programming.pdf ,苹果机游戏编程
Premier.Press.J2ME.Game.Programming.rar ,J2ME游戏编程
J2ME Game Development with MIDP2.rar ,J2ME游戏开发with MIDP2
PHP.Game.Programming.zip ,PHP语言游戏编程
Game.Programming.with.Python.Lua.And.Ruby.zip ,游戏编程用Python,Lua和Ruby语言
Apress.dot.NET.Game.Programming.with.DirectX.9.0.eBook-KB.rar ,点NET游戏编程用DirectX9
Wordware.Wireless.Game.Development.In.C.Cpp.With.BREW.chm ,无线游戏开发用C、C++ With BREW

DirectX9 User Interfaces Design and Implementation.rar ,DirectX9用户接口设计和实现
Game.Interface.Design.rar ,游戏接口设计

SAMS Teach Yourself Game Programming in 24 Hours.rar ,教你自己游戏编程在24小时
C.Game.Programming.For.Dummies.2.rar ,C游戏编程傻瓜书2
Beginners Guide to DarkBASIC Game Programming.rar ,初学者指南对DarkBASIC游戏编程
Windows Graphics Programming Win32 GDI and DirectDraw.rar ,Windows图形编程 - Win32 GDI 和 DirectDraw
Game Programming Genesis.rar ,游戏编程起步

2D.Artwork.and.3D.Modeling.for.Game.Artists.zip ,2D艺术品和3D建模for游戏艺术家
Game.Art.for.Teens.pdf ,游戏艺术for青年人

Game Development and Proction.rar ,游戏开发和产品
Game.Developers.Market.Guide.rar ,游戏开发者市场指南

MIT.Press.A.History.Of.Modern.Computing.eBook-LiB.rar ,现代计算历史
The C++ Programming Language NO.3 Edition.rar ,C++编程语言(第三版)
Computer Systems A Programmers Perspective.rar ,计算机系统 - 一个编程者的透视
Intel Architecture Software Developer Manual.zip ,Intel架构软件开发者手册
Intel Itanium Assembly Language Reference.rar ,Intel Itanium架构汇编语言参考
Agile Software Development.rar ,灵活的软件开发
Code Reading The Open Source Perspective.rar ,代码阅读与开放源透视

ps2DevEnvironment.exe ,PS2开发环境
doxygen-1.3.9.1-setup.exe ,一种文档自动生成软件
wolf_source.exe ,wolf游戏(id software)源代码
doom_src.zip ,doom游戏(id software)源代码
q2src320.exe ,Quake2游戏(id software)源代码
Q3A_TA_GameSource_127.exe ,QuakeIII(id software)游戏源代码
Q3A_ToolSource.exe ,QuakeIII(id software)工具源代码

⑸ 模拟游戏中的街机,GBA,FC,MD,MAME,NEOGEO都是什么什么意思

GBA:

GBA是GBC及单色GB的后续产品,是任天堂公司所制作的手持游戏系统,游戏以插在主机后面的插槽的卡带为载体,需要两节5号AA电池来运行

FC: FC,又称为红白机,是任天堂公司在八十年代出的一款8位游戏机.

MD: 所谓MD,就是指MiniDisc(中文意思即迷你光盘),它是由SONY于1992年正式量产上市的一种音乐储存媒体

MAME: MAME是Multiple Arcade Machine Emulator,也就是"多类型街机模拟器"的简称,是一个DOS环境下的应用程序,由MAME小组开发。这是一个仍在不断更新、完善的模拟器.

NEOGEO: NEOGEO 一种CD的模拟器,该模拟器是基于PC版NeoCD/SDL 0.3.1源代码开发的,与SFC模拟器一样,其初版虽然具备的功能少,而且也不支持声音,但是在画质方面表现极佳,速度方面也不赖,经过几次的更新,目前的0.5版已经相当完美。

⑹ 如何制作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模拟器哪可以下载

我这有几个模拟器都是电玩巴士里的你只要直接点下载就行了!
http://down.tgbus.com/soft/10496.htm
http://www.tgbus.com/gba/emu/gbaemu.htm
我用的是这个
http://down.tgbus.com/sort/208_1.htm
这里还有很多如果上面的不行的话你还可以是是这里的!!!
希望你能玩的开心!!!
这个是游戏的下载的网址
http://www.tgbus.com/gba/mic/chinese/gba/index.html
www.koudai8.com
www.pm222.com
这里面的模拟器都更新到最新了
而且也都杀过毒
放心下载

阅读全文

与gba游戏源码相关的资料

热点内容
ibm服务器硬件如何升级 浏览:917
全球程序员节点赞 浏览:984
php函数传递数组 浏览:631
人工峰群算法的目标函数 浏览:468
如何删加密文档 浏览:105
涂鸦app一键执行如何删除 浏览:756
安卓手机如何打开fr3文件 浏览:743
压缩袋8丝和14丝是什么意思 浏览:647
程序员大咖java 浏览:70
苹果手机文档安卓上怎么打开 浏览:527
如何做淘宝代理服务器 浏览:672
gz压缩文件夹 浏览:179
字母h从右往左跑的c语言编程 浏览:137
安卓手机如何拥有苹果手机横条 浏览:771
业余编程语言哪个好学 浏览:151
按照文件夹分个压缩 浏览:104
航空工业出版社单片机原理及应用 浏览:763
如何在电信app上绑定亲情号 浏览:376
安卓的怎么用原相机拍月亮 浏览:805
配音秀为什么显示服务器去配音了 浏览:755