CPU|為什么古早的電子游戲不能直接玩了?

CPU|為什么古早的電子游戲不能直接玩了?

文章圖片

【CPU|為什么古早的電子游戲不能直接玩了?】CPU|為什么古早的電子游戲不能直接玩了?

提到模擬器 , 你想的大概是用于玩其他平臺游戲的東西 。 當然你那些個游戲絕對是合法渠道獲取的 。 所以就是智能手機上的game boy模擬器 。 或者是電腦端的n64模擬器之類的 。 想要用特別的軟件來跑這種游戲 , 好像是天經地義的事情 。 畢竟這種游戲當初就是為完全不同的硬件設計的 。 但是有一些老的電腦游戲 , 就算你用電腦運行 。 也必須要通過模擬器 。 當然現在的硬件比起20年前 , 速度快了不少 。 但多多少少還是有兼容的吧 。 所以為什么還要用?Dos box之類的程序來跑老游戲呢 。 為什么看似兼容的硬件也需要模擬器?

是這樣子的 , 以前大多數電腦CPU和操作系統都是16位的構架 。 意思就是他們處理的都是16位長的數據 。 所以尋址的范圍是all.乘以16個內存單位也就是64kb 。 這個容量顯然不太夠用 , 所以后來I386之類的處理器 。 就開始以32位計算了最多可以用到4GB內存 。 但是跑76位的老軟件還是有一點麻煩 。 隨著計算機進入32位時代 。 老城區面臨著幾個很大的問題 。 首先針對a架構編寫的程序 , 無法在b架構的系統上延伸運行 。 也就是說如果不經修改 , 針對16位編寫的程序 , 就無法在32位系統當中運行 。 其次 , 許多的16位DOS應用是以名為實模式的處理器模式運行的 , 這個模式允許任何程序訪問任何內存空間 , 包括其他程序正在訪問的內存空間 。

顯然這個實模式呢 , 有很實在的安全和穩定性問題 。 他沒有任何的保護機制來確保惡意程序或者是bug的程序 。 不會訪問無關內存 , 然后威脅數據安全 , 或者是把系統給搞崩 , 所以出現了一種新的處理器模式叫做保護模式 。 80年代中期保護模式成為了主流 , 他們有相互隔離的內存空間 , 通過給程序分配相應的優先等級 , 來避免設備驅動以及操作系統以外的程序 。 執行某些特定的指令 。 但是有很多的老程序只能在實模式下運行 。 而更新換代到32位又是大勢所趨 。 那么新系統必須 。 以一個名為虛擬8086模式的特殊模式來虛擬16位實模式 。 創造出一個虛擬的實模式 , 真的是自相矛盾啊 。 和實現方式就是虛擬了一整顆爺爺級別的8086處理器 。 在很長的一段時間內 , 這個模式都是必不可少的 。 因為16位程序還很普遍 。

就連一些基于windows and亂七八糟的 。 也內置了名為ntvdm的模擬器來運行前代的DOS程序 。 所有的32位windows nt系統 。 高內置或者至少可以安裝ntvdm或者是windows10 。 但是ntDVm也存在問題 。 比如刷新率很低 , 對音頻的支持率很差 , 以及無法讓現代的CPU降速運行 。 就會讓游戲跑得太快 。 這依然無法解釋 , 為什么現在電腦往往完全無法運行以前的DOS游戲 。 原來現在的電腦大多預裝64位的操作系統 。 而非32位 。 主要是為了支持大于4G的內存 。 但是64位的操作系統是需要一種 。 全新的處理器模式的 , 它的名字叫做長模式 , 相應的微軟也得寫一個全新的軟件 , 才能虛擬出16位的環境來跑那些很久以前的程序 。 32位計算晉升與主流的時候 。 16位程序依然還是很重要的 , 那個時候我們都還在用windows95之類的操作系統呢 。 但是放到現在16位程序可以說是徹底過時了 。 微軟根本就懶得為此重寫系統自帶的模擬器 。 所以64位的windows系統就是不能原生運行很久以前的DOS程序 。 這就是為什么如果你想要在一臺新電腦上玩懷舊的DOS游戲 。 就得裝一個DOS box這樣子的第三方模擬器 。 對此他們可比微軟放心多了 。 而且專注于完善游戲知識 , 比起ntvdm更好用 。 而且不用錢 。

相關經驗推薦