16Aug

למה משחקים ישנים לרוץ מהר מדי על מחשבים מודרניים?

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

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

השאלה של היום &מפגש תשובה מגיע אלינו באדיבות SuperUser - חלוקה של סטאק שערי, קהילה מונחה קיבוץ של Q & אתרי אינטרנט.

השאלה

SuperUser הקורא TreyK רוצה לדעת מדוע משחקי מחשב ישנים משוגעים במהירות על חומרה חדשה:

יש לי כמה תוכנות ישנות שהוצאתי ממחשב Windows בתחילת שנות ה -90 וניסיתי להפעיל אותן במחשב מודרני יחסית.מעניין מספיק, הם רץ במהירות מהירה לוהט - לא, לא 60 מסגרות לשנייה סוג של מהיר, אלא את אלוהים- my-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 שבו ההיגיון והזיכרון נכשל לי - זה נהדר לקרוא, וכנראה הולך יותר לעומק לתוך "למה".

דברים כמו CPUkiller להשתמש עד כמה משאבים רבים ככל האפשר כדי "להאט" את המערכת שלך, אשר אינו יעיל.עדיף שתשתמש ב- DOSBox כדי לנהל את מהירות השעון שהיישום שלך רואה.

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

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