NES 游戏模拟器
经典的 FC 红白机 游戏模拟器, 带我们回到小时候吧~~
或者? 让我们想办法让它自己玩自己?
1. 函数
1.1. init(rc_type=nes.KEYBOARD, cs, mosi, miso, clk, repeat=16, vol=5)
初始化 NES 模拟器
参数
tc_type: 遥控器类型, 键盘(nes.KEYBOARD)(注意是串口与电脑通信,而不是直接接USB键盘到开发板)或者手柄(nes.JOYSTICK)。建议使用
PS2手柄,体验会更好, 键盘通过串口工具输入可能不能同时按多个按键,当然也可以通过自己在PC写一个脚本来转发键值就能解决(去这里找找?)cs: 如果使用SPI接口的PS2手柄, 传入cs外设编号(注意不是引脚号,需要先映射引脚)mosi: 如果使用SPI接口的PS2手柄, 传入mosi外设编号(注意不是引脚号,需要先映射引脚)miso: 如果使用SPI接口的PS2手柄, 传入miso外设编号(注意不是引脚号,需要先映射引脚)clk: 如果使用SPI接口的PS2手柄, 传入clk外设编号(注意不是引脚号,需要先映射引脚)repeat: 这个参数只对使用键盘(/串口)时, 指按键的重复率vol: 初始化时的音量, 后面可以通过按键调整
1.2. run(nes)
运行 NES 游戏 ROM
参数
nes: 游戏ROM路径, 比如/sd/mario.nes
2. 快捷键
2.1. 键盘(/串口)
移动:W A S DA:JB:Kstart:M或者Enteroption:N或者\退出:ESC音量 -:-音量 +:=运行速度 -:R运行速度 +:F
2.2. 手柄
移动: 方向键<-^V->A:□B:×start:STARTselect:SELECT退出: 暂无音量 -:R2音量 +:R1运行速度 -:L1运行速度 +:L2
3. 例
4. 例 1: 键盘(串口)
import nes, lcd
lcd.init(freq=15000000)
nes.init(nes.KEYBOARD)
nes.run("/sd/mario.nes")
5. 例 2: PS2 手柄
import nes, lcd
from fpioa_manager import fm
fm.register(19, fm.fpioa.GPIOHS19)
fm.register(18, fm.fpioa.GPIOHS18)
fm.register(23, fm.fpioa.GPIOHS23)
fm.register(21, fm.fpioa.GPIOHS21)
lcd.init(freq=15000000)
nes.init(nes.JOYSTICK, cs=fm.fpioa.GPIOHS19, clk=fm.fpioa.GPIOHS18, mosi=fm.fpioa.GPIOHS23, miso=fm.fpioa.GPIOHS21)
nes.run("/sd/mario.nes")