Suivez-nous sur X

|
|
|
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,
ALL
|
|
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
|
|
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
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
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 termes 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 programmé 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 CompactFlash.
Tous mes Amiga ont un disque dur CompactFlash, 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 Jeff Weeks, 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. :)
Soutenez le travail d'Obligement
|
|
|