Google AdSense

2015年4月25日 星期六

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

進度

  • 能夠讀取並解碼造景方塊的形狀
  • 能夠顯示不會捲動的背景

下載

需求

資源

心得

  • 使用方法同用 PyPy tool chain 寫的 Game Boy 模擬器 PyGirl
  • 造景方塊的解碼並不困難,但是要透過 PPU 把造景方塊顯示出來就不是那麼容易。其實我也不確定寫的對不對,可能有很大的誤會也說不定
  • PPU 顯示造景方塊也是按掃描線顯示的。就我的理解,PPU 會照當前畫面的捲動狀況,提早把兩個造景方塊的同一列放到暫存器裡,之後就根據暫存器的資料顯示畫面。至於怎麼根據暫存器的資料顯示畫面,說實話,我看不是很懂,也因為是造景方塊,就算看不是很懂,顯示出來也是有模有樣
  • 顯示結果似乎少了一行,從左上角的水管缺角跟左邊中間平台只有三格就可以看的出來。記憶體裡的資料是正確的,所以應該是 PPU 實作還有點小問題吧
  • RPython 的效能還不錯,目前未經優化,速度就已經跟實機差不多了。不曉得有沒有意義的效能比較,使用 RPython 到顯示標題畫面需要 0 秒,到顯示展示畫面需要 19 秒;使用 PyPy 沒開啟最佳化到顯示標題畫面需要 13 秒,到顯示展示畫面需要 4067 秒。以這個案例來看, RPython 大概是 PyPy 的 214 倍快

沒有留言:

張貼留言