Μια άσκηση αρχιτεκτονικής ακρίβειας

Η απομεταγλώττιση (decompilation) ενός τόσο σύνθετου τίτλου όπως το Resident Evil 4 δεν αποτελεί μόνο επίτευγμα preservation, αλλά και μια βαθιά κατάδυση στις πρακτικές ανάπτυξης της εποχής. Το project βασίστηκε στην ύπαρξη των αρχείων συμβόλων (symbol files) από το debug build του παιχνιδιού, γεγονός που επέτρεψε την αντιστοίχιση των δυαδικών δεδομένων με τον πηγαίο κώδικα C/C++.

Προκλήσεις του build pipeline

Η αναπαραγωγή του build περιβάλλοντος απαιτεί τη χρήση των αυθεντικών compilers της εποχής, όπως ο SN Systems ProDG και ο Metrowerks CodeWarrior. Η ομάδα του project δημιούργησε ένα αυτοματοποιημένο pipeline που χρησιμοποιεί το ninja και ειδικά εργαλεία σύγκρισης (bytecmp.py, fdiff.py) για να διασφαλίσει ότι κάθε αλλαγή στον κώδικα διατηρεί την απόλυτη ταύτιση με το αρχικό binary. Η διαχείριση των compiler-specific ιδιαιτεροτήτων έγινε μέσω προσεκτικής χρήσης σχολίων και assembly directives, όπου η C/C++ δεν μπορούσε να εκφράσει τις απαιτήσεις του hardware.

Δομή και οργάνωση του κώδικα

Ο κώδικας είναι οργανωμένος σε src/game/ για τη λογική του παιχνιδιού, ενώ τα src/lib/ περιλαμβάνουν το SDK της Nintendo και το middleware της CRI. Η ανακατασκευή των structs βασίστηκε σε συνδυασμό των αυθεντικών ονομάτων από το PS2 debug build και ανάλυσης της χρήσης τους στον κώδικα. Αυτή η προσέγγιση προσφέρει μια μοναδική ματιά στον τρόπο με τον οποίο οι developers της Capcom διαχειρίζονταν τη μνήμη και τα overlays σε περιβάλλοντα με περιορισμένους πόρους.

Σημασία για την κοινότητα

Πέρα από την τεχνική αρτιότητα, το project παρέχει εργαλεία για την εξαγωγή animations σε glTF και BVH, ανοίγοντας τον δρόμο για περαιτέρω έρευνα πάνω στο engine. Η τήρηση της αυστηρής πολιτικής «μηδενικών αλλαγών στα bytes» καθιστά το αποθετήριο μια αξιόπιστη βάση για μελλοντική μελέτη της αρχιτεκτονικής του GameCube.