您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 任天堂红白机 ( NES ) 文档
1+---------------------------+|任天堂红白机(NES)文档||版本.2.00|+---------------------------++------+|目录|+------+1.说明A.弃权声明B.为什么?C.任务D.献给E.鸣谢2.AcronymnsA.内部B.硬件3.CPUA.一般信息B.内存地址C.中断D.NES定制细节E.注意4.PPUA.概述B.内存映射C.NameTablesD.PatternTablesE.AttributeTablesF.调色板G.NameTable镜像H.调色板镜像I.背景卷轴J.屏幕和子图形的层K.子图形和SPR-RAML.子图形#0点击标记M.水平和竖直空白N.$2005/2006矩阵编码O.PPU怪癖P.注意5.pAPU6.手柄,摇杆,扩展端口A.概述B.光线枪2C.四人分插D.摇杆E.PowerPadF.R.O.B(RobotOperatedBuddy)G.信号H.扩展端口I.注意7.硬件内存镜像8.寄存器9.文件格式A.iNES格式(.NES)10.为NES设计程序A.概述B.CPU注意事项C.PPU注意事项11.模拟器A.概述B.CPU注意事项C.PPU注意事项D.APU注意事项12.引用材料A.CPUInformationB.PPUInformationC.APUInformationD.MemoryMapperInformationE.MailingListsF.|1.说明|+---------+A.弃权声明-----------我绝不为本文的信息所造成的结果负责.这些都是公开的信息,并且不应当被用于商业用途.如果你打算将本文用于商业用途,请在开发之前与我联系,使我能够和你商讨你的项目的大纲.我并没有打算在资金上阻碍任何人:如果你打算进行真的NES开发,与任天堂美国公司或任天堂公司联系将是明智的.它们的地址是:3NintendoofAmericaNintendoCompany,Ltd.P.O.Box95760FukuineRedmond,WA98073Kamitakamatsu-cho,USAHigashiyama-ku,Koyoto602,JapanAlltitlesofcartridgesandconsolesystemsareregisteredtrademarksoftheirrespectiveowners.(我不认为有必要把他们一个一个的单独列出来).B.为什么?----------在本文完成时,只有一片概括了NES内部的文章:MaratFayzullin的文章,也就是NES.DOC.虽然Fayzullin的文章在很多地方有缺陷,它提供了一个强大的基础,并且它里面确实有对如何完成那个小黑匣子有一定的陈述.我抓住了扩展NES.DOC的机会,是以其他人的发现和我的经验为基础.这些经验使得这篇文章变成它今天的样子.本文开头部分像是Fayzullin的文章经过了缩写和一些修改的复制品.MaratFayzullin本人后来得到了我的文章,之后他就像别人推荐这篇文章.在我开来,如果没有Marat的NES.DOC,我将永远没有写这一篇的动机.C.任务-------本文的目标很简单:提供关于NES的最准确和最新的信息,以及Famicom的相关信息.D.献给-------我把本文献给AlexKrasivsky.Alex是一个很好的朋友,并且在我眼里,trulystartedtheballofemulationrolling.开心的时间和悲伤的时间,Alex都在.Spasibo,Alex;umnjyRusski...E.鸣谢-------感谢所有帮助使本文成文今天的样子的人.没有你们我将无所作为.AlexKrasivsky-bcat@lapkin.rosprint.ruAndrewDavie4AvatarZ-swahlen@nfinity.comBarubary-barubary@mailexcite.comBluefoot-danmcc@injersey.comCiXeLChi-WenYang-yangfanw@ms4.hinet.netChrisHickman-typhoonz@parodius.comD-slf05@cc.usu.eduDanBoris-dan.boris@coat.comDaviddeRegt-akilla@earthlink.netDonaldMoore-moore@futureone.comFredrikOlsson-flubba@hem2.passagen.seIcerAddis-bldlust@maelstrom.netJonMerkel-jpm5974@omega.uta.eduKevinHorton-khorton@iquest.netLoopy-zxcvzxcv@netzero.netMaratFayzullin-fms@cs.umd.eduMarkKnibbs-mark_k@iname.comMartinNielsen-mnielsen@get2net.dkMattConte-itsbroke@classicgaming.comMatthewRichey-mr6v@andrew.cmu.eduMemblers-5010.0951@tcon.netMiKaelIushin-acc@tulatelecom.ruMikePerry-mj-perry@uiuc.eduMorganJohansson-morgan.johansson@mbox301.swipnet.seNeillCorlett-corlett@elwha.nrrc.ncsu.eduPatMccomack-splat@primenet.comPatrikAlexandersson-patrikus@hem2.passagen.sePaulRobson-AutismUK@aol.comRyanAuge-rauge@hay.netStumble-stumble@alpha.pulsar.netTennesseeCarmel-Veilleux-veilleux@ameth.orgThomasSteen-Thomas.Steen@no.jotankers.comTonyYoung-KBAAA@aol.comVinceIndriolo-indriolo@nm.picker.com\FireBug\-lavos999@aol.com特别感谢Stumble,他通过IRC提供了无限的信息,甚至不睡觉.5+--------------+|2.Acronymns|+--------------+A.内部-------CPU-中央处理器:Self-explanitory.NES使用一个标准6502(NMOS)PPU-图形处理器:用来控制图形,活动块和其他视频相关特点pAPU-pseuedo-Audio处理器:固化于CPU;产生(5)声音通道的波形::四个(4)模拟和一个(1)数字.在NES内部没有处理音频的物理芯片.MMC-大量内存控制器:微型控制器,用来控制使NES游戏使用6502的64Kbyte以外的存储器.他们也可以被用来控制使用CHR-ROM,也许被用来产生“特别效果”,比如强制和中断,以及其他一些.VRAM-图形储存器:这个储存器在PPU内部.NES中安装了16kbits的VRAM.SPR-RAM-子画面储存器:用来储存子画面,共256bytes.虽然他也在PPU内部,但不是VRAM或者ROM的一部分.PRG-ROM-程序只读储存器:存储程序代码的存储器.也可以认为是通过MMC控制的扩展存储器中的代码部分.PRG-RAM-程序可写存储器:于PRG-ROM同义,不过这个是RAM.CHR-ROM-角色只读存储器:在PPU外部的VRAM数据,通过MMC在PPU内部与外部交换,或者在启动队列中“读入”VRAM.VROM-与CHR-ROM同义.SRAM-存档可写存储器:一般用来保存RPG游戏的进度.就像最终幻想系列的“水井”,和“塞尔达传说”.WRAM-与SRAM同义.DMC-δ调制通道:APU中处理数字信号的通道.通常被认为是PCM(Pulse信号调制器)通道.EX-RAM-扩展存储器:在任天堂的MMC5中使用的,允许游戏扩展VRAM的容量.B.硬件-------NES-任天堂娱乐系统:Self-explanitory.Dany-与Famicom同义(硬件范围).Famicom-与NES同义,但不支持原始的DMC数字音频重放.FDS-Famicom磁盘系统:安装在Famicom顶部,支持3双面游戏软盘.6+--------+|3.CPU|+--------+A.一般信息-----------NES使用一个定制的NMOS6502CPU,由Ricoh设计制造.他最初的定制是添加了音频.NTSC制式的NES频率是1.7897725MHZ,PAL的是1.773447MHZ.B.内存地址-----------+---------+-------+-------+-----------------------+|地址|大小|标记|描述|+---------+-------+-------+-----------------------+|$0000|$800||RAM||$0800|$800|M|RAM||$1000|$800|M|RAM||$1800|$800|M|RAM||$2000|8||Registers||$2008|$1FF8|R|Registers||$4000|$20||Registers||$4020|$1FDF||ExpansionROM||$6000|$2000||SRAM||$8000|$4000||PRG-ROM||$C000|$4000||PRG-ROM|+---------+-------+-------+-----------------------+标记图例:M=$0000的镜像R=$2000-2008每8bytes的镜像(e.g.$2008=$2000,$2018=$2000,etc.)C.中断-------6502有三种(3)中断:IRQ/BRK,NMI和RESET.每一种中断都有一个向量.向量是当中断触发时“转到”的指定位置的16位地址.IRQ/BRK在两种情况下触发,因此它有分开的名字:当软件中断请求被执行(BRK指令),7或者硬件中断请求被执行(通过IRQ语句).RESET在启动时被触发.ROM被读入内存,并且6502转到指定的RESET向量.没有寄存器被修改,没有内存被清空;这些仅仅发生在启动时.NMI的意思是Non-MaskableInterrupt(不可屏蔽中断--译注),发生在每次刷新时(VBlank).这些刷新的间隔依赖于所用的系统(PAL/NTSC).NMI在NTSC控制下刷新次数为60次/秒,PAL为50次/秒.6502的中断潜伏期为七(7)个周期;这也就是说需要需要七(7)个周期来移入和移出一个中断.大多数中断应当返回RTI语句.一些NES游戏不使用这种方法,比如SquareSoft的FinalFa-ntasy1的标题.他们的中断使用一种非常奇怪的方式返回:通过手动操纵堆栈,然后返回一个RTS.从技术上说这是有效的,但从精神上说这应当被避免.上述的中断使用下列的向量地址,它们在内存中的地址为:$FFFA=NMI$FFFC=RESET$FFFE-IRQ/BRK中断优先权如下:Highest=RESETNMILowest=IRQ/BRKD.NES订制细节--------------NES的6502并不包括对decimal模式的支持.CLD和SEDopcodesfunctionnormally,但是p中的'd'bit在ADC和SBC中并未被使用.在游戏中将CLD先执行于代码是普遍的行为,就像启动和RESET时的'd'状态并不为人知一样.音频寄
本文标题:任天堂红白机 ( NES ) 文档
链接地址:https://www.777doc.com/doc-6448120 .html