Mastodon
Connect with us

Gaming

Όταν το «αδύνατο» γίνεται πρόκληση: Doom στο Neo Geo

Δύο πρόσφατες υλοποιήσεις του Doom στο Neo Geo δείχνουν πώς η κοινότητα ξεπερνά αρχιτεκτονικούς περιορισμούς με εφευρετικές τεχνικές, παράγοντας λειτουργικές αλλά συμβιβαστικές εκδοχές του παιχνιδιού και αναδεικνύοντας την αξία του retro development.

Published

on

Όταν το «αδύνατο» γίνεται πρόκληση: Doom στο Neo Geo

Η ιδέα ότι το Doom δεν μπορεί να τρέξει σε ένα σύστημα όπως το Neo Geo βασίζεται σε τεχνικές πραγματικότητες — αλλά και σε υποθέσεις για το τι σημαίνει «τρέχει». Τι συμβαίνει όμως όταν μια ομάδα ανεξάρτητων προγραμματιστών αποφασίζει να δοκιμάσει τα όρια του υλικού; Δύο πρόσφατα projects δείχνουν πως, με κόλπα, παραχωρήσεις και εκμετάλλευση μη τεκμηριωμένων πόρων, μπορείς να φέρεις την εμπειρία του Doom σε μια κονσόλα που αρχικά φαίνεται εντελώς ακατάλληλη.

Το πρόσφατο βίντεο του Modern Vintage Gamer (MVG) αναφέρθηκε στην παρατηρησιμότητα του προβλήματος: το Neo Geo είναι σύστημα βασισμένο σε sprites και tile layers, χωρίς παραδοσιακό frame buffer που να δέχεται pixel-by-pixel ζωγραφική από τον κύριο επεξεργαστή — κάτι που ο κλασικός renderer του Doom θεωρεί απαραίτητο. Παρ’ όλα αυτά, δύο projects απέδειξαν ότι «αδύνατο» σημαίνει απλώς «πολύ δύσκολο», όχι αδιαπέραστο.

Αυτές οι απόπειρες δεν προσεγγίζουν το πλήρες οπτικό και ρυθμικό επίπεδο ενός εμπορικού port εποχής ’90, αλλά αποτελούν εντυπωσιακά παραδείγματα τεχνικής επινοητικότητας και επιδεικνύουν πόσα μπορείς να κερδίσεις με έξυπνες παρακάμψεις του hardware.

Γιατί το Neo Geo θεωρούνταν αδύνατο για Doom

Το Neo Geo σχεδιάστηκε ως πλατφόρμα για arcade εμπειρίες με ισχυρή έμφαση στα sprites: μεγάλες ποσότητες μικρών εικόνων που ο συνδυασμός τους σχηματίζει τους χαρακτήρες και τα σκηνικά. Η αρχιτεκτονική αυτή δεν διαθέτει έναν απλό frame buffer όπου το λογισμικό γράφει εικονοστοιχείο-προς-εικονοστοιχείο, κάτι που είναι θεμελιώδες για τον λογισμικό renderer του Doom, ο οποίος ζωγραφίζει στήλες υφής και υπολογίζει φωτισμό και απόσταση σε κάθε pixel.

Επιπλέον, το σύστημα διαθέτει περιορισμένο palette και συγκεκριμένα κανάλια video RAM προορισμένα για tiles, sprites και μια σταθερή overlay περιοχή (το λεγόμενο fix layer) που χρησιμοποιείται για HUD και μενού. Οι περιορισμοί αυτοί σημαίνουν ότι οποιαδήποτε προσπάθεια να αναπαραχθεί ο κλασικός renderer απαιτεί εναλλακτικές τεχνικές προσέγγισης και σημαντικές απώλειες στην ανάλυση και στο χρώμα.

Στο επίπεδο επεξεργασίας, το Neo Geo βασίζεται σε έναν Motorola 68000 ως κύριο CPU και σε ένα Z80 για το audio subsystem μαζί με ένα chip ήχου YM2610. Αυτοί οι επεξεργαστές είναι αρκετά ικανοί για 2D logics, αλλά δεν έχουν την άνεση ή το bandwidth που θα απαιτούσε ένας pixel-by-pixel software renderer σε υψηλή ανάλυση.

Πώς δουλεύει το Doom64KB στο Neo Geo

