“啊哈!小霸王!其乐无穷啊!”,还记得小时候玩的小霸王游戏机吗?这次小安派的用户来带大家回忆起童年啦,来看看安信可社区大佬如何用小安派玩小霸王游戏。
01硬件说明
硬件上使用到了aipi-eye-s1开发板以及3.5寸 240*320像素的电容触摸屏,使用时可以使用usb type-c线通过开发板上的type-c接口为设备进行供电。也可以使用锂电池给板子供电,实测壳体的液晶屏和pcb之间的间距足够放下一个3.7v的锂电池。程序下载使用usb转ttl工具。
02软件部分
2.1开发环境
个人是在wsl ubuntu18.04环境下使用vscode进行项目的开发,具体的环境搭建过程可参考帖子: 【轻松上手】1.小安派开箱及开发环境搭建
2.2ui设计
本项目直接使用了lcd的bsp驱动来进行ui的绘制。ui界面分为两层,底层是game的界面,上浮的一层显示的是game手柄的8个触摸按键。为了方便的确定触摸按键的位置,特地在solidworks中绘制了一个草图,用草图的尺寸来方便确定每个按键的屏幕像素坐标。
额外需要说明的是,显示使用的横向的坐标系,但是触摸驱动使用的是纵向的坐标系。它们的坐标原点是不一样的,需要进行坐标的变换。
程序设计思路
本项目程序直接使用官方sdk的example/hello案例上进行添加代码的,其整体的实现思路如下:
系统初始化
基于freertos创建两个任务
(1) button_task任务负责对触摸屏进行实时的读取。
(2) main_task中对输入的game rom进行读取,然后解析并模拟6502的执行。整个game的核心就在这个任务中。在完成每一行的解码后,在这个task中会及时的去渲染屏幕中的对应行。
03使用说明
3.1 固件烧录
以下操作需要再环境配置完成后进行。
程序编译
在项目根目录下打开终端,输入make
如无错误,最终会显示以下内容
固件烧录
在终端中输入make flash comx=comxx 其中xx为实际连接的下载器的com口号,如下图中com口为39。
烧录正常输出:
3.2 rom替换
理论上这个项目的模拟器是支持所有不带多合一的rom的。而且由于模组的rom空间比较大,其实可以放下很多的game数据。当前预放了三个gamerom, 需要运行哪一个就去掉哪一个的注释,然后编译烧录。rom替换的具体方法可以参考:【轻松上手】小安派nes game rom替换
04更多资料
因为模拟器是我在多年前用c写的,方便调试该模拟器可以运行在windows平台上,使用sdl显示画面。当然因为当时写模拟器的时候也没有考虑音频解码,所以game是没有声音的。后续有兴趣我们可以一起来讲更优秀的nofrendo模拟器移植过来,它是支持音频的。
当前nofrendo的移植已经编译通过正在调试。
当前触摸屏太小了,所以操作起来不是很方便。所以也在考虑使用uniapp在手机端做一个基于wifi连接的手柄。
CITE 2014:完整呈现4G产业全景
IP属地是如何标识到我们的位置?
谈物联网在农牧业中的应用
再造辉煌 摩托罗拉TD手机新品采用联芯芯片
长江存储 NVMe SSD TiPro7000评测分析
如何用小安派玩小霸王游戏
欧司朗光电半导体正在推动UV-C LED的产业化
移柯通信携带全系列的IOT连接产品亮相MWC
SGS:国际首个电池行业EPD平台发布产品类别规则(PCR)
华为P40 Pro保护壳曝光,模仿Mate系列保时捷设计
LED行业发展的四大合理性趋势预测与解读
2010年10大流行搜索关键词 Facebook居首
基于JAZZ 0.35 μm BICMOS工艺的低噪声放大器设计
电子芯闻早报:紫光收购美光新进展
最理想的MCU+FPGA架构
安森美电机开发套件获中国2021年Top 10电源产品奖
通过费托合成工艺提高CO加氢对高碳氢化合物的选择性
3D集成电路如何实现
美国推出新版本RFID标签读取机器人AdvanRobot
工业物联网和智能制造你需要知道的有什么