前言
我在上一篇文章中介紹瞭如何基於emulatorjs的docker來部署web端懷舊遊戲模擬器的詳細步驟(請參閱文章:使用docker基於emulatorjs部署web端懷舊遊戲模擬器),但是最後卻留有一個非常影響遊戲體驗的問題,那就是預設按鍵配置不合理:上下左右方向鍵由位於全鍵盤右邊的↑ ↓ ← →四個按鍵來控制,而常規的AB按鍵(跳、子彈)由全鍵盤最左邊的X和Z鍵來按,對於絕大部分人來說,控制方向是左手,跳和子彈是用右手來控制,這樣豈不是需要交叉手玩?這能忍?
於是研究折騰了一番,先是想透過修改emu-main.js檔案裡的按鍵映射來直接修改預設配置,但是失敗了,似乎還需要修改loader.js檔案裡面emu-main.js和emulator.js的載入順序,要emulator.js先於emu-main.js加載,研究了半天沒搞懂,不是程式設計出身的劣勢被展現得淋漓盡致。 。 。於是只有改變思路,從profile設定檔的角度出發,最後解決了這個問題。
思路
默认情况下,当你使用浏览器访问前端游戏web页面的时候,如果通过F1键进入RetroArch模拟器的配置界面并通过”Settings”-“Input”选项设置一次并保存以后,其他游戏也可以使用这个按键设置,不过前提是通过同一个浏览器访问,因为配置文件(retroarch.cfg)是和浏览器绑定的(其实还有访问的网址,严格意义上来说应该是和浏览器以及访问的网址绑定)。那么,只要能让配置文件不只存放在一个浏览器”本地”,还能”同步”到相同机器的不同浏览器,甚至不同机器的不同浏览器,就能实现按键配置跟随了。那么怎么解决这个关键问题呢?那就是profile(配置文件)。
所以其實跟登入具體帳號然後Pull配置一樣,default只是在不登入的情況下Pull配置,所以其實並沒有真正實現底層修改預設配置,而是仍舊透過設定檔同步的方式間接來實現。