在GBA上寫光線追蹤:自制GBA庫"lib_hl"匯總
寫個自己的GBA庫
上篇文章(待寫)介紹了GBA的硬件,例如寄存器、內存、中斷等,其中很多寄存器可以說是GBA的遙控器,要使用GBA的硬件功能,就是要和這些寄存器打交道。
怎么打交道呢?這些寄存器都有地址,在C語言中可以轉成指針來讀寫。為了方便使用,我們需要先寫一個GBA庫,庫里應該有:
- 定義GBA的各種功能寄存器的地址,這樣我們就可以通過設定寄存器來控制GBA。
- 各段內存地址的定義,這樣我們才能將圖像,音頻等數據放到正確的地方
- 內置系統函數的定義,方便調用GBA的BIOS里自帶的系統函數
- 常用數學運算庫,圖形音頻處理庫,壓縮解壓庫等等功能。
其實這些庫在任天堂公司開發GBA之初就提供給開發者了,但因為商業性質沒有公開。有民間GBA開發愛好者也編寫了庫,在你的devkitPro安裝后,目錄里的/libgba和/libtonc就分別是devkitPro和tonc教材作者寫的GBA庫。
不過我就喜歡自己造輪子,所以就從寫GBA庫開始學GBA吧。大概現在還在玩GBA的人也都是我這種愛搞底層、愛搗鼓的家伙。
事實上因為GBA的特性已經在手冊上寫得清清楚楚,所以自己寫個庫確實不難,這篇文章是我的GBA庫——lib_hl的索引。
數學庫部分包括這些內容:
硬件部分包含這些內容:
- 圖像顯示相關寄存器和函數
- 圖像硬件相關
- 計數器計時器相關
- 內存管理相關
每個部分都能寫好長的流水賬,我只能挑關鍵的寫點,其他請移步看源代碼。

浙公網安備 33010602011771號