评论

收藏

V3S移植nes游戏模拟器(附带游戏合集)

游戏开发 游戏开发 发布于:2021-06-27 13:28 | 阅读数:490 | 评论:0

V3S移植nes游戏模拟器(附带游戏合集)
1.资源准备:

  • nes源码
  • alsa源码(本文采用buildroot已编译好的alsa库 编译该库可参考mplayer那篇文章,也可自行编译)
  • 可以使用音频和spi屏幕(也参考之前的spi屏幕配置)
2.编译nes源码:

  • 在源码目录的linux文件夹下建立一个work文件夹
  • 修改源码目录下linux文件夹中的makefie
1.修改CCFLAGS 增加alsa的头文件目录(该目录在bulidroot/output那里例如)
-I/home/book/lichee/rootfs/buildroot-2018.02.2/output/staging/usr/include
2.修改LDFILGS 增加alsa的lib文件目录(和上面一样)
-L/home/book/lichee/rootfs/buildroot-2018.02.2/output/staging/usr/lib
3.修改最上面的CC为bulidroot里面的gcc
/home/book/lichee/rootfs/buildroot-2018.02.2/output/host/bin/arm-linux-gnueabihf-gcc
4.更改最后的install那里为前面建立的work目录
install ./InfoNES /home/book/lichee/model/nes/arm-NES-linux-master/linux/work
5.修改InfoNES_System_Linux.cpp文件中的static int lcd_fb_display_px函数(调整spi屏幕的颜色):
static int lcd_fb_display_px(WORD color, int x, int y)
{
WORD *pen16;
unsigned char r, g, b;
r = ((color >> 10) & 0x1f);
g = ((color >> 5) & 0x3f);
b = (color & 0x1f);
color &#61; r<<11|g<<6|b;
pen16 &#61; (WORD *)(fb_mem &#43; y*line_width &#43; x*px_width);
*pen16 &#61; color;
return 0;
}
make
make install
生成的文件在work文件夹下
想使用usb手柄 可以再编译一下joypad文件夹下的源码也需要改makefile 自行参考下面的&#xff08;适用高版本的模块编译&#xff09;dir为源码目录&#xff01;&#xff01;&#xff01;需要新的源码只需要和第一篇文章那样正常配置的才能编译&#xff0c;已配置过很多的源码是不可以的&#xff0c;CROSS_COMPILE为gcc目录
KERNELDIR :&#61; /home/book/lichee/linuxkernels/linux_5.10_2 
CURRENT_PATH :&#61; $(shell pwd) 
ARCH&#61;arm
CROSS_COMPILE&#61;/home/book/lichee/rootfs/buildroot-2018.02.2/output/host/bin/arm-linux-gnueabihf-
export ARCH CROSS_COMPILE
obj-m :&#61; joypad.o 
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KERNELDIR) M&#61;${CURRENT_PATH} modules
clean:
make -C $(KERNELDIR) M&#61;&#96;pwd&#96; modules clean
rm -rf modules.ordern
3.烧录

  • 下载游戏合集并解压&#xff0c;然后改名为游戏名为英文
    链接&#xff1a;https://pan.baidu.com/s/16hIWwYQQEX9aOBDG1dVa0A
    提取码&#xff1a;asdf
  • 将生成的InfoNES放入板子。
    3.使用命令 ./InfoNES 游戏名字 就可以看到游戏开启成功
    DSC0000.jpg
                                                            
关注下面的标签,发现更多相似文章