[Emulation] DCMO5 online en javascript

Couvre tous les domaines de l'émulation logicielle ou de la virtualisation ainsi que les discussions sur les divers outils associés.

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
OlivierP
Messages : 711
Inscription : 21 sept. 2009 15:50
Localisation : IDF

Re: [Emulation] DCMO5 online en javascript

Message par OlivierP »

Oui, sur Mac OS X 10.5
Le CPU est entre 90 et 100%
Les lettres, chiffres, la virgule et entrée fonctionnent en basic, mais pas le reste
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17489
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par fneck »

Daniel a écrit :Nouvelle version en ligne avec possibilité d'utiliser le clavier
Je n'ai pas réussi à trouver la touche + sur le clavier de mon portable, bug ou pas je ne sais pas?

Ce qui me gêne le plus c'est qu'il y a toujours ce temps assez long entre la saisie de deux touches successives. C'est peut-être lié à ma machine très peu puissante?
gilles a écrit :J'ai opté pour java il y a 5ans (http://www.alternative-system.com/?page=mo5_java)
J'ai voulu faire les mêmes essais sur ton émulateurs Gilles, mais je n'ai jamais réussi à trouver la touche = :|
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
claudounet
Messages : 1074
Inscription : 15 juil. 2009 21:21
Localisation : Dublin 6 (IRL) - Vichy (03)
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par claudounet »

Score 144 au glouton, peut mieux faire...
et les curseurs qui fonctionnent ..excellent ...
Claude

Retro'rdinateurs http://www.retrordinateurs.com/
Daniel
Messages : 17408
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par Daniel »

Comme je m'y attendais, les ennuis commencent avec le clavier.

Ce matin la touche + marchait dans Chrome et ne marchait pas dans Firefox. Croyant à une faute de frappe dans mon programme j'ai corrigé. Maintenant la touche + fonctionne dans Firefox et ne fonctionne plus dans Google Chrome. Je vais essayer de trouver une parade.

L'émulation du clavier a toujours été ma hantise depuis que je programme des émulateurs. Avec les incohérences du matériel, plus les incohérences des systèmes, plus les incohérences des bibliothèques comme SDL, plus les incohérences des navigateurs, c'est un sac de noeuds indescriptible. Je ne suis pas le seul à m'en plaindre, mais nos plaintes ne sont pas entendues : nous voulons un système très simple, où chaque touche a un code et un seul. Le code peut être choisi de façon arbitraire, ce qui importe est une correspondance biunivoque entre le code et la touche physique (comme sur le MO5). Mais l'esprit des concepteurs est tordu, et pour soi-disant résoudre les problèmes ils empilent des couches logicielles qui font perdre totalement le lien entre le code et le matériel. S'ils connaissaient Flipper de Loriciels sur MO5, ils comprendraient leur bêtise.

[Edit 14h]
Une petite verrue dans l'émulateur corrige le problème de la touche + dans Google Chrome et Firefox.
Il y a peut-être d'autres anomalies du même genre, je compte sur vous pour les trouver. Merci :D

Fabien : la répétition des touches du MO5 est contrôlée par le temps de latence (temporisation avant le début des répétitions). Par défaut ce temps est assez long : 7/10 de seconde, mais si l'émulateur ne tourne qu'à 50% de la vitesse normale à cause du manque de puissance du PC, il est encore plus long. Ce paramètres est modifiable en RAM par l'instruction POKE.
POKE &H2076,x (x est le temps de latence avant première répétition en dixièmes de secondes, par défaut : 7)
Tu peux essayer de diminuer la valeur, par exemple POKE &H2076,3 (Le caractère & est obtenu par MAJ-6).
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17408
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par Daniel »

Test de dcmo5 online dans Linux avec plusieurs navigateurs (dans leur version la plus récente) :
- PuppyBrowser
- SeaMonkey
- Chrome
- Opera
- Firefox