Το project Doom64KB, έργο του προγραμματιστή FrenkelS, βασίζεται σε μια engine που είχε αρχικά σχεδιαστεί για 16-bit PC αρχιτεκτονικές όπως οι 8088 και 286. Η έξυπνη ιδέα εδώ ήταν να μετατρέψουν μια περιοχή που στο σύστημα χρησιμοποιείται για HUD —τη «fix layer»— σε μια «πρωτο-πλατφόρμα» για σχεδίαση εικόνας καρέ προς καρέ.

Αντί να γράφουν απευθείας σε ένα πραγματικό frame buffer, ο renderer ζωγραφίζει σε τετραγωνικά μπλοκ 8×8 pixels τα οποία αντιστοιχούν σε tiles της fix layer. Το αποτέλεσμα είναι μια «χοντροκομμένη» αλλά αναγνωρίσιμη εκδοχή των πλοκαμιών και των τοίχων του Doom, σε μια αποτελεσματική ανάλυση περίπου 28×32 tiles και με περιορισμό σε 16 χρώματα. Η μικρή παλέτα και τα μεγάλα pixel blocks περιορίζουν τα εφέ φωτισμού και την αίσθηση βάθους, αλλά παρέχουν μια ρεαλιστική αίσθηση κίνησης και πλοήγησης στους χώρους του παιχνιδιού.

Η επιλογή της fix layer έχει ένα πρακτικό πλεονέκτημα: αυτή η περιοχή της VRAM συνήθως σχεδιάζεται για πάνω από το κύριο game layer, άρα μπορεί να χρησιμοποιηθεί χωρίς να χρειάζεται να ξανασχεδιαστούν πλήρως τα sprite pipelines. Είναι όμως μια λύση συμβιβαστική — το τελικό οπτικό αποτέλεσμα μοιάζει σε μεγάλο βαθμό συμπιεσμένο και «αφαιρετικό» σε σχέση με το πρωτότυπο.

Η δεύτερη μέθοδος: frame buffer από sprite memory

Μια άλλη, πιο φιλόδοξη προσέγγιση κατασκευάζει έναν faux frame buffer αξιοποιώντας τη μνήμη των sprites ώστε να δημιουργήσει μια οθόνη από μικρά 4×4 pixel blocks. Η ιδέα είναι να στήνονται χιλιάδες μικρά sprites σε τακτική σειρά προκειμένου να απεικονίσουν μια πλήρη εικόνα, σαν ψηφιδωτό. Με αυτόν τον τρόπο η αποτελεσματική ανάλυση αυξάνεται σε περίπου 80×56 blocks, προσφέροντας λεπτομέρεια σημαντικά ανώτερη από την 8×8 προσέγγιση.

Το κόστος αυτής της λύσης εμφανίζεται σε δύο επίπεδα: πρώτον, η διαχείριση τόσο μεγάλου αριθμού sprites απαιτεί χρόνο CPU και bandwidth στο video hardware, με αποτέλεσμα σοβαρή πτώση στο frame rate. Δεύτερον, ο περιορισμένος αριθμός διαφορετικών sprite tiles και η παλετα περιορίζουν την ποιότητα χρώματος και τα εφέ φωτισμού.

Παρόλα αυτά, με επιδέξιες βελτιστοποιήσεις, προσεκτική οργάνωση του video RAM και έξυπνο culling (να μην ζωγραφίζονται τι δεν φαίνεται), το αποτέλεσμα μπορεί να γίνει αποδεκτό και μάλιστα λειτουργικό. Επιπλέον, η χρήση overclocked hardware, όπως σε μερικά σύγχρονα ανακατασκευασμένα kits τύπου Neo Geo AES+, μπορεί να βελτιώσει τα αποτελέσματα σημαντικά διευκολύνοντας τον ρυθμό εικόνας.

Περιορισμοί, επιδόσεις και πιθανές βελτιώσεις

Κάθε προσέγγιση έχει συμβιβασμούς: χαμηλή ανάλυση, περιορισμένη παλέτα, μειωμένα εφέ φωτισμού και λιγότερο σταθερό frame rate. Οι μηχανισμοί του Doom που βασίζονται σε column rendering και texture mapping δεν μεταφράζονται εύκολα σε sprite pipelines χωρίς να χάσουν την ομαλότητα και την ακρίβεια της προοπτικής.

