概述
That Arcada该播放器非常适合在MakeCode Arcade或CircuitPython中编写自己的游戏-但如果您想尝试自制的Nintendo设计,也可以通过将nofrendo移植到ATSAMD51来播放NES ROM。
该仿真器可以从内置QSPI存储设备中以全速和声音播放游戏!播放任何256KB或更小的ROM,并保存/恢复游戏状态,以便您可以随时休息一下。
尝试一些经典ROM,或查看令人惊叹的NES自制场景,以尝试经典8位游戏平台,定义了世代
支持的硬件
从理论上讲,任何支持Arcada的主板-但我们建议使用带有游戏手柄+按钮的主板:
Adafruit PyGamer入门套件
产品编号:4277
请注意:入门套件可能会带来宝蓝色或紫色的保护套(它们都是可爱的颜色)什么东西适合您的口袋,完全打开。..
缺货
外面数量
添加到愿望清单
+新列表
用于MakeCode Arcade,CircuitPython或Arduino的Adafruit PyGamer
产品ID:4242
什么东西可以装在您的口袋里,完全开源,并且可以运行您自己编写的CircuitPython,MakeCode Arcade或Arduino游戏?没错,这是Adafruit 。..
$ 39.95
入库存
添加到购物车
添加到愿望清单
+新列表
用于MakeCode Arcade,CircuitPython或Arduino的Adafruit PyBadge
产品ID:4200
即将推出!注册后将收到通知,通知卡有多少张信用卡,可以运行CircuitPython,MakeCode Arcade或Arduino?那就是。..
缺货
缺货
添加到愿望清单
+新列表
Adafruit PyBadge LC-MakeCode Arcade,CircuitPython或Arduino
产品ID:3939
信用卡的大小是多少,即使您使用的是信用卡,也可以运行CircuitPython,MakeCode Arcade或Arduino预算?没错,就是theAdafruit 。..
缺货
缺货
添加到愿望清单
+新列表
它所做的事情:
模拟一个使用nofrendo核心的大量ROM/游戏
大多数情况下,全速播放(如果ROM各个部分的子画面很多,则速度可能会有所降低)
通过耳机/扬声器播放游戏音频
对160x128显示屏(4比1像素)进行降采样,如果320x240显示屏则为1:1像素
保存并恢复游戏状态
支持诸如PyGamer和PyBadge之类的Adafruit Arcada板
对芯片进行超频很多
它不能做的事情:
播放大于256KB的ROM
播放非NES ROM
某些ROM无法正常工作-例如Dragon Warrior
支持非SAMD51芯片(要获得Teensy支持,请访问TeensyCEC)
支持其他硬件,除非您已向Arcada添加了支持(可以!)
》
快速入门
除非您需要/希望重新编译源代码,否则我们建议您通过在Arcada板上安装以下UF2来快速入门。
QSPI文件系统
这些UF2默认使用QSPI存储。因此,您必须已经有一个CircuitPython/FAT文件系统。这是由CircuitPython首次安装时创建的,如果您从未加载CircuitPython,请在此页面上查找UF2。安装匹配的驱动器,检查计算机上是否存在CIRCUITPY驱动器,然后可以重新加载Arcada_Nofrendo
CircuitPython下载
Arcada Nofrendo UF2s
双击重置可将您的电路板置于 BOOT 模式,并将这些 UF2 文件拖到上面!
pybadge或edgebadge nofrendo.UF2
pygamer_nofrendo.UF2
安装ROM
添加ROM非常简单。安装完上述UF2后,您的开发板将在计算机上显示为 CIRCUITPY 驱动器。这是2 MB或8 MB的QSPI内部存储。如果您已经运行CircuitPython或我们的Arduboy/Gamebuino演示,甚至可能已经在其中存在一些文件。
新建一个名为 nes
然后在该文件夹中放置所有 nes 个文件。您可以根据需要创建子文件夹。
右键单击 CIRCUITPY ,然后弹出驱动器(如果是Mac,则拖动到“垃圾箱”中)以确保文件已保存。
启动ROM
按重置重新加载Nofrendo。您将看到选择菜单:
您可以使用操纵杆/D-pad上下移动以滚动浏览游戏列表。
如果您按下 B 按钮将进入文件夹级别。
如果在游戏上按下 A 按钮,它将启动游戏。如果选择了文件夹,它将导航到该文件夹。
除非您重新编译将ROM加载到SAMD51芯片的RAM中,否则它将立即将游戏加载到FLASH存储器中。这有点像引导加载程序,但是它从内存末尾开始。
在加载时,如果FLASH中已经包含数据,则不会擦除/重写。因此游戏第二次加载速度更快。如果游戏不合适,则会出现错误
就是这样!游戏将被加载并可以玩
要尝试的ROM
有数百种可以尝试的自制ROM。这里有一些收藏夹,但不要阻止您寻找自己的收藏夹。
https://www.zophar.net/pdroms/nes.html具有公共域ROM li》
http://www.nesworld.com/article.php?system=nes&data=neshomebrew有更多的NES自制游戏。
Google搜索“ NES自制”!
2048
此端口tsone制作的DIY ROM是流行且令人上瘾的滑动拼贴游戏的一部分,它很有趣,可以用来学习和学习。
从此处下载
2048.zip Mirror
同化
一个外星人冒险游戏,您可以在其中玩外星攻击者!
从此处下载
assimilate.zip镜像
The Wit.NES
一个家酿酒港口/致敬见证人-此游戏是一款伟大的益智游戏,具有神秘的规则和一个未知历史的岛屿。..
在此处下载
thewit.zip
保存/恢复状态
任天堂游戏非常困难。如果您来自后代,那么您可能会为少数人的生命感到震惊,而事实上,当您输了钱时,您常常会被踢回开始。某些游戏的代码可以显示,您可以输入其中的内容,从而恢复到中间点;还有一些游戏具有电池供电的SRAM-塞尔达传说(Legend of Zelda)和《最终幻想》(Final Fantasy)是著名的例子。
目前,我们没有Just-SRAM保存/重新加载支持。 但是,我们确实具有全状态保存/重新加载支持。这意味着我们会在游戏进行的任何确切时间备份整个NES系统。我认为这更好一些-只要您愿意,就可以保存整个游戏状态!如果您要保留一款特别不错的游戏,甚至可以从计算机上备份和还原保存的游戏。
备份保存状态!损坏,如果您正在玩很长的游戏,请备份计算机上的sav文件。
目前,每个游戏只有一个保存状态!想要添加多文件保存支持,我们很乐意看到它,但没有计划这样做
保存状态
保存很容易-按住 Select + Start 一秒钟,您将会弹出一个弹出菜单:
使用操纵板滚动菜单,然后按 A 选择您的选择:
继续 》-表示可以继续游戏,无需保存或恢复
保存-保存当前游戏状态t
重新加载保存-如果要“跳过”,从上次保存时从磁盘恢复游戏状态。
保存并退出-保存状态并将游戏退出到主菜单
退出-将游戏退出到主菜单,但不要保存游戏状态。
如果您检查 CIRCUITPY 驱动器,现在将看到 nes与每个游戏匹配的.sav 文件。您可以根据需要备份它们。
下次加载该游戏时,会弹出一个新菜单:
加载保存游戏将加载上次保存的状态
开始新游戏将忽略保存文件,而只是重新加载游戏
删除保存文件将从文件系统中删除文件,在出现问题时非常方便保存(发生)
在Arduino中构建
该项目在Arduino中,添加了大量C语言。如果要添加对其他板的支持或尝试不同的设置,则可以自己构建。
首先-在Arduino中添加对板的支持,以便编译和上传代码。然后加载所有Arcada库。
从此处下载/克隆Arcada nofrendo端口,重命名文件夹nofrendo_arcada并在Arduino中打开它。
编译设置
上载时必须具有一些设置:
CPU速度必须尽可能达到最高,我们希望在200MHz下超频。优化必须 -Ofast ,我们不建议 -funroll-loop s ,因为它似乎并不能加快播放速度,并且体积很大。要显示磁盘驱动器,需要 TinyUSB 。
配置设置
在emuapi.h中,您可以进行一些设置:
下载:文件
复制代码
#elif defined(ADAFRUIT_PYGAMER_M4_EXPRESS) || defined(ADAFRUIT_PYBADGE_M4_EXPRESS)
#define EMU_SCALEDOWN 2
#define USE_FLASH_FOR_ROMSTORAGE // slows it down, but bigger roms!
#define DEFAULT_FLASH_ADDRESS (0x40000-2048) // make sure this is after this programs memory, with unrolled loops we‘re at 222,192! we need a little more than 256KB since roms have 10 extra bytes
#define USE_SAVEFILES
#define USE_SRAM
#else #elif defined(ADAFRUIT_PYGAMER_M4_EXPRESS) || defined(ADAFRUIT_PYBADGE_M4_EXPRESS)
#define EMU_SCALEDOWN 2
#define USE_FLASH_FOR_ROMSTORAGE // slows it down, but bigger roms!
#define DEFAULT_FLASH_ADDRESS (0x40000-2048) // make sure this is after this programs memory, with unrolled loops we’re at 222,192! we need a little more than 256KB since roms have 10 extra bytes
#define USE_SAVEFILES
#define USE_SRAM
#else
EMU_SCALEDOWN用于获取NES输出并将其缩放到160x128显示。如果具有320x240的显示屏,则设置为1!
USE_FLASH_FOR_ROMSTORAGE将ROM放入FLASH中,这对于48KB以上的游戏来说是必需的,但是如果要获得最高速度,则可以将其注释为使用RAM/malloc。
DEFAULT_FLASH_ADDRESS-我们开始刻录ROM的位置。必须在 引导程序(16KB)+ arduino代码(〜200KB)默认值非常好,除非您懂数学,否则不要搞乱。
USE_SAVEFILES是保存/恢复支持,保存时会占用大量RAM,因为它具有内存映射整个文件,因此如果RAM用完了,请注释掉
USE_SRAM,以打开/关闭仿真器的SRAM实现。请继续。
责任编辑:wv
-
模拟器
+关注
关注
2文章
816浏览量
42695
发布评论请先 登录
相关推荐
评论