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 多語與選擇介面 ![]() |
| 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.介面修改. ![]() 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引擎加速,因此過於老舊的電腦,有可能速度會稍微不足. |