NES专题——NES的游戏硬件

目录

摘要

一、墨盒(Cartridges)

二、Famicom磁盘系统(Famicom Disk System )

三、游戏精灵(Game Genie )

四、控制手柄

五、Zapper(捕捉器)

六、参考资料


 

摘要

本文介绍了NES游戏机的相关游戏硬件,本文参考《Nintendo Entertainment System Documentation(任天堂娱乐系统文档)》,如需进一步的了解可以查阅该文档。

 

一、墨盒(Cartridges)

NES的游戏都是基于游戏包的。游戏本身是存储在墨盒的ROM芯片内的。一些墨盒还具有RAM功能,由电池供电,以使游戏得以保存。(感觉叫“墨盒”怪怪的,就是那个游戏卡带)。

卡带

下图显示了Famicom和NES的墨盒之间的差异。任天堂为Famicom设计了一个基本的墨盒,但是其他开发者设计了自己的墨盒,有各种形状、大小和颜色。任天堂用NES按照标准设计生产了墨盒。尽管NES的更大,但其中大部分只是浪费空间。Famicom盒式磁带有60针连接,而NES盒式磁带有72针连接,这使得两种格式在没有适配器的情况下不兼容。下图显示了NES的内部,从主板的底部看。红线表示开袋连接到的72针连接器。

插入到NES的卡带
NES卡带内部

1、内存映射器(Memory Mappers)

NES有限的内存对于早期的游戏来说已经足够了,但是随着游戏变得越来越复杂,游戏变得越来越大,内存也变得不足。为了允许卡带包含更多的ROM,NES必须能够在需要的时候交换内存中的数据。由于NES不能解决$FFFF地址以外的问题,所以切换了卡带本身的硬件。这种硬件被称为内存映射器(memory mapper)或MMC(内存管理芯片)。

内存映射的基本思想是当系统需要访问ROM库中当前没有加载到内存中的数据时,软件指示需要切换Bank,所选的Bank被加载到内存中的一个页面中,替换现有的内容。内存映射器的使用是NES长久的因素之一,这使得它能够克服技术缺陷。

NES使用了一些内存映射器,一个完整的列表可以在附录c中找到。下面描述了一些更常见的内存映射器,关于它们如何工作的详细说明可以在附录D中找到。(附录C和D在《任天堂娱乐系统文档》中,详细了解可以看该文档,图太多就不在这贴了。)

(1)UNROM交换机是第一个允许对NES游戏进行Bank交换的芯片。UNROM只允许PRG-ROM的切换。它不支持CHR-ROM。使用UNROM的16 KB PRG-ROM Bank的最大数量是8。

(2)CNROM交换机允许交换CHR-ROM,但不允许交换PRG-ROM。因此,程序代码的大小并不比不使用内存映射器的游戏大,因此可以生成更复杂的图形

(3)MMC1允许同时切换PRG-ROM和CHR-ROM。该芯片还允许更改表镜像的名称,并支持保存到RAM芯片。使用MMC1的16 KB PRG-ROM Bank的最大数量是8。MMC1是最常用的内存映射器,被许多游戏使用,包括“Metroid”和“Legend of Zelda”。

(4)MMC3允许同时切换PRG-ROM和CHR-ROM。该芯片还允许选择屏幕滚动,即允许部分屏幕移动,而部分保持静止,并能够产生irq。使用MMC3的16 KB PRG-ROM Bank的最大数量是32。MMC3是使用次数第二多的芯片,包括《超级马里奥兄弟2》和《超级马里奥兄弟3》。

2、文件格式

可以使用模拟器运行的软件通常被称为ROM镜像,以参考用于存储它的原始ROM芯片。一个简单的卡带内容转储不太可能是足够的,因为它没有办法确定文件的每个部分意味着什么。出现了两种不同的文件格式来提供这些信息。iNES文件格式最初是由Marat Fayzullin定义的,用于他的iNES仿真器中。自那以后,大多数仿真器都使用了这种格式,它是ROM映像最常用的格式。INES格式的文件应该有文件扩展名*.nes。该格式在文件的开头提供一个16字节的neader,其中包含重要信息。描述的格式如下表。

