Πέμπτη 21 Οκτωβρίου 2021

Balik: the raw power of Sinclair BASIC

"Είναι να γελάει κανείς", που θα έλεγε και ο μακαρίτης ο Φίλιππας ο Συρίγος. Γιατί; Διότι κάποια τυπάκια από την Τσεχία και την Σλοβακία - θυμηθείτε ότι "στα χρόνια μας" επρόκειτο για κοινή χώρα που ονομαζόταν Τσεχοσλοβακία - θεώρησαν λογικό και εφικτό να φτιάξουν ένα demo χρησιμοποιώντας την... Sinclair BASIC! Κανονικά, στο σημείο αυτό θα έπρεπε να είχα βάλει παραπάνω από ένα θαυμαστικά και να είχα σταματήσει με ατάκες του τύπου "δεν μεταδίδω άλλο", αλλά επειδή γνωρίζω ότι ίσως να μην καταλαβαίνετε άπαντες ποιο ακριβώς είναι το όλο θέμα και γιατί το θεωρώ κάτι που έχει κάποιο ιδιαίτερο ενδιαφέρον, θα σας κάνω ένα (πολύ) σύντομο μαθηματάκι ιστορίας...

Την εποχή λοιπόν που έκανε την εμφάνισή του ο ZX Spectrum της Sinclair, το 1982, ακριβώς στη μέση της περιόδου της κυριαρχίας των 8bit υπολογιστών, ο κανόνας ήταν κάθε μηχάνημα που κυκλοφορούσε να είναι εξοπλισμένο και με μία διάλεκτο της γλώσσας BASIC (υπήρξαν και κάποιες ελάχιστες εξαιρέσεις, αλλά δεν είναι του παρόντος). Η δημοφιλέστερη διάλεκτος της BASIC που υπήρχε εκείνη την εποχή ήταν η Microsoft BASIC, πράγμα που σήμαινε ότι όποιος κατασκευαστής επιθυμούσε να εξοπλίσει τον υπολογιστή του με τη γλώσσα αυτή θα έπρεπε να πληρώσει κάποιο ποσό στην εταιρία του Bill Gates και του Paul Allen. Οι περισσότεροι κατασκευαστές το έκαναν, αλλά ο Clive Sinclair, επιθυμώντας οι home computers του να έχουν όσο το δυνατόν χαμηλότερη τιμή ώστε να είναι προσιτοί στον καθένα, απέρριψε την ιδέα από την αρχή: παρά να επιβαρύνει τον καταναλωτή με το κόστος της άδειας χρήσης της Microsoft BASIC, ανέθεσε στην εταιρία Nine Tiles τη δημιουργία της Sinclair BASIC, τα δικαιώματα της οποίας θα ανήκαν αποκλειστικά και μόνο στην Sinclair Research. Οι άνθρωποι της Nine Tiles - αρχικά ο John Grant και στη συνέχεια ο Steve Vickers - έφεραν εις πέρας το έργο, ξεκινώντας με την πρώτη έκδοση της Sinclair BASIC με την οποία εφοδιάστηκε ο ZX80 (4ΚΒ σε μέγεθος), συνεχίζοντας με την βελτιωμένη έκδοση του ZX81 (8KB) την οποία και εξέλιξαν σε μία γλώσσα που πλέον υποστήριζε γραφικά υψηλής ανάλυσης, χρώματα και ήχο, τις νέες δυνατότητες δηλαδή που διέθετε ο ZX Spectrum. Αυτή η τελευταία έκδοση της Sinclair BASIC από την Nine Tiles ήταν διπλάσια σε μέγεθος (16ΚΒ) και, παρόλο που σε κάποιες εντολές ξέφευγε λίγο από τα standards χρησιμοποιώντας ιδιαίτερο συντακτικό και ονοματολογία, αποτέλεσε ένα σημαντικό επίτευγμα, καθώς ήταν μία διάλεκτος που μπορούσε κουτσά-στραβα να ανταποκριθεί στα πάντα. Το κοινό την λάτρεψε και ήταν αμέτρητα τα προγράμματα σε Sinclair BASIC που δημοσιεύτηκαν στα περιοδικά της εποχής και αναρίθμητοι οι χρήστες που ξημεροβραδιάζονταν καθημερινά ππροσπαθώντας να την χρησιμοποιήσουν ως όχημα για τον μετασχηματισμό των ιδεών τους σε λειτουργικά προγράμματα. Πέρα από την (αρκετά ενοχλητική) έλλειψη εντολών δομημένου προγραμματισμού, η Sinclair BASIC είχε ένα σημαντικότατο ελάττωμα: ήταν αργή. Για την ακρίβεια ήταν από τις πλεόν αργές διαλέκτους BASIC όπως μπορείτε να διαπιστώσετε και από αυτή τη σειρά αναρτήσεων.

