Διερευνώντας την αρχιτεκτονική του Game Boy: Τεχνική ανάλυση και ανάπτυξη εξομοιωτή Game Boy για συσκευές Android
Investigating the architecture of the Game Boy: A technical analysis and Game Boy emulator development for Android devices
Διπλωματική εργασία
Συγγραφέας
Ρόμπολας, Διονύσιος-Αντώνιος
Ημερομηνία
2023-07-13Επιβλέπων
Troussas, ChristosΛέξεις-κλειδιά
Εξομοίωση ; Emulation ; Android ; Kotlin ; Assembly ; Τεχνική ανάλυση ; Technical analysis ; Game BoyΠερίληψη
Το Game Boy είναι μια φορητή συσκευή παιχνιδιών που κυκλοφόρησε από τη Nintendo το 1989 και πλέον θεωρείται από τις πιο δημοφιλείς και σημαντικές κονσόλες βιντεοπαιχνιδιών όλων των εποχών. Η επιτυχία του Game Boy οφειλόταν σε μεγάλο βαθμό στον απλό αλλά στιβαρό σχεδιασμό του υλικού του, τη μεγάλη διάρκεια ζωής της μπαταρίας του, την καινοτομία της φορητότητάς του, και την τεράστια βιβλιοθήκη παιχνιδιών του που εκτείνεται σε διάφορα είδη και απευθύνεται σε όλες τις ηλικίες. Ωστόσο, παρά τη δημοτικότητα και τη μακροζωία του, οι τεχνικές προδιαγραφές και οι εσωτερικές λειτουργίες του Game Boy δεν είναι ευρέως γνωστές ή κατανοητές από το ευρύ κοινό ή ακόμα και από πολλούς προγραμματιστές παιχνιδιών Game Boy. Η παρούσα διπλωματική εργασία αποτελείται από δύο μέρη. Το πρώτο μέρος περιέχει ένα θεωρητικό πλαίσιο αφιερωμένο στην ολοκληρωμένη και λεπτομερή ανάλυση της αρχιτεκτονικής του Game Boy, συμπεριλαμβανομένων των δυνατοτήτων του επεξεργαστή και της μονάδας επεξεργασίας εικόνας, τη δομή της μνήμης του, του τρόπου αλληλεπίδρασης του χρήστη με το υλικό και τον τρόπο επικοινωνίας του με άλλες συσκευές Game Boy. Το δεύτερο μέρος χρησιμοποιεί τις γνώσεις που αποκτήθηκαν από το πρώτο μέρος της εργασίας, εφαρμόζοντάς τις στα πλαίσια ανάπτυξης μίας μοντέρνας εφαρμογής εξομοιωτή Game Boy για έξυπνες συσκευές Android, υλοποιημένη σε γλώσσα προγραμματισμού Kotlin. Η συγκεκριμένη εφαρμογή επιτρέπει στους χρήστες να φορτώσουν και να εκτελέσουν αρχεία παιχνιδιών Game Boy (ROM files) στην εφαρμογή, και υποστηρίζει επιπλέον λειτουργίες όπως αποθήκευση κατάστασης παιχνιδιού (save states), κλιμάκωση της ανάλυσης (resolution scaling), και παραμετροποίηση της χαρτογράφησης της εισόδου του χειριστηρίου (controller mapping). Με αυτές τις συνεισφορές, η παρούσα διπλωματική εργασία αποσκοπεί στη συμβολή της διατήρησης και της εκτίμησης της κληρονομιάς του Game Boy προσφέροντας στους χρήστες έναν άμεσο τρόπο εκτέλεσης των παιχνιδιών του, καθώς και να αποτελέσει μια αξιοσημείωτη αναφορά ως οδηγός για μελλοντική έρευνα και ανάπτυξη στον τομέα της εξομοίωσης υπολογιστικών συστημάτων.
Περίληψη
The Game Boy is a portable gaming device released by Nintendo in 1989 and is now considered one of the most popular and influential video game consoles of all time. The Game Boy's success was largely due to its simple yet robust hardware design, long battery life, portability, and a vast genre-spanning game library for all ages. However, despite its popularity and longevity, the technical specifications and inner workings of the Game Boy are not widely known or understood by the general public or even by many Game Boy game developers. This thesis consists of two parts. The first part contains a theoretical framework dedicated to the comprehensive and detailed analysis of the Game Boy architecture, including the capabilities of its processor and picture processing unit, its memory structure, the way the user interacts with the hardware, and how it communicates with other Game Boy devices. The second part uses the knowledge gained from the thesis’ first part, applying it in the context of developing a modern Game Boy emulator application for smart Android devices, implemented using the Kotlin programming language. This application allows users to load and run Game Boy game files (ROM files) in the application, and supports additional features such as save states, resolution scaling and controller mapping. With the aforementioned parts, this thesis aims to contribute to the preservation and appreciation of the Game Boy's legacy by offering users a convenient way to play its games, as well as being a notable reference for future research and development in the field of computer system emulation.