אם ניסיתם פעם להפעיל משחק מחשב וינטג 'במערכת מודרנית, סביר להניח שהייתם המומים מאיך מָהִיר המשחק רץ. מדוע משחקים ישנים נגמרים משליטה בחומרה מודרנית?
מוקדם יותר היום אנחנו הראה לך כיצד להפעיל תוכנות ישנות יותר במחשבים מודרניים ; מושב השאלות והתשובות של היום הוא מחמאה נחמדה שמתעמקת בסיבה שחלק מהתוכנות הישנות יותר (במיוחד משחקים) אף פעם לא עובדות כמו שצריך כשמנסים להריץ אותן על חומרה מודרנית.
מושב השאלות והתשובות של היום מגיע אלינו באדיבות SuperUser - חלוקה של Stack Exchange, קיבוץ מונחה קהילה של אתרי שאלות ותשובות.
השאלה
קורא SuperUser TreyK רוצה לדעת מדוע משחקי מחשב ישנים משתגעים במהירות על חומרה חדשה:
יש לי כמה תוכניות ישנות שלפתי מחשב Windows של תחילת שנות ה -90 וניסיתי להריץ אותן על מחשב מודרני יחסית. מעניין לציין שהם רצו במהירות מהירה לוהטת - לא, לא מהירות מהסוג של 60 פריימים לשנייה, אלא הו-אלוהים-הדמות-הולכת-במהירות-מהסאונד של מָהִיר. הייתי לוחץ על מקש חץ והספרייט של הדמות יתרחס על המסך הרבה יותר מהר מהרגיל. התקדמות הזמן במשחק התרחשה הרבה יותר מהר ממה שהיא אמורה היה. יש אפילו תוכניות שנעשו ל האט את המעבד שלך כך שהמשחקים האלה באמת ניתנים להשמעה.
שמעתי שזה קשור למשחק בהתאם למחזורי המעבד, או משהו כזה. השאלות שלי הן:
- מדוע משחקים ישנים יותר עושים זאת, ואיך הם יצאו מזה?
- איך משחקים חדשים יותר לֹא לעשות זאת ולפעול באופן עצמאי מתדר המעבד?
אז מה הסיפור? מדוע דווקא הספריטים במשחקים ישנים מתבהרים על המסך כל כך מהר שהמשחק הופך לבלתי ניתן להשמעה?
התשובה
תורם SuperUser JourneymanGeek מפרק את זה:
אני מאמין שהם הניחו ששעון המערכת יפעל בקצב מסוים, וקשר את הטיימרים הפנימיים שלהם לקצב השעון הזה. רוב המשחקים האלה כנראה רצו ב- DOS, והיו מצב אמיתי (עם גישה ישירה וישירה לחומרה) והנחתי שאתה מפעיל א iirc 4.77 מגה הרץ למחשבים אישיים וכל מעבד סטנדרטי אשר דגם זה רץ למערכות אחרות כמו האמיגה.
הם גם לקחו קיצורי דרך חכמים על סמך ההנחות הללו, כולל חיסכון במעט משאבים בכך שלא כתבו לולאות תזמון פנימיות בתוך התוכנית. הם גם תפסו כמה שיותר כוח מעבד ככל שיכלו - וזה היה רעיון הגון בימים של שבבים איטיים, לעיתים קרובות מקוררים באופן פסיבי!
בתחילה אחת הדרכים לעקוף את מהירות המעבד השונה הייתה הישנה והטובה כפתור טורבו (שהאט את המערכת שלך). יישומים מודרניים נמצאים במצב מוגן ומערכת ההפעלה נוטה לנהל משאבים - הם לא היו עושים זאת להתיר יישום DOS (שממילא פועל ב- NTVDM במערכת 32 סיביות) לשימוש בכל המעבדים במקרים רבים. בקיצור, מערכות הפעלה הפכו חכמות יותר, כמו גם ממשקי API.
מבוסס כבד מדריך זה ב- Oldskool PC היכן שההיגיון והזיכרון נכשלו בי - זו קריאה נהדרת, וכנראה נכנסת יותר לעומק ל"למה ".
דברים כמו מעבד CPU השתמש בכמה שיותר משאבים כדי "להאט" את המערכת שלך, שאינה יעילה. יהיה לך טוב יותר להשתמש DOSBox כדי לנהל את מהירות השעון שהיישום שלך רואה.
אם אתה סקרן לגבי אופן הטמעת הקוד בפועל במשחקי מחשב מוקדמים (ומדוע הם מסתגלים כל כך גרוע למערכות מודרניות מבלי להיות בארגז חול בתוכנית הדמיה כלשהי), היינו ממליצים לבדוק הפירוט הארוך אך המעניין הזה של התהליך בתשובה אחרת של SuperUser.
יש לך מה להוסיף להסבר? נשמע בתגובות. רוצה לקרוא תשובות נוספות ממשתמשי Stack Exchange אחרים המתמצאים בטכנולוגיה? עיין כאן בשרשור הדיון המלא .