EMU618社区

 找回密码
 立即注册
搜索
查看: 6177|回复: 22

[研究] 【FC】╋╋╋FC模拟器相关技术文献╋╋╋(间断更新)

[复制链接]

签到天数: 2193 天

[LV.Master]伴坛终老

发表于 2010-11-29 10:28:21 | 显示全部楼层 |阅读模式
本帖最后由 woodexe 于 2012-11-3 10:01 编辑

工作第一,娱乐第二。


╋╋╋【.1.】什么是模拟器╋╋╋
什么是模拟器?是模拟飞行或模拟驾驶的工具吗?错
模拟器就是在一种电脑上模拟出另外一台电脑或游戏机的程序。例如:我们现在的PC机可以模拟出任天堂游戏机,并可以玩作天堂游戏机的游戏(ROM文件)。不知什么是ROM的网友,请看“什么是ROM?”
<模拟器> 可能您还从来没听说过这个词,或许您已经对她沉迷许久了,无论如何今天我们来聊聊"她"。
模拟器的英文名称是"EMULATOR"其来源无从查证,当然你去查字典的话一定会跑出像"竞争者"之类的东西,这叫什么吗??据猜测"EMULATOR"一词可能来自英文"SIMULATION---模拟"。
现在意义上的模拟器我们可以理解为"用纯软件的手段来仿真某一种硬件机能的机器"是不是蛮绕的。其实模拟器的范畴很广,有模拟某种电脑的模拟器,模拟大中小型游戏机的模拟器,甚至是模拟某种加密狗的模拟器......今天我们要聊的是游戏模拟器,顾名思义游戏模拟器的功能就是模拟各种各样的游戏机,大到路边街机厅里的"大型电玩"小到小学生手中的"GAMEBOY"都有与之相对应的模拟器。其中有些模拟器的仿真程度已经近乎100%,也就是说你拥有了某个游戏机模拟器就相当于拥有了那个种类的游戏机了!
一个最成功的例子就是那个叫CALLUS的CAPCOM 街机模拟器,它竟将一些CAPCOM的成名大作100%的搬上了电脑屏幕,《三国2命运之交战》,《街头霸王2》这些昔日令我们着迷的大作现在竟可以"稳坐家中,独自享用"了!这在几年以前简直是不可想象的!现在模拟器已经成为一种"文化",一种以网络为依托的文化。一个倍受瞩目的模拟刚刚出炉,不到几个小时的工夫就可以以一种另人吃惊的速度在模拟器的爱好者中间传播开来。现在我就将自己"乘风破浪数十载"所收集的各类模拟器信息整理在一起与大家分享。希望能够为大家了解这些模拟器提供一些帮助。顺便说一句想玩模拟器就必须有一个奔腾级的电脑,P120以上就可以了,如果另外配上手柄就更爽了!如果你对游戏模拟器并不发烧也没关系,说不定看了本文之后你也会深深爱上她。



签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2010-11-29 10:29:46 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 22:54 编辑

╋╋╋【.2.】FC模拟器重要键位默认设定╋╋╋

       Smynesc重要键位设定
-------------------------------------------------------------------               
软启动 F2
硬启动 F1
存档    C
读档    L
切换全屏 Q
FPS 显示 F11
目录     Alt+c+D
截图     G
调色盘   Alt+c+E
VirtuaNES重要键位设定
-------------------------------------------------------------------
软启动 F2
硬启动 F1
存档    C
读档    L
切换全屏 Q
FPS 显示 F11
目录     M
截图     G
联网     N
调色盘   Alt+c+z
屏幕大小   F5  F6   F7  F8
  nestopia重要键位设定
-------------------------------------------------------------------
软启动  Shift+R
硬启动  Shift+T
存档    F5
读档    F7
切换全屏 Alt+Enter
FPS 显示 Ctrl+F
目录     Alt+l
截图     Alt+E
联网     Alt+N+c
调色盘   Alt+o+v
屏幕大小  Alt+1      Alt+2         Alt+3        Alt+s(最大)
----------------------------------------------------------
参数设置   Alt+o+r
金手指   Alt+o+c

UberNES重要键位设定
-------------------------------------------------------------------
软启动 F1
硬启动 F1
存档    F5
读档    F7
-----------------------------------------------------------------
RockNESX重要键位设定
-------------------------------------------------------------------------
ESC键 - 停止游戏
检视 - 刷新游戏列表
F2键 - 即时存档
F4键 - 即时读档
F3键 - 增加存档位置号
shift+F3键 - 减少存档位置号  
F4键 - 负荷状态从目前的插槽
F5键 - 复位(软复位)
F6键 - FD的磁盘方面的变化
F7键 - FD的磁盘插入/弹出
F9键 - 录象(使用当前的插槽)
F10键 - 播放(使用当前的插槽)
F11键 - 全屏幕/窗口切换模式
F12键 - 截图

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2010-11-29 10:30:30 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 22:55 编辑

╋╋╋【.3.】经验分享之--压缩篇╋╋╋
1。FC模拟游戏的最主要特点就是容量极小,我手里现有200多个游戏的ROM,几乎囊括了任天堂在中国近二十年的全部经典游戏,但加上模拟器也不过70多M,是不是很小啊?举一个例子,超级经典之作《魂斗罗》还不到90K!
想想那么多的经典游戏加在一起,却不及今天的一些又臭又长的游戏的十分之一,真不晓得现在这帮GAME制作者们是怎么搞的?不过也难怪,这些游戏的画质和音效等与现在的游戏根本没法比,所以说玩FC模拟的大多是抱着一种怀旧的情节去玩的,没接触的玩家就不要介于了,一定提不起精神的!
2。和许多模拟器一样,这两个FC模拟器也支持游戏手柄,手柄设置的界面也很直观,让人一目了然,而且只要设一次手柄就可以玩所有的游戏了,这点有些模拟器(如winkawaks)是不行的!玩FC游戏只有接上手柄,才能找到任天堂的感觉啊!
3。FC的ROM放置的目录没有什么限制,只要打开模拟器就可以象打开音乐文件一样很方便的从任意目录中打开你的ROM,这点比其它的模拟器要方便的许多,但我个人建议最好还是设一个ROM目录去存放这些文件;
FC的ROM一般是“。NES”文件,但你可以把它压缩在ZIP包中,这样占的空间就更小了,但同样可以用,但不能是RAR包;
更重要的一点是,你可以把这个ZIP包甚至是那个NES文件任意改名,还可以改为中文名,方便你使用!这点在其它的模拟器上好象都不行!个人建议NES原文件名不要改,压成的ZIP包可以起中文名,方便以后查找!

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2010-11-29 10:32:02 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 22:56 编辑

╋╋╋【.4.】VirtualNES使用问答(不断更新中...)╋╋╋

问:VirtuaNES支持磁碟机游戏么?
答:支持。
问:我在运行模拟器的时候不小心按到了空格键,结果游戏卡住了,按一下空格才动一下,怎么办?
答:空格键是默认的单帧暂停键,再按一下P键(默认的暂停键)就可以恢复了。
问:我玩xx游戏画屏怎么办?
答:点选项 → 游戏设置,将视频模式从NTSC修改成PAL(或反之)。如果还不行的话可能是游戏文件有问题,换个ROM看看。
问:我在模拟器中的连发频率怎么调?我已经调到30了,还是慢?
答:并不是每个游戏都是30的,根据游戏的不同有不同的数值,而且也不是最大的就是最快的。你可以自己多尝试几个数值。
问:VirtuaNES能模拟所有FC游戏吗?
答:目前还没有任何一款模拟器敢说自己能模拟所有的游戏,在碰到不能模拟的FC游戏的时候,换一个模拟器试试。
问:怎么用VirtuaNES联网对战?
答:请参看这里:
问:用VirtuaNES玩游戏时为什么两个键同时按无效?
答:这是键盘的问题,有些杂牌键盘多个键同时按就会产生冲突,建议换个键盘。
问:VirtuaNES如何录音?
答:点击菜单栏文件 → 录音即可,快捷键为ctrl + w。
问:如何加快游戏速度?
答:使用快捷键“+”。
问:怎样设置光枪?
答:选中“编辑”→“特殊控制器”→“光线枪”,然后可以用鼠标控制。
问:截图后图片被保存在哪里?
答:默认在模拟器目录下的snapshot(我建的是img文件夹,注意啦)文件夹下

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2010-11-29 10:32:58 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 22:56 编辑

╋╋╋【.5.】什么叫做Dump游戏ROM详解╋╋╋

什么是DUMP?
答:DUMP虽然可以理解为烧录,但正称为吸出.


DUMP是很复杂的吗?
答:不全是,因为根据不同机种使用不同工具,而夸平台手法的话只能用剪芯片,看FLASH芯片型号做PC连接再做软件读出数据.此手法虽称最有效手段不过手法残忍卡带报废.而且要求相当高,非一般人能做得到.当然最简单莫过于烧录器.


DUMP是什么过程?
DUMP之所以理解为烧录,其实就因其性质的相像.主要就是用来备份,它与其不同就是把卡带的数据转为电脑上用的.这个过程就称为DUMP


我想DUMP家用机或掌机的ROM什么方法是最快的啊?
答:烧录器,常见的有GBA,NDS,CD类就有刻录机


DUMP是不是百份之一百能DUMP呢?
答:不肯定,即使你用任何方法与手段都不能百分之一百破解,不可否认任何事物都有一定规律只要找到规律便会势如破竹.但有些是等到很多年以后如CPS2机版


DUMP需要实力吗?
答肯定需要,因为D商有软硬的加密


天空的能力是?
答:天空在初期DUMP能力只是单纯靠本身软件功能.成功机会只有10%,所以当时虽有不少DUMP作推出但能力过于有限``````


天空DUMP GB/GBC MD怎么样增加成功机会率呢?
答:靠的是对于版卡的研究发现到成功机会.


