用Python憶童年,最終還真把模擬器跑起來了

夢想橡皮擦,一個勵志成爲IT圈熟透了的人

寫在前面

故事的起源非常簡單,我無意中看到了復古遊戲機,然後聯想到了兒時的回憶,心想能不能用Python跑個模擬器出來,然後運行一下黑白遊戲。其實想想也就罷了,沒想到搗鼓了一路,最終還真配置出來一個可以操作的東東。

在這裏插入圖片描述
先直接露底,這個用到的也是Python的一個現有庫,叫做PyBoy,我翻看了一下搜索引擎,發現沒有認真寫這個模塊的,估計關注人數沒那麼多。

作爲一個Python知識普及者,堅信大家有一天會用到這個庫,既然沒人寫,那隻好有夢想橡皮擦來把PyBoy普及一下了,當然,這個東東還是有很多坑的,例如安裝一個SDL2就不知道翻車了多久,都是淚。

編碼時間

作爲一款成熟的Python庫,找到他的github地址,看一下相關資料是否齊備吧

https://github.com/Baekalfen/PyBoy

非常好,至少8天前還在更新呢,還是那句話,作者還在活躍,至少學習是沒啥問題的
在這裏插入圖片描述
隨着翻閱,發現問題了,emmm…英文的文檔,對於英文12級的我肯定沒啥問題的

If you have any questions, or just want to chat, join us on Discord.
如果你有問題或者想聊天,加入Discord

It is highly recommended to read the report to get a light introduction to Game Boy emulation. But do be aware, that the Python implementation has changed a lot. The report is relevant, eventhough you want to contribute to another emulator, or create your own.
你要仔細看說明書,如果你想給這個模擬器做貢獻或者自己做一個模擬器一定要注意Python的好多實現都會發生變化(瞧瞧這翻譯水準)

If you’ve read the report and want more explicit details, have a look at the Pan Docs.
如果你想了解更多,看一下Pan Docs

If you are looking to make a bot or AI, you can find all the external components in the PyBoy Documentation. There is also a short example on our Wiki page Scripts, AI and Bots as well as in the examples directory. If more features are needed, or if you find a bug, don’t hesitate to make an issue here on GitHub, or write on our Discord channel.
額,貌似是還可以做機器人和人工智能

其實說了這麼多,就是說他做了一個Game Boy模擬器 Game Boy 對很多人來說,尤其是男孩子,都不陌生的,就長下面這個樣子。
在這裏插入圖片描述
github首頁給的安裝方案中遺漏了兩個比較重要的點,一個是windows10咋安裝,另一個是gb遊戲去哪裏下載,我們今天把這兩部分給補充完整。在這裏插入圖片描述

配置SDL2

在windows10上面第一步就要配置SDL2,這裏需要下載的版本至少爲 SDL2-2.0.10 版本,下載鏈接:https://download.csdn.net/download/hihell/12570275 下載之後,隨意解壓到一個文件夾裏面,記住地址,需要配好環境變量

可以手動配置,也可以通過命令行配置

setx PYSDL2_DLL_PATH D:\SDL2\SDL2-2.0.10\lib\x64

手動配置
在這裏插入圖片描述

配置SDL2常見錯誤

下圖表示SDL2版本不對,更換2.0.10版本即可在這裏插入圖片描述
下圖表示環境變量沒有配置正確,繼續修改即可,注意環境變量修改完畢,需要重啓一下開發工具,例如我使用的是PyCharm,重啓該軟件即可

在這裏插入圖片描述

安裝PyBoy

通過命令安裝即可,網速不好切換國內源

python -m pip install --user pyboy

編寫代碼測試環境是否配置正確,如無報錯,表示一切正常,可以繼續操作

from pyboy import PyBoy

下載GB遊戲程序

經過檢索,我找到了一堆,你可以自行去下載即可

https://share.weiyun.com/5MqhGqJ 密碼 hcoi60 感謝資源提供者,好多10幾歲玩的遊戲。

核心代碼

代碼部分就非常簡單了,重點部分大家還是放在配置與研究這個開源程序上即可


from pyboy import PyBoy
pyboy = PyBoy('ROMs/3 Choume no Tama.gb')
while not pyboy.tick():
    pass

注意,我再項目的根目錄創建了一個新的文件夾ROMs裏面放置了一個gb文件,這個文件需要你自行下載放置哦~~

關於軟件的操作

鍵盤按鍵 GameBoy按鍵
Up Up
Down Down
Left Left
Right Right
A A
S B
Return Start
Backspace Select

其他的說明可以參照:https://github.com/Baekalfen/PyBoy/wiki/Installation

寫在後面

Python的開源庫總是充滿着驚喜,當運行代碼,沒有報錯,兒時的遊戲窗口出現時,彷彿隔空與過去的自己對話,這個窗口在20年前對自己是那麼的充滿魔力,每個午後,每次放學,每次拿起GB機,與三五朋友湊在一起,上下左右ABAB,現在想想,還真是幸福呢。

希望這個庫能喚醒你的記憶~

如果你想跟博主建立親密關係,可以關注博主,或者關注博主公衆號“非本科程序員”,瞭解一個非本科程序員是如何成長的。
博主ID:夢想橡皮擦,希望大家點贊、評論、收藏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章