Ένας ανεξάρτητος προγραμματιστής παρουσίασε νέο λογισμικό ικανό να μετατρέψει κλασικούς τίτλους από παλιές κονσόλες σε εφαρμογές που μπορούν να εκτελεστούν απευθείας σε σύγχρονους υπολογιστές. Το σύστημα εξαλείφει την ανάγκη για παραδοσιακούς εξομοιωτές, επιτρέποντας στο λογισμικό να λειτουργεί με την εγγενή αρχιτεκτονική των σημερινών μηχανών. Η πρωτοβουλία αλλάζει τον τρόπο με τον οποίο χειρίζεται η αρχειοθέτηση και η εκτέλεση παλαιών φυσικών μέσων από ειδικούς στην ψηφιακή συντήρηση.
Η απευθείας μετατροπή του αρχικού κώδικα σε σύγχρονες γλώσσες προγραμματισμού επιλύει ιστορικά προβλήματα επεξεργασίας. Durante δεκαετίες, η εκτέλεση αυτού του λογισμικού εξαρτιόταν από ενδιάμεσα προγράμματα που μετέφραζαν εντολές σε πραγματικό χρόνο, απαιτώντας υψηλή υπολογιστική ισχύ. Η νέα μέθοδος εκτελεί όλες τις μεταφράσεις εκ των προτέρων, παρέχοντας ένα τελικό αρχείο βελτιστοποιημένο για λειτουργικά συστήματα όπως Windows και Linux.
Οι ειδικοί στην αντίστροφη μηχανική επισημαίνουν ότι η τεχνική μειώνει δραστικά την καθυστέρηση εντολών και τη χρήση του επεξεργαστή. Το έργο, το οποίο είναι ανοιχτού κώδικα, έχει ήδη επιδείξει πρακτικά αποτελέσματα με franchises γνωστά στο κοινό, καθιερώνοντας ένα νέο τεχνικό πρότυπο για τη συντήρηση βιβλιοθηκών λογισμικού που κινδύνευαν να απαρχαιωθούν λόγω της υποβάθμισης του αρχικού υλικού.
Πώς λειτουργεί η τεχνολογία στατικής ανασύνταξης
Το λογισμικό, που ονομάζεται PS2Recomp και αναπτύχθηκε από έναν προγραμματιστή γνωστό ως ran-j, χρησιμοποιεί μια διαδικασία που ονομάζεται στατική ανασύνταξη. Η τεχνική Essa διαφέρει θεμελιωδώς από την τυπική εξομοίωση, η οποία χρησιμοποιεί μετάφραση Just-In-Time (JIT) για να ερμηνεύσει τον κώδικα του παιχνιδιού ταυτόχρονα με την εκτέλεσή του. Το PS2Recomp αναλύει τον αρχικό δυαδικό κώδικα του παιχνιδιού, με βάση την αρχιτεκτονική MIPS, και τον μετατρέπει πλήρως στη γλώσσα C++, η οποία υποστηρίζεται ευρέως από την αρχιτεκτονική x86-64 των σύγχρονων επεξεργαστών υπολογιστών.
Εκτελώντας αυτή τη μετατροπή εκ των προτέρων, το σύστημα δημιουργεί ένα εκτελέσιμο αρχείο που επικοινωνεί απευθείας με το υλικό του υπολογιστή. Isso σημαίνει ότι ο υπολογιστής δεν χρειάζεται να προσποιείται ότι είναι μια παλιά κονσόλα, εξαλείφοντας τα έξοδα επεξεργασίας. Η στατική προσέγγιση διασφαλίζει ότι όλες οι πολύπλοκες οδηγίες από το αρχικό υλικό αντιστοιχίζονται και βελτιστοποιούνται πριν καν εκκινήσει ο χρήστης την εφαρμογή, με αποτέλεσμα τη δομική σταθερότητα που οι παραδοσιακοί εξομοιωτές σπάνια μπορούν να επιτύχουν χωρίς γραφικά σφάλματα ή μειώσεις απόδοσης.
Ανώτερη απόδοση και υποστήριξη για σύγχρονες αναλύσεις
Η εγγενής εκτέλεση παρέχει σημαντικά άλματα όσον αφορά την οπτική ποιότητα και τη ρευστότητα. Sem οι περιορισμοί του αρχικού υλικού, τα παιχνίδια που έχουν μετατραπεί μπορούν να αποδοθούν σε ανάλυση 4K εγγενώς, χωρίς την ανάγκη τεχνητών φίλτρων βελτίωσης που συχνά παραμορφώνουν την αρχική εικόνα.
Ο ρυθμός καρέ ανά δευτερόλεπτο υφίσταται επίσης βαθιές αλλαγές με το νέο εργαλείο. Το Títulos που λειτουργούσε αρχικά κλειδωμένο στα 30 καρέ ανά δευτερόλεπτο μπορεί τώρα να εκτελεστεί σε 60, 120 ή ακόμα περισσότερα καρέ, ανάλογα αποκλειστικά με τη χωρητικότητα της οθόνης και της κάρτας βίντεο του χρήστη.
Ο χρόνος φόρτωσης για σενάρια και επίπεδα πρακτικά εξαλείφεται. Como εκτελέσιμα αρχεία εκτελούνται απευθείας από την εσωτερική αποθήκευση του υπολογιστή, η χρήση σύγχρονων μονάδων SSD σημαίνει ότι οι οθόνες αναμονής, συνηθισμένες κατά την ανάγνωση οπτικών δίσκων στο παρελθόν, εξαφανίζονται εντελώς από την εμπειρία χρήστη.
Οπτικές τροποποιήσεις και προσαρμογή υφής
Η μετατροπή στη γλώσσα C++ ανοίγει ένα τεράστιο πεδίο για δομική τροποποίηση των παιχνιδιών. Diferente της εξομοίωσης, όπου η αλλαγή του κώδικα του παιχνιδιού απαιτεί πολύπλοκους χειρισμούς στην προσωρινή μνήμη, η εγγενής μορφή επιτρέπει στους προγραμματιστές να έχουν πρόσβαση και να αλλάζουν τα βασικά αρχεία του λογισμικού με ευκολία.
Η αντικατάσταση παλαιών μοντέλων 3D με εκδόσεις υψηλής ευκρίνειας γίνεται μια απλή διαδικασία. Το Desenvolvedores μπορεί να εισάγει νέες υφές, να αλλάξει τον φωτισμό των σκηνών και ακόμη και να τροποποιήσει τη φυσική των αντικειμένων χωρίς να σπάσει την εσωτερική λογική του αρχικού προγράμματος.
Η υποστήριξη για εξαιρετικά ευρείες οθόνες είναι μια άλλη τεχνική προσθήκη που διευκολύνεται με αυτήν τη μέθοδο. Η αναλογία διαστάσεων μπορεί να ρυθμιστεί εγγενώς στον εκ νέου μεταγλωττισμένο κώδικα, αποφεύγοντας το τέντωμα της εικόνας ή τις πλαϊνές μαύρες γραμμές που εμφανίζονται όταν προσπαθείτε να επιβάλλετε πανοραμικές αναλύσεις σε λογισμικό που δεν είναι προετοιμασμένο για αυτό.
Η ενσωμάτωση σύγχρονων περιφερειακών είναι επίσης απλοποιημένη. Controles διαφορετικών εμπορικών σημάτων, ποντικιών και πληκτρολογίων μπορούν να αντιστοιχιστούν απευθείας στο εκτελέσιμο αρχείο, προσφέροντας μια ακρίβεια εντολών που δεν είχαν τα αρχικά συστήματα εισόδου, προσαρμόζοντας τη χρηστικότητα στα πρότυπα που απαιτούνται από τους χρήστες Η/Υ.
Πρώτες δοκιμές με κλασικά πλατφόρμα
Για να αποδείξει την αποτελεσματικότητα του PS2Recomp, ο προγραμματιστής χρησιμοποίησε δύο τίτλους μεγάλης τεχνικής πολυπλοκότητας: Jak και Daxter και Sly Cooper. Τα Ambos παιχνίδια είναι γνωστά στην κοινότητα αντίστροφης μηχανικής επειδή είναι πολύ απαιτητικά και παρουσιάζουν πολύ δύσκολα στο αυθεντικό hardware.
Οι δοκιμές έδειξαν ότι τα παιχνίδια έτρεχαν άψογα μετά από στατική επαναμεταγλώττιση. Η επιλογή αυτού του συγκεκριμένου λογισμικού χρησίμευσε ως αυστηρή απόδειξη της ιδέας, υποδεικνύοντας ότι εάν το εργαλείο μπορεί να χειριστεί εξαιρετικά προσαρμοσμένες μηχανές γραφικών, βελτιστοποιημένες για την παλιά κονσόλα, έχει τη δυνατότητα να επεξεργαστεί τη συντριπτική πλειοψηφία του διαθέσιμου καταλόγου.
Πολυπλοκότητα του αρχικού επεξεργαστή της κονσόλας
Η αρχιτεκτονική του PlayStation 2, και συγκεκριμένα ο κεντρικός επεξεργαστής του, γνωστός ως Emotion Engine, θεωρείται ιστορικά μία από τις πιο περίπλοκες και δύσκολες στην αναπαραγωγή στο περιβάλλον ανάπτυξης λογισμικού. Το τσιπ χρησιμοποίησε μοναδικές διανυσματικές μονάδες επεξεργασίας και εκτελούσε μαθηματικούς υπολογισμούς κινητής υποδιαστολής με μη τυπικό τρόπο, ο οποίος προκάλεσε απρόβλεπτη συμπεριφορά όταν μεταφραζόταν σε συμβατικούς επεξεργαστές Η/Υ. Durante χρόνια, η κοινότητα ανάπτυξης έπρεπε να δημιουργήσει λύσεις και μαθηματικές προσεγγίσεις για να αναγκάσει τα παιχνίδια να εκτελούνται σε εξομοιωτές, κάτι που συχνά είχε ως αποτέλεσμα αποτυχίες συγχρονισμού ήχου και οπτικά τεχνουργήματα στην οθόνη. Η μεγάλη αξία του PS2Recomp είναι ότι μπορεί να αποκωδικοποιήσει αυτές τις περίεργες οδηγίες Emotion Engine και να τις ξαναγράψει σε γραμμική λογική που είναι κατανοητή για τις τρέχουσες CPU. Το λογισμικό δημιουργεί αυτοματοποιημένα προφίλ που εντοπίζουν ανωμαλίες στον αρχικό κώδικα και εφαρμόζουν ακριβείς μαθηματικές διορθώσεις κατά τη φάση της μετατροπής, διασφαλίζοντας ότι η φυσική, η τεχνητή νοημοσύνη και η απόδοση γραφικών λειτουργούν ακριβώς όπως σχεδιάστηκαν από τους αρχικούς δημιουργούς, αλλά σε ένα εντελώς διαφορετικό περιβάλλον υλικού.
Ψηφιακή συντήρηση παλιού λογισμικού
Η δημιουργία εγγενών λιμένων αντιπροσωπεύει ένα ορόσημο για τη διατήρηση της ιστορίας της τεχνολογίας. Με τη φυσική υποβάθμιση των φυσικών δίσκων και την προοδευτική αστοχία ηλεκτρονικών εξαρτημάτων σε παλαιότερες κονσόλες, η δυνατότητα μετατροπής αυτών των πολιτιστικών αγαθών σε δεδομένα ανεξάρτητα από το υλικό διασφαλίζει ότι παραμένουν προσβάσιμα και λειτουργικά για μελέτη και ανάλυση για τις επόμενες δεκαετίες.
Επέκταση καταλόγου και συνεργασία προγραμματιστών
Το έργο PS2Recomp έγινε διαθέσιμο στην πλατφόρμα GitHub, επιτρέποντας σε προγραμματιστές από όλο τον κόσμο να αναλύσουν τον πηγαίο κώδικα και να συμβάλουν σε βελτιώσεις. Το εργαλείο ενσωματώθηκε επίσης με το decomp.me, ένα σύστημα συνεργασίας όπου οι προγραμματιστές ενώνουν τις δυνάμεις τους για να μεταφράσουν αποσπάσματα δυαδικού κώδικα που ο αυτοματισμός δεν μπορεί ακόμη να επιλύσει τέλεια.
Η προσδοκία στην κοινότητα της αντίστροφης μηχανικής είναι ότι ο όγκος των παιχνιδιών που έχουν μετατραπεί θα αυξηθεί εκθετικά. Οι τεχνικές Projeções υποδεικνύουν ότι, μέχρι το έτος 2026, ένα σημαντικό μέρος της βιβλιοθήκης της κονσόλας θα είναι διαθέσιμο σε εγγενή μορφή υπολογιστή, με γνώμονα την αυτοματοποίηση του εργαλείου και τη συνεχιζόμενη εργασία των ψηφιακών αρχειονόμων που επικεντρώνονται στη διατήρηση παλαιού λογισμικού.

