来源:https://dwz.cn/ZTAnWr5j
个人觉得fc最神奇的游戏还属超级玛丽,32个关卡,每关都不同,各种隐藏要素,好像代码区才10多k,数据区10多k。反汇编看完还是不敢相信这点东西能玩一个童年…现在helloworld的二进制都可能比这大多了。
首先128k并不小
主要消耗存储空间的不是程序
当然对于128k来说程序大小自然也要考虑
鉴于fc是八位机 而且FC采用的是CISC处理器 一条指令就能完成很多事情
所以程序的大小也就现代64位RISC处理器的十几到几百分之一
资源才是大户(包括图像 音乐 地图数据 关卡数据 等等)
就拿图像和音乐来说
图像在没有压缩之前 消耗存储空间和 像素深度和大小有关
FC上的图像 像素深度就2bit的索引而已 而现在广泛使用的真彩色是24bit 包含alpha的需要32bit
这里就差了12倍到16倍
图像大小更是差距巨大
FC普遍一个角色也就是 宽高十几个像素而已
与现在动辄宽高几千像素图像资源相比差了 数万倍到数百万倍
所以图像资源消耗的存储空间 至少差了5~7个数量级
音乐的话
FC采用的是8位midi音乐
而现在普遍用的是PCM音乐
类比到图像中
就像矢量图像和位图的区别
总之PCM音乐的大小和采样深度 采样率 通道数 以及长度有关
midi仅仅和谱子的复杂度有关
所以FC实际上对空间的要求和现代游戏相比至少差了5~7个数量级
你把128k放大10w倍到1000w倍 你就不觉得小了
一些人还提到了什么64k 3d程序什么的
这完全是两码事
FC程序小只是因为需求的资源本来就很小而已
而那种64k 3d程序是因为采用Procedural generation方法
简单的说就是通过数学来描述
而不是通过记录结果的采样
Procedural generation 不光需要的存储空间极小
而且可以做到无限精度
缺点是难以描述复杂事物
并且对算力要求高
而不是用了什么外星压缩法
总结:
游戏大量复用图块,图块还使用调色板索引,好像每个像素才占用2bit。
程序员精心优化各种数据结构,每一bit存储都不浪费。
声音只存储发声通道的调制参数序列,能复用就复用。
代码全是汇编写成,直接操作硬件,基本不存在浪费的指令。
— 完 —
点这里👇关注我,记得标星呀~
锋雷科技搜罗全网最好的黑科技软件、工具、网站,以及第一时间提供互联网圈每天发生的那些科技事!公众号
最近热文: 电脑到底要不要安装杀毒软件? 几款非常好用的Edge浏览器插件 彻底阻止流氓软件:你的电脑你做主! 紧急通知!可能要转移阵地了! 2T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,人工智能,考研,软考,英语,等等。在公众号内回复「资源」,即可免费获取!回复「社群」,可以邀请你加入读者群! ❤️给个「在看」,是对我最大的支持❤️
发表评论 取消回复