今天晚上,QQ网名关羽的哥们来给大家分享他收藏的一篇好文,看来这哥们的干货多多也欢迎大家一起分享你的喜悦,话不多说,直接进入主题!
FBAlpha是一个开源的街机游戏模拟器链接:http://www.fbalpha.com
每个版本都会发布Windows Binary文件和源代码(目前新版本为0.2.97.39),原版程序支持的游戏非常多,但是在搜索ROM的时候,速度非常慢,于是产生了裁剪的想法!主要想解决搜索ROM速度过慢的问题,从官方文档了解到,可以在Windows环境下使用mingw进行编译,需要依次下载以下文件:
1、从官网下载源码包:http://static.fbalpha.com/files/fba_src_029739.7z
2、下载MINGW:http://tdm-gcc.tdragon.net
3、下载binutil(解压到MINGW/BIN目录):http://www.fbalpha.com/files/gnu_utils.zip
4、下载NASM(解压到MINGW/BIN目录):http://www.nasm.us/pub/nasm/releasebuilds/2.11.08/win32/nasm-2.11.08-win32.zip
5、安装Perl下载地址:http://www.activestate.com/activeperl
准备工作做好了,就可以开始编译了!
切换到源码目录下面,打开命令行编译,输入:mingw32-make mingw510,大约几分钟可以看到生成fba.exe文件,编译环境弄好了,就可以研究一下代码了,fba搜索ROM需要搜索20个文件夹!搜索的游戏有几千个,依次查找对应的zip文件,所以可以考虑删除那些不需要的游戏驱动,提高搜索速度的同时还可以减少exe文件的体积,游戏驱动在:src\burn\drv目录下面,我只保留CPS1/2/3、NEOGEO、PGM,其它的驱动全部删除掉。再次编译报错,找不到文件依赖项。打开makefile.burn_rules,打到那些被我删除的依赖项,删除掉,再重新编译,通过了!这下fba.exe体积从原版的25MB缩小到了8M,再打开ROM搜索界面,搜索速度也变快了,非常好!
编译正常,还可以进行一些其它修改,比如:
1、ROM路径配置对话框,界面相关的代码在src/burner/win32目录下,资源文件是app.rc,可以修改对话框,菜单的布局。
2、原版创建的文件夹太多了,可以去掉那些没用的文件夹,在src/burner/win32/main.cpp,可以看到创建了一堆文件夹。
3、默认NEOGEO的BIOS为英语,可以修改为日版,在src/burn/drv/neogeo/d_neogeo.c,第569行,倒数第二个值,原版为0x80,修改为0x8a,修改之后像战国传承3这类游戏就可以看到日文界面了。
4、附上我精简过后的源代码(FBA模拟器精简版):https://gitee.com/kerndev/fba_lite