天空已一年多了,那靠的是?
天空靠的是烧录器的帮助以及好友的帮助才能成功,第一年是半个肯帮的人都没有,直到MD DUMP开始才有了转变,有KEN`````````````````等等一众朋友相助.


天空DUMP MD的成功率是?
主要看厂商与版卡成功率达80%,只是原台产的MD卡成功率不高,不行的还有KEN等爱MD的高人协助

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2010-11-29 10:34:09 | 显示全部楼层
本帖最后由 woodexe 于 2012-7-16 18:33 编辑

╋╋╋【.6.】何谓FC/NES游戏的mapper╋╋╋

※ 引述《Lepton (来玩儿的啦)》之铭言:
: 是不是和FWNES的IRQAD的参数有关..
: 还是其它的作用咧??
: 不然说明那些MAPPER的编号是作啥用的呢??
mapper 是什麽?
map 是规划的意思,mapper就是负责规划的东东,负责什麽东西的规划呢?
它是负责ROM与VROM的页切换,或其他行程的切换!MAPPER 是MMC(Multi-
Memory Controller)的代称!
FC的CPU所使用的是6502这个CPU,标准的6502只能定址到64K的位址,但是
利用MMC,我们可以定址到更多的MEMORY,此外利用不同MMC规划可以增加
一些特殊功能,许多的厂商便藉着不同的MMC规划,达到所想设计的游戏!
FC的卡匣组成是怎麽回事?
FC的卡匣通常包括几部份:
  1.PRG ROM(PRoGram ROM)
   是卡匣真正程式码的区域,也有人称为ROM!
  2.CHR ROM(CHaRacter RAM)
   是PPU 内部RAM的图样资料区域,白话文就是类似于存放图形资料的
   区域!也有人称为VROM
  3.MMC 规划(推论? :) )
   由硬体线路或额外晶片组组成
  4.其他?
有的模拟器是把PRG ROM与CHR ROM分开储存,有些是合併储存!
支援MAPPER规划,是模拟器所负责的范围吗?
就FC硬体而言,MMC的规划应该是游戏厂商的问题,是卡匣硬体线路或额外
晶片组的问题(这方面,我没有足够资料,应该是如此!),但是就模拟器而言
,所取得的ROM,只有那些ROM晶片的内容,没有如何规划的资料,于是必须重
新规划,也就是做一个软体的MMC,这个重责大任便落到模拟器的身上,不同
的模拟器支援到不同数量的规划方式,由于不是硬体规划,模拟器不能自行
判断,必须由ROM档桉先提供这个ROM是以何种规划方式,提供的方式是附加
一个档头资讯,这就是我们所谓这个ROM是MAPPER多少的原因!
ROM为什麽有不同的MAPPER?
这个问题原因在于模拟器的模拟程度不足,不同的游戏卡匣,所用的MAPPER
(MMC)都可能不同,直接DUMP出来的话,因为MAPPER负责记忆体切换,如果不
知道切换的方式,就不能执行这个游戏.于是有人利用修改MAPPER及ROM本身
的资料,使得原本不能执行的ROM也能执行!但是为了某个模拟器修改(最常
见的是为了NESTICLE修改),就失去原来的样子,如果出现一个支援原来MAPPER
的模拟器,就可能发生问题!这不一定是只要改改MAPPER号码就能解觉得问
题,可能PRG或CHR ROM都动过手脚!
IRQ?
这方面我虽然有资料,但是还没法子以比较易懂的方式解释!请其他学有专
精的大大解释吧!



             常留意模拟器新闻的玩友应该会有印象的,通常FC/NES模拟器版本更新时都会附带说明新版本支持采用mapperXXX的某某游戏。在词典里,mapper是制图者的意思。而FC/NES模拟器里却有另一种含义。

           mapperXXX是指FC/NES游戏程序的制作流程工艺,XXX为数字序号,是游戏Rom提供者和模拟器作者根据“iNES Format”规则进行编号,以方便归类和模拟,目前已知编号从0至255,共有256种制作流程工艺

          在FC/NES时代,由于那时游戏机并不十分普及,限于开发实力原因,任天堂未能提供全面而完整的FC/NES游戏开发库程序,所以各游戏厂商为了自己开发游戏的便利,在官方开发库中加入一些自己开发的函数库,以充实官方开发库未提供的功能,于是便形成了各种mapper了。

         正是由于各个厂商的mapper各不相同,而且又各不兼容,加上这些都属商业机密,没有太多相关资料描述,开发能正常运行某些特殊mapper的模拟器难度更大,导致目前还没有哪个模拟器能真正通吃所有FC/NES游戏的模拟。

          所以大家不要小看了FC/NES模拟器哦,它的技术含金量跟开发难度一点也不比目前最新游戏机种模拟器低的。
“学会从游戏世界里汲取知识,玩物勿丧志”
【知识普及贴】“mapper”
※ 引述《Lepton (来玩儿的啦)》之铭言:
: 是不是和FWNES的IRQAD的参数有关..
: 还是其它的作用咧??
: 不然说明那些MAPPER的编号是作啥用的呢??
mapper 是什麼?
map 是规划的意思,mapper就是负责规划的东东,负责什麼东西的规划呢?
它是负责ROM与VROM的页切换,或其他行程的切换!MAPPER 是MMC(Multi-
Memory Controller)的代称!
FC的CPU所使用的是6502这个CPU,标準的6502只能定址到64K的位址,但是
利用MMC,我们可以定址到更多的MEMORY,此外利用不同MMC规划可以增加
一些特殊功能,许多的厂商便藉著不同的MMC规划,达到所想设计的游戏!
FC的卡匣组成是怎麼回事?
FC的卡匣通常包括几部份:
  1.PRG ROM(PRoGram ROM)
    是卡匣真正程式码的区域,也有人称為ROM!
  2.CHR ROM(CHaRacter RAM)
    是PPU 内部RAM的图样资料区域,白话文就是类似於存放图形资料的
    区域!也有人称為VROM
  3.MMC 规划(推论?  )
    由硬体线路或额外晶片组组成
  4.其他?
有的模拟器是把PRG ROM与CHR ROM分开储存,有些是合併储存!
支援MAPPER规划,是模拟器所负责的范围吗?
就FC硬体而言,MMC的规划应该是游戏厂商的问题,是卡匣硬体线路或额外
晶片组的问题(这方面,我没有足够资料,应该是如此!),但是就模拟器而言
,所取得的ROM,只有那些ROM晶片的内容,没有如何规划的资料,於是必须重
新规划,也就是做一个软体的MMC,这个重责大任便落到模拟器的身上,不同
的模拟器支援到不同数量的规划方式,由於不是硬体规划,模拟器不能自行
判断,必须由ROM档案先提供这个ROM是以何种规划方式,提供的方式是附加
一个档头资讯,这就是我们所谓这个ROM是MAPPER多少的原因!
ROM為什麼有不同的MAPPER?
这个问题原因在於模拟器的模拟程度不足,不同的游戏卡匣,所用的MAPPER
(MMC)都可能不同,直接DUMP出来的话,因為MAPPER负责记忆体切换,如果不
知道切换的方式,就不能执行这个游戏.於是有人利用修改MAPPER及ROM本身
的资料,使得原本不能执行的ROM也能执行!但是為了某个模拟器修改(最常
见的是為了NESTICLE修改),就失去原来的样子,如果出现一个支援原来MAPPER
的模拟器,就可能发生问题!这不一定是只要改改MAPPER号码就能解觉得问
题,可能PRG或CHR ROM都动过手脚!
IRQ?
这方面我虽然有资料,但是还没法子以比较易懂的方式解释!请其他学有专
精的大大解释吧!
相关资料:都是英文!
-------------------------------------------------------------
  Nintendo Entertainment System Documentation v0.53
            by Y0SHi (yoshi@parodius.com)
             http://nesdev.parodius.com/
-------------------------------------------------------------
Nintendo Entertainment System Architecture
         version 1.4 [09/09/1996]
  by Marat Fayzullin [fms@freeflight.com]
    WWW: http://www.freeflight.com/fms/
                IRC: RST38h
-------------------------------------------------------------
[iNES Header/Format Information File]
[Version 2.0 Compiled on 1/31/98]
[VmprHntrD - kennedy5@flash.net]
-------------------------------------------------------------
※ 引述《numn (游戏散人)》之铭言:
: ※ 引述《Lepton (来玩儿的啦)》之铭言:
: : 是不是和FWNES的IRQAD的参数有关..
: 有特别提到的才要吧
: : 还是其它的作用咧??
: : 不然说明那些MAPPER的编号是作啥用的呢??
: 举例
如fwnes的说明档内附的各个游戏的mapper 有#1~#100
然后每个mapper都有几个游戏是该mapper的...
如从说明档内取出的一行如下..
fwNES mapper 25IRQ)(VRC4 标準2)柯拿米棒球!宇宙巡航舰!
大盗五右卫门2,大盗外传1.
(对不起..因為太长了所以把它分成两行)
上面的mapper 25是告诉我们这些user什麼讯息呢??
是不是要mapper 25的柯拿米棒球!宇宙巡航舰!
大盗五右卫门2,大盗外传1..的nes rom才可以用
2在这个模拟器上呢??若是这个意思的话..那麼
设irqad的参数做什麼用呢??其值又是如何觉定的呢??
该不会要用try的吧??烦请回答...谢谢...
-----------------------------------------------------------
※ 引述《lynnryan (凌澜)》之铭言:
: ※ 引述《zchou (Nelson Chou)》之铭言:
: : mapper 是什麼?
: : FC的CPU所使用的是6502这个CPU,标準的6502只能定址到64K的位址,但是
: : 利用MMC,我们可以定址到更多的MEMORY,此外利用不同MMC规划可以增加
: : 一些特殊功能,许多的厂商便藉著不同的MMC规划,达到所想设计的游戏!
: 这方面我完全不懂...
: 不过,一直有一个问题...
: 像PCE,MD,SFC这些游乐器是不是没有mapper呢?
: 因為这些模拟器好像没有提到过这些事
: 也就没有这些问题吗?
看了 zchou 的详细说明,终於让我大概知道 mapper 的意义了,真是感谢!
不过其实我也有点怀疑自己是不是真懂啦!
是不是那些有 mapper 的游戏卡匣里就是除了游戏资料以外还有额外的电路?
那这样的话 FC 主机这台机器还真神奇,
它原本就设计好不只是 CPU 从卡带中取回指令来执行,
而是本来就设计卡带中可以有其他的电路的啊?
那超任的那些所谓有 DSP 晶片的游戏,像 Super FX 这个东西,
指的也是在卡带里的额外电路吗?
我也有跟 lynnryan 同样的疑问,為什麼其他主机没有?
如果我想得没错,那超任应该有算有吧!
而其他的有没有我不知道,FC 有那麼多我猜是因為它最红又红那麼久吧?
谢谢!
------------------------------------------------------------------
※ 引述《yhchen (瑞)》之铭言:
: ※ 引述《lynnryan (凌澜)》之铭言:
: : 像PCE,MD,SFC这些游乐器是不是没有mapper呢?
有啊!為啥有些游戏有装 DSP 的 SFC 就无法模拟?
那就相当於 mapper 了。其实若要真正的模拟,应该
是游戏 pack 内附 mapper 模拟动作才对,这样子就
达到真正的模拟了
:  是不是那些有 mapper 的游戏卡匣里就是除了游戏资料以外还有额外的电路?
我看一些 rom read 的人的经验,mapper 基本上还
有保护的效果,让盗版者不容易取得 rom。
:  我也有跟 lynnryan 同样的疑问,為什麼其他主机没有?
活的时间不够长,市场不够大,厂商也就懒得开发额
外晶片 (钱的问题) ;再说 mapper 会出现也是由於
6502 的定址问题。随著大家的主机位元数的增加,
programmer 也就不必再花心力去做 bank 切换这种
与游戏无关的部分。 (超任的 DSP 应该不是 bank
切换这种东西吧)
:  如果我想得没错,那超任应该有算有吧!
:  而其他的有没有我不知道,FC 有那麼多我猜是因為它最红又红那麼久吧?
对啊,应该所有主机都有吧?越早期的应该越明显。
------------------------------------
※ 引述《lynnryan (凌澜)》之铭言:
: ※ 引述《zchou (Nelson Chou)》之铭言:
: : mapper 是什麼?
: : FC的CPU所使用的是6502这个CPU,标準的6502只能定址到64K的位址,但是
: : 利用MMC,我们可以定址到更多的MEMORY,此外利用不同MMC规划可以增加
: : 一些特殊功能,许多的厂商便藉著不同的MMC规划,达到所想设计的游戏!
: 这方面我完全不懂...
: 不过,一直有一个问题...
: 像PCE,MD,SFC这些游乐器是不是没有mapper呢?
: 因為这些模拟器好像没有提到过这些事
: 也就没有这些问题吗?
pce,md,sfc的确没有所谓&#392mapper&#392的东东,
為什麼要多设计&#392mapper&#392?
因為fc的6502只能定址64k,同时也没有所谓物理定址能力,
但是64K肯定作不了什麼游戏,
於是N社以留一个后门的方式,
在卡匣作一个memory switch(也就是 mmc),
利用页对应的方式(这方面可能要补充一下系统程式的资讯),
在可定址的范围内作一个窗口以读取资料,
这跟dos时代的EMS狠类似,
只是pc是由os提供这样的功能!
pce的HuC6280 cpu拥有32KB逻辑定址能力及2MBYTE物理定址能力,
这样的空间足够它存放资料了,
MD也是这样,规划最少拥有4MBYTE的ROM 资料区,
另外在卡匣的接脚再定义可扩充至8MB的方式,
SFC更不用说了,最少拥有32MB的ROM定址能力,
没有所谓定址能力不足,又何必多此一举!
但是dsp的问题又与mapper不同,
fc没有多餘接脚可接其他晶片,
所以把扩充摆在mapper(mmc)上,
但是sfc预留了可扩充功能的接脚,
就直接把线路牵到这些接脚便可以了!
MD应该也是如此,不过没有足够资料支持这种说法!
pce的HuCARD接脚应该也有这样功能,
因為PCE有一个ARCADE CARD扩充了PCE的主记忆体,
但是资料不足,详细的运\作方式不知道,
不过与FC的以MAPPER方式扩充功能不同!
-------------------------------------------------
※ 引述《anr (网路醉人)》之铭言:
: PCE的ARCADE CARD
: 有两种一种是对应DUO系列另一种是对应PCE
: 其中对应PCE得卡是真的有ROM
: DUO只是用软体掰掰而以真是!@$#@%$#%2
我的印象是,利用arcade card扩充原本不足的&#392ram&#392,
以便移植更多电动版的游戏,
所以arcade是类似ss的扩张ram卡(1M或4M加速卡之类的东东)
有几种就不知道了!

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2010-11-29 10:37:42 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 22:58 编辑

╋╋╋【.7.】ROM命名规则╋╋╋
07:30...............: 标准代码 ::...............
[a] Alternate     备用版本,由修正BUG或去除作弊码的ROM而来      
Bad Dump      错误DUMP,原因:旧游戏;DUMP错误;上传错误
[f] Fixed         修复过错误,DUMP后不能运行,修复使之可以运行
[h] Hack          HACK版本,修改过剧情或者数据
[o] Overdump      重复DUMP,重复DUMP入无用数据
[p] Pirate        盗版,            
[t] Trained       有修改码菜单,在游戏标题有选项  
[T-] OldTranslation    旧的翻译版本                  
[T+] NewerTranslation  新的翻译版本
[!] Verified Good Dump 完全正确的版本
(-) Unknown Year       发行年未知
(M#) Multilanguage 包括多种语言(# of Languages)         
(###) Checksum     校检簇值(通常是指CRC32值)  
(??k) ROM Size     ROM的大小   
ZZZ_ Unclassified  未分类
(Unl) Unlicensed   未得到任天堂授权            
................: 特殊代码 ::...............
NES/FC
(PC10) PlayChoice 10  一种基于 NES 系统的街机
(VS) Versus           一种基于 NES 系统的街机
[hFFE] FFE Copier fmt ???特殊格式                                   
................: 国家代码 ::...............
(1) Japan & Korea      日本&韩国版   
(4) USA & BrazilNTSC   美版&巴西;NTSC制式
(A) Australia          澳大利亚版         
(B) non USA (Genesis)  非美版         
(C) China              汉化版   
(E) Europe             欧版
(F) France             法语版        
(F) World (Genesis)    世界版
(FC) French Canadian   加拿大发行的法语版         
(FN) Finland           芬兰语版
(G) Germany            德语版
(GR) Greece            希腊语版
(H)  Holland           荷兰语版
(HK) Hong Kong         港版
(I) Italy              意大利语版
(J) Japan              日语版
(K) Korea              韩语版
(NL) Netherlands       荷兰语版
(PD) Public Domain     公共域
(S) Spain              西班牙语版
(SW) Sweden            瑞典语版
(U) USA                美版
(UK) England           英版
(Unk) Unknown Country  未知国家
(Unl) Unlicensed       未授权的版本

签到天数: 1277 天

[LV.10]以坛为家III

发表于 2010-11-29 13:11:16 | 显示全部楼层
不错的总结,等待补坑

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2010-11-30 14:44:31 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 22:58 编辑

╋╋╋【.8.】XML常见术语╋╋╋
Title="游戏名称"
Size="容量大小"
Rom number="游戏编号"
Image number="图号"
CRC="CRC"
Screenshot 1 CRC="图1 CRC"
Screenshot 2 CRC="图2 CRC"
Language="语言"
View="查看"
Number="编号"
Location="发行国家"
Publisher="发行厂商"
Source="发布来源"
Save="存档类型"
None="没有"
Search for="搜寻"
Reset List="清除"
Number of roms in list="列表中共有"
All="全部"
China="中国"
Europe="欧洲"
Japan="日本"
USA="美国"
Germany="德国"
France="法国"
Spain="西班牙"
Netherlands="荷兰"
Italy="意大利"
England="英国"
Denmark="丹麦"
Finland="芬兰"
Norway="挪威"
Poland="波兰"
Portugal="葡萄牙"
Sweden="瑞典"
Australia="澳洲"
North Korea="北韩"
South Korea="南韩"
Brazil="巴西"
Other="其他"
Chinese="中文"
English="英文"
Danish="丹麦文"
Dutch="荷兰文"
Finnish="芬兰文"
French="法文"
German="德文"
Italian="意大利文"
Japanese="日文"
Norwegian="挪威文"
Polish="波兰文"
Portuguese="葡萄牙文"
Spanish="西班牙文"
Swedish="瑞典文"
Tools="工具"
Update="在线更新"
Options="选项"
About="关于"
Made by="制作"
Translated by="翻译"
Icones and logo created by="图示及标志制作 : "
Special thanks to="特别鸣谢 : "
7z module created by="7z 模块制作 : "
Download new Dats="更新数据库"
Download missing pictures="下载缺少的图像"
Start="开始"
Stop="停止"
Hide="隐藏"
Cancel="取消"
Proxy="连线"
Use Proxy="使用代理"
OK="确定"
Apply="应用"
Server="服务器"
Port="端口"
User="用户"
Password="密码"
Rom Naming="命名"
Name="名称"
Save="存取"
Size="大小"
CRC="CRC"
Default="默认值"
No update needed="暂无更新"
Cannot download Dat="未能更新数据库"
Cannot update images="未能更新图像"
Cannot download images="未能下载图像"
Please select a Dat.="请选择数据库"
Error : please try again later="发生错误: 请稍候再试"
Downloading="下载中"
Downloaded="已下载"
Scanning pictures="图像扫瞄中"
Scan complete="已完成图像扫瞄"
Updated="已完成更新"
Download finish="已完成下载"
Update pictures="更新图像"
Update on startup="启动时自动更新"
Close after update="更新后关闭视窗"
Clear="清除"
Emulator path="模拟器的路径"
Renamer="命名器"
Rom folder="文件 文件夹"
Unknown file folder="未知文件 文件夹"
Rename roms in archive files="重新命名压缩文件内游戏"
Deleted added files="删除附加的文件"
Put duplicates in the same archive="将相同的文件合并压缩(merge 压缩),以节省空间"
Compression level="压缩的级别"
Compress memory="压缩所需内存"
Uncompress memory="解压所需内存"
Dictionary=字典大小
Please make your setting.="请设置你的设定"
Rom folder must be configured.="文件 文件夹必须设置"
Please enter a valid number.="请输入有效的编号"
"Unknown files" and "Rom Folder" must be different="未知文件 及 文件 文件夹必须不同"
Select a directory="请选择目录"
Directory does not exist.="目录不存在"
File does not exist.="文件不存在"
Browse="浏览"
Scanning="资料扫描中"
Move unknown files="移动 未知文件 "
General="一般"
Donate="捐赠"
Color of Rom's name="游戏的颜色"
Number of games="共有文件"
Have="持有的 游戏"
Bad named="错名的 游戏"
Miss="缺少的 游戏"
Incorrect compression type="不正确的压缩类型"
Roms="文件"
Show have="显示 持有的 游戏"
Show bad named="显示 错名的 游戏"
Show miss="显示 缺少的 游戏"
Show files in not correct archive type="显示 不正确的压缩类型 游戏"
Reverse list="反向列表次序"
Rename roms="重新命名"
Use renamer="使用 命名器 "
Browse sub folders="扫描子文件夹"
Refresh="刷新列表"
Rename="重新命名文件"
Renaming="重新命名中"
Adding="加入中"
Fix archive="整理压缩类型"
Add roms="加入文件"
Executable file="应用程式"
Select files="选择文件"
Select data files="选择数据库"
Please wait...="请稍候..."
Test files="检测文件"
Testing="检测中"
Re-archive files="重新压缩文件"
Clean archives="删除附加的文件"
Re-archiving="重新压缩中"
Cleaning="删除附加的文件中"
Cannot load file="无法载入文件"
Operation cancelled.="操作已取消"
Cannot rename file in zip="不能够以压缩来重新命名文件"
The file is not a correct archive="这个文件不是正确的压缩类型"
Archive file are corrupt="压缩文件不正确"
Unable to extract files="不能够解压文件"
Unable to create archive="不能够建立压缩文件"
Access denied to="使用权限不允许"
Don't use the following characteres="请勿使用以下字串"
Save game list="储存整个游戏列表"
Save having game="储存 持有的 游戏列表"
Save missing game="储存 缺少的 游戏列表"
Un-archive rom for emulator="模拟器使用非压缩的文件"
Authorize multiple instance="允许同时执行多个 OfflineList"
Compression="压缩"
Temporary folder="临时的文件夹"
Plugins="插件"
Plugin="插件"
Modules="模块"
Module="模块"
Enabled="启用"
Disabled="停用"
Up="上移"
Down="下移"
Top="最前"
Bottom="最后"
Info.="资讯"
Config.="配置"
File="文件"
Version="版本"
SDK Version="SDK 版本"
Comment="备注"
Draw Flags in game list="在列表中显示旗号"
Priority for compression operation="压缩操作的优先权"
Lowest="最低"
Lower="低"
Normal="一般"
Higher="高"
Highest="最高"
Informations="资讯选项"
Search="搜寻选项"
Delete="删除"
Import="导入"
incompatible="不兼容"
unknown="未知文件"
Close="关闭"
Data Manager="数据库管理"
Language number="语言数量"
Use custom location="使用自定 发行国家 格式"
Specifications="资讯/搜寻"
Naming option="命名选项"
Naming configuration="命名设定"
Name in list="列表中显示"
File name="文件名"
Archive name="压缩文件名"
Show language number only if there are more than one language="只显示语数当多于一种语言"
%d is the number of language="%d 是语言的数量"
Select your format="选择你的格式"
UseDuplicateFilter="使用 重复的 游戏筛选器.  所有被筛选的游戏则视为 未知文件 ."
Duplicate Filter="筛选器"
Duplicate="重复的游戏"
ShowDuplicateToolTip="在游戏名称显示 重复的 游戏提示"
showDuplicates="显示 重复的 游戏"
Auto="自动"
Unit="Unit"
Kilo="Kilo"
Mega="Mega"
Giga="Giga"
Archive type="压缩类型"

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2010-12-15 23:02:32 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 22:59 编辑

╋╋╋【.9.】什么是CRC验证╋╋╋

顾名思义,是对数据进行校验的,用来验证数据的一致性和完整性

在计算机文件里面,任何一个文件都唯一地对应一个crc校验码,比如一个文本文档,你编辑完成后这个crc校验码就固定了,即使你在这个文本文档里面输入一个空格,这个crc校验码也会改变

所以你可以通过对比crc校验码来判定是否你下载的文件就是网上给定的文件,以防止下错了文件,比如下了病毒之类的

显然,这个crc校验码对谁都有好处,可以防止非授权的篡改

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2011-1-23 18:34:30 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 23:01 编辑

╋╋╋【.10.】OfflineList资讯汉译╋╋╋

imageNumber 图片编号
releaseNumber ROM编号
title ROM名称
romSize  rom大小
extension  rom格式
saveType  游戏分类
publisher  发行商
sourceRom  发布来源
location  发行国家
language语言
romCRC  ROM CRC
im1CRC  图片crc
comment  备注
duplicateID  相同ID名称

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2011-2-1 18:34:05 | 显示全部楼层
本帖最后由 woodexe 于 2012-3-22 17:14 编辑

【.X.】键盘键和键盘键控制值一览表(键盘按键对应代码表)
适合EXT keycode的查询
A <--------> 65
B <--------> 66
C <--------> 67
D <--------> 68
E <--------> 69
F <--------> 70
G <--------> 71
H <--------> 72
I <--------> 73
J <--------> 74
K <--------> 75
L <--------> 76
M <--------> 77
N <--------> 78
O <--------> 79
P <--------> 80
Q <--------> 81
R <--------> 82
S <--------> 83
T <--------> 84
U <--------> 85
V <--------> 86
W <--------> 87
X <--------> 88
Y <--------> 89
Z <--------> 90
0 <--------> 48
1 <--------> 49
2 <--------> 50
3 <--------> 51
4 <--------> 52
5 <--------> 53
6 <--------> 54
7 <--------> 55
8 <--------> 56
9 <--------> 57
数字键盘 1 <--------> 96
数字键盘 2 <--------> 97
数字键盘 3 <--------> 98
数字键盘 4 <--------> 99
数字键盘 5 <--------> 100
数字键盘 6 <--------> 101
数字键盘 7 <--------> 102
数字键盘 8 <--------> 103
数字键盘 9 <--------> 104
数字键盘 0 <--------> 105
乘号 <--------> 106
加号 <--------> 107
Enter <--------> 108
减号 <--------> 109
小数点 <--------> 110
除号 <--------> 111
F1 <--------> 112
F2 <--------> 113
F3 <--------> 114
F4 <--------> 115
F5 <--------> 116
F6 <--------> 117
F7 <--------> 118
F8 <--------> 119
F9 <--------> 120
F10 <--------> 121
F11 <--------> 122
F12 <--------> 123
F13 <--------> 124
F14 <--------> 125
F15 <--------> 126
Backspace <--------> 8
Tab <--------> 9
Clear <--------> 12
Enter <--------> 13
Shift <--------> 16
Control <--------> 17
Alt <--------> 18
Caps Lock <--------> 20
Esc <--------> 27
空格键 <--------> 32
Page Up <--------> 33
Page Down <--------> 34
End <--------> 35
Home <--------> 36
左箭头 <--------> 37
向上箭头 <--------> 38
右箭头 <--------> 39
向下箭头 <--------> 40
Insert <--------> 45
Delete <--------> 46
Help <--------> 47
Num Lock <--------> 144
; : <--------> 186
= + <--------> 187
- _ <--------> 189
/ ? <--------> 191
` ~ <--------> 192
[ { <--------> 219
| <--------> 220
] } <--------> 221
'' ' <--------> 222


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2011-6-20 02:23:41 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 23:03 编辑

