Apr GameBoy Emulator  by erspicu_brox 2015.12.22

下載

這專案的期望目標並不是寫出一款可以跟現在完善GameBoy相互較勁的模擬器,純粹只是個人學習和興趣,也沒什麼最終的目標(當然能夠完善是最好 的),Code的撰寫以簡要.方便移植為主,沒有很複雜的架構與封裝,在畫面GPU模擬處理上也沒有用到任何第三方遊戲顯示引擎API(靠計算解出來),盡量簡單扼要,撰 寫 過程參考了一些別人的sources和許多文件,而開發想做的並不是移植別人的專案,所以盡量還是以自己閱讀硬體規格文件,嘗試去了解運作,撰寫自己的 code為主,不過這過程中由於硬體背景薄弱,因此在某些關鍵的部分參考了不少別人的sources,從軟體的code去反推了解硬體的運作流程,再重新用 C#編撰出來.

選擇GameBoy當作入門學習的硬體,是因為架構相對於其他主機真的簡單很多,如果你也有興趣GameBoy或是任天堂8位元的遊戲主機或許是可以選擇的入 門目標.

程式在架構上相當多部分參考  https://github.com/bleepbloop/JsGB 這個以JavaScript撰寫的專案 (像是 timing 和程式主架構的編排風格).

而 DAA 這指令的處理則參考了 https://github.com/drhelius/Gearboy 其中 https://github.com/drhelius/Gearboy/blob/master/src/opcodes.cpp 內的 Processor::OPCode0x27() method.

基礎教學參考
http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-The-CPU  以及其系列文章
http://realboyemulator.wordpress.com/getting-started  以及其系列文章

除錯與測試使用
http://bgb.bircd.org (藉這款模擬器來檢測自己的模擬器行為是否符合正確預期)
http://slack.net/~ant/old/gb-tests/ 驗證的測試 rom (目前還有一些問題沒修正)
GPU測試的公開版權 Public Demo ROM

硬體規格文件參考
http://problemkaputt.de/pandocs.htm 與其他官方與非官方文件 (非官方文件在描述gameboy z80小部份可能有誤,須注意)

程式ICON圖示來源
http://www.easyicon.net

第三方套件
http://icsharpcode.github.io/SharpZipLib 對ZIP格式rom檔支援
http://sharpdx.org 遊戲手把輸入 , DirectSound 聲音輸出

影像Scaler Filter (基本上算是移植,但加上大量code精簡.重構.效能校調,以符合即時性播放使用)
https://code.google.com/p/2dimagefilter XBRz
https://code.google.com/p/hqx-sharp  HQX

音效建立  (基本上算是移植改寫成C#語言,聲音部分的處理目前仍屬實驗研究階段...效果尚待改善)
http://www.millstone.demon.co.uk/download/javaboy/index.htm

目前模擬器仍然屬於一個比較不成熟的完整度(MBC支援需要更完善,APU音效尚待改善,此外還有GameBoyColor跟SuperGameBoy的功 能也尚未支援,模擬存在的一些小bug),但也可以玩基本像是 Super Mario Land 或是 Rockman World 遊戲 (ROM only或是MBC1的卡帶遊戲).

GPU PD ROM測試起來也還算正常.

提供給有興趣的人參考.

下載區域

需要 Microsoft .NET Framework 4 執行環境,如果無法順利開啟程是,請 點此安裝 .

GitHub https://github.com/erspicu/AprGBemu

2015.12.22 版本下載
版本說明

1. 新增正確支援 MBC1 RAM與電池記憶功能

2. 相容性提升 Super Mario Land 2  支援

3. DMA timing cycle 修正

4. 新增 UI 多語與選擇介面

ui


2015.12.18 版本下載
版本說明

1. CPU指令模擬正確度大幅提升

2. 除原本ScaleX外,亦加入HQX與XBRz濾鏡. 詳 細說明

3. 增加畫面放大5x(XBRz專屬)與6x(HQ6X CPU Loading較重)設定.

4. FPS效能大幅提升 ( rendering by native win32 gdi api ).

5. 相容性提升 (Rockman Word 4 & 5 可以正常進入關卡了).

6. 增加聲音輸出(實驗性質尚待改善).....

7.介面修改.

configure ui

8. etc....

==

Future to do list (越上面處理優先全越高)

timing與中斷處理 正確度還需要改善
some gpu bug fixed
MBC 支援需要增加
GBC.SGB 功能支援 (GBC功能尚不完善,固先將功能封鎖起來)
音質改進
跨平台相容性


2014.12.14 版本下載 專 案原始碼
版本說明

1.新增支援zip rom檔開啟

2.支援遊戲手把按鈕輸入

3.設定介面完成

4. shift + p 遊戲擷圖

5.實作 scale2x , scale3x , scale4x 遊戲畫面放大filter ( 由於沒使用遊戲引擎去硬體rendering處理,因此放越大越耗用計算資源,4x的情況可能會些許lag).

6.遊戲可以選擇黑白或是模擬老GB經典綠的顏色畫面.

7.介面修改.


2014.12.07 版本下載 (初次公開版本) 專 案原始碼
版本說明

1.遊戲按鈕配置為 A → a , B → s , START → z , SELECT → x

2.可以網路搜尋 "DMG_ROM.bin"這個檔案(礙於版權法律不確定因素,不直接提供下載),這是GameBoy開機的Logo動畫bootstrap rom,下載了這個檔案放到執行目錄內(與模擬器執行檔同所在),模擬遊戲會自動載入這個真實的開機過程.

3.視窗背景畫面如果是紫色的,代表程是被選取的前置狀態,可以接受鍵盤按鍵的輸入,如果變成背景狀態,背景會變藍色的,這時候鍵盤輸入無效,



如要繼續遊戲,請滑鼠點擊程式將程式恢復前置狀態.

4.由於尚未對效率最佳化,也沒有使用遊戲API引擎加速,因此過於老舊的電腦,有可能速度會稍微不足.