Hack Taito Egret 2 Mini

Il est possible de hack, flasher, ou jailbreaker (selon votre préférence) la mini-borne Taito Egret 2 Mini, afin de faire tourner d’autres jeux dessus que ceux qui sont prévus à la base.

Avant-propos

Je vous transmet ici mon expérience avec le hack de la machine, que je n’ai pas développé moi-même. Je ne pourrais pas être tenu responsable de quoi que ce soit, et vous faites ces manipulations à vos risques et périls.

Le hack officiel est disponible ici : Release Batocera v36 for Egret II Mini alpha 0.1 · acm-cfw/acm-cfw.github.io ; si vous avez un doute sur ce que j’ai écrit ici, allez voir le readme officiel, je peux m’être trompé.

Problèmes connus

Le hack est encore en version « alpha » : peu stable, parfois lent, pas mis à jour depuis plusieurs années, et il fait assez « bricolage » ; il est bien utile, mais loin d’être parfaitement au point. Cela dit, comme il s’installe en parallèle du système d’origine, si vous souhaitez revenir à la version de base, il suffit de retirer la carte SD : c’est très pratique.

Il y a plein de petits bugs ou manques de finalisation : par exemple il y a des problèmes de tearing, des bugs de sortie HDMI, des incohérences sur la rotation de l’écran, et autres petits problèmes du genre, ainsi que des problèmes de performance. Certains peuvent être résolus ou atténués, d’autres non.

Le système n’est pas du tout optimisé, et beaucoup de jeux sont sont trop lents, que ce soit sur FBNeo ou MAME 2003+ : par exemple Darius Gaiden est à 30fps sur FBNeo et 40fps sur MAME 2003+, alors qu’il marche très bien sur le système de base ; OutRun est à 40fps sur FBNeo et 55fps sur MAME. D’autres tournent très bien, comme la NeoGeo ou le CPS1/CPS2 : il faudra tester par vous-même pour vous faire une idée, mais abandonnez l’espoir d’une borne « parfaite » pour le moment.

Nécessaire et prérequis

Afin de hacker la Taito Egret 2 Mini, vous aurez besoin du matériel suivant :

  • Un ordinateur : il n’est pas possible d’effectuer la manipulation sans ordinateur, mais cela fonctionnera avec Windows, Linux ou MacOS (du moins en théorie).
  • Un câble USB-A vers USB-A : ce n’est pas un câble courant, car il ne sert qu’à relier deux ordinateurs, ce que l’on ne fait pour ainsi dire jamais. Vous pourrez en trouver un pour quelques euros sur Amazon ou Aliexpress, par exemple.
  • Une carte SD : attention, la Egret Mini ne supporte que les SDHC, qui font au maximum 32Go, et ne peut pas lire les autres formats de plus grande capacité.
  • Un lecteur de carte SD, forcément.

Si vous êtes sous Windows, vous devrez installer certains drivers USB : Zadig et/ou Classic Driver/libwdi. Je ne sais pas lequel des deux est nécessaire, j’ai installé les deux et ça a marché.
Si vous êtes sous Mac, il faudra utiliser Homebrew pour installer quelques dépendances : brew install libusb ldns dtc
Si vous êtes sous Linux, bonne chance.

Procédure

Comme précisé ci-dessus, je partirai du principe que vous êtes sous Windows, n’ayant moi-même pas réussi à faire fonctionner le hack sous MacOS.

  • Eteignez la Egret Mini, débranchez tous les câbles, mettez l’interrupteur sur OFF.
  • Téléchargez l’image de Batocera pour la Egret Mini et utilisez Balena Etcher pour la flasher sur la carte SD.
  • Retirez la carte SD puis re-branchez la : Windows va vous proposer de formater une partition inconnue, laissez-le faire. La SD aura ensuite une partition d’environ 2 ou 3 Go avec le système, et une partition de 28 Go vierge.
  • Insérez la carte SD flashée dans la Egret Mini.
  • Installez les drivers ci-dessus (Zadig et Classic Driver) sur votre ordinateur et redémarrez.
  • Téléchargez le fichier egret2-install et dézippez-le quelque part.
  • Ouvrez une ligne de commande dans ce répertoire : faites un clic droit sur le dossier en maintenant la touche « maj » et sélectionnez « ouvrir une commande ici ».