╋╋╋ 【.11.】权威资料╋╋╋

任天堂 Family Computer (简写成Famicom或红白机或FC)
1983年7月发售 NES是欧美版FC的称呼..在中国大陆 一般称为“ 红白机 ”。

CPU:6502芯片

CPU主频:1.8MHz

CPU位数:8位

内存:主内存只有2K

画面:总发色数52色,同屏幕最多显示其中13色

音源:单声道,2个矩形波,1个三角波,1个杂音,1个PCM合成音源

附件:麻将摇杆,跳跳板,光线枪,冲气式机车,打地鼠摇杆,键盘,Bandai条码机,2.8英寸磁碟机等

结构  
FC使用一颗理光制造的8位的6502中央处理器,PAL制式机型运行频率为1.773447MHz,NTSC制式机型运行频率为1.7897725MHz,内存和显存为2KB。  

FC有一颗可显示64种颜色的图像控制器(PPU),画面可显示2层卷轴和5个页面,其中2个背景页面各占用1KB显存,由于显存的限制,最多只能显示16种颜色 。  

FC有一颗可编程的声音发生器(PSG),可以提供4个模拟声道和1个PCM数字声道,其中3个模拟声道用于演奏 乐音 ,1个杂音声道表现特殊声效(爆炸声,枪炮声等),PCM数字声道表现连续的背景音。  

