Google AdSense

2015年2月6日 星期五

我用 Python 寫的 Atari 2600 模擬器失敗作三號

進度

  • 再次修改了除錯的顯示方式,增加目前電子槍和記憶體映射的位置,並更改顯示順序
  • 基本物件差不多都能正常顯示
  • 可以使用 Py65,一個別人寫好的 6502 模擬器當 CPU
  • 有兩個 CPU 的函式可以把遊戲解譯成指令

下載

需求

資源

心得

  • Pygame 在 PyPy3 上不能用,pygame-cffi 裝不起來,PySDL2 能用但太慢,所以最後用了 pysdl2-cffi。剛改用 PySDL2 時,最佳化版能跑出 9 FPS;改用 pysdl2-cffi 後,最佳化版能跑出 38 FPS;增加 TIA 功能後,最佳化版能跑出 13 FPS,除錯版則是 0.5 FPS
  • 目前只剩大於 4 KB 的卡匣和聲音部分還不清楚怎麼做,其他都瞭解了。本來這次是希望能只參考規格書,不要靠別人的程式碼來完成,不過在處理碰撞的時候遇到問題,解譯整個遊戲也找不到讀取碰撞的地方,所以不得已把 Stella Integrated Debugger 拿出來用,才發現在記憶體映射的地方搞錯了,下一版應該就是最終版
  • 寫模擬器應該連除錯器一起寫,目前這種陽春型的除錯方法不夠用
  • 不要嘗試把遊戲反組譯回 C,除了初始化的地方看得懂,其他就算反組譯了還是跟天書沒兩樣

相關文章

沒有留言:

張貼留言