2015年11月2日 星期一

血淋淋的教訓與經驗

GB模擬器一直有一個問題,玩RockManWord5時候,選其中兩隻魔王會跳掉,重新回到開始畫面,一直不知道是哪環節出問題,因為有太多可能,還嘗試把人家的模擬器z80 CORE移放過來交叉比對,但花一堆時間還是找不到原因......懷疑是z80指令哪裡有小問題,最後謎底揭曉,當我把人家的opcode cycle table移放過來, cycle time改用別人table後就正常了....

原因是timing的正確性出問題.....但遊戲執行多數看似正常,就特定遊戲跳掉.....

總算解決了.這也就是說模擬器撰寫真的是任何小細節都得注意,否則debug起來真的是死都抓不到原因.....

目前還有一些bug讓我很不能忍受 , GPU的部分實作完有完全正確,有時候畫面怪怪的...timing應該還得再檢查修正,加上音效功能後,作一些整修和優化後,估計會再打包一版(先把GBC功能hide掉,那塊還很多問題...).

功能有限沒有關係,重點是正確無誤比較重要,一步一步用出完整的東西.

接下來就是gbc跟sgb和更多mbc實作功能支援的部分了.

其他想弄的東西先擱置...

2 則留言:

  1. 回覆
    1. 感謝光臨 ! 不敢稱大作,gameboy已經是老機,成熟的模擬器方案不少,
      只是基於好奇跟學習,想自己探索一下內部運作.

      刪除