您尚未登录。

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

openkl
会员
注册时间: 2019-10-05
已发帖子: 11
积分: 1

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
已发帖子: 35
积分: 35

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

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

离线

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

我思故我在
会员
注册时间: 2019-09-03
已发帖子: 244
积分: 243.5

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

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

离线

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

嵌入式冲
会员
注册时间: 2020-05-24
已发帖子: 138
积分: 110

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
已发帖子: 15
积分: 5

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

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

离线

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

zhouyu2019
会员
注册时间: 2019-11-07
已发帖子: 42
积分: 42

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

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

离线

#7 2020-08-23 16:39:01

小果果
会员
注册时间: 2020-05-10
已发帖子: 61
积分: 58.5

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

嵌入式冲 说:

请问出现编译没有安装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` 

离线

#8 2021-08-19 18:04:20

mikasa
会员
注册时间: 2021-08-11
已发帖子: 4
积分: 2

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

最近正在搞240*240的spilcd 移植nes,回头试试去

离线

#9 2022-07-01 16:27:59

黑蛋
会员
注册时间: 2022-07-01
已发帖子: 7
积分: 27

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

求一份代码

离线

#10 2022-07-21 16:37:13

鱼尾
会员
所在地: 杭州
注册时间: 2021-01-11
已发帖子: 47
积分: 1

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

miyoo模拟器有源码吗

离线

#11 2022-07-22 20:32:47

blade_cheng
会员
注册时间: 2018-10-15
已发帖子: 72
积分: 68

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

确实是这样,之前在新唐的N32905上跑info-nes,跑起来屏上的颜色是绿的

MyCuphead 说:

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

离线

页脚

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

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn