|
基础知识 | Linux | 3109 次查看 |
|---|---|---|
如何使用WINE运行<<半条命>> 译者注释 这篇文档介绍了如何在Linux下用WINE来运行<<半条命>>,它的英文原文的地址如下: http://lhl.linuxgames.com/howto/half-life-HOWTO-0.4.1.html 由于译者没有这个游戏,因此也没有测试过,仅仅对原文进行了翻译.由于翻译中可能出现一些错误,所以请各位包涵. daweicheng 以下是原文的翻译: 如何使用WINE运行<<半条命>> David Hammerton crazney@crazney.net Adam Torgerson mayof1937@crosswinds.net Lars Munch c948114@student.dtu.dk 0.4版,2001年6月1日 修正变更 版本 0.4.1 2001-06-03 Revised by: David 更新了我的e-mail地址和修改了一些过时内容. 版本 0.4 2001-06-01 Revised by: Lars 将文档的格式改变为Docbook SGML 4.1.文档描述在http://www.linuxdoc.org/LDP/LDP-Author-Guide/usingldpdsssl.html 版本 0.3 2001-03-19 Revised by: Adam 我主要修正了语法错误, 在OPENGL疑难解答和声音段中增加了一些内容,做了一些整理.在你看到声音疑难解答段,那儿有个小注释可供参考.我对SGML知道不多,只是打开文件,象对HTML一样地去做了.如果有失误请通知我. 这篇HOWTO文档可帮助人们在Linux/Unix使用WINE轻松地设置和运行<<半条命>> ---------------------------------------------------------------------- 内容目录 1 介绍 1.1 引言 1.2 感谢 1.3 许可 1.4 最新版本 2 开始做 2.1 需求 2.2 3D 2.2.1 常规安装 2.2.2 NVidia用户 2.2.3 3DFX用户 2.2.4 G400用户 2.2.5 其他用户 2.3 安装WINE 2.4 安装<<半条命>> 2.5 设置和运行<<半条命>> 3 疑难解答 3.1 声音问题 3.1.1 声音滞后 3.1.2 无声 3.1.3 在CS中没有radio声音 3.2 显示问题 3.2.1 乱字符 3.2.2 图像晃动和/或可以看穿墙壁 3.2.3 不能全屏幕显示? 3.2.4 <<半条命>>很昏暗 3.2.5 开始<<半条命>>时,XFree86挂起 3.2.6 支持的OPENGL模式不被你的显卡所支持 3.3 想要gamespy? 4 结语 ---------------------------------------------------------------------- 1 介绍 1.1 引言 这篇HOWTO文档可帮助人们在Linux/Unix使用WINE轻松地设置和运行<<半条命>>.WINE不是一个 windows模拟器,但是她能够让你在Linux下运行很多windows程序.这篇HOWTO是为OPENGL用户和<<半条命> >设计的,我建议你到以下网址看看:http://eg4l.sourceforge.net/ehl/ ---------------------------------------------------------------------- 1.2 感谢 正如其它的HOWTOs一样,这篇HOWTO由这些协助构建而成:网站,新闻组,在IRC上的人们和我个人的经验.两个主要的协助是David McBrides HOWTO(http://www.doc.ic.ac.uk/~dwm99/Computing/Wine+Half-Life-HOWTO)和 WINE newsgroup(news:comp.emultaors.ms-windows.wine).也有一些主意来自于死亡刺痛的大脑(就是拥有 Emulated Half Life (http://eg4l.sourceforge.net/ehl/)的那个网站) ---------------------------------------------------------------------- 1.3 许可 Linux<<半条命>>的HOWTO:用WINE运行<<半条命>> Copyright (C) 2000, 2001 David Hammerton This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. A copy of the GPL can be found at the GNU Homepage (http://www.gnu.org/copyleft/gpl.html) (天哪,一个基于GPL的许可些了这么多,我就偷懒不翻译了^_* --译者注) ---------------------------------------------------------------------- 1.4 最新版本 最新版本的文档在这儿:http://lhl.linuxgames.com/ ---------------------------------------------------------------------- 2 开始吧 2.1 需求 一台能够达到<<半条命>>配置的x86电脑.事实上,也许用WINE没有windoze(看来作者比较讨厌window$ --译者注)运行得好. 一个Linux系统 XFree86 4.0.1或更高版本(对于DRI用户推荐XFree86 4.0.3) <<半条命>> 在Linux下能够支持OPENGL加速的3D加速卡 在XFree86下你的显卡被设置且运作良好 你不需要windows分区,也无需安装windows ---------------------------------------------------------------------- 2.2 3D 2.2.1 普通安装 这篇HOWTO不包括在Linux下安装和设置你的3D显卡(关于显卡设置的文章你可以在linux站点上找到 --译者注).这篇HOWTO假定你的3D卡可以在linux下运作(你可以运行Quake3,Heretic2, Descent3,或是其它3D加速的模式).这儿有链接: NVidia chipsets (TNT/TNT2/GeForce/GeForce2 etc):http://www.nvidia.com/Products/Drivers.nsf/Linux.html New 3DFX chipsets (Voodoos 3, 4 & 5):http://dri.sourceforge.net/ 3DFX glide drivers for XFree86 3.3.6:http://linux.3dfx.com/ 和 http://glide.sourceforge.net/ Matrox GX00 / ATI Rage 128 / Intel i810/ 3dlabs Oxygen:http://dri.sourceforge.net/ Mesa:http://mesa3d.sourceforge.net/ ---------------------------------------------------------------------- 2.2.2 NVidia用户 NVidia显卡是跑这个游戏的最佳选择.她拥有Linux下最好的支持,因此在多数情况下运行得最稳定最快速.对于NVidia用户,不需要特殊的设置,接着看这篇HOWTO. ---------------------------------------------------------------------- 2.2.3 3DFX用户 直到XFree86 4.0.2,最新的TDFX分支才被加入到DRI CVS里--所以3DFX用户可能需要下载并编译XFree86和DRI-这没有被测试过!最好用新近发行的XFree86 4.0.3, 但是同样没有被测试过.如果哪位测试过并且能运行,通知我.否则,继续用以往的方法:3DFX用户运行CS有些勉强,但也是运行CS也是可能的.我联系过一个有所帮助的人,他可以让他的voodoo3良好地运行CS.你有两个选择:DRI (x4.0.1),但是看起来出奇地慢,所以我不想被这困扰;另外一个是Glide (x3.3.6).但我没有voodoo3,我不能肯定. Lars Munch 的e-mail:c948114@student.dtu.dk 这是我所做的: ---- 首先,将glide和mesa移除. 在CVS上得到最新的3DFX驱动,安装.如果你运行2.4.x内核,这是需要的. 从linux.3dfx.com上得到Glide V3的源代码的rpm包.编译安装,包括库和devel. 从mesa3d.sourceforge.net上得到Mesa 3.4.你需要MesaDemos和MesaLib.用以下命令编译: # ./configure --without-svga --without-ggi --with-glide=/usr --prefix=/usr --sysconfdir=/etc 并且做: # make; make install 现在测试,确保它运作良好(testGlide3x,quake...) 你可以用:export MESA_FX_INFO=1来得到一些有用的数据. 安装WickedGL驱动(miniGL from Wicked3D),它能在640x480下跑到30-70fps. 用--enable-opengl这个选项编译wine代码,这样运行CS: export MESA_GLX_FX=fullscreen # wine -desktop hl.exe -- hl.exe -gl -gldrv Default -w 640 -full -game cstrike -noipx -nojoy -numericping -console -toconsole ---------------------------------------------------------------------- 2.2.4 G400用户 我联系到一个可以用G400完美地跑LHL的用户.有一些步骤需要去做,这看起来比3DFX用户做得简单些.注解:你是不是需要个快些的CPU(大于500MHZ?). 现在XFree86 4.0.2(或4.0.3?)已经出来了,你必须安装它.G400不能运行在普通的4.0.1下,你必须用4.0.2.可能会有些闪烁,在"疑难解答"中有解决的方法. ---------------------------------------------------------------------- 2.2.5 其它DRI用户 我没有听说其他DRI用户(成功运行CS),但请通知我你是如何做到的.试试最新的XFree86 DRI from CVS(这在G400段中有描述,通知我(ATI Rage128 or Radeon,是哪一个?) ---------------------------------------------------------------------- 2.3 安装WINE 首先你要安装WINE.可能对于玩什么Linux会有个大争论.如果你已经有一个WINE安装好了(rpm/binary包或是其它的),卸载它:在基于RPM系统的Linux中,这样做: # rpm -qa |grep WINE # rpm -qa |grep wine # rpm -e "whatever showed up above" 基于Debian Linux系统的,这样做: # apt-get remove wine 如果你以前编译并安装过WINE(源代码方式),进入源代码目录,然后: # make uninstall 1 现在,下载WINE.我极其推荐你更新你的CVS,但是最简单的方法是下载最新的CVS Snapshot Tarball并且通过CVS更新到新的版本.有用的介绍在这儿:http://www.winehq.com/devstart.html(看看通过 FTP得到WINE和转变到CVS).我假定你已经下载了WINE到/usr/src/wine目录下,所以,你的WINE源代码应该在 /usr/src/wine/wine下,如果你想用CVS,这样试试: export CVSROOT=:pserver:cvs@cvs.winehq.com:/home/wine # cvs login *** The password is "cvs" *** # cvs -z3 co wine 请注意这是个大的CVS校验.对于使用modem的用户不推荐这样做.同样没有WINE的二进制文件(已编译好的)被加入了OPENGL的支持.我所知道的是这没有被测试过. 2 为你的linux发行版选择一个OPENGL开发包.例如Debian,开发包是xlibmesa-dev.其它发行版本应该有相类似的包.你同时需要一个叫"glext.h"的文件.让我们看看你是否有(这个文件): # updatedb # locate glext.h 如果你的系统没有glext.h,你需要在编译WINE之前得到它.我做了一个可用的链接:http: //lhl.linuxgames.com/glext.h,下载它,把它放到/usr/X11R6/include/GL/目录下.缺少了这个文件, WINE不会在编译时加入OPENGL支持. 3 现在编译,运行wineinstall(从/usr/src/wine/wine下运行./tools/wineinstall).你可以看见WINE开始自动地编译,配置并安装.这个安装工具会给你创建一个注册.最新的版本将自动地带有OPENGL支持.编译会花些时间. 4 现在该编辑wine.conf文件了.用编辑器打开.wine.conf被放在/usr/local/etc/wine.conf(这取决于它安装在哪儿).将C盘指向/usr/local/wine.你需要将你的CD-ROM(用来安装cs)挂接点设置好.在[x11drv]段中,确保double- buffering设置成ON.在XFree86中useDGA可能作为DGA在on或off状态下工作.有人报告这儿遇到问题,试试将useDGA和 double-buffering设成off.如果wine.conf工作良好,进入home directory,然后: # mkdir ~/.wine/ # cp /usr/local/etc/wine.conf ~/.wine/config WINE现在安装并配置好了 ---------------------------------------------------------------------- 2.4 安装 <<半条命>> 将<<<<半条命>>的光盘放入光驱,然后: # mount /xxx (your cdroms mount point) # cd /xxx # wine SETUP.EXE 跟着安装向导,安装顺利结束.如果最后安装挂起(经常出现),用CTRL+ALT+F1切到1号控制台,用root登陆,敲命令: # killall -9 wine # ps -ax 确保没有WINE客户端/服务端运行.如果有,用kill命令将他们k掉.做同样的patch工作(装HL,CS...)但你必须记得,你只能运行在wine.conf里设置的路径下的.exe文件(因为这是linux环境 --译者注) ---------------------------------------------------------------------- 2.5 运行并设定<<半条命>> 现在到这里了,结果是好是坏呢;-)进入<<半条命>>目录:cd /usr/local/wine/games/Half-Life/(目录取决于你的安装目录)执行: # wine hl.exe -- hl.exe --console (请记住,当你运行游戏时,不要这么做..在gamespy段中有我的脚本,按脚本运行) 你将会看到一个缓慢的菜单出现了,点击Configuration" -> "Video" -> "Video Modes,将它设置为OPENGL.可能在你点击OK时画面会定住,没关系-切到控制台下用killall -9 wine(这个老兄又来了,都用killall命令了,还说没关系@_@ --译者注)确定你的选择(OPENGL驱动)在XF86Config-4中有解释. 配置cdkey,应该没问题.你也可以手动修改config.cfg文件. ---------------------------------------------------------------------- 3 疑难解答 3.1 声音问题 3.1.1 声音有些滞后 我遇到了一些声音延迟的问题(比如在CS里的枪声严重地滞后)要解决这个问题,需要在config.cfg文件中加上适当的修改: _snd_mixahead "0.23" (0.23这个值可以在我的机器上运行得不错,有些人说其它的值也许更适合于他们.千万不要用负值,这样将不能够工作!)这将解决声音滞后的问题.同样,如果你发现你修改了值后<<半条命>>程序崩溃,试试其它的值. 有些人有同样的问题,但是不能解决它.如果你有不同的解决方案,请与我联系. ---------------------------------------------------------------------- 3.1.2 根本就没有声音 一些声卡,由于esd的缘故,可能无声(通常发生在Gnome下)试试这个: # ps aux | grep esd 如果esd -nobeeps或是一些相类似的,这可能是困扰你的问题.右键单击Gnome面板"Panel" -> "Add to Panel" -> "Applet" -> "Multimedia" -> "Sound Monitor"右键单击新程序,选择"Place esound in standby",这样就禁止了esd. ---------------------------------------------------------------------- 3.1.3 在CS中没有radio声音 这是没有在命令行中加上"-game cstrike"而导致的问题-你可以下载最新的hl启动脚本(hl launch script)(为了与XQF一起使用)-链接在"gamespy"段里 ---------------------------------------------------------------------- 3.2 显示问题 3.2.1 乱字符 如果你发现一些字符在游戏中显示不太稳定(比如积分牌)你可能得到一个关于"没找到字体文件"的错误.这些错误信息将在loading游戏时在 console里显示.一个文件可能是"1026_Scoreboard Text.tga".是的,你看见了错误,因此找不着文件.所以你该找出它在寻找什么,先退出游戏,进入你的安装目录 "valve/gfx/vgui/fonts",拷贝可能需要的文件,它们可能是<<半条命>>所需要的.比如,这是我的: 1024_Briefing Text.tga 1024_Scoreboard Text.tga 1026_Briefing Text.tga@ 1026_Scoreboard Text.tga@ 1024_CommandMenuText.tga 1024_Team Info Text.tga 1026_CommandMenu Text.tga@ 1026_Team Info Text.tga@ 1024_Primary Button Text.tga 1024_Title Font.tga 1026_Primary Button Text.tga@ 1026_Title Font.tga@ 另外一个解决方法时不进入全屏幕状态(在图形模式下不作校验),并且在WINE的配置文件中,让窗口管理器描绘windows.这时常会去掉绿色的线条.这看起来很漂亮,因为在玩游戏时,你仍然能看见你的IRC信息.但这种方法可能会使你在全屏幕时调焦不正确. ---------------------------------------------------------------------- 3.2.2 图像晃动得厉害和/或可以隔墙视物 这个问题经常在DRI用户中出现,这个问题容易解决:增加/修改以下的字段(在所有的config.cfg中): gl_ztrick 0 一些用户反映这不能解决问题,我们也正在寻求一个正确的方案. ---------------------------------------------------------------------- 3.2.3 不能全屏幕? 取决于你的设置,在你设置的尺寸下可能会在屏幕中央出现一个方形区域.按下ctrl+alt+keypad_plus直到合适为止.(这和你的XF86Config设置有关,比如分辨率) ---------------------------------------------------------------------- 3.2.4 <<半条命>>很昏暗 个别人有这个问题,很容易解决.用"xgamma"来改变XFree86的亮度.例如,在启动脚本中(在CS加载前)加入: # xgamma -gamma 3.0 3.0这个值是可调节的(为了让你的眼睛适应).在脚本中"运行游戏"之后,务必将gamma值改回,要不然会让你好看. ---------------------------------------------------------------------- 3.2.5 在启动游戏时XFree86死掉 有很多原因可能导致XFree86挂起,但最可能的原因未知的GL驱动惹的祸.如果你使用NVidia驱动,确保你已经将所有的Mesa库文件删掉(寻找libGL.so,只留下NVidia的那一个).同时参见"支持的OPENGL模式不被你的显卡所支持"段. ---------------------------------------------------------------------- 3.2.6 支持的OPENGL模式不被你的显卡所支持 这是WINE连结到正确的OPENGL驱动的一个问题.首先确定OPENGL已经被编译进了WINE(察看./configure manually的输出)多半你要检查WINE是否连接到了错误的.sos和.as上.这个URL很有用:http: //wine.screenweavers.com/cgi-bin/fom?file=139 首先,找到WINE将你的libopengl32.so放在哪里(这是WINE的OPENGL支持库)我的在/usr/local/lib下).然后你需要做: $ ldd libopengl32.so 输出的结果应该和下面这个NVidia卡类似: libx11drv.so => /usr/local/lib/libx11drv.so (0x4004a000) libkernel32.so => /usr/local/lib/libkernel32.so (0x40099000) libwine.so => /usr/local/lib/libwine.so (0x40113000) libncurses.so.5 => /lib/libncurses.so.5 (0x40137000) libm.so.6 => /lib/libm.so.6 (0x40177000) libutil.so.1 => /lib/libutil.so.1 (0x40195000) libdl.so.2 => /lib/libdl.so.2 (0x40198000) libc.so.6 => /lib/libc.so.6 (0x4019b000) libuser32.so => /usr/local/lib/libuser32.so (0x402aa000) libgdi32.so => /usr/local/lib/libgdi32.so (0x4037b000) libwine_tsx11.so => /usr/local/lib/libwine_tsx11.so (0x403e7000) libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x403f4000) libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x403fd000) libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x40413000) libGL.so.1 => /usr/lib/libGL.so.1 (0x40421000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40458000) ibX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40466000) libntdll.so => /usr/local/lib/libntdll.so (0x40540000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000) libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x40637000) libwine_unicode.so => /usr/local/lib/libwine_unicode.so (0x40842000) 最重要的libGL.so.1和libGLcore.so.1这两行.确保它指向合适的NVidia libGL.so.1和libGLcore.so.1.为了检查这个,进入它们的目录(这个例子中是/usr/lib/)并且: # ls -l libGL* 查询像下面这样的结果: lrwxrwxrwx 1 root root 16 Mar 17 09:33 libGL.so -> libGL.so.1.0.769 lrwxrwxrwx 1 root root 16 Mar 17 09:33 libGL.so.1 -> libGL.so.1.0.769 -rwxr-xr-x 1 root root 218388 Mar 17 09:33 libGL.so.1.0.769 lrwxrwxrwx 1 root root 13 Mar 17 02:17 libGLU.so -> libGLU.so.1.3 lrwxrwxrwx 1 root root 13 Mar 17 02:16 libGLU.so.1 -> libGLU.so.1.3 -rw-r--r-- 1 root root 487348 Feb 21 21:13 libGLU.so.1.3 lrwxrwxrwx 1 root root 20 Mar 17 09:33 libGLcore.so.1 -> libGLcore.so.1.0.769 -rwxr-xr-x 1 root root 2075568 Mar 17 09:33 libGLcore.so.1.0.769 -rw-r--r-- 1 root root 26168 Feb 21 21:13 libGLw.a 注意libGL.so.1是libGL.so.1.0.769的符号连结,libGLcore.so.1(0.9-769的NVidia库文件)的情况也类似这样.如果是其它情况,可能就是Mesa导致的XFree86不能工作.去掉Mesa,重新运行ldconfig. 还有一种可能是你的库的路径没有设置正确.如果是这样,编辑/etc/ld.so.conf并加入你的libopengl32.so所在路径) ---------------------------------------------------------------------- 3.3 gamespy 从 http://www.linuxgames.com/xqf/上得到XQF,它支持<<半条命>>.但是启动<< 半条命>>的方式让我们觉得不舒服,所以我写了一个可以良好工作的脚本.http://lhl.linuxgames.com/hl.将它放到你想放的地方,并且设置XQF可以使用它.你要修改我的hl文件内容,以确保路径在你的系统上是正确的.同时需要用chmod a+x hl让这个文件可以执行.你也可以加上我们先前讨论的xgamma的内容. ---------------------------------------------------------------------- 4 结语 所有的设置应该可以工作了.但是,请注意,这只是一个BETA版的HOWTO,如果你的不能运行,请到这儿看看:http: //lhl.linuxgames.com.检查IRC(#lhl on irc.openprojects.net),或者给我发e-mail,我试着帮助你(dhammerton@labyrinth.net.au) (下面的内容我就不翻译了,现在我好困倦 -_- --译者注) Also, if you wanna be real cool, whenever you hop in a server, put the tag [TUX] or (linux) at the start or end of your name so other LHL uses can identify you - I wear it at the start (crazney)! I (may1937) wear (linux) at the end so people don confuse it with a clan as much... "Does linux wanna have a clan war?"... "Uh, no. Its not a clan."... "uh... ok. wtf?"... "I play in linux."... "There isn a linux client?" OR "Whats linux?"... "No. I wish." OR /me gives a bullet to the dome-piece with my phatty boombatty elites ; ) 如何使用WINE运行<<半条命>> 译者注释 这篇文档介绍了如何在 Linux下用WINE来运行<<半条命>>,它的英文原文的地址如下: http://lhl.linuxgames.com/howto/half-life-HOWTO-0.4.1.html 由于译者没有这个游戏,因此也没有测试过,仅仅对原文进行了翻译.由于翻译中可能出现一些错误,所以请各位包涵. daweicheng 以下是原文的翻译: 如何使用WINE运行<<半条命>> David Hammerton crazney@crazney.net Adam Torgerson mayof1937@crosswinds.net Lars Munch c948114@student.dtu.dk 0.4版,2001年6月1日 修正变更 版本 0.4.1 2001-06-03 Revised by: David 更新了我的e-mail地址和修改了一些过时内容. 版本 0.4 2001-06-01 Revised by: Lars 将文档的格式改变为Docbook SGML 4.1.文档描述在http://www.linuxdoc.org/LDP/LDP-Author-Guide/usingldpdsssl.html 版本 0.3 2001-03-19 Revised by: Adam 我主要修正了语法错误, 在OPENGL疑难解答和声音段中增加了一些内容,做了一些整理.在你看到声音疑难解答段,那儿有个小注释可供参考.我对SGML知道不多,只是打开文件,象对HTML一样地去做了.如果有失误请通知我. 这篇HOWTO文档可帮助人们在Linux/Unix使用WINE轻松地设置和运行<<半条命>> ---------------------------------------------------------------------- 内容目录 1 介绍 1.1 引言 1.2 感谢 1.3 许可 1.4 最新版本 2 开始做 2.1 需求 2.2 3D 2.2.1 常规安装 2.2.2 NVidia用户 2.2.3 3DFX用户 2.2.4 G400用户 2.2.5 其他用户 2.3 安装WINE 2.4 安装<<半条命>> 2.5 设置和运行<<半条命>> 3 疑难解答 3.1 声音问题 3.1.1 声音滞后 3.1.2 无声 3.1.3 在CS中没有radio声音 3.2 显示问题 3.2.1 乱字符 3.2.2 图像晃动和/或可以看穿墙壁 3.2.3 不能全屏幕显示? 3.2.4 <<半条命>>很昏暗 3.2.5 开始<<半条命>>时,XFree86挂起 3.2.6 支持的OPENGL模式不被你的显卡所支持 3.3 想要gamespy? 4 结语 ---------------------------------------------------------------------- 1 介绍 1.1 引言 这篇HOWTO文档可帮助人们在Linux/Unix使用WINE轻松地设置和运行<<半条命>>.WINE不是一个 windows模拟器,但是她能够让你在Linux下运行很多windows程序.这篇HOWTO是为OPENGL用户和<<半条命> >设计的,我建议你到以下网址看看:http://eg4l.sourceforge.net/ehl/ ---------------------------------------------------------------------- 1.2 感谢 正如其它的HOWTOs一样,这篇HOWTO由这些协助构建而成:网站,新闻组,在IRC上的人们和我个人的经验.两个主要的协助是David McBrides HOWTO(http://www.doc.ic.ac.uk/~dwm99/Computing/Wine+Half-Life-HOWTO)和 WINE newsgroup(news:comp.emultaors.ms-windows.wine).也有一些主意来自于死亡刺痛的大脑(就是拥有 Emulated Half Life (http://eg4l.sourceforge.net/ehl/)的那个网站) ---------------------------------------------------------------------- 1.3 许可 Linux<<半条命>>的HOWTO:用WINE运行<<半条命>> Copyright (C) 2000, 2001 David Hammerton This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. A copy of the GPL can be found at the GNU Homepage (http://www.gnu.org/copyleft/gpl.html) (天哪,一个基于GPL的许可些了这么多,我就偷懒不翻译了^_* --译者注) ---------------------------------------------------------------------- 1.4 最新版本 最新版本的文档在这儿:http://lhl.linuxgames.com/ ---------------------------------------------------------------------- 2 开始吧 2.1 需求 一台能够达到<<半条命>>配置的x86电脑.事实上,也许用WINE没有windoze(看来作者比较讨厌window$ --译者注)运行得好. 一个Linux系统 XFree86 4.0.1或更高版本(对于DRI用户推荐XFree86 4.0.3) <<半条命>> 在Linux下能够支持OPENGL加速的3D加速卡 在XFree86下你的显卡被设置且运作良好 你不需要windows分区,也无需安装windows ---------------------------------------------------------------------- 2.2 3D 2.2.1 普通安装 这篇HOWTO不包括在Linux下安装和设置你的3D显卡(关于显卡设置的文章你可以在linux站点上找到 --译者注).这篇HOWTO假定你的3D卡可以在linux下运作(你可以运行Quake3,Heretic2, Descent3,或是其它3D加速的模式).这儿有链接: NVidia chipsets (TNT/TNT2/GeForce/GeForce2 etc):http://www.nvidia.com/Products/Drivers.nsf/Linux.html New 3DFX chipsets (Voodoos 3, 4 & 5):http://dri.sourceforge.net/ 3DFX glide drivers for XFree86 3.3.6:http://linux.3dfx.com/ 和 http://glide.sourceforge.net/ Matrox GX00 / ATI Rage 128 / Intel i810/ 3dlabs Oxygen:http://dri.sourceforge.net/ Mesa:http://mesa3d.sourceforge.net/ ---------------------------------------------------------------------- 2.2.2 NVidia用户 NVidia显卡是跑这个游戏的最佳选择.她拥有Linux下最好的支持,因此在多数情况下运行得最稳定最快速.对于NVidia用户,不需要特殊的设置,接着看这篇HOWTO. ---------------------------------------------------------------------- 2.2.3 3DFX用户 直到XFree86 4.0.2,最新的TDFX分支才被加入到DRI CVS里--所以3DFX用户可能需要下载并编译XFree86和DRI-这没有被测试过!最好用新近发行的XFree86 4.0.3, 但是同样没有被测试过.如果哪位测试过并且能运行,通知我.否则,继续用以往的方法:3DFX用户运行CS有些勉强,但也是运行CS也是可能的.我联系过一个有所帮助的人,他可以让他的voodoo3良好地运行CS.你有两个选择:DRI (x4.0.1),但是看起来出奇地慢,所以我不想被这困扰;另外一个是Glide (x3.3.6).但我没有voodoo3,我不能肯定. Lars Munch 的e-mail:c948114@student.dtu.dk 这是我所做的: ---- 首先,将glide和mesa移除. 在CVS上得到最新的3DFX驱动,安装.如果你运行2.4.x内核,这是需要的. 从linux.3dfx.com上得到Glide V3的源代码的rpm包.编译安装,包括库和devel. 从mesa3d.sourceforge.net上得到Mesa 3.4.你需要MesaDemos和MesaLib.用以下命令编译: # ./configure --without-svga --without-ggi --with-glide=/usr --prefix=/usr --sysconfdir=/etc 并且做: # make; make install 现在测试,确保它运作良好(testGlide3x,quake...) 你可以用:export MESA_FX_INFO=1来得到一些有用的数据. 安装WickedGL驱动(miniGL from Wicked3D),它能在640x480下跑到30-70fps. 用--enable-opengl这个选项编译wine代码,这样运行CS: export MESA_GLX_FX=fullscreen # wine -desktop hl.exe -- hl.exe -gl -gldrv Default -w 640 -full -game cstrike -noipx -nojoy -numericping -console -toconsole ---------------------------------------------------------------------- 2.2.4 G400用户 我联系到一个可以用G400完美地跑LHL的用户.有一些步骤需要去做,这看起来比3DFX用户做得简单些.注解:你是不是需要个快些的CPU(大于500MHZ?). 现在XFree86 4.0.2(或4.0.3?)已经出来了,你必须安装它.G400不能运行在普通的4.0.1下,你必须用4.0.2.可能会有些闪烁,在"疑难解答"中有解决的方法. ---------------------------------------------------------------------- 2.2.5 其它DRI用户 我没有听说其他DRI用户(成功运行CS),但请通知我你是如何做到的.试试最新的XFree86 DRI from CVS(这在G400段中有描述,通知我(ATI Rage128 or Radeon,是哪一个?) ---------------------------------------------------------------------- 2.3 安装WINE 首先你要安装WINE.可能对于玩什么Linux会有个大争论.如果你已经有一个WINE安装好了(rpm/binary包或是其它的),卸载它:在基于RPM系统的Linux中,这样做: # rpm -qa |grep WINE # rpm -qa |grep wine # rpm -e "whatever showed up above" 基于Debian Linux系统的,这样做: # apt-get remove wine 如果你以前编译并安装过WINE(源代码方式),进入源代码目录,然后: # make uninstall 1 现在,下载WINE.我极其推荐你更新你的CVS,但是最简单的方法是下载最新的CVS Snapshot Tarball并且通过CVS更新到新的版本.有用的介绍在这儿:http://www.winehq.com/devstart.html(看看通过 FTP得到WINE和转变到CVS).我假定你已经下载了WINE到/usr/src/wine目录下,所以,你的WINE源代码应该在 /usr/src/wine/wine下,如果你想用CVS,这样试试: export CVSROOT=:pserver:cvs@cvs.winehq.com:/home/wine # cvs login *** The password is "cvs" *** # cvs -z3 co wine 请注意这是个大的CVS校验.对于使用modem的用户不推荐这样做.同样没有WINE的二进制文件(已编译好的)被加入了OPENGL的支持.我所知道的是这没有被测试过. 2 为你的linux发行版选择一个OPENGL开发包.例如Debian,开发包是xlibmesa-dev.其它发行版本应该有相类似的包.你同时需要一个叫"glext.h"的文件.让我们看看你是否有(这个文件): # updatedb # locate glext.h 如果你的系统没有glext.h,你需要在编译WINE之前得到它.我做了一个可用的链接:http: //lhl.linuxgames.com/glext.h,下载它,把它放到/usr/X11R6/include/GL/目录下.缺少了这个文件, WINE不会在编译时加入OPENGL支持. 3 现在编译,运行wineinstall(从/usr/src/wine/wine下运行./tools/wineinstall).你可以看见WINE开始自动地编译,配置并安装.这个安装工具会给你创建一个注册.最新的版本将自动地带有OPENGL支持.编译会花些时间. 4 现在该编辑wine.conf文件了.用编辑器打开.wine.conf被放在/usr/local/etc/wine.conf(这取决于它安装在哪儿).将C盘指向/usr/local/wine.你需要将你的CD-ROM(用来安装cs)挂接点设置好.在[x11drv]段中,确保double- buffering设置成ON.在XFree86中useDGA可能作为DGA在on或off状态下工作.有人报告这儿遇到问题,试试将useDGA和 double-buffering设成off.如果wine.conf工作良好,进入home directory,然后: # mkdir ~/.wine/ # cp /usr/local/etc/wine.conf ~/.wine/config WINE现在安装并配置好了 ---------------------------------------------------------------------- 2.4 安装 <<半条命>> 将<<<<半条命>>的光盘放入光驱,然后: # mount /xxx (your cdroms mount point) # cd /xxx # wine SETUP.EXE 跟着安装向导,安装顺利结束.如果最后安装挂起(经常出现),用CTRL+ALT+F1切到1号控制台,用root登陆,敲命令: # killall -9 wine # ps -ax 确保没有WINE客户端/服务端运行.如果有,用kill命令将他们k掉.做同样的patch工作(装HL,CS...)但你必须记得,你只能运行在wine.conf里设置的路径下的.exe文件(因为这是linux环境 --译者注) ---------------------------------------------------------------------- 2.5 运行并设定<<半条命>> 现在到这里了,结果是好是坏呢;-)进入<<半条命>>目录:cd /usr/local/wine/games/Half-Life/(目录取决于你的安装目录)执行: # wine hl.exe -- hl.exe --console (请记住,当你运行游戏时,不要这么做..在gamespy段中有我的脚本,按脚本运行) 你将会看到一个缓慢的菜单出现了,点击Configuration" -> "Video" -> "Video Modes,将它设置为OPENGL.可能在你点击OK时画面会定住,没关系-切到控制台下用killall -9 wine(这个老兄又来了,都用killall命令了,还说没关系@_@ --译者注)确定你的选择(OPENGL驱动)在XF86Config-4中有解释. 配置cdkey,应该没问题.你也可以手动修改config.cfg文件. ---------------------------------------------------------------------- 3 疑难解答 3.1 声音问题 3.1.1 声音有些滞后 我遇到了一些声音延迟的问题(比如在CS里的枪声严重地滞后)要解决这个问题,需要在config.cfg文件中加上适当的修改: _snd_mixahead "0.23" (0.23这个值可以在我的机器上运行得不错,有些人说其它的值也许更适合于他们.千万不要用负值,这样将不能够工作!)这将解决声音滞后的问题.同样,如果你发现你修改了值后<<半条命>>程序崩溃,试试其它的值. 有些人有同样的问题,但是不能解决它.如果你有不同的解决方案,请与我联系. ---------------------------------------------------------------------- 3.1.2 根本就没有声音 一些声卡,由于esd的缘故,可能无声(通常发生在Gnome下)试试这个: # ps aux | grep esd 如果esd -nobeeps或是一些相类似的,这可能是困扰你的问题.右键单击Gnome面板"Panel" -> "Add to Panel" -> "Applet" -> "Multimedia" -> "Sound Monitor"右键单击新程序,选择"Place esound in standby",这样就禁止了esd. ---------------------------------------------------------------------- 3.1.3 在CS中没有radio声音 这是没有在命令行中加上"-game cstrike"而导致的问题-你可以下载最新的hl启动脚本(hl launch script)(为了与XQF一起使用)-链接在"gamespy"段里 ---------------------------------------------------------------------- 3.2 显示问题 3.2.1 乱字符 如果你发现一些字符在游戏中显示不太稳定(比如积分牌)你可能得到一个关于"没找到字体文件"的错误.这些错误信息将在loading游戏时在 console里显示.一个文件可能是"1026_Scoreboard Text.tga".是的,你看见了错误,因此找不着文件.所以你该找出它在寻找什么,先退出游戏,进入你的安装目录 "valve/gfx/vgui/fonts",拷贝可能需要的文件,它们可能是<<半条命>>所需要的.比如,这是我的: 1024_Briefing Text.tga 1024_Scoreboard Text.tga 1026_Briefing Text.tga@ 1026_Scoreboard Text.tga@ 1024_CommandMenuText.tga 1024_Team Info Text.tga 1026_CommandMenu Text.tga@ 1026_Team Info Text.tga@ 1024_Primary Button Text.tga 1024_Title Font.tga 1026_Primary Button Text.tga@ 1026_Title Font.tga@ 另外一个解决方法时不进入全屏幕状态(在图形模式下不作校验),并且在WINE的配置文件中,让窗口管理器描绘windows.这时常会去掉绿色的线条.这看起来很漂亮,因为在玩游戏时,你仍然能看见你的IRC信息.但这种方法可能会使你在全屏幕时调焦不正确. ---------------------------------------------------------------------- 3.2.2 图像晃动得厉害和/或可以隔墙视物 这个问题经常在DRI用户中出现,这个问题容易解决:增加/修改以下的字段(在所有的config.cfg中): gl_ztrick 0 一些用户反映这不能解决问题,我们也正在寻求一个正确的方案. ---------------------------------------------------------------------- 3.2.3 不能全屏幕? 取决于你的设置,在你设置的尺寸下可能会在屏幕中央出现一个方形区域.按下ctrl+alt+keypad_plus直到合适为止.(这和你的XF86Config设置有关,比如分辨率) ---------------------------------------------------------------------- 3.2.4 <<半条命>>很昏暗 个别人有这个问题,很容易解决.用"xgamma"来改变XFree86的亮度.例如,在启动脚本中(在CS加载前)加入: # xgamma -gamma 3.0 3.0这个值是可调节的(为了让你的眼睛适应).在脚本中"运行游戏"之后,务必将gamma值改回,要不然会让你好看. ---------------------------------------------------------------------- 3.2.5 在启动游戏时XFree86死掉 有很多原因可能导致XFree86挂起,但最可能的原因未知的GL驱动惹的祸.如果你使用NVidia驱动,确保你已经将所有的Mesa库文件删掉(寻找libGL.so,只留下NVidia的那一个).同时参见"支持的OPENGL模式不被你的显卡所支持"段. ---------------------------------------------------------------------- 3.2.6 支持的OPENGL模式不被你的显卡所支持 这是WINE连结到正确的OPENGL驱动的一个问题.首先确定OPENGL已经被编译进了WINE(察看./configure manually的输出)多半你要检查WINE是否连接到了错误的.sos和.as上.这个URL很有用:http: //wine.screenweavers.com/cgi-bin/fom?file=139 首先,找到WINE将你的libopengl32.so放在哪里(这是WINE的OPENGL支持库)我的在/usr/local/lib下).然后你需要做: $ ldd libopengl32.so 输出的结果应该和下面这个NVidia卡类似: libx11drv.so => /usr/local/lib/libx11drv.so (0x4004a000) libkernel32.so => /usr/local/lib/libkernel32.so (0x40099000) libwine.so => /usr/local/lib/libwine.so (0x40113000) libncurses.so.5 => /lib/libncurses.so.5 (0x40137000) libm.so.6 => /lib/libm.so.6 (0x40177000) libutil.so.1 => /lib/libutil.so.1 (0x40195000) libdl.so.2 => /lib/libdl.so.2 (0x40198000) libc.so.6 => /lib/libc.so.6 (0x4019b000) libuser32.so => /usr/local/lib/libuser32.so (0x402aa000) libgdi32.so => /usr/local/lib/libgdi32.so (0x4037b000) libwine_tsx11.so => /usr/local/lib/libwine_tsx11.so (0x403e7000) libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x403f4000) libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x403fd000) libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x40413000) libGL.so.1 => /usr/lib/libGL.so.1 (0x40421000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40458000) ibX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40466000) libntdll.so => /usr/local/lib/libntdll.so (0x40540000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000) libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x40637000) libwine_unicode.so => /usr/local/lib/libwine_unicode.so (0x40842000) 最重要的libGL.so.1和libGLcore.so.1这两行.确保它指向合适的NVidia libGL.so.1和libGLcore.so.1.为了检查这个,进入它们的目录(这个例子中是/usr/lib/)并且: # ls -l libGL* 查询像下面这样的结果: lrwxrwxrwx 1 root root 16 Mar 17 09:33 libGL.so -> libGL.so.1.0.769 lrwxrwxrwx 1 root root 16 Mar 17 09:33 libGL.so.1 -> libGL.so.1.0.769 -rwxr-xr-x 1 root root 218388 Mar 17 09:33 libGL.so.1.0.769 lrwxrwxrwx 1 root root 13 Mar 17 02:17 libGLU.so -> libGLU.so.1.3 lrwxrwxrwx 1 root root 13 Mar 17 02:16 libGLU.so.1 -> libGLU.so.1.3 -rw-r--r-- 1 root root 487348 Feb 21 21:13 libGLU.so.1.3 lrwxrwxrwx 1 root root 20 Mar 17 09:33 libGLcore.so.1 -> libGLcore.so.1.0.769 -rwxr-xr-x 1 root root 2075568 Mar 17 09:33 libGLcore.so.1.0.769 -rw-r--r-- 1 root root 26168 Feb 21 21:13 libGLw.a 注意libGL.so.1是libGL.so.1.0.769的符号连结,libGLcore.so.1(0.9-769的NVidia库文件)的情况也类似这样.如果是其它情况,可能就是Mesa导致的XFree86不能工作.去掉Mesa,重新运行ldconfig. 还有一种可能是你的库的路径没有设置正确.如果是这样,编辑/etc/ld.so.conf并加入你的libopengl32.so所在路径) ---------------------------------------------------------------------- 3.3 gamespy 从 http://www.linuxgames.com/xqf/上得到XQF,它支持<<半条命>>.但是启动<< 半条命>>的方式让我们觉得不舒服,所以我写了一个可以良好工作的脚本.http://lhl.linuxgames.com/hl.将它放到你想放的地方,并且设置XQF可以使用它.你要修改我的hl文件内容,以确保路径在你的系统上是正确的.同时需要用chmod a+x hl让这个文件可以执行.你也可以加上我们先前讨论的xgamma的内容. ---------------------------------------------------------------------- 4 结语 所有的设置应该可以工作了.但是,请注意,这只是一个BETA版的HOWTO,如果你的不能运行,请到这儿看看:http: //lhl.linuxgames.com.检查IRC(#lhl on irc.openprojects.net),或者给我发e-mail,我试着帮助你(dhammerton@labyrinth.net.au) (下面的内容我就不翻译了,现在我好困倦 -_- --译者注) Also, if you wanna be real cool, whenever you hop in a server, put the tag [TUX] or (linux) at the start or end of your name so other LHL uses can identify you - I wear it at the start (crazney)! I (may1937) wear (linux) at the end so people don confuse it with a clan as much... "Does linux wanna have a clan war?"... "Uh, no. Its not a clan."... "uh... ok. wtf?"... "I play in linux."... "There isn a linux client?" OR "Whats linux?"... "No. I wish." OR /me gives a bullet to the dome-piece with my phatty boombatty elites ; ) |
||