设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 操作系统 >> FreeBSD >> 如何在Linux/FreeBSD下玩模拟器游戏
精品推荐
FreeBSD点击TOP10
·自订 FreeBSD Kernel (系统核心)
·如何在Linux/FreeBSD下玩模拟器游戏
·FreeBSD kernel 编译大法(一)
·FreeBSD handbook中文版 10 安全
·idled 介绍 (二)设定说明
·FreeBSD内核定制参考
·FreeBSD handbook中文版 4 安装应用程序:Packages 和Ports
·FreeBSD中Telnet最大连接用户数的定制
·FreeBSD handbook中文版 15 串口通讯
·FreeBSD 简介
操作系统点击TOP10
·Windows Vista完全硬盘安装法
·Windows Vista 激活不求人
·Windows Vista局域网网络连接设置
·Windows Vista系统动态桌面截图欣赏
·Windows XP中磁盘的分区应用
·Windows NT/2000/XP 出现蓝屏并显示“STOP 0x0000007f”错误
·让Windows XP变身Vista
·一招搞定Vista系统软件不兼容问题
·教你如何正确配置和优化Windows Vista
·只转两圈 加快Windows XP启动速度
精选专题

如何在Linux/FreeBSD下玩模拟器游戏

作者: 来源:http://www.xgdown.com/ 时间:2006-11-29 11:59:55

