The current URL is datacrystal.tcrf.net.
Dragon Quest Monsters: Joker/ROM map: Difference between revisions
(Move over file format info from Notes page) |
(Added info on enemy kind table) |
||
Line 70: | Line 70: | ||
===Binary files=== | ===Binary files=== | ||
{| class="wikitable" | {| class="wikitable" | ||
! Dir | ! Dir | ||
Line 208: | Line 207: | ||
| bin | | bin | ||
| Data table | | Data table | ||
| | | Table of special encounter monsters (ex. bosses) | ||
|- | |- | ||
| data | | data | ||
Line 467: | Line 466: | ||
AbilityTbl table @ 0x0; | AbilityTbl table @ 0x0; | ||
</syntaxhighlight> | |||
====EnmyKindTbl.bin==== | |||
The enemy kind table stores information on the different monster species, such as default stats, stat limits, and stat increase pattern ids. | |||
<syntaxhighlight lang="rust"> | |||
struct species { | |||
u32 unknown_a; | |||
u8 rank_and_family; // Lower 4 bits are the rank (0x0F), higher 4 bits are the family (0xF0) | |||
u8 unkown_b[3]; | |||
u8 unknown_c[4]; | |||
u32 weapon_compatibility_and_something_else; | |||
u8 traits[5]; | |||
u8 unknown_d[3]; | |||
u8 unknown_dde[4]; | |||
u8 default_max_hp; | |||
u8 default_max_mp; | |||
u8 default_attack; | |||
u8 default_defense; | |||
u8 default_agility; | |||
u8 default_wisdom; | |||
u8 unknown_de[2]; | |||
u16 max_hp_limit; | |||
u16 max_mp_limit; | |||
u16 attack_limit; | |||
u16 defense_limit; | |||
u16 agility_limit; | |||
u16 wisdom_limit; | |||
u8 max_hp_increase_indicies[4]; | |||
u8 max_mp_increase_indicies[4]; | |||
u8 attack_increase_indicies[4]; | |||
u8 defense_increase_indicies[4]; | |||
u8 agility_increase_indicies[4]; | |||
u8 wisdom_increase_indicies[4]; | |||
u8 skill_set; | |||
u8 unknown[75]; | |||
}; | |||
struct enmy_kind_tbl { | |||
u32 magic; | |||
u32 size; | |||
species species[size]; | |||
}; | |||
enmy_kind_tbl enmy_kind_tbl @ 0x0; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Internal Data|game=Dragon Quest Monsters: Joker}} | {{Internal Data|game=Dragon Quest Monsters: Joker}} |
Revision as of 07:40, 1 October 2024
The following article is a ROM map for Dragon Quest Monsters: Joker.
Filesystem
- data - Data files that the game reads information from (ex. images, tables, etc.).
- overlay - Overlay binary files.
- overlay_0000.bin - Overlay for the overworld.
- overlay_0001.bin - Overlay for battles.
- overlay_0002.bin - Overlay for currently unknown purpose.
File Formats
FPK Package Files
The game stores some files together into one package file. These package files have a file extension of ".bin" and begin with the magic letters "FPK".
struct file {
u8 name_info[0x20];
u32 offset;
u32 size;
u8 data[size] @ offset;
};
struct fpk {
u32 magic;
u32 num_files;
file files[num_files];
};
fpk fpk @ 0x0;
d16 Image Files
The game stores cutscene image files in the binary "d16" file format. Values are stored as little endian.
u32 magic @ 0x00; // "D16 " (44 31 36 00)
u16 width @ 0x04;
u16 height @ 0x06;
u16 pixels[width * height] @ 0x08; // 16bit colors, 0b1BBBBBGGGGGRRRRR
Event Files
The game stores events as binary files in the custom ".evt" file format. Event files consist of a data portion and an instructions portion.
Instructions are executed one by one in order. Instruction 0x0A will initiate a new separate thread of execution, which runs concurrently, but not in parallel, with the main execution thread of the event.
#include "std/mem.pat"
u32 magic @ 0x00;
u8 data[0x1000] @ 0x04;
struct instruction {
u32 type;
u32 length;
u8 arguments[length - 8];
};
// Instruction from end of data section to end of file
instruction instructions[while(!std::mem::eof())] @ 0x1004;
In the European release of the game, many event files are stored as FPK package files. The package files contain 5 event files, one for each language the game supports:
- ".evD" - German
- ".evE" - English
- ".evF" - French
- ".evI" - Italian
- ".evS" - Spanish
Binary files
Dir | Name | File extension | Category | Description |
---|---|---|---|---|
./ | arm7.bin | bin | Exectuable | |
./ | arm9.bin | bin | Exectuable | The exectuable with most of the game's code. |
./ | banner.bin | bin | ||
./ | header.bin | bin | ||
./ | y7.bin | bin | ||
./ | y9.bin | bin | ||
overlay | overlay_0000.bin | bin | Exectuable | |
overlay | overlay_0001.bin | bin | Exectuable | |
overlay | overlay_0002.bin | bin | Exectuable | |
data | AI_ActionTBL.bin | bin | ||
data | AI_CorrectTbl.bin | bin | ||
data | AI_IntelTBL.bin | bin | ||
data | AI_PatternTbl.bin | bin | ||
data | AI_TargetSelectAllyTbl.bin | bin | ||
data | AI_TargetSelectEnemyTbl.bin | bin | ||
data | AI_TargetSelectItemTbl.bin | bin | ||
data | AbilityTbl.bin | bin | Data table | Table of stat increase per-level categories |
data | BtlChrTbl.bin | bin | ||
data | BtlChrTimeTbl.bin | bin | ||
data | BtlEfcTbl.bin | bin | ||
data | BtlEfcTblWhip.bin | bin | ||
data | BtlEnmyPrm.bin | bin | Data table | Table of special encounter monsters (ex. bosses) |
data | BtlMstrPrm.bin | bin | ||
data | ChgContentTbl.bin | bin | ||
data | ChgMnstrTbl.bin | bin | ||
data | DamageItemTbl.bin | bin | ||
data | DamageTbl.bin | bin | ||
data | DemoChrTbl.bin | bin | ||
data | EnmyKindTbl.bin | bin | Data table | Table of monster species |
data | EnmyPtnTbl.bin | bin | ||
data | ExperienceTbl.bin | bin | ||
data | FldChrTbl.bin | bin | ||
data | FldEnmyPrm.bin | bin | ||
data | FldMstrPrm.bin | bin | ||
data | ItemTbl.bin | bin | Data table | Table of items and equipment |
data | ModelTbl.bin | bin | ||
data | MotionTbl.bin | bin | ||
data | MstrPtnTbl.bin | bin | ||
data | SkillPointTbl.bin | bin | ||
data | SkillTbl.bin | bin | Data table | Table of skill sets |
data | TokugiDataTbl.bin | bin | ||
data | ViewChrTbl.bin | bin | ||
data | btl_data.bin | bin | ||
data | console_data.bin | bin | ||
data | field_data.bin | bin | ||
data | infomation_data.bin | bin | ||
data | island_data.bin | bin | ||
data | joker_00.bin | bin | ||
data | keybord_data.bin | bin | ||
data | omiaitbl.bin | bin | ||
data | sd_data.bin | bin | ||
data | shop_data.bin | bin | ||
data | shop_vram.bin | bin | ||
data | start_data.bin | bin | ||
data | status_data.bin | bin | ||
data | wall_bank.bin | bin | ||
data | wall_base.bin | bin | ||
data | wall_combi.bin | bin | ||
data | wall_gpinfo.bin | bin | ||
data | wall_itemshop.bin | bin | ||
data | wall_keep.bin | bin | ||
data | wall_skillpoint.bin | bin |
AbilityTbl.bin
The ability table stores level-up stat increase patterns, which determine how many stat points a monster will get when leveling up. Each pattern includes 99 unsigned integers which represent stat value increases for each level (1-99). There are 32 different patterns in total.
Each monster species is given 24 stat increase patterns. 6 groups corresponding to the different monster stats: max hp, max mp, attack, defense, agility, and wisdom. Each of the six groups has 4 patterns which apply to different level ranges: level 1 to 9, 10 to 39, 40 to 50, and 51 to 99.
struct ability {
// One byte for each level
u8 increase[99];
};
struct AbilityTbl {
ability abilities[32];
};
AbilityTbl table @ 0x0;
EnmyKindTbl.bin
The enemy kind table stores information on the different monster species, such as default stats, stat limits, and stat increase pattern ids.
struct species {
u32 unknown_a;
u8 rank_and_family; // Lower 4 bits are the rank (0x0F), higher 4 bits are the family (0xF0)
u8 unkown_b[3];
u8 unknown_c[4];
u32 weapon_compatibility_and_something_else;
u8 traits[5];
u8 unknown_d[3];
u8 unknown_dde[4];
u8 default_max_hp;
u8 default_max_mp;
u8 default_attack;
u8 default_defense;
u8 default_agility;
u8 default_wisdom;
u8 unknown_de[2];
u16 max_hp_limit;
u16 max_mp_limit;
u16 attack_limit;
u16 defense_limit;
u16 agility_limit;
u16 wisdom_limit;
u8 max_hp_increase_indicies[4];
u8 max_mp_increase_indicies[4];
u8 attack_increase_indicies[4];
u8 defense_increase_indicies[4];
u8 agility_increase_indicies[4];
u8 wisdom_increase_indicies[4];
u8 skill_set;
u8 unknown[75];
};
struct enmy_kind_tbl {
u32 magic;
u32 size;
species species[size];
};
enmy_kind_tbl enmy_kind_tbl @ 0x0;
Internal Data for Dragon Quest Monsters: Joker
| |
---|---|