One retro cumputers emulator to rule them all!

ΕΙΣΑΓΩΓΗ

Είμαι από τους τυχερούς που πρόλαβαν την επανάσταση του home computing στην χώρα μας. Δεν το γράφω αυτό από συναισθηματική άποψη μόνο, αλλά και από πρακτική. Είχαμε την ευκαιρία όλοι εμείς να μάθουμε (αναγκαστικά) τι είναι και πώς λειτουργεί ένας υπολογιστής, να γράψουμε κώδικα για να πετύχουμε αυτό που θέλαμε, να hack-άρουμε και εν τέλει να αποκτήσουμε γνώσεις που η σημερινή γενιά δεν έχει την ευκαιρία να αποκτήσει το ίδιο εύκολα. Με τον όρο «εύκολα» δεν εννοώ ότι οι γνώσεις αυτές δεν είναι προσβάσιμες σήμερα, το αντίθετο μάλιστα. Εννοώ ότι το πιθανότερο είναι ότι ένας νέος χρήστης σήμερα -το πιθανότερο είναι ότι- θα παραμείνει χρήστης-καταναλωτής και όχι γνώστης. Όταν το 1986 απέκτησα το πρώτο μου home micro, έναν Amstrad CPC 6128, αυτός συνοδευόταν από ένα ογκοδέστατο manual 520 σελίδων(!!!), το οποίο όχι μόνο σου εξηγούσε το πώς θα λειτουργήσεις το σύστημα, αλλά έφτανε να είναι και ένα πλήρες εγχειρίδιο της γλώσσας προγραμματισμού BASIC, εισαγωγής στα λειτουργικά συστήματα (CP/M), αλλά και ανάλυσης προχωρημένων θεμάτων για υπολογιστές.

Διαβάζοντας και κατανοώντας αυτό το εγχειρίδιο (ήταν μεταφρασμένο στα ελληνικά), έφτανες να είσαι ισάξιος γνωστικά με αυτούς που τελείωναν τμήματα Πληροφορικής στα ΑΕΙ εκείνης της εποχής (το γράφω αυτό μετά λόγου γνώσεως). Το περίεργο (με την έννοια της αναζήτησης) παιδί Δ’ Δημοτικού εκείνης της εποχής είχε τη δυνατότητα να ανακαλυψει γνώσεις, κάτι που δεν ισχύει σήμερα που όλα είναι out-of-the-box έτοιμα.

Για να προχωρήσω στο κυρίως θέμα αυτού του άρθρου, θα πρέπει να αναφέρω ότι τις τελευταίες μέρες με έπιασε μια ιδιαίτερη νοσταλγία για την εποχή εκείνη. Τυχαία υπέπεσαν στην αντίληψη κάποια κανάλια στο youtube που ασχολούνται με retro computing, restoration κτλ., αφενός πολύ επαγγελματικά, αφετέρου φτιαγμένα με αγάπη και μεράκι (ένα μάλιστα έχει 700k+ συνδρομητές!). Τα παρακολουθώ μανιωδώς και μοιραία μπήκα στον πειρασμό να ψάξω και να βρω τον Amstrad 6128 που έχω ακόμα στο πατάρι του πατρικού μου. Οι υποχρεώσεις της καθημερινότητας τελικά με «λογίκεψαν» και κατέληξα στο να ψαχτώ με το θέμα των emulators στο αγαπημένο μου λειτουργικό, το Linux.

CPC emulators στο LINUX

Ενώ στο linux, μπορείς να βρεις εύκολα native emulators για άλλες πλατφόρμες, μέσα από τους software managers των δημοφιλών διανομών, δυστυχώς για τα CPC δεν υπήρχε τέτοια δυνατότητα. Στα windows υπάρχουν οι εξαιρετικοί winAPE και caprice32 με άπειρες δυνατότητες, τους οποίους βρίσκεις και κατεβάζεις πολύ εύκολα. Στο Linux μετά από αρκετό ψάξιμο (όχι εύκολα) μπορείς να βρεις κάποια projects τα οποία είναι παρατημένα εδώ και χρόνια, με αποτέλεσμα να πρέπει να φτύσεις αίμα με ξεχασμένες από τον Θεό βιβλιοθήκες και κονσόλα. Κατάφερα να λειτουργήσω τον CPCemu 1.7 και τον ArnoldTNG, αλλά η συνολική εμπειρία δεν έφτανε στο σημείο που θα ήθελα. Κάποιοι τύποι ασχολούνται και με τον caprice32 για Linux, αλλά το αποτέλεσμα της δουλειάς τους πάει άκλαυτο διότι έχουν ανεβασμένο το source στο github και ουδείς θεωρώ θα κάτσει να ασχοληθεί με εγκατάσταση των dependencies και το τελικό compilation του κώδικα. (Ρε φίλε την έκανες που την έκανες τη δουλειά, φτιάξε και ένα deb για τον τελικό χρήστη….)

