模拟器,基于 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 本身的问题。 等以后有时间在修正。

nes 红白机模拟器 第7篇 编译使用方法的更多相关文章

  1. arm 2440 linux 应用程序 nes 红白机模拟器 第1篇

    对比了很多种,开源的 NES 模拟器 VirtuaNES , nestopia , FakeNES , FCEUX , InfoNES , LiteNES 最后决定使用 LiteNES 进行移值,它是 ...

  2. nes 红白机模拟器 第1篇

    对比了很多种,开源的 NES 模拟器 VirtuaNES , nestopia , FakeNES , FCEUX , InfoNES , LiteNES 最后决定使用 LiteNES 进行移值,它是 ...

  3. arm 2440 linux 应用程序 nes 红白机模拟器 第4篇 linux 手柄驱动支持

    小霸王学习机的真实手柄,实测CPU 占用 80% 接线图: 手柄读时序: joypad.c 驱动: 普通的字符设备驱动. #include <linux/module.h> #includ ...

  4. arm 2440 linux 应用程序 nes 红白机模拟器 第2篇 InfoNES

    InfoNES 支持 map ,声音,代码比较少,方便 移值. 在上个 LiteNES  的基础上,其实不到半小时就移值好了这个,但问题是,一直是黑屏.InfoNES_LoadFrame ()  Wo ...

  5. nes 红白机模拟器 第6篇 声音支持

    InfoNES 源码中并没有包含 linux 的声音支持. 但提供 wince 和 win 的工程,文件,通过分析,win 的 DirectSound 发声,在使用 linux ALSA 实现. 先使 ...

  6. nes 红白机模拟器 第5篇 全屏显示

    先看一下效果图 放大的原理是使用最初级的算法,直接取对应像素法. /*================================================================= ...

  7. nes 红白机模拟器 第4篇 linux 手柄驱动支持

    小霸王学习机的真实手柄,实测CPU 占用 80% 接线图: 手柄读时序: joypad.c 驱动: 普通的字符设备驱动. #include <linux/module.h> #includ ...

  8. nes 红白机模拟器 第2篇 InfoNES

    InfoNES 支持 map ,声音,代码比较少,方便 移值. 在上个 LiteNES  的基础上,其实不到半小时就移值好了这个,但问题是,一直是黑屏.InfoNES_LoadFrame ()  Wo ...

  9. nes 红白机模拟器 第3篇 游戏手柄测试 51 STM32

    手柄使用的是 CD4021 ,datasheet 上说支持 3V - 15V . 因为手柄是 5V 供电,2440 开发板上是GPIO 3.3V 电平,STM32 GPIO 也是 3.3V (也兼容5 ...

随机推荐

  1. Qt Sleep、QCoreApplication::processEvents()(最佳的平衡:一边发送消息,一边睡眠)

    sleep()//秒 msleep()//毫秒 usleep()//微秒 以前为了模拟鼠标点击用过这些函数,可以让进程中断,今天发现我原来的做法其实不对.这组函数会将你当前的线程/进程变为“睡眠”状态 ...

  2. deeplearning.ai 构建机器学习项目 Week 1 机器学习策略 I

    这门课是讲一些分析机器学习问题的方法,如何更快速高效的优化机器学习系统,以及NG自己的工程经验和教训. 1. 正交化(Othogonalization) 设计机器学习系统时需要面对一个问题是:可以尝试 ...

  3. [LC] 253. Meeting Rooms II

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  4. Qt 非阻塞延时

    void delay(int mSec)//ms { QEventLoop loop; QTimer::singleShot(mSec, &loop, SLOT(quit())); loop. ...

  5. h-index|IF|Good story|IPS

    科研论文写作 科研论文写作的关键在于写出研究的重要性. 对科研工作者的评价标准主要以论文为主,可以从论文的定性和定量角度评价.论文的外部评价,包括科学院分区(包括123类):影响因子IF,可以通过we ...

  6. <JZOJ4269>挑竹签

    emm一开始将++cnt敲成cnt++ 就很委屈 一个拓扑排序而已 Description 挑竹签——小时候的游戏 夏夜,早苗和诹访子在月光下玩起了挑竹签这一经典的游戏.挑竹签,就是在桌上摆上一把竹签 ...

  7. Mysql简单总结

    基于Mac OS X系统 MySQL的安装和配置 首先进入 MySQL 官网,选择免费的Community版:MySQL Community Server.MySQL 官网提供了tar.gz和dmg两 ...

  8. 彪悍的Surface Book2发布:能重拾笔记本行业的信心吗?

    ​ Book2发布:能重拾笔记本行业的信心吗?" title="彪悍的Surface Book2发布:能重拾笔记本行业的信心吗?"> ​  在智能手机全面普及之后, ...

  9. Bitstream or PCM?

    背景 提问 讨论精选 一 二 三 四 五 最后 电视上同轴输出的做法. 背景 USB通道下播放声音格式为AAC的视频文件,同轴输出设置为Auto,功放没有声音,设置成PCM,有声音. 提问 Auto/ ...

  10. 内核融合:GPU深度学习的“加速神器”

    ​编者按:在深度学习"红透"半边天的同时,当前很多深度学习框架却面临着共同的性能问题:被频繁调用的代数运算符严重影响模型的执行效率. 本文中,微软亚洲研究院研究员薛继龙将为大家介绍 ...