16Aug
Εάν έχετε δοκιμάσει ποτέ να πάρετε ένα vintage παιχνίδι υπολογιστή και να τρέξει σε ένα σύγχρονο σύστημα, έχετε πιθανώς σοκαρίστηκε με το πώς γρήγορα το παιχνίδι έτρεξε.Γιατί τα παλιά παιχνίδια εξαντλούνται στον σύγχρονο εξοπλισμό;
Νωρίτερα σήμερα σας παρουσιάσαμε πώς να χρησιμοποιείτε παλαιότερο λογισμικό σε σύγχρονους υπολογιστές.η σημερινή συνεδρίαση ερωτήσεων και απαντήσεων είναι μια συμπαθητική φιλοφρόνηση που ανακαλύπτει γιατί κάποιο παλαιότερο λογισμικό( ειδικά τα παιχνίδια) δεν φαίνεται να λειτουργεί σωστά όταν προσπαθείτε να τα εκτελέσετε σε σύγχρονο υλικό.
Σήμερα Ερώτηση &Η συνάντηση απαντήσεων έρχεται με την ευγένεια του SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα-καθοδηγούμενη ομαδοποίηση Q & A ιστοσελίδες.
Η ερώτηση
Reader SuperUser TreyK θέλει να μάθει γιατί τα παλιά παιχνίδια στον υπολογιστή τρέχουν τρελά γρήγορα σε νέο υλικό:
Έχω μερικά παλιά προγράμματα που έβγαλα από έναν υπολογιστή των Windows των αρχών της δεκαετίας του '90 και προσπάθησα να τα τρέξω σε έναν σχετικά σύγχρονο υπολογιστή.Είναι αρκετά ενδιαφέρον ότι έτρεξαν με μια ταχύτατη ταχύτητα - όχι, όχι τα 60 καρέ ανά δευτερόλεπτο είδος γρήγορου, μάλλον ο θεός-ο-θεός-ο-χαρακτήρα-είναι-το περπάτημα-στο-ταχύτητα του ήχου είδοςγρήγορα.Θα πιέζω ένα πλήκτρο βέλους και ο σπρίχτης του χαρακτήρα θα φέρεται από την οθόνη πολύ πιο γρήγορα από το κανονικό.Η εξέλιξη του χρόνου στο παιχνίδι συνέβαινε πολύ πιο γρήγορα από ό, τι έπρεπε.Υπάρχουν ακόμη και προγράμματα για να επιβραδύνετε τη CPU σας, ώστε αυτά τα παιχνίδια να μπορούν να αναπαραχθούν.
Έχω ακούσει ότι αυτό σχετίζεται με το παιχνίδι ανάλογα με τους κύκλους της CPU ή κάτι τέτοιο.Οι ερωτήσεις μου είναι:
- Γιατί τα παλιά παιχνίδια το κάνουν αυτό και πώς έφυγαν μαζί του;
- Πώς τα νεότερα παιχνίδια δεν κάνουν αυτό και τρέχουν ανεξάρτητα από τη συχνότητα CPU;
Έτσι ποια είναι η ιστορία;Γιατί ακριβώς οι sprites σε παλιά παιχνίδια φλεγμονώνονται στην οθόνη τόσο γρήγορα το παιχνίδι γίνεται unplayable;
Η απάντηση
Συνεργάτης SuperUser JourneymanGeek το καταργεί:
Πιστεύω ότι υποτίθεται ότι το ρολόι του συστήματος θα τρέξει σε ένα συγκεκριμένο ρυθμό, και δεμένα στους εσωτερικούς χρονομετρητές τους σε αυτό το ρυθμό ρολογιού.Τα περισσότερα από αυτά τα παιχνίδια τρέχουν πιθανότατα σε DOS και ήταν πραγματικός τρόπος( με πλήρη άμεση πρόσβαση στο υλικό) και υποθέσατε ότι χρησιμοποιούσατε ένα σύστημα iirc 4,77 MHz για υπολογιστές και ό, τι συμβατό επεξεργαστή που έτρεξε για άλλα συστήματα όπως η Amiga.
Έλαβαν επίσης έξυπνες συντομεύσεις που βασίστηκαν σε αυτές τις παραδοχές, συμπεριλαμβανομένης της εξοικονόμησης ενός ελάχιστου ποσού πόρων, επειδή δεν έγραψαν εσωτερικούς βρόχους χρονομέτρησης στο εσωτερικό του προγράμματος.Επίσης, ανέλαβαν όσο περισσότερη δύναμη επεξεργαστή - η οποία ήταν μια αξιοπρεπής ιδέα στις ημέρες των αργών, συχνά παθητικά δροσισμένων τσιπ!
Αρχικά, ένας τρόπος για να μεταβείτε σε διαφορετική ταχύτητα επεξεργαστή ήταν το παλιό καλό κουμπί Turbo( το οποίο επιβράδυνε το σύστημά σας).Οι σύγχρονες εφαρμογές βρίσκονται σε προστατευμένη λειτουργία και το λειτουργικό σύστημα τείνει να διαχειρίζεται πόρους - δεν θα επέτρεπαν στο να έχει εφαρμογή μια εφαρμογή DOS( η οποία λειτουργεί ούτως ή άλλως στο NTVDM σε ένα σύστημα 32 bit) για να χρησιμοποιήσει σε μεγάλο βαθμό όλο τον επεξεργαστή.Εν ολίγοις, τα OSs έχουν γίνει πιο έξυπνα, όπως και τα API.
Βασισμένο σε μεγάλο βαθμό από αυτόν τον οδηγό στο PC Oldskool, όπου η λογική και η μνήμη μου απέτυχαν - είναι μια μεγάλη ανάγνωση, και μάλλον πηγαίνει περισσότερο σε βάθος στο "γιατί".Το
Stuff όπως το CPUkiller χρησιμοποιεί όσο το δυνατόν περισσότερους πόρους για να "επιβραδύνει" το σύστημα σας, το οποίο είναι αναποτελεσματικό.Θα προτιμούσατε να χρησιμοποιείτε το DOSBox για να διαχειριστείτε την ταχύτητα του ρολογιού που βλέπει η εφαρμογή σας.
Αν είστε περίεργοι για τον τρόπο με τον οποίο εφαρμόστηκε ο πραγματικός κώδικας στα πρώιμα παιχνίδια υπολογιστών( και γιατί προσαρμόζονται τόσο ανεπαρκώς στα σύγχρονα συστήματα χωρίς να είναι sandboxed σε κάποιο είδος προγράμματος εξομοίωσης), προτείνουμε επίσης να ελέγξετε αυτή τη μακρά αλλά ενδιαφέρουσα ανάλυσητης διαδικασίας σε μια άλλη απάντηση του SuperUser.
Έχετε κάτι να προσθέσετε στην εξήγηση;Απενεργοποιήστε τα σχόλια.Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους χρήστες τεχνολογίας Stack Exchange;Δείτε το πλήρες νήμα συζήτησης εδώ.