Η επόμενη προσπάθειά στα πλαίσια της αναζήτησής μου αυτής ήταν να δω μέσω VM τι μπορώ να κάνω. Ξεκίνησα το win10 vm που έχω και εγκατέστησα τον winAPE. Φαινότα τέλειος, μέχρι που διαπίστωσα ότι υπάρχουν προβλήματα με stuttering στην κίνηση των παιχνιδιών (όχι στον ήχο) λόγω των direct-something τεχνολογιών που χρησιμοποιεί.

One emulator to rule them all!

Επανήλθα λοιπόν στο native Linux, αποφασισμένος να βρω και να δουλέψω κάποιον emulator, ώστε να γράψω αυτό το «how-to». Στις αναζητήσεις που έκανα έπεσα πάνω σε κάποιο post που προτεινε τη χρήση του MAME arcade emulator, χωρίς όμως να γράφει λεπτομέρειες. Αρχικά παραξενεύτηκα, καθώς γνώριζα ότι ο MAME είναι για τα arcades, μετά όμως θυμήθηκα ότι τα περισσότερα από αυτά τρέχουν σε Z80, τον επεξεργαστή των CPC! Οπότε με περαιτέρω ψάξιμο ανακάλυψα πώς να το καταφέρω. Μάλιστα όλες οι οδηγίες που βρήκα περιελάμβαναν βαριά χρήση κονσόλας, αλλά εδώ αποφάσισα να διαφοροποιηθώ: Πιστός στη άποψή μου ότι επιτέλους όλοι οι hardcore «λινουξάδες» πρέπει να σταματήσουν να κάνουν επίδειξη γνώσεων αν επιθυμούν κάποτε το linux να γίνει mainstream, θα γράψω αναλυτικά τις (πολύ απλές) οδηγίες για χρήση του MAME ως CPC emulator χωρίς μια γραμμή σε κονσόλα! Όλα θα γίνουν από GUI. Σημειώνω ότι με τις παρακάτω οδηγίες δεν επηρεάζεται καθόλου η λειτουργικότητα του MAME ως arcade emulator, μπορεί δηλαδή άνετα να χρησιμοποιηθεί ταυτόχρονα για τα αγαπημένα σας arcades και για CPC emulation.

CPC EMULATION μέσω MAME

Οι οδηγίες που παραθέτω υλοποιήθηκαν σε Linux Mint 19 cinnamon (Ubuntu 18.04 based) και λογικά λειτουργούν απαράλλαχτα σε όλες τις ubuntu based διανομές. Θεωρώ ότι δεν θα υπάρχει πρόβλημα εφαρμογής αυτών των οδηγιών σε κάθε διανομή που διαθέτει στον software manager της τον MAME emulator.

  1. Εγκατάσταση του ΜΑΜΕ από το software center της διανομής. Νομίζω ότι το συγκεκριμένο βήμα είναι απλό. Πάμε στον software manager, στο πεδίο της αναζήτησης γράφουμε “mame”, επιλέγουμε τον emulator και πατάμε install. Τόσο απλά.

  1. Κατεβάζουμε και αντιγράφουμε στο αντίστοιχο φάκελο τις ROMS για τα CPC μηχανήματα. Προσοχή αυτό το βήμα δεν έχει σχέση με τα παιχνίδια. Οι εν λόγω ROMS αφορούν στο emulation του μηχανήματος και όχι επιπρόσθετου λογισμικού. Τις ROMS για όλα τα CPC μηχανήματα για MAME μπορούμε να τις βρούμε εδώ. Αν δεν γνωρίζετε που είναι ο φάκελος των ROMS του MAME emulator, όπου πρέπει να αποσυμπιεστεί το αρχείο που μόλις κατεβάσατε, μπορείτε να το βρείτε μέσω από το UI του MAME.

Οπότε μόλις εντοπίσετε τους φακέλους, πάτε εκεί από το desktop της διανομής σας (ή δημιουργείτε νέο φάκελο όπου θέλετε και πατάτε save configuration πριν βγείτε από την εφαρμογή) και χύμα αποσυμπιέζετε το αρχείο με τις CPC ROMS που μόλις κατεβάσατε. Μόλις ολοκληρωθεί αυτό το βήμα, μπορούμε να μπούμε σε περιβάλλον CPC κανονικά και να κάνουμε ό,τι κάναμε και στο πρωτότυπο home micro.