Vous êtes prêt.

  • Mettez l’interrupteur de la Egret Mini sur la position ON mais ne branchez pas encore l’alimentation.
  • Branchez le câble USB-A sur le port « 2P » de la machine mais ne le branchez pas encore à votre ordinateur.
  • Dans la ligne de commande sur votre ordinateur, lancez « e2m-backup-and-install.bat » (ou .sh sur Mac et Linux)
  • Attendez de voir le message « *** PRESS A KEY WHEN READY AND THEN CONNECT THE E2M TO THE USB *** » ; vérifiez qu’il n’y a pas de message d’erreur du type « driver not found », si c’est le cas, eh bien installez les drivers, redémarrez, et bonne chance.
  • Appuyez sur une touche sur votre ordinateur ; cela ouvrira une fenêtre qui affichera un message en boucle de tentative de connexion ; c’est normal.
  • Branchez l’alimentation de la Egret Mini, ce qui la fera démarrer.
  • Sans attendre, branchez l’USB-A à votre ordinateur : cela doit être fait avant que la machine ait fini de démarrer.

Si le timing est respecté, l’installation va continuer ; si ce n’est pas le cas, et que la Egret Mini termine de démarrer ou que votre ordinateur affiche un message d’erreur, c’est que vous avez raté quelque chose ; débranchez tout et recommencez, j’ai dû m’y reprendre à plusieurs fois avant d’avoir le bon timing.

La ligne de commande sur votre ordinateur affichera plusieurs barres de progression, puis un message : « Done. The installation will continue on the E2M. The E2M will reboot when the custom boot has been installed ». Ne touchez à rien ! L’écran de l’Egret Mini va rester noir quelques secondes/minutes, le temps que tout soit installé. Le système patché va ensuite démarrer : d’abord en affichant un logo rond, puis Batocera va s’installer durant quelques minutes pour le premier démarrage ; les suivants prendront moins de temps.

Une fois que vous avez accès au menu de Batocera, vous pouvez l’éteindre (bouton rose puis « shutdown ») : il est temps de terminer la configuration.

Copie des roms et scrape

Reprenez la carte SD et remettez-la dans votre ordinateur : dans la partition vierge, Batocera y aura créé un ensemble de dossiers.

Dans le dossier « bios », il faudra copier vos… bios : en cherchant « batocera bios pack » vous trouverez des zip tous prêts, par exemple ici : 2023 PACK FULL BIOS BATOCERA. C’est également dans ce dossier bios que l’on met les samples pour les système arcade, dans fbneo/samples, mame2003-plus/samples et mame2010/samples.

Dans le dossier « roms », vous y mettez vos… roms, hé oui. La structure devrait être assez claire, chaque dossier correspond à un système. Les formats acceptés sont détaillés dans le wiki : systems [Batocera.linux – Wiki]. Ne supprimez pas les dossiers que vous ne souhaitez pas utiliser, ils seront recréés au prochain boot, parfois avec un jeu freeware à l’intérieur qui polluera votre interface.

Pour « scraper » les roms, afin d’avoir de jolies images, mieux vaut passer par un logiciel comme Skraper qui permet de tout faire depuis votre ordinateur et de tout bien configurer comme vous voulez. C’est plus joli, plus rapide, plus pratique.

Configuration

Dans le dossier « system » de la SD, ouvrez le fichier « batocera.conf » avec un éditeur de texte.

  • Vous pouvez passer kodi.enabled à 0 pour désactiver ce lecteur de vidéos que vous n’utiliserez probablement pas sur cette borne.
  • Changez audio.volume pour modifier le volume de démarrage ; je l’ai passé à 50, et la valeur configurée dans les menus viendra l’écraser.
  • Passez audio.bgmusic à 0 pour désactiver la musique de fond dans les menus (quelle idée ?!).
  • A la fin du fichier, copiez les lignes suivantes :
# screen rotation
global.retroarch.input_rotate_landscape_btn = "14"
global.retroarch.input_rotate_portrait_btn = "15"

# buttons mapping
global.retroarch.input_player1_a = "b" 
global.retroarch.input_player1_a_btn = "5" 
global.retroarch.input_player1_b = "a" 
global.retroarch.input_player1_b_btn = "1" 
global.retroarch.input_player1_x = "e"
global.retroarch.input_player1_x_btn = "0"
global.retroarch.input_player1_y = "d" 
global.retroarch.input_player1_y_btn = "2" 
global.retroarch.input_player1_l = "f" 
global.retroarch.input_player1_l_btn = "3" 
global.retroarch.input_player1_r = "c" 
global.retroarch.input_player1_r_btn = "4" 

