====== Émulation ======
L'émulation de console de jeux permet à un ordinateur, un smartphone ou un autre appareil moderne de reproduire le fonctionnement d'une console de jeux vidéo ancienne ou différente. Grâce à des logiciels spécialisés appelés émulateurs, il devient possible d'exécuter des jeux conçus pour des systèmes comme la NES, la Super Nintendo, la Sega Genesis, la PlayStation, et bien d'autres, sur des plateformes contemporaines. \\
L'émulateur imite le matériel de la console d'origine, en associant des fichiers de **ROMs**, c'est à dire des fichiers réalisés à partir des cartouches ou des disques originaux.
===== RetroARCH =====
RetroArch est une logiciel open-source qui permet d'émuler une large gamme de consoles de jeux vidéo, d'ordinateurs et de systèmes de jeux d'arcade. Il fonctionne comme un «//frontend//» en fournissant une interface unifiée pour lancer et configurer des jeux à partir de nombreux systèmes différents.
RetroArch est multiplateforme (Windows, macOS, Linux, Android, iOS, certaines consoles).
RetroArch utilise des «cœurs» pour émuler différents systèmes. Chaque cœur est essentiellement un émulateur spécifique à une plateforme (par exemple, un cœur pour la Nintendo Entertainment System, un autre pour la Super Nintendo, etc.). Les coeurs sont téléchargeables directement dans l'application principale.
On peut l'installer sur linux sous forme de paquet snap : https://snapcraft.io/retroarch \\
Sous cette forme on retrouve les données dans le répertoire ''/home/(user)/snap/retroarch/(version)/.config/retroarch/system'' \\
Les chemins vers dossiers locaux utilisés sont visibles dans retroarch, menu réglages/dossiers
**Ressources**
* https://www.retroarch.com/
* https://doc.ubuntu-fr.org/retroarch
* coeurs conseillés par console : https://www.reddit.com/r/emulation/comments/10ie2vu/list_of_best_emulators_for_each_console_2023/
* BIOS et autres (kickstart, etc.) : https://github.com/Abdess/retroarch_system/tree/libretro
Au clavier :
* F1 ouvre le menu de retroarch sans quitter le jeu
* F8 copie écran (dans le dossier ''/home/user/snap/retroarch/2879/.config/retroarch/screenshots'')
* d'autres raccourcis dans la doc de libretro : https://docs.libretro.com/guides/input-and-controls/
==== Enregistrement ====
Il est très simple d'enregistrer une capture d'écran avec F8, on peut aussi enregistrer des vidéos directement, mais je n'ai pas trouvé comment. L'alternative est d'utiliser OBS.
==== Emulateurs ====
Pour installer un «coeur» (= émulateur) : menu principal / mise à jour en ligne / téléchargement de coeur
**mGBA** (Game Boy Advance) : https://github.com/mgba-emu/mgba/blob/master/README.md
* touches du clavier pour remplacer une manette :
* Bouton A : X
* Bouton B : W
* Bouton Left : Q
* Bouton Right : S
* Start : enter
* Select : shift
* Reset : X + W + shift + enter
* Croix directionnelle : flèches du clavier
* pour remapper mes contrôles, voir : https://www.reddit.com/r/RetroArch/comments/14y3x60/how_to_configure_keyboard_controls/
* analyse complète du hardware de la console : https://www.copetti.org/writings/consoles/game-boy-advance/#flashcarts
* tutoriel mGBA : https://fantasyanime.com/emuhelp/mgba
**Gambatte** (Game Boy, Game Boy Color) : https://github.com/BenHetherington/gambatte
* https://docs.libretro.com/library/gambatte/
* CTRL+F : full screen
**melonDS** (Nintendo DS) : https://emulation.gametechwiki.com/index.php/MelonDS
* https://emulation.gametechwiki.com/index.php/Nintendo_DS_emulators#Emulators
* F11 : masquer le pointeur de souris
**Beetle Cygne** (Wonderswan, Wonderswan Color) : https://docs.libretro.com/library/beetle_cygne/
* touche maj de droite pour changer l'orientation de l'écran
**PPSSPP** (PSP : Playstation Portable)
**PUAE** (Amiga)
* https://docs.libretro.com/library/puae/
Pour un programme avec plusieurs disquettes, créer un fichier m3u avec les différents noms de fichiers, puis dans le menu«disk control» de retroarch, faire les opérations nécessaires.
===== Divers =====
==== Basilisk II (Classic Macintosh) ====
Dans le navigateur : https://jamesfriend.com.au/projects/basiliskii/BasiliskII-worker.html
* https://github.com/jsdf/macemu
===== Ressources =====
https://emulation.gametechwiki.com/index.php/Main_Page \\
Emulators written in javascript : https://github.com/fcambus/jsemu