Εδώ να σημειώσουμε ότι λόγω emulation του πληκτρολογίου, δεν θα λειτουργεί το πλήκτρο tab για να μπούμε στο menu του UI, αντ’ αυτού μπορούμε να χρησιμοποιήσουμε το scroll lock και αμέσως μετά το tab. Στο linux mint, επειδή το scroll lock είναι κλειδωμένο για άλλη χρήση, μπορούμε να χρησιμοποιήσουμε το πλήκτρο insert και αμέσως μετά το tab.

  1. Και από games τι γίνεται; Μπορείτε να κατεβάσετε με μια απλή αναζήτηση στο google (υπάρχουν και dedicated retro sites) οποιαδήποτε εφαρμογή ή game επιθυμείτε (αρχεία dsk) και μετά να το φορτώσετε στον emulator. Προσωπικά έχω κατεβάσει τη συλλογή GoodCPC v3.1415 που περιλαμβάνει ΟΛΟ το λογισμικό που έχει κυκλοφορήσει για CPC οπότε μπορώ να περάσω την υπόλοιπη ζωή μου ανακαλύπτοντάς το…. Χεχεχεχεχε.
  2. Πώς φορτώνουμε μια “δισκέτα” dsk; Από τον file manager της πιο πάνω εικόνας, απλά επιλέγουμε floppy1 και «δείχνουμε» στον αντίστοιχο φάκελο που υπάρχει το dsk αρχείο. Μετά οι… γνώστες ελπίζω να θυμούνται τις εντολές cat και run…

Κλείνοντας, να αναφέρω ότι ο MAME έχει τη δυνατότητα με ανάλογη διαδικασία να εξομοιώσει ΟΛΑ τα home micros της εποχής, όποιο μοντέλο τραβάει η ψυχή σας (Spectrum, Amiga, Atari ST κτλ). Για τον Amstrad CPC 6128 να αναφέρω ότι όποιο παιχνίδι δοκίμασα έτρεχε με 100% σωστό emulation (ταχύτητα, γραφικά, ήχος), ενώ οι δυνατότητες παραμετροποίησης είναι πολλές και ξεφεύγουν από τον στόχο αυτού του άρθρου.

Σε όσους επιλέξουν να ασχοληθούν, εύχομαι… καλές αναμνήσεις και καλού κακού έχετε και χαρτομάντιλα στο γραφείο σας μήπως και χρειαστούν

14 Likes

Το MAME επιτρεπει να πληκτρολογισουμε εντολες αν απλα θελουμε να δουμε το CP/M ή την Amstrad BASIC?

Ναι κανονικά. Φαίνεται και σε ένα από τα screenshots που έχω. (έχω στείλει τις photo στον @billniakas και θα τις ανεβάσει) Μπορείς να γράψεις πρόγραμμα, να το τρέξεις και να το αποθηκεύσεις.

@Talos @billniakas

Ανέβασα τις photo με link από postimage.org. Επίσης τις έχω στείλει στο email του @billniakas

Επειδή δεν ξέρω πόσο μόνιμη λύση είναι, παρακαλώ να τις ανεβάσετε εσείς στο storage του forum και σε συνέχεια να σβηστούν τα μηνύματα που αναφέρονται στο θέμα των photo.

ΥΓ. Πόσα posts πρέπει να έχω για να μπορώ να ανεβάζω εγώ;

ωραιος οδηγος.
εγω γιατι θυμαμαι οτι ο amstrad 6128 ειχε πρασινη οθονη και δεν ειχε εγχρωμα γραφικα;

Ευχαριστούμε για την δυναμική εμφάνιση και καλώς ήρθες. Ο τρόπος που εγω ανεβάζω φωτογραφίες είναι με ένα απλό copy/paste. Πατάω CtrlV και αυτό ήταν. Η βάζω τους συνδέσμους σε μια γραμμή και τις ανεβάζει μόνο του μετά την δημοσίευση

Το σύστημα έχει κάποιες προστασίες από spammers που αποτυγχάνουν σε μια δυναμική είσοδο όπως την δική σου. Για τα όρια μην ανησυχείς, ήδη έχεις ανέβει στο επίπεδο εμπιστοσύνης 1 και σε βλέπω συντομότατα στο 2. Πρέπει να κοιτάξω στις ρυθμίσεις να βρω τα ακριβή όρια, αλλά δεν υπάρχει λόγος.

