Παρουσιάζουμε τον in-page emulator στις σελίδες Wiki!

Ακολουθώντας τη προτάση του @Jonathan, πέρασα τις τελευταίες ώρες υλοποιώντας το RVMPlayer και για τις σελίδες του wiki!

Όταν μια σελίδα περιέχει μια εικόνα dsk (όπως η XMas-tro 2009 - CPCWiki ), θα βλέπετε ένα κουμπί «Play» δίπλα στην εικόνα dsk. Αυτό θα ανοίγει ένα παράθυρο (modal) με τον εξομοιωτή, εκτελώντας αυτόματα την εντολή CAT.

Προσπάθησα να το υλοποιήσω απευθείας πάνω στη σελίδα, αλλά δημιουργήθηκαν κάποια προβλήματα που δεν μπόρεσα να διορθώσω (τουλάχιστον όχι γρήγορα), όμως πιστεύω ότι κι αυτή η υλοποίηση είναι μια χαρά!

Δοκιμάστε το και πείτε μου τη γνώμη σας!

Aυτό είναι τέλειο. Ίσως ακολουθήσουν το παράδειγμα και άλλοι ιστότοποι (π.χ. https://www.cpc-power.com).

Ευχαριστώ για την υλοποίηση.

Μόνο κάτι που παρατήρησα.

Πρώτα πρέπει να εξηγήσω μια συνέπεια της ενεργοποίησης της λειτουργίας «αντίστασης στην αποτύπωση ψηφιακού αιχνογραφήματος» (resist fingerprinting) από έναν περιηγητή (τουλάχιστον στον Firefox). Όταν είναι ενεργοποιημένη, τα API της Javascript δεν αποκαλύπτουν τη τοπική διάταξη πληκτρολογίου στον κώδικα Javascript. Εάν ο κώδικας Javascript ζητήσει πληροφορίες σχετικά με τη διάταξη πληκτρολογίου, παίρνει την ίδια απάντηση (ίσως μια κοινή αμερικανική διάταξη US) ανεξάρτητα από την πραγματική διάταξη. Καταλαβαίνεις πού το πάω τώρα, έτσι;

Τώρα το ζήτημα.

Ένας εξομοιωτής Amstrad CPC σε περιηγητή είναι κώδικας Javascript που συνήθως κάνει παραδοχές σχετικά με τη φυσική διάταξη του πληκτρολογίου.

Ένα αποτέλεσμα είναι ότι με γαλλική διάταξη και ένα προφίλ περιηγητή που έχει ενεργοποιημένη την «αντίσταση στην αποτύπωση ψηφιακού αιχνογραφήματος», επισκεπτόμενος το παράδειγμά σου XMas-tro 2009 - CPCWiki, η διάταξη του πληκτρολογίου είναι τόσο χαλασμένη που δεν μπορώ καν να πληκτρολογήσω μέσα στον εξομοιωτή εισαγωγικά ".

Παραδόξως, όλα τα γράμματα είναι εντάξει. Αλλά πατώντας τα αριθμητικά πλήκτρα 1 έως 9 και μετά το 0 (τα οποία σε ένα γαλλικό πληκτρολόγιο παράγουν τα σύμβολα &é"'(-è_çà) εδώ παράγουν 7;;9--. Ορισμένα πλήκτρα δεν κάνουν τίποτα, ενώ αυτά που παράγουν κάτι (με τη σειρά) είναι τα 134568. Μπερδεμένο; Ναι, κι εγώ το ίδιο έπαθα.

Είναι ένα από τα επίπεδα του μπάχαλου που είναι λιγότερο προβληματικό όταν δημιουργούνται παραγωγές (prods) που μπορούν να λειτουργήσουν πλήρως χρησιμοποιώντας μόνο τα πλήκτρα που είναι ίδια σε QWERTY, AZERTY και QWERTZ, δες Why make such great games if most people can't play them properly? - #2 by cpcitor

Οπότε το έψαξα λίγο. Από όσο μπορώ να καταλάβω, δεν υπάρχει λύση, παρά μόνο παρακάμψεις - όπως το να τρέχεις ένα προφίλ με το RFP απενεργοποιημένο. Ή να αλλάξεις τη γλώσσα του πληκτρολογίου.

Επειδή η μηχανή του RVMPlayer δεν παρέχει API για την επιλογή περιφερειακής διάταξης πληκτρολογίου ή την αναχαρτογράφηση μεμονωμένων πλήκτρων, δεν υπάρχει κώδικας που μπορούμε να προσθέσουμε στον κώδικα του wiki που να παρακάμπτει τη σκόπιμη παραποίηση (spoofing) του περιηγητή. Και, από όσα διαβάζω, οι χρήστες του FF πρέπει να αποδεχτούν την αυξημένη ιδιωτικότητα ως αντάλλαγμα για την απώλεια λειτουργικότητας.

Όσον αφορά τα σύμβολα και τους αριθμούς - δεν έχω ιδέα γιατί το κάνει αυτό ο FF :smiley: Η επάνω σειρά παράγει عادة σύμβολα και οι αριθμοί εμφανίζονται με το shift, και φαίνεται ότι ο FF με ενεργοποιημένο το FRP αναφέρει τα φυσικά πλήκτρα που πατιούνται σαν να είναι σε αμερικανική διάταξη (US layout), αλλά αναμεμειγμένα με γαλλικές τιμές πλήκτρων;

Λυπάμαι που δεν μπορώ να βοηθήσω…

Είναι δυνατόν να εμφανίζεται και ο εξομοιωτής με τα CPR; :slight_smile:

Μόνο αν και εφόσον το υποστηρίξει ο RVM Player, φοβάμαι!

Υπάρχει μια επιλογή που εξετάζουν ορισμένοι εξομοιωτές: μην προσπαθείτε να είστε έξυπνοι με τη φυσική διάταξη του πληκτρολογίου του υπολογιστή σας, απλώς αποφύγετε να κάνετε οποιαδήποτε παραδοχή γι’ αυτήν.

Με άλλα λόγια, αποδεχτείτε όταν ένα API παρέχει ένα σύμβολο και όχι μια θέση στο πληκτρολόγιο.

Σε αυτή την περίπτωση, όταν τα Javascript APIs λέγουν «ο χρήστης πάτησε το <όπως-και-να 'ναι>», μην προσπαθείτε να μαντέψετε ότι «υποθέτοντας έναν υπολογιστή με ένα κανονικό πληκτρολόγιο PC105 με γαλλική διάταξη Azerty, αυτό το σύμβολο πρέπει να είναι αυτό που προκύπτει όταν ο χρήστης πατάει το πλήκτρο στη γραμμή x και στήλη y, το οποίο θα αντιστοιχίσω στο φυσικό πλήκτρο του CPC στη γραμμή x’ και στήλη y’».

Αντίθετα, αποδεχτείτε ότι π.χ. ο χρήστης πάτησε «ένα πλήκτρο που παράγει ένα σύμβολο εισαγωγικών». Να έχετε έναν χάρτη αντιστοίχισης από το σύμβολο στα πλήκτρα του CPC, ανεξάρτητα από το φυσικό πληκτρολόγιο του υπολογιστή. Αυτό μπορεί να απαιτεί μια αλληλουχία στην εξομοιούμενη μηχανή, όπως «πατήστε shift, πατήστε 2, αφήστε το 2, αφήστε το shift».

Το Arnoldemu επιτρέπει σίγουρα μια παρόμοια λογική και την αποκαλεί «μεταφρασμένη» (translated), σε αντίθεση με τη «θεσιακή» (positional).
Εγώ θα την αποκαλούσα «βασισμένη σε σύμβολα» (symbol-based).

Νομίζω ότι και το caprice32 το επιτρέπει επίσης.

Ένα πλεονέκτημα είναι ότι μπορείτε να πληκτρολογείτε στον CPC με το πληκτρολόγιο του PC σας όπως ακριβώς σε οποιοδήποτε άλλο πρόγραμμα. Εξαιρετικό για προγραμματισμό ή επεξεργασία οποιουδήποτε κειμένου. Και για να πληκτρολογήσετε το run"disc.

Επιστρέφοντας στην τρέχουσα κατάσταση: εξαρτάται από το αν ο εξομοιωτής υποστηρίζει μια τέτοια ανεξάρτητη από το φυσικό πληκτρολόγιο λογική. Την οποία υποθέτω ότι το RVM δεν υποστηρίζει;

Έπεσες διάνα :smiley:

Δεν εμφανίζει καμία επιλογή από όσο μπορώ να δω…