Résultats :
- Configuration du clavier fausse dans tous les cas (Linux n'envoie pas les mêmes codes que Windows, je l'avais déjà remarqué avec dcmo5, dcto8d, dcto9+ et dcvg5k version SDL).
- Configuration du clavier différente d'un navigateur à l'autre (le navigateur ajoute ses propres erreurs à celles du système d'exploitation)
- Performances médiocres, presque deux fois plus lents que les mêmes navigateurs dans Windows XP
- Seul Chrome permet une vitesse correcte. Il est de très loin le plus rapide (trois ou quatre fois plus rapide que Firefox).

Un point positif : tous ces navigateurs sont compatibles avec la balise <canvas> et permettent d'exécuter l'émulateur.

Dans Internet Explorer sous Windows j'ai trouvé une solution permettant de reconnaître la balise <canvas> : il s'agit de http://excanvas.sourceforge.net/
Malheureusement cette solution est inapplicable car IE est environ trente fois plus lent que les autres navigateurs pour exécuter le javascript. Il se fige et on ne peut plus rien faire, sauf fermer le programme avec le gestionnaire de tâches. J'ai testé IE7 sous Windows XP et IE8 sous Windows 7. Normalement IE9 doit supporter le HTML 5, et permettra peut-être d'exécuter dcmo5 online. Je vais l'essayer dès que possible et je posterai les résultats.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
parabolus
Messages : 213
Inscription : 30 nov. 2008 00:56
Localisation : Arcachon
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par parabolus »

Daniel a écrit : C'est peut-être la voie d'une nouvelle série de programmes, quand de bonnes solutions seront trouvées pour produire du son (actuellement javascript ne le permet pas).
Qu'est ce que que tu veux produire comme son ? des notes comme dans l'exemple suivant, ne te suffisent pas ? http://www.beatlinxdesign.com/pierce_co ... piano.html
Daniel
Messages : 17408
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par Daniel »

Il n'y a pas de son possible en Javascript.
Le JavaScript Piano utilise RealPlayer (sound.DoPlay();) ou Quicktime (sound.Play();). Ni l'un ni l'autre ne peuvent convenir pour un émulateur, qui doit envoyer des échantillons à la carte son avec un temps de latence très court.

Code : Tout sélectionner

function PlaySound(e) {
  if (!e) var e = window.event;
  // which key was clicked?
  thiskey = (e.target) ? e.target: e.srcElement;
  var sound = document.getElementById("note_" + thiskey.id);
  try {
    // RealPlayer
    sound.DoPlay();
  } catch (e) {
    try {
      // Windows Media / Quicktime
      sound.Play();
    } catch (e) {
      alert("No sound support.");
    }
  }
}
Image
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
OlivierP
Messages : 711
Inscription : 21 sept. 2009 15:50
Localisation : IDF

Re: [Emulation] DCMO5 online en javascript

Message par OlivierP »

sinon il y a les ActiveX sous IE, mais cela fait un grand bond dans le passé ...
Avatar de l’utilisateur
gilles
Messages : 2782
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par gilles »

fneck a écrit : J'ai voulu faire les mêmes essais sur ton émulateurs Gilles, mais je n'ai jamais réussi à trouver la touche = :|
En fait java a plus ou moins les mêmes problèmes que javascript pour le clavier mais avec une dimension de moins (cela ne dépend pas du browser mais uniquement de l'OS, il n'y a pas de vrai scancode normalisé)...
En même temps... j'ai peut être oublié de mapper cette touche, c'était plus un prototype qu'un émulateur complet, JTEO est plus abouti.
Daniel
Messages : 17408
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par Daniel »

Test de dcmo5 online dans Internet Explorer 9

Image

Le dessin du joystick est un peu massacré, mais ce n'est pas grave, ça peut s'arranger.
La bonne nouvelle est que tout fonctionne, y compris la balise <canvas> et le clavier, avec les bonnes touches.
La mauvaise nouvelle (prévisible) est la lenteur. Il faudra encore une dizaine d'années de progression des performances des machines pour pouvoir utiliser les outils de Microsoft. En attendant, Google Chrome est la meilleure solution, 10 à 20 fois plus rapide qu'Internet Explorer 9.

Test d'une boucle FOR I=1 TO 10000: NEXT dans dcmo5 online (Windows 7, Athlon XP 2000+):
- Google Chrome 5.0 : 13 secondes
- Internet Explorer 9 : 154 secondes

Avec le vrai MO5 et dans DCMOTO la boucle dure 13 secondes, donc Google Chrome permet l'émulation à la vitesse nominale sur une machine peu puissante (s'il y a peu de modifications de l'écran).
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17489
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par fneck »

Pour un non-initié comme moi, quelqu'un peut-il expliquer la différence en java et javascript?
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
gilles
Messages : 2782
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par gilles »

java est un langage objet, compilé vers un pseudo code machine (le bytecode). java peut s'exécuter hors du contexte d'un naviguateur (ex: openoffice, Eclipse...). Un mode particulier permet l'intégration dans un navigateur (applet).

javascript est un langage interprété qui s'éxécute dans le contexte du navigateur, pour une page spécifique, dans le but de rendre cette page dynamique. (si ce code va aussi rechercher des informations sur le serveur, on parle alors d'Ajax).

Même si la syntaxe est parfois proche, javascript est plutôt un sous-ensemble de java (historiquement c'est inexact, les 2 langages ont été créés séparément, pour des besoins proches, le renommage en javascript est une décision commerciale de netscape).
Daniel
Messages : 17408
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par Daniel »

http://www.toutjavascript.com/savoir/savoir04.php3
http://francoisg.ifrance.com/rubriks/ja ... apoint.htm

En peu de mots avec humour :
Java and Javascript are similar like Car and Carpet are similar.
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17408
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Emulation] DCMO5 online en javascript

Message par Daniel »

Un peu de publicité pour faire connaître le MO5 au monde entier
http://www.emunova.net/news/detail/13899.htm

Image

Glouton est à l'origine un programme Hebdogiciel. Je l'ai adapté pour le rendre jouable au clavier (à l'époque je n'avais le contrôleur musique et jeu du MO5), et je l'ai transformé en image de cartouche MEMO5.
Daniel
L'obstacle augmente mon ardeur.
Répondre