Αν έχεις άλλους οδηγούς και πέσεις στο όριο εδώ είμαστε. Οι οδηγοί και η όρεξη να υπάρχουν και τα άλλα τα βρίσκουμε :smiley:

https://linux-user.gr/t/gia-ta-epipeda-empistosynhs/214

2 Likes

Ό 6128 πουλιόταν και με πράσινη και με έγχρωμη οθόνη. Η έγχρωμη κόστιζε αρκετά περισσότερα και για αυτό οι περισσότεροι είχαμε και θυμόμαστε τις πράσινες. Στον mame υπάρχει το setting για πράσινη οθόνη ή για έγχρωμη. Όταν γυρίσω σπίτι θα ανεβάσω screenshot

2 Likes

Εγώ θα πω ένα εύγε στον @linuxovios για τον τόσο λεπτομερέστατο οδηγό καθώς και για τις αναμνήσεις που μας ξέθαψε.

Εγώ ήρθα σε επαφή το 1990 με τον CPC που τον είχανε κάτι ξαδέρφια μου και ακόμα θυμάμαι αυτό το ρημάδι το cat αλλά και το πόσο εντύπωση μας έκανε το γεγονός ότι τότε παίζαμε βίντεο παιχνίδια στο σπίτι και δε χρειάζονταν να τρέχουμε στα φλιπεράκια (ουφάδικα για τους κακοπροαίρετους).

1 Like

:slight_smile:

3 Likes

εγώ τις πράσινες οθόνες τις θυμάμαι πολύ πιο χάλια. Χρειάζεται περισσότερη δουλειά η εξομοίωση.

1 Like

Θες να βλέπεις και το flickering εσύ; :-:stuck_out_tongue:

Αυτή πώς σου φαίνεται; Έχει με software emulation τα sliders με τις ρυθμίσεις της οθόνης

1 Like

Οι πράσινες οθόνες ήταν πολύ ξεκούραστες και δεν κούραζαν. Η ίσως πάλι τα μάτια μας να ήταν νέα. Η ίσως να είναι μια εφαρμογή του Decoy Effect. Κρίνεις τι είναι καλό ανάλογα με το το έχεις δει. Τόσο μικρές οθόνες, τόσο αργό που το βλέπεις σήμερα. Με αρκετό κόπο έστησα πριν λίγες μέρες ένα NextStep σε ένα VM. Ω πόσο αργό και απλό ήταν.

Εδώ ναι, δεν αρκεί να αποδόσεις τα Pixels, θέλει να κάνεις post processing το αποτέλεσμα για να πάρεις την πραγματική εμπειρία, που δεν ήταν τόσο άσχημη όσο δείχνει σήμερα.

μπραβο @linuxovios. Η πρωτη πρασινη ειναι οπως θα επρεπε να ειναι καπως. Η δευτερη πιο κοντα στην πραγματικοτητα. Και οι δυο πολυ καλες :+1:

ναι μα την αληθεια

Από το μενού του emulator παρέχονται όλες οι ρυθμίσεις για να την φτιάξεις όπως ακριβώς την θυμάσαι. Παίζεις με το brightness και το gamma και την φτιάχνεις όπως θες.

Οι πράσινες λάμπες των home micros ήταν άθλιες. Αν δουλεύατε σήμερα σε τέτοια οθόνη θα σας έπιανε πονοκέφαλος, καθώς ο ρυθμός ανανέωσης ήταν 50Hz και υπήρχε σχεδόν παρατηρήσιμο flickering. Απλά ήμασταν πολύ μικροί για να νιώσουμε. Άσε που οι γονείς φώναζαν όλη την ώρα “όχι κοντά στην οθόνη παιδί μου!!!”

Οι μεταγενέστερες “μονόχρωμες” των pc ήταν όντως αρκετά ξεκούραστες.

2 Likes

θα το αφήσω εδώ :stuck_out_tongue:

5 Likes

Τι ωραίο! Το πήρες έτοιμο από κάπου ή το εφτιαξες μόνος σου με τα parts?

Η θήκη λέγεται Retroflag GPi και είναι στην ουσία μια αντιγραφή του Nintendo Gameboy (αν και είναι λίγο μικρότερο σε μέγεθος). Στο χώρο της δισκέτας πίσω μπαίνει ένα Raspberry Pi 0 W. Έχουν βγει διάφορες images για να τρέξεις, διάφορες παραλλαγές τις RetroPie και άλλες τις Lakka.