FC主机上有一个复位开关,1个电源开关,1个游戏卡插槽,2个带有十字方向键的2键手柄(游戏控制器),主手柄上有“选择”和“开始”按钮。主机背面有电源接口,RF射频输出接口,视频图像输出接口,音频输出接口。前面还有一个扩展端口,用于连接光线枪的外部设备。  

FC游戏通常以只读ROM形式存放于可插在主机插槽上的游戏卡中,容量有LA系列24K ,LB系列40K ,LC系列48K ,LD系列64K ,LE系列80K ,LF系列128K ,LG系列160K ,LH系列256K ,特卡系列和多合一卡带等。还有一些带有电池用来保存游戏 。  

1986年 ,任天堂还推出了一款FC磁碟系统 ,可以在FC主机上通过转换器连接一个磁碟机,通过软盘来读写游戏,软盘容量为112KB。  

经典游戏:超级马里奥  魂斗罗 双截龙 沙罗曼蛇 三国志-霸王大陆 吞食天地3 太空幻想 火焰纹章外传等..

任天堂FC机该没人不知道吧,我们很多80玩家就是从玩FC开始接触游戏机的,本人也不例外。那时真是红极一时,那时任天堂单是FC机的主机的发售收入就超过全美国的电视台的收入的总和.在美国人的心目中扎下了任天堂的这个招牌,就算九十年代中期处于困境的任天堂,它的N64在美国都能卖的第一,可见美国人对任天堂的感情。 日本版的FC和美国版的FC(美国称FC做NES)是不同的,我们以前玩的那种就是日本版的,美国版的FC是一部好像录象机一样的东西,连软件媒体都不同,美国的FC的卡带是一盒录像带一样的,就算连游戏都有一定的区别,不过这是因为是在两地的公司做的原因,都是大同小异的,我们现在在网上能D到的游戏大多数是美版的,因为模拟器大多是美国人做的。


历史  
1983年7月15日,由宫本茂领头开发的FC游戏机研制成功,开始进入市场,取得了巨大成功。不久,任天堂总裁山内溥决定让哈德(HUDSON)、南梦宫(NAMCO)、泰托(TAITO)、卡普空(CAPCOM)、杰力(JALECO)和 科乐美(KONAMI)六家软件开发商加入开发FC游戏 ,被当时业界称为“六大软件商”。  

1984年,任天堂创建了权力金制度,不但使软件质量得到了保证,而且为任天堂获得了巨大的利润。  

1996年1月,任天堂宣布停止了FC游戏机的生产,至此FC全世界已销售6000万台。  

影响  
FC游戏机开创了第三代家用游戏机市场,而随其而生的权力金制度更是改变了游戏的开发模式。FC游戏机的兼容机在中国更是遍布城乡,对中国青少年产生了巨大影响。  


==============================影响===============================

FC游戏机开创了第三代家用游戏机市场,而随其而生的权力金制度更是改变了游戏的开发模式。因为FC游戏机的兼容机较原装红白机便宜得多且容易购得(例如台湾“小天才”系列),在中国更是遍布城乡,对中国青少年产生了巨大影响。亦因为翻版游戏盒带的流行之下,在上世纪九十年代初,坊间出版针对红白机游戏而编写的“攻关秘技”如雨后春荀般,较早期而有系统的代表性的著作是1991年~1993年由傅瓒编著、福建科学技术出版社出版的《电视游戏一点通》系列丛书。它也成为中国国内游戏书刊杂志先驱。

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2011-9-4 17:32:06 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 23:04 编辑

╋╋╋【.12.】nes 档案文件格式说明╋╋╋
● *.NES 的档案是由一个 16 bytes 的档头和 RAW IMAGE 所构成的 (有时

   还会有 512 bytes 的 trainer)。该 ROM IMAGE 则是由 PRG ROM 加上

   CHR ROM (可有可无) 所构成。因此如果你想把 Paso-Win 的档案转换成

   *.NES 的话,最简单的作法就是以 DOS 的 copy指令:



        copy /b FILE.PRG+FILE.CHR NEWFILE.NES



   然后帮这个 NEWFILE.NES 加上适当的 16 bytes 档头即可。因此,你所

   得到的 *.NES 档案长度一定是 1024 bytes 的倍数加上 16 bytes 或者

   是 528 bytes(16+512)。







● 所有关于此一 *.NES 档案描述的信息均位于此 16 bytes 的档头中,一

   般来说,只有前七个 bytes 有作用,NES 的文件头结构如下:



   address     HEX   ASCII

   -------------------------------------

   bytes-01 =   4E   N

   bytes-02 =   45   E

   bytes-03 =   53   S

   bytes-04 =   1A   (此值为绝对必须)

   bytes-05 =   XX   PRG ROM VALUE(可自行修改)

   bytes-06 =   YY   CHR ROM VALUE(可自行修改)

   bytes-07 =   ZZ   MAPPER & OTHERS(可自行修改)





● Bytes-05 (PRG ROM VALUE)的数值指的是卡匣中 PRG ROM 的大小及数量

   ,最小值为 01(1x16KB),所有数值如下:



   ROM SIZE           HEX          ROM SIZE            HEX

   -------------------------------------------------------

   (1 x 16kb pages) = 01           (17 x 16kb pages) = 11

   (2 x 16kb pages) = 02           (18 x 16kb pages) = 12

   (3 x 16kb pages) = 03           (19 x 16kb pages) = 13

   (4 x 16kb pages) = 04           (20 x 16kb pages) = 14

   (5 x 16kb pages) = 05           (21 x 16kb pages) = 15

   (6 x 16kb pages) = 06           (22 x 16kb pages) = 16

   (7 x 16kb pages) = 07           (23 x 16kb pages) = 17

   (8 x 16kb pages) = 08           (24 x 16kb pages) = 18

   (9 x 16kb pages) = 09           (25 x 16kb pages) = 19

   (10 x 16kb pages) = 0A          (26 x 16kb pages) = 1A

   (11 x 16kb pages) = 0B          (27 x 16kb pages) = 1B

   (12 x 16kb pages) = 0C          (28 x 16kb pages) = 1C

   (13 x 16kb pages) = 0D          (29 x 16kb pages) = 1D

   (14 x 16kb pages) = 0E          (30 x 16kb pages) = 1E

   (15 x 16kb pages) = 0F          (31 x 16kb pages) = 1F

   (16 x 16kb pages) = 10          (32 x 16kb pages) = 20





● Bytes-06 (CHR ROM VALUE)的数值指的是卡匣中 CHR ROM 的大小及数量

   ,没有最小值为,所有数值如下:



   ROM SIZE          HEX           ROM SIZE           HEX

   -------------------------------------------------------

   (1 x 8kb pages) = 01            (32 x 8kb pages) = 20

   (2 x 8kb pages) = 02            (33 x 8kb pages) = 21

   (3 x 8kb pages) = 03            (34 x 8kb pages) = 22

   (4 x 8kb pages) = 04            (35 x 8kb pages) = 23

   (5 x 8kb pages) = 05            (36 x 8kb pages) = 24

   (6 x 8kb pages) = 06            (37 x 8kb pages) = 25

   (7 x 8kb pages) = 07            (38 x 8kb pages) = 26

   (8 x 8kb pages) = 08            (39 x 8kb pages) = 27

   (9 x 8kb pages) = 09            (40 x 8kb pages) = 28

   (10 x 8kb pages) = 0A           (41 x 8kb pages) = 29

   (11 x 8kb pages) = 0B           (42 x 8kb pages) = 2A

   (12 x 8kb pages) = 0C           (43 x 8kb pages) = 2B

   (13 x 8kb pages) = 0D           (44 x 8kb pages) = 2C

   (14 x 8kb pages) = 0E           (45 x 8kb pages) = 2D

   (15 x 8kb pages) = 0F           (46 x 8kb pages) = 2E

   (16 x 8kb pages) = 10           (47 x 8kb pages) = 2F

   (17 x 8kb pages) = 11           (48 x 8kb pages) = 30

   (18 x 8kb pages) = 12           (49 x 8kb pages) = 31

   (19 x 8kb pages) = 13           (50 x 8kb pages) = 32

   (20 x 8kb pages) = 14           (51 x 8kb pages) = 33

   (21 x 8kb pages) = 15           (52 x 8kb pages) = 34

   (22 x 8kb pages) = 16           (53 x 8kb pages) = 35

   (23 x 8kb pages) = 17           (54 x 8kb pages) = 36

   (24 x 8kb pages) = 18           (55 x 8kb pages) = 37

   (25 x 8kb pages) = 19           (56 x 8kb pages) = 38

   (26 x 8kb pages) = 1A           (57 x 8kb pages) = 39

   (27 x 8kb pages) = 1B           (58 x 8kb pages) = 3A

   (28 x 8kb pages) = 1C           (59 x 8kb pages) = 3B

   (29 x 8kb pages) = 1D           (60 x 8kb pages) = 3C

   (30 x 8kb pages) = 1E           (61 x 8kb pages) = 3D

   (31 x 8kb pages) = 1F           (62 x 8kb pages) = 3E



● Bytes-07 就比较复杂,前面那个位指的是 MAPPER 的值,数值的范围

   为 0~16,换算成 HEX 码即为 0~F (目前 iNES 0.6r 支持的 MAPPER 为

   0,1,2,3,4,5,6,8,11,15,而NESticle 0.32则为0,1,2,3,4,5,6,7,8,11,

   15)。后面那个位则为一些特殊的信息,意义如下表所示,举例来说,

   若bytes-07为 E3 则表示此档为 MAPPER#15,Vertical,Battery。



   ---------------------------------------------------------------

   0 = H (Horizontal Mirroring ONLY)

   1 = V (Vertical Mirroring ONLY)

   2 = H + Bat. (Horiztonal Mirroring + Battery ON)

   3 = V + Bat. (Vertical Mirroring + Battery ON)

   4 = H + Train. (Horizontal Mirroring + Trainer ON)

   5 = V + Train. (Vertical Mirroring + Trainer ON)

   6 = H + Bat. + Train. (Horizontal Mirroring + Battery and

       Trainer ON)

   7 = V + Bat. + Train. (Vertical Mirroring + Battery and

       Trainer ON)

   8 = H + 4scr. (Horizontal Mirroring + 4 Screen VRAM ON)

   9 = V + 4scr. (Vertical Mirroring + 4 Screen VRAM ON)

   A = H + Bat. + 4scr. (Horizontal Mirroring + Battery and

       4 Screen VRAM ON)

   B = V + Bat. + 4scr. (Vertical Mirroring + Battery and

       4 Screen VRAM ON)

   C = H + 4scr. + Train. (Horizontal Mirroring + 4 Screen

       VRAM and Trainer ON)

   D = V + 4scr. + Train. (Vertical Mirroring + 4 Screen

       VRAM and Trainer ON)

   E = H + Bat. + 4scr. + Train. (Horizontal Mirroring + Battery,

       4 Screen VRAM, and Trainer ON)

   F = V + Bat. + 4scr. + Train. (Vertical Mirroring + Battery,

       4 Screen VRAM, and Trainer ON)