Παρόλα αυτά, υπάρχουν τρόποι να βελτιωθούν οι υλοποιήσεις. Βασικές τεχνικές βελτιστοποίησης που βλέπουμε σε παρόμοια projects περιλαμβάνουν: χρήση lookup tables για γρήγορους υπολογισμούς συναρτήσεων, προκαθορισμένα lightmaps, αποφυγή δαπανηρών μαθηματικών στην κρίσιμη ρουτίνα σχεδίασης, και selective rendering όπου ζωγραφίζονται μόνο τα ορατά τμήματα κάθε frame.

Επιπλέον, hardware hacks όπως η αύξηση ρολογιού του κύριου CPU ή η προσθήκη επιταχυντικών κυκλωμάτων (FPGA-based coprocessors) μπορούν να προσφέρουν πραγματική ώθηση. Σ’ αυτό το σημείο παίζουν ρόλο τα σύγχρονα «αναβαθμισμένα» kits και οι modders: το υλικό που δεν υπήρχε ή ήταν ακριβό την εποχή του ’90 είναι οικονομικά προσβάσιμο σήμερα, και αυτό αλλάζει τους περιορισμούς που κάποτε θεωρούνταν άκαμπτοι.

Ιστορικό πλαίσιο και παραδείγματα άλλων «αδύνατων» ports

Η ιστορία του Doom είναι γεμάτη παράλληλα projects που μεταφέρουν το παιχνίδι σε απίθανα περιβάλλοντα: από graphing calculators και κινητά πρώτης γενιάς μέχρι printers, oscilloscopes και έξυπνα ρολόγια. Κάθε επιτυχία έχει κοινά χαρακτηριστικά: περίσσια επινοητικότητα, εκμετάλλευση μη τεκμηριωμένων λειτουργιών της πλατφόρμας και έμφαση σε μικρές, λειτουργικές εκδοχές του παιχνιδιού αντί για πιστή αναπαραγωγή.

Παρόμοια παραδείγματα από το παρελθόν δείχνουν ότι αυτό που μοιάζει «τεχνικά αδύνατο» πολλές φορές οφείλεται σε στερεότυπα για το πώς πρέπει να υλοποιηθεί κάτι. Οι δημιουργοί homebrew κοινότητας έχουν μακρά παράδοση στο να αναστρέφουν τέτοιες απόψεις, και το Neo Geo case απλώς προσθέτει ένα εντυπωσιακό κεφάλαιο σε αυτή τη λίστα.

Τι σημαίνει για τους χρήστες

Για τον κοινό χρήστη και τον παίκτη, τα δύο projects δεν αλλάζουν άμεσα την αγορά ή τη νοοτροπία των νεότερων παιχνιδιών. Ωστόσο, έχουν αξία για όσους ενδιαφέρονται για retro development, preservation και την εκπαιδευτική πλευρά του προγραμματισμού σε περιορισμένο hardware. Δείχνουν επίσης πως οι τεχνικές παρακάμψεις μπορούν να αναδείξουν νέα δημιουργικότητα και να οδηγήσουν σε ενδιαφέρουσες, αν όχι εμπορικά βιώσιμες, εμπειρίες.

Για την κοινότητα του Neo Geo και τους συλλέκτες, αυτά τα projects αυξάνουν το ενδιαφέρον και προκαλούν νέες συζητήσεις για το τι μπορεί να επιτευχθεί χωρίς hardware τροποποιήσεις — ή με μικρές, στοχευμένες βελτιώσεις. Σε τελευταία ανάλυση, πρόκειται για μια υπενθύμιση ότι ο προγραμματισμός σε παλιές πλατφόρμες εξακολουθεί να είναι πεδίο πειραματισμού και εκπλήξεων.

Η μεγάλη εικόνα είναι ότι το όριο ανάμεσα στο «δεν γίνεται» και το «μπορεί να γίνει με παραχωρήσεις» είναι πιο λεπτό από όσο νομίζαμε. Οι δημιουργοί επέδειξαν ότι με έξυπνες τεχνικές και επίμονη εργασία μπορείς να φέρεις το πνεύμα του Doom σε πλατφόρμες που αρχικά έμοιαζαν αποκλεισμένες — και αυτό έχει αξία πέρα από οποιονδήποτε εμπορικό στόχο.

Advertisement