Όμως, ας μην κοροϊδευόμαστε: ακόμα και μια ταχύτατη υλοποίηση της BASIC, όπως π.χ. αυτές των BBC micro και Amstrad CPC, δεν είναι η κατάλληλη γλώσσα για τον προγραμματισμό demos. Εκεί χρειάζεται άμεση επικοινωνία με τα ίδια τα chips και πλήρης εκμετάλλευση του κάθε κύκλου ρολογιού του επεξεργαστή. Εκεί, οι γλώσσες υψηλού επιπέδου δίνουν με συνοπτικές διαδικασίες τη θέση τους στην assembly. Demos σε BASIC δεν γίνεται να φτιαχτούν, τουλάχιστον όχι τέτοια που να δίνουν παρόμοια αποτελέσματα με αυτά που είναι γραμμένα σε assembly. Εκτός...

Εκτός κι αν έχουμε να κάνουμε με τους θεότρελους (πρώην) Τσεχοσλοβάκους του group Gemba Boys οι οποίοι με το Balik αποφάσισαν να με διαψεύσουν στο έπακρο για όσα έγραψα στην προηγούμενη παράγραφο!

Πραγματικά, το Balik σου δίνει την εντύπωση ότι είναι γραμμένο εξ' ολοκλήρου σε assembly διότι απλά, αυτά που κάνει δεν γίνονται σε BASIC! Και όχι μονάχα δεν γίνονται, αλλά, ακόμα και αν γινόντουσαν θα απαιτούσαν... μέρες μέχρι να ολοκληρωθούν! Έτσι και εγώ λοιπόν, από τη μία περίεργος και από την άλλη λιγάκι δύσπιστος, προσπάθησα να αποκτήσω πρόσβαση στον κώδικα (listing το λέγαμε στα χρόνια μου) του Balik. Και, σχετικά εύκολα τα κατάφερα. Ιδού ένα δείγμα:

Βλέπετε πως πρόκειται για ατόφια Sinclair BASIC. Πλην όμως, για παρατηρείστε λίγο πιο προσεκτικά: θα διαπιστώσετε ότι οι εντολές PEEK και POKE αποτελούν την συντριπτική πλειονότητα, ενώ και οι IN και OUT δεν πάνε πίσω. Επί της ουσίας λοιπόν έχουμε μεν ένα πρόγραμμα γραμμένο σε BASIC, το οποίο όμως δεν χρησιμοποιεί την πλειοψηφία των εντολών υψηλού επιπέδου αλλά αντί γι' αυτό διαβάζει και αποθηκεύει συνεχώς bytes σε συγκεκριμένες διευθύνσεις της μνήμης ή ports του επεξεργαστή. Αν έχετε ασχοληθεί με την "περίφημη" Commodore BASIC 2.0 θα γνωρίζετε ότι εκεί τα PEEK & POKE πάνε σύννεφο, ελλείψει άλλων εντολών. Στην περίπτωση του Balik όμως οι PEEK, POKE, IN και OUT χρησιμοποιούνται κατά κόρον προκειμένου υπορουτίνες σε γλώσσα μηχανής να κάνουν ό,τι θα έκαναν πολύ πιο αργά οι αντίστοιχες εντολές της BASIC. Οπότε, ναι μεν το Balik είναι γραμμένο σε Sinclair BASIC, αλλά μονάχα... τυπικά!