● 下面是一些 PRG + CHR ROM 的例子,如果你需要自己写16 bytes header

   的话,你可以试试各种可能的组合,例如一个 64 KB 的 RAW IMAGE 其组

   合的可能方式会有 04 00 (4x16KB) 或是 03 02 (3x16KB+2x8KB) 或者是

   02 04 (2x16KB+4x8KB),当然啦,只有一种才是正确的。



-------------------------------------------------------------------

[24K - 24592 bytes] (EX: F16 Macross, Donkey Kong, Pac-Man)

PRG => 16384 bytes (1 x 16kb pages)

CHR => 8192 bytes (1 x 8kb pages)

-------------------------------------------------------------------

[40/41K - 40976/41488 bytes] (EX: SMB, DK3, & Balloon Fight)

PRG => 32768 bytes (2 x 16kb pages)

CHR => 8192 bytes (1 x 8kb pages)

-------------------------------------------------------------------

[49K - 49168 bytes] (EX: TwinBee, Mighty BombJack, Goonies)

PRG => 32768 bytes (2 x 16kb pages)

CHR => 16384 bytes (2 x 8kb pages)

-------------------------------------------------------------------

[65K - 65552 bytes] (EX: Spy Hunter, Gradius, Tengen Tetris)

PRG => 32768 bytes (2 x 16kb pages)

CHR => 32768 bytes (4 x 8kb pages)

-------------------------------------------------------------------

[131K - 131088 bytes] (EX: Legend of Zelda, MegaMan, Metroid)

PRG => 131088 bytes (8 x 16kb pages)

CHR => (NONE)

-------------------------------------------------------------------

[196K - 196624 bytes] (EX: CaslteVania II: Simon's Quest)

PRG => 131072 bytes (8 x 16kb pages)

CHR => 65536 bytes (8 x 8kb pages)

-------------------------------------------------------------------

[262K - 262144 bytes] (EX: Final Fantasy 1&2, MegaMan2)

PRG => 262144 bytes (16 x 16kb pages)

CHR => (NONE)

-------------------------------------------------------------------

[262K - 262144 bytes] (EX: Bubble Bobble, Ninja Gaiden, & Karnov)

PRG => 131072 bytes (8 x 16kb pages)

CHR => 131072 bytes (16 x 8kb pages)

-------------------------------------------------------------------

[393K - 393232 bytes] (EX: Super Mario Bros. 3 & Crystalis)

PRG => 262144 bytes (16 x 16kb pages)

CHR => 131072 bytes (16 x 8kb pages)

-------------------------------------------------------------------

[524K - 524304 bytes] (EX: CastleVania III, Skate or Die 2)

PRG => 262144 bytes (16 x 16kb pages)

CHR => 262144 bytes (32 x 8kb pages)

-------------------------------------------------------------------





● 其他的格式

   除了 NES 外,你还可能看到 Paso-Win 的格式(前面已经谈过)、FamiCom

   的格式、及 Magic Card 正先格式。其中 Fami(*.FAM) 和 NES 的互转可

   由 famconv (famconv2.zip) 这个程序完成,而正先的格式则为:

PRG => 262144 bytes (16 x 16kb pages)

CHR => 262144 bytes (32 x 8kb pages)

-------------------------------------------------------------------





● 其他的格式

   除了 NES 外,你还可能看到 Paso-Win 的格式(前面已经谈过)、FamiCom

   的格式、及 Magic Card 正先格式。其中 Fami(*.FAM) 和 NES 的互转可

   由 famconv (famconv2.zip) 这个程序完成,而正先的格式则为:

     512 bytes header + 512 bytes trainer + raw image

   这三部份所组成(不一定有第二部份,请算一下档案长度),因此只要砍去

   前 512 bytes(或是1024 bytes) 即可得到 RAW IMAGE ,然后加上新的档

   头即可,不过很多高K数的档案不一定改得出来。

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2011-11-20 22:52:22 | 显示全部楼层
本帖最后由 woodexe 于 2011-11-20 23:04 编辑

╋╋╋【.13.】ROM命名的基本确认╋╋╋

2011年11月15日19:12第一次家机对照以及命名规则
中文名称英文简称
任天堂NES、Nintendo
超级任天堂SNES、Super Nintendo
掌机 (彩色) GB、GBC(彩色)、GBA
任天堂DSDS、NDS
PC引擎PCE、TurboGrafx16
世嘉16位机MD、Genesis
世嘉土星SSSS
世嘉DCDC
任天堂64Nintendo64、N64
索尼电脑娱乐(PlayStation)PS、PSX、PS2、PS3
PC电脑
PC
街机AC、Arcade

鉴定ROM版本,包括原始版本发布
(J):   日版
(U):美版
(C):中版
(F): 法版
其它信息
(h):修改版
(!): 正常版
(b):异常
(f):修正版


也许翻译的不大准确,但是大体都在。



签到天数: 2060 天

[LV.Master]伴坛终老

发表于 2011-11-20 22:56:27 | 显示全部楼层
等待LZ更新完毕一起看。。。。。。

签到天数: 97 天

[LV.6]常住居民II

发表于 2011-11-27 22:21:55 | 显示全部楼层
大部分看不懂的路过,看着那些数字就迷糊{:4_121:}

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2011-12-18 05:58:28 | 显示全部楼层
本帖最后由 woodexe 于 2011-12-18 06:00 编辑

╋╋╋【.14.】关于FC模拟器联机╋╋╋
作者:BlueHurricane
首先在联机前请做好以下准备工作
1.调查清楚双方网络是属于网通.电信或者什么.从而选择最便捷的联机方法
2.核实模拟器版本是否相同
3.核实游戏版本是否相同.最好同一文件复制
4.提前设置好游戏键位.否则进入游戏无法设置.在联机时浪费时间
5.确保杀毒软件释放通过连接
 注:键位设置时避免与快捷键重复.以免影响游戏质量与速度
一.VIRTUANES
在这里我们以VirtuaNes 0.92中文版为例开始讲解该模拟器的联机方法
1.VirtuaNes 0.92的适用情况
VirtuaNes 0.92模拟器联机步骤简单.稳定性比较强.但是在双方网络服务器不同时.兼容性很差
我们曾经进行过测试.网通对电信.网通对铁通.铁通对电信的联机效果均不理想.出现不流畅.卡的
现象.因此
VirtuaNes 0.92:适合相同服务器的双方(例:电信对电信)进行联机游戏.方便.流畅.稳定
2.联机方法
A.双方到网上下载VirtuaNes 0.92.解压.设置键位
B.双方到网上下载相同版本的游戏.

以下为关键
C.确立双方 谁为服务器(服务器在游戏中即1P) 谁为客户端(客户端在游戏中即2P)
先由1P提供服务器.
步骤1---查出自己电脑的IP地址(这个到时候要告诉2P)建议登陆本站查询.本站有IP显示.
步骤2---打开模拟器后.点击"文件"-点击"打开"-选取游戏"***.NES"--成功后游戏运      行 
步骤3---点击"文件"-点击"网络对战"-选取"响应时间"为"5"(我一般都是9)-在
      "显示名称"里键入网名-点"连接"--成功后出现"等待客户端回应"字样
      这时就等待客户端连接你了
后由客户端2P连接服务器
步骤1---如同1P一样打开游戏-点击"文件"-点击"网络对战"-点"客户端"-在"地址      栏"键入1P告诉你他的IP"***.**.***.**:10000"(后面一定      加上":10000")-在"显示名称"里键入网名-点"连接"连接到1P      --成功后连机成功
D.此时或许你已经在享受联机带给你的乐趣了~如果要取消连接.点"文件"-点"断开连接"就可以

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2011-12-29 21:29:30 | 显示全部楼层

本帖最后由 woodexe 于 2011-12-29 22:35 编辑

╋╋╋ 【.15.】 国内FC开发公司落差度╋╋╋

目前国内开发/汉化FC游戏的公司主要有:外星科技、南晶科技、火星电子、先锋卡通、金巴比伦等。
1.外星科技是最活跃的一个,听说最近还推出了真田十勇士的汉化,该公司以汉化为主,原创游戏质量参差不齐。
2.南晶科技主要是“移植”其它游戏大作到FC,但质量不高,常被批评没有放端正态度。
3.火星电子以制作RPG为主,但除了口袋妖怪以外的原创RPG在系统上较为简陋,部分剧情也有些苍白。
4.先锋卡通是最早开始FC游戏汉化的公司,汉化质量较高,但生不逢时,早已倒闭。代表作《重装机兵》又名:机甲战士、坦克战士
5.金巴比伦曾在几年前推出《威洛传奇》汉化版,但似乎没有汉化别的游戏就已销声匿迹了。总之真正还有进行FC制作的似乎只有外星科技了,不过外星也已经改变了策略,以开发早教机和玩具为主。(纯个人观点,可能有错误)

签到天数: 2193 天

[LV.Master]伴坛终老

 楼主| 发表于 2012-3-22 17:11:43 | 显示全部楼层
╋╋╋ 【.16.】NES 技术/模拟器/开发 FAQ╋╋╋
原文版本 1.4, 作者为 Chris Covell (chris_covell@yahoo.ca) 最后更新日期为 2002 年 1 月 18 日.
中文版版本 1.4.0.66, 翻译者为 Blue Potato (bspotato@yahoo.com.cn) 最后更新日期为 2004 年 7 月 17 日.



写作目的
本文的写作目的是为了回答对 NES 系统好奇的人们经常问到的关于 NES/Famicom 的技术、NES 模拟器和 NES 开发的问题. 本文不是 NES 的权威文档; 更恰当的说, 它是研究散布于互联网上的其他文档的出发点. 需要注意的是, 本文并不仅是对于陈旧技术的讨论. 我将我的观点引入一些有争议的问题. 如果你对此有疑问, 就自己写一篇缺乏生动和幽默的文档. 然后在 Microsoft 找一份工作, 你将会非常完美的适合这份工作. Nyuk Nyuk. :-)
你应当注意到了, 因为本文有我自己完成, 文中的语法和拼写都使用的是标准的加拿大英语 (standard Canadian English) . 所以, 如果你喜欢将 &quot;colour&quot; 写为 &quot;color&quot;, 或者你喜欢将 &quot;while&quot; 写为 &quot;whilst&quot;, 或者即便你习惯将 &quot;spelled&quot; 写为 &quot;spelt&quot;, 忍受一下吧. 这只是我的方法.

--------------------------------------------------------------------------------
目录
基本问题

NES 使用什么 CPU?
NES 能同时显示多少中颜色?
NES 的分辨率是多少?
为什么 NES 会降速或闪烁?
内存镜像是如何工作的? 为什么有很多内存镜像?
什么是 NES 的停机芯片 (CIC), 它是如何工作的?
怎样翻译 NES 游戏?
所有 NES 游戏中最大的是哪个?
最小的 NES 游戏是什么?
怎样才能得到原型 (prototype) NES 卡带?
硬件

如何打开 NES 卡带?
能够禁止停机芯片吗?
NES 和 Famicom 兼容吗?
NES 和 Famicom 的硬件一样吗?
怎样在北美/欧洲使用日版 Famicom?
NES 和 SNES 兼容吗?
NES 和 Gameboy/GBC 兼容吗?
老式 (toaster) NES 和新式的顶部读取 NES 之间有什么区别吗?
Famicom 和 NES 的控制器通用吗?
SNES 和 NES 的控制器通用吗?
怎样从 NES 中获得 RGB 信号?
能让顶部读入的 NES 输出 A/V 信号吗?
NES 能够输出立体声或单独的声道吗?
什么是 Famicom 磁碟系统 (Disk System) ?
金手指 (Game Genie) 如何工作?
NES 中的电池可以持续多长时间?
可以在不清除掉 RAM 中存储信息的条件下更换电池吗?
NES 上的扩展接口是用来干什么的?
模拟

模拟是非法的吗?
Nesticle...
怎样才能拷贝/备份 NES 游戏?
怎样才能把 X 游戏拷贝到卡带上?
可以制作/购买通用型 NES 卡带吗?
我想做模拟器. 应当从那里入手呢?
&yen;?#181; a&reg;3 &pound;ee+, g0+ an&yen; ROMz +?g&iexcl;v3 m3?
怎样才能把 .FDS 文件读入我的模拟器?
什么是 iNES 的文件头?
什么是 UNIF?
有 iNES &lt; - &gt; UNIF 转换程序吗?
什么是 .IPS 补丁? 怎样才能使用它?
什么是 NSFs?
如何分离 NSFs?
程序设计

