Obligement - L'Amiga au maximum

Lundi 22 mai 2017 - 17:29  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Entrevue avec Toni Wilen
(Entrevue réalisée par David Brunet - juin 2009)


Note : traduction par Serge Guillaume.

Depuis de longues années, l'émulateur WinUAE est devenu une plate-forme Amiga à part entière. Gratuit, performant, il a su séduire des milliers (des milliards :) d'utilisateurs de Windows férus d'Amiga Classic. Nous avons donc voulu en savoir plus sur Toni Wilen, le programmeur derrière cet excellent émulateur.

- Salut Toni. Pourriez-vous vous présenter à nos lecteurs ?

Salut. Je m'appelle Toni Wilen et je vis en Finlande. Je me dévoile rarement comme cela et, en règle générale, je me fiche de pas mal de choses. :)

- Vous êtes le programmeur principal de WinUAE, l'émulateur Amiga le plus avancé. Mais d'abord, qu'avez-vous fait (en terme de programmation) avant WinUAE ?

Sur PC : NHLInfo, un éditeur de joueurs pour NHL de Electronic Arts (abandonné depuis des lustres, cela fait longtemps que NHL est devenu ennuyeux), Great Nations, un clone de Civilization qui a débuté sur Amiga (abandonné aussi depuis longtemps, il ne m'intéresse plus).

Des programmes "sérieux" sur Amiga : le gestionnaire de fichiers FileMaster, SysInfo (un utilitaire à la SnoopDOS) et quelque petits utilitaires. Pour la scène démo : j'ai codé Digital Disco II et quelques intros SF de Admirals, assez moches...

- Comment êtes-vous venu à UAE ?

Cela fait plus de dix ans. Je ne m'en souviens plus vraiment... Voir la question 10.

- Est-ce que vous avez encore des contacts avec l'équipe d'origine de UAE ? (Bernd Schmidt, Brian King, Mathias Ortmann...)

Bernd travaille encore sur UAE mais il semble que ça ne l'intéresse plus trop. Je n'ai pas de nouvelles des autres.

- A part vous, qui sont les autres personnes travaillant sur le développement de WinUAE ? Et quel est leur rôle dans l'équipe ?

Malheureusement, je suis le seul, en tout cas le seul qui sait vraiment comment UAE fonctionne... (à part Bernd, bien sûr).

- Que signifie le "U" dans UAE ? (depuis le début de son développement, il y eut plusieurs possibilités : unusable, unix, universal, ubiquitous...)

Je ne sais pas et ça m'importe peu, demandez à Bernd pour savoir la vraie signification. :)

- Quel(s) langage(s) est(sont) utilisé(s) pour le développement de WinUAE ?

Rien que du C, sauf pour quelques bouts d'assembleur dans le JIT.

- Le code de WinUAE semble être gros et complexe. Comment avez-vous réagi quand vous avez remplacé Brian King en tant que programmeur principal ?

Brian s'occupait principalement du portage d'UAE sur Windows (il est aussi l'auteur de la première émulation de Picasso96 et de la première interface, il ne faisait pas du portage à 100%) et donc, quand j'ai débuté, il n'y avait que peu de différences entre WinUAE et l'UAE officiel (à part l'interface). Ce n'est que quand UAE commença à évoluer trop lentement à mon goût (autour de 2004), et que j'ai finalement commencé à comprendre le coeur du code, que j'ai décidé de tout faire par moi-même. Avant j'envoyais tous les correctifs à Bernd et les codes sources étaient plus ou moins bien synchronisés.

- La complexité du code semble être un problème pour le futur de WinUAE. Cela sera sans doute difficile de trouver une autre personne qui connaisse très bien le matériel et le système Amiga.

Ouais, c'est pratiquement impossible.

En gros, il faut une connaissance du C, du matériel Amiga (lire le manuel de référence ne suffit pas, il faut une réelle expérience des programmes liés au matériel Amiga), des logiciels Amiga (pas essentiel mais ça simplifie grandement le débogage), une connaissance parfaite des processeurs de la série 680x0 (très important) et enfin de la programmation sous Windows.

- Quelles sont les principales caractéristiques que vous avez implémentées dans UAE/WinUAE quand il était maintenu par Bernd Schmidt/Brian King ? Et depuis que vous êtes le principal programmeur ?

La principale fonctionnalité fut les modes graphiques AGA. A l'époque, tout le monde pensait que c'était "impossible" à émuler (je ne comprenais pas comment quelque chose pouvait être impossible à émuler. Je ne comprends toujours pas d'ailleurs), alors il fallait que je leur démontre le contraire. :D

A part cela, j'ai fait quelques petites améliorations/corrections de compatibilité ici et la. Lisez l'historique des modifications officiel d'UAE pour plus d'informations, il est très détaillé.

Pour les mises à jour plus récentes : il y en a trop pour les énumérer ici... par exemple le mode d'émulation A500 au cycle près et une vraie émulation du gestionnaire de cache par anticipation du 68000 qui ont beaucoup amélioré la compatibilité A500.

- Bernd Meyer a programmé un JIT (émulation dynamique) pour WinUAE. Il dispose aussi d'une version bêta de l'émulation PowerPC et Warp3D pour UAE. Pensez-vous qu'un jour WinUAE puisse lancer des programmes PowerPC ?

Du PowerPC dans WinUAE = JAMAIS. D'abord pour une raison technique : je ne connais rien aux processeurs PowerPC et je ne veux pas en savoir plus. Deuxième raison : je m'en fiche, je ne me suis jamais intéressé au PowerPC. Si vous voulez faire tourner des programmes pour PowerPC, utilisez un vrai émulateur PowerPC ou bien faites en un vous-même, et puis la plupart des programmes PowerPC sont des portages de programmes DOS/Windows, alors pourquoi ne pas utiliser la version originale...

Ensuite, la principale raison est que, pour moi, "l'Amiga" c'est seulement les Amiga classiques 68k. Les Amiga PowerPC sont à mon avis une plate-forme matérielle complètement différente. C'est le système d'exploitation ET le matériel qui font l'Amiga (selon moi).

- A quelles nouvelles caractéristiques les utilisateurs pourraient s'attendre dans les prochaines versions de WinUAE ? Et dans les versions à long terme ?

Une interface de configuration des périphériques d'entrée facile à utiliser. :)
Actuellement cette interface est très puissante mais vraiment déroutante et d'une utilisation peu intuitive.

- Qu'en est-il de la gestion des x86 multicoeurs ?

Très difficile, et pour des modes compatibles (comme l'A500), pratiquement impossible, si on veut un gain de performance. Les puces dans l'Amiga "se parlent" sans arrêt, on ne peut pas les émuler dans des fils d'exécution distincts car la communication continue entre puces massacrerait la performance.

Certaines opérations de post-traitement pourraient être déplacées dans d'autres fils d'exécution mais ce n'est pas facile, du moins si on ne veut pas perdre en performance sur les processeurs à simple coeur... (je ne suis pas intéressé, ça n'en vaut pas la peine, en tout cas je ne veux pas gâcher mon temps pour rien). De même, en théorie on pourrait déplacer l'émulation JIT du processeur dans un autre fil d'exécution mais je ne suis pas intéressé par un éventuel gain en performance (et dans le pire des cas une perte de performance s'il y a trop de communication entre les fils d'exécution).

Certaines parties de l'émulation ont toujours été exécutées séparément, comme le système de fichiers. J'essaye aussi de déplacer la mémoire tampon utilisée pour la VRAM RTG de l'Amiga vers un vrai module de tampon d'affichage/transcodage de couleur exécuté dans un autre fil d'exécution et qui serait un moyen facile de gagner en performance RTG.

Programmer en "multithread" (avec plusieurs fils d'exécution) sans bogue est difficile, il est trop facile d'introduire des bogues qui seront extrêmement durs à éradiquer, et c'est encore plus complexe si le code doit être capable de s'exécuter sur un processeur à simple coeur sans fils d'exécution supplémentaires.

- Le but initial d'UAE était d'être capable d'émuler parfaitement un Amiga 500. Quel est le nouvel objectif aujourd'hui ? Une parfaite émulation de l'ensemble du matériel Amiga ?

Le but reste l'émulation parfaite de l'Amiga 500. Malheureusement, avoir une émulation au cycle près prend trop de temps (corriger le dernier pour cent consomme 99% du temps de travail) et, de plus, j'ai récemment eu une baisse de motivation à ce propos, c'est barbant et cela n'a apporté aucun résultat intéressant mis à part le fait d'émuler de rares programmes à 100%.

Je pense qu'un autre objectif est l'émulation de tous les modèles d'Amiga classiques, y compris les matériels spéciaux. Cela n'inclus pas l'émulation exacte de la vitesse (j'ai d'ailleurs une règle simple : pour les processeurs inférieurs au 68020, l'exactitude est importante, même si cela débouche sur une vitesse ridicule. Pour les processeurs 68020 et au-delà avec AGA, la vitesse est prioritaire et l'exactitude n'est pas importante). L'émulation des 68020 et supérieurs est également très complexe à cause de leurs cache(s) interne(s). Cela est possible mais la vitesse d'émulation serait lente au point d'être inutilisable, et en plus cela serait incompatible avec le JIT. Même chose avec l'émulation MMU.

- Qui a eu l'idée d'inclure l'émulation du bruit du lecteur de disquette ? Pourquoi avez-vous inclus cette étrange idée dans l'émulateur ?

Je ne me rappelle plus. En gros la principale motivation pour l'émulation du bruit du lecteur de disquette fut un programme nommé "gurumusic" qui jouait El Condor Pasa en utilisant le lecteur. Il a bien sûr fallu l'émuler complètement. :)

- Quelle est la partie de l'Amiga la plus difficile à émuler ?

"Difficile" n'est pas le bon mot, l'émulation c'est facile tant qu'on dispose d'une documentation exhaustive du matériel (et on ne l'a pas). Au niveau de l'émulation matérielle au cycle près, il y a plein de choses qu'on ne peut pas espérer voir fonctionner comme dans la réalité, même une différence d'un cycle peut faire planter un programme, et dans le pire des cas personne ne s'en apercevra avant dix ans... Un autre aspect difficile est de rendre l'émulation assez rapide, ce qui implique un code bordélique qui sera difficile à relire et comprendre... (et si on introduit plusieurs fils d'exécution, c'est le bordel puissance deux...). En d'autres termes : programmer un émulateur n'est pas difficile, "seulement" très long, surtout quand on teste sur un vrai Amiga.

- Est-ce que vous utilisez encore de vrais Amiga ?

Oui mais principalement pour tester l'émulation. J'ai programmé sur mon vrai A1200 plus ou moins jusqu'en 1995, mais sans protection mémoire ni pistage des ressources c'était difficile de déboguer, il fallait redémarrer beaucoup trop souvent.

Je suis en train de moderniser mes vrais Amiga avec des extensions matérielles que je ne pouvais m'acheter dans les années 1980-1990 (j'étais étudiant à l'époque) : carte accélératrice, carte SCSI, etc. Pour faire des tests de compatibilité et aussi parce qu'à l'époque tous les propriétaires d'Amiga en rêvaient...

A ce propos, la meilleure trouvaille récente pour les Amiga classiques c'est le remplacement du disque dur par une carte Compact Flash. Tous mes Amiga ont un disque dur Compact Flash, c'est rapide, silencieux et peu encombrant comparé à des vrais disques durs. Il me reste à trouver une interface IDE-SCSI pour mon "nouvel" A3000. :)

- Est-ce que vous utilisez WinUAE (à part son développement) ? Pour quelles tâches l'utilisez-vous et à quelle fréquence ?

Je l'utilise assez peu. C'est surtout pour jouer à des jeux anciens, regarder des démos et bien sûr pour le tester.

- Dans quels cas l'Amiga Classic reste meilleur que l'émulation sur un PC très rapide ?

"Meilleur" c'est subjectif, il y a tellement de variables et de préférences. Il y a quelques années j'aurais recommandé un vrai Amiga pour avoir un défilement fluide mais ce n'est plus aussi simple aujourd'hui avec les écrans LCD. Maintenant c'est un peu au petit bonheur la chance entre l'émulation et les vrais Amiga.

Utilisez ce que vous aimez le mieux, personne ne vous force à "choisir". Vous pouvez même utiliser les deux, ce n'est pas exclusif. :)

- Que pensez-vous des autres variantes d'UAE ? (E-UAE, UAE4ALL...)

Je ne les ai pas utilisés, voir la question suivante. :)