Όπως και να 'χει, το Balik είναι μία εντυπωσιακότατη παραγωγή, η οποία μπορεί να μην παρουσιάζει  ακριβώς την ωμή δύναμη της Sinclair BASIC όπως διατυμπανίζουν οι Gemba Boys, αλλά σίγουρα δείχνει πώς το πάντρεμα εντολών μιας γλώσσας υψηλού επιπέδου με υπορουτίνες γλώσσας μηχανής μπορεί να κάνει τα αδύνατα να γίνουν δυνατά. Κατεβάστε το Balik από εδώ ή δείτε το απλά να τρέχει στο παρακάτω video...

Α, και να μην το ξεχάσω: δεν άλλαξε η θεματολογία του blog σε "μόνο για Spectrum", έτσι; Ειλικρινά, είναι εντελώς συμπτωματικό το γεγονός ότι από τον θάνατο του "θείου" μέχρι και σήμερα όλα τα θέματα των αναρτήσεων έχουν να κάνουν με τον "γομολάστιχα". Λογικά, σύντομα θα αναφερθώ και σε κάτι άλλο. Απλά έτυχε, τίποτα περισσότερο...

Πέμπτη 14 Οκτωβρίου 2021

Void demo για ZX Spectrum 128K

Το Void είναι ένα σχετικά νέο (2020) και πολύ ενδιαφέρον demo για τον ZX Spectrum 128K από το τσέχικο demogroup Invaders. Το πρώτο από τα χαρακτηριστικά του που το κάνουν να ξεχωρίζει είναι η διάρκειά του, που ξεπερνάει τα 11 λεπτά μαζί με τα (κινηματογραφικού τύπου) credits και greetings. Καθώς η πλειοψηφία των demos για τον 128άρη Spectrum φορτώνονται μονομιάς - καθώς θεωρητικά το μέσο που χρησιμοποιείται είναι η κασέτα - είναι αρκετά σπάνιες οι παραγωγές που ξεπερνούν σε διάρκεια τα 10 λεπτά, αφού δεν υφίσταται η ευκολία του multipart όπως συμβαίνει π.χ. σε Amstrad CPC 6128 και Commodore 64. Αυτό δεν είναι απόλυτο βέβαια, καθώς κάποια demos τα βρίσκουμε σε .TRD image files των 768ΚΒ, οπότε εκεί, αναμενόμενα, τα πράγματα αλλάζουν ριζικά.

Ας επανέλθουμε όμως στο Void. Η παραγωγή των Invaders έχει επηρεαστεί σε μεγάλο βαθμό από κλασικές ταινίες επιστημονικής φαντασίας του σινεμά με πρώτη και καλύτερη την σειρά των φιλμ Alien. Έτσι, στη μεγαλύτερη διάρκεια του Void παρακολουθούμε cinematics που έχουν δημιουργηθεί με μία ενδιαφέρουσα και αξιόλογη engine η οποία παράγει εντυπωσιακά αποτελέσματα, χρησιμοποιώντας αρκετά απλές (στην σύλληψη, όχι στην πραγματοποίηση) τεχνικές. Για παράδειγμα, για την αποφυγή του color clash έχει επιλεγεί διχρωμία και dithering, ενώ για την δημιουργία κίνησης και προοπτικής χρησιμοποιείται κατά κόρον scaling των αντικειμένων επί της οθόνης και αλλαγή των σχετικών τους θέσεων. Οι δημιουργοί του Void αναφέρουν στα credits του demo ότι η engine τους επηρεάστηκε από αυτήν που είχε χρησιμοποιηθεί back in the day για τα Academy και Tau Ceti.