NES 游戏用什么语言编写, C, BASIC 或者其他语言?
怎样才能开始编写 NES 程序?
How do the NAME table, ATTRIBUTE table, and PATTERN table all fit together?
How are NES graphics laid out?
How does palette mirroring work?
How does PPU mirroring work?
How does sprite 0 hit detection work?
What is VBlank and what is HBlank?
How many scanlines are in VBlank period?
What&#39;s up with $2005/2006?
How can I get a stable background in my demo?
Why is there graphics glitching when you change $2005 or $2006 mid-screen?
Is the NES palette RGB or what?
How do I get an accurate palette then?
What is the right register value for black in the palette?
What are the colour emphasis bits?
What is the monochrome mode in the NES?
What are bus conflicts?
Do I enable interrupts (CLI) in my demo?
How can I make music for my demo?
Why does my demo work in an emulator, but not on a real NES?
How can I test my demo on a real NES?
How does the NES produce sampled sounds? What bit size are they?
How does $4011 work?
Why does my demo&#39;s timing mess up when a DMC sample is playing?
What&#39;s better, writing to SPR-RAM directly, or using DMA?
Thank-Yous
基本问题
Top
NES 使用什么 CPU?
它的 CPU 是基于 6502 NMOS 系列的 8 位处理器. 由 Ricoh 制造, 名字是 RP2A03G. 它的指令集并不包括任何 CMOS 的 &quot;STZ&quot; 指令, 更重要的是, NES CPU 没有十进制工作模式. 你可以任意设置和清除十进制标志, 但是任何 NES 上的算法指令都将以基数为 16 来计算. 定制的 NES CPU 内建 5 条不同的音频通道.

NES 能同时显示多少中颜色?
一般来说, NES 可以显示 13 种不同的背景色, 和 12 种不同的活动块色 (挺拗口的, 原文是 &quot;sprite colours&quot; -- 译注), 总共每次同屏 25 色. 然而, 使用 PPU 欺骗技术 (PPU trickery), 可以一次显示 NES 的调色板中的全部 64 色. (如果你将颜色强调位 (Colour Emphasis bits) 像 PPU 欺骗技术一样使用, 我猜你会说你能一次同屏最大显示 512 色. 但是那需要将物体拉伸. 举例来说, 那像是调色板块之间的一些副本.) 总之, 就让我们认为一般来说最大颜色数目是 25 色, okay?

NES 的分辨率是多少?
NES 的分辨率 是 256x240. 许多年来, 人们都认为 NTSC NES 的分辨率低于 PAL NES, 于是许多模拟器只显示 256x224. 这对于许多显示屏或电视机是正确的, 最顶部和最低部各有 8 线被切掉了; 然而这是显示设备的机能, 不是 NES 所必需的. 在我的显示器上, 使用我的 NTSC NES, 我可以看到从第 8 到第 240 条扫描线 (有附加的 3 条) . 一般来说, NES 输出第 233-240 的全部扫描线 (曾经被认为是隐藏的) . 最顶部的 8 条依旧假设为是被隐藏的, 但不一定是. 例如, 当我的录像机录下 NES 的显示时, 先前的 4 条线就可见了. PAL NES 显示全部的 240 条扫描线, 不存在上述的问题. NTSC NES 依旧有些不明确.
最后一条是 (并非有意的双关语) (原文是 &quot;The bottom line (no pun intended) is&quot; -- 译注), 如果制作一个模拟器, 你应当提供是否显示顶部和底部的各 8 条扫描线的选项. 如果你写 NES 的 demo 或者游戏, 你应当假设玩家也许能够看到你放在屏幕最先和最后的那些行的东西.

为什么 NES 会降速或闪烁?
NES 并不是自动降速或闪烁. 事实上, 原因是游戏变得太复杂了, 过多的物体被引入到显示区域, 使用一帧的时间 (1/60 秒) 无法计算一帧的行为了. NES CPU 的速度大约是 1.79Mhz, 对于某些计算来说并不足够快. 事实上, 如果计算溢出到下一帧, 游戏时常会出些小故障或定住. 于是, 程序员会将游戏速度变慢以将连续的帧之间的计算分割.
闪烁一般是一条水平扫描线上有太多的 sprite 的结果. NES 能够在同一线上最大显示 8 个 sprite. 如果超出了, PPU 只是简单的不显示他们. 于是, 程序员就需要在显示一个个的 sprite 集合之间进行转换. 这是通过一个好用的算法 &quot;OAM Cycling&quot; 来处理. 由于使用了 OAM 算法, sprite 可能会闪烁 (比如许多 Konami 游戏), 或者以水波的效果取消 (一些游戏中) .

内存镜像是如何工作的? 为什么有很多内存镜像?
6502 CPU 只有 16 位地址总线. 这就意味着它每次只能访问 ROM 或 RAM 中最大 65535 字节. NES 被设计只能访问那么多 ROM 中的一半. 由于程序员想要有更复杂的游戏, 他们需要一种方法以将游戏大小扩展超过 32K ROM. 因而, 内存镜像就是将不同的程序代码块转换入 CPU 可访问的 32K ROM 的设备.
在增加地址空间后, 许多现代内存镜像确实增加了游戏的可用角色图形数目, 以及如何把它们连接起来. 第一个改变图形的镜像能够进行每次 8K 的转换. 然而, 后来的镜像允许游戏能够进行 CHR ROM 中更小部分的交换, 进行更多的背景动画. 另外, 许多游戏公司推出了他们自己的支持 IRQ 计时器的镜像, 允许 PPU 执行 trick. 一些镜像还有附加的音频芯片, 以增加游戏中的音乐复杂度 (只有 Famicom) .
于是, 简单得说, 内存镜像允许程序员突破 NES/Famicom 内在的限制.

什么是 NES 的停机芯片 (CIC), 它是如何工作的?
Nintendo 非常贪婪, 他们想以要求开发者在开发 NES 游戏前先获取受权的方式来获得最大利益. 为了使这种做法有效, 他们在 NES 游戏机中安装了一个芯片, 用这个芯片监测 NES 卡带中的另外一个类似芯片. 然后这两个芯片只见建立一个通讯协议. 如果没有这个协议, NES 游戏机将不会出现重启模式 (reset mode) . 因为只有 NES 出售这种停机芯片, 开发者除了选择从 Nintendo 购买这种芯片 (通过授权) 以外, 几乎没有其他的选择, 否则他们就需要找出禁止停机芯片工作的方法, 这就是大多数未被授权的开发者所作的. 同样存在区域性停机. 存在欧洲用的停机芯片, 也存在亚洲用的. 一般来说, 美国的 NES 游戏/系统与亚洲/欧洲的游戏/系统不兼容, 除非你禁止了停机芯片.
我不认为一般人真正了解 CIC 通讯协议的细节, 但是自从有办法永久禁止那个芯片, 我不再认为那些细节很重要了. 据我所知, 新生产的 NES 游戏机不再有停机芯片. Famicom 系统也没有停机芯片.

怎样翻译 NES 游戏?
哈. 我在这方面并不是专家, 但是现在问到了. 如果你进行翻译的语言使用同样的字母表, 那就没有任何问题. 如果你翻译的语言使用不同的字母表, 你需要建立自己的字库 (或者使用别人的) . 你应当非常熟悉源语言和目标语言, 并且将该游戏爆机, 以获得游戏中全部/尽可能多的文本. 第一步是搜索文本在 ROM 中的储存位置. 如果原文是日语, 你就需要自己按照文本/字符映射表进行查找. 如果原文是英语, 你应当使用相关字符搜索程序搜索文本, 如果他没有使用 ASCII 字符映射表的话. 如果你确定了游戏中的字符串储存的位置 (或者你确定了被使用文本压缩方案), 你就可以开始翻译文本了, 当然要保证不能覆盖游戏中的非文本部分.
也许你发现翻译后的文本的大小与原文不同. 这就意味着你将需要改变游戏中的文本指针 (也许现在就需要) 以映射到修改后的文本位置. 翻译是需要许多不同技术的任务. 多看一看互联网上有关翻译的指南.

所有 NES 游戏中最大的是哪个?
据我所知, NES 上最大的游戏是 Dragonquest 4 / Dragon Warrior 4. 他们的程序 ROM 大小是 1mb. 同样, 日版游戏 Metal Slader Glory 有 512K PRG 和 512K CHR ROM, 加起来也是 1mb. 一些盗版/未授权的 Famicom 游戏也非常大.

最小的 NES 游戏是什么?
虽然 iNES 镜像格式认为 16K PRG ROM 为最小的, 但是事实上有一些 8K 游戏, 比如 Galaxian. 对于 NES 游戏或 demo 的大小没有确切的最低限制, 但是为什么要把游戏做得那么小呢?

怎样才能得到原型 (prototype) NES 卡带?
事实上, 并不是你在寻找原型卡带; 而是他们在寻找你. 认真地说. 原型是非常罕见的, 只能在世界的某些地方找到. 如果你确实是在某些不知道的地方 (我不想给他起名字, 因为也许会冒犯一些人), 你可能无法在当地的跳蚤市场找到原型. 但是谁知道呢? 也许你能?
只需要去你当地的当铺, 旧货店, 跳蚤市场, 和 garage sales. 也许有一天你也会发现原型. 我也没有任何原型 NES 游戏, 除非你把我现在有的也算在内. 呵呵. :-)