global.retroarch.input_save_state = "x"
global.retroarch.input_save_state_btn = "nul"

# performances
global.runahead=0
global.vrr_runloop_enable=1
global.rewind=0
global.retroarch.video_vsync = "false"
global.retroarch.vrr_runloop_enable = "true"

# RA GUI
global.retroarch.menu_driver=rgui

Sauvegardez, remettez la carte SD dans la Egret Mini et redémarrez-la.
Ouvrez le menu principal (bouton bleu) puis réglez quelques petites choses :

  • Si les boutons valider/annuler par défaut ne vous conviennent pas : paramètres sytème > options développeur > cocher « Inverser les boutons A/B dans EmulationStation »
  • Paramètres système > langue > français ; puis redémarrez.
  • Paramètres des jeux
    • Rewind : mettre sur OFF
    • Ouvrir Latency reduction
    • Run-ahead frames : mettre sur NONE
  • Paramètres système
    • Paramètre du splash : mettre sur « image splash Batocera » (pour réduire légèrement le temps de boot)

Pour changer les DIP switches (options de jeux) dans FBNeo : blanc + B > options de coeur > DIP switches. Pour les DIP switches de MAME il faut utiliser L3 (appui sur le stick de gauche) ce qui est difficilement mappable sur le stick de la manette.

Configuration des manettes supplémentaires

Les boutons de la machine sont notés ABCDEF, en partant du bas à gauche et en remontant jusqu’en haut à droite. Sur un Street Fighter, la ligne du bas est le pied, et la ligne du haut le poing ; à gauche le faible, à droite le fort. Donc A est « pied faible », C est « pied fort », D est « poing faible » et F est « poing fort ».

Avec toutes les étapes ci-dessus :

  • le bouton rose est « select » (insérer des crédits)
  • le bouton bleu est « start »
  • le bouton blanc est le bouton spécial RetroArch, à utiliser en combinaison avec d’autres :
    • blanc + bleu pour revenir à l’accueil
    • blanc + A pour redémarrer le jeu
    • blanc + B pour ouvrir le menu RetroArch (qui est pivoté sur le côté puisqu’en fait l’écran est vertical par défaut, mais il suffit de ressortir l’écran pour le pivoter sans le rentrer, puis le remettre droit)
    • d’autres raccourcis sont censés fonctionner mais c’est plus aléatoire

Certains jeux, comme les jeux de course sur FBNeo (OutRun etc), utilisent les gâchettes par défaut pour accélérer et freiner ; il faudra ouvrir le menu RetroArch > Touches > Touches du port 1 > et définir les actions sur les bons boutons. Puis revenir, aller dans « gérer les fichiers de remappage », et sélectionnez « sauvegarder le remappage pour le jeu ».

Si vous branchez une manette (pad, stick ou trackball/spinner) vous devrez passer par le menu pour la configurer : paramètre des manettes > configurer une manette. Le bon mapping des boutons est : A = B ; B = A ; X = E ; Y = D ; START = bleu ; SELECT = rose ; L1 = F ; R1 = C ; HOTKEY = blanc. Malheureusement il semble y avoir un bug lorsque l’on définit une manette USB en manette « joueur 1 » et les boutons font n’importe quoi ; vous ne pourrez l’utiliser qu’en « joueur 2 ».

Alternativement, en utilisant la borne : lancez un jeu, ouvrez le menu RetroArch (blanc + A), faites retour (B) > réglages > entrées > touches du port 1 (ou celui que vous avez configuré pour votre pad) > et redéfinissez les boutons. Une fois fait, sortez du menu (B B B > menu rapide > reprendre), validez que cela fonctionne. Je n’ai pas trouvé de manière d’enregistrer correctement cette configuration, afin qu’elle soit rechargée à chaque fois, il faudra donc refaire la manipulation.

Pour le trackball et spinner : le trackball est détecté comme une souris, et le spinner comme une molette de souris. Vous devrez le configurer (jeu par jeu) dans les menus de MAME, et il faudra donc configurer l’ouverture de ce menu par un autre raccourci (à trouver).