星虎论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 10662|回复: 7

[2代] 解决大航海时代2单挑死机的办法

[复制链接]
  • TA的每日心情
    开心
    2024-3-23 16:40
  • 签到天数: 30 天

    [LV.5]常住居民I

    发表于 2008-11-15 17:59:13 | 显示全部楼层 |阅读模式
    WINXP中选中Koukai2.com文件,右键里面有个属性有个内存,设置XMS内存4096,EMS内存4096,几乎所有的dos游戏都可以玩,只是全屏幕,没有声音,不能贴图。完全模拟dos用dosbox比较好,但偶尔会发生内存管理错误,出现奇怪的游戏现象。



    以下是详细的另外一种办法



    请确定你有590K以上的基本内存(运行mem)

    Memory Type Total Used Free
    ---------------- -------- -------- --------
    Conventional 640K 48K 592K

    (这里的592K就是您游戏需要的内存)

    如果你使用的是Windows9x操作系统,那么可以删除根目录下的config.sys和autoexec.bat文件(最好先备份),重新启动就可以在DOS模式下运行了。如果你需要在纯DOS下运行,请按下面的方法修改:

    -------在config.sys里加入--------------------
    dos=high,umb
    files=40
    buffers=15,0
    device=盘符:\路径\himem.sys
    device=盘符:\路径\emm386.exe ram d=96 <-- 如果不能运行,请改为noems
    devicehigh=......其他驱动 <--将其他驱动挂入高端
    ......

    具体路径视你计算机的情况而定,一般在DOS,Windows或Windows\Syetem里

    -------在autoexec.bat里加入------------------
    在所有需要载入内存的驱动前面加入"lh"将其挂入高端
    有必要的话,加入鼠标启动
    ---------------------------------------------

    这样处理以后,一般可以得到615K以上的基本内存。

    开机以后在Starting Windows95(98)……的时候按f4可以进入以前的DOS版本,也可以按f8进入“step by step”模式,逐步运行你的开机文件,以达到高内存效果。

    如果上面这篇文章还是不能给您答案,那么请进入进阶篇: 内存配置不可思议之旅

    早期DOS游戏顺利运行的内存配置不可思议之旅(简装版)
    (仅针对不需要DOS4GW的GAME)

    这趟旅行,不仅仅是让大家如何玩出游戏,而是希望大家看过后,能依靠自己解决类似的问题,那我就满足了。

    准备篇

    既然要说详细些,首先要有点这方面的知识。放心,我会尽量讲通俗些的。有关内存分配体制的提出……略过

    先来看看三个名词,基本内存,HMA上位内存,和UMB高端内存。

    由于早期DOS时代并未料想到现在的64M,128M的情况漫天乱舞(都是这样的)。所以基本的配置都是针对1024K(天哪)进行的(提出EMS和 XMS协议那是后来的事了)。这1024里,包含了640K的基本内存。(运行程序自然要把他调入内存,这是重所周知的)而早期DOS游戏主程序能利用的,也只有这640K,而且还不能独享,要和DOS内核,各类驱动,等等等强地盘。如果这样算下来,根本拿不到多少。于是,聪明的科学家(呵呵),在 1024K除去基本内存和BIOS外的空间,开辟了HMA和UMB,虽然也很少,但是,却可以把相当一部分的驱动和驻留程序放到其中,从而节省基本内存。好了现在我们的目的明确也,——保护牙齿,没有蛀牙。哦,不是不是。是尽量多的开辟UMB(HMA不太好变动),将挂载程序从基本内存移出,以获得最大限度的基本内存,最终——顺利运行游戏。好了,既然明确了目标,我们可以开始这次旅程了。

    一、DOS6.22篇

    谈到DOS6.22风间心中一股钦佩之情由然而生(旁人:呕……)。作为独立的MSDOS的最后杰作,这款操作系统无论在性能还是游戏兼容性上都达到了史无前例的高峰(全是废话)。要了解内存配置,先要知道语句的用法,那可是一天一夜也不能讲“完整”(夸张了),况且我还要更新主页玩鬼畜王呢。于是,就用一个config.sys的范例(是一部分),来配套解释吧(偷懒)

    device=盘符:\路径\himem.sys /tff

    (关键中的关键,是内存配置的第一步,有他开辟了HMA后,后面的老兄在能发挥作用)*参数/tff的作用……纯粹是让启动快点啦,有没有一样的。

    device=盘符:\路径\emm386.exe ram i=b000-b7ff d=64

    (关键,用他,我们虚拟了EMS,开辟了UMB……)

    名词解释:EMS扩充内存。在2-4兆内存的时代,科学家们(又是这样,受不了了)提出了EMS扩充内存协议(原理不谈),用XMS扩展内存(就是实际内存)模拟EMS扩充内存,让DOS游戏(科学家们想的当然不是游戏啦,不过到了我们手里,管她……)顺利运行。也就是说,大部分的DOS游戏(HGAME)有是需要EMS内存的。《*ram 参数模拟EMS内存(真不知道怎么有人会推荐用NOEMS参数,那可是ram情况下不能运行的后备选择)。如果出现死机等情况,可换用NOEMS参数,这样就只有XMS扩展内存了。再不行就把EMM386去掉。

    i=b000-b7ff参数将这快地址的内存强制转为UMB(大概20多K的),这段内存区域是BIOS内归单色显示器用的,可是现在还有人用单显吗?

    D=64纯粹因为有些程序需要64K的DMA缓冲,有人说这些缓冲有加速效果,纯属无稽之谈。

    注意,不要印銮胂⑴?鯥GHSCAN或者M9之类的参数,强行扫描虽然可以多出7KUMB,但会造成不稳定,出了问题别怪我

    dos=high,umb

    high使DOS的一些部分(后述)能加入HMA。UMB使DOS程序可以利用UMB(不加就挂不进去了)

    files=15

    可同时开辟最大文件数,DOS将把他们放入HMA,如果过大,HMA塞满了,那么……基本内存不用我说了吧。如果你不用WIN32这些足够了。另外那个讨厌的无用的挨千刀的KV300也要files=40

    buffers=20

    同上,只要不超过42,就在HMA里的。有人说,有了SMARTDRV就不用开BUFFER了,可以尽量小点以节省空间。不过据风间多年实践,有些游戏不认smartdrv的,挂了也没效果。还是buffers起些作用)

    fcbs=1,0(早期的files,现在没用了,不妨设最小值)
    stacks=0,0

    堆栈。设为0可节省1K基本内存(因为HMA放不下了,寸土寸金啊)如果有问题再去掉。

    lastdrive=最后盘+1

    也是先吃HMA的东西,比如我的最高盘是G,我就用lastdrive=h

    从files开始到这里的东西都将被放在一个叫msdos.sys(算是DOS内核了)的东西当中,你用mem/c/p命令可以看到。这个文件最小也要占用9K的基本内存(理想情况),如果优化得法,可只用10K。

    devicehigh=盘符:\路径\其他驱动

    有了EMM386我们就可以把这些动东都往UMB里塞了。当然,UMB要足够。

    好了,autoexec.bat我不说了。因为这里的内容在启动后在敲也是可以的。无非就是mouse smartdrv capture fpe……(啊,溢出了,我的基本内存!!!!!)

    2。DOS7篇

    这也就是WIN9X内置的DOS了。虽然在兼容上有些问题。但是,他的内存配置方面却是更上一个台阶。相同的我不重复了,让我们看看config里出现的新语句

    config.sys
    dos=high,umb,auto

    这个AUTO可是不简单,它的作用是……把什么buffers,files的,都放进UMB,那么就不止HMA可用了,连UMB也……这样一来,system(就是原来的MSDOS。SYS,dos7把msdos.sys变成了参数文件)可以占最少的9K内存。哈哈……

    还有刚才提到的msdos.sys你有没有发现自己的基本内存,即使是用DOS7删掉了config.sys&autoexecbat还是不够?用mem/c/p看看,内存里有什么?好家伙,一个drvspace(dblspace),用掉100多K。这是干什么用的?我明确告诉你,这是当你压缩磁盘后才会需要调用的文件(那我怎么会有?不要问我,问老比去)完全解决他有两部。1、去掉msdos.sys的只读,系统,隐含属性,找到 option栏,在中间插入两行dblspace=0 drvspace=0》然后恢复他的属性2、将根目录的dblspace.bin和 drvspace.bin删掉(注意如果你压缩了磁盘,千万不要做,否则后果自负。)

    3。进阶篇(略谈)

    本篇只针对对现有状况不满足,优化上了瘾,或者有X个程序要挂载的人。memmaker就是这个程序了。当然是DOS6。22特有的。(风间还是推荐用DOS6.22,虽然7可以跟方便的得到高内存,但是UMB并不增加,而且兼容性不好,有些在6.22正常的游戏到了7下面人物就”健步如飞“了)运行他,中间回自动重启几次,做几个选择。我也不多说了。其实他做的也无非是加个dos=umb的什么。那为什么要用呢?我们用他,不是来优化,而是—— 内存整理,对,就是整理。打比方说。一个柜子,你乱塞(风间习惯)只能放进90件衣服,如果一件件叠好,就能放100件。memmaker做的,正是叠衣服的工作。(其他的我们都做好了)他会把包括config.sys和autoexec.bat里的驻留程序的位置做出合适的排列。

    4。终极特技

    呵呵,你们就将进入这宇宙中最神秘的领域,最……最……最……(铛!萧11,最你个头啊)

    关于这篇,我就要说怎么利用DOS之外的软件来偷到更多的基本内存大家一定猜我要说的qemm吧。错!虽然这小子能提供高达639K的基本内存,不过为了兼容性,我还是放弃了他。我要说的,是代替command的命令解释器NDOS命令解释器,也就是解释内部命令用的。DOS下默认的就是 command。比如你打了dir,没有这个可执行文件,却能运行。因为他是内部命令。而内部命令,就来源于命令解释器。有人看的烦了吧。好吧,我跳过一段,直接推出今天的明星norton的NDOS。

    NORTON不是那家生产系统工具,杀毒软件的著名公司吗?是的。在DOS时代,他的那套系统工具包NORTON就不知拯救了多少黎民。其实,你有没有发现,在这套工具中,自带了一个命令解释7,NDOS在config.sys里加入(shell=盘符:\路径\ndos.com)就OK。不过 DOS7不行,这也是我不推荐他的原因。NDOS除了有COMMAND所有的特点,还有很多好处

    a 占基本内存少。我们的command大虾一次性要消耗3K的基本内存。哇。而NDOS呢?4K?还要多。且慢,如果你打开NODS。INI,把什么UMB的东西都改成ON,那么……mem/c/p呵呵400多字节,1K都不到。有了这个,再加上刚才的优化,完全可以在不丧失兼容性的前提下把空闲的基本内存提高到625K甚至626K。 b 操作简便,你用DOSKEY吗?傻啊,占内存的。但是方便啊。试试NDOS,按上,啊!刚才的命令出来了?对。NDOS内置一个DOSKEY。用用看list a.txt。呵呵,比TYPE方便多了,象编辑界面一样。按tab。哈,切换目录,这样什么怪名字也可以进去了。再试试restart(嘿嘿,发出冷笑)。啊!!!!重启……我杀了你……

    c 总之,还有很多

    5、番外篇

    针对某些朋友不能进入DOS7和6.22做答

    1、dos7

    按前述(仔细找)打开msdos.sys观看option小节。看有无bootkey=1 没就加上,是0就改过来,1?很好啊。

    如果你一直要那个菜单,就加入bootmenu=1,还有bootdelay不能=0,否则,除非你一直按着。顺便把bootmulti=1也加上。

    这是有DOS6的关键。好了,保存,不要忘了把属性加上。

    2、dos6.22

    前面改了bootmulti了?好。找到dos6.22的command.com msdos.sys io.sys config.sys autoexec.bat将他们扩展名全部改成DOS。放到根目录下,下次启动按F4就可以了。

    注意如果你用的是win95OSR2或是我win98se不能这样,否则下次会不能启动。因为似乎有个bug,改了windows启动文件的名字以后不会改回来。不过解决也简单,只要用95或98第一版的启动文件system transfer一下就可以了。

    该用户从未签到

    发表于 2009-2-2 13:23:23 | 显示全部楼层
    这些方法其实都太复杂了,用DOSBox可以轻易就解决了,而且同时还解决声音问题。
  • TA的每日心情
    开心
    2024-3-23 16:40
  • 签到天数: 30 天

    [LV.5]常住居民I

     楼主| 发表于 2009-2-3 16:07:38 | 显示全部楼层
    有人不喜欢用DOSBox

    该用户从未签到

    发表于 2009-2-4 14:36:45 | 显示全部楼层
    不喜欢用往往是因为不了解,其实用DOSBox好简单的。

    该用户从未签到

    发表于 2009-2-5 00:35:22 | 显示全部楼层
    DOSBox有时速度有问题

    该用户从未签到

    发表于 2009-2-5 07:50:05 | 显示全部楼层
    什么样的速度问题楼上详细说下?这方面我没有特别感受到。

    该用户从未签到

    发表于 2009-2-5 23:17:01 | 显示全部楼层
    我不是说用DOSBox玩大航海2速度有问题,而是说玩其他一些游戏时,有时快有时慢啊
  • TA的每日心情
    开心
    2024-3-23 16:40
  • 签到天数: 30 天

    [LV.5]常住居民I

     楼主| 发表于 2009-2-5 23:40:40 | 显示全部楼层
    速度的设定
    先看[cpu]的cycles,这个数字决定dosbox每毫秒执行的指令数,依你的电脑配置来设,可以在游戏执行中按ctrl+F11和Ctrl+ F12来微调。我是用k7 1600+,这个数字设为7000,太大太小都会变慢,慢慢地试你最适合的数字。 core预设是normal,通常也不须更改;full是兼容性更佳,但是较慢;dynamic是速度最快的,配合它你可以将上面的cycles调高至三倍左右,但是兼容性不佳,若有游戏执行速度不佳,可以考虑使用dynamic,并将cycles调高,但游戏可能会crash。

    找到合适的的值后,你可以将它写到配置文件中[cpu]部分的cycles项,今后DosBox会把它作为默认值。




    这个贴子的2楼有DOSBOX的使用说明
    http://www.bjsyouth.cn/viewthread.php?tid=8230&extra=page%3D6
    *滑块验证:
    您需要登录后才可以回帖 登录 | 马上注册

    本版积分规则



    qq群及公众号二维码

    QQ|小黑屋|手机版|Archiver|星虎 ( 黔ICP备05004538号 )

    GMT+8, 2024-4-20 14:53

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表