《Skyrim》PC 補丁降低了 RAM 限制

新的《Skyrim》PC 補丁使遊戲需要 Steam,從而取消了允許遊戲訪問超過 2GB RAM 的第三方修復程序。已發布適用於該更新的新修復程式。

上古卷軸 V:天際昨天收到了 PC 補丁,但顯然該補丁帶來了意想不到的後果。該補丁要求 Steam 運行,這會帶來不幸的副作用,即停用第三方解決方案以達到相對較低的 RAM 限制。

石頭紙霰彈槍指出,允許遊戲存取超過 2GB RAM 的第三方修復程式會帶來很大的不同。也就是說,它允許用戶在其之上運行更多的模組,這會對視覺效果產生很大的影響,正如所指出的由 Xav 和 Shacknews 社群提供。一個新的解決方法修復了 RAM 問題而不影響新補丁,但 RPS 對 Bethesda 本身是否會正式提高 RAM 限制持懷疑態度。

作為報道昨天,主機補丁正在進行認證,計劃在感恩節後的一周內發布。這些補丁預計將解決 Xbox 360 上的安裝問題以及 PS3 上的延遲/幀率問題。

      • 他們並不是故意限制 RAM。 Skyrim 可執行檔是一個 32 位元程序,這意味著它最多只能尋址 2GB RAM。如果出於某種原因嘗試分配超過 2GB 的 RAM(這種情況偶爾會發生),遊戲就會悄悄地崩潰。舊的可執行檔沒有以任何方式加密,因此有人發現它可以輕鬆被駭客攻擊,使其能夠識別大位址,從而支援超過 2GB 的 RAM。修復了崩潰問題,並且可以支援更出色的效果。

        昨晚的補丁對可執行檔進行了加密,因此需要 Steam 才能運行,但這也破壞了現有的大型位址感知駭客攻擊。所以現在人們創造了新的駭客。

        • 除了 32 位元可以尋址最大 4GB 而不是 2GB

          • 理論上,32 位元可以尋址 4GB 記憶體。實際上,如果沒有啟用大位址識別標誌,32 位元 Windows 執行檔的大小將被限制為每個 2GB。

          • 除非在連結器選項中設定了 laa 標誌,否則它是 2gb。 laa 標誌允許將負整數值用作指標值。

            這歸咎於遺留代碼和許多不良實踐。

            • 如果您在 64 位元作業系統上執行 Skyrim,則沒有理由不啟用 LAA 標誌。 Skyrim 與之互動的作業系統上的驅動程式將知道如何處理 >2GB 的位址,而 Skyrim 自己的程式碼應該能夠處理相同的問題。

                • 在 Windows 7 64 上執行的顯示卡和聲音驅動程式必須接受 >2GB 的位址。

                  如果《Skyrim》自己的程式碼或中間件的指標運算不正確,或者在地址的 MSB 中填充某些內容,那麼這就是糟糕的開發。顯然,啟用 LAA 後《Skyrim》崩潰的頻率會降低,因此使用者程式碼似乎可以很好地處理 >2GB 的指標。

                  • ... 好的?遺留程式碼是個混蛋,在 64 位元成為主流之前,laa 充其量只是一個創可貼。你無法真正控制十五年前老派的 C 程式設計師所做的事情,當時 1 GB 的記憶體還只是一個白日夢。

                    學術理想主義是偉大的,但並不能映射到現實世界的限制。 LLA 只影響一小部分客戶群,如果它被排除在外也就不足為奇了。

                      • 在 C 語言中,將負值放入返回的指標中並不是一種不常見的做法。由於溢出等原因,指針算術也容易與 laa 發生衝突。

                        是的,啟用它是一個簡單的編譯器標誌。確保它不會在您的軟體中引入其他錯誤是一項更大的工作。

                          • 我最初回复的帖子聲稱沒有理由不啟用它。他的理由是他們的程式碼庫應該是健壯的——這是一個理想主義的立場。

                            不啟用 laa 有非常正當且真實的原因,但是,是的,我明白這個網站上的運作方式。

                            • 《天際》沒有理由避免它。司機不再是理由。 2011 年跨主機遊戲的哪些部分使用了他們無法找到和修復的古老 C 代碼?很少。

            • 我認為他們應該這樣做,因為《天際》的 PC 版本已經有一個用於調整和作弊的開發者控制台。過去,Crytek 為 Crysis 所做的就是這樣:他們發布了 32 位元和 64 位元可執行檔。 Steam 本身也支援一款遊戲的多個加密遊戲可執行檔(MW2、MW3、黑色行動等)。

      • 他們不知道遊戲機用戶會因為 PC 遊戲玩家可以將《天際》在 PC 上變成他們永遠不會擁有的東西而感到惱火。

        這是我唯一能想到的事情,但這毫無意義……他們會一起刪除模組,但隨後就會發生一場狗屎風暴,所以也許這是唯一的方法。

        我真的不知道它搞砸了。

        • 什麼秘密上面說的就是我覺得是怎麼回事。不過,新補丁已經提供了更多 RAM 的新修復。

        • 如果他們想操縱社區,他們會使用 IdTech 5。

      • 我認為貝塞斯達這樣做的原因是為了強制區域鎖定。從所在地區(俄羅斯)以外購買金鑰的人必須透過 VPN 啟動才能解密。從那時起,他們必須從 TES V.exe 運行遊戲,基本上繞過了 Steam 的區域鎖定。

    • 即使沒有改進的視覺效果,我也需要提高 RAM 限制以使遊戲穩定。如果沒有它,遊戲經常會默默地崩潰到桌面。

      我真的希望 Bethesda 能夠自己實現對更大記憶體空間的支持,或者更好的是,發布真正的 64 位元可執行檔。

        • 他們應該做的是發布一個包含兩個可執行檔和一個新啟動器的更新。
          一種可執行檔可以識別大位址,而另一種則不能。啟動器檢查它是否在 64 位元作業系統上運行。如果是,它將運行大地址感知可執行檔。如果它在 32 位元作業系統上運行,它將運行非 LAA 可執行檔。每個人都贏了!

          • 我希望所有 PC 遊戲都附帶 64 位元可執行檔。

      • 你必須問自己,為什麼我們在遊戲中看不到更多 64 位元 exe?

        現在使用 64 位元沒有任何好處嗎?

        • 我知道「控制台」的笑話很普遍,但說真的,控制台比最新的 PC 硬體/軟體落後了很多年,所以在為控制台開發時,你不是嗎?為 32 位元系統編寫程式碼,因為控制台基本上都是小型電腦?

        • 也許在 Microsoft 僅發布 64 位元 WIndows 後我們就會看到它。即便如此,也還需要一段時間。仍然會有人運行 32 位元 WIndows,明智的商業舉措是嘗試迎合大多數人的需求。

          • 啊。所以整個“一切都是控制台端口”基本上是……真的嗎? :(

            • 嗯……差不多……你可以想如果不是這樣的話會怎麼樣。

              如果在 PC 硬體上運行相同的程式碼庫(幾乎)可以讓遊戲變得更好,你可以想像經過大量努力後遊戲會是什麼樣子。

              考慮到它們的年齡和硬件,在沒有從控制台上拿走任何東西的情況下,它們所取得的成就令人驚嘆。

              並不是我在抱怨,只是有時我想知道真正可以做什麼,我認為這會很棒。

            • 並不真地。問題是所有的控制台都是 32 位元的。 PC 上的每個人都支援 32 位元。添加對 64 位元 PC 用戶的支援實際上就像添加另一個平台(儘管希望只是為了 QA)。

              但可能會有一些奇怪的錯誤,只有當您使用 64 位元資料大小運行時才會暴露出來,等等。因此,僅刪除 64 位元可執行檔並不是「沒有作用」。

              同時,如果遊戲機都是 64 位元的,我想開發人員只會說「操,32 位元 PC 只佔 PC 用戶的 40%,而這又只占我整個市場的一小部分,我就將它們刪除並僅發布64 位元。

                • 有趣的。維基百科有資訊表明它們是這樣的,但沒有來源支持它。如果它們是 64 位,那將是相當令人驚訝的(儘管並非不可能),因為 360 沒有足夠的 ram 讓您需要 64 位來訪問所有存儲區域(儘管您確實需要 64 位來訪問所有數據)在DVD 光碟機上)。

                  64 位元應用程式比 32 位元應用程式大得多,因為可執行檔中到處都儲存著指標。 (例如,考慮來自 nvidia.com 的驅動程式 - 對於任何特定版本和作業系統,32 位元驅動程式都比 64 位元驅動程式小得多)。

                  • > 指標儲存在執行檔中的各處
                    我認為指標不會佔用應用程式記憶體佔用的很大一部分(與為遊戲儲存的其他資料相比)。我無法想像它會超過幾MB。

                    >來自 nvidia.com 的驅動程式 - 對於任何特定版本和作業系統,32 位元驅動程式都比 64 位元驅動程式小得多
                    這是因為 64b 軟體包包含 64b *和* 32b 驅動程式(此外 64b 驅動程式稍大)。如果您查看驅動程式尺寸(x 為 64b),尺寸並不會非常不成比例

                    nvd3dum.dll 為 12,341KB
                    nvd3dumx.dll 為 14,712KB

                    nvwgf2um.dll 為 6,459KB
                    nvwgf2umx.dll 為 8,161KB

                    • 我幾乎不會認為~20% 的開銷不算什麼。在遊戲機上,這就很多了。

                      話雖這麼說,我同意可執行檔案大小與總記憶體大小(主要由紋理和 VB 主導)相比在很大程度上無關緊要。然而,可執行檔的大小與效能非常相關。

                  • PS3 CPU 也是 64 位元。當他們過去支援 64 位元 Linux 核心時,您需要安裝 64 位元 Linux 核心。該平台甚至不支援 32 位元核心。

                    我幾乎可以肯定 PS3 開發套件也是 64 位,而 PS3 和 Xbox 360 的開發環境實際上都是 64 位元。兩個系統中的 CPU 也都具有全套 64 位元暫存器。

        • 原因有兩個:一是控制台,但更重要的一個是並不是每個人都運行 64 位元。

          為什麼我無法理解,因為只能運行 32 位的 CPU 在 2004 年末左右就停產了,但這會限制可以玩的人數,而且從 64 位開始也需要更多的資源來玩由於內存訪問方式的差異,可執行檔比32 位元可執行檔多使用約10-15% 的資源。

          • 並非所有 64 位元軟體都像 32 位元軟體一樣功能齊全。

            我記得在某處讀過,如果您安裝 64 位元 MS Office,您將遇到共用點問題。

            • 我相信sharepoint 2010也只有64位O_o

              • 從 2008R2 開始的所有 Windows Server 版本都僅限 64 位元。讓我工作起來很開心。

                • 伺服器環境中的 64 位元尋址更為可取,因為許多服務最終可能會使用超過 2 GB 的 RAM,或強調 32 位元核心限制(我親眼目睹過)。就遊戲而言,真正重要的只是是否使用了超過 2 GB 的記憶體。對於大多數遊戲來說,我們還沒有做到這一點,主要來自目標小於512 MB 的多平台遊戲,或者來自64 位元安裝的「小用戶群」(由於Windows 7 非常穩定,該用戶群正在變得越來越大)。

                  令人遺憾的是,微軟並沒有像推動 64 位元伺服器應用程式開發那樣大力推廣 64 位元遊戲。我們已經超過了 2 GB 視訊 RAM 的界限,但沒有動力將這麼多用於紋理以及遊戲資產內存空間。

                  • 一款需要 64 位元、DX11、四核心、1GB VRAM、6GB RAM 的可靠編碼遊戲會是什麼樣子?

                      • 我覺得有趣的是,一款遊戲是如何在沒有任何控制台限制的情況下製作的,而是為 SB 遊戲設備製作的,作為基準運行。完全圍繞四核心架構,並產生線程、大量 RAM、VRAM 和 DX11。我們能否以穩定的 120 最低 fps 和 4 倍全螢幕超級取樣來製作 Crysis Ultra/modded?

        • 實際上,由於快取未命中次數增加(因為指標佔用了兩倍的快取記憶體),64 位元 exe 的運行速度要慢一些。另外,還有一個事實是,很大一部分市場仍然沒有從 Win32 升級,而另一大部分市場購買了 32 位元版本的 Vista/7,因此您必須支援最低公分母。

          同時支援 32 位元和 64 位元 exe 在技術上是可行的,但很難證明其合理性,因為必須完成大量程式碼工作,並且會增加您的測試負擔

          • 我認為轉換到 64 位元時的效能或多或少會受到影響,因為您可以存取 CPU 上更通用的暫存器。

        • 另一個問題是,如果 3rd 方庫沒有 64 位元版本……他們可能不想花時間在 64 位元版本上。
          天哪,他們甚至不會打開 LAA 標誌,為什麼他們要為 64 位元版本煩惱呢?

      • 啟用 LAA 相當簡單——它只是一個編譯標誌。

        問題是需要進行大量的回歸測試來確保它不會破壞任何東西,或者確保他們的所有程式碼和中間件沒有做一些糟糕但常見的事情(你知道,對於速度!如果《天際》的引擎是大規模的檢修,他們真的應該從一開始就把這個當作一個目標。

        • 至少在 64 位元系統上,該引擎似乎對 LAA hack 確實很可靠。比沒有更穩定,比《湮滅》更穩定。這讓我想知道他們是否確實完成了大部分工作,但沒有打開開關。

          昨晚有人說,由於愚蠢的驅動程式等原因,啟用 LAA 標誌可能會在 32 位元系統上導致問題,所以也許這就是它不啟用的原因。

          • 我不記得《湮沒》曾經崩潰過,而《天際》每天都至少崩潰兩次(即時 CTD)。我確實記得音頻編解碼器弄亂了《Oblivion》,但如果沒有它們,它在發佈時是穩定的。

            • 即時 CTD 可能是可執行檔無法辨識大位址的症狀。我敢打賭,如果你使用 LAA hack,它們就會消失。

              即使我解決了奇怪的編解碼器問題,我也遇到了更多關於《遺忘》崩潰的問題。

        • 我不認為這是他們聲稱的大規模改革。從圖形上看,它確實看起來更好,但 FO3/Oblivion 的所有潛在怪癖仍然存在,修復也同樣存在。

    • 如果我在 64 位元作業系統上總共只有 4GB RAM,那麼使用此修復是一個壞主意嗎?

        • 哦,沒關係,我使用 ini 修復將其從 500-600 增加到約 1.6 GB,不超過 2GB

    • 有人遇到鷹眼不起作用的問題嗎?我無法讓它縮放。我交換了左/右滑鼠按鈕,認為這就是問題所在,但將它們切換回去似乎沒有幫助。

      • 沒有。請記住,它會消耗耐力,所以這可能是你的問題。

    • 在此補丁之後還有其他人注意到一些嚴重的效能問題嗎?我從未啟用過 LAA,但在這個補丁之後我得到了

        • 在我獲得 20-30 fps 的區域中,速度低於 10 fps。

    • 各位,不是在這裡吐槽,只是一個想法:
      閱讀有關需要安裝的內容、可以做什麼或不能做什麼、可以嘗試停用或啟用什麼、或安裝解決方法等……只是讓我頭痛。我意識到這些遊戲機在性能和圖形方面提供的體驗較差,但是天啊……閱讀這篇文章確實讓我可以輕鬆地繼續在 360 上玩遊戲,而不必擔心任何問題。這幾乎就像我願意放棄我的電腦提供的卓越性能(包括模組),只是因為我更容易打開我的 360 並在較低的 720P 解析度、較低的幀率和繪圖中享受遊戲距離和較低解析度的紋理榮耀。遊戲本身就有足夠的技術問題,我當然不想擔心其他事情。