Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Aujourd’hui — 6 mai 2024Flux principal

Les langues peu documentées et le libre : quelques enjeux scientifiques

Comme beaucoup de domaines scientifiques, la documentation de la diversité linguistique entretient une relation forte avec les mondes du Libre. Dans cette dépêche, je vous propose de découvrir ce domaine à travers la présentation de plusieurs logiciels et ressources libres ou en accès ouvert. La documentation des langues étant un thème peu courant sur LinuxFr.org, on commencera par une présentation de cette problématique. Nous continuerons par une description des deux ressources principales existantes pour cataloguer et se repérer au sein de cette diversité linguistique. Je parlerai ensuite d’ELAN et de FLEX, deux logiciels utilisés pour annoter des enregistrements audio-visuels, une étape clef dans l’analyse linguistique, et qui permet le partage et la réutilisation de ces enregistrements. Enfin, après un court passage sur la question de l’archivage, je présenterai deux compilations de corpus de documentation en accès libre, une pratique récente qui permet de nouveaux questionnements quantitatifs sur les langues orales peu documentées, et qui contribue également à la transparence et la traçabilité des analyses linguistiques.

    Sommaire

    L’étude des langues à travers le monde

    Actuellement, environ 7000 langues ont été recensées à travers le monde. Ce chiffre ne peut être qu’une approximation car, il n’y a pas de consensus sur la définition de ce qu’est une langue. Une difficulté par exemple est de définir à quel moment une langue est distincte d’une autre. Lorsqu’il y a variation, mais intercompréhension, de nombreux linguistes s’accordent à dire qu’il s’agit alors de dialectes d’une même langue, et donc, lorsqu’il n’y a pas intercompréhension, alors il s’agit différentes langues. Cette perspective considère que tout le monde parle un dialecte (que ce soit celui de référence, ou un plus régional comme celui de Paris, de Marseille, du Québec), la langue n’étant qu’une abstraction permettant de regrouper les diverses pratiques langagières. En ce qui concerne l’intercompréhension, ce critère n’est malheureusement pas absolu car elle peut varier selon les personnes et leur parcours personnel. Et lorsqu’on considère l’évolution d’une langue à travers le temps, sa diachronie, définir ce qu’est une même langue à travers ses évolutions temporelles se complexifie d’autant plus.

    Si certaines langues ont émergé récemment, on pense assez souvent aux langues dites créoles (le Bichelamar, les créoles malais, à Madagascar ou au Cap Vert), ou également lorsque certains dialectes se distinguent suffisamment pour ne plus être intercompréhensibles, la tendance actuelle est surtout à la disparition massive des langues. Cette disparition est souvent rapportée à travers la mort des derniers locuteurs et locutrices, on peut aussi considérer qu’une langue meurt lorsqu’elle n’est plus parlée d’une part, et qu’elle disparait si elle n’est pas documentée. Si certains aujourd’hui se questionnent sur la corrélation entre la diversité culturelle et la diversité écologique, il est évident que la disparition des langues correspond également à des inégalités et des tensions socio-politiques.

    Bref, la documentation des langues, c’est un sujet actuel, et d’un point de vue scientifique, la perte de cette diversité aura de tristes conséquences sur la connaissance des langues et de l’univers des possibles languagiers, encore souvent sous-estimé :

    • l’article The myth of language universals : Language diversity and its importance for cognitive science d’Evans donne un bel aperçu du débat qui existe entre les linguistes fonctionnalistes, notamment les approches générativistes telles que proposées par Noam Chomsky. Pourtant, régulièrement à travers la documentation des langues, des catégories cognitives jusque-là non-soupçonnés, voire rejetées car non-observées, sont identifiés. Nous nous sommes rendu compte récemment qu’un quart des langues grammaticalisaient l’emploi d’évidentiels, ces morphèmes qui indiquent la source d’une information. Au niveau de l’odorat, des neurologistes pensaient que si nous n’avions pas de termes abstraits pour catégoriser les odeurs, c’était lié au fait que notre cerveau ne le permettait pas. La description des termes liés à l’odorat en Jahai (par ici si vous souhaitez écouter du Jahai), qui possède donc des termes spécifiques pour catégoriser les odeurs, a montré le contraire.
    • accéder à des facettes non-matérielles de la préhistoire, non-accessibles à travers l’archéologie. La documentation des langues nous permet d’accéder, dans une certaine mesure, aux termes et aux concepts utilisés durant les différentes préhistoires à travers la comparaison des langues et de leurs structures. Les travaux sont nombreux et anciens en ce qui concerne les langues européennes, mais les recherches en linguistique historique (ou comparée) portent également sur toutes les langues connues à travers le monde. Les chercheurs et chercheuses de ce domaine collaborent assez régulièrement avec les archéologues pour retracer les mouvements de population.
    • mettre au point des systèmes d’écriture pour les langues orales, ou simplement des traitements de texte adapté aux écritures existantes. Parfois, certaines personnes savent écrire dans la ou les langues officielles du pays, mais ne connaissent pas d’écriture pour une de leurs langues régionales. C’est ainsi souvent le cas pour les personnes au Vanuatu. Le pays reconnait même le droit d’enseigner les langues locales à l’école, mais il n’existe que très rarement des ressources (que ce soit les personnes ou les manuels) pour cela. Parfois, les gens ne connaissent tout simplement pas de système d’écriture.

    Quelques concepts et termes liés à la documentation des langues

    Comme tout domaine de recherche, la terminologie et les concepts linguistiques évoluent au gré des discussions et peut se distinguer de l’usage attendu des termes. Une étape importante dans la documentation d’une langue est la production d’une grammaire décrivant les structures linguistiques de cette langue. De nombreux linguistes estiment alors qu’on peut dire que cette langue est décrite. Il ne faut pas se tromper cependant, aucun linguiste ne considère qu’une langue est alors complètement décrite. Une grammaire ne contient que quelques aspects estimés actuellement essentielles par les linguistes de terrain. Ces points sont, le plus souvent, une description du système phonologique d’une langue (c’est-à-dire comment les sons d’une langue sont organisés les uns vis-à-vis des autres), des morphèmes et des processus morphologiques associés (la conjugaison, l’expression de la possession, les déclinaisons, les genres, les classifications, etc.) d’une langue et souvent un début de description des processus syntaxiques. Il existe de nombreuses approches pour décrire les faits linguistiques, et la description d’une langue se fait souvent en dialogue avec les pratiques et terminologies qui ont été employées dans l'aire linguistique concernée.

    Depuis l’article Documentary and descriptive linguistics de Nicholaus Himmelman, qui a promu la distinction entre la documentation linguistique et la description linguistique, on accorde beaucoup plus d’importance à la production d’un corpus d’enregistrements annotés. On dit alors d’une langue qu’elle est documentée si des enregistrements annotés, de préférences audio-visuels, de cette langue existe. Enfin, il existe la problématique de l’outillage d’une langue, c’est-à-dire si ses locuteurs et locutrices ont accès ou non aux outils informatisés, du traitement texte aux dictionnaires informatisés en passant par la reconnaissance vocale, la transcription automatique, voire aujourd’hui aux modèles de langues et autres ressources nécessitant des corpus beaucoup plus grands.

    Les catalogues et base de données pour l’identification des langues

    Une problématique récurrente dans le domaine des langues est de clairement identifier la langue sur laquelle on travaille. Cependant, identifier une langue, ce qui relève ou non de cette langue, où elle est parlée, est l’enjeu de nombreux débats, souvent politique, et n’est pas une tâche simple. Quoi qu’il en soit, il existe des ressources, bases de données, qui proposent d’associer à des noms de langues, endonymes ou exonymes, des codes pour rendre leur identification univoque.

    L’Ethnologue et l’ISO 639 : une norme gérée par le Summer Institute of Linguistics (SIL)

    Ethnologue, Languages of the World, ou plus simplement l’Ethnologue, est une base de données développée et maintenu par l’organisme évangélique SIL, Summer Institute of Linguistic depuis 1951. Elle vise à recenser toutes les langues du monde. L’ISO 639 est une norme issue de ce catalogue, également maintenue par le SIL. Cet organisme est très actif au niveau de la documentation des langues et de la création d’écritures, car un de ses objectifs est de traduire la Bible dans toutes les langues du monde. Historiquement, l’Ethnologue est un des premiers catalogues dont l’objet a été de recenser les langues. Si cette norme semble le plus souvent suffisamment exhaustive pour les besoins liés à l’informatique, après tout, les internautes consultent Internet en très peu de langue, d’un point de vue linguistique, il possède de nombreuses lacunes.

    La liste SIL des langues

    Un premier souci est la nécessité d’avoir une granularité plus importante que simplement la langue. Les linguistes travaillent sur des dialectes et des variétés, sur des familles de langues, et parfois ont travaillé sur des distinctions qui n’ont parfois plus cours. Afin de pouvoir associer ces ressources à des langues, ou des entités linguistiques particulières, l’approche du SIL ne suffit pas.

    Enfin, la gestion du catalogue par un organisme religieux, donc avec parfois d’autres enjeux qu’uniquement scientifiques, le fait qu’il s’agisse d’une norme, donc la nécessité de collaborer avec l’ISO, et le fait que le catalogue n’est qu’en partie ouvert (il faut un abonnement pour accéder à la totalité de la ressource) rend la ressource moins intéressante que de nombreux linguistes le souhaitent de nombreux linguistes. Ces limites ont poussé des linguistes à proposer une ressource alternative.

    Glottocode : par le Max Planck Institute for Evolutionary Anthropology.

    Le projet Glottolog, initialement développé par Sebastian Nordhoff et Harald Hammarström, catalogue non seulement les langues du monde actuelles et passés, les familles de langues et leurs différentes branches, mais également « les restes » des hypothèses de langues ou de regroupements historiques. Cette granularité permet de retrouver les documents associés à chacun de ces objets. Si le catalogue est dédié aux langues moins connues, les langues les plus centrales sont elles aussi répertoriées. Il s’agit actuellement du catalogue mis en avant par les linguistes documentant les langues à travers le monde. L’application Glottolog est disponible via la licence MIT.

    Aperçu du Glottolog à travers la liste des langues

    Si aux premiers abords, la liste des langues du Glottolog ne se distingue pas franchement de celle de l’ISO 639, c’est parce qu’il faut regarder plus en détail pour comprendre les différences essentielles entre les deux ressources. Notons tout de même la colonne « Child dialects » : « Dialectes enfants », et les champs vides au niveau des colonnes Top-level-family et pour la langue Abai Tubu-Abai Sembuak dans la colonne « ISO-639-3 ». La colonne « Child dialects » représente une information qui n’est pas documenté dans l’ISO 639, ce n’est pas son objet après tout, mais qui est intéressant pour les linguistes travaillant sur cette langue, indiquant qu’un minimum de données sociolinguistiques sont disponibles. Les champs vides dans la colonne « Top-level family » sont dus au fait que ces langues sont des isolats, c’est-à-dire que la linguistique comparée ne trouve pas de correspondances significatives entre cette langue et d’autres langues qui permettraient de les regrouper en une famille. Enfin, le vide dans la colonne ISO-963-3 révèle que la langue Abai Tubu-Abai Sembuak ne possède pas d’entrée dédiée dans la norme.

    Ainsi, lorsque l’on consulte une langue en particulière, ici le Nisvai, on voit apparaitre tous les embranchements existants associés à cette langue :

    La langue Nisvai dans le Glottolog

    Cette vue de l’arborescence associée à une langue particulière révèle tous les embranchements auxquels peut⁻être associée une langue. Et à chacun de ces embranchements, si des ressources linguistiques ont été identifiées par les mainteneurs du Glottolog, celles peuvent être proposées. Cette fonction permet aux linguistes de trouver des ressources sur les langues proches, non pas géographiquement (même si en pratique c’est le plus souvent le cas), mais d’un point de vue généalogique.

    Les autres

    Il existe d’autres initiatives pour cataloguer les langues du monde, que ce soit la liste proposée par Wikipedia, la liste de la CIA ou encore The Linguasphere Register, mais ces initiatives ne sont pas aussi pertinentes du point de vue de la documentation des langues.

    Documenter les langues

    ELAN : des schémas d’annotation flexibles

    ELAN est un des logiciels libres (GPL3) les plus utilisés par les linguistes pour annoter des enregistrements audio et vidéo. Il permet d’élaborer des structures d’annotation complexes permettant ainsi de rendre compte des analyses que les linguistes souhaitent associer à un enregistrement. Ces couches d’annotation sont reliées les unes aux autres par des relations logiques, avec le plus souvent une couche de référence indexée temporellement à l’enregistrement. Les annotations les plus courantes sont une transcription, une traduction et une annotation morphologique. Mais des nombreuses autres analyses peuvent être incluses, que ce soit les parties du discours, les références et anaphores, l'animéité, mais aussi les gestes, la structuration du discours, les signes pour les sourds et malentendants.

    Extrait d’une narration présente dans DoReCo, et vue sur les différentes couches d’annotation pouvant être associés à un enregistrement.

    Dans cette capture d’écran issu d’un texte de DoReCo retravaillé par l’auteur, on aperçoit un extrait de quelques secondes d’une narration nisvaie. Il s’agit d’un des modes de visualisation des annotations proposées par ELAN pour représenter les différentes couches d’annotation. Certaines de ces annotations ont été réalisées à la main par l’auteur, d’autres ont été retravaillées par les algorithmes mis en place par DoReCo, puis manuellement corrigés. Enfin, il y a également des couches d’annotation de la prosodie par le biais de SLAM+.

    FLEX : gérer un projet de documentation

    FLEX est un logiciel développé par le SIL et dont le code source est régie par la licence LGPL 2.1. Il est conçu davantage pour coordonner l’ensemble d’une documentation linguistique, de la gestion des textes à l’élaboration d’un dictionnaire, en passant par les analyses linguistiques. En revanche, il ne gère pas réellement l’annotation d’enregistrements. De nombreux linguistes l’utilisent en complément d’ELAN.

    Si le logiciel est prometteur sur le papier, à chaque fois que je l’ai essayé, j’ai été rebuté par son côté usine à gaz, et surtout ses nombreux plantages notamment lorsqu’on essaie de gérer des fichiers multimédia avec. Et il en est de même pour les autres logiciels développé par le SIL, tel que SayMore pour gérer les métadonnées des enregistrements, WeSay pour faire des dictionnaires en collaboration avec les locuteurs et locutrices, à chaque fois que je les ai essayés, enthousiasmé par leurs fonctionnalités, j’ai été déçu par le fait qu’ils ne fonctionnaient pas correctement sur mon ordinateur.

    Aperçu de Flex

    Cette capture d’écran illustre un des modes de saisie de FLEX, ici la vue tabulaire du lexique, qui permet de rentrer et gérer les définitions des lexèmes (les entrées du dictionnaire) de manière assez rapide. On aperçoit dans la partie en haut à gauche les autres modes d’édition du lexique, et en dessous les autres catégories liées à la gestion d’un projet de documentation : Texts & Words, Grammar, Notebook et Lists. C’est à travers la catégorie Texts & Words que l’on peut par exemple importer des textes transcrits, voire des fichiers ELAN pour peupler la base de données lexicales. Grammar permet de décrire les paradigmes grammaticaux, FLEX propose d’ailleurs quelques algorithmes qui aident à la construction des paradigmes grammaticaux. Notebook et Lists servent à la gestion du projet, le premier pour prendre des notes diverses, et le second pour créer des listes, en particulier des tâches encore à réaliser.

    Et il y en a bien d’autres encore

    Il existe de nombreux autres logiciels similaires, tels qu’EXmaralda pour l’annotation des enregistrements (surtout utilisé en Allemagne à ma connaissance), Sonal (non libre, et dont le développement semble arrêté) qui est utilisé par les sociologues et les anthropologues pour une annotation thématique de leurs entretiens, Anvil, qui semble intéressant mais que je n’ai jamais réellement vu utilisé, ou enfin le vieux Transcriber qui lui était encore employé par certains projets il y a quelques années. Rentrer dans le détail de tous ces logiciels dépasserait le cadre d’une dépêche comme celle-ci, mais énumérer la diversité logicielle montre qu’il s’agit d’un secteur un minimum dynamique, d’ailleurs la question de la transcription et de l’annotation des enregistrements ne se limite pas du tout qu’au domaine de la documentation des langues du monde.

    L’archivage et la compilation de corpus

    Afin de conserver et partager les corpus et donnée enregistrées par les linguistes, chercheurs voire simplement les personnes ayant documenté une langue, il existe des archives, le plus souvent en ligne. Il y a en France par exemple Pangloss, géré par le LACITO, dédié aux langues orales, ou ORTOLANG, plus générique, pour les corpus de langue. En Océanie, il y a Paradisec. Il y a aussi ELAR, autrefois à Londres, et qui a déménagé récemment à Berlin récemment.

    Ces archives proposent diverses interfaces pour déposer, gérer et parfois même consulter les enregistrements et les annotations réalisés par les linguistes et leurs collaborateurs·e·s. À noter que pour ces archives, Ortolang décrit son architecture logicielle qui repose sur des briques ouvertes, en revanche concernant Paradisec et Pangloss, bien que leur statuts soient sûrement similaires du fait de la démarche générale de ses ingénieurs, je n’ai pas trouvé de liens vers les logiciels employés. Quant à ELAR, le logiciel utilisé est Preservica, une solution propriétaire qui, quand on a le malheur de devoir l’utiliser, fonctionne bien lentement.

    La compilation de corpus, si elle se rapproche de l’archivage en ce qu’il s’agit également de recueillir, conserver et publier les corpus des linguistes, correspond également à une édition particulière de ces corpus. La compilation de corpus est réalisé à travers la mise en place de processus de qualité, d’annotations et de conventions particulières. Les deux compilations de corpus présentées ici sont des compilations de corpus de documentation de langues orales. Les enregistrements ont été systématiquement annotés en utilisant une convention nommée les gloses interlinaires (le nom fait en fait référence à la pratique ancienne d’insérer des explications entre les lignes d’un texte. En pratique aujourd’hui, ce n’est plus vraiment ce que font les linguistes, puisque le travail est informatisé et les annotations ne sont plus entre les lignes, mais, le terme a cependant été conservé).

    DoReCo

    DoReCo est une compilation de 52 corpus en accès ouvert (NdR : auquelle l’auteur a contribué). La compilation a nécessité la mise en place de processus de qualité afin d’assurer la cohérence de l’ensemble et de fournir un certain nombre de garanties quant aux qualités du corpus.

    Les langues dans DoReCo

    Une première qualité, et l’une des originalités de DoReCo, est de proposer un alignement temporel est très fin. La durée de chaque phonème, de chaque morphèmes, de chaque mot (ici suivant la définition de la personne à l’origine du corpus, car la définition d’un mot n’a rien d’une évidence) et enfin de chaque groupe de souffle est fournie. Une deuxième qualité a été de s’assurer que pour l’ensemble des retranscriptions, chacun des termes et des morphèmes possède une glose, c’est-à-dire qu’ils possèdent une explication linguistique.

    La compilation totalise une centaine d’heures d’enregistrements audio, en grande majorité des narrations monologiques. À noter que les corpus de la compilation sont accès ouvert, via une licence Creative Commons, mais que les droits d’utilisation varient d’un corpus à l’autre. Les données sont accessibles aux formats d’ELAN : .eaf, de Praat : . TextGrid, TEI.xml, et.csv.

    Multi-CAST

    Multi-CAST est également une compilation de 18 corpus de documentation de langues différentes. Les textes annotés via le logiciel ELAN. Contrairement à DoReCo, l’alignement temporel des annotations n’est pas réalisé de manière précise, mais manuellement, par les personnes à l’origine du corpus, à l’échelle de l’énoncé. Les textes sont également en grande majorité des narrations monologiques. L’originalité de cette compilation de corpus vient du fait que les textes contiennent trois couches d’annotation particulières : GRAID, Grammatical Relations and Animacy in Discourse, (voir), puis RefIND et ISNRef (Referent Indexing in Natural Language Discourse, voir Schiborr et al. 2018).

    La page d’accueil de Multi-Cast

    Cette compilation de corpus est aussi disponible dans plusieurs formats. XML évidemment, puisque c’est le format natif d’ELAN, mais aussi TSV et il existe également un paquet pour R. Tout cela est disponible via la licence CC-BY 4.0.

    Conclusion

    J’espère que vous avez apprécié cette introduction à la documentation des langues à travers les logiciels libres. L’idée est surtout d’attiser la curiosité, car il reste évidemment encore de nombreux aspects ou points à discuter et à approfondir. La prochaine fois que j’aborderai le thème de la documentation linguistique ici, j’espère que ça sera pour présenter mon application basée sur Django pour faire de la lexicographie.

    Il y a également un autre sujet sur lequel j’aimerais bien échanger ici prochainement : la question des licences des données collectés et la négociation lorsque l’on travaille avec des personnes à tradition orale. Si ouvrir l’accès aux données de recherche et aux corpus peut sembler être une évidence pour certains, il ne faut pas oublier que souvent, les chercheurs et chercheuses de terrain collectent des informations personnelles, que la connaissance n’est pas forcément considérée comme un bien public et les enregistrements, notamment les narrations, qui ne sont pas forcément perçues comme des fictions, sont souvent couverts par des droits locaux. Enfin, ouvrir ses données de recherche, si c’est permettre à d’autres de réutiliser ses données, requiert beaucoup de travail de la part des linguistes, c’est une tâche longue, ingrate et surtout peu valorisée. Alors qu’il est de plus en plus précaire d’être chercheur en sciences humaines, il est aussi difficile de demander à ces chercheurs et chercheuses de consacrer une grande partie de leur temps à des tâches qui ne leur permettront pas de se constituer un CV, nécessaire si l’on souhaite avoir un poste stable (c’est-à-dire plus de deux ans).

    Label sans IA : ce texte a été rédigé sans aucun aide de la part d’une LLM.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    À partir d’avant-hierFlux principal

    Entretien avec GValiente à propos de Butano

    GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.

    Cet entretien revient sur son parcours et les raisons qui l’ont amené à s’intéresser à cette console.

    Game Boy Advance

    Sommaire

    Partie 1: présentation

    Qui êtes-vous, quel est votre parcours et est-il lié aux jeux vidéos ?

    Après des études d'informatique, j'ai travaillé dans plusieurs domaines autour du logiciel comme les pages web ou les applications graphiques Java/Swing.

    Aujourd'hui je travaille plutôt en C et C++ dans l'embarqué, ainsi même si mon parcours professionel n'est pas directement lié aux jeux vidéos, mon boulot actuel en est plutôt proche.

    Comme loisir, j'ai joué un peu avec RPG Maker 2K avant de commencer à programmer pour la GBA.

    Pourquoi le retrogaming est-il important pour vous ?

    D'abord pour la nostalgie : être capable de jouer à nouveau aux jeux de votre enfance est très important pour tout le monde. Malheureusement, pouvoir rejouer à de vieux jeux est quelque chose que nous sommes en train de perdre à cause des restrictions des jeux modernes (mode en ligne obligatoire, DRM…).

    Ensuite, grâce aux émulateurs il est très facile de lancer sans problème des jeux que j'ai créés pour la GBA il y a 20 ans. Si je les avais fait pour Mandrake 8.0 à la place, ce ne serait pas aussi facile de les tester aujourd'hui sans recompiler du vieux code et autre.

    Partie 2: Game Boy Advance

    Comment en êtes-vous venu à vous intéresser à la Game Boy Advance ?

    La GBA SP était un grand progrès par rapport au modèle original grâce à l'écran rétro-éclairé et la batterie intégrée, alors j'en ai acheté une dès qu'elle est sortie.

    Les jeux 2D me manquaient après la N64 et la GameCube, alors pouvoir jouer à des classiques de la 2D comme Final Fight sur une console portable était génial.

    Mais ce qui m'intéressait vraiment à propos de la GBA était la possibilité de créer des jeux grâce au HAM SDK et aux flashcarts.

    La GBA SP

    Qu’est-ce que cette console a de particulier ?

    C'est la dernière console 2D. Le système graphique de la GBA fonctionne comme les consoles 16 bits classiques comme la SNES ou la Megadrive, avec des sprites, des arrières plans…

    Toutefois elle utilise un processeur ARM 32 bits tourant à 16MHz, alors il n'est plus nécessaire ou aussi important de programmer en assembleur pour avoir de bonnes performances.

    En plus, je trouve plus "magique" de voir votre jeu tourner sur un écran d'une vieille console portable que sur un écran de télévision.

    Est-elle proche de la Game Boy ou de la SNES ?

    Au niveau graphique, c'est comme une SNES avec plus de couleurs simultanées, plus d'arrière plans et beaucoup de sprites par scanline (proche d'une Neo Geo et en plus on peut leur appliquer une rotation !). Elle a aussi des modes "bitmaps" qui rendent le rendu "logiciel" plus facile. Les jeux 3D comme Doom sont beaucoup plus rapide sur la GBA grâce à ces modes. Malheureusement la résolution de l'écran est un peu trop basse (240x160 contre 256x224 pour la SNES par exemple).

    Cependant, au niveau son, c'est pire que la SNES: la GBA a même le canal PSG que la Game Boy originale avec deux nouveaux canaux directs pour jouer des samples PCM. Avoir seulement deux canaux PCM demande presque toujours de gâcher des tonnes de cycles CPU en mixage audio et même après cela sonne toujours pire que la SNES.

    Comment fonctionne l'affichage (PPU, écran LCD) ?

    Comme je l'ai dit, cela fonctionne comme une SNES : vous avez un nombre fixe d'arrière plans et de sprites, vous les configurez en écrivant des registres. La GBA a aussi des interruptions HDMA et H-BLank, donc vous pouvez faire beaucoup d'effets "raster" comme le fameux mode 7 de la SNES.

    Néanmoins, quelques limitations pénibles du PPU de la SNES ont été retiré, ce qui rends le PPU de la GBA plus facile à programmer. Par exemple, la GBA permets d'écrire en VRAM pendant le "V-DRAM" (quand le PPU rafraîchit l'écran). Cela permets d'utiliser toutes les tailles de sprites disponibles en même temps alors que la SNES ne permettait que deux tailles simultanément.

    La console peut-elle faire de la 3D ?

    La GBA n'a pas d'accélération 3D matérielle, mais son CPU est assez rapide pour faire du rendu logiciel (à un faible taux de rafraîchissement). Il y a quelques techniques pour dessiner des polygones 3D avec des sprites 2D, mais cela vient avec des tonnes de limitations. Dans Varooom 3D, j'ai utilisé des sprites 2D poour dessiner des lignes horizontales, ce qui m'a permis de dessiner quelques polygones non texturés à 60 images par seconde.

    Comment fonctionne le son ?

    Je ne sais pas très bien comment fonctionne l'audio de la GBA, car je n'en ai pas eu besoin : il y a de très bonnes bibliothèques disponibles et j'ai préféré les intégrer plutôt que d'implémenter ma propre solution.

    Comment marche la rétrocompatibilité avec les précédentes Gameboy ?

    Il y a 3 modèles de GBA disponible: GBA, GBA SP and GBA Micro. Seules les deux premières sont compatibles avec la Game Boy originale.
    La rétrocompatibilité est transparente pour le développeur et la plupart des fonctionnalités de la Game Boy sont indisponibles en mode "natif" : un jeu GBA ne peut pas utiliser le CPU de la Game Boy par exemple.

    La machine possède une ROM interne, à quoi sert-elle ?

    La GBA démarre depuis le BIOS, une petite ROM qui montre l'écran d'accueil et exécute le jeu après cela. Il a aussi quelques fonctions liées à l'énergie, comme arrêter le CPU jusqu'au V-Blank ou mettre la console en veille. Enfin, il propose quelques routines comme des fonctions mathématiques, mais je ne les utilise pas pour des questions de performances. Cela aide aussi à éviter les bugs d'émulation du BIOS.

    La GB possède un dispositif anti piratage, comment fonctionne-t-il ?

    Je préfère vous renvoyer à l'article de copetti.org sur le sujet.

    Comment fonctionne le réseau (Game Boy Link) ?

    Comme pour l'audio, je ne sais pas trop comment cela fonctionne, car j'ai préféré intégrer une bibliothèque.
    En général je préfère une bonne bibliothèque plutôt que passer du temps à implémenter une plus mauvaise solution.

    Les cartouches peuvent-elles embarquer des coprocesseurs ?

    Bien sûr, mais le CPU est tellement puissant par rapport à ceux des consoles 16 bits, qu'il n'y en a pas souvent besoin. Le meilleur exemple d'une cartouche officielle avec un coprocesseur dont je me rappelle est la Play-Yan : elle semble embarquer un VideoCore 1 pour jouer des musiques mp3 et des vidéos mp4 depuis une carte SD.

    Les émulateurs sont-ils bons ?

    Extraordinaires. Les émulateurs GBA sont si bons que vous n'avez presque jamais besoin de tester sur du vrai matériel. Si votre jeu fonctionne sur la plupart des émulateurs modernes, alors votre jeu a toutes les chances de fonctionner sur une console réelle sans souci. D'ailleurs la plupart des membres actifs de gbadev ne possèdent même pas de GBA.

    Quels sont vos jeux commerciaux préférés sur cette console ?

    Beacoup :

    • des joyaux de Treasure comme Astro Boy Omega Factor et Gunstar Super Heroes ;
    • d'autres jeux d'action comme Ninja Five-0, Dragon Ball Advanced Adventure et Final Fight ;
    • tous les Simphony of the Night comme Castlevanias.
    • les ports de Doom ;
    • bien sûr les classiques de Nintendo classics comme Wario Ware et Zelda the Minish Cap ;
    • des RPGs bien connus comme Mother 3, Mario and Luigi et Final Fantasy I&II ;
    • quelques RPGs moins connus comme Riviera et CIMA the Enemy.

    Astro Boy Omega Factor

    Quels sont vos jeux "homebrew" préférés sur cette console ?

    Il y en a beaucoup aussi, mais mon préféré est de loin GBA Microjam '23: c'est une collection de mini jeux très amusants à la Wario Ware.
    Ce qui le rend très spécial, c'est que chaque mini-jeu a été fait par un membre différent de gbadev, c'est un jeu "communautaire".

    D'autres très bons:

    gba-microjam-23

    Partie 2 : Butano

    Pourquoi créer un SDK aujourd’hui pour si vieux système ?

    L'objectif de Butano était de pouvoir travailler avec le PPU de la GBA et le reste du système aussi facilement que possible sans perdre trop de cycles CPU. Et je pense que j'y suis arrivé : avec Butano, vous pouvez créer, afficher et détruire des sprites, des arrière plans, du texte, des effets raster et plus encore avec une seule ligne de C++.

    Les prémisses de Butano étaient une bibliothèque interne à mes jeux. Je n'avais pas de plan pour rendre ça public à part faire quelques exemples et de la documentation.

    Finalement je suis content d'avoir rendu ça public : le plus grand accomplissement de Butano est le grand nombre de jeux de qualité fait avec.

    Est-ce que vous participez vous même à la création de jeux ?

    Oui, Butano vient avec le code source de deux jeux que j'ai fait : Butano Fighter et Varooom 3D.

    Varooom 3D

    Quels ont été les difficultés pour créer Butano ?

    Pour être honnête, je n'ai pas eu beaucoup de difficultés grâce au grand nombre de bibliothèques, tutoriaux, émulateurs et outils disponibles pour la GBA.

    Vous aimeriez vivre du développement de ce logiciel libre?

    Bien sûr, mais à moins de travailler à plein temps sur un jeu homebrew à grand succès, c'est difficile voire impossible de vivre de ça.

    Est-ce que Butano gère les accessoires (e-Reader, WormCam, Play-Yan…) de la console ?

    Il gère les accessoires les plus communs : SRAM, rumble et l'horloge temps réel / real time clock (RTC).

    Pour les accéssoires plus exotiques, je pense qu'il est préférable d'utiliser d'autres bibliothèques.

    Quels conseils donneriez-vous à quelqu’un qui veut se lancer dans le développement de jeux Game Boy Advance ?

    Premièrement, vous devez apprendre les bases du C/C++ : la plupart des nouveaux connaissent uniquement des langages de haut niveau comme Javascript ou Python, malheureusement ils sont un peu trop lourd pour la pauvre GBA.

    Après, vous pouvez suivre cet excellent guide plutôt que suivre mes modestes conseils.

    Quels sont les outils pour créer/préparer des graphismes utilisable par Butano ?

    J'utilise Gimp et Usenti (un logiciel proche de MS Paint pour la GBA et notamment une gestion des couleurs 15 bits et des palettes). Toutefois, la plupart des outils permettant de produire des images indexées peuvent faire l'affaire.

    Pour le travail des cartes, j'aimais utiliser Tiled par le passé.

    Quels sont les outils pour créer/préparer des musiques et des sons utilisable par Butano  ?

    OpenMPT est l'outil audio le plus populaire pour la GBA, les musiques étant générallement créées par un tracker. Il a aussi de bons outils pour travailler avec les samples. D'autres utilisent hUGETracker et Furnace.

    Est-il possible de créer ses propres cartouches ?

    Je ne suis pas juriste, mais comme Butano est sous licence zlib, tant que vous respectez cette licence et celles des autres dépendances, vous pouvez faire vos propres cartouches et même les vendre.

    Je pense que ce que font la plupart des gens aujourd'hui, c'est acheter des cartouches pirates Pokémon pas chères, et les flasher pour y mettre leurs propres jeux.

    Pourquoi le choix de C++ pour ce SDK ?

    Comme je l'ai dit, un langage de haut niveau avec ramasse miettes est généralement trop pour la GBA.

    Entre C et C++, j'ai choisi ce dernier, car il permet de réduire grandement la quantité de code sans gâcher trop de CPU.

    Par exemple:

    • les destructeurs de C++ permettent de ne pas avoir à écrire trop de code pour nettoyer les ressources, ce qui est une source de bugs importante sur les grands projets GBA ;
    • la GBA ne gère pas les nombres flottants en hardware, donc utiliser des nombres en virgule fixe est essentiel. Grâce à la surcharge d'opérateurs, C++ permets d'écrire des classes qui se comportent comme des nombres flottants.
    • L'opérateur constexpr permet de générer et stocker des tables d'appels ou autres constantes en ROM sans avoir à utiliser d'outils externes.

    Est-ce qu'il existe d'autres SDK libres pour ces consoles ?

    Il y a beaucoup de SDK pour GBA, mais malheureusement (à mon avis) la plupart sont de plus bas niveau que Butano.

    Voici une liste de ressources (compilers, toolkits, libraries, etc.) pour la GBA: resources GBA.

    Partie 3: pour finir

    En dehors du travail, quels logiciels libres utilisez-vous, sur quel OS ?

    J'utilise généralement Windows à cause du boulot et de certains jeux PC, mais la plupart des programmes que j'utilise sont libres.

    L'éditeur de code que j'utilise presque toujours est Qt Creator, il est génial pour C++.

    À part les logiciels libres pour le développement GBA, j'utlise Firefox, Notepad++, VLC, 7-Zip, LibreOffice, TortoiseGit, VirtualBox et bien sûr les émulateurs pour les vieilles consoles et bornes d'arcade.

    Au travail, quels logiciels libres utilisez-vous, sur quel OS ?

    Pour le développement embarqué, j'utilise GCC et les outils GNU. Pour les applications de bureau, j'utilise Qt avec MinGW.

    GCC est aussi le compilateur le plus populaire pour le développement GBA, alors je n'aurais pas pu l'éviter même si j'avais voulu.

    D'autres logiciels que j'utilise au travail : Thunderbird, Putty and WinSCP.

    Quelle est votre distribution GNU/Linux préférée et pourquoi, quels sont vos logiciels libres préférés ?

    Ubuntu est bien pour le peu d'usage de Linux que je fais.

    Mes logiciels libres favoris sont ceux avec lesquels je passe le plus de temps : Firefox, Qt Creator, GCC, les émulateurs.

    Quelle question auriez-vous adoré qu’on vous pose ?

    Mmh… rien qui me vienne à l'esprit.

    Quelle question auriez-vous détesté qu’on vous pose ?

    Pourquoi perdez-vous votre temps avec des consoles vieilles de 20 ans ?

    Maintenant que j'y pense… J'aurais adoré qu'on me demande ça.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Nouveautés d'avril 2024 de la communauté Scenari

    Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous rédigez une seule fois votre contenu et vous pouvez les générer sous plusieurs formes : site web, PDF, OpenDocument, diaporama, paquet SCORM (Sharable Content Object Reference Model)… Vous ne vous concentrez que sur le contenu et l’outil se charge de créer un rendu professionnel accessible et responsive.

    À chaque métier/contexte son modèle Scenari :

    • Opale pour la formation
    • Dokiel pour la documentation
    • Optim pour les présentations génériques
    • Topaze pour les études de cas

    Mini-webinaire Scenari

    L’association propose un mini-webinaire intitulé « Scenaristyler : ajouter son logo dans les publications PDF, web, diapo » le lundi 15 avril 2024 de 17h à 18h heure de Paris, à l’adresse https://scenari.org/visio/miniwebinaire.
    Pour préparer la session, vous pouvez participer à ce fil de discussion sur le forum Scenari.

    Rencontres Scenari : inscriptions ouvertes

    Découvrez le programme en détails, et inscrivez-vous dès maintenant aux Rencontres Scenari 2024 à l’Université Toulouse Capitole du 3 au 7 juin.

    Tarifs préférentiels pour toute inscription avant le 3 mai. N’attendez pas !

    L’équipe de l’UT Capitole a négocié des options de logement. Les détails sur le site des Rencontres.

    Aidez-nous à diffuser l’événement et partagez l’annonce des Rencontres sur les réseaux sociaux : Mastodon, LinkedIn et Telegram.

    Offres d’emploi autour de Scenari

    Deux offres d’emploi autour de Scenari :

    • Une offre de Sorbonne Université pour un⋅e ingénieur⋅e pédagogique devant « connaître les outils numériques de l’établissement » : Scenari entre autres.
    • Une offre d’une école supérieure localisée à La Défense pour un⋅e technicien⋅ne support de plateformes pédagogiques. Le poste consiste à « administrer des environnements numériques », « suite logicielle Scenari » entre autres, et à « participer à la médiatisation des contenus en utilisant la chaîne éditoriale Scenari ».

    Nouvelles versions d’outils Scenari

    Nouvelles versions d’outils Scenari :

    • Sortie de IDKey 2 et mise à jour de OpenKeys. Retrouve les détails sur le forum.
    • Nouvelle version de Topaze (4.0.7) apportant quelques corrections.
    • Sortie de TechnOpale 2.2.5 (dérivé d’Opale 4.0.5). TechnOpale est une modification d’Opale destinée à l’enseignement des sciences expérimentales dans le secondaire. Les détails d’installation de la nouvelle version sont sur le forum.

    Mettez à jour vos modèles dès que possible !

    Évolutions Opale : à vos claviers

    Le Comité Opale prévoit de se réunir en mai pour analyser les demandes d’évolution, et les passer à priorisation par les adhérent⋅e⋅s lors des Rencontres 2024 (tiens, encore une bonne raison pour adhérer :) ).

    Donc si vous avez une idée d’évolution, essayez de la proposer avant mai (sinon ce n’est pas grave ça sera pour l’année prochaine).

    Ça se passe sur la place des évolutions Opale (lisez les explications pour bien comprendre comment on s’y prend)

    Traductions vers l’italien

    L’équipe de traduction communautaire vers l’italien a été constituée.

    Si vous pouvez donner un coup de main pour traduire du français vers l’italien (chacun⋅e en fonction de ses disponibilités), écrivez à direction@scenari.org.

    Ainsi nos amis transalpins pourront utiliser aussi les outils Scenari dans leur langue.

    Le savais-tu ?

    Astuce Scenari : si vous utilisez ScenarichainDesktop ou bien toute autre application Scenari individuellement sur votre propre poste, il est possible de manipuler deux fenêtres application du même atelier.

    Il suffit de cliquer sur le menu de trois petits points verticaux en haut à gauche de la fenêtre, puis d’aller dans le sous-menu Fenêtres > Dupliquer la fenêtre. Il existe un raccourci clavier : ctrl+n sur Windows/Linux, pomme+n sur Mac.

    Duplication d’une fenêtre Scenari desktop

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    ❌
    ❌