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 = r<<11|g<<6|b;
pen16 = (WORD *)(fb_mem + y*line_width + x*px_width);
*pen16 = color;
return 0;
}
make
make install
生成的文件在work文件夹下
想使用usb手柄 可以再编译一下joypad文件夹下的源码也需要改makefile 自行参考下面的(适用高版本的模块编译)dir为源码目录!!!需要新的源码只需要和第一篇文章那样正常配置的才能编译,已配置过很多的源码是不可以的,CROSS_COMPILE为gcc目录
KERNELDIR := /home/book/lichee/linuxkernels/linux_5.10_2
CURRENT_PATH := $(shell pwd)
ARCH=arm
CROSS_COMPILE=/home/book/lichee/rootfs/buildroot-2018.02.2/output/host/bin/arm-linux-gnueabihf-
export ARCH CROSS_COMPILE
obj-m := joypad.o
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KERNELDIR) M=${CURRENT_PATH} modules
clean:
make -C $(KERNELDIR) M=`pwd` modules clean
rm -rf modules.ordern 3.烧录
- 下载游戏合集并解压,然后改名为游戏名为英文
链接:https://pan.baidu.com/s/16hIWwYQQEX9aOBDG1dVa0A
提取码:asdf
- 将生成的InfoNES放入板子。
3.使用命令 ./InfoNES 游戏名字 就可以看到游戏开启成功
|