Google AdSense

2015年3月22日 星期日

用 PyPy tool chain 寫的 Game Boy 模擬器 PyGirl

說明

  • 不是我寫的
  • 實在太缺乏說明,唯一一條 Issue 是請作者加 README,所以我嘗試寫些筆記幫助安裝和執行

YouTube

下載

需求

資源

心得

  • 開一個新資料夾 C:\temp,把下載的東西全部丟進去,總共四個資料夾
    C:\temp\pypy-2.5.1-src
    C:\temp\pypy-lang-gameboy-410e34ee2cff
    C:\temp\rsdl-0.4.2
    C:\temp\SDL-1.2.15
  • 把 cartridge.py 裡面的
    from pypy.rlib.streamio import open_file_as_stream
    改成
    from rpython.rlib.streamio import open_file_as_stream
  • 把 gameboy_implementation.py 裡面的
    from pypy.rpython.lltypesystem import lltype, rffi
    改成
    from rpython.rtyper.lltypesystem import lltype, rffi
  • 把 gameboy_implementation.py 裡面的
    from pypy.rlib.objectmodel import specialize
    改成
    from rpython.rlib.objectmodel import specialize
  • 在 cmd 視窗裡執行以下四行指令
    set PYTHONPATH=C:\temp\pypy-lang-gameboy-410e34ee2cff;C:\temp\pypy-2.5.1-src;C:\temp\rsdl-0.4.2
    set SDL_PREFIX=C:\temp\SDL-1.2.15
    cd C:\temp\pypy-lang-gameboy-410e34ee2cff\pygirl
    pypy targetgbimplementation.py
  • 這個模擬器執行的比我的 Atari 2600 模擬器平順很多,雖然有些地方還是有點微妙的 lag

回顧

  • 我犯了一個很嚴重的錯誤,上面的執行方式只是在 PyPy 上跑,所以速度才會怪怪的。如果使用 RPython 的話,速度完全正常。所以這代表單純只是我的 Atari 2600 模擬器寫的爛
  • RPython 請把最後一行指令改成底下這兩行
    pypy C:\temp\pypy-2.5.1-src\rpython\translator\goal\translate.py targetgbimplementation.py
    targetgbimplementation-c.exe

沒有留言:

張貼留言