起始字节长度(字节)内容
03固定为“NES”,作为iNES文件的标识。

3

1固定为$1A,同样作为文件的标识。
4116KB PRG-ROM Bank的数目,PRG-ROM是用来存储程序代码的ROM区域。
518KB CHR-ROM/VROM Bank的数目,CHR-ROM(字符ROM)和VROM是同义词,是用来存储图像信息(图案表)的ROM区域。
61

ROM 控制字节1:

* Bit 0——表示游戏使用的镜像类型,0为水平镜像,1为垂直镜像。

* Bit 1——内存位置有电池支持的RAM $6000~$7FFF。

* Bit 2——表示存在一个512字节的训练器在内存地址 $7000~$71FF。

* Bit 3——如果这个位被设置,它将覆盖Bit 0 使得4个镜像被使用。

* BIt 4~7——mapper号的低4位。

71

ROM 控制字节2:

* Bits 0~3——保留位,永远为0。

* Bits 4~7——mapper号的高4位。

818KB RAM Bank的数目,为了与以前的iNES格式兼容,为0时表示RAM的第1页。
97保留位,永远为0。

 如果有训练器的话,在文件头之后是512字节的训练器,否则ROM Bank从这里开始,从PRG-ROM开始,然后是CHR -ROM。该格式允许多达256种不同的内存映射器(mapper)。每个映射器(mapper)被分配一个特定的数字,通过将控制字节2的第4-7位向左移动4位,然后将控制字节1的第4-7位相加,就可以得到映射器数字。完整的mapper列表和他们的官方iNES mapper编号可以在附录C中找到,如下表:

mapper列表

“iNES格式有许多问题。它经常被误用,例如人们在标题中插入他们的名字。最近,Marat Fayzullin在NES开发中的参与似乎有所减少,在没有对格式进行任何官方更新的情况下,许多开发人员都指定了自己的更改,其他人也在设计自己的映射器编号。这导致格式越来越不准确,”

UNIF(Universal NES Interchange format)的发展。

UNIF格式文件通常具有扩展名*.unf,并且包含一个标识格式和修订号的头,后跟一系列块。每个块都包含一个ID字符串,用于标识块的用途、块的字节长度和数据。这种格式与XML非常相似,尽管块不是关闭的,而标记是在XML中关闭的。

UNIF格式根据使用的电路板的名称而不是通过一个数字来标识每个映射器。这确保只能使用正版板。尽管UNIF格式在iNES格式上有了很大的改进,但目前它受到较少模拟器的支持,并且格式中可用的ROM文件也较少。在未来几年内,iNES格式应逐渐被UNIF取代。

 

二、Famicom磁盘系统(Famicom Disk System )

任天堂在1986年初发布了Famicom磁盘系统,部分是为了应对芯片价格的上涨,部分是为了让Famicom更像一台电脑,。该系统允许Famicom运行存储在2.5英寸磁盘上的游戏,磁盘上有32kb的RAM和8kb的VRAM,而不是传统的墨盒。Famicom磁盘系统附在Famicom上,Mario Golf磁盘在下图也可以看到。任天堂希望,由于容量更大,该系统能够支持更大的游戏,同时也能为消费者提供更便宜的价格。这些磁盘也可以重复使用,允许玩家在专门的服务亭用一个新的游戏替换一个游戏,只需支付少量费用,而不必支付新磁盘的费用。1986年售出近200万个磁盘系统。不过,该系统并不受许可证持有者的欢迎,他们必须决定发布游戏的格式,任天堂对磁盘系统游戏的严格许可也使得该格式不受欢迎。当半导体价格下降时,同样价格的盒带可能比磁盘具有更高的容量。虽然到1990年为止,已经售出了400多万个磁盘系统,但盒式磁带仍然是存储游戏的主要方法,Famicom磁盘系统也从未在亚洲以外地区发布过。

