• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Research: Pokémon B/W - Changing the map's weather

Platinum Lucario

The Legendary Master of [color=#D8D48C]Light[/colo
1,607
Posts
16
Years
  • As I've been doing some research into Pokémon Black's Map header data, I've noticed one very odd thing in that completely separates Gen 5's Map Header data from Gen 4's Map Headers:

    The Weather Values!!!

    So with that being said, SDSME shows that it's located in offset 0x1C in a map header, but that's kinda misleading as I've changed the value to various different values and nothing happens. In fact we don't even know what that value even does!

    I've been looking through Pokémon Black Version's ROM data, so far, I haven't found anything in regards to values that can change the weather for a map.

    What I do know is the land data (map model data) is located in a/0/0/8, Nuvema Town's land data is #0, I've compared the data to Route 4's land data in #34 and found hardly any difference in header data. And why I chose Route 4, is because Route 4 is a Route that has a sandstorm brewing all the time. So if we can manage to change the weather data to that, then that would be brilliant.

    If anyone is interested, I've already documented some of the map headers in Pokémon Black Version, that may actually help. Unfortunately though, we need to find the Weather values, which don't seem to appear in the map header data.

    Map Header Data - Offset locations - Pokémon Black Version (English) [IRBO]

    Currently documented header data:

    Map #389 (0x185h)
    Nuvema Town
    ROM: 0x5DE572C-5DE575B

    0x00: Map Type
    0x01: ???
    0x02-03: Land Model Texture
    0x04-05: Map Matrix Layout
    0x06-07: Object Scripts
    0x08-09: Map Scripts
    0x0A-0B: Text
    0x0C-0D: Background Music (Spring)
    0x0E-0F: Background Music (Summer)
    0x10-11: Background Music (Autumn)
    0x12-13: Background Music (Winter)
    0x14-15: Wild Pokémon
    0x16-17: Map ID
    0x18-19: Parent Map ID
    0x1A: Name
    0x1B: Name Style
    0x1C: ??? (SDSME states it as "weather", but it doesn't work...)
    0x1D: Camera Angle Style
    0x1E: ???
    0x1F: ??? (Flags, maybe?)
    0x20-2F: ???

    Since B/W only has one name style, Name styles only have 0x4 as a usable value,
    anything > (more) or < (less) than 0x4 will not show the name.

    I'd also need your help for more documentation on the offsets in the map headers too, which would be greatly appreciated~
     

    Platinum Lucario

    The Legendary Master of [color=#D8D48C]Light[/colo
    1,607
    Posts
    16
    Years
  • Just an update to the whole research on B/W/B2/W2 map weather data, I have found the active values in RAM that indicate the current weather. But please note that they are not the actual map's weather bytes. It can be found in address 0x0024F9BD on Pokémon Black Version (US/EUR).

    Code:
    Weather IDs in B/W/B2/W2:
    00 Sunny (Clear weather)
    01 Snowy
    02 Rainy
    03 Sandstorm
    04 Blizzard
    05 Hail
    06 Thunderstorm (Used for Thundurus)
    07 Strong Storm (Used for Tornadus)
    08 Diamond Dust
    09 Misty
    0A Minor Darkness (Unused)
    0B Unfinished Light Mist (Unused)
    0C Sandstorm (stronger)
    0D Minor Darkness (Unused)
    0E Light Mist (Unused)
    0F (Game crash)
    10 (Error screen)
    11 (Game crash)
    12 (Game crash)
    13 (Error screen)
    ...and it repeats the same from 0xF to 0x11, over and over again from 0x14 onwards

    At this point, I'm quite unsure as to where tells the game to assign the weather. If the map's weather data is assigned by a specific ID correlating to calender.c (which is likely), then it's likely to be within the corresponding overlay file. But what's quite unusual, is that changing Route 4's weather to a location such as Oplucid City and other northern Unova areas, actually results in that location getting the weather effect. But if it is set to location within the southern Unova areas, it doesn't do anything at all.

    Perhaps there might be a Boolean value in which determines if the weather for that location is enabled? I'll definitely need all the help I can get as well.
     
    Back
    Top