随笔分类 - nes模拟器
摘要:买了一个支持 USB OTG, 蓝牙 连接的 安卓手柄。 接到 ubunto 上 dmesg 可以看到识别出来的信息,内核已经支持了。 根据 VID 20bc PID 5500 在 内核源码中搜索hid/hid-ids.h:196:#define USB_VENDOR_ID_BETOP_2185V2
阅读全文
摘要:模拟器,基于 InfoNES ,作者添加修改以下功能: 1, joypad 真实手柄驱动程序(字符型设备驱动) 2,原始图像只有256*240 ,添加 图像放大算法,这里实现了2种,a, 最近邻插值 b, 双线性插值 (因为2440 速度太慢,采用双线性插值时,大概要3秒算一帧,等以后用 4412
阅读全文
摘要:InfoNES 源码中并没有包含 linux 的声音支持。 但提供 wince 和 win 的工程,文件,通过分析,win 的 DirectSound 发声,在使用 linux ALSA 实现。 先使用 DirectSound 模仿写一个 播放 wav 的程序。 为了简单,我这里使用 vc++ 6.
阅读全文
摘要:先看一下效果图 放大的原理是使用最初级的算法,直接取对应像素法。 发另外一个高级点的放大算法 - 二次线性插值缩放算法 发算法核心部分,原理是,取原图相邻的4个橡素,算权重。 经过测试效率非常低(每秒一两帧的样子,当然也未做优化)
阅读全文
摘要:小霸王学习机的真实手柄,实测CPU 占用 80% 接线图: 手柄读时序: joypad.c 驱动: 普通的字符设备驱动。 InfoNES InfoNES_System_Linux.cpp:
阅读全文
摘要:手柄使用的是 CD4021 ,datasheet 上说支持 3V - 15V 。 因为手柄是 5V 供电,2440 开发板上是GPIO 3.3V 电平,STM32 GPIO 也是 3.3V (也兼容5V)电平。 所以先在 STM32 上测试能用后,在接到 2440 开发板上。 正好是 8个键值,用来
阅读全文
摘要:InfoNES 支持 map ,声音,代码比较少,方便 移值。 在上个 LiteNES 的基础上,其实不到半小时就移值好了这个,但问题是,一直是黑屏。InfoNES_LoadFrame () WorkFrame 中一直是 0 。 解决的过程很漫长,最终看到 说是 ADS 中 有符号 无符号的问题,但
阅读全文
摘要:对比了很多种,开源的 NES 模拟器 VirtuaNES , nestopia , FakeNES , FCEUX , InfoNES , LiteNES 最后决定使用 LiteNES 进行移值,它是由 mynes 移值而来。LiteNES 对 mynes 代码进行整理兼容了 C99 标准,编译时无
阅读全文