Korean character encoding (Generation II): Difference between revisions

From Bulbapedia, the community-driven Pokémon encyclopedia.
Jump to navigationJump to search
(Several inconsistencies were observed within the 0x05 block and corrected. These corrections are based on the data available on the PKHex github ( https://github.com/kwsch/PKHeX/blob/master/PKHeX.Core/PKM/Strings/StringConverter2KOR.cs ))
Line 423: Line 423:
|-
|-
! 0-
! 0-
|  || 벙 || 벚 || 베 || 벡 || 벤 || 벧 || 벨 || 벰 || 벱 || 벳 || || || 벼 || 벽 || 변
|  || 벙 || 벚 || 베 || 벡 || 벤 || 벧 || 벨 || 벰 || 벱 || 벳 || || || 벼 || 벽 || 변
|-
|-
! 1-
! 1-
| 별 || 볍 || 볏 || 병 || 볕 || 볐 || 볘 || 볜 || 보 || 복 || 본 || 볼 || 봄 || 봅 || 봇 || 봉
| 별 || 볍 || 볏 || 볐 || 병 || 볕 || 볘 || 볜 || 보 || 복 || 볶 || 본 || 볼 || 봄 || 봅 || 봇
|-
|-
! 2-
! 2-
| || 봐 || 봔 || 봤 || 봬 || 뵀 || 뵈 || 뵉 || 뵌 || 뵐 || 뵘 || 뵙 || 뵤 || 뵨 || 부 || 북
| || 봐 || 봔 || 봤 || 봬 || 뵀 || 뵈 || 뵉 || 뵌 || 뵐 || 뵘 || 뵙 || 뵤 || 뵨 || 부 || 북
|-
|-
! 3-
! 3-
| 분 || 붇 || 불 || 붐 || 붑 || 붓 || 붕 || 붙 || 붚 || 붉 || 붊 || 붜 || 붤 || 붰 || 붸 || 뷔
| 분 || 붇 || 불 || 붉 || 붊 || 붐 || 붑 || 붓 || 붕 || 붙 || 붚 || 붜 || 붤 || 붰 || 붸 || 뷔
|-
|-
! 4-
! 4-

Revision as of 16:36, 10 June 2023

Main article: Character encoding (Generation II)

Character map

All control characters print characters that are two tiles high. (A single character's width is always one tile. A "tile" is an 8x8 pixel square; for comparison, the player occupies a 2x2-tile square.)

Those characters marked with two asterisks (**) are the first byte of two-byte characters (detailed below), which primarily print Korean characters. Those marked with a single asterisk are control characters which are explained below.

The character map also contains some tiles that contain bits and pieces of Korean characters.

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0- ** ** ** ** ** ** ** ** ** ** ** ** F G H I
1- J K L M N O P Q R S T U V * *
2- Z ( ) : w x y z Korean Ä Ö
3- Ü ä ö * * * * *   Korean Z ( )
4- :   Korean * * * * * * * * * *
5- * * * * * * * * * * * * * * * *
6- Character 0x62 ii.png D E F G H I V S L M :
7- PO Ké text box borders  
8- A B C D E F G H I J K L M N O P
9- Q R S T U V W X Y Z ( ) : ; [ ]
A- a b c d e f g h i j k l m n o p
B- q r s t u v w x y z Korean
C- Ä Ö Ü ä ö ü     Korean
D- 'd 'l 'm 'r 's 't 'v       Korean
E- ' PK MN -     ? ! . & é  
F- × . / , 0 1 2 3 4 5 6 7 8 9

Control characters

Character Function
0x1E A "half" line break (moves the print position to the place one tile below the start of the current line).
0x1F Prints ᆨtzx (mojibake for こうげき attack; appears to be a leftover from the English version code).
0x33 Prints POKé.
0x34 Nothing
0x35 Nothing
0x36 Nothing
0x37 Nothing
0x46 Prints PKMN.
0x47 Prints 포켓몬 (Pokémon).
0x48 Prints ⋯⋯.
0x49 Prints 컴퓨터 (PC).
0x4A Prints 기술머신 (TM).
0x4B Prints 로켓단 (Team Rocket).
0x4C ? (May break)
0x4D Prints 레드 (Red).
0x4E Prints 그린 (Blue).
0x4F Prints the opposing Trainer's name (including their Trainer class). (Outside of battle, this may not terminate properly.)
0x50 String terminator.
0x51 Prints the player's name.
0x52 Prints the rival's name.
0x53 Prints the inactive Pokémon's name.
0x54 Active Pokémon's name?
0x55 Prints 트레이너 (Trainer).
0x56 Prompts the player to press a button, after which the top line of the text window is replaced by the bottom, the bottom line is cleared, and the print position moves to the start of the bottom line.
0x57 Shifts text in the dialogue box up a line (so the top line is “lost”) without a prompt or a pause.
0x58 Prints PK.
0x59 Same as 0x5A?
0x5A Dialogue line break (moves the print position to the expected start of the second line in a standard dialogue box).
0x5B Prints 어머니 (Mom).
0x5C Prompts the player to press a button, after which the text window is cleared to make way for the following text.
0x5D Prompts the player to press a button, after which the top line of the text window is replaced by the bottom, the bottom line is cleared, and the print position moves to the start of the bottom line.
0x5E Marks the end of dialogue, with no visual prompt to the player.
0x5F Marks the end of dialogue, with a visual prompt to the player.

Two-byte characters

If the game tries to read a character and the byte read matches any of the following values (as seen in the section headers), then the game must also read the next byte in order to determine what character to print. The tables in each section describe which character is printed depending on the value of the second byte.

Many byte pairs will print an empty space, but most are unused. In most dialogue, 0x7F is used to display a space, while in user-input strings, 0B FF is inserted when the player uses a space. (This seems to be because the game requires that all user-input strings use pairs of bytes; if they didn't, the "maximum" length could vary significantly.) Similarly, while byte pairs starting with 0x00 and 0x0B have identical outputs, the game only naturally uses 0x0B pairs.

For the most part, the Korean characters appear in a consistent order based on their makeup (their initial, medial, and final consonants/vowels). There are some exceptions, however (such as 쓔 and 쓩).

This encoding does not include jamo that are exclusively as final consonants.

0x00

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3- _ -
4-
5-
6- ( ) ! ? - ~ , .
7-
8-
9-
A-
B-
C-
D-
E-
F- 0 1 2 3 4 5 6 7 8 9

0x01

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6-
7-
8-
9- 굿
A- 귿
B-
C-
D-
E-
F- 꼿

0x02

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1- 뀀
2-
3-
4-
5-
6-
7-
8-
9-
A-
B-
C-
D-
E-
F-

0x03

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6-
7-
8-
9-
A-
B-
C-
D-
E-
F-

0x04

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4- 릿
5-
6-
7-
8-
9-
A-
B-
C- 믿
D-
E-
F-

0x05

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6-
7-
8-
9-
A-
B-
C-
D-
E-
F-

0x06

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6-
7-
8-
9-
A-
B-
C-
D-
E-
F-

0x07

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6-
7-
8-
9-
A-
B-
C-
D-
E-
F-

0x08

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6-
7-
8-
9-
A-
B-
C-
D-
E-
F-

0x09

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6- 퀀
7-
8-
9-
A-
B-
C-
D-
E-
F-

0x0A

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3-
4-
5-
6-
7-
8-
9-
A-
B-
C-
D-
E-
F-

0x0B

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0-
1-
2-
3- _ -
4-
5-
6- ( ) ! ? - ~ , .
7-
8-
9-
A-
B-
C-
D-
E-
F- 0 1 2 3 4 5 6 7 8 9


Data structure in the Pokémon games
General Character encoding
Generation I Pokémon speciesPokémonPoké MartCharacter encodingSave
Generation II Pokémon speciesPokémonTrainerCharacter encoding (Korean) • Save
Generation III Pokémon species (EvolutionPokédexType chart)
Pokémon (substructures) • MoveContestContest moveItem
Trainer TowerBattle FrontierCharacter encoding (GameCube) • Save
Generation IV Pokémon species (EvolutionLearnsets)
PokémonSaveCharacter encoding (Wii)
Generation V–present Character encoding
Generation VIII Save
TCG GB and GB2 Character encoding


Project Games logo.png This data structure article is part of Project Games, a Bulbapedia project that aims to write comprehensive articles on the Pokémon games.