美文网首页
用DOSBox运行老游戏

用DOSBox运行老游戏

作者: 我要牛肉面面 | 来源:发表于2019-05-08 22:30 被阅读0次

都怪农企翻身不完美,VME bug导致开不了Win98虚拟机(我正在写另一篇文章描述具体情况),哼~

Wikipedia对DOSBox的描述:

IBM PC兼容机下,模拟旧时的操作系统MS-DOS,支持许多IBM PC兼容的显卡声卡,为本地的DOS程序提供执行环境,使这些程序可以正常运行于大多数现代计算机上的不同操作系统。
DOSBox特别是为运行早期的计算机游戏所设计,主要以C++编写,是以GNU通用公共许可证许可发布的自由软件

划重点:DOS,动态指令转换,老显卡/声卡,Modem/IPX/TCP/IP,老游戏。
没提到PE内核的Windows 3.x/4.x。

新PC - DOSBox - CDTV模拟器(?) - Town with no Name, The

My Abandonware提供了一个例子,下载到的压缩包里除了游戏镜像,还包括用DOSBox启动该镜像的基本指令。
这个例子的压缩包里的目录结构:

|   start.bat
|
+---cd                              <- 游戏镜像
|       Town with no name.ccd
|       Town with no name.img
|       Town with no name.sub
|
+---dosbox                          <- DOSBox主程序、依赖库、配置文件
|       dosbox.conf
|       dosbox.exe
|       libpng13.dll
|       SDL.dll
|       SDL_net.dll
|       zlib1.dll
|
\---TWNONAME                        <- 游戏的“硬盘”(准确地说上一层目录才是C盘)
        TOWN.BAT

start.bat文件:

@echo off 
.\dosbox\dosbox.exe -conf .\dosbox\dosbox.conf -noconsole -exit -fullscreen 
del stdout.txt 
del stderr.txt 
:end 

dosbox\dosbox.conf文件:(只给出autoexec一节,其余略)

[autoexec]
mount c .
imgmount d ".\cd\Town with no name.img" -t cdrom
c:
cd twnoname
call town
exit

TWNONAME\TOWN.BAT文件:

ECHO OFF
D:
CD \TOWN
DTVPLAY -CD -c LANGUAGE_DIR=english/
C:

游戏的启动流程:

  1. 用户以start.bat所在的目录为起始目录,在该目录下运行该bat脚本。
  2. 脚本调用dosbox.exe,并以dosbox.conf作为其配置文件。
  3. DOSBox按配置文件设置好自身的环境后,挂载start.bat所在的目录作为C盘,挂载游戏镜像作为D盘。
  4. 调用town.bat,启动光盘内的免安装版游戏。

新PC - DOSBox - Dangerous Dave

Dangerous DaveJohn Romero 1988年编写的一款演示游戏,所以我为什么要付费 所以我仿照上面的例子自己写一个DOSBox配置文件好了。
目录结构:

|   ddave.bat
|   town.bat
|
+---dosbox                          <- DOSBox主程序、依赖库
|       dosbox-generic.conf
|       dosbox.exe
|       libpng13.dll
|       SDL.dll
|       SDL_net.dll
|       zlib1.dll
|
+---gameedge                        <- Dangerous Dave和另一个游戏的合集
|   |   CATACOMB.TXT
|   |   CTLPANEL.SHL
|   |   DAVE.TXT
|   |   dosbox.conf
|   |   EDITOR.TXT
|   |   GO.BAT
|   |   HELP.TXT
|   |   INFO.TXT
|   |   REPORT.TXT
|   |   RESOURCE.SHL
|   |   SHELL.EXE
|   |   STATUS.ME
|   |
|   +---CATACOMB
|   |       CATACOMB.EXE
|   |       DEMO.CAT
|   |       LEVEL1.CAT
|   |       LEVEL10.CAT
|   |       LEVEL2.CAT
|   |       LEVEL3.CAT
|   |       LEVEL4.CAT
|   |       LEVEL5.CAT
|   |       LEVEL6.CAT
|   |       LEVEL7.CAT
|   |       LEVEL8.CAT
|   |       LEVEL9.CAT
|   |       SOUNDS.CAT
|   |
|   \---DDAVE
|           DAVE.EXE
|           DSCORES.DAV
|           EGADAVE.DAV
|
\---twnoname                        <- 上一个游戏的“硬盘”及光盘镜像
    |   dosbox.conf
    |   TOWN.BAT
    |
    \---cd
            Town with no name.ccd
            Town with no name.img
            Town with no name.sub
            twnoname.bin
            twnoname.cue

ddave.bat文件:

@echo off 
.\dosbox\dosbox.exe -conf .\gameedge\dosbox.conf -noconsole -exit -fullscreen 
@del stdout.txt 
@del stderr.txt 
:end 

gameedge\dosbox.conf文件:

[autoexec]
mount c .
c:
cd gameedge
call go.bat
exit

不用再解释了吧。

新PC - DOSBox - Windows 98

可以参考:DosBox装Windows98
具体思路是把硬盘和必要的软盘启动盘都做成镜像,而不使用DOSBox原有的挂载文件夹的方式,以满足操作系统修改MBR/PBR等信息的需求。但是用镜像的话就也和Bochs一样,硬盘大小受CHS寻址方式的限制。

同时装Win95也有人踩过坑,有时间再慢慢啃:
A Complete Guide to Install Windows 95 on DOSBox
Installing Windows 95 in DOSBox

相关文章

网友评论

      本文标题:用DOSBox运行老游戏

      本文链接:https://www.haomeiwen.com/subject/rwyboqtx.html