עבור לתוכן

Steam - פתרון לבעיה נפוצה בה משחקים רבים לא פועלים ומציגים מסך שחור

Featured Replies

פורסם

היי. חשבתי לשתף אתכם בבעיה נפוצה מאוד הנוגעת למשתמשי סטים בגרסאותיה האחרונות ובפתרון הפשוט ביותר שלה.

 

הבעיה

 

מספר גדול של משתמשים מתלוננים וחווים מסך שחור, קיפאון או קריסה של משחקים מסויימים מיד בעת הרצת המשחק דרך סטים, דוגמה אחת טובה היא Tomb Raider. במידה ותנסו לשחק במשחקים אלו בגרסה לא תואמת סטים, המשחקים יעבדו ללא כל בעיה. הרוב המוחלט של אלו החווים את הבעיה משתמש בכרטיסי מסך מסוג NVIDIA. דרייבר בעייתי של הירוקים? לא בטוח: כבר אזכיר שיש פה דגש עקיף מאוד על NVIDIA שלא קשור אליה בכלל, על מנת שלא לעורר הסתייגות מיותרת. קראו את הפוסט.

 

הדרך לפתרון המאוד פשוט - (לא חייב לקרוא, אם כי זה משעשע)


גם אני הייתי עד עכשיו חלק מאלו שחווים את הבעיה, במחשב הראשי ובלפטופ שלי - שניהם עושים שימוש בכרטיס NVIDIA. במחשב השלישי הנערך לבדיקות ונושא כרטיס מסך AMD הבעיה לא הופיעה. 

חקרתי את התלונות על התופעה ברשת. היא מאוד רחבה, וכאמור זה חיזק את העובדה שהיא משתייכת בעיקר (אך לא רק) לבעלי כרטיסי מסך מסוג NVIDIA. כמה דרייברים הוסרו והותקנו ושיערות נמרטו בדרך, בעיקר בגלל כמה פעמים שבאופן מגמתי כל המשחקים הללו עבדו ולאחר כמה זמן, למשל לאחר הפעלה מחדש של המחשב, כבר לא. 

בסופו של דבר הבנתי שכנראה ולא מדובר בבעיה של דרייברים חיצוניים אלא בעיה כלשהי בתאימות קוד. זה הוביל אותי לעשות מעשה מעט "קיצוני" ולהסיר את כל גרסאות ה-Microsoft Visual C++ Redistributable שמותקנות אצלי במחשב (באופן טבעי אצלי ואצל כולם, כמה וכמה גרסאות וזה טבעי) דרך לוח הבקרה. 

התחלתי מלהתקין את Vicual C++ 2015 בגרסאות ה-64 ו-32 ביט שלה.
מספר גדול של תוכנות לא עבד יותר - בגלל שהרבה מהתוכנות תלויות בגרסאות קודמות יותר, בדומה ל-DirectX. מה שכן עבד היו המשחקים הללו בסטים - גם לאחר הפעלות מחדש. אז יש כאן בעיה כלשהי עם Microsoft Visual C++ Redistributable ויש לה גם קשר כלשהו ל-NVIDIA.

 

התחלתי להתקין לאט לאט, בסדר יורד, את כל הגרסאות של Microsoft Visual C++ Redistributable (כפי שצריך ליהיות), כשאחרי כל התקנה אני מבצע הפעלה מחדש ובודק אילו תוכנות עובדות והאם המשחקים עובדים. בכל פעם מחדש, תוכנות מסויימות חוזרות לעבוד, מן הסתם, והמשחקים הבעיתיים בסטים עדיין עובדים. Looking good - ממשיך.

 

אך ברגע שהתקנתי את Microsoft Visual C++ Redistributable 2008 הבעיה חזרה. כל התוכנות עולות כעת אך המשחקים הבעיתיים בסטים לא. הסרתי את גרסת 2008 של Visual C++, הפעלתי מחדש, והמשחקים, כצפוי, עובדים. אז הסיבה לתאקל מתבהרת: Visual C++ 2008 מתנגשת באיזשהו אופן עם המשחקים האלו בסטים. 

 

אז פשוט לעבוד ללא גרסת 2008? די בעייתי עבור תוכנות שזקוקות לה, ואף יותר בעייתי כי התוכנה בה אני עושה שימוש רחב מאוד לאוברקלוק וניטור מידע בזמן אמת, MSI Afterburner, מבוססת על Visual C++, לכן היא לא עובדת - וזה הרבה להקריב. נאלצתי להתקין את גרסת 2008 מחדש בתכנון לדווח לסטים על הבאג ולקוות שהיא תשים עליו פס. הפעם ללא הפעלה מחדש - כבר לא כזה דחוף, כבר אין מה לבדוק. משחק עם סמן העכבר על הספריה שלי בסטים, ובצעד חצי נואש מנסה להפעיל את אחד מהמשחקים הבעייתים. הפלא והפלא - הוא עובד. וגם השאר עובדים.

 

