diff options
| author | Jari Vetoniemi <mailroxas@gmail.com> | 2017-03-30 17:31:44 +0300 | 
|---|---|---|
| committer | Jari Vetoniemi <mailroxas@gmail.com> | 2017-04-13 14:49:46 +0300 | 
| commit | 76b8c9e03c97b16d9ff97f3b79c0ecbff0f5e7f2 (patch) | |
| tree | 70f1d22a923d1c01b22b2fade3b6e96365990dda /spec | |
Initial commit
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/ability.fspec | 11 | ||||
| -rw-r--r-- | spec/ftable.fspec | 3 | ||||
| -rw-r--r-- | spec/item.fspec | 28 | ||||
| -rw-r--r-- | spec/model.fspec | 25 | ||||
| -rw-r--r-- | spec/name.fspec | 5 | ||||
| -rw-r--r-- | spec/spell.fspec | 18 | ||||
| -rw-r--r-- | spec/vtable.fspec | 3 | 
7 files changed, 93 insertions, 0 deletions
diff --git a/spec/ability.fspec b/spec/ability.fspec new file mode 100644 index 0000000..3c2c890 --- /dev/null +++ b/spec/ability.fspec @@ -0,0 +1,11 @@ +// Abilities +struct ability { +   u16 index; +   u16 icon_id; +   u16 mp_cost; +   u16 unknown; +   u16 targets; +   u8 name[32] = sjis; // The kind actually depends on ROM section +   u8 description[256] = sjis; // ^ Ditto, we probably can't express this +   u8 padding[726] = pad; +}; diff --git a/spec/ftable.fspec b/spec/ftable.fspec new file mode 100644 index 0000000..615b7b3 --- /dev/null +++ b/spec/ftable.fspec @@ -0,0 +1,3 @@ +struct ftable { +   u16 id; +}; diff --git a/spec/item.fspec b/spec/item.fspec new file mode 100644 index 0000000..c4d1767 --- /dev/null +++ b/spec/item.fspec @@ -0,0 +1,28 @@ +struct string_info { +   u32 offset; +   u32 flags; +}; + +struct strings { +   u32 nmemb; +   struct string_info info[nmemb]; +}; + +struct item { +   u32 id; +   u16 flags; +   u16 stack; +   u16 type; +   u16 resource; +   u16 targets; + +   union data (type) { +      4  => struct weapon weapon; +      5  => struct armor armor; +      7  => struct usable usable; +      12 => struct puppet puppet; +      *  => struct general general; +   }; + +   struct strings strings; +}; diff --git a/spec/model.fspec b/spec/model.fspec new file mode 100644 index 0000000..afa8281 --- /dev/null +++ b/spec/model.fspec @@ -0,0 +1,25 @@ +struct texture { +   u8 type; +   u8 name[16] = ascii; +   u32 version; +   u32 width; +   u32 height; +   u32 unknown[6]; +   u32 bits_per_pal_clr; +}; + +struct geometry { +   u16 unknown; +   u16 vert_and_bone_ref_flag; +   u16 mirror; +   u32 draw_data_offset; +   u16 draw_data_size; +   u32 bone_ref_offset; +   u16 bone_ref_count; +   u32 weighted_vert_count_offset; +   u16 max_weights_per_vertex; +   u32 weighted_data_offset; +   u16 weighted_data_count; +   u32 vertex_data_offset; +   u16 vertex_data_size; +}; diff --git a/spec/name.fspec b/spec/name.fspec new file mode 100644 index 0000000..69f75de --- /dev/null +++ b/spec/name.fspec @@ -0,0 +1,5 @@ +// NPC IDs +struct name = { +   u8 name[28] = ascii; // The kind actually depends on ROM section +   u32 id; +}; diff --git a/spec/spell.fspec b/spec/spell.fspec new file mode 100644 index 0000000..f65b5ad --- /dev/null +++ b/spec/spell.fspec @@ -0,0 +1,18 @@ +struct spell { +   u16 index; +   u16 type; // 1-6 for White/Black/Summon/Ninja/Bard/Blue +   u16 element; +   u16 targets; +   u16 skill; +   u16 mp_cost; +   u8 casting_time; // in quarter of seconds +   u8 recast_delay; // in quarter of seconds +   u8 level[24]; // 1 byte per job, 0xxFF if not learnable, first slot is NONE job so always 0xFF +   u16 id; // 0 for "unused" spells; often, but not always, equal to index +   u8 unknown; +   u8 jp_name[20] = sjis; +   u8 en_name[20] = ascii; +   u8 jp_description[128] = sjis; +   u8 en_description[128] = ascii; +   u8 padding[687] = pad; +}; diff --git a/spec/vtable.fspec b/spec/vtable.fspec new file mode 100644 index 0000000..0fc8701 --- /dev/null +++ b/spec/vtable.fspec @@ -0,0 +1,3 @@ +struct vtable { +   u8 exist; +};  | 
