我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合生肖表 > 反编译器 >

当年的Fc《魂斗罗》《玛丽》是用什么工具做的。如何反编译。

归档日期:05-17       文本归类:反编译器      文章编辑:爱尚语录

  在网上看到恶搞的玛丽地图。特别难。以前用rpgmaker做过游戏。但是不知道FC游戏是在什么环境下用什么软件做的。很好奇,所以问一下。...

  在网上看到恶搞的玛丽地图。特别难。以前用rpgmaker做过游戏。但是不知道FC游戏是在什么环境下用什么软件做的。很好奇,所以问一下。

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  长期以来,由于任天堂公司在技术上的封锁和国内游戏开发工具的久缺.任天堂游戏

  蒙上了一层神密的面纱,中国人只能玩任天堂游戏.而不能象苹果机、中华学习机那样了解

  游戏程序、自己动手编写游戏。近年来,随着任夭堂系列游戏机配套键盘的问世,逐步创造了

  揭开这层面纱的条件.特别是配有打印机接口的“裕兴”、“金字塔”等高档游戏机键盘的陆续

  推出,用户仅仅编写一个简单的反汇编程序就可打印出系统软件的源程序,从而为探索任天

  有人疑问任夭堂游戏机的中央处理器同中华学习机一样也是八位的CPU.但为什么

  它能够产生出如此绚丽多彩的动画、美妙动听的音响、栩栩如生的角色,其效果远远胜过美

  国的“雅达利“,更强过中华学习机的游戏呢?究其原因,关键在于任天堂游戏机的设计者们

  在传统的八位机上独具匠心、另辟蹊径,从硬件上进行了独创的改造,在软件上进行了大胆

  的尝试,使一个CPU发挥了两个CPU的功效,产生了绝妙非凡的艺术效果.从而以物美价

  廉的绝对优势迅速占领了游戏机市场,掀起了家庭娱乐领域的第三次浪潮。本文拟从分析任

  天堂游戏的软、硬件特点出发,揭开任天堂游戏编程的秘密.以一与广大同好切磋。

  任天堂游戏机的硬件共分两部分:主要部分是游戏机.从属部分是游戏卡。游戏机提供

  上图中6527 CPU为中央处理器,田于它的任务是处理程序,所以一般把与它相连的部

  存储器表示为PRAM,PROM等。同样.6528 PPU的任务是处理图像,所以凡与它相关的部

  6527 CPU是一个八位单片机,在它的内部除固化有6502系列的CPU外,还有一个

  间分配为$4000-$4017.主要用于CPU的I/O操作,PSG音响发生器的工作就是由这些

  普通的单节目游戏卡一般由两片ROM或EPROM组成,ROM的容量由游戏程序量的

  大小决定.最简单的任天堂游戏为24K,故这种卡内有块16K的ROM存放程序,一块

  8K的ROM存图形字模(目前有软封装的IC,它把两块ROM封在一起)。典型的任天堂

  游戏程序量为40K,它使用一块32K的ROM存程序、一块8K的ROM存字模。当程序量大

  脚的芯片,27C1000或更大容量的芯片为32脚(个别的27C1000仍为28脚,它使用了OE.

  目前流行的任夭堂游戏软件有数百种,内容已涉及及到政治、经济、军事、战争、教育、管

  理、体育、娱乐等各个领域.可以说任天堂游戏已兼顾了男、女、老、中、青、少、幼各个年龄阶

  层,深受世界各国人民所喜爱。也许这就是它迅速普及的主要原因。但是,任天堂游戏尽管

  内容千变万化、情节各异,其软件结构和处理方法则是基本相同的,它们有着共同的特点。

  基本的任夭堂游戏软件容分为40K字节(标准卡标注为LB)。典型游戏如,《1942》、《超

  级玛丽》、《拆屋工》等.其中32k为游戏控制程序,供CPU执行;8K为图形字模,由PPU处

  理。另外还有一种低配置结构,软件容量为24K{标注为LA),这是一种早期软件。其中控制

  程序为16K;字模为8K。典型游戏有《火箭车》、《马戏团》、《金块Ⅰ、Ⅱ》等。

  40K软件的控制程序存放地址在CPU管理的$8000一$FFFF空间;字模地址在PPU

  容量在40K以上的软件均为扩展结构。它们在基本结构的基础上或者扩展控制程序

  区、或者扩展字模区。扩展方法是在某段地址范围进行空间存储体切换。一般程序区在

  对于48K卡(标注为LC〕,其程序部分为32K;宇模部分为16K,分两个8K存储体.

  对于64K卡(标注为LD)有两种结构:一种是其程序部分为32K;字模部分为32x,分

  为四个8K存储体.典型游戏有《迷宫组曲》,《智慧城》、《沙罗曼蛇一代》、《北斗神拳一代》

  等;第二种则是程序与字模共用64k,分为四个存储体.典型游戏有《米老鼠大冒险》、《冒险

  80K的游戏不多(标注为LE),常见的有《中国拳》、《金牌玛丽》等。其程序部分为48K,

  对于128K卡(标注为LF),其程序部分与字模部分棍合共用128k,分为八个16K存储

  体,其中前七个存储体地址映射于$8000-$BFFF:最后一个存储体(称为HOME BANK)

  映射于$0000一$FFFF,典型游戏有《魔界村》、《怒》、《火之鸟方》、《未来战士》、《洛克人》、

  这类游戏卡中一般都配有一块8K的RAM(动态随机存储器〕存储当前使用的字模。

  对于160k卡(标注为LG),其程序部分为128K;字模部分为32K。典型游戏有《倚天屠

  对于256K卡(标注为LH),其程序部分为128K;字模部分为128K。典型游戏有《柯拉

  米世界》、《恶魔城》、《双截龙》、《松鼠历险记》《人间兵器》、《联合大作战)等。另外,还有《魂

  斗罗》、《赤色要塞》、《绿色兵团》、《立体篮球》《荒野大镖客》等256K游戏被压缩为128K游

  对于高于256K容是的游戏则称为特卡,如《不动明王传》,《战斧》、《孔雀王》,《大旋风》

  等游戏容量已达2M-4M。但由于任天堂系列游戏机的CPU的处理速度、画面的解析度、音

  域音色等方面的限制,即使软件容量再增大,游戏效果也不会提高多少.总达不到街机的水

  任天堂游戏机中的CPU虽然仍属65系列的CPU,但它的显示方式与中华学习机截然

  不同。其显示屏幕由三类四层显示页面钩成。三类显示页依次为:卡通(角色或动画)页、背

  景页、底背景页。卡通页用于显示游戏中的角色,它有两个页面:卡通零页——使角色显示于

  背景之前;卡通一页——使角色显示于背景之后。卡通员的显示分辨率为256x240点,卡通

  可以点为单位移动。背景页主要用于游戏画面的显示,它共有四个显示页面,每页的两边互

  相相连并排成“田”字,采取字符显示方式,显示分辨率为32列* 30行,每幅画面由$60个

  图形块构成,游戏中可任取一个页面显示。底背景页主要用于大面积的单色显示,以衬托出

  兰天、草地、沙漠、大海等效果,显示分辨率为1x1。 四层显示页的排列由前向后依次为:卡

  通零页、背景页、卡通一页、底背景页(见图1一6)。系统默认的排列方式为背景00页与卡通

  贾、底背景页四层页面重叠,前面显示页的内容可以遮住后面显示页的内容,因而很容易构

  任天堂游戏中的背景画面显示采用字符方式,每个字符通常称为背景图形块。每个图

  形块为8*8点阵,其字模数据存放在由PPU管理的一段内存中,称为背景字库,一般使用

  $1000一$1FFF地址,共4K字节.每个字模由连续的16个单元组成,故一次最多可定义

  256个字符,序号依次为0~255.显示字符时,只要把字符序号置入屏幕对应的显示单元中

  任关堂游戏中的背景处理由PPU独立完成,每一个背景页面对应PPU的1024个单

  对应于960个图形显示单元,$23C0--23FF为该显示页的配色单元;背景10页对应的

  $2FFF。由于游戏机中只有一块2K的VRAM(PPU使用的RAM),故一般只使用前两个

  页面,通常称其为背景零页和背景一页。游戏中可通过设置软开关的方法控制画面的横、纵

  在实际游戏中,要经常用到背景画面的横向卷动和纵向滚动。如(魂斗罗,游戏中的却

  一、五、六、七、八关是横向卷动,第三关则是纵向滚动。这些画面位移效果是如何实现的呢?

  我们知道,中华学习机中的画面位移是通过反复改写显示映射单元的内容而实现的,这种方

  法处理速度慢、控制程序冗长。任天堂则采取了截然不同的方法。它通过硬件的待殊处理,

  引入了显示窗口的概念。画面位移时,每个显示单元的内容不变,而令显示窗口向相反的方

  向移动,从而实现了画面的横向卷动和纵向滚动。如《魂斗罗》中第一关横向卷动的控制方法

  是.令两个背景页横向衔接,游戏开始时,背景零页绘满32列,而背景一页仅绘制12列,令

  显示窗口对正零页,当游戏中的角色前进到画面右边的一定位置时,则令显示窗口右移一

  格,同时绘制一页的第13列;这样,显示窗口每右移一格,画面绘制一列,从而使游戏画面连

  绵不绝,每移出一页画面(32列)令页数计数器加一,当累计到一定页数时则令窗口不再移

  动,进行关底处理。这一画面的位移控制极为简单,仅通过向位移软开关$2005置入移位数

  画面的纵向位移则更为简单,如《魂斗罗》的第三关——瀑布天险是一个纵版画面,角色要从

  最底层跳升到最顶层与关底魔头决斗,游戏进程中画面随看角色的跳跃不停的上滚。实际--

  这一位移过程是在一页面面中进行的,控制方法是,每当角色前进到画面上方某一位置时,

  改写画面最底行的图形数据,使其为即将移入画面的一行.然后令显示窗口向上移一格,由

  于窗口是在一个显示页上移动,故最底行即是最顶行(这时可把一页面面理解为上、下边连

  接的圆筒,显示窗口是套在画面圆筒外面稍大的一个圆筒,窗口移动一格就是向上旋转一

  以上画面的送效、位移操作都是在CPU响应非屏蔽中断期间完成的(非屏蔽中断是在

  电视机的场回扫期间发出和响应的,这时的电视屏是黑的),所以我们感觉布道位移的痕迹。

  关于任天堂游戏中背景画面的绘制 移动及画面的分裂位移和扭曲等效果的实现,将在第六章详细讨论。

  组成任天堂游戏中动画的最小单位是卡通块,每个卡通块为8X8点阵.与一个字符同

  样大小。卡通块也有一个图形字库,对应的PPU地址为$0000-$OFFF。每个个卡通块的字

  模数据也由连续的16个单元组成,故一次最多可定义256个卡通块,序号依次为0-255

  6527CPU规定.在一幅画面上只允许同时显示64个8x8点阵的卡通块〔这是由PPU

  内卡通定义区的RAM分配决定的〕,如《超级玛丽》中,玛丽在吃红蘑菇之前为16x16点

  阵大小(即由4个卡通块组成),当吃了红蘑菇之后身体长大一倍,变为32X 32点阵(即由

  16个卡通块组成〕的卡通。但实际游戏中要求显示的卡通块数往往远远超过这一限制,如目

  前较流行的打斗游戏《街霸》中,一个卡通即为128*64点阵(由128个卡通块组成)有时还

  原来在实际游戏中,对卡通进行了分时控制。所谓分时控制就是在不同的时间里显示半

  通的不同部分,依靠人眼的视觉惰性产生连续的感觉。如《魂斗罗》游戏中的卡通显示(两个

  正面角色、敌人、发射的子弹、暗堡的闭合与开启都是卡通)就是每一次中断显示卡通的二分

  卡通的定义操作极其简单,系统规定一个卡通块由连续的四个内存单元定义,第一寸

  单元指定卡通显示的Y坐标、第二个为卡通块在字库中的序号、第三个为卡通块的显示状

  态〔配色组合、左右翻转、上下颠倒以及显示于那个卡通页面,,第四个为显示的X坐标。编

  程中可任意指定定义卡通的内存页面(一般选二页或三页,即$200一$2FF, $300

  在大部分任天堂游戏的过程始、终,一直伴奏着和谐动听的背景音乐;随岩游戏的进行

  和角色的动作还不时发出逼真的效果音响,而且这些音响的发出与背景的移动、角色的运动

  三者并行工作,互不干扰,许多朋友玩过中华机上的游戏,如《警察抓小偷》《富士山决战》

  等,这些游戏中的音响发出与角色的动作是不能同时进行的,即角色动作时没有音响;发出

  音响时角色的动作要停下来.任天堂游戏中的音响处理确有独到之处.由于在6527 CPU内

  固化有可编程音响发生器,所以音响控制程序特别简洁,任天堂游戏的发声系统由五个声部

  组成,对应于CPU管理的$40DO——$4013二十个单元,每个声部使用四个单元,它们的作

  用依次为音色音量、音形包络、音调细调、音调粗调。第一、二、三声部可进行和声旋律演奏,

  就可发出长达三分钟的频率由低到高的警报声。第四声部可以模仿连续不断的噪声,如风

  声 雨声 钟生 脚步声 火车声等等 第五声部则可模仿出人的讲话声。任天堂游戏中

  背景音乐一般都是使用前三个声部演奏的,演奏程序也是放在中断中处理的.五个声部的发

  声总开关由$4015控制,$4015的D0——D4位依次控制翻第一至第五声部的工作状态,置

本文链接:http://oms15.com/fanbianyiqi/248.html