WhyCan Forum(哇酷开发者社区)

我们能随心所欲"有问题百度(谷歌)一下", 这得感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#1 2020-07-14 00:26:47

openkl
会员
注册时间: 2019-10-05
累计积分: 4

F1C100S主线Linux编译运行NES模拟器 InfoNES SDL

一、编译及修改
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位图像,所以需要对图像进行转换,才能正确显示,等下次有时间再弄吧:)

InfoNES097JRC1_SDL.tar.gz

最近编辑记录 openkl (2020-07-14 00:28:56)

离线

#2 2020-07-14 12:43:23

EE道来
会员
所在地: 西瓜视频
注册时间: 2020-06-30
累计积分: 23
个人网站

Re: F1C100S主线Linux编译运行NES模拟器 InfoNES SDL

这个好,一直想玩就是没有整起来。之前还打算弄一块A13来玩nes,先来围观学习
期待后续上图和视频~

离线

#3 2020-07-14 14:27:13

我思故我在
会员
注册时间: 2019-09-03
累计积分: 206

Re: F1C100S主线Linux编译运行NES模拟器 InfoNES SDL

好帖,感谢楼主分享,请问有没有美图分享?

离线

#4 2020-07-26 13:56:50

嵌入式冲
会员
注册时间: 2020-05-24
累计积分: 95

Re: F1C100S主线Linux编译运行NES模拟器 InfoNES SDL

openkl 说:

一、编译及修改
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位图像,所以需要对图像进行转换,才能正确显示,等下次有时间再弄吧:)

InfoNES097JRC1_SDL.tar.gz

请问出现编译没有安装C++编译器,怎么解决呢,buildroot已经使能C++了

离线

#5 2020-07-26 22:43:18

MyCuphead
会员
注册时间: 2020-07-25
累计积分: 9

Re: F1C100S主线Linux编译运行NES模拟器 InfoNES SDL

没记错的话,infoNES输出的图像,是按照rgb555的模式来的,需要移位一下才能在rgb565的lcd上正确显示颜色,不过我是裸机搞的,不知道linux下需不需要修改。

离线

#6 2020-07-27 09:22:19

zhouyu2019
会员
注册时间: 2019-11-07
累计积分: 32

Re: F1C100S主线Linux编译运行NES模拟器 InfoNES SDL

可以直接移植掌机miyoo的模拟器,别说nes了,街机啥的都能玩,github有源码,不过可能程序有点老不是最新的。

离线

页脚

工信部备案:粤ICP备20025096号-1 Powered by FluxBB