• 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