Messages are parsed bytewise, if the 8th bit is set it is a special command.
Commands
A byte is converted to the command opcode like this
( Byte << 1 ) & 0x7F
| Opcode
|
Length (byte)
|
Function
|
| 0x00
|
1
|
Resets the text frame
|
| 0x02
|
1
|
Automatically resizes the text frame
|
| 0x04
|
6
|
Text frame settings
| Offset
|
Name
|
| 0
|
Position X
|
| 1
|
Position Y
|
| 2
|
Offset in VRAM to GFX?
|
| 3
|
Sprite offset in VRAM?
|
| 4
|
Draws on the BG when changed?
|
|
| 0x08
|
2
|
| Offset
|
Name
|
| 0
|
Enable/Disable text frame
|
|
| 0x0E
|
2
|
Control text type sound
| Offset
|
Name
|
| 0
|
0xFF Disable, anything else Enable
|
|
| 0x10
|
2
|
Control text type speed
| Offset
|
Name
|
| 0
|
Type speed setting
|
|
| 0x1A
|
2
|
displays a value from RAM
|
| 0x1E
|
1
|
New line
|
| 0x1A
|
3
|
Number from RAM
|
| 0x1C
|
5
|
String indexed from RAM
|
| 0x2A
|
1
|
waits
|
| 0x26,0x28,0x2E
|
1
|
Message end
|
| 0x4A
|
2
|
Word placeholder, inserts a word from the table at 0x120000
|
Non-Command Bytes
| Value
|
Char
|
| 0x20
|
(space)
|
| 0x3B
|
ü
|
| 0x3C
|
ä
|
| 0x3D
|
Ä
|
| 0x3E
|
ö
|
| 0x3F
|
Ö
|
| 0x5B
|
Ü
|
| 0x5D
|
¿
|
| 0x5E
|
¡
|
| 0x5F
|
ß
|
| 0x60
|
?
|
| 0x61
|
(
|
| 0x62
|
)
|
| 0x6D
|
!
|
| 0x6E
|
,
|
| 0x6F
|
:
|
| 0x76
|
\
|
| 0x77
|
=
|
| 0x7B
|
+
|
| 0x7C
|
-
|
| 0x7E
|
&
|
| 0x7F
|
.
|
The other values are converted by adding 0x20 to them.