Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

Pokémon Mystery Dungeon: Red Rescue Team/Dungeons Floors Data/Main Data: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
m (→‎Visibility: hex range of values)
 
(15 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Infobox table|name=Dungeons Floors Data:Floors Main Data
{{subpage|game=Pokémon Mystery Dungeon: Red Rescue Team:ROM map}}
 
{{stub}}
{{Infobox table|name=Dungeons Floors Data: Main Data
|game=Pokémon Mystery Dungeon: Red Rescue Team
|game=Pokémon Mystery Dungeon: Red Rescue Team
|loc=ROM
|loc=ROM
|start=0x04A9F74
|start=0x04A9F74
|end=0x04B6047
|end=0x04B6063
|numentries=1763
|numentries=1764
|entrylength=28 bytes (0x1C)
|entrylength=28 bytes (0x1C)
|totallength=49364bytes (0xC0D4)
|totallength=49392 bytes (0xC0F0)
}}
}}
The entries contain various type of data for dungeon floors.
Every entry determines various floor setting. Below is explained entry structure.


==Entry Structure==
==Floor Layout Data==
===First Floor Layout Data===
*Length: 2 bytes
*Length: 2 bytes
*Offset within entry: 0x00-0x01
*Offset within entry: 0x00-0x01
*Range of values: Currentely Unknown
*Range of unique values: 0x01-0x0C for first byte. Second byte varies depending on first byte, repetitions are common.
This value regulates the approximate layout to be generated for the floor, regulating things like the number of rooms and their size and disposition.
This value regulates the approximate layout to be generated for the floor, regulating things like the number of rooms and their size and disposition.
When the first byte is 02 a monster house is spawned.


===Terrain Tileset ID===
==Terrain Tileset ID==
*Length: 1 byte
*Length: 1 byte
*Offset within entry: 0x02
*Offset within entry: 0x02
*Range of values: 0-75 (0x00-0x4B)
*Range of values: 0-75 (0x00-0x4B)


===Background Music ID===
==Background Music ID==
*Length: 1 byte
*Length: 1 byte
*Offset within entry: 0x03
*Offset within entry: 0x03
*Range of values: Currentely Unknown
*Range of values: 0-26 (00-1A)


===Weather ID===
==Weather ID==
*Length: 1 byte
*Length: 1 byte
*Offset within entry: 0x04
*Offset within entry: 0x04
Line 41: Line 44:
08: Random</pre>
08: Random</pre>


===Pokémon Density===
==Pokémon Density==
*Length: 1 byte
*Length: 1 byte
*Offset within entry: 0x06
*Offset within entry: 0x06
*Range of values: 0-255 (0x00-0xFF)
*Range of values: 0-255 (0x00-0xFF)


===Second Floor Layout Data===
==Shop Density==
*Length: 2 bytes
*Length: 1 byte
*Offset within entry: 0x07-0x08
*Offset within entry: 0x07
*Range of values: Currentely Unknown
*Range of values: Currently Unknown
This value regulates additional layout details like the dead-ends, the water/magma/sky tiles, and trasure rooms.
This value determines the probability of a shop spawning on a floor.
 
==Monster House Density==
*Length: 1 byte
*Offset within entry: 0x08
*Range of values: Currently Unknown
This value determines the probability of a monster house spawning on a floor.
 
==Item Usability==
*Length: 1 byte
*Offset within entry: 0x0A
*Range of values: Currently Unknown
Determines how often an item will be spawned already being sticky.


===Item Density===
==Item Density==
*Length: 1 byte
*Length: 1 byte
*Offset within entry: 0x15
*Offset within entry: 0x15
*Range of values: 0-255 (0x00-0xFF)
*Range of values: 0-255 (0x00-0xFF)


===Trap Density===
==Trap Density==
*Length: 1 byte
*Length: 1 byte
*Offset within entry: 0x16
*Offset within entry: 0x16
*Range of values: 0-255 (0x00-0xFF)
*Range of values: 0-255 (0x00-0xFF)


===Floor Number?===
==Floor Number?==
*Length: 1 byte
*Length: 1 byte
*Offset within entry: 0x17
*Offset within entry: 0x17
*Range of values: Currentely Unknown
*Range of values: Currently Unknown
Seems to indicate the floor number, tough modifying it don't seem to affect anything.
Seems to indicate the floor number, tough modifying it don't seem to affect anything.


===Event Floor===
==Event Floor==
*Length: 1 byte
*Length: 1 byte
*Offset within entry: 0x18
*Offset within entry: 0x18
Line 74: Line 89:
If different from zero, sets a prefabricated floor layout and/or shows a cutscene. Note that many cutscenes require specific animations that only few pokémon have implemented. To avoid game crashing, the appropriate pokémon must be present in the pokémon list set by the relative [[Pokémon Mystery Dungeon: Red Rescue Team:Dungeons Floors Data:Floors Data ID Table|Floor Data ID Table]] entry.
If different from zero, sets a prefabricated floor layout and/or shows a cutscene. Note that many cutscenes require specific animations that only few pokémon have implemented. To avoid game crashing, the appropriate pokémon must be present in the pokémon list set by the relative [[Pokémon Mystery Dungeon: Red Rescue Team:Dungeons Floors Data:Floors Data ID Table|Floor Data ID Table]] entry.


===Visibility===
==Visibility==
*Length: 1 byte
*Length: 1 byte
*Offset within entry: 0x22
*Offset within entry: 0x22
Line 85: Line 100:
</pre>
</pre>


