導航:首頁 > 文件教程 > 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游戲製作教程相關的資料

熱點內容
php自動上傳文件 瀏覽:311
男主是在夜場上班的小說 瀏覽:663
樹莓派怎麼使用python學習編程 瀏覽:543
68天電影下載 瀏覽:343
僵屍電影全部 瀏覽:791
win7升級win10sn 瀏覽:249
蘋果電腦文件怎麼傳輸到硬碟 瀏覽:488
中國十大免費觀看電影 瀏覽:798
uboot引導linux內核 瀏覽:134
linux如何下載yum 瀏覽:460
計算機網路基礎教學總結 瀏覽:293
csf文件要用什麼打開 瀏覽:182
蘋果6怎麼找文件 瀏覽:843
無已關聯的小程序 瀏覽:678
蘭州共享單車小綠app 瀏覽:814
iphone5c黑色 瀏覽:374
河南少兒計算機編程加盟怎麼樣 瀏覽:135
共享文件夾可以共享多少個 瀏覽:197
文愛用什麼app 瀏覽:920
導致iis死機代碼 瀏覽:280

友情鏈接