又一次AppImage打包過程

一
? ? ? ? 偶然得到了一張上古游戲CD,就是那只1994年的綠油油的光速兔崽子。這個當(dāng)年運(yùn)行在MS-DOS平臺的火爆游戲,是后來風(fēng)靡windows 98平臺的《爵士兔2》的前作。
? ? ? ? 我在ubuntu上用dosbox試了一下,可以完美運(yùn)行。那么,被情懷沖昏頭腦的我又想把它和dosbox一起打包做成AppImage。linuxdeploy和appimagetool這兩個工具就不介紹了。

二
? ? ? ? 首先我創(chuàng)建了用于dosbox掛載為的C盤目錄,里面包含了完整游戲CD目錄,同時也為dosbox準(zhǔn)備了MASM匯編和Turbo-C環(huán)境,當(dāng)然,這是非必要的。dosbox在啟動時,需要使用自定義的額外命令,實(shí)現(xiàn)掛載游戲目錄,并啟動游戲。
? ? ? ? 由于本次打包的文件較多,為處理AppImage掛載后,文件路徑和文件之間的調(diào)用問題,準(zhǔn)備用C語言寫一個游戲啟動器,思路是這樣的:

? ? ? ? 實(shí)現(xiàn)如下:
? ? ? ? 靜態(tài)編譯一下:

三
? ? ? ? 我創(chuàng)建了工作目錄,并在工作目錄中,準(zhǔn)備了以下文件:

JAZZ? ? ? ? ? ? ? ? ? ? 啟動器,就是前文寫的啟動器
DOS_C? ? ? ? ? ? ? ? dos環(huán)境C盤目錄,內(nèi)含游戲目錄:JAZZCD
JAZZ.png? ? ? ? ? ?做了個圖片,作為程序圖標(biāo),尺寸為384*384
dosbox.conf? ? ?dosbox默認(rèn)加載的配置文件
? ? ? ? 接下來生成一個AppImage構(gòu)建目錄:
? ? ? ? 在生成的jazz_jack_rabbit-linux_x86_64/usr/bin/目錄中,我需要從系統(tǒng)中把dosbox的二進(jìn)制程序復(fù)制進(jìn)去:
? ? ? ??再次運(yùn)行構(gòu)建命令,以遍歷dosbox依賴的共享庫:
? ? ? ??把DOS_C目錄復(fù)制到j(luò)azz_jack_rabbit-linux_x86_64/usr/bin/目錄中:
? ? ? ??把dosbox.conf復(fù)制到j(luò)azz_jack_rabbit-linux_x86_64/usr/bin/目錄中:
? ? ? ??構(gòu)建AppImage:
? ? ? ??成功生成 JAZZ-x86_64.AppImage

四
? ? ? ? 對古老的程序,見其生,不忍見其死。人們總是對第一次接觸某種事物的印象極為深刻。
