今天看到IT之家報導,說國外有人搞了一個Windows 95應用模擬器,下下來玩了一下,以為連裡面系統都是js寫的,頓時感覺挺厲害,後來感覺太逼真了。。。不像是js實現的,就看了一下源碼,發現本質上是一個js寫的類似qemu的玩意,跑了一個windows 95鏡像。於是,我改成了跑Windows 3.2。
下面分享一下我的修改過程。
準備工具:
Windows 10的Linux子系統。(用來裝npm,用node.js for windows理論可行,但我沒有試過)壓縮軟體,推薦是7z。
步驟:
準備一個raw(img)格式的系統鏡像,改名為windows95.img
鏡像,你可以像我一樣自己做一個鏡像,也可以找現成的,不過建議選擇對系統要求比較低的系統鏡像,以降低出錯的概率。
我們打開Linux子系統,輸入sudo apt install npm,如果你是fedora opensuse之類的請輸入別的包管理命令。
然後輸入sudo npm -g install asar,安裝asar
如果你沒運行過95模擬器,請先運行一次,以便主程序解壓壓縮包。
在Linux子系統中定位到95模擬器的安裝文件夾(右鍵點擊win95快捷方式,第二個選項卡裡點擊查找目標),再定位到app-1.1.0\resources,輸入asar extract app.asar dest
我們把鏡像放到解壓之後的src\renderer\images中,覆蓋原有文件,原來裡面的那個state.bin需要刪除,不然容易出錯。
刪除原來的app.asar,然後在終端中輸入asar pack dest app.asar。
別急!你還需要下面的步驟。
由於已經運行過模擬器了,所以它會在C:\Users\用戶名\AppData\Roaming中生成一個叫windows95的文件夾的緩存,所以我們需要刪掉這個文件夾。
好了,步驟結束,運行模擬器,但請點擊Discard State & Boot From Scratch,而不是Starting Windows 95(這一點很重要!)。因為95的state.bin已經刪除,再運行第一個就有可能出錯。