E-UAE semblait prometteur, on avait enfin un UAE mis à jour pour les "autres" systèmes d'exploitation. Malheureusement, l'auteur semble avoir disparu complètement...

- Mac OS X est passé au x86 en 2006. Est-ce qu'un portage de WinUAE sur Mac OS X peut être réalisé facilement ?

Le processeur n'est pas un problème (sauf pour le JIT). WinUAE repose essentiellement sur les sous-systèmes de Windows. Un portage simple sans interface graphique ni fonctionnalités spécifiques à Windows ne devrait pas poser de problème (le "coeur" est encore entièrement portable).

Je me refuse à remplacer l'interface graphique par une bibliothèque d'interface graphique portable car :

1. La plupart ne ressemblent pas à Windows. Je déteste les programmes pour Windows qui n'ont pas l'aspect de Windows (voir les interfaces graphiques Java...).
2. La plupart nécessitent d'inclure une énorme bibliothèque en plus.

- Que pensez-vous des autres émulateurs Amiga ? (Fellow...)

Je n'ai jamais utilisé Fellow. Pour autant que je sache, Fellow a été conçu pour tourner rapidement sur des processeurs relativement lents et mon but a toujours été la compatibilité, quitte à être lent et inutilisable sans un processeur rapide. Il y a aussi une sorte d'émulation Amiga sur MESS (sans relation avec UAE ou Fellow) mais apparemment c'est très basique.

