用新的日历复活大富翁3

如果你时常来我这里,你会发现我蛮喜欢玩大富翁 3 的,不过由于年代久远, 这个游戏现在跑起来会有些问题,今天我们来尝试修复一下

1 问题

如果你现在启动游戏的话,你可能会发现,游戏的农历已经工作不正常了

这个问题其实我们讨论过,因为大富翁 3 的日历只到 2020-12-31, 现在的时间已经超过了日历的最大值,游戏没有因此而崩溃已是万幸。 当然如果你去年也有玩大富翁 3 的话,你会注意到,虽然没有超出范围, 但去年的日期已经有问题了,我的推测是有其他条件限制, 比如超过了 8191 之类的,不过这个不是我们本次研究的内容, 我们也就不再这个问题上耗费时间。

2 解决

解决这个问题有两个办法

2.1 修改时间

这个会需要一点点 dos 的知识,因为 dosbox 是不包含 date 命令的,想要执行 date 命令,需要我们手动去执行 command.com。

2.2 重新生成日历文件

我们已经知道日历文件的格式和内容,那么依样画葫芦, 按新的日历生成新的文件来替换掉原来过期的文件,应该就可以达到效果:

https://archive.org/details/rich3-cald-2021

这里是我以 2021-01-01 为起点生成的日历文件,备份好 CALD.A 和 CALD.B , 然后用新文件替换掉以前的文件,试着运行一下

虽然清明节的日期是错的,但是农历日期又可以正常显示了, 推测清明节的错误是因为系统判定阳历四月五日为清明节,而不是根据实际节气, 毕竟根据节气比较难算。

3 结论

农历我们想正确显示,要么使用 date 命令回到过去,要么就是替换 CALD 文件, 两个各有利弊,选择哪个方法,看个人喜好吧。