Φυσικά, ανάμεσα στα πολλά cinematics εμφανίζονται και μερικές (εντυπωσιακές) στατικές εικόνες αλλά και διάφορα ενδιαφέροντα εφέ: είπαμε, demo είναι, όχι ταινία!

Προσωπικά εντυπωσιάστηκα από την συνολικά πολύ καλή δουλειά που έχει γίνει στο Void και το μόνο στοιχείο που μου προκάλεσε αλγεινές εντυπώσεις ήταν η μουσική του, στην μεγαλύτερη διάρκεια της οποίας οι καλές ιδέες δεν συνοδεύονται από αντίστοιχη υλοποίηση.

Να μην παραλείψω ότι τα credits του Void, πέρα από το ότι είναι καλοφτιαγμένα έχουν και αρκετό ενδιαφέρον: θα αναφέρω για παράδειγμα ότι στην ενότητα "special thanks" αναφέρονται οι sir Clive Sinclair, Ridley Scott, James Cameron, N.A.S.A. (!) και ο... Roger Waters (!). Αν συμπεριλάμβαναν και τον Marcus Berg θα πλησίαζαν το τέλειο!

Μπορείτε να απολαύσετε το Void στο βιντεάκι που ακολουθεί ή να το κατεβάσετε από εδώ αν επιθυμείτε να το τρέξετε σε πραγματικό Spectrum. Όπως και να 'χει θα σας κάνει καλή συντροφιά σε αυτή τη βροχερή μέρα...

Τετάρτη 13 Οκτωβρίου 2021

Forever demo για ZX Spectrum

Πρόκειται περί νεκρανάστασης; Πώς αλλιώς να χαρακτηρίσει κανείς την διαδικασία ξεθαψίματος, καλοπισμού, ρετουσαρίσματος, αλλαγής της σειράς των σκηνών και επανακυκλοφορίας ενός από τα καλύτερα demos στην ιστορία του ZX Spectrum; Well, του 128άρη, για να είμαστε ακριβείς...

Είναι αστείο από τη μία αλλά και τραγικό από την άλλη το γεγονός πως όταν πρωτοπαρουσιάστηκε το Forever των Digital Reality, το μακρινό 1998, δεν κατέλαβε καν την πρώτη θέση στο διαγωνιστικό τμήμα του demoparty Funtop. Κάτι σαν την ιστορία με τον καλύτερο μπασκετμπολίστα όλων των εποχών, τον μοναδικό Michael Jordan, ο οποίος είχε κοπεί από την ομάδα μπάσκετ του high school του επειδή δεν ήταν αρκετά καλός ένα πράγμα!

Το γεγονός της επανακυκλοφορίας του Forever το 2020 προσωπικά με βόλεψε - δεν θα σας πω ψέματα - καθώς σε άλλη περίπτωση πιθανότατα να μην είχα δει ποτέ το αριστουργηματικό αυτό demo των Digital Reality. Το οποίο είναι ένα συνοθύλευμα από εφέ, μηνύματα και σκηνές που διαδέχονται η μία την άλλη με μεγάλη ταχύτητα υπό τους ήχους εξαιρετικής techno μουσικής από το AY (είπαμε, του 1998 είναι το Forever) προσφέροντας στον ανυποψίαστο θεατή μια σειρά από μακάβριες σεκάνς που ολοκληρώνονται τελικά με μία εικόνα ελπίδας και γαλήνης.

Δεν ξέρω αν θα σας αγγίξει θεματολογικά το Forever, εάν πάντως το κάνει θα βιώσετε με τον ιδανικό τρόπο την εμπειρία της παρακολούθησης μίας παραγωγής - έστω και 23 ετών - που πραγματικά απογειώνει τον Spectrum. Απολαύστε υπεύθυνα.

Σάββατο 9 Οκτωβρίου 2021

Review: Sam Mallard για ZX Spectrum

 Sam Mallard - The Case Of The Missing Swan (ZX Spectrum) - Ersh


