[閒聊] 即使是古早GameBoy模擬
純閒聊...
原本覺得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的主機困難度應該是少幾年前非常多
(寫到完整又另一回事),主要是前輩括荒時期,沒那些文件描述,
據說都是直接拆晶片靠電子相關技術在測試特性,
模擬器追根究柢是精通硬體的人比較吃香,難是難在很多觀念和運作正確理解,
會寫軟體但對硬體理解有限,要弄出完整的東西,真的是比較吃力.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.171.250.102
※ 文章網址: https://www.ptt.cc/bbs/Emulator/M.1446626191.A.551.html
※ 編輯: erspicu (118.171.250.102), 11/04/2015 16:38:24
推
11/04 16:45, , 1F
11/04 16:45, 1F
推
11/04 17:14, , 2F
11/04 17:14, 2F
推
11/04 20:48, , 3F
11/04 20:48, 3F
推
11/04 23:18, , 4F
11/04 23:18, 4F
推
11/05 00:43, , 5F
11/05 00:43, 5F
推
11/05 01:09, , 6F
11/05 01:09, 6F
印像中好像是很早期就寫出相當不錯任天堂模擬器的人,滿厲害的.
推
11/05 05:13, , 7F
11/05 05:13, 7F
精確是期望能有最好,但至少要能正確,好比說最少最少畫面正確,
或不會玩一玩跳出遊戲關卡之類的
※ 編輯: erspicu (60.248.56.181), 11/05/2015 18:02:38
推
11/14 14:29, , 8F
11/14 14:29, 8F
推
11/15 21:34, , 9F
11/15 21:34, 9F