Nesizm是Casio Prizm系列圖形計算器的Nintendo娛樂系統模擬器。目前,它支持FX-CG10,FX-CG20,FX-CG50和Graph 90+ E Casio計算器。 NESIZM是從頭開始構建的,並以表演的方式構建,同時在必要時保持巧妙的緩存,強迫對齊和手寫組件盡可能保持準確的仿真和兼容性。它以60 fps的速度運行大多數標題,而FX-CG50上沒有超頻。
該項目源於我對早期遊戲開發技術的興趣,以及Prizm作為平台的固有好處。現在有一個大量的播放器安裝基礎,他們現在可以在許多小時的電池壽命中播放NES,而從鍵盤到顯示,則可以使用0個輸入滯後。
通過USB鏈接時,將nesizm.g3a文件(或nesizm_cg10.g3a(如果有FX-CG10)(如果有FX-CG10)(如果有FX-CG10))。 NES ROM(.NES)也應該進入根目錄。保留這些文件的文件名應該簡單且小於32個字符,例如mygame.nes。模擬器確實支持NES 2.0 ROM格式,但我沒有對其進行廣泛測試。
在菜單系統中,使用箭頭鍵,然後移動或輸入以選擇。您也可以使用alpha快速退出子菜單。當前選定選項的幫助位於右上方。
在遊戲中,菜單鍵將退出“設置”屏幕,然後再次按菜單將帶您回到計算器OS。
您可以在“設置”菜單中配置自己的密鑰,這些是我發現運行良好的默認值:
請注意,如果將渦輪增壓設置設置為30 Hz,那麼對於某些遊戲而導致它們故障可能太快了。
如果您希望使用第二個控制器播放,則可以使用“ options->“控件”中的Remap按鈕選項”將其映射到計算器上的其他按鈕。但是,這很麻煩,因此默認情況下,播放器2沒有映射到任何按鈕。
每個ROM都支持單個保存狀態,可以使用“控件”部分中提到的可拆卸鍵加載/保存。這些默認為計算器上的“ S”和“ L”鍵。保存狀態文件將使用.FCS擴展名保存到您的主存儲中。
這些保存狀態通常與流行的PC NES模擬器FCEUX相處。但是,默認情況下,FCEUX在保存時可以在其保存狀態上進行壓縮,因此,為了將保存狀態運回計算器,您需要在FCEUX中禁用保存狀態壓縮。
如果ROM使用電池後面的功能,例如Zelda的傳奇,則使用菜單按鈕返回主菜單時,將自動保存此內存。請記住,使用保存狀態將完全覆蓋電池備份的數據。
屏幕拉伸選項利用屏幕的高刷新速率將信號相連,這與舊的交織電視的工作方式非常相似。這與TFT顏色屏幕有效,該屏幕在Prizm上具有輕微的顏色延遲,很難注意到。如果將拉伸選項設置為4:3,它將非常匹配原始遊戲的比例。但是,它需要高FPS。因此,如果您的FramesKip選項非常高,則模擬器視覺效果將開始看起來故障。通常,將您的選項設置為很高的FramesKip應該是不必要的。計算器電池壽命似乎並未受到框架跳過的嚴重影響。
包括3個調色板可供選擇。他們都感到有些不同,所以選擇您認為最好的一種。在很多方面,NES都沒有真正的正確顏色,因為該時代的電視都可以略有不同的方式來解釋NES的信號。選擇調色板後,您可以調整亮度(如果您處於黑暗的環境中,則可以調整到非常低的水平),顏色飽和度均可調節。請記住,提高亮度只會增加所用顏色的相對亮度,而不必增加屏幕的亮度。
如果您如此傾向,可以使用自定義調色板。您可以通過在線輕鬆搜索可以找到192個字節調色板文件。將所需的調色板重命名為“ custom.pal”,並將其包含在文件存儲的根目錄中。此時,應該選擇作為第四個調色板選項。
有4個背景選項可用。 “扭曲”背景與主菜單匹配。電視背景提供了懷舊的舊電視背景,尤其是在較小的屏幕拉伸模式下。遊戲BG顏色選項將與當前選擇的遊戲背景調色板顏色匹配。每個遊戲的使用情況都不同,但在某些遊戲中效果很好,例如Super Mario Bros中的藍色/黑色背景選擇。
如果您需要跟踪時間,則可以選擇在屏幕右下角顯示遊戲時鐘。不過,它確實需要設置,因為計算器OS中通常不使用時鐘。使用第三方應用程序(例如G-Clock或GBL08MA出色的實用程序應用程序)設置時鐘。
FPS也可以顯示在屏幕的此角落。請記住,這僅僅是在給定的一秒鐘內繪製的框架,而不是跳過的幀。因此,如果這說明40 fps且您的幀跳過選項設置為自動,則模擬器仍以100%的速度運行,但是在繪製到屏幕以節省處理時,每三個幀都會跳過每三個幀。
模擬器幾乎可以使用兼容的映射器支持所有遊戲,沒有任何問題。如果您遇到一個真正重大問題的遊戲,請告訴我。
這是映射器支持表。模擬器幾乎支持美國NTSC和PAL映射器,不包括MMC5,覆蓋了這些地區的商業發行的遊戲的98%。未計劃FAMICOM磁盤和VS系統支持。
映射器名稱 | 出版商 | 姓名 | 出版商 | 姓名 | 出版商 |
---|---|---|---|---|---|
MMC1 | 任天堂 | 軸 | 任天堂 | 南京163 | 南京 |
MMC2 | 任天堂 | gxrom | 任天堂 | Sunsoft 3 | Sunsoft |
MMC3 | 任天堂 | Bnrom | 任天堂 | Sunsoft 4 | Sunsoft |
MMC4 | 任天堂 | null / nrom | 一些 | Sunsoft 5 | Sunsoft |
MMC6 | 任天堂 | 彩色夢 | 彩色夢 | RAMBO-1 | Tengen |
CNROM | 任天堂 | NINA-03/06 | 大街 | Nina-1 | IREM |
分開 | 任天堂 | 喀麥卡 | 是的 | JF-11/14 | 墨西哥胡椒 |
可以在此處找到一張ROM和映射器的完整表,但我不會完全保持最新狀態:https://docs.google.com/spreadsheets/d/1tfgiu6dodagvizsmy3flpsmzvifkiysoxiysoxiysoxi9uwl-rlry/edit?usp = sharing
與美國和日本(NTSC)的遊戲相比,PAL ROM以50 Hz的不同幀速率運行,該遊戲以60 Hz的速度運行。這,加上其他一些時機差異意味著它們需要以不同的方式模仿。不幸的是,大多數用於PAL遊戲的ROM文件並未準確地將自己識別為需要PAL仿真。使用nesizm,您可以通過在ROM文件名中包括(E)或PAL(所有CAP)(例如gamepal.nes)來正確運行PAL遊戲。
遊戲精靈代碼通過每個遊戲單獨的文件支持。如果您有一個帶有文件名“ gamename.gg”的文本文件,其中gamename與您的rom文件匹配,將nes擴展名匹配,並帶有行分離的遊戲genie代碼,則仿真器將加載並在加載ROM時使用這些代碼。成功發生時,您將在菜單中向您提供對話框。如果您想使用計算器上的文本編輯器手動編輯代碼,我建議使用GBL08MA的實用程序應用程序。您可以在https://github.com/gbl08ma/utilities上找到
如果您的TXT文件與ROM文件具有相同的名稱,則在通過主菜單將游戲加載到FAQ查看器中時,它將可見。常見問題解答觀眾會記住您在玩遊戲時以前的位置。用箭頭鍵導航常見問題解答,您的位置通過右側的滾動條顯示。您也可以使用0-9鍵跳過文件的10%增量。
模擬器對聲音有全力支持。聲音是一種微調的算法,每秒可調節1位聲音超過500,000次。不幸的是,聲音例程將仿真降低約20%,但幀跳過這還不錯。您也可以使用諸如PTUNE3之類的實用程序來超頻您的CG50以獲得60 fps的聲音,但是我不建議它,因為它是電池耗盡的。在選項中的“聲音”菜單中啟用它。為了使用它,您需要2.5毫米(男)至3.5毫米(女)適配器。這些可以在各種在線供應商中找到幾美元,這無需花哨!我還建議通過耳機享受聲音信號。
還有一個額外的質量選項,它更像是主觀的東西。質量選項將基於DMC發電機來減少三角形和噪聲波發生器,就像原始NES一樣,並添加了一個額外的低通濾波器,以避免快速移動。在實踐中,它具有一位的聲音,它似乎並不重要。
我的另一個存儲庫Prizmsdk需要從源構建nesizm。將您的Nesizm克隆放入SDK Projects目錄中。
要在Windows機器上構建,我建議使用Visual Studio Community Edition使用項目文件,在該版本中我設置了很好的設置。有關其他系統,請參閱您的PRIZM SDK文檔,以了解如何編譯項目。請參閱make-devicerelease.bat中的配置選項。
如果您確實使用Visual Studio,則包括一個使用Windows模擬器的項目,我寫了包裝Prizm OS功能,以便可以輕鬆地測試代碼和模擬器,並在Visual Studio中進行迭代。有關其使用情況的詳細信息,請參見prizmsim.cpp/h代碼。
Nesdev Wiki在http://wiki.nesdev.com/上發現在Nesizm的開發中非常有用。我對模擬器開發人員社區的最誠摯的感謝,他們收集了我在一個地方寫模擬器所需的所有信息。
FCEUX,在http://www.fceux.com上找到,提供了出色的調試工具,使我可以輕鬆地比較和對比我的仿真器狀態,以便在具有兼容性問題的遊戲中進行比較。通過在PC上使用模擬器來向他們展示一些愛!
ti-planet.org的critor,他在nesizm和Casio Community上的出色文章。他的興奮感是傳染性的!