Το Sam Mallard - The Case Of The Missing Swan εμφανίστηκε στα τέλη του Αυγούστου που μας πέρασε (ναι, σωστά, κι αυτό του 2016) και πραγματικά αποτέλεσε ένα δροσιστικό και ευχάριστο διάλειμμα - έστω και μικρής διάρκειας - από το κολαστήριο που ονομάζεται "καλοκαιρινή Αθήνα". Θα διαβάσετε κάποια πράγματα γι' αυτό και στη στήλη Adventureland News του τρέχοντος τεύχους, καθώς, αν δεν το καταλάβατε μέχρι τώρα, το Sam Mallard (δεν ξαναγράφω ολόκληρο τον τίτλο-σιδηρόδρομο!) είναι ένα καθαρόαιμο adventure game.

Το Sam Mallard έχει πολλά (μα πολλά!) καλά, ενδιαφέροντα ή και εξαιρετικά χαρακτηριστικά και μόνο ένα κακό. Για να τα δούμε αναλυτικότερα, όμως…

Το παιχνίδι είναι δωρεάν, τρέχει σε οποιοδήποτε μοντέλο Spectrum που διαθέτει από 48ΚΒ μνήμης και πάνω, φορτώνεται εξ' ολοκλήρου μονομιάς και διαθέτει τον ευκολότερο δυνατό χειρισμό, ήτοι πάνω, κάτω και επιλογή. Μάλιστα μπορεί να παιχτεί και με Kempston joystick, γεγονός που ίσως και να αποτελεί πρωτιά στα adventure games του Spectrum!

Το σενάριο του παιχνιδιού είναι αστυνομικής φύσεως (αναλαμβάνετε ως ιδιωτικός ντετέκτιβ να εξιχνιάσετε μία υπόθεση εξαφάνισης), οι πρωταγωνιστές του είναι κυρίως… κύκνοι (!) και διαχέεται από μία ατμόσφαιρα που φέρνει στο μυαλό φιλμ νουάρ. Τα απλά, καλοσχεδιασμένα και λειτουργικότατα γραφικά του σας βάζουν για τα καλά στο κλίμα του σεναρίου και η - σχετικά απλοϊκή μεν, ενδιαφέρουσα δε - πλοκή του κρατάει το ενδιαφέρον αμείωτο μέχρι και την ολοκλήρωση της περιπέτειας. Και αυτό είναι και το μόνο πραγματικό ελάττωμα του Sam Mallard, η διάρκειά του: το παιχνίδι είναι σχετικά μικρό και, σε συνδυασμό με τον ιδανικό τρόπο χειρισμού του που περιορίζει αρκετά το ψάξιμο και τους πειραματισμούς σε σχέση με άλλα adventure games που είχαμε συνηθίσει μέχρι τώρα, γίνεται ακόμα μικρότερο! Μόνο ένας συγκεκριμένος γρίφος μπορεί να σας παιδέψει αρκετά αλλά, αν τον λύσετε, είναι σχεδόν βέβαιο ότι σε λιγότερη από μία ώρα θα ολοκληρώσετε και το παιχνίδι!

Όσο κι αν η μικρή διάρκεια του Sam Mallard κάπου προβληματίζει, δε νομίζω πως θα μπορούσε κανένας να μιλήσει για "χαμένη ευκαιρία": ίσα-ίσα που αν δούμε το ποτήρι μισογεμάτο έχουμε ένα ενδιαφέρον και ιδιαίτερα playable (mini) adventure game βασιζόμενο σε μία game engine που, με λίγη όρεξη και προσπάθεια, θα μπορούσε να μας χαρίσει αριστουργήματα. Μακάρι ο Ersh αυτή τη στιγμή να βρίσκεται κάπου εκεί έξω ετοιμάζοντας την επόμενη περιπέτεια του Sam Mallard…

Βαθμολογία: 8/10

Το παραπάνω review δημοσιεύθηκε στο 14ο τεύχος του περιοδικού Retro Planet, που κυκλοφόρησε τον Δεκέμβριο του 2016.