נשאר רק לחבר את הנקודות ולנחש מה קורה כאן. אמרתי לעצמי שקובצי ה-Visual C++ 2008 כנראה לא תפסו מבלי להפעיל את המחשב מחדש. אבל לפני שעשיתי זאת עלה לי רעיון: מה אם לא מדובר בהמצאותה של Vicual C++ 2008 במערכת, אלא בתוכנה הפועלת ברקע שעושה שימוש בה? יש רק אחת כזו כרגע שעושה שימוש ב-2008 ולא פועלת לאחר ההתקנה של 2008 - MSI Afterburner, אותה הזכרתי קודם - לא טרחתי לפתוח אותה מחדש לאחר ההתקנה המחודשת של גרסת 2008. בעקבות הרעיון - הבעיה, לכאורה, נמצאה: MSI Afterburner, כאשר היא פועלת ברקע גורמת לבעיה הזו. עדיין די בעייתי tho - אפשר למצוא תמיד אלטרנטיבה לתוכנת אוברקלוק, אך MSI Afterburner היא אולי התוכנה הטובה ביותר, לדעתי, עבור ניטור החומרה בזמן אמת. עדיין הקרבה.

 

אז אמרתי לעצמי שאסגל פתרון לא נוח (אך עדיף על הסרה של התוכנה) עד שהבעיה תטופל (אם בכלל) שבו אני מכבה את MSI Afterburner שעה שאני משחק במשחקים האלו. אז כיביתי אותה דרך ה-System Tray. אבל המשחקים עדיין לא עובדים (???). במצב כזה תמיד - ctrl+alt+delete, מנהל המשימות, לבדוק שהתוכנה באמת כובתה. MSI Afterburner כובתה, אבל "בת ההלוויה" שלה, RivaTuner לא. אז כיביתי את התהליך ידנית (RTAA.exe). המשחקים עדיין לא עובדים. שוב מנהל המשימות, ואז אני רואה שהתהליך של RivaTuner חזר. התנהגות מעט טורדנית של תהליך.

דבר כזה מביא אותי להסיר תוכנה, אך גם לה אני זקוק בשביל לקבוע FPS CAP במשחקים (בעיקר ישנים) שלא עובדים טוב עם VSYNC. 

ואז עלה לי רעיון נוסף - מה אם MSI Afterburner היא לא הבעיה כי אם RivaTuner? הסרה מלאה של RivaTuner, הפעלה מחדש. MSI Afterburner פועלת ברקע, המשחקים עובדים, גם אחרי כמה הפעלות מחדש. יוריקה! הבעיה היא ב-RivaTuner שיוצרת התנגשות ברקע.

 

הקשר ל-NVIDIA והקשרים האחרים

 

הקשר העקיף כל כך ל-NVIDIA הוא פשוט: שלא בדומה ל-AMD, אצלה נפוצות תוכנות אחרות לגמרי לאוברקלוק דוגמת Sapphire TriXX (בה אני עושה שימוש כאשר מדובר ב-AMD), לבעלי כרטיסי NVIDIA יש תוכנה אחת מועדפת וזו MSI Afterburner, שמגיעה בהתקנה עם RivaTuner. אחוז השימוש של משתמשי NVIDIA בתוכנות אלה הוא עצום. 

למעשה, לא רק אצל NVIDIA. גם משתמשי AMD רבים משתמשים בה, מה שמסביר מדוע גם כמה בעלי כרטיסי AMD חווים את הבעיה.
אז NVIDIA נקיה מכל אשמה, אם לומר זאת כך.

 

הקשר ל-Visual C++ 2008? פשוט מאוד למי שלא הבין עד כה- RivaTuner (וגם MSI Afterburner) מבוססות עליה. 
 

הפתרון

 

הפתרון הקל - להסיר את RivaTuner (או לא להתקין מלכתחילה) במידה ואין בה שימוש.

עבור אלו, כמוני, ש-RivaTuner חשובה עבורם, עדיין קיים פתרון חלקי:

מקור ההתנגשות הוא בין פעולות המובצעות ברקע ב-64 ל-32 ביט - הסיבה לכך לא ברורה, אך הפתרון פשוט:
הכנסו להגדרות של RivaTuner ובטלו את האפשרות "Enable 64-bit applications support service".
לאחר הפעלה מחדש המשחקים יעבדו, אך RivaTuner לא תתמוך במשחקים האלו.

 

לדעתי, על אף שקראתי לזה חצי פתרון, מדובר בפתרון יחסית שלם, כי עד היום הזדקקתי ל-RivaTuner אך ורק במשחקים ישנים, לכל היותר כאלו העושים שימוש ב-32 ביט בלבד. עבור מי שבכל זאת מוצא את הפתרון חלקי לא נותר דבר מלבד לחפש אלטרנטיבה לפעולות התוכנה, או לחכות שאחד מן הגורמים (MSI או Valve) יפתרו את הבעיה.

 

אני מקווה שעזרתי לכמה וכמה אנשים.

פורסם

תודה רבה על הפיתרון, עכשיו אני יכול שוב לשחק HL2 :)
הפיתרון של לכבות את התמיכה באפליק ציות 64 ביט לא עבדה עם HL2, חבל.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים