一、编译及修改
1.首先要完成Linux和buildroot的编译工作,可以参考本坛的教学贴,我用的是主线Linux:linux-f1c100s-480272lcd-test 和 buildroot-2017.08.tar.gz。
2.解压InfoNES097JRC1_SDL.tar.gz
3.修改InfoNES097JRC1_SDL/sdl/Makefile文件
*注意:这里的:/home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/bin/arm-none-linux-gnueabi-gcc
/home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/bin/sdl-config
为我的buildroot编译输出的目录,需根据你的实际情况进行修改。
CC = /home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/bin/arm-none-linux-gnueabi-gcc
CCFLAGS = `/home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/bin/sdl-config --cflags` -O3 -pipe
LDFLAGS = `/home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/bin/sdl-config --libs`
4.修改InfoNES097JRC1_SDL/sdl/InfoNES_System_SDL.cpp文件
*注意:这里的480, 272为LCD分辨率,需根据你使用的LCD分辨率具体进行修改。
Line123: screen = SDL_SetVideoMode(480, 272, 16, SDL_HWSURFACE | SDL_DOUBLEBUF);
5.编译InfoNES
#cd InfoNES097JRC1_SDL/sdl
#make
然后将编译生成的InfoNES复制到/usr/games目录下(其他目录也可以)
二、运行
1.登陆Lichee Pi
Lichee login:root
Password:licheepi
2.运行InfoNES
*注意必须export SDL_NOMOUSE=1,否则会出现SDL_Init出错。
这里的Contra.nes为NES模拟器测试ROM文件名。
#export SDL_NOMOUSE=1
#cd /usr/games
#./InfoNES "Contra.nes"
三、目前存在的BUG
1.没有声音。
在初始化音频函数的时候报错:ALSA lib pcm_dmix.c:1063:(snd_pcm_dmix_open) unable to create IPC semaphore
2.画面显示不正常。
因为NES模拟器输出的是256*240的8位图像,所以需要对图像进行转换,才能正确显示,等下次有时间再弄吧:)
最近编辑记录 openkl (2020-07-14 00:28:56)
离线
这个好,一直想玩就是没有整起来。之前还打算弄一块A13来玩nes,先来围观学习
期待后续上图和视频~
离线
好帖,感谢楼主分享,请问有没有美图分享?
离线
一、编译及修改
1.首先要完成Linux和buildroot的编译工作,可以参考本坛的教学贴,我用的是主线Linux:linux-f1c100s-480272lcd-test 和 buildroot-2017.08.tar.gz。2.解压InfoNES097JRC1_SDL.tar.gz
3.修改InfoNES097JRC1_SDL/sdl/Makefile文件
*注意:这里的:/home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/bin/arm-none-linux-gnueabi-gcc
/home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/bin/sdl-config
为我的buildroot编译输出的目录,需根据你的实际情况进行修改。CC = /home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/bin/arm-none-linux-gnueabi-gcc CCFLAGS = `/home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/bin/sdl-config --cflags` -O3 -pipe LDFLAGS = `/home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/bin/sdl-config --libs`
4.修改InfoNES097JRC1_SDL/sdl/InfoNES_System_SDL.cpp文件
*注意:这里的480, 272为LCD分辨率,需根据你使用的LCD分辨率具体进行修改。Line123: screen = SDL_SetVideoMode(480, 272, 16, SDL_HWSURFACE | SDL_DOUBLEBUF);
5.编译InfoNES
#cd InfoNES097JRC1_SDL/sdl #make
然后将编译生成的InfoNES复制到/usr/games目录下(其他目录也可以)
二、运行
1.登陆Lichee Pi
Lichee login:root
Password:licheepi2.运行InfoNES
*注意必须export SDL_NOMOUSE=1,否则会出现SDL_Init出错。
这里的Contra.nes为NES模拟器测试ROM文件名。#export SDL_NOMOUSE=1 #cd /usr/games #./InfoNES "Contra.nes"
三、目前存在的BUG
1.没有声音。
在初始化音频函数的时候报错:ALSA lib pcm_dmix.c:1063:(snd_pcm_dmix_open) unable to create IPC semaphore
2.画面显示不正常。
因为NES模拟器输出的是256*240的8位图像,所以需要对图像进行转换,才能正确显示,等下次有时间再弄吧:)
请问出现编译没有安装C++编译器,怎么解决呢,buildroot已经使能C++了
离线
没记错的话,infoNES输出的图像,是按照rgb555的模式来的,需要移位一下才能在rgb565的lcd上正确显示颜色,不过我是裸机搞的,不知道linux下需不需要修改。
离线
可以直接移植掌机miyoo的模拟器,别说nes了,街机啥的都能玩,github有源码,不过可能程序有点老不是最新的。
离线
请问出现编译没有安装C++编译器,怎么解决呢,buildroot已经使能C++了
make clean一把再重新make
CC = /home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/bin/arm-none-linux-gnueabi-gcc
CCFLAGS = `/home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/bin/sdl-config --cflags` -O3 -pipe
LDFLAGS = `/home/linux/ALLWINNER_F1C100S/buildroot-2017.08/output/host/arm-buildroot-linux-gnueabi/sysroot/usr/bin/sdl-config --libs`
离线
最近正在搞240*240的spilcd 移植nes,回头试试去
离线
求一份代码
离线
miyoo模拟器有源码吗
离线
确实是这样,之前在新唐的N32905上跑info-nes,跑起来屏上的颜色是绿的
没记错的话,infoNES输出的图像,是按照rgb555的模式来的,需要移位一下才能在rgb565的lcd上正确显示颜色,不过我是裸机搞的,不知道linux下需不需要修改。
离线