- WinUAE est une partie importante de la distribution Amiga Forever de Cloanto. Avez-vous reçu de l'argent de leur part pour votre travail ? Est-ce qu'ils vous contactent pour que vous ajoutiez telle ou telle fonction ?

Techniquement et juridiquement parlant, tout le monde peut vendre UAE, il n'y a pas problème à cela, mais j'ai bel et bien reçu des dons de matériel de Cloanto et c'est bien plus utile que de l'argent.

- Quel est votre sentiment à propos des problèmes de légalité que l'on retrouve sur la scène de l'émulation de l'Amiga ?

C'est complètement idiot. Il faut croire que "Only Amiga makes it possible"... Les ROM 1.x devraient, au moins, être libres de droit.

- Travaillez-vous sur d'autres projets actuellement ?

Sur quelques projets logiciels autour de l'Amiga, juste pour m'amuser mais malheureusement je perds la motivation trop facilement si ça dure trop longtemps. L'un d'entre eux est un projet de ROM Kickstart qui décompresse automatiquement en mémoire Fast tous les modules ROM, dont les bibliothèques 680x0 et Setpatch sans avoir besoin de redémarrer, et un mode de débogage qui utilise un chargement de ROM par disque, comme sur A1000 (c'est un travail en commun avec Doobrey, l'auteur de Remus et d'autres outils de ROM).

- Quelle est votre opinion sur les environnements Amiga préconfigurés tels AmiKit et AmigaSYS ?

Ils sont utiles parce qu'ils facilitent le test des applications : on n'a pas besoin d'aller chercher soi-même toutes les classes MUI plus ou moins compatibles (y a-t-il encore quelqu'un pour croire que l'Amiga ne subit pas "l'Enfer des DLL"?) et encore d'autres bibliothèques nécessaires à faire tourner un nouveau logiciel. Comme pour le reste, faites-en usage si vous appréciez ça, sinon ne vous forcez pas.

Mais d'un autre côté, des environnements haut de gamme comme AmiKit ne ressemblent plus vraiment à l'Amiga. Est-ce vraiment important ?

- Vous ne semblez pas être un supporter de la nouvelle génération d'Amiga (avec AROS, MorphOS et AmigaOS 4). Les avez-vous testées ? Quel est votre avis à propos de ces systèmes ?

Pour moi, l'Amiga classique est seulement un passe-temps. Je ne veux pas, ou n'ai pas besoin, d'Amiga pour faire les choses "sérieuses", dans ce cas j'utilise un ordinateur puissant et moderne (comme l'Amiga l'était à son origine). Je ne veux pas non plus de ces cartes PowerPC, chères, et qui sont principalement construites avec des bouts de PC obsolètes, ni de ces systèmes d'exploitation qui ne disposent pas de protection mémoire ou de pistage des ressources - ils ne sont pas assez modernes pour moi.

Je n'ai jamais compris pourquoi les gens intéressés par l'Amiga rétro sont généralement inclus dans le même groupe que les utilisateurs d'Amiga de nouvelle génération. La plupart d'entre nous (ceux intéressés par l'Amiga rétro) ne sont pas intéressés (une partie de la soi-disant "communauté" nous voit même en tant qu'ennemi de l'Amiga, tout cela car on n'aime pas ou on n'est pas intéressé par le matériel PowerPC... ceci est une autre raison pour laquelle je ne participe pas aux discussions sur les forums Amiga ici et là).

- Vous avez le dernier mot...

J'espère que mes réponses ne vous ont pas trop embrouillés. :)


[Retour en haut] / [Retour aux articles]