===Max POKé Found===
==Max POKé Found==
*Length: 1 byte
*Length: 1 byte
*Offset within entry: 0x23
*Offset within entry: 0x23
Line 103: Line 118:
     838,  842,  862,  866,  878,  886,  898,  914,  922,  926
     838,  842,  862,  866,  878,  886,  898,  914,  922,  926
     934,  958,  974,  982,  998,  1000,  1100,  1300,  1500, 20000</pre>
     934,  958,  974,  982,  998,  1000,  1100,  1300,  1500, 20000</pre>
Note that due to how the amout is calculated, it is useless to use values greater than 38 (0x26).
Note that due to how the amout is calculated, it is useless to use values greater than 38 (0x26), except in case these 100 standard values are modified. These are present at offset $010A3F0, as little-endian unsigned long int values.
 
{{stub}}

Latest revision as of 02:42, 24 January 2024

This is a sub-page of Pokémon Mystery Dungeon: Red Rescue Team/Dungeons Floors Data.

So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?
Dungeons Floors Data: Main Data
Game Pokémon Mystery Dungeon: Red Rescue Team
Start Address 0x04A9F74
End Address 0x04B6063
# of Entries 1764
Entry Length 28 bytes (0x1C)
Total Length 49392 bytes (0xC0F0)
Back to the ROM map

Every entry determines various floor setting. Below is explained entry structure.

Floor Layout Data

  • Length: 2 bytes
  • Offset within entry: 0x00-0x01
  • Range of unique values: 0x01-0x0C for first byte. Second byte varies depending on first byte, repetitions are common.

This value regulates the approximate layout to be generated for the floor, regulating things like the number of rooms and their size and disposition. When the first byte is 02 a monster house is spawned.

Terrain Tileset ID

  • Length: 1 byte
  • Offset within entry: 0x02
  • Range of values: 0-75 (0x00-0x4B)

Background Music ID

  • Length: 1 byte
  • Offset within entry: 0x03
  • Range of values: 0-26 (00-1A)

Weather ID

  • Length: 1 byte
  • Offset within entry: 0x04
  • Range of values: 0-8 (0x0-0x8)
00: Clear
01: Sunny
02: Sandstorm
03: Cloudy
04: Rain
05: Hail
06: Fog
07: Snow
08: Random

Pokémon Density

  • Length: 1 byte
  • Offset within entry: 0x06
  • Range of values: 0-255 (0x00-0xFF)

Shop Density

  • Length: 1 byte
  • Offset within entry: 0x07
  • Range of values: Currently Unknown

This value determines the probability of a shop spawning on a floor.

Monster House Density

  • Length: 1 byte
  • Offset within entry: 0x08
  • Range of values: Currently Unknown

This value determines the probability of a monster house spawning on a floor.

Item Usability

  • Length: 1 byte
  • Offset within entry: 0x0A
  • Range of values: Currently Unknown

Determines how often an item will be spawned already being sticky.

Item Density

  • Length: 1 byte
  • Offset within entry: 0x15
  • Range of values: 0-255 (0x00-0xFF)

Trap Density

  • Length: 1 byte
  • Offset within entry: 0x16
  • Range of values: 0-255 (0x00-0xFF)

Floor Number?

  • Length: 1 byte
  • Offset within entry: 0x17
  • Range of values: Currently Unknown

Seems to indicate the floor number, tough modifying it don't seem to affect anything.

Event Floor

  • Length: 1 byte
  • Offset within entry: 0x18
  • Range of values:

If different from zero, sets a prefabricated floor layout and/or shows a cutscene. Note that many cutscenes require specific animations that only few pokémon have implemented. To avoid game crashing, the appropriate pokémon must be present in the pokémon list set by the relative Floor Data ID Table entry.

Visibility

  • Length: 1 byte
  • Offset within entry: 0x22
  • Range of values: 0-2 (0x00-0x02)

Sets the range of visibility for the floor, making the player unable to see on the screen enemy Pokémon present outside the set range. This also limits the range of room-ranged moves when used outside rooms.

00: Full visibility
01: Can't see outside room from inside, 1-tile visibility outside rooms
02: Can't see outside room from inside, 2-tiles visibility outside rooms

Max POKé Found

  • Length: 1 byte
  • Offset within entry: 0x23
  • Range of values: 0-38 (0x00-0x26)

This regulates the max value of every pile of money found on the floor.

When the game generates a pile of POKé to be placed on the floor, it draws a random value from 1 to 100, which points to one of the 100 values below. If the value drawed is greater than the max POKé value multiplied by 40, it will halve the value ID (rounding up) and check again if it is greater, and repeating this until it gets a value smaller than the set maximum.

      4,     6,    10,    14,    22,    26,    34,    38,    46,    58
     62,    74,    82,    86,    94,   106,   118,   122,   134,   142
    146,   158,   166,   178,   194,   202,   206,   214,   218,   226
    254,   262,   274,   278,   298,   302,   314,   326,   334,   346
    358,   362,   382,   386,   394,   398,   422,   446,   454,   458
    466,   478,   482,   502,   514,   526,   538,   542,   554,   562
    566,   586,   614,   622,   626,   634,   662,   674,   694,   698
    706,   718,   734,   746,   758,   768,   778,   794,   802,   818
    838,   842,   862,   866,   878,   886,   898,   914,   922,   926
    934,   958,   974,   982,   998,  1000,  1100,  1300,  1500, 20000

Note that due to how the amout is calculated, it is useless to use values greater than 38 (0x26), except in case these 100 standard values are modified. These are present at offset $010A3F0, as little-endian unsigned long int values.