欢迎来到位于 GitHub 上的 DOSBox-X 项目主页。
DOSBox-X 的网站
DOSBox-X 的 Wiki 页面
DOSBox-X 项目的 Discord 频道
发布
开发/每晚构建
安装说明
构建说明
DOSBox-X简介
DOSBox-X 的显着功能
DOSBox-X 支持的平台和版本
与 DOS 程序和游戏的兼容性
为 DOSBox-X 做出贡献
DOSBox-X开发及发布模式
未来的开发实验
软件安全评论
DOSBox-X 目前不太可能支持的功能
DOSBox-X 项目的起源和历史
已知的 DOSBox-X 叉子
支持国际语言翻译和键盘布局
DOSBox-X 是一个基于 DOSBox 项目的跨平台 DOS 模拟器。
与 DOSBox 一样,它模拟运行许多 MS-DOS 游戏和应用程序所需的 PC,而这些游戏和应用程序根本无法在现代 PC 和操作系统上运行。然而,虽然 DOSBox 的主要重点是运行 DOS 游戏,但 DOSBox-X 的用途远不止于此。它最初是 DOSBox 项目的一个分支,保留了与 DOS 游戏和 DOS 游戏 DOSBox 的广泛基础的兼容性。但它也是一个运行 DOS 应用程序的平台,包括模拟运行 Windows 3.x、9x 和 ME 的环境以及为这些版本的 Windows 编写的软件。通过添加对Windows 95、98、ME仿真和加速的官方支持,我们希望那些旧的Windows游戏和应用程序可以再次享受或使用。此外,DOSBox-X 增加了对 DOS/V 和 NEC PC-98 仿真的支持,这样您就可以用它玩 DOS/V 和 PC-98 游戏。
与DOSBox相比,DOSBox-X更注重通用仿真和准确性。为了帮助运行 DOS 游戏和应用程序、Windows 3.x/9x/ME,以及出于历史保存、测试和持续 DOS 开发的目的,我们希望实现准确的模拟,准确到足以帮助制作新的DOS 开发可以放心,程序将在实际的 DOS 系统上正常运行。 DOSBox-X 包括用于不同目的的各种功能(其中一些是从其他项目移植的),这些功能是作为增量更改实现的,因为它是从 DOSBox SVN Daum 分叉的。 DOSBox-X 提供了多种调整和配置 DOS 虚拟机的方法,因为我们相信模拟 DOS 平台的更好方法是为用户提供模拟从原始 IBM PC 系统一直到最新的所有内容所需的所有选项1990 年代的配置,无论需要什么才能让您的游戏或软件包运行。我们的目标是最终使 DOSBox-X 成为一个完整的仿真包,涵盖所有 2000 年之前的 DOS 和 Windows 9x 系统场景,包括外设、主板、CPU 以及为当时的 PC 硬件制造的所有硬件。
请查看 DOSBox-X 主页,了解支持平台最新版本的常用软件包,以及在 DOSBox-X 中运行的一些 DOS 程序和游戏的屏幕截图。另请参阅安装页面以获取 DOSBox-X 安装说明和其他软件包,以及发布页面以获取所有已发布 DOSBox-X 版本的存档。有关 DOSBox-X 的更多信息,例如设置和运行 DOSBox-X 及其使用技巧,请阅读 DOSBox-X Wiki 中的用户指南。构建源代码的步骤可以在 BUILD 页面中找到。
DOSBox-X 是完全开源的,可以免费使用和分发。它是根据 GNU 通用公共许可证版本 2 发布的。另请参阅关于 DOSBox-X 页面,了解有关 DOSBox-X 的目标和非目标的更多信息,以及其他项目的一些链接。
该项目有行为准则,请阅读它以获取有关为该项目做出贡献或获得该项目支持的一般信息。
提供者: joncampbell123(乔纳森·坎贝尔)
虽然基于 DOSBox 项目,但 DOSBox-X 现在是一个独立的项目,因为两者都有自己单独的时间表和开发优先级。例如,DOSBox 的主要重点是运行 DOS 游戏,而 DOSBox-X 的功能远不止于此。此时DOSBox-X已经拥有大量DOSBox所不具备的功能。此类功能的示例包括:
GUI下拉菜单和内置图形配置工具
保存和加载状态支持(最多 100 个保存槽 + 保存文件)
NEC PC-98、AX、DOS/V 仿真和中文/日文/韩文支持
完全可翻译的用户界面(提供语言文件)
更好地支持和兼容 DOS 应用程序
支持更多DOS命令和内置外部工具
支持不同方式定制内部Z:驱动器
支持 Pentium Pro、II、III 和 MMX 指令等 CPU 类型
支持 IDE 接口和改进的 Windows 3.x/9x 仿真
支持长文件名和 FAT32 磁盘映像(DOS 7+ 功能)
支持像素完美缩放输出以提高图像质量
支持文本模式 DOS 程序的 TrueType 字体 (TTF) 输出
支持打印功能,无论是到真实打印机还是虚拟打印机
支持启动程序在主机系统上运行(-hostrun 选项)
支持 3dfx Voodoo 芯片和 Glide 仿真(包括 Glide 包装器)
支持 FLAC、MP3、WAV、OGG Vorbis 和 Opus CD-DA 曲目的提示表
支持 FluidSynth MIDI 合成器(带声音字体)和 MT-32 仿真
支持 NE2000 以太网的网络功能和调制解调器电话簿映射
支持垂直同步、过扫描边界和立体声交换等功能
还有更多..
虽然 DOSBox-X 中的绝大多数功能都是跨平台的,但 DOSBox-X 也具有一些值得注意的与平台相关的功能,例如 Direct3D 输出和对 Windows 平台上自动驱动器安装的支持。这些功能无法轻易移植到其他平台。有关 DOSBox-X 功能的更多信息,请参阅 DOSBox-X Wiki 中的 DOSBox-X 功能亮点页面。
DOSBox-X正式支持SDL 1.2和SDL 2.0;还支持 32 位和 64 位版本。
DOSBox-X是一个跨平台的DOS模拟器,因此官方支持所有主要主机操作系统,包括:
Windows(XP 或更高版本),32 位和 64 位
Linux(带 X11),32 位和 64 位
macOS (Mac OS X)、基于 Intel 和 ARM 的 64 位
DOS(MS-DOS 5.0+ 或兼容)
Windows 二进制文件(32 位和 64 位)、Linux Flatpak 或 RPM 软件包(64 位)、macOS 软件包(64 位)和 DOS 版本会定期正式发布,通常在每月的最后一天或第一天下个月的某一天。请查看 DOSBox-X 主页和安装页面,了解这些平台上最新的 DOSBox-X 软件包以及进一步的安装说明。您还可以在“版本”页面中找到所有已发布版本的 ZIP 包或 Windows 安装程序及其更改日志。 Windows 安装程序旨在简化安装过程,它们允许您在安装结束后立即启动 DOSBox-X。
要在真正的 DOS 系统(MS-DOS 或兼容)中运行 DOSBox-X,您可以找到使用免费提供的 HX DOS Extender 的 HX-DOS 软件包。键入 DOSBOX-X 从 DOS 系统运行它。除了 DOS 系统之外,还有 DOS LOADLIN 软件包可以在 DOSBox-X 本身内运行。但请注意,并非其他平台支持的 DOSBox-X 的所有功能都可以在真实的 DOS 环境中支持。
还可以从 DOSBox-X 开发版本页面获取用于各种平台测试目的的开发(预览)版本。
完整的源代码随每个 DOSBox-X 版本正式提供,可以编译为在上述操作系统和可能的其他操作系统上运行。您还可以直接从存储库获取最新的开发源代码。另请参阅 BUILD 页面,了解有关构建/编译 DOSBox-X 源代码的信息。
我们的最终目标是成为一个完整的 DOS 仿真包,涵盖所有 2000 年之前的 DOS 和基于 Windows 3.x/9x 的硬件场景,我们正在努力确保绝大多数 DOS 游戏和应用程序都可以在 DOSBox-X 中运行,其中包括文本模式和图形模式 DOS 程序。主要基于 DOS 的 Microsoft Windows 版本(例如 Windows 3.x 和 9x)也受到 DOSBox-X 的正式支持。请注意,某些配置设置可能需要更改默认设置才能顺利运行。请查看 DOSBox-X Wiki 了解更多信息。
我们还努力通过尝试准确地模拟硬件来帮助 DOS 的持续发展,这就是为什么 DOSBox-X 过去专注于演示软件(尤其是 1996 年之前的任何软件),因为那个时代的 MS-DOS 场景往往拥有所有奇怪的硬件技巧、错误和速度敏感问题的方式使它们成为测试模拟准确性的完美工具,甚至比旧的 DOS 游戏更有效。但毫无疑问,我们也做了很多努力来测试 DOSBox-X 与其他 DOS 游戏和应用程序,以及 PC-98 程序(其中大部分是游戏)。
我们在每个新的 DOSBox-X 版本中添加了新功能并进行了其他改进,因此它与 DOS 程序和游戏的兼容性也随着时间的推移而提高。如果您对特定 DOS 程序或游戏有任何问题,请随时将其发布到问题跟踪器中。
我们通过消除准入障碍来鼓励新的贡献者。想法和补丁总是受欢迎的,尽管不一定会被接受。
如果您确实需要该功能或更改,并且您的更改未被接受到此主项目中(或者您只是想乱搞代码),请随意分叉此项目并在您的分叉中进行更改。
由于 joncampbell123 在 DOSBox-X 上工作的时间有限,非常感谢您的帮助:
测试
DOSBox-X 的命令和功能等特点
DOS游戏和应用程序的正常运行
Windows 1.0/2.x/3.x 和 Windows 95/98/ME 客户系统支持
软件或硬件仿真准确性,例如 demoscene 软件的帮助
编写更多的单元测试来测试各种功能(请参阅tests/中现有的单元测试)
新 DOS 软件的开发(可能由 DOSLIB/DOSLIB2 协助)
错误修复、补丁、改进、改进
其他用户的建议、想法、帮助和/或一般对话
平台支持(Windows、Linux、macOS、DOS,但也欢迎其他平台)
文档、语言文件翻译、软件打包
有关 DOS 和 Win3.x/9x 游戏、应用程序、黑客或怪异技巧等的注释。
有关更多贡献指南,请参阅贡献页面。如果您想调整或编写一些代码并且不知道要做什么,请随时访问问题跟踪器以获取一些想法。
有关源代码的更多描述,请查看 DOSBox-X 源代码描述页面。有关在源代码上构建的信息可以在“构建”页面中找到。
有关调试器的信息也可以在 DOSBox-X 调试器页面中找到。
另请参阅“信用”页面了解信用信息。
为了使DOSBox-X的开发过程更加顺利,我们为DOSBox-X实现了通用的开发/发布模式。 DOSBox-X 当前的发布模式如下:
新的 DOSBox-X 版本在每个月的月初(通常是第一天)公开,包括源代码和二进制版本。然后DOSBox-X开发将重新开放新功能、拉取请求等。月底前6天不会添加新功能,只会修复错误。该月的最后一天是 DOSBox-X 的构建日,用于编译下个月第一天的二进制版本,因此这一天不会有源代码更改,包括拉取请求或错误修复。
例如,假设 8 月是当月 - 8 月 25 日将是拉取请求将被忽略的日子,除非仅修复错误。 8 月 31 日(8 月的最后一天)将是 DOSBox-X 构建日。
这是 DOSBox-X 的官方发布模式,尽管稍后可能会发生变化。
分散的实验和小型项目正在进行实验/作为 DOSBox-X 及其代码库未来修订的试验场。
这些实验可能会也可能不会进入未来的修订版或下一个版本。
欢迎对实验提出评论,以帮助整体改进代码。
patch-integration/ 中也有补丁,用于将来可能的功能集成。过去我们已经将许多社区开发的补丁集成到 DOSBox-X 中。
另请参阅 General TODO.txt 了解 DOSBox-X 未来开发的一些计划。
DOSBox-X 不能声称是“安全”应用程序。它包含许多为性能而不是安全性而设计的代码。仿真中可能存在漏洞、错误和缺陷,这些漏洞、错误和缺陷可能允许其中的恶意 DOS 可执行文件造成问题或利用仿真器中的错误造成损害。不保证 DOSBox-X 完全遏制来宾操作系统或应用程序。
如果安全是首要任务,那么:
不要在安全系统上使用 DOSBox-X。
不要以 root 或管理员身份运行 DOSBox-X。
如果您需要使用 DOSBox-X,请在 chroot 监狱或沙箱中以权限较低的用户身份运行它,或者使用命令行选项-securemode
启用 DOSBox-X 的安全模式,这将禁用可能允许访问主机的命令系统。
如果您的 Linux 发行版启用了它,请考虑使用审核系统来限制允许 DOSBox-X 可执行文件执行的操作。
DOSBox-X 的目标是成为一个功能齐全的 DOS 仿真包,但现在实现的设计无法容纳一些东西。
Pentium 4 或更高级别的 CPU 仿真。
DOSBox-X 包含仅通过 Pentium III 模拟 8086 的代码。真正的 DOS 系统(MS-DOS 及其兼容机)也能在这些 CPU 上发挥最佳性能。
如果需要 Pentium 4 或更高版本的仿真,请考虑使用 Bochs 或 QEMU 等 PC 仿真器。如果 DOSBox-X 社区普遍需要,DOSBox-X 最终可能会开发 Pentium 4 仿真。
PC 硬件 2001 或更高版本的仿真。
DOSBox-X 的官方截止日期是 2001 年,当时 Microsoft 更新的“PC 2001”规范强制要求从主板上移除 ISA 插槽。重点是为之前制作的硬件实现硬件仿真。
贡献者可以在他们选择的 1980 年到 2000/2001 之间的时间范围内自由地专注于模拟硬件。
Windows 来宾模拟、Windows Vista 或更高版本。
就在 DOSBox-X 中运行 Windows 而言,DOSBox-X 仿真将主要关注 Windows 1.0 到 Windows ME(Millennium Edition),然后关注 Windows NT 到 Windows XP。 Windows Vista 及更高版本不是优先事项,目前不会考虑。这些版本的 Windows 不基于 DOS。
如果您需要运行 Windows XP 及更高版本,请考虑使用 QEMU、Bochs、VirtualBox 或 VMware。
除 IBM PC/XT/AT、AX、Tandy、PCjr 和 PC-98 之外的任何 MS-DOS 系统。
只有上面列出的系统才会被考虑在 DOSBox-X 中进行开发。此限制可以防止将代码库扩展到难以管理的水平,并有助于保持代码库的组织。
如果开发人员能够专注于并行模拟他们感兴趣的平台,而不是将所有内容都放入一个项目中,那么对我自己和开源社区来说,这对我和开源社区来说会更容易,因为整个模拟所有平台的效果很可能会更差。然而,如果添加系统仿真仅需要很小的最小改变,那么可以考虑所讨论的新系统。
如果您需要为任何其他系统或控制台开发 MS-DOS 模拟,强烈建议您分叉此项目并实现您自己的变体。通过这样做,您可以获得完全的自由,专注于实现感兴趣的基于特定 MS-DOS 的系统,并且如果需要,还可以去除冲突的 IBM PC/XT/AT 仿真和不必要的代码,以保持分支机构的代码易于管理和管理。可维护。
如果您正在启动一个分叉,请随时告诉我您的分叉在哪里以及它正在模拟什么系统,以便我可以将其列在这个自述文件中,以供其他寻求模拟该系统的人使用。为了提供帮助,我添加了机器和视频模式枚举作为“存根”,为您的分支机构实施平台提供起点。到目前为止实现的存根是“FM Towns emulation”( machine=fm_towns
)。
x86 指令和执行的周期精确计时。
在 DOSBox-X 中,除了 I/O 和内存访问之外,指令通常每个周期运行一条。
如果需要精确模拟每条指令的周期,请考虑使用 PCem、86Box 或 VARCem。
全精度浮点仿真。
除非使用动态核心,否则 DOSBox 和 DOSBox-X 使用“双”64 位浮点数据类型模拟 FPU 寄存器。
Intel FPU 寄存器是 80 位“扩展精度”浮点值,而不是 64 位双精度,因此这实际上是 12 位精度损失和 5 位范围损失(64 到 53 尾数位和 16 到 11 指数位) )。考虑到 DOSBox 支持 DOS 游戏的最初目标,这种轻微的精度损失是完全可以的,但在其他需要完全精度的情况下可能会导致问题。
目前已知,这种精度的缺乏足以导致最初用 QBasic 或 Turbo Basic 编写的 DOS 应用程序中与整数的直接比较失败。有些编写的 DOS 游戏使用浮点比较来检查其文件大小,但这种方式会失败。要运行这些游戏,您需要禁用 FPU 模拟 ( fpu=false
) 以强制 QBasic/TurboBasic 运行时使用软件模拟。
DOSBox-X 于 2011 年中期作为原始 DOSBox 项目的一个分支开始。它的开始是出于改进模拟器的愿望,而不必与上游提交补丁或担心提交补丁。
正如其开发者所明确表示的那样,DOSBox 的主要重点是 DOS 游戏。事实证明,大部分代码都是一些准确的代码,其中包含使 DOS 游戏运行的拼凑代码,而不是关注真实 DOS 系统的实际行为。
DOSBox-X 项目维护者 Jonathan Campbell 希望对源代码进行各种更改,但其中许多更改与游戏无关,因此不太可能被 DOSBox 开发人员接受。
从那时起,Jonathan Campbell 一直在修改源代码,以通过 ME 改进仿真、修复错误并解决与 Windows 95 的不兼容性问题。他添加了选项,以便 DOSBox-X 默认情况下可以更准确地模拟更广泛的配置,同时允许用户在需要运行他们最喜欢的 DOS 游戏或程序时启用各种技术或黑客攻击。他还一直在清理和组织代码,以尽可能提高稳定性和可移植性。
最初的 DOSBox 项目不是由一位程序员编写的。它自 2000 年底以来一直在开发中,来自 Vogons 论坛各地成员的补丁、修复和改进。尽管自 10 多年前 DOSBox 0.74 以来就没有发布过重要的正式版本,但该项目至今仍以 DOSBox SVN 的形式处于半活跃开发状态。同时,一些更改本身合并了其他项目的代码。
DOSBox-X 中的一些功能和改进也来自 DOSBox 的另一个分支,称为 DOSBox SVN Daum,它本身合并了原始 DOSBox 项目 DOSBox-X 的功能和许多实验性补丁。尽管 Daum 分支似乎已经消亡,但借用它的功能在 DOSBox-X 中仍然存在。后来,DOSBox-X 还融入了 DOSBox ECE、DOSBox Staging、DOSVAX/DOSVAXJ3 和 vDosPlus 等其他项目的多项功能和改进。
DOSBox-X 项目还得到了其他开发人员和贡献者的帮助,例如 Wengier、aybe、Allofich 和 rderooy,他们为改进 DOSBox-X 项目做了大量工作,包括添加新功能、修复错误、创建文档、维护网站,并从其他项目移植代码。
另请参阅 CREDITS 页面了解源代码的来源。
Yksoft1 的 DOSBox-X Emscripten 端口(可在 Web 浏览器中运行)
为了在使用 LLVM/Emscripten 编译时在 Web 浏览器中高效运行,进行了重大更改。这些重大更改需要删除一些有用的功能(包括菜单),但对于性能而言是必需的。
URL:https://github.com/yksoft1/dosbox-x-vanilla-sdl/tree/emscripten(查找克隆 URL 并使用 emscripten 分支)
DOSBox-X-App(适用于 Windows 和 macOS),作者:emendelson
DOSBox-X-App 是 DOSBox-X 的稍微定制版本,与外部程序和命令相结合,可以轻松地从 DOS 应用程序打印和创建 PDF。它是为应用程序而不是游戏而定制的。
网址:http://www.columbia.edu/~em36/dosboxapp.html
DOSBoxWP(适用于 DOS 的 WordPerfect),作者:emendelson
DOSBoxWP 是 DOSBox-X 的定制版本,针对 WordPerfect for DOS 用户。
网址(Windows):http://www.columbia.edu/~em36/wpdos/dosboxwp.html
网址(macOS):http://www.columbia.edu/~em36/wpdos/wpdosboxmac.html
Win31DOSBox(适用于 64 位 Windows 的 Windows 3.1),作者:emendelson
Win31DOSBox 旨在成为一种在 64 位 Windows 系统上运行 Windows 3.x 软件的简单方法。运行 Windows 3.1x 时,系统使用 DOSBox-X 的自定义版本。
网址:http://www.columbia.edu/~em36/win31dosbox.html
DOSBox-X 将英语显示为默认语言,并默认使用美国代码页(437),就像 DOSBox 一样。
默认设置下,DOSBox-X 显示的所有消息均为英文。 DOSBox-X确实支持使用语言文件更改显示消息的功能。语言文件控制内部命令和内部 DOS 的所有可见输出,以及 DOSBox-X 下拉菜单中的文本。如果您的母语不是英语,我们鼓励您通过将 DOSBox-X 中的消息翻译为您的语言来创建与 DOSBox-X 一起使用的其他语言文件。其他 DOSBox-X 用户也可以使用这些语言文件让 DOSBox-X 以此类语言显示消息。语言文件可以在 DOSBox-X 安装的languages
目录中找到。
语言名称 | 语言文件 |
---|---|
中文(简体) | contrib/translations/zh/zh_CN.lng |
中文(繁体) | contrib/translations/zh/zh_TW.lng |
法语 | contrib/翻译/fr/fr_FR.lng |
德语 | contrib/翻译/de/de_DE.lng |
意大利语 | contrib/翻译/it/it_IT.lng |
日本人 | contrib/翻译/ja/ja_JP.lng |
韩国人 | contrib/translations/ko/ko_KR.lng |
葡萄牙语(巴西) | contrib/翻译/pt/pt_BR.lng |
西班牙语 | contrib/翻译/es/es_ES.lng |
土耳其 | contrib/翻译/tr/tr_TR.lng |
DOSBox-X 是围绕美国键盘布局开发的,这主要是由于提供输入处理的 SDL1 库的限制。因此,当使用 SDL1 版本和非美国键盘时,DOSBox-X 会自动使用默认设置的扫描码来解决键盘布局问题。在 SDL2 版本中使用非美国键盘布局时不需要扫描码。如果您发现 DOSBox-X 尚不支持键盘布局,为了添加与 DOSBox-X 一起使用的其他布局,请参阅文件 README.keyboard-layout-handling 以了解如何作为开发人员执行此操作。
有关 DOSBox-X 的国际支持和区域设置的更多信息,例如创建 DOSBox-X 语言文件或在 DOSBox-X 中使用外部键盘文件的步骤,以及对欧元符号和国家/地区特定日期和时间格式的支持,请查看 DOSBox-X Wiki 中 DOSBox-X 中的区域设置指南。有关东亚(中文/日文/韩文)语言支持的更多信息,请参阅东亚语言和系统支持指南页面。