Παρασκευή 8 Οκτωβρίου 2021

2600 για Commodore 64

Όχι, δεν το κλείσαμε το μαγαζί! Δεν είναι να πάρεις μια ντουζίνα μέρες άδεια από τη σημαία και κατευθείαν εμφανίζονται οι καλοθελητές: "δεν θα ξαναποστάρεις στο blog;". "Πάει το blog, ε; Τουλάχιστον μην το κατεβάσεις, έχει πολύ καλό πράγμα αν θέλει κανείς να ψάξει". WTF? Κουνηθείτε από τη θέση σας, μωρέ!

Και να πει κανείς ότι είχα να το ανανεώσω κανένα δίμηνο να το καταλάβω, αλλά αυτή τη φορά δεν ήταν ούτε δύο εβδομάδες συμπληρωμένες. Τι είναι, το CNN, που αν δεν ανανεωθεί επί 20 ώρες βάζεις το χέρι σου στη φωτιά ότι κάτι σοβαρό συνέβη; Βέβαια και στη δική μου περίπτωση συνέβη κάτι: ήμουν υπέρ του δέοντος παραγωγικός τις τελευταίες μέρες, απλά δεν έγραφα για το blog, αλλά για το Retro Planet. Διότι, μιας και ανέλαβα το κύριο θέμα του επόμενου τεύχους και ήταν και απαιτητικό το άτιμο (ZX Spectrum Next) δεν υπήρχε hobby time για κάτι άλλο. Ευτυχώς το κομμάτι ολοκληρώθηκε πλέον, με συνέπεια να μπορώ πια απερίσπαστος να αφιερωθώ στην... διαδικτυακή συγγραφή!

Έπεσε που λέτε μία από τις τελευταίες μέρες το μάτι μου σε ένα demo - slideshow καλύτερα, για να είμαι ακριβής - από το ιστορικό group Fairlight για τον Commodore 64. Το slideshow αυτό τιτλοφορείται "2600", κυκλοφόρησε περίπου πριν από ένα χρόνο και αποτελεί έναν σύντομο φόρο τιμής στο Atari 2600 (ναι, μπράβο, το μαντέψατε). Όπως και σε κάθε slideshow αυτό που παίζει τον σημαντικότερο ρόλο είναι φυσικά η ποιότητα των γραφικών των στατικών εικόνων που εναλάσσονται μπροστά στα μάτια του θεατή. Στην περίπτωση του 2600 η θεματολογία αντλείται από κλασικούς τίτλους της πλατφόρμας και, κυρίως, από το artwork των συσκευασιών αυτών. Την μεταφορά των σχεδίων αυτών έχει αναλάβει να κάνει στον Commodore 64 ο εκ Σουηδίας ορμώμενος The Sarge και το αποτέλεσμα είναι, με μία και μόνο λέξη, εντυπωσιακό. Φυσικά ο The Sarge ούτε νέος στον χώρο είναι ούτε άγνωστο είναι το ταλέντο του ή η ποιότητα της δουλειάς του, αλλά, τι να πω; Κάθε τόσο και λιγάκι ο άνθρωπος φτιάχνει ψηφιακά έργα τέχνης που σε εντυπωσιάζουν σα να ήταν η πρώτη φορά.

Επειδή όμως μια εικόνα αντιστοιχεί σε χίλιες λέξεις και εδώ προσπαθώ μάταια να περιγράψω εικόνες χρησιμοποιώντας λέξεις, καλύτερα να αφήσω την δουλειά του The Sarge να μιλήσει μόνη της. Α, και περιττό να αναφέρω ότι αν τρέξετε το "2600" σε πραγματικό Commodore 64 με οθόνη καθοδικού σωλήνα (ναι, έτσι, μερακλήδικα) το αποτέλεσμα θα είναι ακόμα πιο εντυπωσιακό. 2600 λοιπόν...