如何在Linux/FreeBSD下玩模拟器游戏(1)

  如果你生于70年代,那么你一定还记得《魂斗罗》、《战斧》、《名将》吧。想再听一次令人热血沸腾的《魂斗罗》的主题曲吗?好,现在就让我们重温我们的儿时之旅。

  我们的讨论范围包括任天堂红白机模拟器(Fceu),世嘉五代模拟器(DGen/SDL),和街机模拟器(Xmame),有同好愿意帮助补上其他模拟器的资料吗?

  Fce Ultra

  这是一个跨平台的任天堂红白机模拟器,可以运行在Dos/Windows/BeOS/MacOS/MacOSX/和Unix下(需要SDL库支持)是我用过的Linux/FreeBSD下最好的红白机模拟器,支持绝大部分常见的MAP格式,支持zip格式的压缩rom、全屏模式、网络联机、游戏杆输入,甚至游戏作弊。遗憾的是作者似乎不打算继续发展这个项目,然而你仍然可以在http://fceultra.sourceforge.net/files/ 下找到该模拟器不定期发表的最新版本,目前的最新版本为0.96。

  编译安装这个模拟器是一件相当简单的事:下载fceu096src.tar.gz,展开到一个临时目录下,进入该目录,将Makefile.unixsdl拷贝成Makefile,然后运行make,如果一切顺利,将在该目录下生成fceu的执行程序。在指令行输入"$ ./fceu"将得到指令行帮助,试试"$ ./fceu -fs contra.zip",看到你久违的《魂斗罗》画面了吗?"-fs"选项将使fceu在全屏幕方式下运行。

  Fce ultra假定axis0为游戏杆的X轴向,axis1为游戏杆的Y轴向,对于大多数Gameport游戏杆,这个假设是成立的,但我的Topway USB Joypad单人手柄向系统报告自己是一个4轴向游戏杆/20按键手柄(实际使用2轴向10 按键),axis2为x轴向,axis3为Y轴向,有效按键0-9。这可能是由于Game-pad制造商为了减少成本,让单人手柄与双人手柄共用芯片的结果,而我的Gamtec Twin USB Game-pad双人手柄同样报告自己是一个4轴向/20按键手柄,其中axis0为Player1的X轴向,axis1为Player1的Y轴向,axis2为Player2的X轴向,axis3为Player2的Y 轴向,手柄1的有效按键为0-9,手柄2的有效按键为10-19。是的,这个结果看起来相当的怪诞,但这不是厂商或是驱动编写者的错,毕竟,支持Joystick重映射应当是应用程序的职责,但这却造成相当一部分USB游戏杆在 Fce Ultra下无法正常使用,有哪位红白机迷愿意为她写个补丁吗?

  Linux用户在编译运行之前应当先检查是否已安装了SDL的运行库和开发库(当然还要有gcc)。Redhat/Mandrake的发行版均有这个安装包,你可以运行 "sdl-config --version"来检查你的SDL库的版本号,确保你的SDL库版本在1.1以上,否则在编译时可能会遇到麻烦。

  FreeBSD用户需要确保sdl12 (/usr/ports/devel/sdl12),gmake (/usr/ports/devel/gmake)等ports已经安装,sdl12会在/usr/local/bin/下安装sdl11-config这个执行文件,由于FreeBSD的ports包含了许多不同版本的SDL库(甚至包括在linux模拟环境下运行的linux-sdl),因此需要以不同的配置程序名加以区别。记住为sdl11-config创建一个符号连接,像这样:"# cd /usr/local/bin; ln -s sdl11-config sdl-config",fceu编译时需要通过这个标准的SDL环境配置程序以确定所需的SDL库和头文件的路径,另外,你需要执行"gmake"以明确表示你使用gnu-make而不是系统缺省的bsd-make

  在写完这个主题后大约一个星期,我兴奋地发现,FreeBSD终于将FCEU正式加入了PORTS,如果你使用cvsup 同步PORTS,那么进入"/usr/ports/emulators/fceu",然后"make && make install"就大功告成了。

  DGen/SDL

  这是基于windows的世嘉模拟器DGen的SDL环境移植版,支持全屏模式、分屏模式、zip格式的压缩rom、游戏杆输入和游戏作弊,你可以在http://www. pknet.com/~joe/dgen-sdl.html找到该模拟器的最新版本,目前的最新版本是1.23。

  与Fce Ultra一样,DGen/SDL同样不支持游戏杆重映射,甚至假定系统报告的第一游戏杆设备为Player1,第二游戏杆设备为Player2,并且限制游戏手柄的最大按键数为16!但SEGA MD上留下了我太多难以割舍的回忆,因此我为她编写了游戏杆重映射的PATCH,由于DGen/SDL 原本的游戏杆支持的代码是由另一位hacker加上的,并且使用了完全不同的事件映射模式,这花了我2个小时去弄清楚代码是如何工作的,这个补丁耗费了我整个周末并让我错过了与PPMM的晚餐:-< 然而应用这个PATCH是非常简单的,你只需在展开的dgen-sdl-1.23目录下执行"patch-p1<../dgen-sdl-1.23-jsmap. patch",记住你需要用你下载的patch文件的路径替换指令里的"../dgen-sdl-1.23-jsmap.patch",但直到目前为止,我仍然没有收到DGen/SDL的作者关于这个PATCH的任何答复,因此,这个PATCH是"非官方的",是否使用她取决于你对我的信任,如果这个PATCH给你带来麻烦或是快乐,或者你有任何意见或是建议,请让我知道。

  得益于autoconf脚本的帮助,编译模拟器的源代码是相当简单的,下载dgen-sdl-1.23.tar.gz,展开到一个临时目录,进入该目录,如果你需要游戏杆重映射的Patch,请先按上文的方法应用Patch,之后顺序执行"./configure","make"就可完成编译,FreeBSD的用户则需要首先符号连接sdl-config,安装gnumake,并执行"gmake"而不是"make"。然而该版本的autoconf测试宏中有两处错误地包含了SDL/SDL.h而不是SDL.h,在Redhat Linux下,由于SDL-devel将SDL的头文件放在了/usr/local/SDL/下,而/usr/include/是系统的标准包含路径,因此,Redhat的用户在编译时不会遇到任何麻烦,其他Linux发行版和*BSD的用户恐怕就没这么幸运了,当你运行"./configure"时,配置脚本会抱怨找不到SDL/SDL.h这个头文件从而引起SDL环境测试失败,你可以修改acinclude.m4和aclocal.m4这两个宏定义文件然后重新运行autoconf以生成configure 脚本或是干脆自己直接修改configure脚本。

  如何使用PATCH提供的游戏杆重映射功能?

共13页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [138 :>

如何在Linux/FreeBSD下玩模拟器游戏 相关文章:
如何在Linux/FreeBSD下玩模拟器游戏 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com