Développer des émulateurs pour passer le temps
-
J’ai du mal à réaliser que l’émul d’un amiga soit si légère. Il y a quoi qu’il ne fait pas mais que les autres font qui coûte aussi cher en resource CPU ?
Allez dis nous: en fait Alice c’est juste un stream d’un gros PC qui tourne par derrière sur le réseau comme Shadow-PC. C’est ca ?
Samuel.
Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
A500 Vampire V2+ ^8^ 🙂
(mais aussi TO8, TO8D, TO9. Groupe PULS.)Non Alice est juste un lecteur vidéo pas super optimisé 😉
Test Alice2J’ai du mal à réaliser que l’émul d’un amiga soit si légère. Il y a quoi qu’il ne fait pas mais que les autres font qui coûte aussi cher en resource CPU ?
Allez dis nous: en fait Alice c’est juste un stream d’un gros PC qui tourne par derrière sur le réseau comme Shadow-PC. C’est ca ?
La précision par exemple. Est ce au cycle ? Il faut comparer le comparable. C’est » from scratch » ou bien basé sur les sources d’UAE ?
Parce que si l’on s’aventure sur cette voie, fellow sous dos sera encore plus rapide mais beaucoup moins compatible en général.
La précision par exemple. Est ce au cycle ? Il faut comparer le comparable. C’est » from scratch » ou bien basé sur les sources d’UAE ?
Parce que si l’on s’aventure sur cette voie, fellow sous dos sera encore plus rapide mais beaucoup moins compatible en général.
Non ce n’est pas au cycle, et oui c’est from scratch (sauf pour le moment les codes des processeurs 68000 et 68020 qui ont été récupérés)
Niveau compatibilité Amiga, presque toutes les demos OCS / ECS / AGA que j’ai essayées fonctionnent à peu près (quelques bugs graphiques parfois, mais rien de méchant). Donc c’est déjà vraiment très très bien!
Config maxi : 68020 (boost variable) / AGA / 8Mo de fast / Disque dur (en provenance d’UAE)Edit : vidéo comparative Alice Vs Fs-UAE
Parce que si l’on s’aventure sur cette voie, fellow sous dos sera encore plus rapide mais beaucoup moins compatible en général.
Heuuu, linux est un operating system toujours en fonctionnement et même d’actu.
MSdos…. comment dire…ça n’existe plus.Et puis comparé quelque chose d’un OS à un autre OS différent n’aurait aucun sens.
En plus pour trouver les sources de Xfellow (qui est la ‘branche’ linux etteinte depuis…. oula…longggggtemps) , bonne chance.Faut laisser le temps trankikou à Alice de monter en puissance et on verra ce que donne.
Pour l’instant, visiblement, il/elle en a sous le capot.A propos de linux, je trouve que sur la dernière vidéo de Mike, ubuntu est super lent à démarrer. N’importe quel W10 me semble booter infiniment plus vite. C’est quoi le hic ici, le disk est trop lent ou linux qui n’a plus sa légèreté des débuts ?
Samuel.
Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
A500 Vampire V2+ ^8^ 🙂
(mais aussi TO8, TO8D, TO9. Groupe PULS.)D’abord il faut savoir que Windows 10 triche à fond pour le temps de boot car il utilise l’hibernation (qui peut être source de problèmes) : https://lecrabeinfo.net/desactiver-demarrage-rapide-fast-startup-windows-10.html
Ensuite Lubuntu n’est pas réputé pour être rapide à démarrer, ce n’est pas son but. Par contre Ubuntu à une époque faisait tout pour gratter un peu de temps de boot. Mais je ne crois pas que ce soit encore d’actualité.
La légèreté, ce n’est pas trop le temps de boot, c’est plutôt la consommation pendant l’utilisation. Et là il faut avouer que Windows 10 est un hippopotame en comparaison au colibri Lubuntu ^ ^
Edit : Les machines du boulot non équipées de SSD démarrent « lentement » sous Windows 10, mais ce n’est pas un scoop, le SSD apporte beaucoup.
Tricher / Optimiser.. la différence se situe suivant de quel coté on regarde. L’optimisation fiscale est elle une fraude fiscale ? Bon, je suis HS total là. Allez je m’en vais tricher du code…
Samuel.
Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
A500 Vampire V2+ ^8^ 🙂
(mais aussi TO8, TO8D, TO9. Groupe PULS.)De ce que je sais.
Le Systeme Installé dans les vidéo est sur un DD sata, PAS SSDDe plus, il s’agit de la version 386 est non 64B.
C’est la version de linux 18.04 alternate (la dernière dispo en 386 ensuite c’est du 64B)
Pourquoi une release en 386 tout simplement car le code est compilé sur cette plateforme.
Pourquoi ne pas installer une version 64B est installer les binaires qui vont bien ?
Parce que c’est chiant et lourd (dépends de comment le binaire est compilé, de quel lib 386 il a besoin etc. Toutes les libs 386 ne sont pas installable ‘facilement’ sur un OS 64bits et rends le système plus ou moins ‘stable’ pour les autres compilations qui sont eux 64B)En clair, il est plus facile de jouer un binaire fait pour une plateforme 386 sur une release d’os 386
Ceci pour expliquer cela 🙂J’ajouterais que les ‘perfs’ que ce soit pour alice ou autre dépendent de beaucoup de chose comme.
– L’ordinateur bien sûr. (proc/mémoire)
– Comment c’est codé et ce qui est émulé.
– et ne l’oublions pas, ‘l’environnement de bureau’.Un FS-UAE tournera largement moins vite (j’ai testé) sur un Gnome que sur un Lxe.
Sinon globalement, pour avoir testé aussi, même sur une grosse bécane, windows 10 boot plus vite sur un SSD que son homologue dernière mouture.
Du moins, ce que j’ai constaté sur debian, ubuntu, mint.. avec divers ‘bureau’ (gnome, lxe, …)
Pourquoi W10 boot plus rapidement ? ça… c’est une bonne question, aucune idée.Interview du concepteur d’Alice, notes réalisées le 16 août
Désolé pour les notes en vrac, je mettrai à jour ce texte si besoin
Sorry pour le retard, j’ai rarement un accès à internet, en mode « cure de desintox informatique forcée » LOLPourquoi avoir voulu programmer Alice ?
Comprendre comment fonctionnent les émulateurs, essayer d’en faire un, est-ce que c’est faisable ? Un simple défi personnelQuand as tu commencé ton projet ?
En 1999 avec un émulateur master system sous Windows / directX
Ensuite GB (cpu presque pareil), son très basique
Ensuite pc engine car l’émulateur qui fonctionnait bien à l’époque était limité à 5mn=>3 exe différents (win-gb, win-mastersystem et win-pcengine) qui fonctionnaient à 90-95 %., Interruption par ligne bien faite par rapport à d’autres émulateurs
Il y avait même une gui à l’époque ! Pour changer le zoom, de rom etc.
Détection de certaines boucles infinies pour gagner en usage cpu…Les 3 exe n’ont jamais été diffusés
Pause du développement pendant 4-5 ansPassage sous linux en 2006 2007 pourquoi ?
Code commun aux 3 émulateurs, l’idée était de tout rassembler dans un seul exécutable
En fonction de l’extension du nom de la rom : lance le bon émulateur
Sdl que pour le son et la manette
Debug, manette, affichage, clavier, son = commun avec 3 coeursEnsuite snes : intéressant car j’y avais pas mal joué à l’époque
Un cran au dessus au niveau complexité
Cpu qui ressemble à celui de la pcengine, donc réutilisation d’une partie des trucs
2 cpu : 1 pour le son, synchro des 2 cpu (pas protégé)
Gestion des transparences, mode 7…PcengineCD : pour gérer les cédéroms 🙂
Ensuite psx : ajout de la 3D, intéressant aussi à programmer
Même à ce stade de développement, l’idée n’a jamais été de diffuser Alice
Le plus chiant à programmer : les cpu
Je cherchais le ratio intéressant compatibilité / perfs pas trop pourriNeogeo : jeux sympas / plein de couleurs et super docs techniques de disponibles.
Tout est sprites sur cette console, même les décors! + layer score/niveau
soucis : 68000 trop complexe donc repris tout fait, (source pas mal)
2 cartouches en une, mémoire vidéo+ code cpu 68000 et z80 audio (samples)
gérer le cryptage (protection des jeux récents), chiant, algo récupéré dans mameEn parallèle, développement de puces de sons, celle de la neogeo (fm) est plus évoluée
=> Gestion des formats vgm (audio) pour la neo geo, mastersystem, gameboy, pcengineTaux de compatibilité très bon avec la neogeo car pas besoin de bidouilles logicielles comme sur les autres supports
=> réutilisation du cpu Z80 de la master sytemMise à jour du debugger pour aider à avoir des infos dans l’état du systèm + dessassembleur + gestion des symboles pour s’y retrouver (seules parties intéressantes), typiquement pour les machines avec bios
Megadrive : 68K c’est bon, z80 c’est bon, puce son similaire à la neo geo
l’idée était de jouer à sonic, donc fait un peu vite, compatibilité moyenne, pas fini, partie graphique vite fait, soucis avec DMAAjout de la puce fm qui était utilisée dans la mastersytem japonaise. Outrun, rtype, double dragon… ont un son bien meilleur
Ajout dans le format vgm les pucefm des cartes son pc, monkey island, yamaha opl
=> ça ressemble, donc pourquoi pas essayer?Ajout du capcom system 1 arcade 68000 Z80 puce audio ressemblant à neogeo
juste la partie graphique était à faire
street fighter2, prime, etc. gouls n ghoust, 1941, pang3, final fight
tout fonctionne bien
=> ce qui change d’un jeu à l’autre, c’est juste comment sont gérés les mémoiresAjout konami crime fighter
cpu de merde, desassembleur
z80 puce son connue, juste la partie graphique était à fairehardware différent d’un jeu à l’autre
konami asterix 68000trucs communs dans la partie graphique
konami vendettaPremier ordi : le CPC ! encore le Z80
Juste quelques craintes au début pour gérer la D7 mais finalement le format .dsk se gère facilement
taux de compatibilité pas terrible, toujours à cause du graphique, un peu comme l’émulateur megadrive. graphique en mode pixel près à faireNouveau défi, tenter d’émuler l’Amiga
objectif A500 de base 7mhz 512ko pour booter la rom, avoir la main
Puis ensuite lancer pinball dreams
super doc officielle commodore (quelques conneries mais ça va)blitter en mode instantané et copper (mini cpu 3 instructions) au départ en mode ligne
gestion des bitplans, son bien documenté, pcm facile
fm super pourri (hyper limité 4 opérateurs) pas fait mais pas ou peu utilisé à priori68000 ok, lecteur de D7 casse couille, 880ko doublé pour les bits de correction d’erreurs
le 68k lit nativement tous les bits, d’où plusieurs formats possibles, y compris pc
mais format adf bien documentéobjectif initial : crack intro du pinball dreams, un peu la souris, clavier
début gestion de sprites pour le jeu, la boule
Pinball dreams était en 64 couleurs ehb en trichant, pour allumer les lampes
tout marchait sauf f1 au début (guru)gestion de collision sprites / plan non géré (jeu à la pong) mais pas ou peu utilisé à priori, usine à gaz
2° objectif Amiga : lancer pinball fantasies
améliorer le copper pour l’affichage en haut copperlist
2mo pour agnusEssai de lancement demos, de plus en plus tournaient et de mieux en mieux
roots voulait un 68020, cela motivera à rajouter le cpu 32 bits un peu plus tardRajout du disque dur natif, c’est l’Amiga qui gère la table des partitions
Quelques jeux et applications dans le wb : monkey island, dpaint, dune2, flashback
bug gros fichiers résolu plus tard (un jeu de flipper ne fonctionnait pas à cause de ce bug)=> Ajout du fichier de conf alice.conf pour plusieurs modèles d’Amiga
Au début aga super light avec 68000 rom 3 palettes 256 couleurspinball illusions : le support de l’aga a été amélioré
les flips sont des sprites, la boule n’est plus un sprite (elle est plus jolie)slamtilt à l’inverse, retour à la boule gérée en sprite comme dreams et fantasy
sprite hi res 16 couleurs quand mode entrelacéCe qui reste à faire sur 500 :
Écriture sur la d7
Gestion du filtre pour le son
Améliorer le mode entrelacé, pb synchro
Blitter en mode ligne à finaliser
Copper en mode pixel, copper compliqué, changement plusieurs fois pendant la ligne
Que l’émulateur soit bien synchro, le plus proche du cycle près
Ports parallels, série, que 2 lecteurs de d7 sont gérés pour l’instant
Reset au clavier (pas utile en émulation)
Codes d’erreur de clavier (pas utile en émulation)
Gestion des erreurs d7 et ide (pas utile en émulation)
D’autres trucs inutilisés
Correction de bugs…Ce qui reste à faire pour le 1200 :
Sprites hi res sur fonds low res
Mode super hires
50 ou 60hz
Gérer réellement la fast, écriture en chip (lent – pas lent, galère à programmer)
Bug décalage scroll horizontal
Gestion du pcmcia
futur : gestion de la cd32Général à Alice : ajout d’une gui
68K à reprogrammer de zéro « pour le fun »
=> Toujours pas de diffusion prévue pour le moment, car :
Pas assez finalisé, ne dispose pas de GUI
Demandant un linux (32bits ou bidouilles dans les dépendances)Ouverture du code envisageable après qu’Alice soit enfin diffusé
Super interview @mikedafunk . Merci de faire le relais!
On sent un réel plaisir d’apprendre et de passer les difficultés.
C’est son loisir.
Bon courage à lui pour la finalisation de son projet.Région : Yvelines
Épatant, impressionnant 🙂
Merci Mike pour cette entrevue 😉
—
/me adore ceux qui se lancent ce genre de défis 😎Autant l’Amiga 500 est bien documenté, autant les composants AGA et la puce Akiko ne le sont pas. Si jamais quelqu’un a ou trouve des documentations intéressantes, cela pourrait servir au développement de l’émulateur
Sinon, ce qui est aussi intéressant, ce sont toutes les anecdotes concernant les jeux et les demos . Par exemple Superfrog qui est le seul jeu à avoir un écran « doublé » par une subtilité de programmation (le haut de l’écran répété au milieu), soucis aussi rencontré et résolu par le dev de winuae…
Le menu à gauche de Banshee est un gros sprite (pas limité en hauteur)
En affichant / cachant les sprites (touche 2 en mode dev), on peut voir des astuces dans les demos, ex : loveEnfin j’ai demandé au dev de pouvoir calculer le nombre réel de couleurs affichées à l’écran (il fait une pause dans l’émulateur et calcule le nombre de couleurs affichées via un indexage)
Cela prend donc en compte les dégradés Amiga ! Et par exemple sur la néogéo des jeux affichent environ 120 couleurs, ce qui n’est pas si énorme…
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Émulation et autres OS › Développer des émulateurs pour passer le temps