又一次AppImage打包过程

一
偶然得到了一张上古游戏CD,就是那只1994年的绿油油的光速兔崽子。这个当年运行在MS-DOS平台的火爆游戏,是后来风靡windows 98平台的《爵士兔2》的前作。
我在ubuntu上用dosbox试了一下,可以完美运行。那么,被情怀冲昏头脑的我又想把它和dosbox一起打包做成AppImage。linuxdeploy和appimagetool这两个工具就不介绍了。

二
首先我创建了用于dosbox挂载为的C盘目录,里面包含了完整游戏CD目录,同时也为dosbox准备了MASM汇编和Turbo-C环境,当然,这是非必要的。dosbox在启动时,需要使用自定义的额外命令,实现挂载游戏目录,并启动游戏。
由于本次打包的文件较多,为处理AppImage挂载后,文件路径和文件之间的调用问题,准备用C语言写一个游戏启动器,思路是这样的:

实现如下:
静态编译一下:

三
我创建了工作目录,并在工作目录中,准备了以下文件:

JAZZ 启动器,就是前文写的启动器
DOS_C dos环境C盘目录,内含游戏目录:JAZZCD
JAZZ.png 做了个图片,作为程序图标,尺寸为384*384
dosbox.conf dosbox默认加载的配置文件
接下来生成一个AppImage构建目录:
在生成的jazz_jack_rabbit-linux_x86_64/usr/bin/目录中,我需要从系统中把dosbox的二进制程序复制进去:
再次运行构建命令,以遍历dosbox依赖的共享库:
把DOS_C目录复制到jazz_jack_rabbit-linux_x86_64/usr/bin/目录中:
把dosbox.conf复制到jazz_jack_rabbit-linux_x86_64/usr/bin/目录中:
构建AppImage:
成功生成 JAZZ-x86_64.AppImage

四
对古老的程序,见其生,不忍见其死。人们总是对第一次接触某种事物的印象极为深刻。
