למה משחקים ישנים לרוץ מהר מדי על מחשבים מודרניים?
אם אי פעם ניסו לקבל משחק מחשב וינטאג ולהפעלתו על מערכת מודרנית, אתה כנראה היה המום איך מהר המשחק רץ. למה משחקים ישנים נגמרים של שליטה על חומרה מודרנית?
מוקדם יותר היום הראינו לך כיצד להפעיל תוכנות ישנות יותר על מחשבים מודרניים; היום של השאלה ואת התשובה הפגישה היא מחמאה נחמד לחפור למה כמה תוכנות ישנות (במיוחד משחקים) לעולם לא נראה לעבוד נכון כאשר אתה מנסה להפעיל אותם על חומרה מודרנית.
מפגש השאלות והתשובות של היום מגיע אלינו באדיבות SuperUser - חלוקה מחודשת של Stack Exchange, קיבוץ מונחה על ידי הקהילה של אתרי אינטרנט של Q & A.
השאלה
SuperUser הקורא TreyK רוצה לדעת למה משחקי מחשב ישנים לרוץ מהר מטורף על חומרה חדשה:
יש לי כמה תוכניות ישנות שלפתי את המחשב בתחילת שנות ה -90 של Windows וניסיתי להפעיל אותן במחשב מודרני יחסית. מעניין מספיק, הם רץ במהירות מהירה ובוהקת - לא, לא את 60 מסגרות לשנייה סוג של מהיר, אלא את אלוהים- the-God-the-אופי- is- הליכה ב- the-Speed-of-sound סוג של מהר. הייתי לוחץ על מקש החץ ואת ספרייט של הדמות היה zip על פני המסך הרבה יותר מהר מהרגיל. זמן התקדמות במשחק היה קורה הרבה יותר מהר ממה שהוא צריך. יש אפילו תוכניות שבוצעו כדי להאט את המעבד שלך, כך המשחקים האלה הם למעשה playable.
שמעתי כי זה קשור למשחק בהתאם מחזורי CPU, או משהו כזה. השאלות שלי הן:
- למה משחקים ישנים עושים את זה, ואיך הם ברחו עם זה?
- איך משחקים חדשים יותר לא לעשות זאת ולהפעיל באופן עצמאי את תדר המעבד?
אז מה הסיפור? למה בדיוק את sprites במשחקים הישנים להבה על המסך כל כך מהר המשחק הופך unplayable?
התשובה
SuperUser תורם JourneymanGeek לשבור אותו:
אני מאמין שהם הניחו את שעון המערכת יפעל בקצב מסוים, וקשרו טיימרים הפנימיים שלהם כי קצב השעון. רוב המשחקים האלה כנראה רץ על DOS, והיו במצב אמיתי (עם גישה מלאה, חומרה ישירה) והניח שאתה מפעיל iirc 4.77 MHz מערכת עבור מחשבים אישיים ומה מעבד סטנדרטי כי המודל רץ עבור מערכות אחרות כמו Amiga.
הם גם לקחו קיצורי דרך חכמים המבוססים על ההנחות הללו, כולל חיסכון של מעט משאבים על ידי לא כתיבת לולאות תזמון פנימי בתוך התוכנית. הם גם לקחו כמה כוח מעבד כפי שהם יכולים - וזה היה רעיון הגון בימים של שבבים איטי, לעתים קרובות פסיבי מקורר!
בתחילה אחת הדרכים לעקוף את מהירות המעבד היתה כפתור טורבו הישן (שהאט את המערכת למטה). יישומים מודרניים נמצאים במצב מוגן ומערכת ההפעלה נוטה לנהל משאבים - הם לא להתיר יישום DOS (אשר פועל ב NTVDM על מערכת 32 סיביות בכל מקרה) להשתמש בכל המעבד במקרים רבים. בקיצור, OSes יש gotten חכם יותר, כמו גם APIs.
מבוסס על זה באופן חמור על המדריך הזה על Oldskool PC שבו ההיגיון והזיכרון נכשל לי - זה נהדר לקרוא, וכנראה הולך יותר לעומק לתוך "למה".
דברים כמו CPUkiller להשתמש עד כמה משאבים רבים ככל האפשר כדי "להאט" את המערכת שלך, אשר אינו יעיל. עדיף שתשתמש ב- DOSBox כדי לנהל את מהירות השעון שהיישום שלך רואה.
אם אתה סקרן לגבי האופן שבו הקוד בפועל היה מיושם במשחקי מחשב מוקדמים (ולמה הם מסתגלים כה גרועים למערכות מודרניות מבלי להיות מאורגנים באיזושהי תוכנית אמולציה), היינו ממליצים לבדוק את ההתפלגות הממושכת אך המעניינת של בתהליך אחר תשובה SuperUser.
יש לך משהו להוסיף להסבר? נשמע את ההערות. רוצה לקרוא תשובות נוספות ממשתמשים אחרים בעלי ידע טכנולוגי מתמצא? בדוק את נושא הדיון המלא כאן.