| 本帖最后由 猪百岁 于 2021-4-22 19:43 编辑 
 NES 游戏模拟器经典的 FC 红白机 游戏模拟器, 带我们回到小时候吧~~ 警告,该模块只在标准固件(> 2m)中被编译包含,其他固件不带有,如有需求,请重新编译固件。 初始化  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: 初始化时的音量, 后面可以通过按键调整
 运行  NES游戏ROM 
nes: 游戏ROM路径, 比如/sd/mario.nes try:
  nes.init(nes.INPUT)
  nes.load("/sd/mario.nes")
  while True:
    nes.loop()
finally:
  nes.free()
 
nes.input:(①号机手柄, ②号机手柄, 菜单功能) 
移动:W A S DA:JB:Kstart:M或者Enteroption:N或者\退出:ESC音量 -:-音量 +:=运行速度 -:R运行速度 +:F 
移动: 方向键<-^V->A:□B:×start:STARTselect:SELECT退出: 暂无音量 -:R2音量 +:R1运行速度 -:L1运行速度 +:L2 
"mario.nes" 游戏文件请自行搜索下载 
2021年01月28日:现在建议使用 Maix handle (I2C 设备)进行游玩,如下代码注释  nes.input(p1, p2, 0)表示输入两个手柄的数据。 import nes, lcd
lcd.init(freq=15000000)
try:
  nes.init(nes.INPUT)
  nes.load("mario.nes")
  while True:
    # p1 = i2c.readfrom(66, 1) # handle i2c addr
    # p2 = i2c.readfrom(74, 1) # handle i2c addr
    # nes.input(p1, p2, 0)
    nes.loop()
finally:
  nes.free()
 import nes, lcd
lcd.init(freq=15000000)
nes.init(nes.KEYBOARD)
nes.load("/sd/mario.nes")
while True:
    nes.loop()
 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.load("/sd/mario.nes")
while True:
    nes.loop()
 |