在Linux中怎么运行MS-DOS游戏和程序

系统 Linux
你是否想过尝试一些经典的 MS-DOS 游戏和像 Turbo C++ 这样的废弃的 C++ 编译器?这篇教程将会介绍如何使用 DOSBox 在 Linux 环境下运行 MS-DOS 的游戏和程序。

https://s4.51cto.com/oss/201811/13/cff39a05941a14ecf49b01ff053cae19.png

你是否想过尝试一些经典的 MS-DOS 游戏和像 Turbo C++ 这样的废弃的 C++ 编译器?这篇教程将会介绍如何使用 DOSBox 在 Linux 环境下运行 MS-DOS 的游戏和程序。DOSBox 是一个 x86 平台的 DOS 模拟器,可以用来运行经典的 DOS 游戏和程序。 DOSBox 可以模拟带有声音、图形、鼠标、操纵杆和调制解调器等的因特尔 x86 电脑,它允许你运行许多旧的 MS-DOS 游戏和程序,这些游戏和程序根本无法在任何现代 PC 和操作系统上运行,例如 Microsoft Windows XP 及更高版本、Linux 和FreeBSD。 DOSBox 是免费的,使用 C++ 编程语言编写并在 GPL 下分发。

在 Linux 上安装 DOSBox

DOSBox 在大多数 Linux 发行版的默认仓库中都能找的到。

在 Arch Linux 及其衍生版如 Antergos、Manjaro Linux 上:

  1. $ sudo pacman -S dosbox

在 Debian、Ubuntu、Linux Mint 上:

  1. $ sudo apt-get install dosbox

在 Fedora 上:

  1. $ sudo dnf install dosbox

配置 DOSBox

DOSBox 是一个开箱即用的软件,它不需要进行初始化配置。它的配置文件位于 ~/.dosbox 文件夹中,名为 dosbox-x.xx.conf。 在此配置文件中,你可以编辑/修改各种设置,例如以全屏模式启动 DOSBox,全屏使用双缓冲,设置***分辨率,鼠标灵敏度,启用或禁用声音,扬声器,操纵杆等等。如前所述,默认设置即可正常工作。你可以不用进行任何更改。

在 Linux 中运行 MS-DOS 上的游戏和程序

在终端运行以下命令启动 DOSBox:

  1. $ dosbox

下图就是 DOSBox 的界面

正如你所看到的,DOSBox 带有自己的类似 DOS 的命令提示符和一个虚拟的 Z:\ 的驱动器,如果你熟悉 MS-DOS 的话,你会发现在 DOSBox 环境下工作不会有任何问题。

这是 dir 命令(在 Linux 中等同于 ls 命令)的输出:

如果你是***次使用 DOSBox,你可以通过在 DOSBox 提示符中输入以下命令来查看关于 DOSBox 的简介:

  1. intro

在介绍部分按回车进入下一页。

要查看 DOS 中最常用命令的列表,请使用此命令:

  1. help

要查看 DOSBox 中所有支持的命令的列表,请键入:

  1. help /all

记好了这些命令应该在 DOSBox 提示符中使用,而不是在 Linux 终端中使用。

DOSBox 还支持一些实用的键盘组合键。下图是能有效使用 DOSBox 的默认键盘快捷键。

要退出 DOSBox,只需键入如下命令并按回车:

  1. exit

默认情况下,DOSBox 开始运行时的正常屏幕窗口大小如上所示。

要直接在全屏启动 DOSBox,请编辑 dosbox-x.xx.conf 文件并将fullscreen 变量的值设置为 enable。 之后,DOSBox 将以全屏模式启动。 如果要返回正常屏幕,请按 ALT+ENTER

希望你掌握了 DOSBox 的这些基本用法。

让我们继续安装一些 DOS 程序和游戏。

首先,我们需要在 Linux 系统中创建目录来保存程序和游戏。我将创建两个名为 ~/dosprograms~/dosgames 的目录,***个用于存储程序,后者用于存储游戏。

  1. $ mkdir ~/dosprograms ~/dosgames

出于本指南的目的,我将向你展示如何安装 Turbo C++ 程序和 Mario 游戏。我们首先将看到如何安装 Turbo。