--------------------------------------------------------------------------------
硬件
Top
如何打开 NES 卡带?
有一些方法可以打开. 如果你的卡带使用老式的扁头螺丝, 那么只需要一个螺丝刀, 拧开它. 然而, 大多数游戏卡带使用 3.8mm &quot;Inverse Torx&quot; 类型螺丝, 这类螺丝使用的螺丝刀并不容易找到. MCM Electronics (http://www.mcmelectronics.com/) 出售这种螺丝刀. 它的编号是 22-1145. MCM 同样出售多种 4.5mm 型号的螺丝刀 (22-1150), 可以用来打开 SNES, 等等. 注意, 不要让 MCM 的笨蛋在运输是抢劫了你!
还有其他的办法. 可以用一个热的烙铁 (要小心了!) 放在螺丝钉的顶部, 然后轻轻的拉开盒子. 这样做也许会通过螺丝钉融化塑料来打开塑料盒. 然后可以用一个小扁头螺丝代替以前的螺丝. 恩, 另外, 一个我很早以前使用的办法是用一个非常硬的缝衣针或者图钉, 然后用它们的末端通过对螺丝钉的一个凹槽施加压力来慢慢地松动螺丝钉.
最后, 其他的方法是使用你所有的力量来打开卡带 (或用一些坚固的工具) . 虽然要小心; 因为塑料片的碎片最终可能进入你的喉咙...我们需要有在标题上写上另外一个安全警告: &quot;NINTENDO 杀死了我的儿子!!! 卡带撕裂了他的脖子!&quot; 我们不希望这样做. ;-P

能够禁止停机芯片吗?
当然. 简单的方法是: 在 NES 电路板上 (只有老式 NES) 找到标有 &quot;CIC&quot; 的芯片, 然后切断 #4 针脚 (要清楚你再做什么), 然后把它接地 (同一块芯片的 11-15 号针脚也一样) .
一篇关于如何禁止停机芯片的完整文档是由 Mark Knibbs 所写, 可以在互联网上一些类似 nesdev.parodius.com 的地方找到.

NES 和 Famicom 兼容吗? 从任何目的和意图来说, 是的. 使用恰当的转接器, 可以在 NES 上玩 Famicom 的游戏, 也可以在 Famicom 上玩 NES 的游戏. 只需要记住 NES 用转接器有 72 针脚; 而 Famicom 用的是 60 针脚.
有些需要注意的是: 由于 Famicom 使用内建声音芯片, 所以游戏卡中的声音不通过 NES 传输. 同样, 如果转接器连接部分不是非常干净, 或者没有接好, 那么一些转接器将会抑制特定的扫描线或 IRQ 定时器周期. 最后, 如果你是用转接器在 Famicom 上玩 NES 游戏, 那么这样拼合起来的游戏机中的金手指也许不会工作. 金手指也许不适合转接器接口, 或者在游戏启动的时候有很难听的声音.

NES 和 Famicom 的硬件一样吗?
从软件的角度上说, 一样. 我不知道一个游戏如何检测自己是在美版系统还是在日版系统上运行的, 除非能够监测是否有麦克风或者在 2 号手柄上是否存在 Start 和 Select 按键. 即便这样, 新样式的 AV 输出 Famicom 使用与 NES 同样的可分离, 可互换的手柄.
从硬件的角度上说, 有一些小的差别. 在 Famicom (老式) 上, 控制器是不可分离的, 并且存在可以接第三个手柄或其他输入/输出设备的接口. 这个借口也可以作为扩展接口使用 (在 NES 游戏机底部可以发现) . 2 号手柄内置一个可调音量的麦克风, 而且没有 Start 和 Select 按键. 老式 Famicom 只能以 RF 射频方式连接电视. Famicom 没有停机芯片, 所以卡带只有 60 脚. 为了允许内置音频芯片对 Famicom 音频进行混音, 卡带接口也进行音频的输入和输出. NES 和 Famicom 有一致的关于样本声音的音频电路. NES 和 Famicom 都可以通过δ调制通道输出样本声音, 以及未经加工直接输出样本声音. 这就很清楚了!
新型号的 Famicom 使用与 NES 一样的手柄 (经过美化改进的) 以及一样的手柄接口. 就现在来说, 新型号的 Famicom 只有 AV 输出. 除了这些, 新型号的 Famicom (几乎) 完全兼容旧型号的 Famicom 所使用的设备.

怎样在北美/欧洲使用日版 Famicom?
这是个好问题, 但多少有些狡猾. 最重要的是, 不要把 NES 的变压器在 Famicom 上使用!!! NES 的变压器输出是 9v AC, 而 Famicom 需要的是 9v DC. 在一些地区, 你需要找到合适的变压器 (9/10v Dc, 850MA, Negative Tip 挺好) .
如果你用的是只有 RF 输出的老式 Famicom, 你需要找到一个有模拟调制的老式电视 (也许是 UHF), 或者对 Famicom 进行改造, 是它能直接输出音频/视频信号. 通过 RF 将 Famicom 接到一个试验电路, 然后就可以开始查找电视机里面它的信号了. 我发现有时 Famicom 信号在北美 3 频道和 4 频道之间; 有时在 UHF 频道. 你也可以这样做, 或者, 如果你擅长电子技术, 直接在 Famicom PCB (电路板) 上查找 (很弱的) A/V 信号.
新版的 Famicom 变得简单了. 你需要同样的 9v DC 变压器, 和一个 SNES/SFC 多 AV 输出线. 多 AV 输出线直接插在 AV Famicom 的后部.

NES 和 SNES 兼容吗?
几乎不兼容, 但不是绝对的. 为什么 Nintendo 不保证完全的兼容, 这对我来说依旧很神秘. (好的, 并不全是个秘密; 贪婪是原因之一.) 虽然 SNES 的 65816 处理器 (不管怎样说) 都向后兼容 6502 的软件, 但是 SNES 上的图形和声音处理硬件却不直接兼容. 虽然可以稍微修改小型 NES ROM 到可以在 SNES 上工作的 SMC 格式, 但是那需要通过对不同寄存器的写入进行手工修改. 不能将未修改的 NES 游戏运行在 SNES 上.
然而存在一种叫做 TriStar 或 Super 8 的适配器可以在 SNES 上运行 NES/Famicom 的游戏. 但是它只使用 SNES 作为电源, 控制器, 和视频合成器. NES/Famicom 的 CPU/PPU 位于 TriStar/Super 8 适配器的内部. 所以, 很不幸的是没有 NES 产生的 RGB 或 S-VHS 视频信号. :- (

NES 和 Gameboy/GBC 兼容吗?
不兼容. GB/GBC 使用 Zilog Z-80 型处理器, 不是 6502. 另外, 屏幕大小和调色板的细节都不一样. 有一个程序可以让容量小的 NES ROM 在 Gameboy 上运行, 但是这种程序的输出最多也就是极慢的速度以及很多漏洞. 一些 (比如 SMB DX, Ghosts & Goblins) NES 上游戏的官方 GBC 版本的代码是由游戏公司以可以在 Z-80 上运行的机器代码重新编写过的.

老式的 NES 和 新式的顶部读取 NES 之间有什么区别吗?
是的, 显著的区别是新式顶部读取的 NES 只有 RF 信号输出, 除非你改机器. 愚蠢的 Nintendo, 为什么这样做呢??? 顶部读取装置在读取游戏时比老式前部读取装置好很多, 因为链接器几乎经常与游戏进行着合适的联系. 要顶部读取的 NES 与 金手指相兼容并不容易, 因为金手指的电路板特别厚. Galoob 曾经提供一个来解决这个问题的外部适配器. 据我所知, 新式 NES 没有停机芯片. 最后, 与老式 NES 相比, 由于不恰当的分离, 顶部读取的 NES 的图象信号非常弱. 对此有一种解决办法, 如果没有这个办法, 正常情况下新式 NES 每 8 个像素都会有很弱的竖直条.

Famicom 和 NES 的控制器通用吗?
是的, 通用. 我曾经用方形 15 针控制器线将一个 NES 手柄接到我的 Famicom 上. 我还安装过一个可以****制器是接在 Player 1 还是 Player 2 上的开关. 可以在 Famicom 上使用 NES 的控制器是一个非常好的事情. 可以在互联网上的一些地方 (或者 nesdev.parodius.com) 找到关于控制器阵脚分布的文档.

SNES 和 NES 的控制器通用吗?
我曾经看到过关于怎样使 SNES 控制器能在 NES 上使用的文档. 其他的办法我不知道, 但是听起来是可行的. 在常去的地方找找吧.

怎样从 NES 中获得 RGB 信号?
不能. 绝对不可能. NES 从 PPU 产生合成视频信号, 没有其他的了. 确实有一些 NES 游戏机输出 RGB 信号, 但是仅限于以下三种: 1) Nintendo 用来截取游戏图片的游戏机, 2) Choice 10 街机, 以及 3) 法国版 NES 游戏机, 也许本身可以产生 RGB 信号, 也许不可以. 很遗憾.

能让顶部读入的 NES 输出 A/V 信号吗?
可以, 有一些文档写了应当如何做. 去类似 Game Station X 的网站. 这样的内部改造同样适用于只有 RF 输出的 Famicom.

NES 能够输出立体声或单独的声道吗?
是的, 可以. 你不能够将所有声道分离开; 但是, 全部 NES/Famicom 游戏机将 5 个通道分为 2 个 (CPU 上的针脚) . 从 CPU 的一个针脚产生两个方波通道, 另外一个针脚上产生三角波, 杂波 (noise), 和采样通道. 到网上试着找找相关信息, 或者直接去 我的网站, 那里有一个页面描述了如何从 NES 获得高质量的立体音频!

什么是 Famicom 磁碟系统 (Disk System) ?
那是一个 1986 年在日本发售的一个短命的外设. 它是个位于 Famicom 游戏机下面, 通过一个 RAM 卡带与 Famicom 相连的磁盘驱动器. 游戏保存在非标准 3 寸磁盘. 这个系统的优点在于磁盘很便宜, 它们利用了外接于 RAM 单元中的声音处理硬件, 于是玩家可以把游戏保存在磁盘中 (这是在使用用电池支持的便宜的 RAM 时代之前) . 这个系统的缺点有很多: 游戏的区域和大小有限制, 读入时间很长, 盗版行为很猖獗, 并且磁盘驱动器的带子 (belt) 损坏很快. 几年过去后, 内存镜像有所发展, 于是有更多的 Famicom 大游戏了. 于是, Nintendo 在 90 年代初默默的放弃了 FDS.

