魂鬥羅只有128KB,這128KB的程序是如何陪伴一代人的童年?

就我個人而言,我認為fc最神奇的遊戲仍然屬於超級瑪麗。有32個級別,每個級別都不一樣,各種隱藏的元素,比如代碼區只有10 K以上,數據區超過10 K,讀了反彙編後,我還是不敢相信這個東西居然能陪伴我們這一代人的童年……

魂鬥羅只有128KB,這128KB的程序是如何陪伴一代人的童年?

首先說一點,128k並不小,其實消耗大部分存儲空間的不是程序。

當然,128k的程序大小也應考慮在內的,由於光纖通道是一臺8位機器,並且光纖通道使用CISC處理器,一條指令可以完成許多事情。因此,程序的大小大約是現代64位RISC處理器的百分之十到百分之幾。

魂鬥羅只有128KB,這128KB的程序是如何陪伴一代人的童年?

資源是主要的(包括圖像、音樂、地圖、數據、檢查點數據等)。我們以圖像和音樂為例。

魂鬥羅只有128KB,這128KB的程序是如何陪伴一代人的童年?

壓縮前圖像消耗的存儲空間與像素深度和大小有關。光纖通道上的圖像像素深度僅為2位索引,但目前廣泛使用的真彩色是24位,包括32位阿爾法這是差異的12到16倍。圖像大小的差異甚至更大。

魂鬥羅只有128KB,這128KB的程序是如何陪伴一代人的童年?

光纖通道通常是一個只有十幾個像素寬和高的角色。與當前常常有幾千像素寬和高的圖像資源相比,差異是幾萬到幾百萬倍。因此,圖像資源消耗的存儲空間至少相差5至7個數量級。

音樂

光纖通道使用8位midi音樂 現在PCM音樂被廣泛使用

圖像

對圖像的類比就像矢量圖像和位圖之間的區別一樣

簡而言之,PCM音樂的大小與採樣深度、採樣速率、頻道數量和長度有關。

魂鬥羅只有128KB,這128KB的程序是如何陪伴一代人的童年?

Midi只與譜號的複雜性有關,如果你把128k放大10瓦到1000瓦,你就不會感到渺小。

有些人還提到了大約64k 3d程序或其他東西,這是完全不同的事情。 光纖通道程序很小,只是因為所需的資源已經很小了。 64k 3d程序是由於程序生成方法。

魂鬥羅只有128KB,這128KB的程序是如何陪伴一代人的童年?

簡而言之,它是用數學來描述的。而不是通過記錄結果的樣本過程生成不僅需要最小的存儲空間而且可以達到無限的精度。缺點是很難描述複雜的事情。並且需要很高的計算力。 代替使用任何外來壓縮方法

魂鬥羅只有128KB,這128KB的程序是如何陪伴一代人的童年?

總結:

1.遊戲重用大量的圖塊,圖塊也使用調色板索引,好像每個像素只佔用2位。

2.程序員仔細優化各種數據結構,不浪費任何存儲空間。

3.聲音只存儲聲音通道的調製參數序列,並且可以被多路複用和重用。

4.代碼以彙編形式編寫,直接操作硬件。基本上沒有浪費的指令。


分享到:


相關文章: