大富翁 3 游戏文件分析(八)

这次我们开始研究游戏资源的另一个部分,PVS 动画文件,不过事先声明, 目前还没有具体的成果,只是开了一个头

目录

本系列已完结,以下为整理目录方便查阅

SS.EXE

如果你有注意过游戏目录内的 PLAY.BAT,你会发现,在 RICH3.EXE 执行前,有另一个 EXE 文件被执行了,这个文件就是 SS.EXE,那么这个程序做了些什么事呢, 单独运行一下,我们就会知道,看上去他播放了两段动画,一个是大宇的动态 LOGO, 一个是大富翁 3 的片头动画。

了解了这一点,我们看一看游戏目录中的文件 (你也可以看这里),我想很容易就可以猜测出来, SS16.PVS 就是大宇的动态 LOGO,而另一个还不得而知,我这里也不卖关子了, 开场动画的文件是 MARK.PVS,其实也很容易想到,因为这个是最大的 PVS 文件, 后面我们也会在回到这一点

PVS 文件

检查一下 PVS 文件列表,PASS*.PVS 应该是各种通关动画,另外还有 ACA, MARK 等 6 个 PVS 文件,这里面文件大小最小的文件是 ACA.PVS,所以我决定从这个文件下手。

看到这里我想大概你知道我为什么要先讲一下 SS.EXE 了,没错,我要用 ACA.PVS 把 SS16.PVS 替换掉,因为据我所知另一个可以播放动画的地方是通关后,在那里查看的话, 我要准备一个通关前的进度,反复玩弄在破产边缘的 NPC,我好像还没有那么坏(误), 直接替换掉然后直接运行 SS.EXE 明显是一个更优的选择。

首先我们备份一下 SS16.PVS,然后复制一份 ACA.PVS,并把它重命名为 SS16.PVS, 然后运行 SS.EXE,你看到了什么,如果档案没有损坏的话,我想应该是法官敲锤?

没想到进入法庭那边是播放了一段动画,这是个意外的收获,不过这个动画确实很短, 只有法官敲两下锤而已。

SS.EXE 打开的文件

如果我们进一步想了解程序加载了哪些文件,并对文件执行了什么操作, 就需要使用调试器了,接下来我们就要看到大段大段的汇编预言了,没关系, 我们慢慢来。

这里我们需要用到 dosbox 的调试器,请按照 这篇文章的内容进行配置。

打开调试器后,我们输入 debug ss,开始调试 SS.EXE, 这时调试器窗口会处于活动状态,我们要点一下调试器窗口,使其激活, 在调试器窗口输入 bpint 21 3f 这个指令的意思是在程序执行读取文件的操作时中断, 接下来我们按 F5 开始执行程序,看看 SS.EXE 打开了什么文件:

SS 打开的第一个文件

当调试器第一次中断时,我们可以从输出窗口看到,第一个打开的文件是 SETUP.DAT, 现在我们就可以 F5 继续程序,来观察下一个打开文件,后面的过程就不再详细叙述, 通过多次中断——观察——继续后,我们可以得知,程序依次打开了如下文件:

  1. SETUP.DAT
  2. SS16.PVS
  3. SS.PCX
  4. MUSIC.MKF
  5. MARK.PVS

由于 MARK.PVS 文件很大,程序会多次中断,不过后面的内容我们已经不关心了, 可以使用 bpdel * 来删除所有断点,接着按 F5 让程序跑完。

结束

现在我们知道了 SS.EXE 会打开两个 PVS 文件,一个是 SS16.PVS,一个是 MARK.PVS, 这两个文件分别是大宇的 LOGO 以及片头动画,而且我们可以通过改名的方式把 SS16.PVS 文件替换为 ACA.PVS(法官敲锤),因为这个文件最小,方便我们分析。