金手指 (Game Genie) 如何工作? 基本上, 金手指监视卡带接口的地址总线, 修改卡带接口的数据总线中那些它遇到的设定好的需要截取的数据. 在外行看来 (In layman&#39;s terms), 金手指用一些特定的值代替游戏中的某些值得行为依赖于一个特定的排斥代码 (proscrbied code) . 这使得金手指指能够暂时修改将在 NES CPU 中出现的值, 而不是永久性修改游戏本身. 金手指不像其他的可以将 RAM 中的某些特定区域锁定为特定的值得的作弊设备那样; 金手指修改从 ROM 输出的数据.

NES 中的电池可以持续多长时间? Nintendo 说是 5 年; 然而我的 1987 年的 Zelda 卡带现在还在, 而且使用的还是最初的电池, 记忆保存完好. 我认为电池使用时间依赖于卡带的用电量, 或者其他什么.

可以在不清除掉 RAM 中存储信息的条件下更换电池吗?
恩, 也许可以, 但是丢失资料的换电池方法却是更简单一些. 更换 NES 中的电池并不困难; 需要首先切断原来电池的连接, 然后换上一块新的, 最后把新电池焊上. 如果你想换电池同时保持数据, 你就需要用某种方法在整个更换过程中保持对存盘 RAM 的电压供应.

NES 上的扩展接口是用来干什么的?
扩展??? 恩, 很少使用, 虽然 Famicom 上的扩展接口可以连接很多设备, 比如立体眼镜 (3-D glasses), 键盘, 磁带机 (我认为), 等等. NES (据我所知) 只有两个附件使用扩展接口: Miracle Keyboard Piano Teaching System, 和 Baton Teleplay System, 这是一个提供面对面进行 NES 游戏的调制解调器, 还是金手指. 我不认为 Teleplay 可以很广泛的发售.

--------------------------------------------------------------------------------
模拟
Top
模拟是非法的吗?
理论上讲, 合法. 事实上, 一般来说, 非法. 现在让我们来弄清楚. 如果你制作了一份 Nintendo 游戏的备份 (不论什么原因), 并且在模拟器上运行, 那么你并没有违背版权法. 在美国, 为了教育和作档案的原因 &quot;公平使用 (fair use) &quot; 媒体和游戏的拷贝是可以的. 然而, 如果你同时在模拟器上和 NES 游戏机上同时玩同一个游戏; 如果你在模拟器上玩那些你并不合法拥有的游戏; 如果你从互联网上下载一个游戏 ROM; 上述这些情况都被认为是不合法的 (违反了版权法的内容和 &quot;公平使用&quot; 的学说) . 可以说大多数背模拟的游戏都是违反版权法的, 因为看起来并不是对于某个特定游戏的特定用户都拥有该游戏的卡带. 关于这个没有什么 &quot;假如&quot;, &quot;并且&quot;, 或者 &quot;但是&quot; 什么的. 关于这个问题没有必要继续争论了.
然而, 我认为模拟老的, 陈旧的系统 (比如雅达利 2600 以及也许 NES), 和模拟较新的, 正在发售的系统, 比如 N64, GameBoy Color, 和 GameBoy Advance. 在一个游戏发售后拷贝游戏 ROM 只是想免费获得一个游戏的差劲的借口. 相反的, 我认为模拟老系统是使该系统能够继续存在的一种方法, 永恒存在. 我们可以看到被模拟的 Famicom Disk System 的硬件和软件比原来得系统更长寿. 我有两台 FDS 磁盘驱动器, 但是都坏了; 可以看出来模拟唯一可用的保持使这些游戏和系统存在下去的方法.

Nesticle...
Nesticle 不应当被用作测试游戏或者自制的 demo 的模拟器. 虽然 Nesticle 曾经是许多年来最流行的 NES 模拟器, 但是他还远不够精确. 现在请删除掉 Nesticle 吧, 然后找一个更精确的模拟器!! 对于所有精确的需要, 我推荐 LoopyNES. 我对这件事并不是很显眼感到高兴.

怎样才能拷贝/备份 NES 游戏?
这并不容易. 你可以自己做一个拷贝设备 (à la IO-56), 或者请别人给你做一个 (à la CopyNES, 由 Kevin Horton (但是不要因为这而打扰他, 因为现在他已经不再出售这些东西了) ), 或者买一个稀有的 Hong Kong 拷贝装置. 说实话, NES 拷贝器的世界非常小, 因为 NES/Famicom 卡带有很多种存储镜像. 拷贝器需要考虑到各种镜像, 这样才能够拷贝全部卡带. 可用的拷贝器都变得很旧了, 很多都已经没有价值了, 因为他们只是把游戏备份到 (不充足的) FDS 磁碟上!
另外一个办法是把想要 dump 的游戏 (确定它们还没有被 dump 过) 寄给那些知名的 NES dump 专家. 我并不是这种人! :- (

怎样才能把 X 游戏拷贝到卡带上?
啊... 在这个问题上我们应当感谢 Earth Bound Zero. 当然, 如果说得一般一些, 你应当找到一个于游戏 X 相同型号或者兼容型号的卡带. 应当找到一个有相同的电路板类型, 相同的内存镜像, 相同的 RAM 芯片, 相同的备份电池 (如果需要), 以及至少于要拷贝的游戏 (ROM) 有相同的 ROM 大小. 记得如果你往卡带上拷贝那些从互联网上下载的非免费 (non-freeware) 游戏的话, 那将是非法行为.
不管怎么说, 处理的过程包括从上述的卡带上移除 (desoldering) 掩膜 ROM, 安装上带有 socket 或者 EPROM 的 ROM. 你需要把 PRG ROM 和 CHR ROM 中取出的数据分别写入 EPROM (如果你已经有 EPROM 了, 这些是很简单的). 如果你对 PRG ROM 和 CHR ROM 并不熟悉, 读一下这份 FAQ 中的 iNES header 部分. 一般来说 EPROM 的针脚与掩膜 ROM 并不兼容, 所以你必须对 EPROM 的输出针脚非常熟悉以进行必要的配线转换. 这并不是初学者能作的!

可以制作/购买通用型 NES 卡带吗?
不可能, 绝对办不到. 为了使 NES 卡带 &quot;通用化&quot;, 你必须以可以兼容全部现有的内存镜像的方式制作卡带. 与通用型卡带最相近的是 NES/Famicom 拷贝器, 以及一种被叫作 Dr. PC Jr. 的系统, 由 Bung 制造. Dr. PC Jr. 从标准的 3.5&quot; 磁盘中读出游戏, 然后你就可以在 TV 或 显示器上玩游戏了. 这个系统只支持很少的镜像, 但是 Bung 的魔法将这个系统训练得可以使多种不同的游戏镜像可以在其上运行.

我想做模拟器. 应当从那里入手呢?
想做模拟器的想法是非常好的, 但是应当知道, 现在已经有数不尽的 NES 模拟器了. 你是想做一个与其他所有模拟器都与众不同的呢, 还是只是想做一个模拟器而已? 如果你不能够想出一种方法使你的模拟器比现在所有其他类型的模拟器都好, 而只是做了一个普普通通的模拟器, 那么你最好自己保留这个模拟器, 只有你自己勇以及教学用.
不管怎样, 当然, 你写不出一个能够模拟你所不熟悉的游戏系统的模拟器. 这就是为什么我总是建议在做自己的模拟器之前最好做一些自己的 NES demo. 你需要知道 CPU 是如何工作的, PPU 怎样运转, 以及音频通道如何工作. 这些都可以通过测试你自己写的 NES 程序而很好的掌握. 事实上, 这是做好的途径了. 所以, 这是 NES 那边的事.
PC 这边的事是 (PC, 我的意思是指一般的个人电脑, 并不是特指 IBM PC), 你需要熟悉如何在各种显示模式下如何快速显示图形, 如何控制计算机的声音硬件接口, 如何处理键盘, 鼠标, 和手柄的输入. 将速度调整到稳定的 60Hz 对游戏机模拟器来说是非常重要的, 比如 NES. 如果你对这些并不熟悉, 那么你会得到相同的建议: 我建议你在你的 PC 上写一些 demo 或者只是一个小游戏. 做一个模拟器就像是将两种系统结合: 如果你对你要模拟的系统和你的程序运行平台系统并不精通, 那么写出来得将是一个次品.

&yen;?#181; a&reg;3 &pound;ee+, g0+ an&yen; ROMz +?g&iexcl;v3 m3?
Having 25,632,890 ROMz doesn&#39;t make one &quot;&#39;leet,&quot; nor does using lame &quot;&#39;leetspeak,&quot; so stop trying. If there&#39;s such a thing as &quot;&#39;leetness&quot; in the NES world, it comes from doing amazing and ingenious things with the NES hardware (and software), such as what is routinely done by humble people like Kevin Horton, Mark Knibbs, and others.
(译注: 本人放弃翻译这个问题, 因为我实在不知道怎样用汉语忠实而又生动的表现作者的意思. 作者在这个问题中表达了自己对 lamers 的一些观点. 至于什么观点, 自己体会吧.)

怎样才能把 .FDS 文件读入我的模拟器?
首先, 你的模拟器必须支持 Famicom Disk System. 如果不支持, 那只能说你的运气太差了. 对于不同的模拟器, 读入现在的 FDS 磁碟的方法并不一样, 但是一般来说包括读入磁碟, 然后点击某个按钮来 &quot;插入&quot; 磁碟或 &quot;弹出&quot; 磁碟旁边那个. 注意, 有时在模拟器运行磁碟之前需要有一个 8K FDS ROM 的二进制映像文件.
很不幸的是在模拟界存在两种稍有不同的 .FDS 格式: 一种没有文件头 (header), 另一种有. 模拟器 iNES 支持那些直接从 FDS 磁碟媒质上一个字节一个字节的复制下来的没有任何文件头的 FDS 磁碟文件. 其他模拟器可以读入包含了用来简单描述磁碟镜像中扇区个数的 16 字节的文件头. 让人充满希望的是大多数模拟器最终将支持这两种 .FDS 镜像.

什么是 iNES 的文件头?
iNES 文件头是当今 NES 模拟器界实际上的标准. iNES 文件头是 .NES ROM 开始处的 16 字节区域, 这个区域描述了这个游戏的大小和镜像的类型, 等等. 关于 iNES 文件头的细节, 请参考 nesdev.parodius.com 的文档. .NES ROM 的组成开始到结束是: iNES 文件头, [数字逻辑运算器 (trainer)], X PRG ROM 区, [Y CHR ROM 区]. (方括号表示那些部分是可选的, 具体情况依赖与不同的游戏.) 数字逻辑运算器虽然很少见, 但一些游戏有这一部分.
对于 iNES 格式来说, PRG ROM 区的数据大小是 16384 字节. 因此 PRG ROM 是游戏程序的镜像. 这一点至今依旧被模拟器执行着. 首先由镜像来决定在 NES 存储区域中的上述区域如何映射. 有些游戏没有 CHR ROM 区, 它们把图形数据混合入了 PRG ROM. 这些游戏在运行的时候只简单的使用了 RAM 中的 8k 来存储 CHR 数据.

什么是 UNIF?
UNIF 是一种新的格式, 一般认为这种格式将会结束许多 iNES 带来的问题, 特别是笨拙且专制的隐式内存镜像. UNIF 将 dump 的游戏描述的很清楚来解决这个问题. 电路板类型, 内存镜像, ROM 大小等等都被定义得更加清楚. UNIF 也是一种被分成块类型, 这就是说程序员可以可以选择他的模拟器读 .UNF 的哪一部分 (非常重要!). 如果模拟器读到了一个没有被辨认出的块, 就可以跳过那个部分继续读后边的. 至今为止, 只有少数的模拟器支持 UNIF 格式, 这就是 UNIF 的最大缺点. 但是任何东西都要有个开始, 不是吗?
浏览下面的网站可以获得关于 UNIF 的更多细节 nesdev.parodius.com 或者 UNIF 网站.
有 iNES &lt; - &gt; UNIF 转换程序吗?
是的, 有这样的转换工具, 这个工具是开源的 UNIF lib 项目的一部分. NESDev &quot;powers that be&quot; 一般来说并不支持将 UNIF 格式转换回 .NES, 当然我们支持将 iNES 转换成 UNIF.

什么是 .IPS 补丁? 怎样才能使用它?
IPS 文件是一种很小的文件, 它们被用来以一种高效的方法改变 (或修补) 游戏 ROM (或者其他相关文件) 中的数据. 它们被用来通过一种不违反版权法的方法 (希望如此) 实现对 ROM 的 hack, 翻译和修补. 比如, 如果你翻译了一个游戏并且只是将翻译后的版本放在你的网页上, 那么你依旧是违反了版权法. 所以, 一般来说 IPS 文件所做的事情是告诉补丁程序游戏文件中的哪些内容需要被改动和改动成什么样子. 附加一点是 IPS 文件要比一个完整的打过补丁的 ROM 小很多.
你不能运行 IPS 文件 -- 这是经常发生的误解. (你能运行 MP3 文件吗? 我想不能.) 所以你需要有一个支持 IPS 文件的补丁程序. 它会载入 IPS 文件和游戏 ROM, 然后打补丁, 但是必须注意的是一些补丁程序覆盖原始 ROM, 所以打补丁之前要进行备份! IPS 补丁程序在许多计算机平台上斗存在, (包括我的 ol&#39; Amiga!). 一个找你的计算机上用的 IPS 程序的好地方是 http://www.zophar.net/.

什么是 NSFs?
NSFs (Nintendo Sound Files: Nintendo 声音文件) 是游戏的音乐. NSFs 从游戏中被分离出来并且可以在与拥有 NSF 插件的 WinAmp 类似的音乐播放程序中播放. 这个格式有 Kevin Horton 在 1999 年开发出来, 它与用来分离 C-64 音乐的 SID 格式非常类似. NSFs 并不像其他系统中的 GYM 或者 (从某种意义上的) SPC 音乐文件, 因为 NSFs 并不记录 NES 音频信息. NSFs 的内部是从 NES ROM 中获取的 6502 程序代码和数据, 并且能够通过 NES 的音频硬件独立运行和发出声音. 这就是为什么 NSFs 能够像原始的音乐那样恰当的循环播放. 这样你就可以明白为什么有些人一直在找音乐代码, 分离它的入口点, 然后将它分割为另外一个文件. NSFs 听起来很棒. :-)

如何分离 NSFs?
你需要了解 6502 的机器代码, 并且对 NES 的声音寄存器很熟悉. 我写了一份关于 NSF 分离基础的完整的文档, 你可以在我的网站或在常去的地方找到.

--------------------------------------------------------------------------------
程序设计
Top
NES 游戏用什么语言编写, C, BASIC 或者其他语言?
几乎所有 NES 游戏都使用 6502 汇编语言编写, 因为低速的 NES 处理器需要这样. 也许有一些游戏使用 C 编写, 但我对此表示怀疑. (一些未授权的很差劲的游戏也许使用 C 或其他什么语言编写. :-)) 对 BASIC 来说也一样. 虽然 Bung 和 Nintendo 都有 Famicom 的 BASIC 硬件解释器, 但是由于它的速度太慢了, 所以不能使用类似 C 和 BASIC 的高级语言来编写专业的, 快速步调的游戏.

怎样才能开始编写 NES 程序?
首先, 学习 6502 汇编语言. 可以从图书馆里借一本汇编教材或者修相关课程. 汇编语言比其他语言要难很多, 因为你是直接与硬件打交道. (事实上, 这就是我为什么喜欢汇编语言.) 保证你对大多数 CPU 的工作原理熟悉, 比如访问内存, 指令寄存器, 和操作数. 关于 16 进制数系统 (Hexadecimal 或 HEX) 的只是至关重要.
第二, 到 nesdev.parodius.com 上逛逛, 读一些那里关于 NES 的内存如何分配, 寄存器都作些什么和 NES 的性能 (以及特性) 的技术文档. 一直读到你对 NES 硬件有一个和好的认识为止.
第三, 开始写 NES 的测试或 demo ROM. 你可以从找一些简单的 NES demo 代码开始, 来了解 NES 程序怎样启动, 内存如何清空, 如何初始化寄存器, 如何与 PPU 打交道. 找一个 6502 汇编器, 比如 DASM 或 X816, 来编译你的代码. 所有的工具都可以在 nesdev.parodius.com 下载到. 在那里还可以找到许多 demo, 我的 demo 可以在我的网站找到.
在此之后就是用你的 NES 只是来提高熟练度了. 好运!

NAME table, ATTRIBUTE table, 和 PATTERN table 是怎样结合在一起的?
NES 并不像 Windows PC 那样有一个可以直接存储每一个象素的颜色值的位图屏幕. NES 的 PPU 非常有限, 所以 NES 需要建立一个将一些不同的优化的内存区域结合在一起的屏幕显示. 首先, pattern table (图案表) 是一个访问 NES 的 CHR ROM 的小窗口. 它存储了 256 中不同的用来作背景的图形块 (每一个都是 8x8 象素), 以及另外 256 个给角色用的块. 当 name table 需要显示一个特定的图像, 它不需要逐点描绘它自己的存储器中的图形. 而是改为由 name table 存储一个与需要的块在 pattern table 编号相同的数.
NES 有 16 种背景色 (background palette), 其中有一些镜像. 但是 name table 中的一个块不能同时访问全部 16 色; 它只能被调色板的 16 色中的 4 色构成. 这只是有 Nintendo 强加的限制. 于是 attribute table (属性表) 被引入, 来描述一个特定的块将会使用调色板 16 色中的哪 4 色. 因为 attribute table 非常小 (64 bytes), 它只能确定 2 tiles x 2 tiles. 所以每个 16x16 象素背景区域需要共享相同的 4 色. MMC5 内存镜像克服了这个问题, 但是如果没有它, 你就只能坚持 NES 的规定了.
[发帖际遇]: woodexe 打扫环境卫生,被奖励 4 个 柠檬. 幸运榜 / 衰神榜
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2024-12-23 08:30 , Processed in 1.068360 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表