xmame(0.106)在imx6q上移植
硬件环境我采用的是i.mx6q开发板屏幕分辨率为800x480系统环境linux 4.1.15根文件系统 用的是开发板自带的根文件系统里面已经移植好了alsa相关的库文件首先移植SDL1.2配置SDL1.2./configure --disable-video-directfb --disable-video-qtopia --disable-video-dummy --disable-video-dga --disable-arts --disable-cdrom --disable-video-x11 --disable-nasm --enable-video-fbcon --enable-joystick --enable-input-tslib --hostarm-poky-linux-gnueabi --prefix$(pwd)/_install接着编译make安装make install将_install中bin lib include复制到/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/bin/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib/SDL/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/include/SDLsudo cp -r /home/w/NES/SDL-1.2.15/_install/include/SDL/* .sudo cp -r /home/w/NES/SDL-1.2.15/_install/lib/SDL/* .sudo cp -r /home/w/NES/SDL-1.2.15/_install/bin/sdl-config .将编好的lib下的.so文件考到开发板/usr/lib下其次pc机操作安装 Ubuntu 官方的 x86 版 SDL 1.2sudo apt-get updatesudo apt-get install --reinstall libsdl1.2-dev验证恢复成功sdl-config --version# 应该输出 1.2.15x86 主机版最后修改mame的makefileCC gcc改为CC arm-poky-linux-gnueabi-gccAR arAR_OPTS rc修改为AR arm-none-linux-gnueabi-arAR_OPTS rc将RANLIB ranlib# RANLIB true修改为RANLIB arm-none-linux-gnueabi-ranlib# RANLIB true# Uncomment next line to build expat aspart of the build.# BUILD_EXPAT 1# Uncomment next line to build zlib as partof the build.# BUILD_ZLIB 1修改为# Uncomment next line to build expat aspart of the build.BUILD_EXPAT 1# Uncomment next line to build zlib as partof the build.BUILD_ZLIB 1PREFIX /usr/local修改为PREFIX /home/xmamesdl/自己的路径MY_CPU arm# X11 (including Glide OpenGL ifenabled below)DISPLAY_METHOD x11# SDL library# DISPLAY_METHOD SDL修改为# X11 (including Glide OpenGL ifenabled below)#DISPLAY_METHOD x11# SDL libraryDISPLAY_METHOD SDL# The name of your sdl-config executableSDL_CONFIG sdl-config修改为# The name of your sdl-config executableSDL_CONFIG /home/sdl/bin/sdl-config你的sdl-config路径添加以下内容############################################################################ Reset CFLAGS###########################################################################SYSROOT /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi你自己的编译根目录CFLAGS --sysroot$(SYSROOT) -mfloat-abihard -mfpuneon -marcharmv7-a -I$(SYSROOT)/usr/include -I$(SYSROOT)/usr/include/SDL -WallLDFLAGS --sysroot$(SYSROOT) -L$(SYSROOT)/usr/lib -L$(SYSROOT)/usr/lib/SDL -lpthread -lSDLMY_CPU loongson2f 改为 MY_CPU armv7-axmame-0.106/src/unix/unix.mak修改############################################################################### Non-user-configurable settings##############################################################################CC arm-poky-linux-gnueabi-gccSDL_INCPATH/home/w/NES/SDL-1.2.15/_install/include/SDLSDL_LIBPATH/home/w/NES/SDL-1.2.15/_install/libSYSROOT /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabiCFLAGS --sysroot$(SYSROOT) -mfloat-abihard -mfpuneon -marcharmv7-a -I$(SYSROOT)/usr/include -I$(SYSROOT)/usr/include/SDL -Wall# 链接选项sysroot 链接 ALSA 库LDFLAGS --sysroot$(SYSROOT) -L$(SYSROOT)/usr/lib -L$(SYSROOT)/usr/lib/SDL -lpthread -lSDL############################################################################### CPU-dependent settings##############################################################################make cleanmake出现错误Generating M68K source files...xmame.obj/cpu/m68000/m68kmake xmame.obj/cpu/m68000 src/cpu/m68000/m68k_in.cxmame.obj/cpu/m68000/m68kmake: 3: xmame.obj/cpu/m68000/m68kmake: Syntax error: word unexpected (expecting ))src/cpu/cpu.mak:664: recipe for target xmame.obj/cpu/m68000/m68kops.h failedmake: *** [xmame.obj/cpu/m68000/m68kops.h] Error 2make: *** Waiting for unfinished jobs....m68kmake需要用PC机下的gcc编译不能用交叉编译器编译# 先删除错误的 m68kmakerm -f xmame.obj/cpu/m68000/m68kmake# 用本机 gcc 重新编译关键gcc -O2 -o xmame.obj/cpu/m68000/m68kmake src/cpu/m68000/m68kmake.c# 然后再继续你的 make 交叉编译make编译成功放进开发板查看开发板的/etc/fb.modes是否有屏幕信息如果没有开发板上执行fbset将显示的信息如下拷贝到/etc/fb.modes文件下mode 800x480-58# D: 27.000 MHz, H: 29.348 kHz, V: 57.545 Hzgeometry 800 480 800 480 16timings 37037 40 60 10 10 20 10rgba 5/11,6/5,5/0,0/0endmode./xmame.SDL -showconfig ~/.xmame/xmamerc (生成配置文件)将游戏.zip和neogeo.zip放在下列路径中/usr/local/share/xmame/roms/游戏..zip配置文件中可以设置rompath /usr/local/share/xmame/roms运行./xmame.SDL 游戏名我运行的合金弹头如下图但有个缺点只能小窗口无法放大