Fc魂斗罗和玛丽是用什么工具制作的?如何反编译?
任耀堂游戏编程探究(纯文本版)
第1章任天堂游戏结构介绍
长期以来,由于任天堂的技术封锁和国内游戏开发工具的缺乏,任天堂游戏
蒙着一层神秘的面纱,中国人只会玩任天堂游戏,却玩不好MAC和中国学习机。
游戏程序,自己动手做游戏。近年来,随着仁耀堂系列游戏机键盘的问世,逐渐造就了
揭开这层面纱的条件,尤其是配备打印机接口的“宇星”、“金字塔”等高端游戏机的键盘。
随着介绍,用户只需编写一个简单的反汇编程序,就可以打印出系统软件的源程序,从而探索任何一天。
游戏软件提供了一个有效的神秘手段。
有人怀疑任耀堂游戏机的中央处理器也是像语文学习机一样的八位CPU。但是为什么呢?
能制作出如此丰富多彩的动画,优美的声音,生动的角色,效果远胜美颜。
中国的“雅达利”比中国学习机的游戏好吗?原因在于任天堂游戏机的设计者。
在传统的八位计算机中,它是原创和创新的,在硬件上进行了创新,在软件上进行了大胆的尝试。
试一试,让一个CPU扮演两个CPU的角色,产生一种奇妙非凡的艺术效果,从而以一个好价钱出售。
联的绝对优势迅速占领了游戏机市场,掀起了家庭娱乐领域的第三次浪潮。本文意在分析任。
本文从天堂游戏的软硬件特点出发,揭示任天堂游戏编程的秘密,以供普通大众借鉴。
1.1任天堂游戏机的硬件特点
1电路原理框图
任天堂游戏机的硬件分为两部分:主要部分是游戏机,从属部分是游戏卡。游戏机提供
游戏的运行环境,游戏卡提供软件支持游戏,其电路原理图如图1-1。
上图中,6527 CPU是中央处理器,它的任务是处理程序,所以一般接在部门上。
前缀为“p”。因此,CPU的地址总线表示为PADD,数据总线表示为PDATA,由CPU管理。
内存表现为PRAM、PROM等。同样,6528 PPU的任务是处理图像,所以所有与它相关的部门
一切都以“V”为前缀。
1.1.2中央处理器6527 CPU
1.中央处理器的内部结构
6527 CPU是一个八位单片机,其中不仅有一个固化的6502系列CPU,还有一个
可编程声音发生器PSG(可编程声音发生器)和24个带空地址的8位只写寄存器。
分配为4000美元-4065438美元+07美元。主要用于CPU的I/O操作,PSG发声器的工作就是由这些组成的。
寄存器控制完成。
1.1.4游戏卡
1,游戏卡的基本构成
普通的单程序游戏卡一般由两片ROM或EPROM组成,ROM的容量由游戏程序决定。
尺寸决定。最简单的任天堂游戏是24K,所以这张卡有16K ROM存储程序,一个
8K ROM存储图形字体(目前有一种软包装ic,把两个ROM封在一起)。典型的任天堂
游戏程序量为40K,使用32K ROM内存程序和8K ROM内存模块。当节目数量很大时
40K的时候,ROM的容量要扩容。
2.游戏卡每只脚的功能
游戏卡是60针连接器。每个引脚的功能见图1-4。
3.常见ROM引脚功能简介
游戏卡常用的ROM或EPROM的型号有27C64(8 X 8K)、27C128(8X l6K)和27C256(8
X32k)、27c512 (8x64k)、27c1000 (8x128k),或者其他后缀数字相同但前缀不同的公众号。
司产品,盒子卡里有2兆(8 x 256K)到8兆(8X 1000K)的芯片。27C64~27C512是28。
引脚芯片,27C1000或更大容量的芯片是32引脚(个别27C1000还是28引脚,它用OE。
CE中的引脚被用作地址线)。
1.2人药堂游戏软件的特点
目前流行的任遥堂游戏软件有上百款,已经涉及政治、经济、军事、战争、教育、管理等多个领域。
科学、体育、娱乐等领域。可以说,任天堂游戏兼顾了男女老少各个年龄段。
层,深受全世界人民的喜爱。也许这就是它迅速普及的主要原因。然而,任天堂游戏尽管
内容千变万化,情节各异,但软件结构和处理方式基本相同,具有相同的特点。
1.2.1任天堂游戏的软件结构
综上所述,任天堂游戏软件结构可以分为两类:基础结构和扩展结构。
一.基本结构
仁耀堂的基础游戏软件分为40k字节(标准卡标注为LB)。“1942”“超级”等典型游戏
玛丽,房屋拆迁工人等。其中,32k是供CPU执行的游戏控制程序;8K是图形字体,由PPU定义。
原因。另外还有一个软件容量为24K{(标为LA)的低配置结构,是早期的软件。在哪个控件中
程序是16K;字体是8K。典型的游戏有火箭车、马戏、金块I和II等。
40K软件的控制程序存放在CPU管理的$8000-$FFFF空间;字体地址以PPU为单位。
管理$0000-$1FFF空间。16K软件的控制程序存储地址为$ C000-$ FFFF;明智地
地址也是$0000-$1FFF。
第二,延伸结构
容量在40K以上的软件是扩展结构。它们是基于基本结构或控制程序的扩展。
区域或扩展字体区域。扩展方法是在一定的地址范围内切换空间库。通用程序区域在
$8000-$BFFF空间交换;字体区域在$0000-$1FFF的空间内切换。将类型切换到软件容量
大小略有不同:
对于48K卡(标记为LC),程序部分为32K莫雨部分为16K,分为两个8K内存条。
典型的游戏包括七宝奇谋和暗影传奇。
容量在24k-48K的游戏卡通常被称为低端卡或低端游戏。
64K卡(标有LD)有两种结构:一种是它的程序部分是32K字体部分为32x,分钟。
有四个8K的内存条。典型游戏有迷宫套件、智慧城市、所罗门蛇代、北斗神泉代。
等等;第二个是程序和字体* * *分在64k的四个内存条里。典型的游戏包括米老鼠冒险和冒险。
岛,俄罗斯方块1,2等。
80K的游戏(标为乐)不多,常见的有中国拳和玛丽金牌。它的程序部分是48K,
前32K分为16k两个银行;字体部分为32k,分为四个8k库。
64k和80K的游戏通常称为中档卡。
对于128K卡(标记为LF),程序部分和字体部分合并为128k,存储在八个16K中。
前七家银行的地址被映射到$8000-$BFFF:最后一家银行(称为家庭银行)。
从$0000映射到$FFFF,典型的游戏有《恶魔之村》《狂暴》《火鸟》《未来战士》《洛克人》。
《1943》《1944》《嵌入特种兵》《撞雷机车》等等。
这种游戏卡一般配备一个8K RAM(动态随机存取存储器)来存储当前使用的字体。
对于160k卡(标记为LG),程序部分为128k;字体部分是32K。典型的游戏有《永恒之屠》
龙记,立体赛车,铃儿响叮当等。
对于256K卡(标有LH),程序部分为128k;字体部分是128K。典型的游戏是Cora。
大米世界、恶魔之城、双截龙、松鼠历险记、地球上的武器、联合作战等。此外,还有“灵魂”
斗罗、红色堡垒、绿色军团、立体篮球、拳头美元等256K游戏被压缩成128K游戏。
目前这类游戏的256K版本并不多见,常见的是128K的压缩版;
容量为128K-256K的游戏通常被称为高档卡或强卡。
容量高于256K的游戏称为特殊卡,如《阿拉卡拉纳萨传》、《战斧》、《孔雀王》、《旋风》。
当游戏容量已经达到2M-4M的时候。然而,由于任天堂系列游戏机的CPU的处理速度、画面的分辨率、声音
域音色等限制,即使软件容量增加,游戏效果也提升不了多少。它永远也到不了拱廊之水。
Ping,所以目前单场容量在256K K以上。
1.3任天堂游戏的图像处理方法
本节简单介绍任天堂游戏的图像处理方法。
1.3.1屏幕显示原理
虽然任天堂游戏机中的CPU仍属于65系列CPU,但其显示方式与中文学习机完全不同。
不一样。其显示屏由三种四层显示页面组成。三种类型的显示页面是:卡通(人物或动画)页面和背面页面。
场景页,底部背景页。卡通页面用于显示游戏中的人物。它有两个页面:卡通零页-显示人物
后台之前;卡通页面-使角色出现在背景后面。漫画家的显示分辨率是256x240点,漫画
你可以以点为单位移动。背景页主要用来显示游戏画面。它有四个显示页面,每个页面的两边是相互的。
以“天”字显示方式连接排列,显示分辨率为32列* 30行,每张图片由$60组成。
图形块和任何页面都可以在游戏中显示。底部背景页主要用于大面积单色显示的衬托
蓝天、草原、沙漠、大海等效果,显示分辨率为1x1。四层展示页面从前到后的排列为:卡片。
零页面、背景页面、卡通页面、底部背景页面(见图1-6)。系统默认的排列是背景00页和漫画。
上下背景页重叠,前显示页的内容可以覆盖后显示页的内容,所以容易构造。
变成有一定景深秩序的立体画面。
1.3.2后台处理技术
任天堂游戏中的背景图片是以字符模式显示的,每个字符通常被称为背景图形块。每个图表
块是8*8点阵,它的字体数据存放在内存中一段由PPU管理的区域,称为背景字体,一般使用。
$1000-$1FFF地址,* * 4k字节。每个字体由16个连续的单元格组成,因此最多可以定义一次。
256个字符,序号为0 ~ 255。显示字符时,只需将字符序号放入屏幕上相应的显示单元即可。
去做吧。
仁观堂游戏中的后台处理由PPU独立完成,每个后台页面对应PPU的1024个菜单。
元,为令对应。后台00页对应2000-23ff美元的PPU地址,其中2000-23BF美元。
对应960图形显示单位,$ 23c0-23ff为显示页面的配色单位;背景对应于10页。
PPU地址为$ 2400-$ 27FF;同样,接下来的两页分别对应$ 2800-$ 2 BFF和$2C00。
2FFF美元.因为游戏机只有一个2K的VRAM(PPU用的RAM),一般只用前两个。
页面,通常称为背景零页和背景一页。在游戏中,你可以通过设置软开关来控制屏幕的水平和垂直。
方向,使腹板的两侧水平并列或纵向连接。
在实际游戏中,经常会用到背景图片的水平滚动和垂直滚动。比如(魂斗罗,但是在游戏里。
第一、五、六、七、八级为水平滚动,第三级为垂直滚动。这些图片位移效果是如何实现的?
我们知道,中文学习机中的图片位移是通过反复重写显示映射单元的内容来实现的,它
该方法处理速度慢,控制程序冗长。任天堂采取了完全不同的方式。通过对硬件的特殊处理,
介绍了显示窗口的概念。画面移位时,每个显示单元的内容保持不变,显示窗口朝向相反的方向。
来移动,从而实现画面的水平滚动和垂直滚动。比如Contra中第一级水平滚动的控制方法。
是的。使两个背景页面水平连接。游戏开始时,背景零页满满32行,而背景页只画了12行。
显示窗口与零页对齐。当游戏中的角色前进到屏幕右侧的某个位置时,显示窗口向右移动一个。
网格,同时绘制一页的第13列;这样显示窗口每向右移动一次,画面就画一列,这样游戏画面就连起来了。
每移出一页(32列)页面计数器就加1,累积到一定页数窗口就不移动。
动,关闭底层处理。这张图的排量控制极其简单,只需将排量数输入排量软开关$2005即可。
是可以实现的。F BASIC的控制程序是:
戳& ampH2005,x:戳& ampH2005,0
x是位移参数。其机器语言的控制程序是:
LDA x
STA 2005美元
LDA #$00
STA 2005美元
画面的垂直位移更简单。比如反瀑天险第三关是竖图,角色应该是从
底层跳到顶层与恶魔决斗,游戏过程中屏幕随着观战角色的跳跃不断滚动。实际上-
这个位移过程是在一个页面平面内进行的,控制方法是每当角色前进到屏幕上方的某个位置时,
重写屏幕最下面一行的图形数据,使其成为将被移入屏幕的一行。然后将显示窗口向上移动一格。
窗口在显示页面上移动,所以底线是顶线(此时,页面表面可以理解为上下线)
连接到圆柱体上,显示窗口是图片圆柱体外面稍大的圆柱体,窗口移动一格,向上旋转一格。
网格)。F基本控制程序是,
戳& ampH2005,0:POKE & amp;H2005,Y
y是位移参数。相应的机器语言程序是,
LDA #$00
STA 2005美元
LDA Y
STA 2005美元
以上图片的传递和移位操作都是在CPU响应非屏蔽中断(非屏蔽中断在
电视机在场次回扫时发射和响应,此时电视屏幕是黑色的),所以我们感受到了布道位移的痕迹。
在第六章中,将详细讨论任天堂游戏中背景图片的绘制和移动、拆分、移动和扭曲的效果。
1.3.3动画处理技术
任天堂游戏中动画的最小单位是卡通块,每个卡通块是一个8×8的点阵,和一个角色一样。
样本量。卡通块也有图形字体,对应的PPU地址是$0000-$OFFF。每个卡通块的单词
模块化数据也是由16个连续单元组成,所以一次最多可以定义256个卡通块,序号为0-255。
6527CPU规定一屏只允许同时显示64个8×8点阵的卡通块【这是PPU做的。
漫画定义区RAM分配],比如《超级玛丽》,玛丽吃红蘑菇之前是16x16。
数组的大小(也就是由四个卡通块组成)吃红菇的时候身体长了两倍变成了32X 32的点阵(也就是由
16卡通积木。但在实际游戏中,需要显示的卡通块数量往往远远超过这个限制,比如
在流行的格斗游戏《街霸》中,一幅漫画是一个128*64的点阵(由128个漫画块组成)并且有时
更大,这是怎么实现的?
原来在实际游戏中,漫画是分时控制的。所谓分时控制,就是分时段显示一半。
交流的不同部分依靠人眼的视觉惯性产生连续的感觉。如游戏中的“魂斗罗”卡通显示(两个
正面人物,敌人,射出的子弹,地堡的关闭和打开都是漫画),这就是每次显示漫画的二分法。
其中之一。
漫画的定义极其简单。系统规定一个卡通块由四个连续的存储单元定义,第一英寸
单位指定了漫画显示的Y坐标,第二个是字体中漫画块的序号,第三个是漫画块的显示形式。
状态[颜色组合,左右翻转,上下颠倒并显示在卡通页面上,第四个是显示的X坐标。编辑
可以任意指定定义漫画的内存页面(一般选择两三页,即$200-$2FF,$300)
$3FF).
任天堂游戏中卡通的定义和动作控制将在第七章讨论。
任天堂游戏在1.4中的声音处理
大多数任天堂游戏的开头和结尾,都一直伴随着和谐优美的背景音乐;随着摇滚游戏的进展
并且声音与背景的移动和角色的移动有关。
三者并行工作,互不干扰。很多朋友都在中国飞机上玩过游戏,比如《警察抓小偷》、《富士山之战》。
在这些游戏中,声音的发射和角色的动作是不能同时进行的,即角色移动时没有声音;发送
角色的动作应该在声音期间停止。任天堂游戏中的声音处理真的很独特。因为是在6527 CPU里。
可编程发声器固化,所以声控程序特别简洁。任天堂游戏的音响系统由五部分组成。
组成,对应的CPU管理$ 40do-$4013二十个单元,每个语音使用四个单元,各自工作
音量、形状包络、细调和粗调依次使用。第一、第二和第三声部可以演奏和声旋律,
也可以选择任意声部制作效果音,比如执行F BASIC程序。
戳& ampH4015,1:H4000。255,255,255,255
您可以发出频率从低到高的警报,最多持续三分钟。第四种声音可以模仿连续的噪音,比如风声。
雨声,脚步声,火车声等等,第五部分可以模仿人的声音。任天堂游戏
背景音乐一般是前三部分一起播放,播放程序也是在中断中处理。五个部分的发展
声音总开关由$4015控制,$4015的d0-D4位依次控制第一到第五声部的工作状态,设置。
0关,设置1开。