在Windows7下玩老遊戲花屏的解決辦法

2022-02-10 03:43:57 字數 1274 閱讀 5288

在windows7下玩老遊戲花屏的解決辦法

地獄門神

在windows7下玩老遊戲,如星際爭霸,會出現花屏的現象。

這個現象的原因是win7的directdraw的256色調色盤的相容性問題,據說是預設配置下,程式無法獲取調色盤鎖。

乙個簡單的解決方法是殺掉explorer程序,估計這樣就會停止桌面主題修改調色盤。

但是這不是乙個一勞永逸的辦法。

經過在網上搜尋,發現有這樣乙個解決方案。

directdraw有乙個登錄檔項,用於開啟相容模式,位於

hkey_local_machine\software\wow6432node\microsoft\directdraw\compatibility

(win7 x64)

hkey_local_machine\software\microsoft\directdraw\compatibility

(win7 x86)

在這個登錄檔項下新增需要啟用相容模式的exe,如:

windows registry editor version 5.00

[hkey_local_machine\software\wow6432node\microsoft\directdraw\compatibility\starcraft116]

"name"="starcraft.exe"

"id"=hex:ca,89,65,49

"flags"=hex:00,08,00,00

(win7 x64)

就可以使得對應的程式執行於相容模式下。

這三個鍵值中,name是程式的檔名,flags是常量,而id是程式的時間戳。

以星際爭霸1.161為例,我們可以使用cff explorer開啟starcraft.exe,然後在nt headers-file header中找到timedatestamp一項,發現其值為496589ca。

將該整數倒過來寫作低位元組優先的形式(little-endian),就是ca,89,65,49,這就是登錄檔中的id值。

但是我驗證的時候發現不一致。

通過此方法,星際爭霸已經可以在我的機器上正常執行。

此外,還有一種方法是通過hook掉directdraw的函式來完成的,見

不過這個實現是通過軟體方法來進行 索引->顏色 轉換的,沒有使用到顯示卡加速,在執行星際爭霸時比較卡。

但這種方法只需要在程式資料夾下放入乙個ddraw.dll的檔案就可以實現,比較方便。

也許以後會有人通過directx或者opengl來模擬directdraw的功能,能夠比較完善的解決這個問題。

OpenCV在Windows7下的編譯

使用opencv庫有2個選擇 安裝編譯好的庫,或者從原始檔編譯自己的庫。前者操作起來比較簡便,但需要用到microsoft visual studio ide。這裡我們選擇使用編譯好的現成的庫。2 設定opencv的環境變數。環境變數將會儲存opencv庫的目錄資訊,這在我們的工程中將會用到。開啟乙...

Windows 7 下玩遊戲不能全屏?

許多使用者反映,在 windows 7 環境下,全屏遊戲時兩邊螢幕都是黑的,只好視窗執行了,很是不爽.如果您也遇到了類似的情況,不妨試一試以下兩種解決方法。方法一 更改顯示卡設定 更新到最新的顯示卡驅動。開啟開始選單,右鍵 計算機 選擇 管理 收起這個展開這個 開啟 裝置管理器 顯示介面卡 xx顯示...

STC ISP在Windows 7下使用方法

無需安裝 或者 需要安裝 其實不管是win7的32位還是64位,都可以使用這個方法來註冊 將mscomctl.ocx mscomm32.ocx comdlg32.ocx msstdfmt.dll等需要註冊的檔案複製到windows system32 目錄下 64位系統路徑為 c windows sy...