概述
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文章
879瀏覽量
43302
發布評論請先 登錄
相關推薦
評論