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上的出色文章。他的兴奋感是传染性的!