Les assets Enhanced (gen9) font crasher FiveM : pourquoi, et la solution
Vous installez une map ou une voiture téléchargée pour GTA V Enhanced et FiveM crashe au chargement. Ce n'est pas la config de votre serveur et le mod n'est pas cassé : c'est une différence de format binaire entre Enhanced et Legacy.
Ce qui se passe vraiment
GTA V Enhanced (le build 1.0.x « gen9 ») livre ses fichiers de resource avec une version de resource RSC7 différente de celle de Legacy. FiveM est basé sur Legacy : son loader lit l'en-tête, interprète mal les paging fixups et plante. Le log de crash est reconnaissable :
Invalid fixup, address is neither virtual nor physical (in some_file.ydr)
Souvent avec gta-streaming-five.dll dans la pile. Un seul fichier Enhanced dans une resource suffit à faire tomber tout le serveur : un seul .ydr de vitre dans un MLO par ailleurs correct y suffit.
Comment repérer un téléchargement Enhanced
- Un dossier nommé _g9, gen9 ou enhanced dans l'archive.
- La page du mod indique « for Enhanced » ou « 1.0.3xxx+ ».
- Un dossier legacy et un dossier enhanced sont inclus tous les deux, et les gens prennent le mauvais.
La version de resource diffère selon le type : 165 pour les drawables sur Legacy contre 159 sur Enhanced, 13 contre 5 pour les dictionnaires de textures, 162 contre 171 pour les fragments. Les bounds sont en 43 dans les deux cas, et les formats meta sont communs, ce qui explique qu'un pack cassé se charge parfois en partie avant de crasher.
Reconvertir en Legacy
La conversion est un aller-retour par XML : lire le binaire avec le parser qui correspond à la version réelle de son en-tête, puis le réécrire dans la version Legacy. Il faut le faire par type de fichier et par fichier : drawables, fragments, dictionnaires de textures, dictionnaires de drawables et bounds en ont tous besoin.
FIVEFORGE lit la version dans l'en-tête et choisit le bon parser, donc un MLO ou un pack d'assets Enhanced ressort en fichiers Legacy que FiveM peut streamer. Tout le reste, hormis l'encodage de la resource, est laissé tel quel.
Avant d’accuser le convertisseur
Si une resource convertie crashe encore, cherchez dans le log de crash le nom du fichier en échec. Un seul fichier oublié, un asset verrouillé par escrow, ou un dossier _g9 resté listé dans le manifest reproduiront le même crash. Vérifiez aussi que rien ne référence un fichier que vous avez supprimé.
Questions fréquentes
Pourquoi les mods GTA 5 Enhanced font-ils crasher FiveM ?
Enhanced (gen9) livre ses fichiers de resource dans une version RSC7 différente de Legacy. Le loader Legacy de FiveM interprète mal les paging fixups et crashe avec 'invalid fixup, address is neither virtual nor physical'.
Les assets Enhanced peuvent-ils être convertis pour marcher sur FiveM ?
Oui. Chaque fichier fait un aller-retour par XML et est réécrit dans la version de resource Legacy. Il faut le faire fichier par fichier : un seul fichier oublié fait encore crasher le serveur.
Quels types de fichiers sont concernés ?
Les drawables (.ydr), les fragments (.yft), les dictionnaires de textures (.ytd), les dictionnaires de drawables (.ydd) et les bounds (.ybn). Les bounds partagent la même version, et les formats meta sont communs, ce qui explique qu'un mauvais pack puisse d'abord se charger en partie.
Est-ce la même chose que l'escrow ?
Non. Les fichiers escrow (.fxap) sont chiffrés et ne peuvent pas du tout être convertis. Le problème gen9 est une différence de version de format dans des fichiers non chiffrés.
Essayez gratuitement
Créez un compte gratuit, rejoignez le Discord pour vos crédits et créez votre premier asset en quelques minutes.
