改造旧的 DOS 游戏以适应现代系统

改造旧的 DOS 游戏以适应现代系统

我有许多基于 DOS 的旧游戏,我想在现代 Windows 上运行它们,而不需要 DOSbox 之类的模拟器,而是作为独立程序运行。我注意到当时盗版问题还没有今天这么严重,所以我可以从原始磁盘访问我需要的所有文件。

我想知道我是否可以使用旧文件并重写一些代码(或整个游戏)来创建一个适合现代 Windows 处理的版本。这样做的另一个动机是,出于某种原因,我拥有的一些旧 DOS 游戏无法与 DOSbox 兼容。

我想知道这是否可行,以及实现这一目标所需的技能。我精通几种编程语言(c++、javascript、汇编和网络语言),我认为我可以做到这一点,但我不知道如何彻底破解这些游戏并对其进行改造。我计划从布莱克·斯通,这是我最喜欢的之一。

答案1

我注意到当时盗版问题并不像今天这么严重,所以我可以从原始磁盘中访问我需要的所有文件。

我不知道你从哪里得到这个想法。在 DOS 时代,每个游戏都拥有独特的“复制保护”方法似乎比现在更常见。

我想知道我是否可以使用旧文件并重写一些代码(或整个游戏)来创建一个适合现代窗口处理的版本。

当然。从技术上来说,没有什么可以阻止你重写整个游戏。请注意,我只是从技术角度来谈论可能的情况。许多流行游戏都是“知识产权”,因此从合法性的角度来看可能会存在一些问题。

我想要 [...] 正确的指导,以获得完成此事所需的技能。

在投入大量时间进行编程项目之前,要做的第一件事是查看已经完成了哪些工作。不要无用地重复大量工作(并且可能做得很差劲),后来才发现已经有一个流行的重新发布版本实现了您的目标。许多组织都发布了一些流行软件的源代码,包括“id Software”。(本页前面提到的 Giacomo1968 的评论提到了“Wolfenstein 3D Engine”的“开放”源代码。Blake Stone 游戏只是对该引擎进行了微小的改进,因此请检查该引擎。)其他流行的重新发布版本/重制版包括 Descent ][ (下降 2 @ DDN; 和D2X 项目和超链接项目)。对于魔兽争霸][,有War2网站非官方移植/重制版。克隆版本可能包括斯特拉塔格斯(魔兽争霸 2),或自由DOOM。这些只是根据我喜欢的一些游戏(在 Blake Stone 时代或之后不久很流行)做出的一些选择。还有很多其他游戏,正如维基百科上有源代码的商业视频游戏列表, 和维基百科的开源视频游戏列表

答案2

我想知道我是否可以使用旧文件并重写一些代码(或整个游戏)来创建一个适合现代 Windows 处理的版本

是的,但需要做大量工作,因为 DOS 程序需要直接访问硬件,所以您必须将所有这些转换为 OS 调用,并且还需要完全控制硬件和中断,因此可能很难正确计时。一些非常古老的 DOS 游戏需要 CPU 时钟速度为特定速度和精确计时才能正常工作,而 OS 会干扰这些速度(例如 IIRC Digger 需要 4.77Mhz CPU,不会更快),因此即使这样,如果不进行太多更改,原始代码也可能无法运行,因为您基本上会破坏游戏的本质。

我想知道这是否可行,以及实现这一目标所需的技能。我精通多种编程语言(c++、javascript、汇编和 Web 语言),我认为我可以做到这一点,但我不知道如何彻底破解这些游戏并对其进行改造。

逆向工程是您需要的技能。您实际上并不想从汇编语言中进行原始操作系统调用,尤其是任何涉及图形 I/O 的操作(此时您将基本上重新实现 C),因此您进一步研究将汇编语言转换为 C 或其他高级语言。

相关内容