下载***版本的 Turbo C++ 编译器并将其解压到 ~/dosprograms 目录中。 我已经将 Turbo C++ 保存在在我的 ~/dosprograms/TC/ 目录中了。

  1. $ ls dosprograms/tc/
  2.  
  3. BGI BIN CLASSLIB DOC EXAMPLES FILELIST.DOC INCLUDE LIB README README.COM

运行 DOSBox:

  1. $ dosbox

~/dosprograms 目录挂载为 DOSBox 中的虚拟驱动器 C:\

  1. Z:\>mount c ~/dosprograms

你会看到类似下面的输出:

  1. Drive C is mounted as local directory /home/sk/dosprograms.

现在,使用命令切换到 C 盘:

  1. Z:\>c:

然后切换到 tc/bin 目录:

  1. Z:\>cd tc/bin

***,运行 Turbo C++ 可执行文件:

  1. Z:\>tc.exe

备注:只需输入前几个字母,然后按回车键可以自动填充文件名。

你现在将进入 Turbo C++ 控制台。

创建新文件(ATL + F)并开始编程:

你可以同样安装和运行其他经典 DOS 程序。

故障排除:

运行 Turbo C++ 或其他任何 DOS 程序时,你可能会遇到以下错误:

  1. DOSBox switched to max cycles, because of the setting: cycles=auto. If the game runs too fast try a fixed cycles amount in DOSBox's options. Exit to error: DRC64:Unhandled memory reference

要解决此问题,编辑 ~/.dosbox/dosbox-x.xx.conf 文件:

  1. $ nano ~/.dosbox/dosbox-0.74.conf

找到以下变量:

  1. core=auto

并更改其值为:

  1. core=normal

现在,让我们看看如何运行基于DOS的游戏,例如 Mario Bros VGA

这里 下载 Mario 游戏,并将其解压到 Linux 中的 ~/dosgames 目录。

运行 DOSBox:

  1. $ dosbox

我们刚才使用了虚拟驱动器 C: 来运行 DOS 程序。现在让我们使用 D: 作为虚拟驱动器来运行游戏。

在 DOSBox 提示符下,运行以下命令将 ~/dosgames 目录挂载为虚拟驱动器 D

  1. Z:\>mount d ~/dosgames

进入驱动器 D:

  1. Z:\>d:

然后进入 mario 游戏目录并运行 mario.exe 文件来启动游戏。

  1. D:\>cd mario
  2. D:\>mario.exe

开始玩游戏:

你可以同样像上面所说的那样运行任何基于 DOS 的游戏。 点击这里查看可以使用 DOSBox 运行的游戏的完整列表。

总结

尽管 DOSBox 并不能作为 MS-DOS 的完全替代品,并且还缺少 MS-DOS 中的许多功能,但它足以安装和运行大多数的 DOS 游戏和程序。

有关更多详细信息,请参阅官方 DOSBox手册。 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2018-09-29 16:18:59

GitHub 开源微软

2017-11-01 13:42:13

LinuxDOSFreeDOS

2014-03-26 09:03:30

微软

2011-08-04 15:03:04

注册表MS-DOS

2011-07-28 10:13:56

2022-06-23 09:55:56

WineZGUILinux 桌面Windows 应用

2019-12-25 14:00:53

Linux安卓 8.1 Oreo应用程序

2014-07-04 09:47:24

SwiftSwift开发

2009-10-10 17:02:55

2021-05-26 13:34:21

Windows 10Linux GUI应用程序

2016-02-16 09:36:37

CrossOverLinuxWindows

2010-02-01 09:38:46

2017-04-24 18:50:15

AnboxLinuxAndroid

2022-01-11 07:50:32

Linux脚本模式

2021-05-10 13:00:57

WindowsLinux应用程序

2019-06-14 11:15:27

WindowsLinuxWSL

2021-07-19 09:37:59

Windows 操作系统Linux

2017-09-19 15:40:23

Linuxsudo命令密码

2019-03-22 09:20:45

Linux命令sudo

2020-08-28 07:00:00

WSLLinuxWindows 10
点赞
收藏

51CTO技术栈公众号