Sobre o projeto
Paramdex é uma coleção de recursos para trabalhar com parâmetros de jogos (params) por meio do SoulsFormats e ferramentas derivadas dele. Tem como alvo a modificação de dados e ferramentas para títulos da FromSoftware, em vez da jogabilidade em si.
Estrutura: cada jogo suportado possui três pastas. Defs contém paramdefs em XML, necessários para editar dados de parâmetros; os nomes dos arquivos são arbitrários e devem ser aplicados com base nos metadados incluídos após o carregamento. Names contém nomes de linhas predefinidos, úteis principalmente para jogos mais recentes onde os nomes foram removidos, e os nomes não são garantidos para todos os parâmetros. Tdfs contém paramtdfs que fornecem nomes amigáveis para tipos enumerados; estes foram oficialmente incluídos apenas em Demon's Souls. Para Armored Core VI, alguns arquivos de parâmetros estão corrompidos e não possuem a string do tipo de parâmetro, então ParamTypes.txt lista os tipos corretos para aqueles que precisam.
Cobertura: 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) e Armored Core VI (AC6).
A proveniência das definições é importante para os contribuidores: paramdefs para DeS, DS1 e BB foram incluídos com os jogos e só devem ser alterados traduzindo nomes de exibição e descrições. Paramdefs para SDT, ER e AC6 são em sua maioria oficiais, mas ligeiramente estendidos devido a atualizações, e a mesma restrição se aplica aos campos originais. Paramdefs para os jogos restantes foram obtidos por engenharia reversa, então melhorias são bem-vindas.
O README também documenta como escrever paramdefs. Cada paramdef deve conter ParamType (liga o paramdef aos seus params), DataVersion (revisão da estrutura de dados do parâmetro), BigEndian, Unicode (se as strings de descrição são UTF-16), FormatVersion (formato binário do paramdef) e Fields. Cada Field tem um atributo Def obrigatório que fornece o tipo, nome interno, tamanho de bit opcional ou comprimento de array, e um valor padrão opcional, escrito em estilo de declaração C, por exemplo, u16 iconId, u16 iconId = 1000, u8 enableGuard:1 para um campo de bits, ou dummy8 padding[2] para um array.
Elementos opcionais personalizam o comportamento do editor: DisplayName, Enum (corresponde a um paramtdf), Description, DisplayFormat (string de formato printf), EditFlags (flags conhecidas Wrap e Lock), Minimum, Maximum, Increment, SortID para ordenação de exibição, e as strings de propósito desconhecido UnkB8, UnkC0 e UnkC8. Elementos omitidos recebem padrões sensatos com base no tipo de campo; Default, Minimum, Maximum e Increment são sempre floats e não são significativos para tipos de array. Um exemplo totalmente carregado combina Def com DisplayName, Enum, Description, DisplayFormat, EditFlags, Minimum, Maximum, Increment e SortID.
Os tipos de campo suportados são s8, u8, s16, u16, s32, u32 (todos suportando tamanho de bit, mas não comprimento de array), b32 (bool de quatro bytes), f32, angle32, f64, fixstr e fixstrW (strings de largura fixa Shift-JIS e UTF-16, comprimento de array obrigatório), e dummy8 (byte ou array de bytes, tipicamente padding, exigindo tamanho de bit ou comprimento de array, mas não ambos).
Os contribuidores listados incluem EvanDeadlySins, GiveMeThePowa, katalash, Pavuk, thefifthmatt, TKGP e Vawser.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.