Google AdSense

2014年12月26日 星期五

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

進度

  • 修改了除錯的顯示方式,每一行是一個 CPU 指令,空行表示有 JUMP、CALL、或 RETURN 產生
  • 重寫 CPU,使用全域變數來加快速度

下載

需求

資源

心得

  • 這次以速度為優先,使用 Python 3 和 Pygame,能在開啟最佳化後跑出 6 FPS,除錯模式則是 0.02 FPS。因為 模擬器需要的計算量比預估的多,Python 也比想像中的慢,雖然還有加速的空間,但幾乎已經確定達不到目標的 60 FPS,因此果斷放棄重來
  • 這次失敗倒也不是完全失敗,因為除錯訊息寫的比較容易看懂,至少能確定之前失敗的原因是 TIA 的部分寫錯了,還有光靠 Python 想寫出堪用的 Atari 2600 模擬器是不太可能的事。下次程式會使用 PyPy,按網路上看到的效能比較,PyPy 又比 Python 快了四十倍,應該是完全足夠寫出堪用的 Atari 2600 模擬器

回顧

  • 實際上這次做了白工,因為速度瓶頸根本不在 CPU,而是在 TIA,用 Python Call Graph 就能看得很清楚

相關文章

沒有留言:

張貼留言