`

DOS游戏通用说明

    博客分类:
  • GAME
阅读更多
DOS游戏通用说明
作者:不详  来源于:三国游戏网  发布时间:2005-10-12 10:41:46

鉴于dos时代已经过去,新一代的游戏玩家很少接触DOS系统。很多看来很“简单”的问题,他们也是束手无策。这里简单介绍一下dos游戏的玩法。

适合玩dos游戏的操作系统

  • dos5.0、dos6.0 (比较稳定的dos旧版,默认目录c:\dos)
  • dos6.22 (纯dos的最终版本,默认目录c:\dos)
  • dos7.0 (win95,win98附带的dos,默认目录c:\windows\command)

另外winxp,winnt和win2000都有自己的Dos command prompt,但是不能作为启动系统,如果你的机器只有这几个系统,那很遗憾,你玩不了dos游戏,除非安装模拟平台,请参看《winxp下dos游戏玩法》。

启动和加载

旧版dos(dos6.22以前的版本)启动后会加载msdos.sys、io.sys和command.com系统文件,缺一不可。然后加载config.sys和autoexec.bat中的管理程序,这2个文件如果缺省,那你几乎寸步难行,只能操作最基本的dos命令。

新版dos(win95/win98附带的dos7.0)启动以后加载io.sys和command.com系统文件,msdos.sys只是作为一个开机配置文件。config.sys和autoexec.bat基本是个空文件,因为系统默认加载了emm386,himem,dos,files等重要配置。

内存常识

内存有基本内存(base memory,640K),高端内存(upper memory,384K),扩充内存(expand memory,用户的物理内存总数)等类型。

一般dos游戏启动都是放在基本内存(base memory),因为只有640K,而其他常驻程序都是放在这里,所以通常提示不够内存都是因为使用者没有加载高端内存,调离其他程序的存放位置,它们占用了游戏程序空间,导致游戏出现"not enough memory"的提示。

高端内存(upper memory)一般游戏程序用不上,那么把一些常驻的程序,例如mouse,mscdex,doskey,gb等放到里面,就可以腾出很多空间给基本内存。

扩展内存(expand memory)不用于游戏的启动,而是处理交换游戏中的大量数据,和游戏启动无关,有时候游戏半途退出,可能就是扩充内存不够。

dos游戏最致命的瓶颈就是内存。它不同windows系统那样智能管理内存,所有设置都要自己慢慢调试,而且早期的游戏设计只能用高端内存和基本内存,就算你的扩充内存有128M也是没用的--程序设计本身就不用它们。

config.sys文件的编写

这开机系统文件可以编辑,最常用就是用dos自带的edit命令。如果你的path(该命令后面再解释)没有指错地方,那个你在c:\下面运行 “edit config.sys”就可以编辑这个文件,同理可以编辑autoexec.bat。

config.sys文件管理dos系统的内存,常用的加载内存管理语句:

  • DEVICE(加载管理程序)
  • DEVICEhigh(加载到高端内存)
  • dos(系统文件的位置)
  • files(打开文件数量)
  • buffers(缓冲区数量)
  • lastdrive(最后盘符)
  • shell(解释命令的位置)
  • rem (注释)

例子解释:

1, DEVICE=C:\dos\HIMEM.SYS /testmem:off

这个语句非常重要,加载高端内存管理,使dos能使用高端内存,如果你的机器慢,可以加/testmem:off跳过内存检测

2,DEVICEhigh=C:\dos\EMM386.EXE ram

在高端内存中加载emm386,emm386.exe是用来管理扩充内存的,这个语句也很重要。常用的参数为 ram 和 noems,解释为使用扩充内存和使用扩展内存。noems 比 ram 能释放更多的基本内存 ,但是这个noems语句很多程序不使用,所以使用面很窄。

3,dos=high,umb

这个语句很重要,把msdos.sys、io.sys和command.com系统文件放到高端内存中。

4,files=30

同时打开的最大文件数量,一些游戏需要同时打开很多个数据流,如果这个语句没有设定,其默认值是10,游戏可能会出错。

5,buffers=20,8

设定缓冲区数量以及高速缓冲区数量,用于加速文件读取速度。

6,lastdrive=z

指定最后一个硬盘盘符为z,就是说,你可以使用到z:这些盘符,即使你没有这么多的分区,你可以通过subst,fcd,ramdrive,img等手段虚拟一些硬盘分区出来。如果不加载这个语句,上述命令就不会起效。

7,shell=c:\dos\command.com

这个命令默认存在,一般不用加载。作用为指定dos的解释命令,一般默认就是c:\dos\command.com,如果你需要日文dos或者使用其他的解释命令,例如4dos、ndos,就需要指定一个shell。

8,rem this is a sample

rem为注释语句,后面无论你写什么东西dos都不理睬,常用于屏蔽一些暂时不用的语句,例如你暂时不需要加载shell=c:\dos\command.com, 只需 rem shell=c:\dos\command.com ,dos就会跳过该行不予执行。同理运用于autoexec.bat

总结dos游戏通常需要的config配置:

  • DEVICE=C:\dos\HIMEM.SYS
  • DEVICE=C:\dos\EMM386.EXE ram (或者DEVICE=C:\dos\EMM386.EXE noems)
  • dos=high,umb
  • files=30

如果还需要光驱来玩,可能还需要加载光驱启动程序,例如 DEVICE=c:\cdrom\VIDE-CDD.SYS /D:MSCD001 ,这个通常由安装程序完成。如果还需要声卡来玩,可能还需要加载声卡启动程序,例如 DEVICE=c:\sound\sbcd.SYS,这个通常由安装程序完成。

注意:本文提到的c:\dos是默认的dos目录,如果你的是win98的dos7.0,放在d盘,那么himem.sys和emm386.exe在d:\windows里面。而其他的dos文件在d:\windows\command里面。如果找不到dos放在哪里,在根目录下,例如c:\,运行“dir himem.sys/s”命令来找。

autoexec.bat的编写

autoexec.bat管理dos系统的常驻程序,里面的语句其实可以一步一步手动运行,只不过每次开机都要一定运行的程序,可以通过这个文件来实现自动运行。常用的语句:

  • PATH (指定路径)
  • SET (设定变量)
  • prompt (命令提示)
  • lh (加载程序到高端内存)
  • MSCDEX (cd驱动程序)
  • smartdrv (硬盘加速程序)
  • rem (注释)

例子解释:

1,PATH=c:\WINDOWS;C:\WINDOWS\COMMAND;d:\DOS;d:\tools

指定command的运行范围,方便调用程序,假设你处于e:\game目录,那么你也可以直接运行处于c:\dos里面的format语句。如果你不指定path,你必须在c:\dos目录里面才可以运行这个命令。

2,prompt $p$g

命令行提示你处在的位置,例如c:\dos,e:\fpe,f:\game\san2等,如果不加载这个命令,那么无论你在什么目录,都是盘符,如c:\,e:\,f:\。这个prompt还有很多提示,详细自己研究。

3,lh C:\dos\mouse.com

在高端内存加载鼠标驱动程序mouse.com,很多dos游戏需要鼠标支持,如果你不加载鼠标驱动语句,那么无法使用鼠标。

4,doskey

加载后可以记录你的键盘历史命令,可以不必重复输入使用过的繁琐命令,用上下箭头来选择历史记录。

5,set命令,设定环境变量,有很多种语句,例如

  • set temp=f:\temp

指定DOS的临时目录在f:\temp,前提是你有f盘,而且有temp这个目录存在,dos默认的temp目录在c:\dos,但是我建议使用一个空的目录。因为dos使用时间一长,就会有很多垃圾,和windows系统一样,都会放在temp目录里面,只要里面有文件,都是垃圾,可以删除。而默认的dos目录里面有很多系统文件,不熟悉的人可能分辨不出哪个是垃圾,哪个是系统文件。

  • set tmp=f:\temp

指定windows临时目录在f:\temp,其他说明同上。

  • SET BLASTER=A240 I10 D3 H7 P330 T6

设定声卡的变量,例如音量、通道、端口等,由安装程序设定。

  • set path=c:\dos

简化为 path= ,参考上面

  • set dircmd=$1/og/p

设定dir的变量

6, lh C:\WINDOWS\COMMAND\MSCDEX.EXE /s /D:MSCD001 /V /m:20

在高端内存加载cd驱动程序,这个通常由安装程序完成。

7, c:\dos\smartdrv c+ d+ e+

启动硬盘/光盘加速程序,使读盘存盘加速,c+ d+ e+等为指定c: d: e:盘提供高速缓存。

总结dos游戏通常需要的autoexec配置:

  • PATH C:\WINDOWS;C:\WINDOWS\COMMAND;c:\DOS;
  • prompt $p$g
  • lh C:\WINDOWS\COMMAND\doskey
  • lh c:\windows\command\mouse.com
  • set变量看具体情况而定

如果还需要声卡来玩,可能还需要加载声卡启动程序,例如 C:\PROGRA~1\CREATIVE\SBLIVE\DOSDRV\SBEINIT.COM,这个通常由安装程序完成。

注意:本文提到的c:\windows\command是dos7.0默认的dos目录,如果你的是dos6.0,放在d盘,那么dos文件在d:\dos里面。mouse.com文件不是dos默认配置的文件,你需要通过其他渠道获得。

通过这2个文件的配置,每次启动完毕你可以通过mem命令来检查你的基本内存是否够大,用法 mem/c/p,查看base memory一栏,一般来说,有550K就足够运行大多数的dos游戏,如果不够,就释放一些次要的常驻程序,例如doskey等,重新启动,慢慢调试...(dos就是这么烦)

其他游戏问题

有些程序需要特殊的是显示卡程序支持,例如dos4gw,ega,svga等等,有些需要大量的显存才能玩起来。现在的显卡基本上不存在显存不够问题了,但是有可能先进的显卡淘汰了旧的显示模式,而这些模式刚刚好被某个游戏用上了,除非你换一个旧的显卡,要么就不玩这个游戏。例如三国志5,很多先进的pc都玩不了这个游戏,原因就是显卡模式和声卡模式都太旧了,新显卡实现不了。所以包括本人在内也无法重温。还有三国演义1代,有些显卡玩起来会周期性的黑屏,那也是冲突问题。

如果该程序需要声卡支持,那么你需要安装dos的声卡驱动程序;一些游戏附带通用声卡安装程序,一般来说你选择sound blaster系列的就可以了。某些主板合成的声卡它只提供win的驱动,而没有dos驱动,你可能玩游戏的时候无法有音乐。

如果游戏需要用到光驱,那么你要安装光驱驱动程序,如果找不到适合的光驱驱动程序,你可以用win98附带的万能光驱驱动程序,在制作安装盘的时候就有。 如果是光盘版的游戏,你可以用fakecd(cdx)来虚拟一个光盘,例如:先把游戏解压到一个目录中,如d:\sanguo,之后运行 cdx d:\sanguo /L:z(指定z盘虚拟为sanguo的光盘)即可。 详细说明请看cdx/?里面的说明

如果游戏需要鼠标支持,你需要安装mouse驱动,一般常用的有mouse.com,qmouse.com,gmouse,mmouse等。

如果游戏速度过快,可以用fpe等游戏变速软件来调节。旧游戏设计时候的电脑时钟频率远远慢于现在的P4,很多旧dos游戏都是快得惊人,如果不减速,那很多东西都玩不了,你根本不是电脑的对手。

相关的dos游戏软件

gb5 ,gamebuster 5.0 ,游戏克星,早期的游戏修改软件,有模糊查询功能,可以存游戏进度,可以调整游戏速度。缺点就是不支持例如koei的图形dos4gw界面系统。按2次TAB键激活界面,操作起来不方便,输入需要转换成16进制。

fpe,整人专家,比gb优秀,支持dos4gw界面,支持模糊查询(这个功能在win版就取消了,可惜),不可以存进度,按*激活界面,支持10进制输入。速度比gb快很多,推荐使用。

getcap, 游戏抓图,按shift抓图,存盘成gif格式,比较好用。缺点就是不太通用,一些特殊界面系统的游戏无法抓图。

diskedit, Norton Utilities的文件修改工具,可以修改游戏存档,具体用法不详述。

补充:

一,关于游戏克星GB,我觉得它也有比FPE好的地方,主要有两个功能是FPE没有的:

1,它可以保存当前内存的映像,这个功能主要可以用于在一些没有储存进度功能的游戏中储存进度,另外这个功能还可以用来保存一些开始 时要输入密码表等的游戏,这样不用每次去翻密码表。这个功能甚至不局限于游戏,以前一些DOS下的一些要读加密盘的应用软件,可以用 GB在读完加密盘后把内存映像保存,这样以后就不用读盘了,但它的局限是DOS启动的配置要一样,不一样的话就不成功。

2,GB有跟踪功能,在找到了血或生命值在内存的位置之后,GB可以跟踪监视这个地址,一旦程序修改这个地址,GB会自动弹出菜单并把当 前修改被监视内存地址的那几条指令的机器码用红色显示。然后可以自动取消这几条指令,这样你的游戏就是无敌版的了。另外如果你把红 色显示的几条机器码指令(最好是连旁边的几个机器码也记下来)记录下来,然后在DOS下用PCTOOLS之类的工具找到并修改游戏程序中该指 令,还可以制作出可以脱离GB自己运行的无敌版游戏,这个功能也很实用。

二,关于游戏工具,还有一个很好的工具不应该错过,就是GAMETOOL,其实说它是游戏工具真的是有点大材小用了,它在DOS时代几乎可 以和SOFTICE相媲美,它有功能强大的内置DEBUGER,用来跟踪和破解应用软件都绰绰有余,游戏就更不在话下了。就算这样, GAMETOOL的修改游戏功能也很强大和方便,它既可以当成FPE来使用而且方便性不比FPE差,也可以当成SOFTICE之类的高级调试工具来使 用,是一个既适合又适合入门者的工具。

分享到:
评论

相关推荐

    dos98.img工具

    这种工具通常用来创建、编辑或加载DOS 98系统到虚拟机或者旧式硬件上,以便于软件测试、系统恢复或怀旧游戏的运行。.img文件是一种通用的镜像格式,可以包含完整的硬盘、软盘或光盘内容。 【标签】"dos98.img"直接...

    dos用midi播放器

    手机版DOSBox的出现是为了在移动设备上体验复古的DOS游戏和应用,但由于技术限制,播放效果可能不尽如人意,因此说“十分难听,意义不大”,这可能是指在模拟环境下,音质和实时性难以达到理想的水平,更适合用于...

    一个for DOS的五子棋游戏含C++源

    此外,游戏还可能包括一个简单的编译脚本或说明文档,指示用户如何编译和运行这个程序。在DOS环境下,编译可能通过命令行工具完成,如使用Turbo C++或Borland C++等编译器。 综上所述,这个for DOS的五子棋游戏不仅...

    中文dos--ucdos

    UCDOS,全称“通用汉字操作系统”,是中国早期个人计算机上广泛使用的中文 DOS 环境,它在标准的 MS-DOS 基础上增加了对汉字的支持,使得用户能够用中文进行输入和显示,极大地便利了中文用户的操作。UCDOS 是一套...

    Qb71带游戏

    对于想要学习QBasic编程或者对经典DOS游戏感兴趣的朋友们来说,这是一个宝贵的资源,可以帮助他们在编程的旅程中迈出坚实的一步。通过实践这些代码,不仅可以提升编程技能,还能体验到编程带来的乐趣。同时,这种...

    游戏信息管理系统

    这个系统不依赖MFC(Microsoft Foundation Classes)库,也不在DOS环境下运行,而是专注于提供一个现代、直观的用户交互体验。 C++是一种通用的、面向对象的编程语言,具有高效、灵活和强大的特性。它允许程序员...

    触摸屏界面通用设计原则.pdf

    文章开篇第一章首先说明了一下研究背景、目的、意义及方法。   接着在第二章介绍了触摸屏和界面设计的基本概念,包括触摸屏的起源、发展、技术、使用范围以及有关界面设计的方方面面。   然后在...

    游戏 贪吃蛇 C源码

    - `dos.h`:包含了对DOS操作系统的调用接口。 - `stdio.h`:用于基本输入输出功能。 ### 宏定义 - `closegr`:定义了一个宏来关闭图形模式。 - `NULL`:定义空指针常量。 - `LEFT`, `RIGHT`, `DOWN`, `UP`, `ESC`:...

    扑克牌程序的发牌游戏vc++2008

    3. **命令行界面**:程序在DOS窗口运行,说明它是基于文本的,没有图形用户界面,用户通过输入命令来与程序交互。 4. **随机数生成**:程序使用C++的随机数库来实现牌的随机分配,这可能包括了标准库中的`<cstdlib>...

    C语言制作的双人俄罗斯方块

    本项目就是一个典型的例子——双人俄罗斯方块,它利用C语言在DOS环境下实现,为玩家提供了单人和双人两种游戏模式。 首先,我们来了解一下C语言。C语言是一种结构化编程语言,它的语法简洁明了,性能高效,可以直接...

    bull.rar_数学计算_DOS_

    标题中的“bull.rar_数学计算_DOS”表明这是一个与数学计算相关的DOS程序,可能是一个基于DOS操作系统的小游戏,名为“公牛和母牛”(Bulls and Cows),通常是一个数字猜谜游戏。玩家需要猜测一个由计算机生成的四...

    win all ucdos

    UCDOS是“通用磁盘操作系统”(Universal Disk Operating System)的缩写,是一款功能丰富的DOS管理软件,尤其适合那些需要在Windows环境下处理DOS兼容任务的用户。 UCDOS7是这个软件的特定版本,可能包含了更新的...

    重磅炸弹:pc-bios中断,端口说明大全

    5. INT 0x21 - DOS服务:DOS操作系统提供的各种通用服务,如文件管理、打印、字符串处理等。 每一个中断都有其对应的入口地址,这个地址保存在中断向量表(Interrupt Vector Table,IVT)中。中断向量不仅包含中断...

    8086模拟器

    3. **寄存器模拟**:仿真8086的16个通用寄存器(AX, BX, CX, DX, SI, DI, SP, BP)和标志寄存器(FLAGS)。 4. **中断处理**:支持硬件和软件中断,如INT n和INTR指令。 5. **I/O端口模拟**:模拟8086的输入/输出...

    TC2.0 TC2.1

    此外,它还支持图形库BGI(Borland Graphics Interface),方便开发者创建图形用户界面和游戏。 TC2.1是在TC2.0的基础上进行的一些改进和更新。2011.07.20 build的TC2.1可能是对早期版本的一个小修正或功能增强,...

    阳初S3C2410系统板说明

    ### 阳初S3C2410系统板说明 #### 1. 开发板描述 ##### 1.1 硬件特性 **中央处理单元 (MCU):** - **型号:** Samsung S3C2410A - **制造工艺:** 0.18微米 - **架构:** ARM920T - **流水线设计:** 5级 - **内置缓存...

    C++程序设计 二进制文件浏览器 计算器 锤子剪刀布

    - **BC++ 3.1**:适用于早期的DOS环境。 - **VC++ 6.0**:微软提供的集成开发环境。 - **Borland C++ 6.0**:Borland公司的开发工具。 **4.2 源文件结构** - 采用多文件的工程结构。 - 每个类定义在一个单独的`.h`...

    NiceBASIC测试版3

    NB内置有标准BASIC函数库,和图像库(用于编写游戏),还可以使用标准C语言函数库里的函数(调用静态库形式链接),也就是说NB可以在编译时链接所有用标准C语言编写的静态库(LIB)做为函数功能扩展,并且还可以调用...

    某个牛人做WINDOWS系统文件详解。超牛!.txt

    - MID文件是MIDI格式的音乐文件,常用于游戏音效或简单的背景音乐。 17. **CARDDRV.EXE - PCMCIA卡驱动程序安装程序**: - CARDDRV.EXE可能是用于安装或更新PCMCIA卡驱动程序的程序。 18. **CDFS.VXD - CD-ROM...

    delphi模仿网页的验证码演示程序

    - "2ccc.com.nfo" 这个文件名通常是DOS时代的信息文件,用于提供关于软件、游戏等的详细信息,可能包含了关于这个Delphi验证码程序的制作说明或者开发者的相关信息。 - "ÑéÖ¤Âë" 和 "验证码" 是中文的“验证码...

Global site tag (gtag.js) - Google Analytics