即使是古早GameBoy模擬 - 模擬器

Table of Contents


純閒聊...

原本覺得gb模擬應該相對於其他主機容易,

也的確要寫出來會動的gb模擬器應該是比它後期的主機都容易,

但要寫出來跟寫出精確.正確的模擬器又是兩回事...

原本是要朝向更多功能發展(gbc.sgb功能追加.mbc type功能追加...),

gbc.sgb也的確都跑出了顏色,瑪莉歐dx甚至跑起來也有一個樣子,

但就是都有一些顯示上的bug,別說gbc遊戲,

最基本的rockman word5 甚至跑關會跳出......

想說我都把cpu模擬的部分修正到跑測試完全無誤,到底是哪裡還有問題...

(gb模擬器驗證 可參考 http://gbdev.gg8.se/wiki/articles/Test_ROMs ),

(另外FC可參考 http://wiki.nesdev.com/w/index.php/Emulator_tests )

想說應該是哪個指令其實還有小問題,找非常久.....

最後前一天發現原因,是因為 0xcb 延伸opcode的 cycle time 完全沒加到,

timing不正確.... 後來又好奇拿別的模擬器測試,雖然那些模擬器相容性好,

功能支援也完整(gnuboy與vba),跑起一般遊戲好像也沒問題,但跑cpu test,

錯得亂七八糟....11個測試掛掉幾乎一半 (好奇怎不修一修....)

而我的cpu pass,但其他測試當然全掛.....主要是觀念不夠清楚,

cpu雖然硬修正到pass,但像是timing的環節.中斷等等一堆細節,

中間可能都還一堆問題,所以我後來領悟了.......

能寫出來只是一個最基本入門的門檻,但如何正確.精準處理又是另一個層次,

也許gb相較於其他主機簡易些,但依照我的能力,應該先求正確,

至少跑遊戲畫面要對,別跑一跑跳掉或是怎樣的,testing能過當然更好,

但重點是太多觀念還得再離清....後來就決定化繁為簡,先把最最基本的gb都做到好,

其他功能後續再說了.

現在寫一些早期8bit或是16bit的主機困難度應該是少幾年前非常多

(寫到完整又另一回事),主要是前輩括荒時期,沒那些文件描述,

據說都是直接拆晶片靠電子相關技術在測試特性,

模擬器追根究柢是精通硬體的人比較吃香,難是難在很多觀念和運作正確理解,

會寫軟體但對硬體理解有限,要弄出完整的東西,真的是比較吃力.

--

All Comments

Kelly avatarKelly2015-11-07
雖然看不懂,但是推專業與用心
Liam avatarLiam2015-11-11
讚喔
John avatarJohn2015-11-13
Isabella avatarIsabella2015-11-14
加油 走過就是你的了
Edith avatarEdith2015-11-15
Valerie avatarValerie2015-11-17
Fan Wen Yang算是神人嗎/.y
Isla avatarIsla2015-11-20
純好奇,為什麼會想寫到精確呀?感覺要寫得比前人好太難
Barb Cronin avatarBarb Cronin2015-11-22
辛苦辛苦 推 努力付出
Jack avatarJack2015-11-23
好厲害@@