summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-05-27 15:08:48 -0700
committerYamaArashi <shadow962@live.com>2016-05-30 02:19:25 -0700
commit0ebfe95d65fc2852a6b7f0528a2a114de7fe698e (patch)
treea20b2e0e839661df88664d6547841a3a79e07222 /include
parent1d8ca2c1b995be87bb78dcf9bdfdc1d924a48979 (diff)
text.c
Diffstat (limited to 'include')
-rw-r--r--include/fonts/.gitignore8
-rw-r--r--include/fonts/font0_widths.h19
-rw-r--r--include/fonts/font1_widths.h17
-rw-r--r--include/fonts/font3_widths.h19
-rw-r--r--include/fonts/font4_widths.h17
-rw-r--r--include/fonts/type1_map.h250
-rw-r--r--include/fonts/type3_map.h131
-rw-r--r--include/gba/defines.h5
-rw-r--r--include/gba/io_reg.h12
-rw-r--r--include/global.h7
-rw-r--r--include/main.h2
-rw-r--r--include/sprite.h2
-rw-r--r--include/string_util.h15
-rw-r--r--include/text.h16
14 files changed, 507 insertions, 13 deletions
diff --git a/include/fonts/.gitignore b/include/fonts/.gitignore
new file mode 100644
index 000000000..6e5bdcae2
--- /dev/null
+++ b/include/fonts/.gitignore
@@ -0,0 +1,8 @@
+font0_lat_glyphs.h
+font1_lat_glyphs.h
+font0_jpn_glyphs.h
+font1_jpn_glyphs.h
+braille_glyphs.h
+down_arrow_tiles.h
+unknown_palette_81E6692.h
+default_palette.h
diff --git a/include/fonts/font0_widths.h b/include/fonts/font0_widths.h
new file mode 100644
index 000000000..aade6a91d
--- /dev/null
+++ b/include/fonts/font0_widths.h
@@ -0,0 +1,19 @@
+static const u8 sFont0Widths[] =
+{
+ 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 5, 8,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8,
+ 7, 7, 7, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 7, 6, 3, 8, 8, 8, 7, 8, 8, 4, 6, 6, 4, 4, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 7, 7, 8, 8, 6,
+ 7, 8, 8, 8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7,
+ 7, 7, 7, 7, 7, 7, 7, 8, 6, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 3, 5, 3,
+ 6, 6, 6, 3, 3, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, 6,
+ 3, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7,
+ 3, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 1, 1,
+};
diff --git a/include/fonts/font1_widths.h b/include/fonts/font1_widths.h
new file mode 100644
index 000000000..a5c3dba50
--- /dev/null
+++ b/include/fonts/font1_widths.h
@@ -0,0 +1,17 @@
+static const u8 sFont1Widths[] =
+{
+ 5, 3, 8, 8, 8, 8, 8, 8, 8, 4, 5, 4, 4, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 5, 8, 8, 8, 8, 8, 4, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 5,
+ 6, 5, 5, 5, 5, 5, 5, 5, 5, 4, 8, 4, 4, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 4, 8,
+ 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6,
+ 8, 7, 6, 5, 3, 3, 5, 4, 3, 6, 6, 6, 7, 7, 8, 5,
+ 5, 5, 3, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 4, 4, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 6, 7, 6, 6, 7, 6,
+ 7, 7, 7, 6, 7, 6, 7, 6, 7, 6, 6, 7, 6, 6, 3, 3,
+ 5, 5, 5, 5, 3, 3, 5, 5, 5, 5, 5, 5,
+};
diff --git a/include/fonts/font3_widths.h b/include/fonts/font3_widths.h
new file mode 100644
index 000000000..0f79260e4
--- /dev/null
+++ b/include/fonts/font3_widths.h
@@ -0,0 +1,19 @@
+static const u8 sFont3Widths[] =
+{
+ 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 4, 8,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 7, 6, 4, 8, 8, 8, 7, 8, 8, 4, 6, 6, 4, 4, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 6, 7, 8, 7, 7, 8, 8, 4,
+ 7, 8, 8, 8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7,
+ 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 3, 5, 3,
+ 6, 6, 6, 3, 3, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, 6,
+ 3, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7,
+ 3, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 1, 1,
+};
diff --git a/include/fonts/font4_widths.h b/include/fonts/font4_widths.h
new file mode 100644
index 000000000..a779eb0eb
--- /dev/null
+++ b/include/fonts/font4_widths.h
@@ -0,0 +1,17 @@
+static const u8 sFont4Widths[] =
+{
+ 5, 3, 8, 8, 8, 8, 8, 8, 8, 4, 5, 4, 4, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 5, 8, 8, 8, 8, 8, 4, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 5,
+ 6, 5, 5, 5, 5, 5, 5, 5, 5, 4, 8, 4, 4, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 4, 8,
+ 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6,
+ 8, 7, 6, 5, 3, 3, 5, 4, 3, 6, 6, 6, 7, 7, 8, 5,
+ 5, 5, 3, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 4, 4, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 6, 7, 6, 6, 7, 6,
+ 7, 7, 7, 6, 7, 6, 7, 6, 7, 6, 6, 7, 6, 6, 3, 3,
+ 5, 5, 5, 5, 3, 3, 5, 5, 5, 5, 5, 5,
+};
diff --git a/include/fonts/type1_map.h b/include/fonts/type1_map.h
new file mode 100644
index 000000000..45e42f62c
--- /dev/null
+++ b/include/fonts/type1_map.h
@@ -0,0 +1,250 @@
+static const u8 sFontType1Map[] =
+{
+ 0xD4, 0xD4,
+ 0xD4, 0x31,
+ 0xD4, 0x32,
+ 0xD4, 0x33,
+ 0xD4, 0x34,
+ 0xD4, 0x35,
+ 0xD4, 0x36,
+ 0xD4, 0x37,
+ 0xD4, 0x38,
+ 0xD4, 0x39,
+ 0xD4, 0x3A,
+ 0xD4, 0x3B,
+ 0xD4, 0x3C,
+ 0xD4, 0x3D,
+ 0xD4, 0x3E,
+ 0xD4, 0x3F,
+ 0xD4, 0x40,
+ 0xD4, 0x41,
+ 0xD4, 0x42,
+ 0xD4, 0x43,
+ 0xD4, 0x44,
+ 0xD4, 0x45,
+ 0xD4, 0x46,
+ 0xD4, 0x47,
+ 0xD4, 0x48,
+ 0xD4, 0x49,
+ 0xD4, 0x4A,
+ 0xD4, 0x4B,
+ 0xD4, 0x4C,
+ 0xD4, 0x4D,
+ 0xD4, 0x4E,
+ 0xD4, 0x4F,
+ 0xD4, 0x50,
+ 0xD4, 0x51,
+ 0xD4, 0x52,
+ 0xD4, 0x53,
+ 0xD4, 0x54,
+ 0xD4, 0x55,
+ 0xD4, 0x56,
+ 0xD4, 0x57,
+ 0xD4, 0x58,
+ 0xD4, 0x59,
+ 0xD4, 0x5A,
+ 0xD4, 0x5B,
+ 0xD4, 0x5C,
+ 0xD4, 0x5D,
+ 0xD4, 0x5E,
+ 0xD4, 0x31,
+ 0xD4, 0x32,
+ 0xD4, 0x33,
+ 0xD4, 0x34,
+ 0xD4, 0x35,
+ 0xD4, 0x60,
+ 0xD4, 0x61,
+ 0xD4, 0x62,
+ 0x65, 0x36,
+ 0x65, 0x37,
+ 0x65, 0x38,
+ 0x65, 0x39,
+ 0x65, 0x3A,
+ 0x65, 0x3B,
+ 0x65, 0x3C,
+ 0x65, 0x3D,
+ 0x65, 0x3E,
+ 0x65, 0x3F,
+ 0x65, 0x40,
+ 0x65, 0x41,
+ 0x65, 0x42,
+ 0x65, 0x43,
+ 0x65, 0x44,
+ 0x65, 0x4A,
+ 0x65, 0x4B,
+ 0x65, 0x4C,
+ 0x65, 0x4D,
+ 0x65, 0x4E,
+ 0x64, 0x4A,
+ 0x64, 0x4B,
+ 0x64, 0x4C,
+ 0x64, 0x4D,
+ 0x64, 0x4E,
+ 0xD4, 0x5F,
+ 0xD4, 0x00,
+ 0xD4, 0x01,
+ 0xD4, 0x02,
+ 0xD4, 0x03,
+ 0xD4, 0x04,
+ 0xD4, 0x05,
+ 0xD4, 0x06,
+ 0xD4, 0x07,
+ 0xD4, 0x08,
+ 0xD4, 0x09,
+ 0xD4, 0x0A,
+ 0xD4, 0x0B,
+ 0xD4, 0x0C,
+ 0xD4, 0x0D,
+ 0xD4, 0x0E,
+ 0xD4, 0x0F,
+ 0xD4, 0x10,
+ 0xD4, 0x11,
+ 0xD4, 0x12,
+ 0xD4, 0x13,
+ 0xD4, 0x14,
+ 0xD4, 0x15,
+ 0xD4, 0x16,
+ 0xD4, 0x17,
+ 0xD4, 0x18,
+ 0xD4, 0x19,
+ 0xD4, 0x1A,
+ 0xD4, 0x1B,
+ 0xD4, 0x4D,
+ 0xD4, 0x1C,
+ 0xD4, 0x1D,
+ 0xD4, 0x1E,
+ 0xD4, 0x1F,
+ 0xD4, 0x20,
+ 0xD4, 0x21,
+ 0xD4, 0x22,
+ 0xD4, 0x23,
+ 0xD4, 0x24,
+ 0xD4, 0x25,
+ 0xD4, 0x58,
+ 0xD4, 0x26,
+ 0xD4, 0x27,
+ 0xD4, 0x28,
+ 0xD4, 0x29,
+ 0xD4, 0x2A,
+ 0xD4, 0x2B,
+ 0xD4, 0x69,
+ 0xD4, 0x30,
+ 0xD4, 0x6A,
+ 0xD4, 0x6B,
+ 0xD4, 0x74,
+ 0xD4, 0x2D,
+ 0xD4, 0x2E,
+ 0xD4, 0x2F,
+ 0x65, 0x05,
+ 0x65, 0x06,
+ 0x65, 0x07,
+ 0x65, 0x08,
+ 0x65, 0x09,
+ 0x65, 0x0A,
+ 0x65, 0x0B,
+ 0x65, 0x0C,
+ 0x65, 0x0D,
+ 0x65, 0x0E,
+ 0x65, 0x0F,
+ 0x65, 0x10,
+ 0x65, 0x11,
+ 0x65, 0x12,
+ 0x65, 0x13,
+ 0x65, 0x19,
+ 0x65, 0x1A,
+ 0x65, 0x1B,
+ 0x65, 0x4D,
+ 0x65, 0x1C,
+ 0x64, 0x19,
+ 0x64, 0x1A,
+ 0x64, 0x1B,
+ 0x64, 0x4D,
+ 0x64, 0x1C,
+ 0xD4, 0x2C,
+ 0xD4, 0x76,
+ 0xD4, 0x77,
+ 0xD4, 0x78,
+ 0xD4, 0x79,
+ 0xD4, 0x7A,
+ 0xD4, 0x7B,
+ 0xD4, 0x7C,
+ 0xD4, 0x7D,
+ 0xD4, 0x7E,
+ 0xD4, 0x7F,
+ 0xD4, 0x67,
+ 0xD4, 0x66,
+ 0xD4, 0x68,
+ 0xD4, 0x63,
+ 0xD4, 0xD2,
+ 0xD4, 0xD3,
+ 0xD4, 0xD0,
+ 0xD4, 0xD1,
+ 0xD4, 0xCE,
+ 0xD4, 0xCF,
+ 0xD4, 0x6F,
+ 0xD4, 0x75,
+ 0xD4, 0x70,
+ 0xD4, 0x72,
+ 0xD4, 0x71,
+ 0xD4, 0x73,
+ 0xD4, 0x80,
+ 0xD4, 0x81,
+ 0xD4, 0x82,
+ 0xD4, 0x83,
+ 0xD4, 0x84,
+ 0xD4, 0x85,
+ 0xD4, 0x86,
+ 0xD4, 0x87,
+ 0xD4, 0x88,
+ 0xD4, 0x89,
+ 0xD4, 0x8A,
+ 0xD4, 0x8B,
+ 0xD4, 0x8C,
+ 0xD4, 0x8D,
+ 0xD4, 0x8E,
+ 0xD4, 0x8F,
+ 0xD4, 0x90,
+ 0xD4, 0x91,
+ 0xD4, 0x92,
+ 0xD4, 0x93,
+ 0xD4, 0x94,
+ 0xD4, 0x95,
+ 0xD4, 0x96,
+ 0xD4, 0x97,
+ 0xD4, 0x98,
+ 0xD4, 0x99,
+ 0xD4, 0x9A,
+ 0xD4, 0x9B,
+ 0xD4, 0x9C,
+ 0xD4, 0x9D,
+ 0xD4, 0x9E,
+ 0xD4, 0x9F,
+ 0xD4, 0xA0,
+ 0xD4, 0xA1,
+ 0xD4, 0xA2,
+ 0xD4, 0xA3,
+ 0xD4, 0xA4,
+ 0xD4, 0xA5,
+ 0xD4, 0xA6,
+ 0xD4, 0xA7,
+ 0xD4, 0xA8,
+ 0xD4, 0xA9,
+ 0xD4, 0xAA,
+ 0xD4, 0xAB,
+ 0xD4, 0xAC,
+ 0xD4, 0xAD,
+ 0xD4, 0xAE,
+ 0xD4, 0xAF,
+ 0xD4, 0xB0,
+ 0xD4, 0xB1,
+ 0xD4, 0xB2,
+ 0xD4, 0xB3,
+ 0xD4, 0x6D,
+ 0xD4, 0xD5,
+ 0xD4, 0xD6,
+ 0xD4, 0xD7,
+ 0xD4, 0xD8,
+ 0xD4, 0xD9,
+ 0xD4, 0xDA,
+ 0xD4, 0xDB,
+};
diff --git a/include/fonts/type3_map.h b/include/fonts/type3_map.h
new file mode 100644
index 000000000..48219423b
--- /dev/null
+++ b/include/fonts/type3_map.h
@@ -0,0 +1,131 @@
+static const u8 sFontType3Map[] =
+{
+ 0x00, 0x10,
+ 0x01, 0x10,
+ 0x02, 0x10,
+ 0x03, 0x10,
+ 0x04, 0x11,
+ 0x05, 0x11,
+ 0x06, 0x11,
+ 0x07, 0x11,
+ 0x08, 0x12,
+ 0x09, 0x12,
+ 0x0A, 0x12,
+ 0x0B, 0x12,
+ 0x0C, 0x13,
+ 0x0D, 0x13,
+ 0x0E, 0x13,
+ 0x0F, 0x13,
+ 0x00, 0x14,
+ 0x01, 0x14,
+ 0x02, 0x14,
+ 0x03, 0x14,
+ 0x04, 0x15,
+ 0x05, 0x15,
+ 0x06, 0x15,
+ 0x07, 0x15,
+ 0x08, 0x16,
+ 0x09, 0x16,
+ 0x0A, 0x16,
+ 0x0B, 0x16,
+ 0x0C, 0x17,
+ 0x0D, 0x17,
+ 0x0E, 0x17,
+ 0x0F, 0x17,
+ 0x00, 0x18,
+ 0x01, 0x18,
+ 0x02, 0x18,
+ 0x03, 0x18,
+ 0x04, 0x19,
+ 0x05, 0x19,
+ 0x06, 0x19,
+ 0x07, 0x19,
+ 0x08, 0x1A,
+ 0x09, 0x1A,
+ 0x0A, 0x1A,
+ 0x0B, 0x1A,
+ 0x0C, 0x1B,
+ 0x0D, 0x1B,
+ 0x0E, 0x1B,
+ 0x0F, 0x1B,
+ 0x00, 0x1C,
+ 0x01, 0x1C,
+ 0x02, 0x1C,
+ 0x03, 0x1C,
+ 0x04, 0x1D,
+ 0x05, 0x1D,
+ 0x06, 0x1D,
+ 0x07, 0x1D,
+ 0x08, 0x1E,
+ 0x09, 0x1E,
+ 0x0A, 0x1E,
+ 0x0B, 0x1E,
+ 0x0C, 0x1F,
+ 0x0D, 0x1F,
+ 0x0E, 0x1F,
+ 0x0F, 0x1F,
+ 0x20, 0x24,
+ 0x20, 0x24,
+ 0x21, 0x24,
+ 0x21, 0x24,
+ 0x20, 0x24,
+ 0x20, 0x24,
+ 0x21, 0x24,
+ 0x21, 0x24,
+ 0x22, 0x25,
+ 0x22, 0x25,
+ 0x23, 0x25,
+ 0x23, 0x25,
+ 0x22, 0x25,
+ 0x22, 0x25,
+ 0x23, 0x25,
+ 0x23, 0x25,
+ 0x20, 0x24,
+ 0x20, 0x24,
+ 0x21, 0x24,
+ 0x21, 0x24,
+ 0x20, 0x24,
+ 0x20, 0x24,
+ 0x21, 0x24,
+ 0x21, 0x24,
+ 0x22, 0x25,
+ 0x22, 0x25,
+ 0x23, 0x25,
+ 0x23, 0x25,
+ 0x22, 0x25,
+ 0x22, 0x25,
+ 0x23, 0x25,
+ 0x23, 0x25,
+ 0x20, 0x26,
+ 0x20, 0x26,
+ 0x21, 0x26,
+ 0x21, 0x26,
+ 0x20, 0x26,
+ 0x20, 0x26,
+ 0x21, 0x26,
+ 0x21, 0x26,
+ 0x22, 0x27,
+ 0x22, 0x27,
+ 0x23, 0x27,
+ 0x23, 0x27,
+ 0x22, 0x27,
+ 0x22, 0x27,
+ 0x23, 0x27,
+ 0x23, 0x27,
+ 0x20, 0x26,
+ 0x20, 0x26,
+ 0x21, 0x26,
+ 0x21, 0x26,
+ 0x20, 0x26,
+ 0x20, 0x26,
+ 0x21, 0x26,
+ 0x21, 0x26,
+ 0x22, 0x27,
+ 0x22, 0x27,
+ 0x23, 0x27,
+ 0x23, 0x27,
+ 0x22, 0x27,
+ 0x22, 0x27,
+ 0x23, 0x27,
+ 0x23, 0x27,
+};
diff --git a/include/gba/defines.h b/include/gba/defines.h
index a8df0c1c2..5b83d3d03 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -34,6 +34,11 @@
#define INTR_CHECK (*(u16 *)0x3007FF8)
#define INTR_VECTOR (*(void **)0x3007FFC)
+#define BG_VRAM 0x6000000
+
+#define BG_CHAR_ADDR(n) (BG_VRAM + (0x4000 * (n)))
+#define BG_SCREEN_ADDR(n) (BG_VRAM + (0x800 * (n)))
+
#define OBJ_VRAM0 0x6010000 // when BG is in tiled mode
#define OBJ_VRAM1 0x6014000 // when BG is in bitmap mode
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index 84c136465..44d6b932d 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -338,6 +338,18 @@
#define REG_DISPCNT (*(vu32 *)REG_ADDR_DISPCNT)
#define REG_DISPSTAT (*(vu16 *)REG_ADDR_DISPSTAT)
#define REG_VCOUNT (*(vu16 *)REG_ADDR_VCOUNT)
+#define REG_BG0CNT (*(vu16 *)REG_ADDR_BG0CNT)
+#define REG_BG1CNT (*(vu16 *)REG_ADDR_BG1CNT)
+#define REG_BG2CNT (*(vu16 *)REG_ADDR_BG2CNT)
+#define REG_BG3CNT (*(vu16 *)REG_ADDR_BG3CNT)
+#define REG_BG0HOFS (*(vu16 *)REG_ADDR_BG0HOFS)
+#define REG_BG0VOFS (*(vu16 *)REG_ADDR_BG0VOFS)
+#define REG_BG1HOFS (*(vu16 *)REG_ADDR_BG1HOFS)
+#define REG_BG1VOFS (*(vu16 *)REG_ADDR_BG1VOFS)
+#define REG_BG2HOFS (*(vu16 *)REG_ADDR_BG2HOFS)
+#define REG_BG2VOFS (*(vu16 *)REG_ADDR_BG2VOFS)
+#define REG_BG3HOFS (*(vu16 *)REG_ADDR_BG3HOFS)
+#define REG_BG3VOFS (*(vu16 *)REG_ADDR_BG3VOFS)
#define REG_SOUND1CNT_L (*(vu16 *)REG_ADDR_SOUND1CNT_L)
#define REG_NR10 (*(vu8 *)REG_ADDR_NR10)
diff --git a/include/global.h b/include/global.h
index b4a88ef5f..21b1e41af 100644
--- a/include/global.h
+++ b/include/global.h
@@ -7,6 +7,9 @@
#define REVISION 0
#endif
+// Prevent cross-jump optimization.
+#define BLOCK_CROSS_JUMP asm("");
+
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
@@ -42,7 +45,9 @@ struct SaveBlock2
u8 playTimeSeconds;
u8 playTimeVBlanks;
u8 optionsButtonMode;
- u8 filler[0x84];
+ u8 optionsTextSpeed:3;
+ u8 optionsUnk:5;
+ u8 filler[0x83];
struct Time localTimeOffset;
};
diff --git a/include/main.h b/include/main.h
index 06480af43..2f6671967 100644
--- a/include/main.h
+++ b/include/main.h
@@ -42,4 +42,6 @@ struct Main
u8 oamLoadDisabled:1;
};
+extern struct Main gMain;
+
#endif // GUARD_MAIN_H
diff --git a/include/sprite.h b/include/sprite.h
index fdc25c957..10bd3a5f0 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -16,7 +16,7 @@ struct SpriteFrameImage
struct SpritePalette
{
- u8 *data;
+ u16 *data;
u16 tag;
};
diff --git a/include/string_util.h b/include/string_util.h
index 0dee55828..d64bb08cc 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -3,14 +3,6 @@
#include "global.h"
-#define CHAR_SPACE 0x00
-#define CHAR_QUESTION_MARK 0xAC
-#define CHAR_HYPHEN 0xAE
-#define CHAR_COLON 0xF0
-#define EXT_CTRL_CODE_BEGIN 0xFC // extended control code
-#define PLACEHOLDER_BEGIN 0xFD // string placeholder
-#define EOS 0xFF // end of string
-
enum StringConvertMode
{
STR_CONV_MODE_LEFT_ALIGN,
@@ -25,15 +17,16 @@ u8 *StringCopy(u8 *dest, u8 *src);
u8 *StringAppend(u8 *dest, u8 *src);
u8 *StringCopyN(u8 *dest, u8 *src, u8 n);
u8 *StringAppendN(u8 *dest, u8 *src, u8 n);
-u16 StringGetLength(u8 *str);
+u16 StringLength(u8 *str);
s32 StringCompare(u8 *str1, u8 *str2);
s32 StringCompareN(u8 *str1, u8 *str2, u32 n);
u8 *ConvertIntToDecimalStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 n);
-u8 *ConvertIntToDecimalStringN_UnknownExtCtrlCode(u8 *dest, s32 value, enum StringConvertMode mode, u8 n);
+u8 *ConvertIntToDecimalStringN_DigitWidth6(u8 *dest, s32 value, enum StringConvertMode mode, u8 n);
u8 *ConvertIntToHexStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 n);
u8 *ConvertIntToDecimalString(u8 *dest, s32 value);
u8 *StringExpandPlaceholders(u8 *dest, u8 *src);
-u8 *UnknownStringFunc(u8 *dest, u8 *src);
+u8 *StringBraille(u8 *dest, u8 *src);
+u8 *GetExpandedPlaceholder(u32 id);
u8 *StringFill(u8 *dest, u8 c, u16 n);
u8 *StringCopyPadded(u8 *dest, u8 *src, u8 c, u16 n);
u8 *StringFillWithTerminator(u8 *dest, u16 n);
diff --git a/include/text.h b/include/text.h
new file mode 100644
index 000000000..4f9bdee5a
--- /dev/null
+++ b/include/text.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_TEXT_H
+#define GUARD_TEXT_H
+
+#include "global.h"
+
+#define CHAR_SPACE 0x00
+#define CHAR_QUESTION_MARK 0xAC
+#define CHAR_HYPHEN 0xAE
+#define CHAR_COLON 0xF0
+#define EXT_CTRL_CODE_BEGIN 0xFC // extended control code
+#define PLACEHOLDER_BEGIN 0xFD // string placeholder
+#define EOS 0xFF // end of string
+
+u8 GetExtCtrlCodeLength(u8 code);
+
+#endif // GUARD_TEXT_H