diff --git a/docs/bbs/dictionary/NumberingSchemeAnimations.md b/docs/bbs/dictionary/NumberingSchemeAnimations.md new file mode 100644 index 000000000..e7e262d6e --- /dev/null +++ b/docs/bbs/dictionary/NumberingSchemeAnimations.md @@ -0,0 +1,35 @@ +# Numbering Scheme for Animations + +## Bosses + +| Anim Number | Descripton +--- | --- +010 | Idle +011 | Idle (Variation 1) +030 | Walking (Forward) +031 | Walking (Backwards) +032 | Walking (Left) +033 | Walking (Right) +040 | Running (Forward) +041 | Running (Backwards) +042 | Running (Left) +043 | Running (Right) +051 | Jump Fall +052 | Landing +200 | Damage 1 (Ground) +201 | Damage 2 (Ground) +202 | Damage 3 (Ground) +220 | Damage 1 (Air) +221 | Damage 2 (Air) +222 | Damage 3 (Air) +230 | Stun Ailment +231 | Stun Ailment (Exit) +300 | Attack (Ground 1) + +## Playable characters + +| Anim Number | Descripton +--- | --- +| + +## Non-Playable Characters \ No newline at end of file diff --git a/docs/bbs/dictionary/worlds.md b/docs/bbs/dictionary/worlds.md index 3d2eece33..d4a6aaed1 100644 --- a/docs/bbs/dictionary/worlds.md +++ b/docs/bbs/dictionary/worlds.md @@ -410,7 +410,7 @@ Maps with 00 in the name do not exist as files, but the game displays the world' | JF02 | ジャンフェス(cd09) | Jump Festa (cd09) | | | JF03 | ジャンフェス(sb10) | Jump Festa (sb10 | | | JF10 | シンデレラ城下町 | The Town | | -| JF11 | ポリゴンぶんかつけんしょ | Poly. Partition Test | | +| JF11 | ポリゴンぶんかつけんしょ | Polygon Partition Test | | | JF20 | ノートルダム(そと) | | Notredame (Exterior) | Text only present in HD ReMiX | JF21 | ノートルダム(なか) | | Notredame (Interior) | Text only present in HD ReMiX | JF70 | tt27 | tt27 | | diff --git a/docs/bbs/file/type/CommandData.md b/docs/bbs/executable/CommandData.md similarity index 100% rename from docs/bbs/file/type/CommandData.md rename to docs/bbs/executable/CommandData.md diff --git a/docs/bbs/file/type/CommandParam.md b/docs/bbs/executable/CommandParam.md similarity index 95% rename from docs/bbs/file/type/CommandParam.md rename to docs/bbs/executable/CommandParam.md index 316fe0fac..6dd045e5a 100644 --- a/docs/bbs/file/type/CommandParam.md +++ b/docs/bbs/executable/CommandParam.md @@ -10,7 +10,7 @@ This data is located with the game's executable. |--------|-------|------------ | 0x0 | int16 | Buy Price | 0x2 | uint8 | Sell Price -| 0x3 | uint8 | Reload Time (seconds) / Amount uses for Items +| 0x3 | uint8 | Reload Time (seconds) / Amount uses for Items / Maximum level for Abilities | 0x4 | uint8 | Gauge Fill (out of 100) | 0x5 | uint8 | Maximum Level | 0x6 | int16 | CP for Base Level diff --git a/docs/bbs/file/type/PlayerData.md b/docs/bbs/executable/PlayerLevelUpData.md similarity index 86% rename from docs/bbs/file/type/PlayerData.md rename to docs/bbs/executable/PlayerLevelUpData.md index 9058a9de4..f565956ad 100644 --- a/docs/bbs/file/type/PlayerData.md +++ b/docs/bbs/executable/PlayerLevelUpData.md @@ -1,6 +1,6 @@ -# PLAYER DATA +# PLAYER LEVEL UP DATA -This isn't a file, but a memory region in the executable. +This isn't a file, but data specification that appears instantiated in memory. ## Stats @@ -20,5 +20,3 @@ Level up Rewards consist of a triplet of uint32, one for each character in this | 0x1 | uint8 | Magic Increase | 0x2 | uint8 | Defense Increase | 0x3 | uint8 | Padding - -0x5B 0x74 \ No newline at end of file diff --git a/docs/bbs/file/type/Weapon.md b/docs/bbs/executable/Weapon.md similarity index 100% rename from docs/bbs/file/type/Weapon.md rename to docs/bbs/executable/Weapon.md diff --git a/docs/bbs/file/type/CmdCharge.md b/docs/bbs/file/type/CmdCharge.md index a0d0866c6..ccfef87be 100644 --- a/docs/bbs/file/type/CmdCharge.md +++ b/docs/bbs/file/type/CmdCharge.md @@ -4,7 +4,7 @@ CmdCharge stands for *Command Charge*. This file stores the list for all commands melds. -The reason why it's called **CHARGE** is because that's how command melding is named in japanese. +The reason why it's called **CHARGE** is because that's how command melding is named in japanese, Command Charge. This file is contained within `Menu/Camp.arc` diff --git a/docs/bbs/file/type/bic.md b/docs/bbs/file/type/bic.md index 79fdcf6f9..180643d7b 100644 --- a/docs/bbs/file/type/bic.md +++ b/docs/bbs/file/type/bic.md @@ -4,9 +4,20 @@ BIC stands for *BGM Ice Collection* and it contains the list of songs used in th This file is a `.bic`, but contained in a `.bin` +# Header -## Header +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | uint32 | Version, always `0x41264126` +| 0x4 | int32 | File Size +| 0x8 | int32 | Item Count +| 0xC | uint32 | Dummy + +## BGM Data | Offset | Type | Description |--------|-------|------------ -| 0x0 | char[4] | +| 0x0 | int32 | BGM Resource Number +| 0x4 | int32 | Tempo +| 0x8 | int32 | Loop Start +| 0xC | int32 | Loop End \ No newline at end of file diff --git a/docs/bbs/file/type/cic.md b/docs/bbs/file/type/cic.md new file mode 100644 index 000000000..f5813924e --- /dev/null +++ b/docs/bbs/file/type/cic.md @@ -0,0 +1,27 @@ +# CIC Format + +CIC stands for *Common Ice ?* and it controls several aspects of the ice cream minigame. + +# Data + +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | uint32 | File identifier, always `0x41261002` +| 0x4 | uint32 | Size +| 0x8 | int32 | Base Points +| 0xC | float | Stage Level 0 +| 0x10 | float | Stage Level 1 +| 0x14 | float | Stage Level 2 +| 0x18 | int32 | Stage Combo 0 +| 0x1C | int32 | Stage Combo 1 +| 0x20 | int32 | Stage Combo 2 +| 0x24 | float | Bad Timing +| 0x28 | float | Good Timing +| 0x2C | float | Excellent Timing +| 0x30 | int32 | Art 1 +| 0x34 | int32 | Art 2 +| 0x38 | int32 | Art 3 +| 0x3C | int32 | Art 4 +| 0x40 | int32 | Ice Bonus +| 0x44 | int32 | Ice Failure +| 0x48 | int32 | Combo Points \ No newline at end of file diff --git a/docs/bbs/file/type/cmdShop.md b/docs/bbs/file/type/cmdShop.md index a04102ba6..06ca987c4 100644 --- a/docs/bbs/file/type/cmdShop.md +++ b/docs/bbs/file/type/cmdShop.md @@ -28,5 +28,5 @@ This data chunk repeats as many times as the field `Number of Items` specifies. | Offset | Type | Description |--------|-------|------------ -| 0x0 | uint16 | Item Index +| 0x0 | uint16 | Command Index | 0x2 | uint16 | Padding \ No newline at end of file diff --git a/docs/bbs/file/type/edp.md b/docs/bbs/file/type/edp.md new file mode 100644 index 000000000..b2a92abcd --- /dev/null +++ b/docs/bbs/file/type/edp.md @@ -0,0 +1,64 @@ +# EDP Format + +EDP stands for *Experience Data Parameters* and it controls all of the changes made when enabling EXP 0 in game. + +# Header + +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | string | File identifier, always `@EDP` +| 0x4 | uint32 | Version, `2` +| 0x8 | uint32 | Enemy Data Count +| 0xC | uint32 | Boss Data Count + +# Attack Type Elemental + +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | [AttackElement[152]](#attack-element) | List of attack elements. + +## Attack Element + +| Bit | Count | Description +|-----|-------|------------- +| 0 | 4 | [Element 1](#attack-type) +| 4 | 4 | [Element 2](#attack-type) + +## Attack Type + +| Value | Name | Description +|--------|-------|------------ +| 0x0 | ATK_TYPE_LOW | +| 0x1 | ATK_TYPE_MIDDLE | +| 0x2 | ATK_TYPE_HIGH | +| 0x3 | ATK_TYPE_MAX | + + +# Cause Damage Pack Header + +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | char[4] | Code, always `@CDP` +| 0x4 | uint8 | ID +| 0x5 | uint8 | UseBoss +| 0x6 | uint8[2] | RESERVED +| 0x8 | [HPRange](#cause-damage-pack-hp-range) | HP Range +| 0x10 | [ScalePack[3]](#cause-damage-pack-scale-pack) | Damage Scaling + + +# Cause Damage Pack HP Range + +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | int32 | Minimum +| 0x4 | int32 | Maximum + +# Cause Damage Pack Scale Pack + +This structures repeats for as many animations need their parameters set. + +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | int32 | Divisor +| 0x4 | int32 | Revision +| 0x8 | int32 | Scale \ No newline at end of file diff --git a/docs/bbs/file/type/ice.md b/docs/bbs/file/type/ice.md new file mode 100644 index 000000000..37a2c791e --- /dev/null +++ b/docs/bbs/file/type/ice.md @@ -0,0 +1,21 @@ +# ICE Format + +ICE stands for *ICE-CREAM* and it controls how an ice cream minigame plays out. + +# Header + +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | uint32 | Version, always `0x41264129` +| 0x4 | int32 | File Size +| 0x8 | int32 | Item Count +| 0xC | uint32 | Dummy + +# Measure + +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | int32 | Kind +| 0x4 | uint32[3] | Marks +| 0x10 | uint32 | Sound Color +| 0x14 | uint32 | Combo \ No newline at end of file diff --git a/docs/bbs/file/type/itb.md b/docs/bbs/file/type/itb.md index aaec52cb4..748b5f066 100644 --- a/docs/bbs/file/type/itb.md +++ b/docs/bbs/file/type/itb.md @@ -30,17 +30,23 @@ This file can be found in the `item` folder or within `arc/system/common_xx.arc` | 0x1A | uint8 | Item Count in `BD` | 0x1B | uint8 | Item Count in `WM` -## ITC Data +## ITB Data | Offset | Type | Description |--------|-------|------------ | 0x0 | uint16 | Treasure Box ID -| 0x2 | uint16 | Item ID -| 0x4 | uint8 | [Item Kind](#Item-Kind) +| 0x2 | uint16 | Reward ID +| 0x4 | uint8 | [Reward Kind](#Reward-Kind) | 0x5 | uint8 | World ID | 0x6 | uint8 | Report ID | 0x7 | uint8 | Padding +## Reward Kind +| Value | Name | Description +|--------|-------|------------ +| 0 | COMMAND | +| 1 | ITEM | + ## Item Kind | Value | Name | Description diff --git a/docs/bbs/file/type/mbd.md b/docs/bbs/file/type/mbd.md new file mode 100644 index 000000000..97a0ad418 --- /dev/null +++ b/docs/bbs/file/type/mbd.md @@ -0,0 +1,53 @@ +# MBD Format + +MBD stands for *Mirage Bonus Data* and it contains the list rewards you can get from completing Mirage Arena challenges. + + +# Header + +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | char[4] | Code, always `@MBD` +| 0x4 | uint32 | Version, always `1` +| 0x8 | uint32[2] | RESERVED + +# Bonus Data + +| Offset | Type | Description +|--------|-------|------------ +| 0x0 | [BattleType](#battle-type) | +| 0x4 | [ChallengeType](#challenge-type) | +| 0x8 | uint32 | Requirement value +| 0xC | uint32 | Reward multiplier (for medals) + +## Battle Type + +| Value | Name | Description +|--------|-------|------------ +| 0x0 | BATTLE_TYPE_JUDGE | Day of Reckoning +| 0x1 | BATTLE_TYPE_CURSE | Wheels of Misfortune +| 0x2 | BATTLE_TYPE_TREASURE | Risky Riches +| 0x3 | BATTLE_TYPE_RUN | Weaver Fever +| 0x4 | BATTLE_TYPE_PRISON | Sinister Sentinel +| 0x5 | BATTLE_TYPE_DAZZLE | Dead Ringer +| 0x6 | BATTLE_TYPE_TYRANT | Combined Threat +| 0x7 | BATTLE_TYPE_DESIRE | Treasure Tussle +| 0x8 | BATTLE_TYPE_CRIME | Harsh Punishment +| 0x9 | BATTLE_TYPE_BLIZZARD | A Time to Chill +| 0xA | BATTLE_TYPE_MAGICIAN | Copycat Crisis +| 0xB | BATTLE_TYPE_ARENA_OWNER | Keepers of the Arena +| 0xC | BATTLE_TYPE_WHALE | Monster of the Sea +| 0xD | BATTLE_TYPE_CONQUEROR | Villains' Vendetta +| 0xE | BATTLE_TYPE_LIGHT_MASTER | Light's Lessions +| 0xF | BATTLE_TYPE_DARKNESS | Peering into Darkness +| 0x10 | BATTLE_TYPE_END | + +## Challenge Type + +| Value | Name | Description +|--------|-------|------------ +| 0x0 | CHALLENGE_TYPE_CURE | Heal X times or less. +| 0x1 | CHALLENGE_TYPE_TIME_ATTACK | Within time limit. (Time in seconds) +| 0x2 | CHALLENGE_TYPE_GET_MUNNY | Obtain X amount of munny. +| 0x3 | CHALLENGE_TYPE_CHANGE_STYLE | Perform X amount of style changes. +| 0x4 | CHALLENGE_TYPE_SUCCESS_GUARD | Block X amount of times. \ No newline at end of file diff --git a/docs/bbs/file/type/mission.md b/docs/bbs/file/type/mission.md index 4cdc3f010..8701d7709 100644 --- a/docs/bbs/file/type/mission.md +++ b/docs/bbs/file/type/mission.md @@ -50,7 +50,7 @@ Here's the full list of files that use this format. | 0x4C | uint8 | Navigation | 0x4D | uint8 | Present 1 | 0x4E | uint8 | Present 2 -| 0x4F | uint8 | General Path +| 0x4F | uint8 | [General Path](#General-Path) | 0x50 | uint16 | Present 1 Parameters | 0x52 | uint16 | Present 2 Parameters | 0x54 | uint8 | HP Recovery @@ -60,7 +60,13 @@ Here's the full list of files that use this format. ### Bonus -The type of bonus to receive. It is not possible to give two rewards of the same type. +Bonuses are rewards you receive as the boss is defeated or the event is over. + +The type of bonus to receive. + +Bonuses cannot give you **debug commands or abilities/enchantments/d-links**. Any command style can be given at any time. + +**It is not possible to give two rewards of the same type.** | Value | Description |--------|------- @@ -71,7 +77,15 @@ The type of bonus to receive. It is not possible to give two rewards of the same ### Present -The type of present to receive. Presents cannot give you debug commands or abilities/enchantments. +Presents are rewards you receive after the battle phase is over. + +This field controls the type of present to receive. + +Presents cannot give you **debug commands or abilities/enchantments**. Giving command styles out of order can also result in a crash. + +Trying to give items that don't belong to the specific character result in a crash. + +**It is possible to get two presents of the same type.** | Value | Description |--------|------- @@ -79,8 +93,18 @@ The type of present to receive. Presents cannot give you debug commands or abili | 1 | Obtain Item | 2 | Obtain Command +### General Path + +| Value | Description +|--------|------- +| 0 | GENERAL_PATH_START +| 1 | GENERAL_PATH_END + + ### Mission Kind +This is the "name" attributed to the mission. Serves as an identifier. + | Value | Name | Description |--------|-------|------------ | -1 | MISSION_NONE | diff --git a/docs/bbs/file/type/olo.md b/docs/bbs/file/type/olo.md index 191415d99..a912f90de 100644 --- a/docs/bbs/file/type/olo.md +++ b/docs/bbs/file/type/olo.md @@ -12,9 +12,9 @@ This file controls what objects and how they're spawned in levels within [Kingdo | 0x8 | uint32 | Number of Objects to spawn. | 0xC | uint32 | Offset to the [Object Name](###Object-Name) section. | 0x10 | uint32 | Number of file path addresses. -| 0x14 | uint32 | Offset to a list of [Path Name](###Path-Name) for **files**. +| 0x14 | uint32 | Offset to a list of [Path Name](###Path-Name) for **Files**. | 0x18 | uint32 | Number of Script name -| 0x1C | uint32 | Offset to a list of [Path Name](###Path-Name) for **Scripts**.32 +| 0x1C | uint32 | Offset to a list of [Path Name](###Path-Name) for **Scripts**. | 0x20 | uint32 | Number of Mission labels. | 0x24 | uint32 | Offset to the [Mission Name](###Mission-Name) definitions. | 0x28 | uint32 | Number of Triggers. diff --git a/docs/bbs/file/type/pmo.md b/docs/bbs/file/type/pmo.md index 4781f75d3..f5d0ede48 100644 --- a/docs/bbs/file/type/pmo.md +++ b/docs/bbs/file/type/pmo.md @@ -22,7 +22,7 @@ The format supports varying vertex types and has support for animation bones and | 0x16 | uint16 | Vertex Count | | 0x18 | float | Model Scale | | 0x1C | uint32 | Mesh Offset 1 | -| 0x20 | float[8][8] | Bounding Box | +| 0x20 | float[4][8] | Bounding Box | ## Texture Info @@ -40,18 +40,18 @@ See also: [TIM2](../common/tm2.md) ## Mesh Sections -`Mesh Offset 0` and `Mesh Offset 1` both point to the start of a list of `Mesh Section Header`s. You keep reading headers + their verts until you encounter a 0 `Vertex Count`. This structure must be aligned on a 4 byte boundry. +`Mesh Offset 0` and `Mesh Offset 1` both point to the start of a list of `Mesh Section Header`s. You keep reading headers + their verts until you encounter a 0 `Vertex Count`. This structure must be aligned on a 4 byte boundary. | Offset | Type | Description | |--------|------|-------------| | 0x0 | uint16 | Vertex Count | | 0x2 | int8 | Texture ID, an index into the list of `Texture Info` records | 0x3 | uint8 | Vertex Size, in bytes -| 0x4 | uint32 | Vertex Flags, see below +| 0x4 | uint32 | [Vertex Flags](#vertex-flags), see below | 0x8 | uint8 | Group | 0x9 | uint8 | Triangle Strip count | 0xA | uint16 | [Vertex Attribute](#Vertex-Attribute) -| 0xC | uint8[8] | List of bone indices which effect this section. Only present if the PMO blob contains a skeleton (ie: `header.skeletonOffset != 0`) +| 0xC | uint8[8] | List of bone indices that affect this section. Only present if the PMO blob contains a skeleton (ie: `header.skeletonOffset != 0`) | varies | uint32 | Diffuse Color. Only present if `vertexFlags.DiffuseColor & 1` The section header is followed by `vertexCount * vertexSize` bytes of vertex data. The next Section header follows on the next 4-byte alignment after that. @@ -63,51 +63,23 @@ The Primitive type bits correspond to the primitive type bits of the PSP's [GE P | Bit | Count | Description | |-----|-------|-------------| -| 0 | 2 | Texture Coordinate Format | -| 2 | 3 | Color Format | +| 0 | 2 | [Texture Coordinate Format](#coordinate-format) | +| 2 | 3 | [Color Format](#color-format) | | 5 | 2 | Normal Format (Not used by BBS) | -| 7 | 2 | Position Format | -| 9 | 2 | Weight Format | +| 7 | 2 | [Position Format](#coordinate-format) | +| 9 | 2 | [Weight Format](#coordinate-format) | | 11 | 2 | Indices Format (Not used by BBS) | | 13 | 1 | Unused | -| 14 | 3 | Number of skinning weights | +| 14 | 3 | Skinning Weights Count | | 17 | 1 | Unused | | 18 | 3 | Number of morphing weights (Not used by BBS) | | 21 | 2 | Unused | | 23 | 1 | Skip Transform Pipline (Not used by BBS) | | 24 | 1 | Uniform Diffuse Flag | | 25 | 3 | Unknown, possibly unused | -| 28 | 4 | Primitive Type | - -### Vertex Attribute - -This field defines what kind of primitive is being rendered. - -| Value | Name | Meaning | -|----------|----------------------|------------------| -| 0 | ATTR_BLEND_NONE | -| 1 | ATTR_NOMATERIAL | -| 2 | ATTR_GLARE | -| 4 | ATTR_BACK | -| 8 | ATTR_DIVIDE | -| 16 | ATTR_TEXALPHA | Specifies that the texture used contains alpha values for transparency -| 24 | FLAG_SHIFT | -| 28 | PRIM_SHIFT | -| 32 | ATTR_BLEND_SEMITRANS | Specifies that the material must be blended as semitransparent -| 64 | ATTR_BLEND_ADD | -| 96 | ATTR_BLEND_SUB | -| 224 | ATTR_BLEND_MASK | -| 256 | ATTR_8 | -| 512 | ATTR_9 | -| 1024 | ATTR_DROPSHADOW | -| 2048 | ATTR_ENVMAP | -| 4096 | ATTR_12 | -| 8192 | ATTR_13 | -| 16384 | ATTR_14 | -| 32768 | ATTR_15 | -| 16777216 | FLAG_COLOR | -| 33554432 | FLAG_NOWEIGHT | +| 28 | 4 | Primitive Type | +### Coordinate Format Texture Format, Normal Format, Position Format and Weight Format are as follows: | Value | Meaning | @@ -119,6 +91,8 @@ Texture Format, Normal Format, Position Format and Weight Format are as follows: Weight format has only been observed to use 8-bit fixed in actual PMO blobs. +### Color Format + Color Format is as follows: | Value | Meaning | @@ -181,6 +155,35 @@ Vertex properties which are in the format `8-bit normalized` or `16-bit normaliz float value = (float)data / 32767.0f; ``` +### Vertex Attribute + +This field defines what kind of primitive is being rendered. + +| Value | Name | Meaning | +|----------|----------------------|------------------| +| 0 | ATTR_BLEND_NONE | +| 1 | ATTR_NOMATERIAL | +| 2 | ATTR_GLARE | +| 4 | ATTR_BACK | +| 8 | ATTR_DIVIDE | +| 16 | ATTR_TEXALPHA | Specifies that the texture used contains alpha values for transparency +| 24 | FLAG_SHIFT | +| 28 | PRIM_SHIFT | +| 32 | ATTR_BLEND_SEMITRANS | Specifies that the material must be blended as semitransparent +| 64 | ATTR_BLEND_ADD | +| 96 | ATTR_BLEND_SUB | +| 224 | ATTR_BLEND_MASK | +| 256 | ATTR_8 | +| 512 | ATTR_9 | +| 1024 | ATTR_DROPSHADOW | +| 2048 | ATTR_ENVMAP | +| 4096 | ATTR_12 | +| 8192 | ATTR_13 | +| 16384 | ATTR_14 | +| 32768 | ATTR_15 | +| 16777216 | FLAG_COLOR | +| 33554432 | FLAG_NOWEIGHT | + ## Skeleton Header | Offset | Type | Description | diff --git a/docs/bbs/memory only/CampCmd.md b/docs/bbs/memory only/CampCmd.md new file mode 100644 index 000000000..80e169374 --- /dev/null +++ b/docs/bbs/memory only/CampCmd.md @@ -0,0 +1,30 @@ +# CAMP CMD WORK + +This isn't a file, but data specification that appears instantiated in memory. + +## CAMP COMMAND DATA + +| Offset | Type | Description +|---------|--------|------------ +| 0x0 | [COMMAND](./Command.md#Command) | Command Data +| 0x8 | uint16 | Camp Command Flag + +### CAMP COMMAND FLAG + +First 8 bits belong to the Board command, the second 8 bits to the Camp Menu command. + +| Bit | Length | Description +|---------|--------|------------ +| 0 | 1 | fgBdDel +| 1 | 1 | fgBdTmpNew +| 2 | 1 | fgBdInvalid +| 3 | 1 | fgBdRef +| 4 | 1 | fgBdTmpGet +| 5 | 1 | fgBdTake +| 6 | 1 | fgBdCard +| 7 | 1 | fgBdPanelSet +| 8 | 2 | Padding +| 10 | 1 | Master Notice +| 11 | 1 | Master +| 12 | 1 | Item +| 13 | 3 | fgSet \ No newline at end of file diff --git a/docs/bbs/memory only/CampWork.md b/docs/bbs/memory only/CampWork.md new file mode 100644 index 000000000..f545badb9 --- /dev/null +++ b/docs/bbs/memory only/CampWork.md @@ -0,0 +1,67 @@ +# CAMP WORK + +This isn't a file, but data specification that appears instantiated in memory. + +## CAMP WORK DATA + +| Offset | Type | Description +|---------|--------|------------ +| 0x0 | [CmdWork](./CmdWork.md) | Command Work +| 0x18CA | Unknown | Unknown +| 0x18CB | Unknown | Unknown +| 0x18CC | [AbiFlag](#Ability-Flag)[30] | Ability Flags +| 0x1944 | [EtcFlag](#Etc-Flag)[55] | Etc Flags +| 0x197B | [HelpFlag](#Help-Flag)[40] | Help Flags +| 0x19A3 | NickNameWork | Nickname Work +| 0x19C9 | Unknown | Unknown +| 0x19CA | Unknown | Unknown +| 0x19CB | Unknown | Unknown +| 0x19CC | [StatusInfo](./StatusInfo.md) | Status Info +| 0x2584 | [GameInfo](./GameInfo.md) | Game Info +| 0x2594 | DeckWork[3] | Deck Work +| 0x27E0 | int32[4] | Padding +| 0x27F0 | uint16 | Deck Selected +| 0x27F2 | uint16 | Deck Max Slots +| 0x27F4 | boolean | Is Initialized +| 0x27F5 | uint8 | Mirage Arena Explain +| 0x27F6 | boolean | Is Tutorial +| 0x27F7 | boolean | Is Player Status +| 0x27F8 | uint8 | Tutorial State +| 0x27F9 | uint8 | Battle Dice Explain +| 0x27FA | uint16 | Deck Shortcut +| 0x27FC | uint16[4][2] | Arena Flag Array +| 0x280C | int8 | Number of Trophy Info +| 0x280D | uint8[7] | Padding + + +### ABILITY FLAG + + +| Bit | Length | Description +|-----|--------|------------ +| 0 | 11 | Padding +| 11 | 3 | Master Notice +| 14 | 2 | fgNewReport +| 16 | 2 | fgNewCamp +| 18 | 5 | Master On +| 23 | 3 | Master +| 26 | 3 | Equip +| 29 | 3 | Total + +### ETC FLAG + + +| Bit | Length | Description +|---------|--------|------------ +| 0 | 4 | Padding +| 4 | 2 | fgNewReport +| 6 | 2 | fgNewCamp + +### HELP FLAG + + +| Bit | Length | Description +|---------|--------|------------ +| 0 | 3 | Padding +| 3 | 3 | Category +| 6 | 2 | fgNewCamp diff --git a/docs/bbs/memory only/CmdWork.md b/docs/bbs/memory only/CmdWork.md new file mode 100644 index 000000000..47db7f776 --- /dev/null +++ b/docs/bbs/memory only/CmdWork.md @@ -0,0 +1,12 @@ +# CMD WORK + +This isn't a file, but data specification that appears instantiated in memory. + +## COMMAND WORK DATA + +| Offset | Type | Description +|---------|--------|------------ +| 0x0 | [CampCmd](./CampCmd.md)[569] | Command Work +| 0x163A | int16 | Camp Command +| 0x1654 | int16 | Maximum Camp Commands +| 0x166E | [CmdFlag](./CmdFlag.md)[302] | Command Flags \ No newline at end of file diff --git a/docs/bbs/memory only/Command.md b/docs/bbs/memory only/Command.md new file mode 100644 index 000000000..92debfc7d --- /dev/null +++ b/docs/bbs/memory only/Command.md @@ -0,0 +1,13 @@ +# COMMAND + +This isn't a file, but data specification that appears instantiated in memory. + +## COMMAND STRUCTURE + +| Offset | Type | Description +|---------|--------|------------ +| 0x0 | uint16 | Command ID +| 0x2 | uint8 | Level +| 0x3 | uint8 | Flag +| 0x4 | uint16 | Experience +| 0x6 | uint16 | Ability ID \ No newline at end of file diff --git a/docs/bbs/memory only/GameInfo.md b/docs/bbs/memory only/GameInfo.md new file mode 100644 index 000000000..c725fa693 --- /dev/null +++ b/docs/bbs/memory only/GameInfo.md @@ -0,0 +1,18 @@ +# GAME INFO + +This isn't a file, but data specification that appears instantiated in memory. + +## GAME INFO DATA + +| Offset | Type | Description +|---------|--------|------------ +| 0x0 | uint32 | Play Time +| 0x4 | uint32[3] | Padding + +## GAME INFO RELATED ENUM + +| Name | Value | Description +|-----------------|----------------|------------ +| START_PLAYTIME | 0x0 | +| MAX_PLAYTIME_S | 0x36EE7F | +| MAX_PLAYTIME_F | 0xCDFE5C4 | \ No newline at end of file diff --git a/docs/bbs/memory only/PlayerData.md b/docs/bbs/memory only/PlayerData.md new file mode 100644 index 000000000..ed024616a --- /dev/null +++ b/docs/bbs/memory only/PlayerData.md @@ -0,0 +1,58 @@ +# PLAYER DATA + +This isn't a file, but data specification that appears instantiated in memory. + +## Stats + +| Offset | Type | Description +|---------|--------|------------ +| 0x0 | uint32 | Experience +| 0x4 | uint32 | Munny +| 0x8 | uint32 | Medals +| 0xC | uint32 | Style Flag +| 0x10 | uint32 | Enchantment Flag +| 0x14 | uint32 | Arena Level Flag +| 0x18 | int32 | Next Level Experience +| 0x1C | uint16 | Maximum HP +| 0x1E | uint16 | Current HP +| 0x20 | uint16 | Maximum Focus +| 0x22 | uint16 | Current Focus +| 0x24 | uint16 | LP +| 0x26 | uint16 | Pre EXP +| 0x28 | int8[8] | Deck Reload Time +| 0x30 | int8 | Currently Selected Deck +| 0x31 | uint8 | Current Level +| 0x32 | uint8 | Ability Points +| 0x33 | uint8 | MP? +| 0x34 | uint8 | D-Link Points +| 0x35 | uint8 | Weapon ID +| 0x36 | uint8 | Max Deck Slots +| 0x37 | uint8 | Arena Level +| 0x38 | int16 | Physical Resistance +| 0x3A | int16 | Fire Resistance +| 0x3C | int16 | Ice Resistance +| 0x3E | int16 | Thunder Resistance +| 0x40 | int16 | Darkness Resistance +| 0x42 | int16 | HP Ability +| 0x44 | uint16 | Old Finisher Type +| 0x46 | int16 | Padding +| 0x48 | [COMMAND](./Command.md#Command)[8] | Command Deck +| 0x88 | [COMMAND](./Command.md#Command) | Finisher Command +| 0x90 | [COMMAND](./Command.md#Command) | Shotlock Command +| 0x98 | [COMMAND](./Command.md#Command) | Jump Command +| 0xA0 | [COMMAND](./Command.md#Command) | Glide Command +| 0xA8 | [COMMAND](./Command.md#Command) | Air Dash Command +| 0xB0 | [COMMAND](./Command.md#Command) | Ground Dash Command +| 0xB8 | [COMMAND](./Command.md#Command) | Dash Ability +| 0xC0 | [COMMAND](./Command.md#Command) | Avoid Slide Command +| 0xC8 | [COMMAND](./Command.md#Command) | Combo Slide Command +| 0xD0 | [COMMAND](./Command.md#Command) | Turn Ability Command +| 0xD8 | [COMMAND](./Command.md#Command) | Guard Command +| 0xE0 | [COMMAND](./Command.md#Command) | Guard Ability Command +| 0xE8 | [COMMAND](./Command.md#Command) | Blow Ability Command +| 0xF0 | [COMMAND](./Command.md#Command)[21] | Link Command +| 0x198 | [COMMAND](./Command.md#Command)[3] | Next Finisher Command +| 0x1B0 | char[38] | Finisher Command Name +| 0x1D6 | uint8 | Padding +| 0x1D7 | uint8 | Padding + diff --git a/docs/bbs/memory only/StatusInfo.md b/docs/bbs/memory only/StatusInfo.md new file mode 100644 index 000000000..e98694bae --- /dev/null +++ b/docs/bbs/memory only/StatusInfo.md @@ -0,0 +1,46 @@ +# STATUS INFO + +This isn't a file, but data specification that appears instantiated in memory. + +## STATUS INFO DATA + +| Offset | Type | Description +|---------|--------|------------ +| 0x0 | DL_STATUS | D-Link Status Array +| 0x7E0 | [COMMAND](./Command.md#Command)[16] | Finisher Commands Array +| 0x860 | [COMMAND](./Command.md#Command)[21] | D-Link Command Array +| 0x908 | uint8[16][38] | Finisher Command Strengths? +| 0xB68 | ICOLOR | Armor Color +| 0xB6C | uint32 | Total Experience +| 0xB70 | uint32 | Total Munny +| 0xB74 | uint32 | Medals +| 0xB78 | uint16 | Level +| 0xB7A | uint16 | Current HP +| 0xB7C | uint16 | Maximum HP +| 0xB7E | uint16 | Current Focus +| 0xB80 | uint16 | Maximum Focus +| 0xB82 | uint16 | Link Points +| 0xB84 | uint16 | MP? +| 0xB86 | uint16 | DP? +| 0xB88 | uint16 | Arena Level +| 0xB8A | uint16 | Weapon ID +| 0xB8C | int16 | Physical Resistance +| 0xB8E | int16 | Fire Resistance +| 0xB90 | int16 | Ice Resistance +| 0xB92 | int16 | Thunder Resistance +| 0xB94 | int16 | Darkness Resistance +| 0xB96 | uint16 | Player Weapon ID +| 0xB98 | uint16 | Selected Finisher +| 0xB9A | uint16 | Ability Points? +| 0xB9C | int16[14] | Padding + +## STATUS INFO RELATED ENUM + +| Name | Value | Description +|-----------------|----------------|------------ +| START_ARMOR_COLOR | 0xFF808080 | +| ARMOR_COLOR_MIN | 0x40 | +| ARMOR_COLOR_MAX | 0xC0 | +| MAX_LEVEL | 0x63 | +| MAX_MEDAL | 0x1869F | +| MAX_MUNNIE | 0xF423F | \ No newline at end of file