nes 红白机模拟器 第7篇 编译使用方法

模拟器,基于 InfoNES ,作者添加修改以下功能:

1, joypad 真实手柄驱动程序(字符型设备驱动)

2,原始图像只有256*240 ,添加 图像放大算法,这里实现了2种,a, 最近邻插值 b, 双线性插值

(因为2440 速度太慢,采用双线性插值时,大概要3秒算一帧,等以后用 4412 在测试实际效果,本文还会更新)

3,声音支持,原 InfoNES 中,使用 oss 播放声音,添加 使用 alsa 播放支持,

4,LCD显示支持,原 InfoNES 中,使用 Gtk进行显示,作者添加直接绘制到 framebuffer 上,提供 ARM  在 LCD上使用。

编译方法:

1,下载源码, 可以使用 download zip 或者 clone 我的项目地址

git 方法,需要电脑上装有 git 工具,ubunto 可以 apt-get install git , CentOS 可以 yum install git

git 安装以后可以使用以下命令,克隆我的项目

git clone https://github.com/nejidev/arm-NES-linux.git

等待一会儿,就会在当前目录下生成 arm-NES-linux

先编译 真实手柄,驱动,注意,这里是真实的 小霸王,红白机游戏手柄,不是 USB 的,更不是蓝牙的。 接线方式,下面还会重新介绍一下。

cd arm-NES-linux/joypad/

修改 Makefile 中的 内核源码地址

我这里使用的是比较新的 4.1.36 ,相对于 2.6 有一些变化,3.4 基本上变化不大,如果在编译中遇到问题,

需要自己解决,或者给我发站内消息也行。

修改完 Makefile 后执行

Make

会编译生成一个 joypad.ko 将这个文件复制到 开发板的文件系统中。

接着编译 InfoNES 主程序。

回到 arm-NES-linux 位置

cd ..

进入 linux 文件夹

执行 Make 即可,需要说明的是,这里是需要 alsa-lib 库的。你的ARM 板,必须已经有 alsa 声卡驱动,并且安装并配置了 alsa-lib 库的 头文件,库文件等。

执行 Make 后会生成一个可执行文件 InfoNES

将这个文件复制到 开发板文件系统的 usr/bin 中

真实手柄,接线及使用说明。

手柄的公头比较粗,如果使用万能板连接线,可能太细,所以我这里找了一个 DVD 上面拆下来的 手柄插座。以保正,接线连通性。

 

如何 玩 ?

你要找一些 rom ,放到 开发板文件系统中。

在 开发板 终端上执行

insmod joypad.ko #先加载手柄驱动

InfoNES superML.nes 这样 ,LCD 上就能显示出来了。

在播放的时候,有的 rom 会提示 Floating point exception ,这个是 InfoNES 本身的问题。 等以后有时间在修正。

原文地址:https://www.cnblogs.com/ningci/p/6883911.html