Walda

Walda Pepper (Japanese: ハコガミ アヤノ Ayano Hakogami) is a young girl in Rustboro City who is very sick. She has only appeared in Pokémon Emerald. Her father bought her multiple Poké Dolls—such as Pikachu and the Hoenn starters—to cheer her up, but it has not worked. If the player is able to say something to make her laugh, her father will reward them with a new wallpaper for the Pokémon Storage System.

Walda's room

Words that will make Walda laugh usually consist of random characters and depend on the player's Trainer ID number.

Passphrase calculation

There are 256 different passphrases for every possible wallpaper Walda's father can grant. The primary components that go into a passphrase are:

  • The player's Trainer ID (this will be referred to as tid)
  • An index number for the pattern of the wallpaper (pat)
  • An index number for the icon in the wallpaper (ico)
  • A value for the background color, influencing the majority of the pattern (bcolor)
  • A value for the foreground color, influencing the icons and specific parts of the pattern (fcolor)

The final component can be any random number ranging from 0 to 255 (this will be referred to as key). Different values for this number can create vastly different passphrases, but they will all unlock the same wallpaper. This number simply masks and scrambles the other values.

This section will explain the process of creating a passphrase from the required components, but the game can easily reverse this process to create the proper wallpaper from a given passphrase.

Colors

The colors are 2-byte values that represent the five highest bits of the red, green, and blue values in an RGB color in the manner shown below:

00000000 00000000

As an example, if the green color used aboverepresented as "99FF99" in hexadecimal or 10011001 11111111 10011001 in binarywere chosen for the wallpaper's background, it would be encoded as 01001111 11110011 (0x4FF3 or 20,467) for bcolor.

Patterns and icons

There are 16 different possible patterns and 30 possible icons that can be placed within the patterns. They are described below as they are named in the filb.de generator linked at the bottom of this page. A sample of each of the patterns and some of the icons may be seen here.

IndexPattern
0Zigzagoon
1Screen
2Horizontal
3Diagonal
4Block
5Ribbon*
6Pokémon Center
7Frame
8Symbol
9Circle
10Azumarill
11Pikachu
12Legendary
13Dusclops
14Ludicolo
15 Whiscash
IndexIcon
0Team Aqua
1Heart
25-Star
3Bricks
44-Star
5Asterisk
6Dot
7Cross*
8Line-Circle
9Poké Ball
10Maze
11Footprint
12Big Asterisk
13Circle
14 Koffing
IndexIcon
15Ribbon
16Bolt*
17Four Circles
18Lotad
19Crystal
20Pichu
21Diglett
22Luvdisc
23Star in Circle
24Spinda
25Latias/Latios
26Plusle*
27Minun
28Togepi
29 Team Magma

The icons that are marked with an asterisk (*) are only available in Japanese versions of Pokémon Emerald. If this index is used in an English passphrase, no icon will appear in the resulting wallpaper. This does not apply to the Ribbon wallpaper, however; that wallpaper can be unlocked in the English version of Emerald, but it is slightly different from the Japanese version.

Algorithm

tid, bcolor, and fcolor are all 2-byte values. However, this algorithm deals with the bytes in these values separately. tid1, bcolor1, and fcolor1 will refer to the lowest byte of these values, while tid2, bcolor2, and fcolor2 will refer to the highest byte. For example, if the value of tid is 511 (00000001 11111111), then tid1 is 255 (11111111) and tid2 is 1 (00000001).

The player's Trainer ID undergoes a transformation before it is used in the rest of the algorithm.

x = bcolor1 fcolor1icotid2
y = bcolor2fcolor2pattid1

A 9-byte string is then created by joining all of the current values together as follows:

U = (bcolor1) (bcolor2) (fcolor1) (fcolor2) (ico) (pat) (x) (y) (key)

Next, a bitmask is created using the highest four bits of key. These four bits are repeated to fill the highest 8 bytes of a 9-byte string, with the bits in the lowest byte remaining 0; this string is represented below as mask.

V = Umask

Then, the highest 8 bytes of V are treated as if they are a circular structure (with the lowest bit "connected" back around to the highest bit) and are shifted to the right by (key % 16) bit positions. After this, the whole 9-bytes are treated as a circular structure and shifted right by 21 bit positions. This result will be referred to below as W.

W is the string that will finally be used to create the passphrase. Since a passphrase requires inputting a full-length word and the maximum length of input differs between Japanese and English games, the method of interpreting W to arrive at the passphrase differs between Japanese and English games.

In English games, every 5 bits in W represent a letter in the passphrase. Since W is a 9-byte string (or 72 bits long), it contains enough bits for 14 full letters, with 2 bits left over. To form the last letter and reach the maximum 15-letter length for English input, the letter effectively wraps back to the top of W, using the two lowest bits of W for the letter's two highest bits and the three highest bits of W for the letter's three lowest bits. Letters can be determined by matching the value of each 5-bit number with a character below:

012345678910111213141516171819202122232425262728293031
BCDFGHJKLMNPQRSTVWZbcdfghjkmnpqs

This is largely the first 32 capital and lowercase English letters without vowels, with a select few other letters excluded as well.

So, in an English game, if the first (highest) two bytes of W are 01110111 01011000, the first three letters of the passphrase will be "S" (01110, or 14), "p" (11101, or 29), and "Q" (01100, or 12). If the last (lowest) byte of W is also 00000001, then the last letter of the passphrase will be "P" (01011, or 11).

In Japanese games, every 6 bits in W represent a letter in the passphrase. Since W is a 9-byte string (or 72 bits long), this divides W evenly into a maximum length, 12-letter passphrase. Letters can be determined by matching the value of each 6-bit number with a character below:

012345678910111213141516171819202122232425262728293031
3233343536373839404142434445464748495051525354555657585960616263

This corresponds to the first 64 characters in the game's Japanese character encoding, offset by 1 to skip the space in the 0 position.

So, in a Japanese game, if the first (highest) two bytes of W are 00001110 00011101, the first two letters of the passphrase will be "え" (000011, or 3) and "め" (100001, or 33).

Note that when the original 9-byte string U (and then V) was being manipulated, the random bitmask and shifting based on key avoided the part of the string (the lowest byte) that contained key itself. The only time key is manipulated is in the final, set shift by 21 bits. Because of this, the game can know exactly how to retrieve key from a passphrase and reverse the entire algorithm to extract the wallpaper components from the passphrase.

Names

Language Name Origin
Japanese ハコガミ アヤノ Ayano Hakogami From 文 aya (design), 箱 hako (box), and 壁紙 kabegami (wallpaper)
English Walda Pepper From wallpaper
German Tapetra Schläfer From Tapete (wallpaper)
Spanish Anapel From papel (paper)
French Bercia Befond From bercer (to cradle) and fond (background)
Italian Nina De Sfondis From sfondo (background)


This game character article is part of Project CharacterDex, a Bulbapedia project that aims to write comprehensive articles on each character found in the Pokémon games.
This article is issued from Bulbagarden. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.