Famicom连接到Famicom磁盘系统

 

“马里奥高尔夫球”磁盘

 

三、游戏精灵(Game Genie )

游戏精灵是一种允许玩家通过调整代码执行方式来作弊的设备。游戏精灵是由代码大师设计的,由Galoob Toys发行。其他欺骗设备通过锁定给定内存位置的值来工作。例如,如果游戏将剩余的生命值存储在$1000的位置,那么将此值锁定为5将为玩家提供无限的生命值。然而,游戏精灵是在ROM而不是RAM上工作的。它监视盒式磁带端口的地址总线,如果检测到给定的地址,则将所需的值写入数据总线。

游戏精灵

 

四、控制手柄

6502 CPU使用内存映射I/O(输入/输出)。这意味着与内存相同的指令和总线用于与I/O设备通信,即写入特定的内存位置来写入相应的设备。在NES中,输入设备的I/O端口为$4016和$4017,如下表(“$”这个符号在这里代表十六进制的意思)。

内存地址操作功能描述
$4016可读可写

Joypad 1:

* Bit 0——写入时从joypad读取数据或导致joypad频闪。

* Bit 3——指示Zapper是否指向精灵。

* Bit 4——在释放捕捉器触发器时清除。

只有Bit 0 参与写入。

$4017可读可写

Joypad 2:

* Bit 0——写入时从joypad读取数据或导致joypad频闪。

* Bit 3——指示Zapper是否指向精灵。

* Bit 4——在释放捕捉器触发器时清除。

只有Bit 0 参与写入。

原NES使用矩形控制手柄,如下图所示。键盘上有四个按钮,A,B,开始和选择,还有一个用于控制移动的四向十字。尽管发布了许多变体,通常还带有慢动作和涡轮点火等附加功能,但到目前为止,最常用的还是原始设计。

原始的NES控制手柄

系统从I/O端口多次读取以获取有关控制器的所有信息。前8次读取中的每一次都按顺序A、B、开始、选择、上、下、左、右指示标准控制器上一个按钮的状态。第一个控制器连接到端口$4016,第二个连接到$4017。使用四播放器适配器可以将四个控制器连接到系统,尽管这种情况很少见。在这种情况下,控制器1和控制器3连接到$4016,控制器2和控制器4连接到$4017。接下来的8次读取将获得端口上第二个控制器的状态,否则将忽略它们。

读取17-20次检索标识设备是否已连接的签名,如果已连接,则检索设备类型。如果joypad连接到$4016,则返回值为01b;如果一个joypad连接到$4017,则返回值为10b。在循环重新开始之前,不需要再读取4次。

从I/O设备读取数据的过程可以通过使用冲程方法重置。当需要重置时,首先向端口写入1,然后写入0表示重置。

 

五、Zapper(捕捉器)

当NES首次在美国推出时,任天堂包括了一种叫做Zapper的轻枪。下图显示了Zapper的原始版本,尽管后来颜色变为橙色。通过使用瞄准镜瞄准,玩家可以产生相当精确的结果。有几款游戏提供了Zapper支持,包括猎鸭、口香糖和狂野枪手。

原始的NES Zapper光枪

“Zapper是通过接收屏幕上的光线来工作的。必须正确调整电视的对比度和亮度控制,否则镜头可能无法注册。(字符应尽可能明亮,背景区域应尽可能暗。)

从本质上说,这个捕猎器的工作原理是在它瞄准的地方测量光的强度。当系统检测到触发器被触发时,它会在屏幕上的精灵周围画一个白色框。然后,Zapper可以检查颜色强度,并确定它是指向属于背景的白色区域(sprite)还是黑色区域(dark area)。

 

六、参考资料

《Nintendo Entertainment System Documentation(任天堂娱乐系统文档)》

