周末在MAMEWorld上看到了mame的一个port,支持Linux/BSD/MacOS,叫SDLMAME,网址是:http://rbelmont.mameworld.info/?page_id=163。
于是下载了最新的0.127u7的源代码,按照论坛上的帖子安装了编译所需的工具:http://www.bannister.org/forums/ubbthreads.php?ubb=showflat&Number=35138
在Fedora 7/8/9上:yum install gcc SDL-devel Xinerama-devel GConf2-devel
在Ubuntu 8.04上:sudo apt-get install build-essential libsdl1.2-dev libgtk2.0-dev libxinerama-dev libgconf2-dev
编译过程倒是挺顺利,但是运行的时候倒是出了点问题。我用的是《名将》(Captain Commando (World 911014))的rom做的测试,但是mame提示说是有几个rom文件找不到。把captcomm.zip解压后,的确没有找到错误信息里面那几个文件,难道是新版mame的rom不一样了。
找到《名将》的驱动文件:src/mame/drivers/cps1.c,发现《名将》的rom果真变了,多了以下几个PLD:
ROM_REGION( 0x0200, "a-board plds", ROMREGION_DISPOSE )
...
ROM_REGION( 0x0200, "b-board plds", ROMREGION_DISPOSE )
...
ROM_REGION( 0x0200, "c-board plds", ROMREGION_DISPOSE )
...
把这几行注释掉,重新编译连接,就可以顺利使用旧版的《名将》rom了。但是在Fedora下编译出来的mame在X下的运行速度实在是不敢恭维,跟windows下的mame不能同日而语,运行名将只有9~10FPS…… 只能看看幻灯片。不知道是因为显卡驱动的问题还是我的设置的问题,以后慢慢找问题吧。
周末用空闲时间看了几眼mame的源代码,算是又熟悉了一点了。