À propos du projet

Paramdex est une collection de ressources pour travailler avec les paramètres de jeu (params) via SoulsFormats et les outils qui en dérivent. Elle cible le modding de données et les outils pour les titres FromSoftware, plutôt que le gameplay lui-même. Structure : chaque jeu pris en charge possède trois dossiers. Defs contient les paramdefs en XML, nécessaires pour éditer les données de param ; les noms de fichiers sont arbitraires et doivent être appliqués en fonction des métadonnées incluses après chargement. Names contient des noms de lignes prédéfinis, principalement utiles pour les jeux plus récents où les noms ont été supprimés, et les noms ne sont pas garantis pour chaque param. Tdfs contient les paramtdfs qui donnent des noms conviviaux aux types énumérés ; ceux-ci n'ont été officiellement fournis qu'avec Demon's Souls. Pour Armored Core VI, certains fichiers de param sont altérés et ne contiennent pas la chaîne de type de param, donc ParamTypes.txt liste les types corrects pour ceux qui en ont besoin. Couverture : Dark Souls (DS1), Dark Souls: Remastered (DS1R), Dark Souls II: Scholar of the First Sin (DS2S), Dark Souls III (DS3), Demon's Souls (DES), Bloodborne (BB), Sekiro (SDT), Elden Ring (ER) et Armored Core VI (AC6). La provenance des définitions est importante pour les contributeurs : les paramdefs de DeS, DS1 et BB ont été fournis avec les jeux et ne doivent être modifiés que pour traduire les noms d'affichage et les descriptions. Les paramdefs de SDT, ER et AC6 sont principalement officiels mais légèrement étendus en raison des mises à jour, et la même restriction s'applique aux champs d'origine. Les paramdefs des autres jeux ont été rétroconçus, donc des améliorations sont les bienvenues. Le README documente également comment écrire des paramdefs. Chaque paramdef doit contenir ParamType (lie le paramdef à ses params), DataVersion (révision de la structure des données de param), BigEndian, Unicode (si les chaînes de description sont en UTF-16), FormatVersion (format binaire du paramdef) et Fields. Chaque Field possède un attribut Def obligatoire donnant le type, le nom interne, la taille de bit ou la longueur de tableau optionnelle, et une valeur par défaut optionnelle, écrits en style de déclaration C, par exemple u16 iconId, u16 iconId = 1000, u8 enableGuard:1 pour un champ de bits, ou dummy8 padding[2] pour un tableau. Les éléments optionnels personnalisent le comportement de l'éditeur : DisplayName, Enum (correspond à un paramtdf), Description, DisplayFormat (chaîne de format printf), EditFlags (indicateurs connus Wrap et Lock), Minimum, Maximum, Increment, SortID pour l'ordre d'affichage, et les chaînes à but inconnu UnkB8, UnkC0 et UnkC8. Les éléments omis reçoivent des valeurs par défaut sensées basées sur le type de champ ; Default, Minimum, Maximum et Increment sont toujours des flottants et ne sont pas significatifs pour les types de tableau. Un exemple entièrement chargé combine Def avec DisplayName, Enum, Description, DisplayFormat, EditFlags, Minimum, Maximum, Increment et SortID. Les types de champ pris en charge sont s8, u8, s16, u16, s32, u32 (tous prenant en charge la taille de bit mais pas la longueur de tableau), b32 (booléen quatre octets), f32, angle32, f64, fixstr et fixstrW (chaînes à largeur fixe Shift-JIS et UTF-16, longueur de tableau obligatoire), et dummy8 (octet ou tableau d'octets, généralement du remplissage, nécessitant soit la taille de bit soit la longueur de tableau, mais pas les deux). Les contributeurs listés incluent EvanDeadlySins, GiveMeThePowa, katalash, Pavuk, thefifthmatt, TKGP et Vawser.