为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

任天堂游戏编程探密2

2017-09-01 17页 doc 38KB 180阅读

用户头像

is_562397

暂无简介

举报
任天堂游戏编程探密2任天堂游戏编程探密2 隶L-L_.\ 2占,寻l 二,任天堂游戏的软件特点: 1.任天堂游戏的软件结构 于春 -——, 存储器)存储当前使用的字模. 任天堂游戏软件结构可分为两大类:基本结构和 扩展结构. ?基本结构 基本的任天堂游戏软件容量为40K字节(标准卡 标注为LB).典型游戏如:《1942》,《超级玛丽》等.其 中32K字节为游戏控制程序,供CPU执行f8K字节 为图形字模,由PPU处理.另外还有一种低配置结 构,软件容量为24K字节(标注为LA),这是一种早期 软件.其中控制程序为1...
任天堂游戏编程探密2
任天堂游戏编程探密2 隶L-L_.\ 2占,寻l 二,任天堂游戏的软件特点: 1.任天堂游戏的软件结构 于春 -——, 存储器)存储当前使用的字模. 任天堂游戏软件结构可分为两大类:基本结构和 扩展结构. ?基本结构 基本的任天堂游戏软件容量为40K字节(标准卡 标注为LB).典型游戏如:《1942》,《超级玛丽》等.其 中32K字节为游戏控制程序,供CPU执行f8K字节 为图形字模,由PPU处理.另外还有一种低配置结 构,软件容量为24K字节(标注为LA),这是一种早期 软件.其中控制程序为16K字节;字模为8K字节.典 型游戏有:《火箭车》,《马戏团》等. 40K软件的控制程序存放地址在CPU管理的 $8000,$FFFF空间;字模地址在PPU管理的 $0000~$IFFF空间.16K软件的控制程序存放地 址为$CO00,$FFFF;字模地址也是$0000, $IFFF. ?扩展结构 40K以上的软件均为扩展结构.它们在基本结构 的基础上或者扩展控制程序区,或者扩展字模区.扩 展方法是在某段地址范围进行空间存储体切换.一般 程序区在$8000,$BFFF空间切换;字模区在 $0000~$1FFF空间切换.切换种类按软件容量的 大小略有不同: 对于48K卡(标注为LC),其程序部分为32K;字 模部分为16K,分2个8K存储体.典型游戏有《七宝 奇谋》,《影子传说》等. 对于64K卡(标注为LD),其程序部分为32K;字 模部分为32K,分为4个8K存储体.典型游戏有《迷 宫组曲》,《冒险岛》等. 80K的游戏不多(标注为LE),常见的有《中国 拳》,《金牌玛丽》等.其程序部分为48K,前32K分为2 个16K存储体;字模部分为32K,分为4个8K存储 体. 128K卡(标注为LF),其程序部分与字模部分混 合共用128K,分为8个16K存储体,其中前7个存储 体地址映射于$8000~$BFFF;最后一个存储体(称 为HOMEBANK)映射于$C000~$FFFF.典型游 戏有《魔界村》,《怒》,(1943),(1944~,《特殊部队》等. 这类游戏卡中一般都配有一块8K的RAM(动态随机 ? 28(总156)? 160K卡(标注为LG),其程序部分为80K;字模 部分为80K.典型游戏有《冒险岛I》,《花式撞球》,《欢 乐叮当》等. 256K卡(标注为LH),其程序部分为128K;字模 部分为128K.典型游戏有《柯拉米世界》,《恶魔城》等. 另外,还有《魂斗罗》,《赤色要塞》,《绿色兵团》,《立体 篮球》等256K游戏被压缩为128K游戏,目前这类游戏 的256K版已不多见,常见的均为128K的压缩版. 对于任天堂系列游戏机,由于CPU的处理速度, 画面的解析度,音域音色等方面的限制,即使软件容量 再增大,游戏效果也不会提高多少,总达不到街机的水 平,故单个游戏的最大容量一般为256K,目前尚未见 到更大容量的游戏软件. ?存储体的切换 对每一个游戏芯片来说,都有两类地址:绝对地址 (通常称为逻辑地址)和相对地址(通常称为程序地 址).如32K芯片的逻辑地址为0000H~7FFFH,其程 序地址则为8000H~FFFFH;再如128K芯片的逻辑 地址为0000H,1FFFFH,而其程序地址仍为 8000H~FFFFH,这是通过8个存储体空间的分段切 换实现的,关于各存储体的切换控制一般是通过一块 74LS161(可预置四位二进制计数器)门电路实现的. 切换电路原理图如图l所示. 关于前7个存储体的切换控制程序则放在第8存 储体的C000H~FFFFH地址中,程序形式如下: PH’A LDA#$ON STA$FFFF PLA JMP$XXXX 其中”N”为切换数据,即存储体的段号;”XXXX”为欲 转往该存储体程序的地址.’ 对照图1可明显看出IC1的各段逻辑地址与切换 数据的对应关系如下页中附表所示. ?多节目合卡 随着大规模集成电路制造工艺的完善和提高,高 容量只读存储器制造成本迅速下降,极大地缩小了1 兆位芯片与8兆位芯片间的价格差距,因而多节目高 K合卡应运而生,出现了8合1,16合1,32合1等多 《无线电》 节目合卡.这些合卡尽管容量不同,但其节目切换原 理与图l的段址切换方式是大同小异的,不同的仅是 每段的切换容量根据节目容量的大小从16K128K 不等,不多赘述. 2.任天堂游戏的疆徽处理方法… ?屏幕显示原理. 任天堂游戏机的中CPU虽然仍属65系列的 CPU,但它的显示方式与中华学习机截然不同.其显 示屏幕由三类四层显示页面构成.三类显示页依次 为:卡通(角色或动画)页,背景页,底背景页.卡通页 用于显示游戏中的角色,它有两个页面:卡通零页—— 使角度显示于背景之前}卡通一页——使角度显示于 背景之后.卡通页的显示分辨率为256×240点,卡通 可以以点为单位移动.背景页主要用于游戏画面的显 示,它共有4个显示页面,每页的两边互相连接并排成 “田”字,采取字符显示方式,显示分辨率为32列×3O 行,每幅画面为960个图形块构成,游戏中可任取一个 页面显示.底背景页主要用于大面积的单色显示,以 衬托出蓝天,草地,沙漠,大海等效果,显示分辨率为 l×l.四层显示页的排列由前向后依次为:卡通零页, 背景页,卡通一页,底背景页(见图2).系统默认的排 列方式为背景00页与卡通页,底背景页四层页面重 叠,前面显示页的内容可以遮住后面显示页的内容,因 而很容易构成具有一定景深次序的立体画面. ?背景处理技术 任天堂游戏中的背景画面显示采用字符方式,每 个字符通常称为背景图形块.每个图形块为8×8点 阵,其字模数据存放在由PPU管理的一段内存中,称 为背景字库,一般使用$i000~$1FFF地址,共4K 字节.每个字模由连续的l6个单元组成,故一次最多 可定义256个字符,序号依次为0~255.显示字符时, 只要把字符序号置入屏幕对应的显示单元中即可. 任天堂游戏中的背景处理由PPU独立完成,每 一 个背景页面对应PPU的1024个单元,为顺序对应 VCC32 PGM31 NC30 A1429 A1328 A827 A926 A1125 oE24 A1023 CE22 D721 D620 D519 D418 D317 IC1271000 1994年第3期 一 0— 1CLEARVCC16 2CK15 3AQA14 4BQB13 5CQC12 6DQD11 7PT10 8VSSLoAD9 IC2 74LS161 ? 关系.背景00页对应PPU地址为$2000~$23FF, 其中$2000~$23BF对应于960个图形显示单元, $23C0~$23FF为该显示页的配色单元;背景i0页 对应的pPU地址为$24oQ,$27FF~同样,后面的两 一 页依次对应$2800~$2BFF$2Coo~$2FFF.由于 游戏机中只有一块2K的VRAM(PPU使用的 RAM)故一般只使用前两个页面,通常称其为背景零 页和背景一页.游戏中可通过设置软开关的方法控制 画面的横,纵向,以使两幅画面横向并列或纵向衔接. 在实际游戏中,要经常用到背景画面的横向卷动 和纵向滚动.如《魂斗罗》游戏中的第一,五,六,七,八 关是横向卷动,第三关则是纵向滚动.这些画面位移效 果是如何实现的呢?我们知道,中华学习机中的画面位 移是通过反复改写显示映射单元的内容而实现的,这 种方法处理速度慢,控制程序冗长.任天堂则采取了截 然不同的方法.它通过硬件的特殊处理,引入了显示窗 口的概念.画面位移时,每个显示单元的内容不变,而 令显示窗口向相反的方向移动,从而实现了画面的横 向卷动和纵向滚动.如《魂斗罗》中第一关横向卷动的 控制方法是:令两个背景页横向衔接,游戏开始时,背 景零页绘满32列,而背景一页仅绘制12歹1}显示窗 口对正零页;当游戏中的角色前进到画面右边的一定 位置时,则令显示窗口右移一格,同时绘制一页的第 l3列;这样,显示窗口每右移一格,画面绘制一列,从 而使游戏画面连绵不绝;每移出一页画面(32列)令页 数计数器加一,当累计到一定页数时则令窗口不再移 动,进行关底处理.这一画面的位移控制极为简单,仅 通过向位移软开关$2005置入移位数据就可实现. FBASlC的控制程序为: 10POKE&H2005.X 20POKE&H2005.0 D2DlDOAl6Al5A14逻辑地址 OOOOOOO?O,3唧 OOlOOl4OOO,7FFF OlOOlO8000~BFFF OllOllCOOO,FFFF lOOlOOlOO?,l3FFF l0ll0l14OOO,l7FI llOll0l8OOO,lBFFF lllllllCOOO,l瞪冒 652S”觚觚舢肋啪苎} ?23456789 n??? x为位移参数.其机器语言的控制程序为: LDAX STA$2005 LDA#$OO STA$2005 画面的纵向位移则更为简单,如《魂斗罗》的第三关 —— 瀑布天险是一个纵版画面,角色要从最底层跳升 到最顶层与关底魔头决斗,游戏进程中画面随着角色 的跳跃不停上滚.实际上这一位移过程是在一页画面 中进行的,控制方法是:每当角色前进到画面上方某一 位置时,改写画面最底行的图形数据,使其为即将移入 画面的一行I然后令显示窗口向上移一格t由于窗口是 在一个显示页上移动,故最底行即是最顶行(这时可把 一 页画面理解为上,下边对接的圆筒,显示窗口是套在 画面圆筒外面稍大的一个圆筒,窗口移动一格就是向 上旋转一格).FBASIC控制程序为: 1OPoKE&H2005,0 2OP0KE&H2005,Y Y为位移参数.相应的机器语言程序为: LDA#$OO STA$2005 LDAY STA$2005 以上画面的送数,位移操作都是在CPU响应非 屏蔽中断期间完成的(非屏蔽中断是在电视机的场回 扫期间发出和响应的,这时的电视屏幕是黑的),所以 我们感觉不到位移的痕迹. 再如在24K节目《大赛车》(F一1RACE)游戏中, 背景画面被分为三部分:上部(约占屏幕的六分之一) 为赛车速度,比赛时间,比赛路线及比赛进程等项的提 示t中部(约占屏幕的三分之一)为远山,蓝天,白云及 “HELLO”标语版背景,游戏中该部分画面随着比赛路 线的弯曲而横向左卷或右卷t下部(约占屏幕的二分之 一 )为赛车路线,路标,田野等画面,游戏中该部分画面 显现出极度扭曲的,高低不平的公路路面.该类游戏 画面结构的绘制方法曾使许多人迷惑不解,尤其是公 路画面的扭曲更令人感到高深莫测,仅仅16K程序能 够实现如此逼真的游戏画面实在不可思议.实际上, 该游戏的画面控制程序仅仅5K左右.它采用把一幅 画面分为3部分单独控制即画面分割法,这也是通过 设置系统软开关实现的.由此可见,任天堂游戏的画 面处理方法是灵活多变的,也是异常神奇的. ?动画处理技术 组成任天堂游戏机中动画的最小单位是卡通块, 每个卡通块为8×8点阵,与一个字符同样大小.卡通 块也有一个图形字库,对应的PPU地址为$0000~ $0FFF.每个卡通块的字模数据也由连续的16个单 ?30(总158)? 元组成,故一次最多可定义256个卡通块,序号依次为 O,255. 6527CPU规定,在一幅画面上只允许同时显示 64个8×8点阵的卡通块(这是由PPU内卡通定义区 的RAM分配量决定的).如《超级玛丽》中,玛丽在吃 红蘑菇之前为16×16点阵大小(即由4个卡通块组 成),当吃了红蘑菇之后身体长大一倍,变为32×32点 阵(即由16个卡通块组成)的卡通.但实际游戏中要求 显示的卡通块数往往远远超过这一限制,如目前较流 行的打斗游戏《街霸》中,一个卡通块即为128×64点 阵(由128个卡通块组成),有时还更大,这是怎么实现 的呢? 原来在实际游戏中,对卡通进行了分时控制.所谓 分时控制就是在不同的时间里显示卡通的不同部分, 依靠人眼的视觉惰性产生连续的感觉.如《魂斗罗》游 戏中的卡通显示(两个正面角色,敌人,发射的子弹,暗 堡的闭合与开启都是卡通)就是每一次中断显示卡通 的二分之一实现的. 卡通的定义操作极其简单,系统规定一个卡通块 由连续的4个内存单元定义,第一个单元指定卡通显 示的Y坐标,第二个为卡通块在字库中的序号,第三 个为卡通块的显示状态(配色组合,左右翻转,上下颠 倒以及显示于那个卡通页面),第四个为显示的X坐 标.编程中可任意指定定义卡通的内存页面(一般选二 页或三页,即$200,$2FF,$300,$3FF). 3.任天堂游戏的音响处理 在大部分任天堂游戏的过程始终,一直伴奏着和 谐动听的背景音乐t随着游戏的进行和角色的动作还 不时发出逼真的效果音响,而且这些音响的发出与背 景的移动,角色的运动三者并行工作,互不干扰.许多 朋友玩过中华机上的游戏,如《警察抓小偷》,《富士山 决战》等,这些游戏中的音响发出与角色的动作是不能 同时进行的,即角色动作时没有音响;发出音响时角色 的动作要停下来.任天堂游戏中的音响处理确有独到 之处,由于在6527CPU内固化可编程音响发生器,所 以音响控制程序特别简洁.任天堂游戏的发声系统由 5个声部组成,对应于CPU管理的$4000~$4013 二十个单元,每个声部使用4个单元,它们的作用依次 为音色音量,音形包络,音调细调,音调粗调.第一,二, 三声部可进行和声旋律演奏,也可以选取任一声部发 出效果音,如执行FBASIC程序 POKE&H4015,1:POKE&H4000.255, 255,255,255/ 就可发出长达三分钟的,频率由低到高的警报声.第四 声部可以模仿连续不断的噪声,如风声,雨声,钟声,脚 步声,火车运行声等等.第五声部则可模仿出人的讲话 声.任天堂游戏中背景音乐一般都是使用前三个声部 《无线电》 争?争?争争?夺’争’争争’争’争’争’争’争’争’争’争’争’争’争’夺 :微机开关电源维修几例; 毒毒 夺?争?争?争?牛?f}?争?+?黄金华:一}’??+?丰?牛’争’孛一 例一,故障现象:BSP一002A开关电源不能启动 计算机,且风扇不转. 检查与:在机上测N5伏输出端电压为2伏,I2 伏输出端电压为4.6ft.测得脉宽调制组件KA7500的 3脚电压为零伏,4脚电压为4.I伏.当将开关电源与微 机断开,在5伏电压输出端接3欧假负载时,风扇转动, 各输出端电压正常I将假负载改为68,风扇微动一下, 各输出端电压微低.在IM339的1O脚与地之间跨接 220t*F/26V电容,负载仍为6欧,风扇转4,5转即停. 将”缺相”保护电路中接十5ft端的电阻R52由760欧改 为850欧,一切工作正常. 故障原因:在低负载时,电源5伏输出端电压稍高, 使”缺相”保护电路取样端电压上升,保护电路动作,造 成故障. 例二,故障现象:ML200W开关电源,有时不能启 动计算机. 检查与分析:将开关电源改用调压器供电,调节输 出电压为I80伏时,”电源好(PG)”信号为零伏,其它各 电源输出端正常.将市电取样回路中的R45由3.9千欧 改为4.3千欧,这样输入电压降至155伏时微机能正常 工作. . 故障原因:微机有时不能启动,是市电电压过低, “PG”信号为零伏. 例三,故障现象:开关电源输出电压随输入电压变 动. 检查与分析:调节输入电压分别为I75伏,200伏和 220伏时,5伏输出端电压分别为3.7伏,4.6{k和5伏,再 升高输入电源,5伏电压不变.在上述条件下,脉宽调制 组件TL494的3脚电压在0.I,0.2伏之间(正常时应 随电压升高逐渐上升);用示波器观察TL494的8脚和 II脚波形不随输入电压变化而变动(正常时,输入电压 下降,脉冲加宽),换一片TL494,故障消除. 故障原因:脉宽调制组件TL494的采样放大器功 能失效,不能随取样端电压变化调节脉冲宽度. 例四,故障现象:不能启动计算机,但风扇转动. 检查与分析:测士50t和士12伏电压正常,”电源好 (PG)”信号为零伏.测比较器LM339的4脚电压为2伏 (反相输入端),5脚电压为2.5it(同相输入端),输出端 2脚电压为0.2伏(正常时应为5伏),表明该比较器有故 障.由于该比较器输出电压加到由6脚,7脚和I脚组成 的另一个比较器的同相端,使输出端I脚电压为零伏, 即PG信号为零伏.改用该机LM339未用的一个比较 器替换有故障比较器,故障消除. 故障原因:负责产生PG信号的比较器失效. 演奏的,演奏程序也是放在中断中处理的.5个声部的 发声总开关由$4015控制,$4015的D0~D4位依次 控制着第一至第五声部的工作状态,置0关闭,置I开 启. 由以上讨论可见,”中断”在任天堂游戏中占有举 足轻重的地位.也正因为任天堂游戏充分使用了中 断,才使它风靡全球. 三,开发任天堂游戏的可行性 I.FBASIC的开发环境 目前,与任天堂游戏机配套的键盘以其低廉的价 格已迅速推开.游戏机配上键盘和学习卡后,再加上 家庭中的电视机,录音机,就构成了比较完整的低档电 脑系统,使用它不仅可以进行谱曲,演奏,打字,演算, 写文章,学外语I可以进入声像学习系统,使用各类教 学磁带辅导教学;可以使用FBASIC语言编程,学习 计算机语言;可以使用LOGO语言绘制千奇百怪的图 案I还可以使用它开发任天堂游戏.但是,由于这类键 盘无监控系统,在FBASIC系统下编写机器语言程 序,修改和调试都不方便.因此极难编写出满意的程 序.另外,由于学习卡中的字模已经固定,只能使用给 定的卡通,因此也极难编出具有新意的游戏.所以,键 1994年第3期 盘只能称为低档的游戏开发工具. 2.高层次的开发环境 高层次的开发环境要借助PC机才能实现.如北 京裕兴机械电子研究所开发的”VI.0游戏开发系统”, 可以直接运行I28K以下的各种任天堂游戏软件,具 有比PC机的DEBUG更强的编辑功能,可以汇编,反 汇编6527机器语言程序.因此,使用这一系统开发任 天堂游戏软件当然得心应手,调试极为方便.但是这种 系统一次性投资较大,一般业余爱好者较难接受.其次 是使用中华学习机的开发环境,但是这种开发环境仅 能在中华学习机上开发软件而不能直接运行(必须把 程序装入万用卡中,再插入游戏机才能运行),故程序 的调试不大方便.另外,它只能使用中华机的$2000~ $5FFF地址单元编写程序,编程地址与游戏的实际 工作地址不对应,故对初学者来说,较难适应.已有一 种编程器,能从某些游戏卡中读出机器码和把游戏程 序写入EPROM中,但由于不具备汇编,反汇编功能, 满屏的机器码,编写和调试程序不很方便. 综上所述,目前国内尚无适应业余爱好者的游戏 开发系统.因此,亟待国内同仁共同努力,使价廉物美 的开发系统早日问世.一完一 ?31(总159)?
/
本文档为【任天堂游戏编程探密2】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索