Presentiamo l'emulatore in-page nelle pagine Wiki!

Seguendo il suggerimento di @Jonathan, ho passato le ultime ore a implementare RVMPlayer anche per le pagine del wiki!

Quando una pagina contiene un’immagine dsk (come XMas-tro 2009 - CPCWiki) vedrai un pulsante «Gioca» accanto all’immagine dsk. Questo farà apparire una finestra modale con l’emulatore, che eseguirà automaticamente il comando CAT.

Ho provato a implementarlo direttamente nella pagina, ma creava alcuni problemi che non sono riuscito a risolvere (almeno non rapidamente), ma penso che anche questa soluzione sia valida!

Provalo e fammi sapere cosa ne pensi!

Questo è perfetto. Magari altri siti web seguiranno l’esempio (ad es. https://www.cpc-power.com).

Grazie per averlo implementato.

Giusto una cosa che ho notato.

Per prima cosa devo spiegarti una conseguenza del fatto che un browser (almeno Firefox) implementi il “resist fingerprinting”. Quando è abilitato, le API Javascript non rivelano il layout di tastiera locale al codice Javascript. Se il codice Javascript richiede informazioni sul layout della tastiera, ottiene la stessa risposta (magari un comune layout US) a prescindere dal layout effettivo. Immagini già dove voglio arrivare, vero?

Ed ecco il problema.

Un emulatore di Amstrad CPC nel browser è codice Javascript che di solito fa supposizioni sul layout fisico della tastiera.

Di conseguenza, con un layout francese e un profilo browser con la funzione “resist fingerprinting” attiva, quando si visita il tuo esempio XMas-tro 2009 - CPCWiki, il layout della tastiera è così sballato che nell’emulatore non riesco nemmeno a digitare le virgolette ".

Stranamente, tutte le lettere funzionano. Ma premendo i tasti da 1 a 9 e poi 0 (che su una tastiera francese producono i simboli &é"'(-è_çà), qui si ottiene 7;;9--. Alcuni tasti non fanno nulla, quelli che producono qualcosa (in ordine) sono 134568. Confuso? Sì, anch’io.

È uno dei vari livelli di casino che risulta meno problematico quando si creano produzioni che funzionano del tutto usando solo i tasti uguali in QWERTY AZERTY QWERTZ, vedi Why make such great games if most people can't play them properly? - #2 by cpcitor

Quindi ci ho dato un’occhiata. Per quanto ne so, non esiste una vera soluzione, solo dei workaround - come usare un profilo con RFP disabilitato. Oppure cambiare il layout della tastiera.

Dato che il motore di RVMPlayer non offre alcuna API per selezionare un layout di tastiera regionale o rimappare i singoli tasti, non c’è alcun codice che possiamo aggiungere a quello della wiki per aggirare lo spoofing intenzionale del browser. E, da quello che sto leggendo, gli utenti di FF devono semplicemente accettare questa maggiore privacy in cambio di una perdita di funzionalità.

Per quanto riguarda i simboli e i numeri - non ho idea del perché FF si comporti così :smiley: La fila in alto di solito produce simboli e i numeri si ottengono con il tasto Maiusc; sembra che FF con RFP abilitato rilevi la pressione dei tasti fisici come se si usasse un layout US, ma mescolato con i valori dei tasti localizzati in francese?

Mi spiace non poter essere d’aiuto…

È possibile che l’emulatore sia visibile anche con i CPR? :slight_smile:

Temo solo se e quando RVM Player lo supporterà!

C’è un’opzione presa in considerazione da alcuni emulatori: non cercare di essere intuitivi rispetto al layout fisico della tastiera dell’host, ma semplicemente evitare di fare supposizioni al riguardo.

In altre parole, accettare quando un’API fornisce un simbolo invece di una posizione sulla tastiera.

In questo caso, quando le API Javascript dicono “l’utente ha premuto <qualcosa>”, non cercare di indovinare che “presupponendo un host fisico con una normale tastiera PC105 con layout francese Azerty, questo simbolo dovrebbe essere quello che viene fuori quando l’utente preme il tasto alla riga x col y, che mapperò sul tasto fisico CPC riga x’ col y’”.

Al contrario, accetta che ad esempio l’utente abbia premuto “un tasto che genera un simbolo di virgolette”. Mantieni una mappatura da simbolo a tasti CPC, indipendente dalla tastiera fisica dell’host. Ciò potrebbe richiedere una sequenza nella macchina emulata, come “premi Maiusc, premi 2, rilascia 2, rilascia Maiusc”.

Arnoldemu consente sicuramente una logica simile e la chiama “translated” (tradotta), in contrapposizione a “positional” (posizionale).
Io la chiamerei “basata sui simboli”.

Penso che anche Caprice32 lo consenta.

Un vantaggio è che puoi digitare sul CPC con la tua tastiera per PC proprio come in qualsiasi altro programma. Ottimo per programmare o modificare qualsiasi tipo di testo. E per digitare run"disc.

Tornando alla situazione attuale: dipende dal fatto che l’emulatore supporti o meno una logica così indipendente dalla tastiera fisica. Cosa che immagino RVM non faccia?

Esattamente :smiley:

Non offre alcuna opzione, per quanto ne so…