链接:https://pan.baidu.com/s/1QhbK6ADAHqe1mHkKGALH6A  提取码:rr69

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: NES游戏打包全中文版是指将任天堂娱乐系统(NES)上的所有游戏都以中文的形式打包。这样的打包版本将包含中文的游戏标题、游戏内文本、菜单选项和操作指南等,并且所有游戏内容都将以中文呈现。 这样的中文版打包对于喜爱NES游戏的中文玩家来说是非常方便和受欢迎的。玩家们无需再费心去寻找翻译过的游戏,或是需要额外的翻译工具来理解游戏内容。 中文版的NES游戏打包对于提高游戏的可玩性和用户体验也起到了积极的作用。通过将游戏内文本和指导信息转换为中文,玩家能更容易地理解游戏规则、剧情和操作指导,进而更好地享受游戏乐趣。 另外,中文版的打包还有助于宣传和传承经典的NES游戏。有些经典的NES游戏由于语言的限制而没有在中国市场上发布,通过将这些游戏翻译为中文并以打包的形式发布,可以让更多的中国玩家接触到这些经典作品,增加对游戏的了解和兴趣。 总之,NES游戏打包全中文版能够让中文玩家更方便地享受高质量的NES游戏,提高游戏的可玩性和用户体验,同时也促进了游戏文化的传播和传承。 ### 回答2: 目前市面上有一些NES游戏打包中文版的产品,这些产品主要是将原本只有英文或其他语言的NES游戏翻译成中文,并进行游戏汉化。这样,喜欢玩NES游戏的玩家们就可以在中文界面下享受这些经典游戏了。 NES游戏打包中文版不仅仅是简单地将游戏的菜单和文字进行翻译,还涉及到游戏内部的各种文本、对话以及说明等内容的汉化。这样,玩家们在游玩时就能够更好地理解游戏的剧情、任务要求等信息。同时,中文版还会对游戏的难度进行适度调整,以便符合玩家的需求。 值得一提的是,NES游戏打包中文版通常不仅提供单一游戏的翻译,还会将多个游戏整合到一个打包中,使玩家们有更多的选择。这些打包中可以包括各类经典游戏,如《超级马里奥兄弟》、《塞尔达传说》等,给玩家们带来更多的游戏乐趣。 同时,随着社交媒体和线上论坛的发展,玩家们可以方便地分享他们对游戏的心得、攻略等,这也进一步丰富了玩家们的游戏体验。 总而言之,NES游戏打包中文版为喜爱这些经典游戏的玩家们提供了更多选择和更好的游戏体验,同时也促进了游戏社区的交流和发展。希望在未来,会有更多的NES游戏能够推出全中文版,让更多玩家能够享受到这些经典游戏的魅力。 ### 回答3: NES游戏打包全中文版是一种针对中国市场的特殊需求的解决方案。在这种全中文版的游戏打包中,游戏的界面、菜单、提示、对话框等内容都会被翻译成中文,以便中国玩家能够更好地理解和享受游戏。 首先,将游戏内容翻译成中文是为了提高游戏的可玩性和可读性。对于那些不懂英语或不熟悉游戏中常见术语的玩家来说,中文界面的游戏更易于理解和操作。这样一来,玩家就可以更好地体验游戏的乐趣,而不会因为语言障碍而受到困扰。 其次,全中文版的NES游戏打包也有助于推广和普及游戏文化。中国是一个庞大的游戏市场,有着众多的游戏玩家群体。通过将NES游戏翻译成中文,可以吸引更多的玩家参与其中,增强他们对游戏文化的兴趣。这有助于推动游戏产业的发展,并促进文化交流与传播。 最后,全中文版的NES游戏打包也是对玩家需求的回应。很多玩家希望能够以自己熟悉的语言进行游戏,能够更好地理解游戏的剧情和玩法。因此,提供全中文版的游戏打包能够满足这一需求,让玩家在游戏中更好地沉浸和享受。 总之,NES游戏打包全中文版是为了满足中国市场的需求,提高游戏的可玩性和可读性,推广游戏文化,并回应玩家对全中文游戏的需求。这是一个积极的发展方向,将进一步促进游戏产业的繁荣与发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值