From df32deb2e40c1bddf2441d4681486b8b2e3fc004 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Mon, 7 Jun 2021 19:27:34 +0200 Subject: Change font used to a custom mixed font --- src/bd-font.c | 141 -------------------------------------------------------- src/gba/gba.h | 3 -- src/text/font.h | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/text/text.h | 4 +- 4 files changed, 139 insertions(+), 146 deletions(-) delete mode 100644 src/bd-font.c create mode 100644 src/text/font.h diff --git a/src/bd-font.c b/src/bd-font.c deleted file mode 100644 index 5276735..0000000 --- a/src/bd-font.c +++ /dev/null @@ -1,141 +0,0 @@ -/* -Copyright (c) 2021 Bad Diode - -Permission to use, copy, modify, and distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE. -*/ - -static const u32 bd_font[] = { - 0x00000000, 0x00000000, 0x00002400, 0x423c0000, - 0x00002400, 0x3c420000, 0x0000363e, 0x3e1c0800, - 0x00081c3e, 0x3e1c0800, 0x001c1c3e, 0x363e081c, - 0x00081c3e, 0x3e3e081c, 0x00000018, 0x18000000, - 0x7e7e7e66, 0x667e7e7e, 0x00001824, 0x24180000, - 0x7e7e665a, 0x5a667e7e, 0x00081c3e, 0x081c221c, - 0x001c221c, 0x08083e08, 0x00183828, 0x08080c0c, - 0x003c2424, 0x24343606, 0x00082208, 0x1c082208, - 0x040c1c3c, 0x1c0c0400, 0x2030383c, 0x38302000, - 0x081c3e08, 0x083e1c08, 0x00141414, 0x14140014, - 0x003c2a2a, 0x2c282828, 0x0038043c, 0x423c201e, - 0x00000000, 0x7e000000, 0x081c3e08, 0x3e1c083e, - 0x081c3e08, 0x08080800, 0x00080808, 0x083e1c08, - 0x00001030, 0x7e301000, 0x0000080c, 0x7e0c0800, - 0x00000000, 0x0002023e, 0x00002466, 0xff662400, - 0x0008081c, 0x1c3e3e00, 0x003e3e1c, 0x1c080800, - 0x00000000, 0x00000000, 0x00080808, 0x08080008, - 0x14141400, 0x00000000, 0x0000143e, 0x143e1400, - 0x00081c02, 0x1c201e08, 0x00002616, 0x08343200, - 0x00081408, 0x34122c00, 0x08080800, 0x00000000, - 0x08040404, 0x04040408, 0x08101010, 0x10101008, - 0x00001408, 0x3e081400, 0x00000808, 0x3e080800, - 0x00000000, 0x000c0804, 0x00000000, 0x3e000000, - 0x00000000, 0x000c0c00, 0x00203018, 0x0c060200, - 0x00001c22, 0x2a221c00, 0x00000c0a, 0x08083e00, - 0x00001c20, 0x1c023e00, 0x00001c22, 0x18221c00, - 0x00001018, 0x143e1000, 0x00003e02, 0x1e201e00, - 0x00001c02, 0x1e221c00, 0x00003e20, 0x10080400, - 0x00001c22, 0x1c221c00, 0x00001c22, 0x3c201c00, - 0x00000c0c, 0x000c0c00, 0x00000c0c, 0x000c0804, - 0x00100804, 0x04081000, 0x0000003e, 0x003e0000, - 0x00040810, 0x10080400, 0x001c2220, 0x10080008, - 0x001c322a, 0x1a021c00, 0x001c2222, 0x3e222200, - 0x001e221e, 0x22221e00, 0x001c2202, 0x02221c00, - 0x000e1222, 0x22120e00, 0x003e021e, 0x02023e00, - 0x003e021e, 0x02020200, 0x001c2202, 0x32221c00, - 0x00222222, 0x3e222200, 0x003e0808, 0x08083e00, - 0x00202020, 0x22221c00, 0x0022120a, 0x0e122200, - 0x00020202, 0x02023e00, 0x0022362a, 0x22222200, - 0x0022262a, 0x32222200, 0x001c2222, 0x22221c00, - 0x001e2222, 0x1e020200, 0x001c2222, 0x2a122c00, - 0x001e2222, 0x1e122200, 0x001c021c, 0x20221c00, - 0x003e0808, 0x08080800, 0x00222222, 0x22221c00, - 0x00222222, 0x22140800, 0x0022222a, 0x2a2a1400, - 0x00221408, 0x08142200, 0x00222214, 0x08080800, - 0x003e1008, 0x04023e00, 0x1c040404, 0x0404041c, - 0x0002060c, 0x18302000, 0x1c101010, 0x1010101c, - 0x08142200, 0x00000000, 0x00000000, 0x00003e00, - 0x00040810, 0x00000000, 0x00001c20, 0x3c223c00, - 0x0002021e, 0x22221e00, 0x00001c22, 0x02221c00, - 0x0020203c, 0x22223c00, 0x00001c22, 0x1e023c00, - 0x00003c02, 0x021e0202, 0x00003c22, 0x223c201c, - 0x0002021e, 0x22222200, 0x0008000c, 0x08083e00, - 0x00200020, 0x2020221c, 0x0002120a, 0x060a3200, - 0x000c0808, 0x08083e00, 0x0000162a, 0x2a2a2a00, - 0x00000e32, 0x22222200, 0x00001c22, 0x22221c00, - 0x00001e22, 0x221e0202, 0x00003c22, 0x223c2070, - 0x00001a26, 0x02020200, 0x00001c02, 0x1c201e00, - 0x00043e04, 0x04041800, 0x00002222, 0x22221c00, - 0x00002222, 0x22140800, 0x00002222, 0x2a2a1400, - 0x00002214, 0x08142200, 0x00002222, 0x223c201c, - 0x00003e10, 0x08043e00, 0x18040402, 0x02040418, - 0x00080808, 0x08080808, 0x0c101020, 0x2010100c, - 0x00002c1a, 0x00000000, 0x00000814, 0x22223e00, - 0x001c2202, 0x221c080e, 0x00140022, 0x2222221c, - 0x1008001c, 0x221e023c, 0x0814001c, 0x203c223c, - 0x0014001c, 0x203c223c, 0x0408001c, 0x203c223c, - 0x0814081c, 0x203c223c, 0x00001c02, 0x221c080e, - 0x0814001c, 0x221e023c, 0x0014001c, 0x221e023c, - 0x0408001c, 0x221e023c, 0x0014000c, 0x0808083e, - 0x0014000c, 0x0808083e, 0x0408000c, 0x0808083e, - 0x0014001c, 0x223e2222, 0x0814081c, 0x223e2222, - 0x1008003e, 0x021e023e, 0x00001628, 0x1c0a3400, - 0x003c0a1a, 0x0e0a3a00, 0x0814001c, 0x2222221c, - 0x0014001c, 0x2222221c, 0x0408001c, 0x2222221c, - 0x08140022, 0x2222221c, 0x04080022, 0x2222221c, - 0x00140022, 0x223c201c, 0x14001c22, 0x2222221c, - 0x14002222, 0x2222221c, 0x00081c22, 0x02221c08, - 0x0018240e, 0x04043e00, 0x00221408, 0x1c081c08, - 0x0038041e, 0x041e0438, 0x0030081c, 0x08080806, - 0x1008001c, 0x203c223c, 0x1008000c, 0x0808083e, - 0x1008001c, 0x2222221c, 0x10080022, 0x2222221c, - 0x2c1a000e, 0x32222222, 0x2c1a0022, 0x262a3222, - 0x001c122c, 0x001e0000, 0x000c120c, 0x001e0000, - 0x08000804, 0x02221c00, 0x0000003e, 0x02020000, - 0x0000003e, 0x20200000, 0x06241468, 0x4422f000, - 0x06241468, 0x54f24000, 0x08000808, 0x08080800, - 0x00482412, 0x24480000, 0x00122448, 0x24120000, - 0x00880022, 0x00880022, 0x55885522, 0x55885522, - 0x55aa55aa, 0x55aa55aa, 0x08080808, 0x08080808, - 0x0808080f, 0x08080808, 0x08080f08, 0x0f080808, - 0x14141417, 0x14141414, 0x0000001f, 0x14141414, - 0x00000f08, 0x0f080808, 0x14141710, 0x17141414, - 0x14141414, 0x14141414, 0x00001f10, 0x17141414, - 0x14141710, 0x1f000000, 0x1414141f, 0x00000000, - 0x08080f08, 0x0f000000, 0x0000000f, 0x08080808, - 0x080808f8, 0x00000000, 0x080808ff, 0x00000000, - 0x000000ff, 0x08080808, 0x080808f8, 0x08080808, - 0x000000ff, 0x00000000, 0x080808ff, 0x08080808, - 0x0808f808, 0xf8080808, 0x141414f4, 0x14141414, - 0x1414f404, 0xfc000000, 0x0000fc04, 0xf4141414, - 0x1414f700, 0xff000000, 0x0000ff00, 0xf7141414, - 0x1414f404, 0xf4141414, 0x0000ff00, 0xff000000, - 0x1414f700, 0xf7141414, 0x0808ff00, 0xff000000, - 0x141414ff, 0x00000000, 0x0000ff00, 0xff080808, - 0x000000ff, 0x14141414, 0x141414fc, 0x00000000, - 0x0808f808, 0xf8000000, 0x0000f808, 0xf8080808, - 0x000000fc, 0x14141414, 0x141414ff, 0x14141414, - 0x0808ff08, 0xff080808, 0x0808080f, 0x00000000, - 0x000000f8, 0x08080808, 0xffffffff, 0xffffffff, - 0x00000000, 0xffffffff, 0x0f0f0f0f, 0x0f0f0f0f, - 0xf0f0f0f0, 0xf0f0f0f0, 0xffffffff, 0x00000000, - 0x00002c12, 0x12122c00, 0x000c120a, 0x12223a02, - 0x003e2202, 0x02020200, 0x00003e14, 0x14141400, - 0x3e220408, 0x04223e00, 0x00003c12, 0x12120c00, - 0x00002222, 0x221e0202, 0x002c1a08, 0x08281000, - 0x1c081c22, 0x221c081c, 0x1c22223e, 0x22221c00, - 0x1c222222, 0x22143600, 0x1e041824, 0x22221c00, - 0x0000142a, 0x2a140000, 0x0020142a, 0x2a140200, - 0x00003c02, 0x1c023c00, 0x001c2222, 0x22222202, - 0x00003e00, 0x3e003e00, 0x0000081c, 0x08001c00, - 0x04081008, 0x04001c00, 0x10080408, 0x10001c00, - 0x30480808, 0x08080808, 0x08080808, 0x08080906, - 0x00000800, 0x3e000800, 0x00004c32, 0x004c3200, - 0x00182418, 0x00000000, 0x00001c1c, 0x1c000000, - 0x00000018, 0x18000000, 0x00f01010, 0x10121418, - 0x0c342424, 0x00000000, 0x1810083c, 0x00000000, - 0x00003c3c, 0x3c3c0000, 0x00000000, 0x00000000, -}; diff --git a/src/gba/gba.h b/src/gba/gba.h index a53363a..e475ea9 100644 --- a/src/gba/gba.h +++ b/src/gba/gba.h @@ -324,9 +324,6 @@ key_hold(u32 key) { return key_curr & key_prev & key; } -// Check if the given key/button is currently pressed. -#define KEY_PRESSED(key) (~(KEY_INPUTS) & key) - // Back/unpack bits. static inline u32 diff --git a/src/text/font.h b/src/text/font.h new file mode 100644 index 0000000..65579b8 --- /dev/null +++ b/src/text/font.h @@ -0,0 +1,137 @@ +static const u32 font[] = { + 0x00000000, 0x00000000, 0x00002400, 0x423c0000, + 0x00002400, 0x3c420000, 0x0000363e, 0x3e1c0800, + 0x00081c3e, 0x3e1c0800, 0x001c1c3e, 0x363e081c, + 0x00081c3e, 0x3e3e081c, 0x00000018, 0x18000000, + 0x7e7e7e66, 0x667e7e7e, 0x00001824, 0x24180000, + 0x7e7e665a, 0x5a667e7e, 0x00081c3e, 0x081c221c, + 0x001c221c, 0x08083e08, 0x00183828, 0x08080c0c, + 0x003c2424, 0x24343606, 0x00082208, 0x1c082208, + 0x040c1c3c, 0x1c0c0400, 0x2030383c, 0x38302000, + 0x081c3e08, 0x083e1c08, 0x00141414, 0x14001400, + 0x003c2a2a, 0x2c282828, 0x0038043c, 0x423c201e, + 0x00000000, 0x7e000000, 0x081c3e08, 0x3e1c083e, + 0x00081c3e, 0x08080800, 0x00080808, 0x3e1c0800, + 0x00001030, 0x7e301000, 0x0000080c, 0x7e0c0800, + 0x00000000, 0x0002023e, 0x00001436, 0x7f361400, + 0x0008081c, 0x1c3e3e00, 0x003e3e1c, 0x1c080800, + 0x00000000, 0x00000000, 0x00080808, 0x08000800, + 0x00141414, 0x00000000, 0x0000143e, 0x143e1400, + 0x00081c02, 0x1c201e08, 0x00002616, 0x08343200, + 0x00081408, 0x34122c00, 0x00080808, 0x00000000, + 0x00000804, 0x04040800, 0x00000810, 0x10100800, + 0x00001408, 0x3e081400, 0x00000808, 0x3e080800, + 0x00000000, 0x000c0804, 0x00000000, 0x3e000000, + 0x00000000, 0x000c0c00, 0x00203018, 0x0c060200, + 0x00001c22, 0x2a221c00, 0x00000c0a, 0x08083e00, + 0x00001c20, 0x1c023e00, 0x00001c22, 0x18221c00, + 0x00001212, 0x123e1000, 0x00003e02, 0x1e201e00, + 0x00001c02, 0x1e221c00, 0x00003e20, 0x10080400, + 0x00001c22, 0x1c221c00, 0x00001c22, 0x3c201c00, + 0x00000c0c, 0x000c0c00, 0x00000c0c, 0x000c0804, + 0x00001008, 0x04081000, 0x0000003e, 0x003e0000, + 0x00000408, 0x10080400, 0x001c2210, 0x08000800, + 0x00001c2a, 0x3a021c00, 0x00001c22, 0x223e2200, + 0x00001e22, 0x1e221e00, 0x00001c22, 0x02221c00, + 0x00001e22, 0x22221e00, 0x00003e02, 0x1e023e00, + 0x00003e02, 0x1e020200, 0x00001c02, 0x32221c00, + 0x00002222, 0x3e222200, 0x00003e08, 0x08083e00, + 0x00002020, 0x20221c00, 0x00002212, 0x0e122200, + 0x00000202, 0x02023e00, 0x00002236, 0x2a222200, + 0x0000262a, 0x32222200, 0x00001c22, 0x22221c00, + 0x00001e22, 0x221e0200, 0x00001c22, 0x22122c00, + 0x00001e22, 0x221e2200, 0x00001c02, 0x1c201e00, + 0x00003e08, 0x08080800, 0x00002222, 0x22221c00, + 0x00002222, 0x22140800, 0x0000222a, 0x2a2a1400, + 0x00002214, 0x08142200, 0x00002222, 0x14080800, + 0x00003e10, 0x08043e00, 0x00001c04, 0x04041c00, + 0x0002060c, 0x18302000, 0x00001c10, 0x10101c00, + 0x00081422, 0x00000000, 0x00000000, 0x00003e00, + 0x00040810, 0x00000000, 0x00001c20, 0x3c223c00, + 0x0002021e, 0x22221e00, 0x00001c02, 0x02021c00, + 0x0020203c, 0x22223c00, 0x00001c22, 0x1e021c00, + 0x00003c02, 0x1e020200, 0x00003c22, 0x223c201c, + 0x0002021e, 0x22222200, 0x0008000c, 0x08083e00, + 0x00200020, 0x2020221c, 0x0002120a, 0x060a3200, + 0x000c0808, 0x08083e00, 0x0000162a, 0x2a2a2a00, + 0x00000e32, 0x22222200, 0x00001c22, 0x22221c00, + 0x00001e22, 0x221e0202, 0x00003c22, 0x223c2070, + 0x00001a26, 0x02020200, 0x00001c02, 0x1c201e00, + 0x00043e04, 0x04041800, 0x00002222, 0x22221c00, + 0x00002222, 0x22140800, 0x00002222, 0x2a2a1400, + 0x00002214, 0x08142200, 0x00002222, 0x223c201c, + 0x00003e10, 0x08043e00, 0x00001c04, 0x06041c00, + 0x00000808, 0x08080800, 0x00001c10, 0x30101c00, + 0x00002c1a, 0x00000000, 0x00000814, 0x22223e00, + 0x00001c14, 0x14141c00, 0x0000080c, 0x08081c00, + 0x00001c10, 0x1c041c00, 0x00001c10, 0x18101c00, + 0x00001414, 0x1c101000, 0x00001c04, 0x1c101c00, + 0x00001c04, 0x1c141c00, 0x00001c10, 0x08040400, + 0x00001c14, 0x1c141c00, 0x00001c14, 0x1c101000, + 0x00001c14, 0x141c1400, 0x00001c14, 0x0c141c00, + 0x00001c04, 0x04041c00, 0x00000c14, 0x14140c00, + 0x00001c04, 0x0c041c00, 0x00001c04, 0x0c040400, + 0x00001c04, 0x14141c00, 0x00001414, 0x1c141400, + 0x00001c08, 0x08081c00, 0x00001010, 0x10141c00, + 0x00001414, 0x0c141400, 0x00000404, 0x04041c00, + 0x0000141c, 0x14141400, 0x00000c14, 0x14141400, + 0x00000c14, 0x14141c00, 0x00001c14, 0x1c040400, + 0x00001c14, 0x141c1000, 0x00001c14, 0x0c141400, + 0x00001804, 0x1c100c00, 0x00001c08, 0x08080800, + 0x00001414, 0x14141c00, 0x00001414, 0x14141800, + 0x00001414, 0x141c1400, 0x00001414, 0x08141400, + 0x00001414, 0x1c080800, 0x00001c10, 0x08041c00, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x3e323232, 0x32323e00, 0x18181818, 0x18181800, + 0x3e30303e, 0x06063e00, 0x3e30303c, 0x30303e00, + 0x32323232, 0x3e303000, 0x3e06063e, 0x30303e00, + 0x3e06063e, 0x26263e00, 0x3e303018, 0x0c060600, + 0x3e32323e, 0x32323e00, 0x3e32323e, 0x30303e00, + 0x00000000, 0x00060600, 0x00263618, 0x0c363200, + 0x1c3e3232, 0x3e323200, 0x1e26261e, 0x26261e00, + 0x3c060606, 0x06063c00, 0x1e323232, 0x32321e00, + 0x3e06061e, 0x06063e00, 0x3e06061e, 0x06060600, + 0x3c060636, 0x26261c00, 0x3232323e, 0x32323200, + 0x1e0c0c0c, 0x0c0c1e00, 0x30303030, 0x32323e00, + 0x2626160e, 0x16262600, 0x06060606, 0x06063e00, + 0x62767e6a, 0x62626200, 0x363e3a32, 0x32323200, + 0x1c323232, 0x32321c00, 0x3e32323e, 0x02020200, + 0x1c323232, 0x3a1a2c00, 0x1e26261e, 0x26262600, + 0x3c06061e, 0x30301e00, 0x7e181818, 0x18181800, + 0x32323232, 0x32323e00, 0x32323232, 0x32341800, + 0x32323232, 0x323a1400, 0x3232320c, 0x32323200, + 0x32323232, 0x3c201e00, 0x3e30301c, 0x06063e00, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, +}; + +u16 palette[16] = { + 0x7fff, 0x0000, 0x7fff, 0x7fff, + 0x7fff, 0x7fff, 0x7fff, 0x7fff, + 0x7fff, 0x7fff, 0x7fff, 0x7fff, + 0x7fff, 0x7fff, 0x7fff, 0x7fff, +}; diff --git a/src/text/text.h b/src/text/text.h index 3b7921d..01dddb0 100644 --- a/src/text/text.h +++ b/src/text/text.h @@ -4,7 +4,7 @@ #include "posprintf.h" #include "renderer.h" -#include "bd-font.c" +#include "font.h" typedef struct TextEngine { // Cursor for tiled text mode The X and Y positions correspond to the tile @@ -30,7 +30,7 @@ static inline void txt_init(u32 *font_data, u16 *font_tilemap, u16 font_offset) { // Load font data into VRAM. - unpack_tiles(&bd_font, font_data, 256); + unpack_tiles(&font, font_data, 256); // Initialize the font map translation table. That way we can write // a character on the text background layer with: -- cgit v1.2.1