为什么魂斗罗只有128KB却可以实现那么长的剧情?

发布时间:2024-11-09 18:37:14  
图片

现代程序员A和1980年代游戏程序员B的对话: 嵌入式资料包"> 【付费】STM32嵌入式资料包

A:为什么你用128KB能实现这么多画面、音乐、动画?

B:128KB还不够么?其实为了表现力已经相当奢侈了,加了很多不重要的细节。

A:就说你们的音乐,这个音乐,我压到最低码率的mp3,也得至少1MB吧。

B:你怎么压的?一首背景音乐怎么可能超过1KB。

A:那你实现全屏卷轴,用了多少显存?

B:一共就只有2KB显存,多了也放不下啊。

A:……

我们对“数据量”无法直观认识

除非是专家,一般人根本无法估算到底多大算大,多小算小。

一般人对“数据量”并没什么概念。一篇800字的作文有多少数据量?按照GBK编码,约1.6KB,按照UTF-8编码,则是2.4KB。

只写了1个字的作文,按理来说1字节~3字节就够了。但只写1个字的word文档,有10956字节【汗】。而由于硬盘格式化要求,再多占用1332字节【再汗】。

图片

我就写了一个字,真的什么都没干。

现实中常见的产品、流行的技术,实际上和时代背景密切相关。

当你抱着15寸笔记本还嫌小的时候,1990年代初的家庭,可是一家人围着14~18寸的球面电视看的。把雪碧拿给古代人喝一口,估计他会齁得要死,必须喝点水压压惊。

当物质基础变得十分丰富的时候,一定会产生无法避免的“浪费”,这种“浪费”会进一步改变人感受的阈值,对度量的估计都变得紊乱了。

FC时代的图形技术

由于早期的记忆芯片(ROM)非常贵,而且大容量磁盘的技术也不成熟,所以暂且不论硬件计算能力,仅仅是想增加游戏的总容量也非常困难。所以自然会使用符合当时水平的数据结构。

以红白机FC为例,它 的分辨率为256x240。 分辨率不算低,但却只有2KB显存,而且还要实现全屏卷轴效果。 所以在FC设计之初,从硬件上就提供了充分利用显存的方法——使用Tile(瓦片)。

对每一个场景来说,使用若干数量的瓦片,场景用有限的瓦片拼接即可。 这种“二级”表示方法能极大节约存储量。 具体一些原理讲解可以看一些科普,比如这个:

图片
B站指路:
https://www.bilibili.com/video/BV19J411e763
音频容量和代码容量

现代音乐格式往往直接保存声道的波形,这种做法保真度高、通用性强,但很显然占用空间多,一首曲子 的容量以千字节、兆字节计算。

而八位芯片时代的音频解决 方案, 键是一颗专用芯片,例如FC用的理光2A03:
图片

下:理光2A03。

音频芯片可以产生合成音效,能提供的音色可以在一定程度上配置,但非常有限。 听听FC游戏的音乐可以体会到常用的音色几乎一样。 我觉得这个音频芯片最厉害的地方是可以同时播放几个音轨(但不能是和弦那种“同时”),《魂斗罗》、《沙罗曼蛇》、《忍者龙剑传》的殿堂级音乐,主要是靠多个音轨的交替配合实现的。

每个音符只要记录音色、频率和音高就足够了,音频芯片自然会识别出来。 把音符按时间排列好就是“乐谱”了,可以简单理解为“简谱”。 这种简谱需要的数据量十分有限,而且大部分游戏音乐都是循环播放,数据量更是小的可怜。
代码也是类似的。
FC时代的游戏,没有所谓的“引擎层”,或者说引擎层就是“硬件层”。 任天堂的主机完全是为游戏而设计的,瓦片、调色板、音乐、音效等基本功能已经预先考虑到了,这样一来就节约了大量底层代码。
程序员要仔细研究文档,在硬件框架下思考问题,比如如何显示图片、如何卷动屏幕等等; 而且还要非常熟悉硬件底层和汇编,不要浪费代码空间。
一来二去,代码也能写的非常小。
总的来说,128KB的游戏大作,在30年前稀松平常,放到现在简直就是黑科技。 科技的剧烈变革带来技术指标非线性的变化,让我们的记忆和直觉彻底落伍 :

知乎原文地址:

https://www.zhihu.com/question/50076174/answer/1101330430

文章来源于:单片机与嵌入式    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    为什么魂斗罗只有128KB却可以实现那么长的剧情?; 现代程序员A和1980年代游戏程序员B的对话: 【付费】STM32嵌入......
    集合下载 一共有293款游戏,总有一款适合你。常见的超级玛丽、魂斗罗、都有包含的。 地址:https://download.csdn.net/download/xiaolong1126626497......
    复位寄存器可以方便地对每一位进行单独的配置,这在许多情况下非常有用。 经过上一段对GPIO口模式的说明,在这里对它的工作模式进行一个小结,它一共有八种组合,即有八种可配置的工作模式,分别是: 输入浮空 输入上拉 输入......
    论指责中,微信作为此次事件的发生平台,也受到了波及,主要是由于《罗一笑,你给我站住》一文在朋友圈大量转发,为“罗尔”公众号赞赏的人数太多,引发系统 BUG ,导致微信单日赞赏 5 万元的限制失效。 对此......
    导入,txt文件在资料里已经打包好了,直接导入。 找到0:/TXT目录下的.txt文件,选择导入: 导入“斗罗大陆.txt”,主界面开始显示。图片是系统自动匹配,检测是否有与小说同名图片文件,比如......
    从支付宝到罗一笑 你躲不开的营销那些坑;支付宝事件还没过去,昨天又被《罗一笑,你给我站住》这篇文章刷了屏。阅读点赞十万加,打赏每天满五万,据说还有什么转发一次捐一块的好心机构,其实......
    罗尔承认名下三套房:朋友圈所筹200万会退;11月30日消息,今日早间,一篇深圳本土作家罗尔为患白血病的爱女罗一笑筹款治病的文章在微信朋友圈刷屏。不过半日,事件反转,。 据南都记者的发现,罗尔......
    单片机存储器一些相关知识的学习;接着上一期内容我们继续来认识一下单片机存储器,学习一些相关知识。 片内的ROM和片外的ROM有两种组合方案,第一个方案是51单片机内部的ROM一共有4K,4K是它......
    STM32单片机GPIO口的学习;  GPIO:   STM32的(64引脚的)IO口一共有3个,分别是PA、PB、PC.   STM32的IO端口可以由软件配置成8种模式:   1,输入......
    罗一笑刷爆朋友圈:白血病真是不治之症?;刷爆朋友圈的《***,你给我站住》,相信大家都已大概了解。 但关于白血病,你所有的了解是否都源于电视剧? 在大部分人眼中,“白血病”三个字显得异常恐怖,但所......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>