From 68346eecf1a303efc1a569ccbbb23a06028462d4 Mon Sep 17 00:00:00 2001 From: MysterD Date: Sun, 2 Apr 2023 13:16:32 -0700 Subject: [PATCH] Text rendering optimizations + resolution increase on normal font Increased resolution of normal font 2x Combined all normal font characters into a sprite sheet Adjusted kerning on normal font Removed 'rotatedUV' setting for DJUI fonts --- bin/segment2.c | 522 +----------------- src/pc/djui/djui_bind.c | 2 +- src/pc/djui/djui_button.c | 4 +- src/pc/djui/djui_checkbox.c | 2 +- src/pc/djui/djui_font.c | 45 +- src/pc/djui/djui_font.h | 1 - src/pc/djui/djui_gbi.h | 6 +- src/pc/djui/djui_gfx.c | 13 +- src/pc/djui/djui_gfx.h | 2 +- src/pc/djui/djui_inputbox.c | 6 +- src/pc/djui/djui_selectionbox.c | 4 +- src/pc/djui/djui_slider.c | 2 +- src/pc/djui/djui_text.c | 2 +- src/pc/djui/djui_unicode.c | 2 +- src/pc/gfx/gfx_pc.c | 270 +++++---- .../custom_font_normal.rgba32.png | Bin 3868 -> 12119 bytes .../custom_font_normal_char_03.ia4.png | Bin 110 -> 0 bytes .../custom_font_normal_char_04.ia4.png | Bin 108 -> 0 bytes .../custom_font_normal_char_10.ia4.png | Bin 106 -> 0 bytes .../custom_font_normal_char_11.ia4.png | Bin 101 -> 0 bytes .../custom_font_normal_char_15.ia4.png | Bin 108 -> 0 bytes .../custom_font_normal_char_26.ia4.png | Bin 93 -> 0 bytes .../custom_font_normal_char_27.ia4.png | Bin 97 -> 0 bytes .../custom_font_normal_char_28.ia4.png | Bin 97 -> 0 bytes .../custom_font_normal_char_29.ia4.png | Bin 95 -> 0 bytes .../custom_font_normal_char_30.ia4.png | Bin 97 -> 0 bytes .../custom_font_normal_char_32.ia4.png | Bin 131 -> 0 bytes .../custom_font_normal_char_59.ia4.png | Bin 95 -> 0 bytes .../custom_font_normal_char_60.ia4.png | Bin 112 -> 0 bytes .../custom_font_normal_char_61.ia4.png | Bin 103 -> 0 bytes .../custom_font_normal_char_62.ia4.png | Bin 89 -> 0 bytes .../custom_font_normal_char_63.ia4.png | Bin 92 -> 0 bytes .../custom_font_normal_char_64.ia4.png | Bin 106 -> 0 bytes .../custom_font_normal_char_91.ia4.png | Bin 101 -> 0 bytes .../custom_font_normal_char_92.ia4.png | Bin 96 -> 0 bytes .../custom_font_normal_char_93.ia4.png | Bin 109 -> 0 bytes .../custom_font_normal_char_ca_a.ia4.png | Bin 512 -> 0 bytes .../custom_font_normal_char_ca_ang.ia4.png | Bin 518 -> 0 bytes .../custom_font_normal_char_ca_c.ia4.png | Bin 514 -> 0 bytes .../custom_font_normal_char_ca_g.ia4.png | Bin 515 -> 0 bytes .../custom_font_normal_char_ca_t.ia4.png | Bin 521 -> 0 bytes .../custom_font_normal_char_ca_u.ia4.png | Bin 517 -> 0 bytes .../custom_font_normal_char_cae.ia4.png | Bin 530 -> 0 bytes .../custom_font_normal_char_cc_ced.ia4.png | Bin 511 -> 0 bytes .../custom_font_normal_char_ce_a.ia4.png | Bin 515 -> 0 bytes .../custom_font_normal_char_ce_c.ia4.png | Bin 513 -> 0 bytes .../custom_font_normal_char_ce_g.ia4.png | Bin 513 -> 0 bytes .../custom_font_normal_char_ce_u.ia4.png | Bin 509 -> 0 bytes .../custom_font_normal_char_ceth.ia4.png | Bin 523 -> 0 bytes .../custom_font_normal_char_ci_a.ia4.png | Bin 514 -> 0 bytes .../custom_font_normal_char_ci_c.ia4.png | Bin 513 -> 0 bytes .../custom_font_normal_char_ci_g.ia4.png | Bin 509 -> 0 bytes .../custom_font_normal_char_ci_u.ia4.png | Bin 511 -> 0 bytes .../custom_font_normal_char_cn_t.ia4.png | Bin 534 -> 0 bytes .../custom_font_normal_char_co_a.ia4.png | Bin 514 -> 0 bytes .../custom_font_normal_char_co_c.ia4.png | Bin 520 -> 0 bytes .../custom_font_normal_char_co_g.ia4.png | Bin 516 -> 0 bytes .../custom_font_normal_char_co_t.ia4.png | Bin 522 -> 0 bytes .../custom_font_normal_char_co_u.ia4.png | Bin 518 -> 0 bytes .../custom_font_normal_char_coe.ia4.png | Bin 534 -> 0 bytes .../custom_font_normal_char_cos.ia4.png | Bin 522 -> 0 bytes .../custom_font_normal_char_cu_a.ia4.png | Bin 513 -> 0 bytes .../custom_font_normal_char_cu_c.ia4.png | Bin 517 -> 0 bytes .../custom_font_normal_char_cu_g.ia4.png | Bin 514 -> 0 bytes .../custom_font_normal_char_cu_u.ia4.png | Bin 519 -> 0 bytes .../custom_font_normal_char_cy_a.ia4.png | Bin 505 -> 0 bytes .../custom_font_normal_char_cy_u.ia4.png | Bin 509 -> 0 bytes .../custom_font_normal_char_la_a.ia4.png | Bin 504 -> 0 bytes .../custom_font_normal_char_la_ang.ia4.png | Bin 515 -> 0 bytes .../custom_font_normal_char_la_c.ia4.png | Bin 510 -> 0 bytes .../custom_font_normal_char_la_g.ia4.png | Bin 509 -> 0 bytes .../custom_font_normal_char_la_t.ia4.png | Bin 512 -> 0 bytes .../custom_font_normal_char_la_u.ia4.png | Bin 511 -> 0 bytes .../custom_font_normal_char_lae.ia4.png | Bin 513 -> 0 bytes .../custom_font_normal_char_lc_ced.ia4.png | Bin 507 -> 0 bytes .../custom_font_normal_char_le_a.ia4.png | Bin 504 -> 0 bytes .../custom_font_normal_char_le_c.ia4.png | Bin 510 -> 0 bytes .../custom_font_normal_char_le_g.ia4.png | Bin 506 -> 0 bytes .../custom_font_normal_char_le_u.ia4.png | Bin 511 -> 0 bytes .../custom_font_normal_char_leth.ia4.png | Bin 512 -> 0 bytes .../custom_font_normal_char_li_a.ia4.png | Bin 502 -> 0 bytes .../custom_font_normal_char_li_c.ia4.png | Bin 496 -> 0 bytes .../custom_font_normal_char_li_g.ia4.png | Bin 492 -> 0 bytes .../custom_font_normal_char_li_u.ia4.png | Bin 497 -> 0 bytes .../custom_font_normal_char_ln_t.ia4.png | Bin 498 -> 0 bytes .../custom_font_normal_char_lo_a.ia4.png | Bin 503 -> 0 bytes .../custom_font_normal_char_lo_c.ia4.png | Bin 504 -> 0 bytes .../custom_font_normal_char_lo_g.ia4.png | Bin 507 -> 0 bytes .../custom_font_normal_char_lo_t.ia4.png | Bin 496 -> 0 bytes .../custom_font_normal_char_lo_u.ia4.png | Bin 506 -> 0 bytes .../custom_font_normal_char_loe.ia4.png | Bin 508 -> 0 bytes .../custom_font_normal_char_los.ia4.png | Bin 505 -> 0 bytes .../custom_font_normal_char_lu_a.ia4.png | Bin 509 -> 0 bytes .../custom_font_normal_char_lu_c.ia4.png | Bin 512 -> 0 bytes .../custom_font_normal_char_lu_g.ia4.png | Bin 508 -> 0 bytes .../custom_font_normal_char_lu_u.ia4.png | Bin 510 -> 0 bytes .../custom_font_normal_char_ly_a.ia4.png | Bin 515 -> 0 bytes .../custom_font_normal_char_ly_u.ia4.png | Bin 508 -> 0 bytes ...custom_font_normal_char_punc_sp_ex.ia4.png | Bin 499 -> 0 bytes ...custom_font_normal_char_punc_sp_qu.ia4.png | Bin 509 -> 0 bytes .../custom_font_normal_char_ss.ia4.png | Bin 521 -> 0 bytes 101 files changed, 159 insertions(+), 724 deletions(-) delete mode 100644 textures/segment2/custom_font_normal_char_03.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_04.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_10.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_11.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_15.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_26.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_27.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_28.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_29.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_30.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_32.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_59.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_60.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_61.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_62.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_63.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_64.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_91.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_92.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_93.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ca_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ca_ang.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ca_c.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ca_g.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ca_t.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ca_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_cae.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_cc_ced.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ce_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ce_c.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ce_g.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ce_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ceth.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ci_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ci_c.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ci_g.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ci_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_cn_t.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_co_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_co_c.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_co_g.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_co_t.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_co_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_coe.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_cos.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_cu_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_cu_c.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_cu_g.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_cu_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_cy_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_cy_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_la_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_la_ang.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_la_c.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_la_g.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_la_t.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_la_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lae.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lc_ced.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_le_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_le_c.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_le_g.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_le_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_leth.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_li_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_li_c.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_li_g.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_li_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ln_t.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lo_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lo_c.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lo_g.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lo_t.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lo_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_loe.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_los.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lu_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lu_c.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lu_g.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_lu_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ly_a.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ly_u.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_punc_sp_ex.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_punc_sp_qu.ia4.png delete mode 100644 textures/segment2/custom_font_normal_char_ss.ia4.png diff --git a/bin/segment2.c b/bin/segment2.c index 7265be0e..5073b86b 100644 --- a/bin/segment2.c +++ b/bin/segment2.c @@ -3511,535 +3511,25 @@ const s16 seg2_painting_mesh_neighbor_tris[] = { ////////////////////////////////////////////////////////// -ALIGNED8 static const u8 texture_font_normal_char_03[] = { -#include "textures/segment2/custom_font_normal_char_03.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_04[] = { -#include "textures/segment2/custom_font_normal_char_04.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_10[] = { -#include "textures/segment2/custom_font_normal_char_10.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_11[] = { -#include "textures/segment2/custom_font_normal_char_11.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_15[] = { -#include "textures/segment2/custom_font_normal_char_15.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_26[] = { -#include "textures/segment2/custom_font_normal_char_26.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_27[] = { -#include "textures/segment2/custom_font_normal_char_27.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_28[] = { -#include "textures/segment2/custom_font_normal_char_28.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_29[] = { -#include "textures/segment2/custom_font_normal_char_29.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_30[] = { -#include "textures/segment2/custom_font_normal_char_30.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_32[] = { -#include "textures/segment2/custom_font_normal_char_32.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_59[] = { -#include "textures/segment2/custom_font_normal_char_59.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_60[] = { -#include "textures/segment2/custom_font_normal_char_60.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_61[] = { -#include "textures/segment2/custom_font_normal_char_61.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_62[] = { -#include "textures/segment2/custom_font_normal_char_62.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_63[] = { -#include "textures/segment2/custom_font_normal_char_63.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_64[] = { -#include "textures/segment2/custom_font_normal_char_64.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_91[] = { -#include "textures/segment2/custom_font_normal_char_91.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_92[] = { -#include "textures/segment2/custom_font_normal_char_92.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_93[] = { -#include "textures/segment2/custom_font_normal_char_93.ia4.inc.c" -}; - -// extended - -ALIGNED8 static const u8 texture_font_normal_char_ca_a[] = { -#include "textures/segment2/custom_font_normal_char_ca_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ca_ang[] = { -#include "textures/segment2/custom_font_normal_char_ca_ang.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ca_c[] = { -#include "textures/segment2/custom_font_normal_char_ca_c.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ca_g[] = { -#include "textures/segment2/custom_font_normal_char_ca_g.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ca_t[] = { -#include "textures/segment2/custom_font_normal_char_ca_t.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ca_u[] = { -#include "textures/segment2/custom_font_normal_char_ca_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_cc_ced[] = { -#include "textures/segment2/custom_font_normal_char_cc_ced.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ce_a[] = { -#include "textures/segment2/custom_font_normal_char_ce_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ce_c[] = { -#include "textures/segment2/custom_font_normal_char_ce_c.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ce_g[] = { -#include "textures/segment2/custom_font_normal_char_ce_g.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ce_u[] = { -#include "textures/segment2/custom_font_normal_char_ce_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ci_a[] = { -#include "textures/segment2/custom_font_normal_char_ci_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ci_c[] = { -#include "textures/segment2/custom_font_normal_char_ci_c.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ci_g[] = { -#include "textures/segment2/custom_font_normal_char_ci_g.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ci_u[] = { -#include "textures/segment2/custom_font_normal_char_ci_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_cn_t[] = { -#include "textures/segment2/custom_font_normal_char_cn_t.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_co_a[] = { -#include "textures/segment2/custom_font_normal_char_co_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_co_c[] = { -#include "textures/segment2/custom_font_normal_char_co_c.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_co_g[] = { -#include "textures/segment2/custom_font_normal_char_co_g.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_co_u[] = { -#include "textures/segment2/custom_font_normal_char_co_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_co_t[] = { -#include "textures/segment2/custom_font_normal_char_co_t.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_cu_a[] = { -#include "textures/segment2/custom_font_normal_char_cu_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_cu_c[] = { -#include "textures/segment2/custom_font_normal_char_cu_c.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_cu_g[] = { -#include "textures/segment2/custom_font_normal_char_cu_g.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_cu_u[] = { -#include "textures/segment2/custom_font_normal_char_cu_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_cy_a[] = { -#include "textures/segment2/custom_font_normal_char_cy_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_cy_u[] = { -#include "textures/segment2/custom_font_normal_char_cy_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_la_a[] = { -#include "textures/segment2/custom_font_normal_char_la_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_la_ang[] = { -#include "textures/segment2/custom_font_normal_char_la_ang.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_la_c[] = { -#include "textures/segment2/custom_font_normal_char_la_c.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_la_g[] = { -#include "textures/segment2/custom_font_normal_char_la_g.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_la_t[] = { -#include "textures/segment2/custom_font_normal_char_la_t.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_la_u[] = { -#include "textures/segment2/custom_font_normal_char_la_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lc_ced[] = { -#include "textures/segment2/custom_font_normal_char_lc_ced.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_le_a[] = { -#include "textures/segment2/custom_font_normal_char_le_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_le_c[] = { -#include "textures/segment2/custom_font_normal_char_le_c.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_le_g[] = { -#include "textures/segment2/custom_font_normal_char_le_g.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_le_u[] = { -#include "textures/segment2/custom_font_normal_char_le_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_li_a[] = { -#include "textures/segment2/custom_font_normal_char_li_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_li_c[] = { -#include "textures/segment2/custom_font_normal_char_li_c.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_li_g[] = { -#include "textures/segment2/custom_font_normal_char_li_g.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_li_u[] = { -#include "textures/segment2/custom_font_normal_char_li_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ln_t[] = { -#include "textures/segment2/custom_font_normal_char_ln_t.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lo_a[] = { -#include "textures/segment2/custom_font_normal_char_lo_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lo_c[] = { -#include "textures/segment2/custom_font_normal_char_lo_c.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lo_g[] = { -#include "textures/segment2/custom_font_normal_char_lo_g.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lo_u[] = { -#include "textures/segment2/custom_font_normal_char_lo_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lo_t[] = { -#include "textures/segment2/custom_font_normal_char_lo_t.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lu_a[] = { -#include "textures/segment2/custom_font_normal_char_lu_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lu_c[] = { -#include "textures/segment2/custom_font_normal_char_lu_c.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lu_g[] = { -#include "textures/segment2/custom_font_normal_char_lu_g.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lu_u[] = { -#include "textures/segment2/custom_font_normal_char_lu_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ly_a[] = { -#include "textures/segment2/custom_font_normal_char_ly_a.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ly_u[] = { -#include "textures/segment2/custom_font_normal_char_ly_u.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_lae[] = { -#include "textures/segment2/custom_font_normal_char_lae.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_cae[] = { -#include "textures/segment2/custom_font_normal_char_cae.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_loe[] = { -#include "textures/segment2/custom_font_normal_char_loe.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_coe[] = { -#include "textures/segment2/custom_font_normal_char_coe.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_leth[] = { -#include "textures/segment2/custom_font_normal_char_leth.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ceth[] = { -#include "textures/segment2/custom_font_normal_char_ceth.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_los[] = { -#include "textures/segment2/custom_font_normal_char_los.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_cos[] = { -#include "textures/segment2/custom_font_normal_char_cos.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_ss[] = { -#include "textures/segment2/custom_font_normal_char_ss.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_punc_sp_ex[] = { -#include "textures/segment2/custom_font_normal_char_punc_sp_ex.ia4.inc.c" -}; - -ALIGNED8 static const u8 texture_font_normal_char_punc_sp_qu[] = { -#include "textures/segment2/custom_font_normal_char_punc_sp_qu.ia4.inc.c" -}; - ALIGNED8 const u8 texture_font_normal[] = { #include "textures/custom_font_title/custom_font_normal.rgba32.inc.c" }; -const u8* const font_normal_chars[] = { - texture_font_char_us_exclamation, // ! - texture_font_char_us_double_quote_open, // " - texture_font_normal_char_03, // # - texture_font_normal_char_04, // $ - texture_font_char_us_percent, // % - texture_font_char_us_ampersand, // & - texture_font_char_us_apostrophe, // ' - texture_font_char_us_open_parentheses, // ( - texture_font_char_us_close_parentheses, // ) - texture_font_normal_char_10, // * - texture_font_normal_char_11, // + - texture_font_char_us_comma, // , - texture_font_char_us_slash, // - - texture_font_char_us_period, // . - texture_font_normal_char_15, // / - texture_font_char_us_0, // 0 - texture_font_char_us_1, // 1 - texture_font_char_us_2, // 2 - texture_font_char_us_3, // 3 - texture_font_char_us_4, // 4 - texture_font_char_us_5, // 5 - texture_font_char_us_6, // 6 - texture_font_char_us_7, // 7 - texture_font_char_us_8, // 8 - texture_font_char_us_9, // 9 - texture_font_normal_char_26, // : - texture_font_normal_char_27, // ; - texture_font_normal_char_28, // < - texture_font_normal_char_29, // = - texture_font_normal_char_30, // > - texture_font_char_us_question, // ? - texture_font_normal_char_32, // @ - texture_font_char_us_A, // A - texture_font_char_us_B, // B - texture_font_char_us_C, // C - texture_font_char_us_D, // D - texture_font_char_us_E, // E - texture_font_char_us_F, // F - texture_font_char_us_G, // G - texture_font_char_us_H, // H - texture_font_char_us_I, // I - texture_font_char_us_J, // J - texture_font_char_us_K, // K - texture_font_char_us_L, // L - texture_font_char_us_M, // M - texture_font_char_us_N, // N - texture_font_char_us_O, // O - texture_font_char_us_P, // P - texture_font_char_us_Q, // Q - texture_font_char_us_R, // R - texture_font_char_us_S, // S - texture_font_char_us_T, // T - texture_font_char_us_U, // U - texture_font_char_us_V, // V - texture_font_char_us_W, // W - texture_font_char_us_X, // X - texture_font_char_us_Y, // Y - texture_font_char_us_Z, // Z - texture_font_normal_char_59, // [ - texture_font_normal_char_60, // \ // - texture_font_normal_char_61, // ] - texture_font_normal_char_62, // ^ - texture_font_normal_char_63, // _ - texture_font_normal_char_64, // ` - texture_font_char_us_a, // a - texture_font_char_us_b, // b - texture_font_char_us_c, // c - texture_font_char_us_d, // d - texture_font_char_us_e, // e - texture_font_char_us_f, // f - texture_font_char_us_g, // g - texture_font_char_us_h, // h - texture_font_char_us_i, // i - texture_font_char_us_j, // j - texture_font_char_us_k, // k - texture_font_char_us_l, // l - texture_font_char_us_m, // m - texture_font_char_us_n, // n - texture_font_char_us_o, // o - texture_font_char_us_p, // p - texture_font_char_us_q, // q - texture_font_char_us_r, // r - texture_font_char_us_s, // s - texture_font_char_us_t, // t - texture_font_char_us_u, // u - texture_font_char_us_v, // v - texture_font_char_us_w, // w - texture_font_char_us_x, // x - texture_font_char_us_y, // y - texture_font_char_us_z, // z - texture_font_normal_char_91, // { - texture_font_normal_char_92, // | - texture_font_normal_char_93, // } - texture_font_char_us_tilde, // ~ - texture_font_char_us_star_filled, // DEL - - texture_font_normal_char_ca_a, // Á - texture_font_normal_char_ca_ang, // Å - texture_font_normal_char_ca_c, //  - texture_font_normal_char_ca_g, // À - texture_font_normal_char_ca_t, // à - texture_font_normal_char_ca_u, // Ä - texture_font_normal_char_cc_ced, // Ç - texture_font_normal_char_ce_a, // É - texture_font_normal_char_ce_c, // Ê - texture_font_normal_char_ce_g, // È - texture_font_normal_char_ce_u, // Ë - texture_font_normal_char_ci_a, // Í - texture_font_normal_char_ci_c, // Î - texture_font_normal_char_ci_g, // Ì - texture_font_normal_char_ci_u, // Ï - texture_font_normal_char_cn_t, // Ñ - texture_font_normal_char_co_a, // Ó - texture_font_normal_char_co_c, // Ô - texture_font_normal_char_co_g, // Ò - texture_font_normal_char_co_t, // Õ - texture_font_normal_char_co_u, // Ö - texture_font_normal_char_cu_a, // Ú - texture_font_normal_char_cu_c, // Û - texture_font_normal_char_cu_g, // Ù - texture_font_normal_char_cu_u, // Ü - texture_font_normal_char_cy_a, // Ý - texture_font_normal_char_cy_u, // Ÿ - - texture_font_normal_char_la_a, // á - texture_font_normal_char_la_ang, // å - texture_font_normal_char_la_c, // â - texture_font_normal_char_la_g, // à - texture_font_normal_char_la_t, // ã - texture_font_normal_char_la_u, // ä - texture_font_normal_char_lc_ced, // ç - texture_font_normal_char_le_a, // é - texture_font_normal_char_le_c, // ê - texture_font_normal_char_le_g, // è - texture_font_normal_char_le_u, // ë - texture_font_normal_char_li_a, // í - texture_font_normal_char_li_c, // î - texture_font_normal_char_li_g, // ì - texture_font_normal_char_li_u, // ï - texture_font_normal_char_ln_t, // ñ - texture_font_normal_char_lo_a, // ó - texture_font_normal_char_lo_c, // ô - texture_font_normal_char_lo_g, // ò - texture_font_normal_char_lo_t, // õ - texture_font_normal_char_lo_u, // ö - texture_font_normal_char_lu_a, // ú - texture_font_normal_char_lu_c, // û - texture_font_normal_char_lu_g, // ù - texture_font_normal_char_lu_u, // ü - texture_font_normal_char_ly_a, // ý - texture_font_normal_char_ly_u, // ÿ - - texture_font_normal_char_lae, // æ - texture_font_normal_char_cae, // Æ - texture_font_normal_char_loe, // œ - texture_font_normal_char_coe, // Œ - texture_font_normal_char_leth, // ð - texture_font_normal_char_ceth, // Ð - texture_font_normal_char_los, // ø - texture_font_normal_char_cos, // Ø - texture_font_normal_char_ss, // ß - - texture_font_normal_char_punc_sp_ex, // ¡ - texture_font_normal_char_punc_sp_qu, // ¿ - -}; - const f32 font_normal_widths[] = { /* ! " # $ % & ' ( ) * + , - . / */ - 0.3125f, 0.3750f, 0.4375f, 0.3750f, 0.4375f, 0.5000f, 0.2500f, 0.3125f, 0.3125f, 0.3750f, 0.4375f, 0.2500f, 0.3750f, 0.2500f, 0.3125f, + 0.2200f, 0.3750f, 0.4375f, 0.3750f, 0.4375f, 0.5000f, 0.2500f, 0.3125f, 0.3125f, 0.3750f, 0.4375f, 0.2500f, 0.3750f, 0.2500f, 0.3125f, /* 0 1 2 3 4 5 6 7 8 9 */ - 0.4375f, 0.4375f, 0.4375f, 0.4375f, 0.4375f, 0.4375f, 0.4375f, 0.4375f, 0.4375f, 0.4375f, + 0.4375f, 0.3800f, 0.4200f, 0.4375f, 0.4300f, 0.4375f, 0.4375f, 0.4000f, 0.4375f, 0.4375f, /* : ; < = > ? @ */ - 0.2500f, 0.2500f, 0.3125f, 0.3750f, 0.3125f, 0.4375f, 0.5750f, + 0.2000f, 0.2500f, 0.3125f, 0.3750f, 0.3125f, 0.3125f, 0.5750f, /* A B C D E F G H I J K L M N O P Q R S T U V W X Y Z */ - 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.3125f, 0.5000f, 0.5000f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.5000f, 0.4375f, 0.3750f, 0.3750f, + 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.3125f, 0.5000f, 0.5000f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3750f, 0.3125f, 0.3750f, 0.3750f, 0.5000f, 0.4375f, 0.3750f, 0.3750f, /* [ \ ] ^ _ ` */ 0.3125f, 0.3125f, 0.3125f, 0.3750f, 0.3750f, 0.2500f, /* a b c d e f g h i j k l m n o p q r s t u v w x y z */ - 0.3750f, 0.3125f, 0.3125f, 0.3125f, 0.3125f, 0.3125f, 0.3750f, 0.3125f, 0.2500f, 0.3125f, 0.3125f, 0.1875f, 0.4375f, 0.3125f, 0.3125f, 0.3125f, 0.3750f, 0.3125f, 0.3125f, 0.3125f, 0.3125f, 0.3125f, 0.4375f, 0.4375f, 0.3125f, 0.3125f, + 0.3000f, 0.3125f, 0.3125f, 0.3125f, 0.3125f, 0.3000f, 0.3750f, 0.3125f, 0.2200f, 0.3125f, 0.3125f, 0.1700f, 0.4350f, 0.3125f, 0.3000f, 0.3000f, 0.3125f, 0.2700f, 0.3125f, 0.3125f, 0.3125f, 0.2750f, 0.4375f, 0.3750f, 0.3125f, 0.3125f, /* { | } ~ DEL */ - 0.3125f, 0.2500f, 0.3125f, 0.5000f, 0.5000f, + 0.3125f, 0.2500f, 0.3125f, 0.5000f, 0.2000f, }; diff --git a/src/pc/djui/djui_bind.c b/src/pc/djui/djui_bind.c index 70acd661..d2995e3c 100644 --- a/src/pc/djui/djui_bind.c +++ b/src/pc/djui/djui_bind.c @@ -64,7 +64,7 @@ struct DjuiBind* djui_bind_create(struct DjuiBase* parent, const char* message, djui_base_set_size_type(&text->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE); djui_base_set_size(&text->base, 0.3f, 1.0f); djui_text_set_alignment(text, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM); - djui_text_set_drop_shadow(text, 120, 120, 120, 64); + djui_text_set_drop_shadow(text, 255, 255, 255, 128); djui_base_set_color(&text->base, 200, 200, 200, 255); bind->text = text; diff --git a/src/pc/djui/djui_button.c b/src/pc/djui/djui_button.c index 6a57711b..f38c0800 100644 --- a/src/pc/djui/djui_button.c +++ b/src/pc/djui/djui_button.c @@ -11,11 +11,11 @@ static void djui_button_update_style(struct DjuiBase* base) { } else if (gDjuiCursorDownOn == base) { djui_base_set_border_color(base, 0, 84, 153, 255); djui_base_set_color(&button->rect->base, 204, 228, 247, 255); - djui_base_set_location(&button->text->base, 0.5f, 0.5f); + djui_base_set_location(&button->text->base, 1.0f, 1.0f); } else if (gDjuiHovered == base) { djui_base_set_border_color(base, 0, 120, 215, 255); djui_base_set_color(&button->rect->base, 229, 241, 251, 255); - djui_base_set_location(&button->text->base, -0.5f, -1.0f); + djui_base_set_location(&button->text->base, -1.0f, -1.0f); } else { u8 borderBrightness = button->style ? 100 : 150; u8 rectBrightness = button->style ? 150 : 222; diff --git a/src/pc/djui/djui_checkbox.c b/src/pc/djui/djui_checkbox.c index 3efcc3b4..2e27a7f4 100644 --- a/src/pc/djui/djui_checkbox.c +++ b/src/pc/djui/djui_checkbox.c @@ -63,7 +63,7 @@ struct DjuiCheckbox* djui_checkbox_create(struct DjuiBase* parent, const char* m djui_base_set_size_type(&text->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE); djui_base_set_size(&text->base, 1.0f, 1.0f); djui_text_set_alignment(text, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM); - djui_text_set_drop_shadow(text, 120, 120, 120, 64); + djui_text_set_drop_shadow(text, 255, 255, 255, 128); checkbox->text = text; struct DjuiRect* rect = djui_rect_create(&checkbox->base); diff --git a/src/pc/djui/djui_font.c b/src/pc/djui/djui_font.c index bd1177ba..d75ac2a6 100644 --- a/src/pc/djui/djui_font.c +++ b/src/pc/djui/djui_font.c @@ -6,52 +6,16 @@ // font 0 (built-in normal font) // /////////////////////////////////// -static Vtx djui_font_normal_vertices[] = { - {{{ 0, -1, 0}, 0, { 0, 256}, { 0xff, 0xff, 0xff, 0xff }}}, - {{{ 0.5f, -1, 0}, 0, { 0, 0}, { 0xff, 0xff, 0xff, 0xff }}}, - {{{ 0.5f, 0, 0}, 0, { 512, 0}, { 0xff, 0xff, 0xff, 0xff }}}, - {{{ 0, 0, 0}, 0, { 512, 256}, { 0xff, 0xff, 0xff, 0xff }}}, -}; - -const Gfx dl_font_normal_display_list_begin[] = { - gsDPPipeSync(), - gsSPClearGeometryMode(G_LIGHTING), - gsDPSetCombineMode(G_CC_FADEA, G_CC_FADEA), - gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2), - gsDPSetTextureFilter(G_TF_POINT), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_4b, 1, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 3, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (16 - 1) << G_TEXTURE_IMAGE_FRAC, (8 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPEndDisplayList(), -}; - -const Gfx dl_font_normal_display_list[] = { - gsDPLoadBlock(G_TX_LOADTILE, 0, 0, ((16 * 8 + G_IM_SIZ_4b_INCR) >> G_IM_SIZ_4b_SHIFT) - 1, CALC_DXT(16, G_IM_SIZ_4b_BYTES)), - gsSPVertexDjui(djui_font_normal_vertices, 4, 0), - gsSPExecuteDjui(G_TEXCLIP_DJUI), - gsSP2TrianglesDjui(0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPEndDisplayList(), -}; - static void djui_font_normal_render_char(char* c) { // replace undisplayable characters if (*c == ' ') { return; } u32 index = djui_unicode_get_sprite_index(c); - - //extern const u8* const font_normal_chars[]; - //void* fontChar = (void*)font_normal_chars[index]; - extern ALIGNED8 const u8 texture_font_normal[]; - void* fontChar = texture_font_normal; - - //djui_gfx_render_texture(texture_font_normal, 256, 128, 32); - //djui_gfx_render_texture_tile(texture_font_normal, 8, 16, 32, 0, 0, 256, 128); u32 tx = index % 32; u32 ty = index / 32; - djui_gfx_render_texture_tile(texture_font_normal, 256, 128, 32, tx * 8, ty * 16, 8, 16); - //gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_IA, G_IM_SIZ_16b, 1, (void*)fontChar); - //gSPDisplayList(gDisplayListHead++, dl_font_normal_display_list); + extern ALIGNED8 const u8 texture_font_normal[]; + djui_gfx_render_texture_tile(texture_font_normal, 512, 256, 32, tx * 16 + 1, ty * 32, 16, 32); } static f32 djui_font_normal_char_width(char* c) { @@ -65,8 +29,7 @@ static const struct DjuiFont sDjuiFontNormal = { .charHeight = 1.0f, .lineHeight = 0.8125f, .defaultFontScale = 32.0f, - .rotatedUV = false, - .textBeginDisplayList = NULL, //dl_font_normal_display_list_begin, + .textBeginDisplayList = NULL, .render_char = djui_font_normal_render_char, .char_width = djui_font_normal_char_width, }; @@ -97,7 +60,6 @@ static const struct DjuiFont sDjuiFontTitle = { .charHeight = 0.9f, .lineHeight = 0.7f, .defaultFontScale = 64.0f, - .rotatedUV = false, .textBeginDisplayList = NULL, .render_char = djui_font_title_render_char, .char_width = djui_font_title_char_width, @@ -150,7 +112,6 @@ static const struct DjuiFont sDjuiFontHud = { .charHeight = 0.9f, .lineHeight = 0.7f, .defaultFontScale = 16.0f, - .rotatedUV = false, .textBeginDisplayList = NULL, .render_char = djui_font_hud_render_char, .char_width = djui_font_hud_char_width, diff --git a/src/pc/djui/djui_font.h b/src/pc/djui/djui_font.h index 402336f9..651b7fac 100644 --- a/src/pc/djui/djui_font.h +++ b/src/pc/djui/djui_font.h @@ -7,7 +7,6 @@ struct DjuiFont { f32 lineHeight; f32 defaultFontScale; u8 textureBitSize; - bool rotatedUV; const Gfx* textBeginDisplayList; void (*render_char)(char*); f32 (*char_width)(char*); diff --git a/src/pc/djui/djui_gbi.h b/src/pc/djui/djui_gbi.h index e16adf83..a87acedf 100644 --- a/src/pc/djui/djui_gbi.h +++ b/src/pc/djui/djui_gbi.h @@ -6,11 +6,11 @@ #define G_DJUI_SIMPLE_TRI2 0x12 #define G_EXECUTE_DJUI 0xdd -#define gSetClippingDjui(pkt, cmd, rot, x1, y1, x2, y2) \ +#define gSetClippingDjui(pkt, cmd, x1, y1, x2, y2) \ { \ Gfx *_g = (Gfx *)(pkt); \ _g->words.w0 = _SHIFTL(cmd, 24, 8) | _SHIFTL( x1, 16, 8) | \ - _SHIFTL( y1, 8, 8) | _SHIFTL(rot, 0, 8); \ + _SHIFTL( y1, 8, 8) | _SHIFTL(0x00, 0, 8); \ _g->words.w1 = _SHIFTL(x2, 16, 8) | _SHIFTL(y2, 8, 8); \ } @@ -63,7 +63,7 @@ ((height)-1) << G_TEXTURE_IMAGE_FRAC) \ } -#define gDPSetTextureClippingDjui(pkt, rot, x1, y1, x2, y2) gSetClippingDjui(pkt, G_TEXCLIP_DJUI, rot, x1, y1, x2, y2) +#define gDPSetTextureClippingDjui(pkt, x1, y1, x2, y2) gSetClippingDjui(pkt, G_TEXCLIP_DJUI, x1, y1, x2, y2) #define gDPSetTextureOverrideDjui(pkt, texture, w, h, bitSize) gSetOverrideDjui(pkt, G_TEXOVERRIDE_DJUI, texture, w, h, bitSize) diff --git a/src/pc/djui/djui_gfx.c b/src/pc/djui/djui_gfx.c index 85b9bb55..1b4a5474 100644 --- a/src/pc/djui/djui_gfx.c +++ b/src/pc/djui/djui_gfx.c @@ -94,15 +94,18 @@ void djui_gfx_render_texture_tile(const u8* texture, u32 w, u32 h, u32 bitSize, gDPSetCombineMode(gDisplayListHead++, G_CC_FADEA, G_CC_FADEA); gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2); gDPSetTextureFilter(gDisplayListHead++, G_TF_POINT); + gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); - + gDPSetTextureOverrideDjui(gDisplayListHead++, texture, djui_gfx_power_of_two(w), djui_gfx_power_of_two(h), bitSize); gDPLoadTextureBlockWithoutTexture(gDisplayListHead++, NULL, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD); *(gDisplayListHead++) = (Gfx) gsSPExecuteDjui(G_TEXOVERRIDE_DJUI); + gSPVertexDjui(gDisplayListHead++, vtx, 4, 0); *(gDisplayListHead++) = (Gfx) gsSPExecuteDjui(G_TEXCLIP_DJUI); gSP2TrianglesDjui(gDisplayListHead++, 0, 1, 2, 0x0, 0, 2, 3, 0x0); + gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF); gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE); } @@ -119,7 +122,7 @@ void djui_gfx_position_translate(f32* x, f32* y) { void djui_gfx_scale_translate(f32* width, f32* height) { u32 windowWidth, windowHeight; wm_api->get_dimensions(&windowWidth, &windowHeight); - + *width = *width * ((f32)SCREEN_HEIGHT / (f32)windowHeight) * djui_gfx_get_scale(); *height = *height * ((f32)SCREEN_HEIGHT / (f32)windowHeight) * djui_gfx_get_scale(); } @@ -131,7 +134,7 @@ void djui_gfx_size_translate(f32* size) { *size = *size * ((f32)SCREEN_HEIGHT / (f32)windowHeight) * djui_gfx_get_scale(); } -bool djui_gfx_add_clipping_specific(struct DjuiBase* base, bool rotatedUV, f32 dX, f32 dY, f32 dW, f32 dH) { +bool djui_gfx_add_clipping_specific(struct DjuiBase* base, f32 dX, f32 dY, f32 dW, f32 dH) { struct DjuiBaseRect* clip = &base->clip; f32 clipX2 = clip->x + clip->width; @@ -152,7 +155,7 @@ bool djui_gfx_add_clipping_specific(struct DjuiBase* base, bool rotatedUV, f32 d f32 dClipY2 = fmax((dY - (clipY2 - dH)) / dH, 0); if ((dClipX1 != 0) || (dClipY1 != 0) || (dClipX2 != 0) || (dClipY2 != 0)) { - gDPSetTextureClippingDjui(gDisplayListHead++, rotatedUV, (u8)(dClipX1 * 255), (u8)(dClipY1 * 255), (u8)(dClipX2 * 255), (u8)(dClipY2 * 255)); + gDPSetTextureClippingDjui(gDisplayListHead++, (u8)(dClipX1 * 255), (u8)(dClipY1 * 255), (u8)(dClipX2 * 255), (u8)(dClipY2 * 255)); } return false; @@ -160,5 +163,5 @@ bool djui_gfx_add_clipping_specific(struct DjuiBase* base, bool rotatedUV, f32 d bool djui_gfx_add_clipping(struct DjuiBase* base) { struct DjuiBaseRect* comp = &base->comp; - return djui_gfx_add_clipping_specific(base, false, comp->x, comp->y, comp->width, comp->height); + return djui_gfx_add_clipping_specific(base, comp->x, comp->y, comp->width, comp->height); } diff --git a/src/pc/djui/djui_gfx.h b/src/pc/djui/djui_gfx.h index 4777e5b5..205508e9 100644 --- a/src/pc/djui/djui_gfx.h +++ b/src/pc/djui/djui_gfx.h @@ -18,5 +18,5 @@ void djui_gfx_position_translate(f32* x, f32* y); void djui_gfx_scale_translate(f32* width, f32* height); void djui_gfx_size_translate(f32* size); -bool djui_gfx_add_clipping_specific(struct DjuiBase* base, bool rotatedUV, f32 dX, f32 dY, f32 dW, f32 dH); +bool djui_gfx_add_clipping_specific(struct DjuiBase* base, f32 dX, f32 dY, f32 dW, f32 dH); bool djui_gfx_add_clipping(struct DjuiBase* base); \ No newline at end of file diff --git a/src/pc/djui/djui_inputbox.c b/src/pc/djui/djui_inputbox.c index 54472aa8..a4ad148f 100644 --- a/src/pc/djui/djui_inputbox.c +++ b/src/pc/djui/djui_inputbox.c @@ -7,7 +7,7 @@ #include "game/segment2.h" #include "pc/controller/controller_keyboard.h" -#define DJUI_INPUTBOX_YOFF (-2) +#define DJUI_INPUTBOX_YOFF (-3) #define DJUI_INPUTBOX_MAX_BLINK 50 #define DJUI_INPUTBOX_MID_BLINK (DJUI_INPUTBOX_MAX_BLINK / 2) #define DJUI_INPUTBOX_CURSOR_WIDTH (2.0f / 32.0f) @@ -376,7 +376,7 @@ static void djui_inputbox_render_char(struct DjuiInputbox* inputbox, char* c, f3 f32 charWidth = font->char_width(c); *drawX += charWidth * font->defaultFontScale; - if (*c != ' ' && !djui_gfx_add_clipping_specific(&inputbox->base, font->rotatedUV, dX, dY, dW, dH)) { + if (*c != ' ' && !djui_gfx_add_clipping_specific(&inputbox->base, dX, dY, dW, dH)) { if (*additionalShift > 0) { create_dl_translation_matrix(DJUI_MTX_NOPUSH, *additionalShift, 0, 0); *additionalShift = 0; @@ -483,7 +483,7 @@ static bool djui_inputbox_render(struct DjuiBase* base) { f32 translatedX = comp->x + inputbox->viewX; f32 translatedY = comp->y + DJUI_INPUTBOX_YOFF; djui_gfx_position_translate(&translatedX, &translatedY); - create_dl_translation_matrix(DJUI_MTX_PUSH, translatedX, translatedY, 0); + create_dl_translation_matrix(DJUI_MTX_PUSH, (int)translatedX, (int)translatedY, 0); // compute font size f32 translatedFontSize = font->defaultFontScale; diff --git a/src/pc/djui/djui_selectionbox.c b/src/pc/djui/djui_selectionbox.c index 796fd2f4..653107c8 100644 --- a/src/pc/djui/djui_selectionbox.c +++ b/src/pc/djui/djui_selectionbox.c @@ -94,7 +94,7 @@ struct DjuiSelectionbox* djui_selectionbox_create(struct DjuiBase* parent, const djui_base_set_size_type(&text->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE); djui_base_set_size(&text->base, 0.6f, 1.0f); djui_text_set_alignment(text, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM); - djui_text_set_drop_shadow(text, 120, 120, 120, 64); + djui_text_set_drop_shadow(text, 255, 255, 255, 128); selectionbox->text = text; struct DjuiRect* rect = djui_rect_create(&selectionbox->base); @@ -111,7 +111,7 @@ struct DjuiSelectionbox* djui_selectionbox_create(struct DjuiBase* parent, const djui_base_set_size_type(&rectText->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE); djui_base_set_size(&rectText->base, 1.0f, 1.0f); djui_text_set_alignment(rectText, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM); - djui_text_set_drop_shadow(rectText, 120, 120, 120, 64); + djui_text_set_drop_shadow(rectText, 255, 255, 255, 128); selectionbox->rectText = rectText; struct DjuiImage* rectImage = djui_image_create(&rect->base, texture_selectionbox_icon, 16, 16, 16); diff --git a/src/pc/djui/djui_slider.c b/src/pc/djui/djui_slider.c index d46f3345..77d8bd98 100644 --- a/src/pc/djui/djui_slider.c +++ b/src/pc/djui/djui_slider.c @@ -116,7 +116,7 @@ struct DjuiSlider* djui_slider_create(struct DjuiBase* parent, const char* messa djui_base_set_size_type(&text->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE); djui_base_set_size(&text->base, 0.6f, 1.0f); djui_text_set_alignment(text, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM); - djui_text_set_drop_shadow(text, 120, 120, 120, 64); + djui_text_set_drop_shadow(text, 255, 255, 255, 128); slider->text = text; struct DjuiRect* rect = djui_rect_create(&slider->base); diff --git a/src/pc/djui/djui_text.c b/src/pc/djui/djui_text.c index eb5f0f34..29b34dec 100644 --- a/src/pc/djui/djui_text.c +++ b/src/pc/djui/djui_text.c @@ -71,7 +71,7 @@ static void djui_text_render_single_char(struct DjuiText* text, char* c) { f32 dW = text->font->charWidth * text->fontScale; f32 dH = text->font->charHeight * text->fontScale; - if (djui_gfx_add_clipping_specific(&text->base, text->font->rotatedUV, dX, dY, dW, dH)) { + if (djui_gfx_add_clipping_specific(&text->base, dX, dY, dW, dH)) { return; } diff --git a/src/pc/djui/djui_unicode.c b/src/pc/djui/djui_unicode.c index 60ce1b5d..4f0d2fcf 100644 --- a/src/pc/djui/djui_unicode.c +++ b/src/pc/djui/djui_unicode.c @@ -81,7 +81,7 @@ struct SmCodeGlyph sSmCodeGlyphs[] = { { "ß", 'S', 0, 0 }, { "¡", '!', 0, 0 }, - { "¿", '?', 0, 0 }, + { "¿", '?', 0.3750f, 0 }, }; static void* sCharMap = NULL; diff --git a/src/pc/gfx/gfx_pc.c b/src/pc/gfx/gfx_pc.c index 4651cc68..ea4b8867 100644 --- a/src/pc/gfx/gfx_pc.c +++ b/src/pc/gfx/gfx_pc.c @@ -75,10 +75,10 @@ struct LoadedVertex { struct TextureHashmapNode { struct TextureHashmapNode *next; - + const uint8_t *texture_addr; uint8_t fmt, siz; - + uint32_t texture_id; uint8_t cms, cmt; bool linear_filter; @@ -101,24 +101,24 @@ static uint8_t color_combiner_pool_size; static struct RSP { float modelview_matrix_stack[11][4][4]; uint8_t modelview_matrix_stack_size; - + float MP_matrix[4][4]; float P_matrix[4][4]; - + Light_t current_lights[MAX_LIGHTS + 1]; float current_lights_coeffs[MAX_LIGHTS][3]; float current_lookat_coeffs[2][3]; // lookat_x, lookat_y uint8_t current_num_lights; // includes ambient light bool lights_changed; - + uint32_t geometry_mode; int16_t fog_mul, fog_offset; - + struct { // U0.16 uint16_t s, t; } texture_scaling_factor; - + struct LoadedVertex loaded_vertices[MAX_VERTICES + 4]; } rsp; @@ -141,10 +141,10 @@ static struct RDP { uint32_t line_size_bytes; } texture_tile; bool textures_changed[2]; - + uint32_t other_mode_l, other_mode_h; uint32_t combine_mode; - + struct RGBA env_color, prim_color, fog_color, fill_color; struct XYWidthHeight viewport, scissor; bool viewport_or_scissor_changed; @@ -284,7 +284,7 @@ static struct ColorCombiner *gfx_lookup_or_create_color_combiner(uint32_t cc_id) if (prev_combiner != NULL && prev_combiner->cc_id == cc_id) { return prev_combiner; } - + for (size_t i = 0; i < color_combiner_pool_size; i++) { if (color_combiner_pool[i].cc_id == cc_id) { return prev_combiner = &color_combiner_pool[i]; @@ -348,7 +348,7 @@ static void import_texture_rgba32(int tile) { static void import_texture_rgba16(int tile) { uint8_t rgba32_buf[8192]; - + for (uint32_t i = 0; i < rdp.loaded_texture[tile].size_bytes / 2; i++) { uint16_t col16 = (rdp.loaded_texture[tile].addr[2 * i] << 8) | rdp.loaded_texture[tile].addr[2 * i + 1]; uint8_t a = col16 & 1; @@ -360,16 +360,16 @@ static void import_texture_rgba16(int tile) { rgba32_buf[4*i + 2] = SCALE_5_8(b); rgba32_buf[4*i + 3] = a ? 255 : 0; } - + uint32_t width = rdp.texture_tile.line_size_bytes / 2; uint32_t height = rdp.loaded_texture[tile].size_bytes / rdp.texture_tile.line_size_bytes; - + gfx_rapi->upload_texture(rgba32_buf, width, height); } static void import_texture_ia4(int tile) { uint8_t rgba32_buf[32768]; - + for (uint32_t i = 0; i < rdp.loaded_texture[tile].size_bytes * 2; i++) { uint8_t byte = rdp.loaded_texture[tile].addr[i / 2]; uint8_t part = (byte >> (4 - (i % 2) * 4)) & 0xf; @@ -383,16 +383,16 @@ static void import_texture_ia4(int tile) { rgba32_buf[4*i + 2] = SCALE_3_8(b); rgba32_buf[4*i + 3] = alpha ? 255 : 0; } - + uint32_t width = rdp.texture_tile.line_size_bytes * 2; uint32_t height = rdp.loaded_texture[tile].size_bytes / rdp.texture_tile.line_size_bytes; - + gfx_rapi->upload_texture(rgba32_buf, width, height); } static void import_texture_ia8(int tile) { uint8_t rgba32_buf[16384]; - + for (uint32_t i = 0; i < rdp.loaded_texture[tile].size_bytes; i++) { uint8_t intensity = rdp.loaded_texture[tile].addr[i] >> 4; uint8_t alpha = rdp.loaded_texture[tile].addr[i] & 0xf; @@ -404,16 +404,16 @@ static void import_texture_ia8(int tile) { rgba32_buf[4*i + 2] = SCALE_4_8(b); rgba32_buf[4*i + 3] = SCALE_4_8(alpha); } - + uint32_t width = rdp.texture_tile.line_size_bytes; uint32_t height = rdp.loaded_texture[tile].size_bytes / rdp.texture_tile.line_size_bytes; - + gfx_rapi->upload_texture(rgba32_buf, width, height); } static void import_texture_ia16(int tile) { uint8_t rgba32_buf[8192]; - + for (uint32_t i = 0; i < rdp.loaded_texture[tile].size_bytes / 2; i++) { uint8_t intensity = rdp.loaded_texture[tile].addr[2 * i]; uint8_t alpha = rdp.loaded_texture[tile].addr[2 * i + 1]; @@ -425,16 +425,16 @@ static void import_texture_ia16(int tile) { rgba32_buf[4*i + 2] = b; rgba32_buf[4*i + 3] = alpha; } - + uint32_t width = rdp.texture_tile.line_size_bytes / 2; uint32_t height = rdp.loaded_texture[tile].size_bytes / rdp.texture_tile.line_size_bytes; - + gfx_rapi->upload_texture(rgba32_buf, width, height); } static void import_texture_i4(int tile) { uint8_t rgba32_buf[32768]; - + for (uint32_t i = 0; i < rdp.loaded_texture[tile].size_bytes * 2; i++) { uint8_t byte = rdp.loaded_texture[tile].addr[i / 2]; uint8_t intensity = (byte >> (4 - (i % 2) * 4)) & 0xf; @@ -443,10 +443,10 @@ static void import_texture_i4(int tile) { rgba32_buf[4*i + 2] = SCALE_4_8(intensity); rgba32_buf[4*i + 3] = 255; } - + uint32_t width = rdp.texture_tile.line_size_bytes * 2; uint32_t height = rdp.loaded_texture[tile].size_bytes / rdp.texture_tile.line_size_bytes; - + gfx_rapi->upload_texture(rgba32_buf, width, height); } @@ -460,16 +460,16 @@ static void import_texture_i8(int tile) { rgba32_buf[4*i + 2] = intensity; rgba32_buf[4*i + 3] = 255; } - + uint32_t width = rdp.texture_tile.line_size_bytes; uint32_t height = rdp.loaded_texture[tile].size_bytes / rdp.texture_tile.line_size_bytes; - + gfx_rapi->upload_texture(rgba32_buf, width, height); } static void import_texture_ci4(int tile) { uint8_t rgba32_buf[32768]; - + for (uint32_t i = 0; i < rdp.loaded_texture[tile].size_bytes * 2; i++) { uint8_t byte = rdp.loaded_texture[tile].addr[i / 2]; uint8_t idx = (byte >> (4 - (i % 2) * 4)) & 0xf; @@ -483,16 +483,16 @@ static void import_texture_ci4(int tile) { rgba32_buf[4*i + 2] = SCALE_5_8(b); rgba32_buf[4*i + 3] = a ? 255 : 0; } - + uint32_t width = rdp.texture_tile.line_size_bytes * 2; uint32_t height = rdp.loaded_texture[tile].size_bytes / rdp.texture_tile.line_size_bytes; - + gfx_rapi->upload_texture(rgba32_buf, width, height); } static void import_texture_ci8(int tile) { uint8_t rgba32_buf[16384]; - + for (uint32_t i = 0; i < rdp.loaded_texture[tile].size_bytes; i++) { uint8_t idx = rdp.loaded_texture[tile].addr[i]; uint16_t col16 = (rdp.palette[idx * 2] << 8) | rdp.palette[idx * 2 + 1]; // Big endian load @@ -505,10 +505,10 @@ static void import_texture_ci8(int tile) { rgba32_buf[4*i + 2] = SCALE_5_8(b); rgba32_buf[4*i + 3] = a ? 255 : 0; } - + uint32_t width = rdp.texture_tile.line_size_bytes; uint32_t height = rdp.loaded_texture[tile].size_bytes / rdp.texture_tile.line_size_bytes; - + gfx_rapi->upload_texture(rgba32_buf, width, height); } @@ -601,7 +601,7 @@ static bool preload_texture(UNUSED void *user, const char *path) { //fprintf(stdout, "Loading new texture: `%s.`\n", actualname); load_texture(path); // new texture, load it } - + return true; } @@ -748,7 +748,7 @@ static void gfx_sp_matrix(uint8_t parameters, const int32_t *addr) { #else memcpy(matrix, addr, sizeof(matrix)); #endif - + if (parameters & G_MTX_PROJECTION) { if (parameters & G_MTX_LOAD) { memcpy(rsp.P_matrix, matrix, sizeof(matrix)); @@ -790,17 +790,17 @@ static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, cons const Vtx_t *v = &vertices[i].v; const Vtx_tn *vn = &vertices[i].n; struct LoadedVertex *d = &rsp.loaded_vertices[dest_index]; - + float x = v->ob[0] * rsp.MP_matrix[0][0] + v->ob[1] * rsp.MP_matrix[1][0] + v->ob[2] * rsp.MP_matrix[2][0] + rsp.MP_matrix[3][0]; float y = v->ob[0] * rsp.MP_matrix[0][1] + v->ob[1] * rsp.MP_matrix[1][1] + v->ob[2] * rsp.MP_matrix[2][1] + rsp.MP_matrix[3][1]; float z = v->ob[0] * rsp.MP_matrix[0][2] + v->ob[1] * rsp.MP_matrix[1][2] + v->ob[2] * rsp.MP_matrix[2][2] + rsp.MP_matrix[3][2]; float w = v->ob[0] * rsp.MP_matrix[0][3] + v->ob[1] * rsp.MP_matrix[1][3] + v->ob[2] * rsp.MP_matrix[2][3] + rsp.MP_matrix[3][3]; - + x = gfx_adjust_x_for_aspect_ratio(x); - + short U = v->tc[0] * rsp.texture_scaling_factor.s >> 16; short V = v->tc[1] * rsp.texture_scaling_factor.t >> 16; - + if (rsp.geometry_mode & G_LIGHTING) { if (rsp.lights_changed) { for (int32_t i = 0; i < rsp.current_num_lights - 1; i++) { @@ -812,11 +812,11 @@ static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, cons calculate_normal_dir(&lookat_y, rsp.current_lookat_coeffs[1]); rsp.lights_changed = false; } - + int r = rsp.current_lights[rsp.current_num_lights - 1].col[0]; int g = rsp.current_lights[rsp.current_num_lights - 1].col[1]; int b = rsp.current_lights[rsp.current_num_lights - 1].col[2]; - + for (int32_t i = 0; i < rsp.current_num_lights - 1; i++) { float intensity = 0; intensity += vn->n[0] * rsp.current_lights_coeffs[i][0]; @@ -829,11 +829,11 @@ static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, cons b += intensity * rsp.current_lights[i].col[2]; } } - + d->color.r = r > 255 ? 255 : r; d->color.g = g > 255 ? 255 : g; d->color.b = b > 255 ? 255 : b; - + if (rsp.geometry_mode & G_TEXTURE_GEN) { float dotx = 0, doty = 0; dotx += vn->n[0] * rsp.current_lookat_coeffs[0][0]; @@ -842,7 +842,7 @@ static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, cons doty += vn->n[0] * rsp.current_lookat_coeffs[1][0]; doty += vn->n[1] * rsp.current_lookat_coeffs[1][1]; doty += vn->n[2] * rsp.current_lookat_coeffs[1][2]; - + U = (int32_t)((dotx / 127.0f + 1.0f) / 4.0f * rsp.texture_scaling_factor.s); V = (int32_t)((doty / 127.0f + 1.0f) / 4.0f * rsp.texture_scaling_factor.t); } @@ -851,10 +851,10 @@ static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, cons d->color.g = v->cn[1]; d->color.b = v->cn[2]; } - + d->u = U; d->v = V; - + // trivial clip rejection d->clip_rej = 0; if (x < -w) d->clip_rej |= 1; @@ -863,18 +863,18 @@ static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, cons if (y > w) d->clip_rej |= 8; if (z < -w) d->clip_rej |= 16; if (z > w) d->clip_rej |= 32; - + d->x = x; d->y = y; d->z = z; d->w = w; - + if (rsp.geometry_mode & G_FOG) { if (fabsf(w) < 0.001f) { // To avoid division by zero w = 0.001f; } - + float winv = 1.0f / w; if (winv < 0.0f) { winv = 32767.0f; @@ -905,20 +905,20 @@ static void OPTIMIZE_O3 gfx_sp_tri1(uint8_t vtx1_idx, uint8_t vtx2_idx, uint8_t // The whole triangle lies outside the visible area return; } - + if ((rsp.geometry_mode & G_CULL_BOTH) != 0) { float dx1 = v1->x / (v1->w) - v2->x / (v2->w); float dy1 = v1->y / (v1->w) - v2->y / (v2->w); float dx2 = v3->x / (v3->w) - v2->x / (v2->w); float dy2 = v3->y / (v3->w) - v2->y / (v2->w); float cross = dx1 * dy2 - dy1 * dx2; - + if ((v1->w < 0) ^ (v2->w < 0) ^ (v3->w < 0)) { // If one vertex lies behind the eye, negating cross will give the correct result. // If all vertices lie behind the eye, the triangle will be rejected anyway. cross = -cross; } - + switch (rsp.geometry_mode & G_CULL_BOTH) { case G_CULL_FRONT: if (cross <= 0) return; @@ -931,28 +931,28 @@ static void OPTIMIZE_O3 gfx_sp_tri1(uint8_t vtx1_idx, uint8_t vtx2_idx, uint8_t return; } } - + bool depth_test = (rsp.geometry_mode & G_ZBUFFER) == G_ZBUFFER; if (depth_test != rendering_state.depth_test) { gfx_flush(); gfx_rapi->set_depth_test(depth_test); rendering_state.depth_test = depth_test; } - + bool z_upd = (rdp.other_mode_l & Z_UPD) == Z_UPD; if (z_upd != rendering_state.depth_mask) { gfx_flush(); gfx_rapi->set_depth_mask(z_upd); rendering_state.depth_mask = z_upd; } - + bool zmode_decal = (rdp.other_mode_l & ZMODE_DEC) == ZMODE_DEC; if (zmode_decal != rendering_state.decal_mode) { gfx_flush(); gfx_rapi->set_zmode_decal(zmode_decal); rendering_state.decal_mode = zmode_decal; } - + if (rdp.viewport_or_scissor_changed) { if (memcmp(&rdp.viewport, &rendering_state.viewport, sizeof(rdp.viewport)) != 0) { gfx_flush(); @@ -966,27 +966,27 @@ static void OPTIMIZE_O3 gfx_sp_tri1(uint8_t vtx1_idx, uint8_t vtx2_idx, uint8_t } rdp.viewport_or_scissor_changed = false; } - + uint32_t cc_id = rdp.combine_mode; - + bool use_alpha = (rdp.other_mode_l & (G_BL_A_MEM << 18)) == 0; bool use_fog = (rdp.other_mode_l >> 30) == G_BL_CLR_FOG; bool texture_edge = (rdp.other_mode_l & CVG_X_ALPHA) == CVG_X_ALPHA; bool use_noise = (rdp.other_mode_l & G_AC_DITHER) == G_AC_DITHER; - + if (texture_edge) { use_alpha = true; } - + if (use_alpha) cc_id |= SHADER_OPT_ALPHA; if (use_fog) cc_id |= SHADER_OPT_FOG; if (texture_edge) cc_id |= SHADER_OPT_TEXTURE_EDGE; if (use_noise) cc_id |= SHADER_OPT_NOISE; - + if (!use_alpha) { cc_id &= ~0xfff000; } - + struct ColorCombiner *comb = gfx_lookup_or_create_color_combiner(cc_id); struct ShaderProgram *prg = comb->prg; if (prg != rendering_state.shader_program) { @@ -1003,7 +1003,7 @@ static void OPTIMIZE_O3 gfx_sp_tri1(uint8_t vtx1_idx, uint8_t vtx2_idx, uint8_t uint8_t num_inputs; bool used_textures[2]; gfx_rapi->shader_get_info(prg, &num_inputs, used_textures); - + for (int32_t i = 0; i < 2; i++) { if (used_textures[i]) { if (rdp.textures_changed[i]) { @@ -1021,13 +1021,13 @@ static void OPTIMIZE_O3 gfx_sp_tri1(uint8_t vtx1_idx, uint8_t vtx2_idx, uint8_t } } } - + bool use_texture = used_textures[0] || used_textures[1]; uint32_t tex_width = (rdp.texture_tile.lrs - rdp.texture_tile.uls + 4) / 4; uint32_t tex_height = (rdp.texture_tile.lrt - rdp.texture_tile.ult + 4) / 4; - + bool z_is_from_0_to_1 = gfx_rapi->z_is_from_0_to_1(); - + for (int32_t i = 0; i < 3; i++) { float z = v_arr[i]->z, w = v_arr[i]->w; if (z_is_from_0_to_1) { @@ -1037,7 +1037,7 @@ static void OPTIMIZE_O3 gfx_sp_tri1(uint8_t vtx1_idx, uint8_t vtx2_idx, uint8_t buf_vbo[buf_vbo_len++] = v_arr[i]->y; buf_vbo[buf_vbo_len++] = z; buf_vbo[buf_vbo_len++] = w; - + if (use_texture) { float u = (v_arr[i]->u - rdp.texture_tile.uls * 8) / 32.0f; float v = (v_arr[i]->v - rdp.texture_tile.ult * 8) / 32.0f; @@ -1049,14 +1049,14 @@ static void OPTIMIZE_O3 gfx_sp_tri1(uint8_t vtx1_idx, uint8_t vtx2_idx, uint8_t buf_vbo[buf_vbo_len++] = u / tex_width; buf_vbo[buf_vbo_len++] = v / tex_height; } - + if (use_fog) { buf_vbo[buf_vbo_len++] = rdp.fog_color.r / 255.0f; buf_vbo[buf_vbo_len++] = rdp.fog_color.g / 255.0f; buf_vbo[buf_vbo_len++] = rdp.fog_color.b / 255.0f; buf_vbo[buf_vbo_len++] = v_arr[i]->color.a / 255.0f; // fog factor (not alpha) } - + for (int j = 0; j < num_inputs; j++) { struct RGBA *color; struct RGBA tmp; @@ -1121,17 +1121,17 @@ static void gfx_calc_and_set_viewport(const Vp_t *viewport) { float height = 2.0f * viewport->vscale[1] / 4.0f; float x = (viewport->vtrans[0] / 4.0f) - width / 2.0f; float y = SCREEN_HEIGHT - ((viewport->vtrans[1] / 4.0f) + height / 2.0f); - + width *= RATIO_X; height *= RATIO_Y; x *= RATIO_X; y *= RATIO_Y; - + rdp.viewport.x = x; rdp.viewport.y = y; rdp.viewport.width = width; rdp.viewport.height = height; - + rdp.viewport_or_scissor_changed = true; } @@ -1218,12 +1218,12 @@ static void gfx_dp_set_scissor(UNUSED uint32_t mode, uint32_t ulx, uint32_t uly, float y = (SCREEN_HEIGHT - lry / 4.0f) * RATIO_Y; float width = (lrx - ulx) / 4.0f * RATIO_X; float height = (lry - uly) / 4.0f * RATIO_Y; - + rdp.scissor.x = x; rdp.scissor.y = y; rdp.scissor.width = width; rdp.scissor.height = height; - + rdp.viewport_or_scissor_changed = true; } @@ -1233,7 +1233,7 @@ static void gfx_dp_set_texture_image(UNUSED uint32_t format, uint32_t size, UNUS } static void gfx_dp_set_tile(uint8_t fmt, uint32_t siz, uint32_t line, uint32_t tmem, uint8_t tile, uint32_t palette, uint32_t cmt, UNUSED uint32_t maskt, UNUSED uint32_t shiftt, uint32_t cms, UNUSED uint32_t masks, UNUSED uint32_t shifts) { - + if (tile == G_TX_RENDERTILE) { SUPPORT_CHECK(palette == 0); // palette should set upper 4 bits of color index in 4b mode rdp.texture_tile.fmt = fmt; @@ -1244,7 +1244,7 @@ static void gfx_dp_set_tile(uint8_t fmt, uint32_t siz, uint32_t line, uint32_t t rdp.textures_changed[0] = true; rdp.textures_changed[1] = true; } - + if (tile == G_TX_LOADTILE) { rdp.texture_to_load.tile_number = tmem / 256; } @@ -1272,7 +1272,7 @@ static void gfx_dp_load_block(uint8_t tile, uint32_t uls, uint32_t ult, uint32_t SUPPORT_CHECK(tile == G_TX_LOADTILE); SUPPORT_CHECK(uls == 0); SUPPORT_CHECK(ult == 0); - + // The lrs field rather seems to be number of pixels to load uint32_t word_size_shift = 0; switch (rdp.texture_to_load.siz) { @@ -1291,9 +1291,8 @@ static void gfx_dp_load_block(uint8_t tile, uint32_t uls, uint32_t ult, uint32_t } uint32_t size_bytes = (lrs + 1) << word_size_shift; rdp.loaded_texture[rdp.texture_to_load.tile_number].size_bytes = size_bytes; - rdp.textures_changed[rdp.texture_to_load.tile_number] = rdp.loaded_texture[rdp.texture_to_load.tile_number].addr != rdp.texture_to_load.addr; rdp.loaded_texture[rdp.texture_to_load.tile_number].addr = rdp.texture_to_load.addr; - + rdp.textures_changed[rdp.texture_to_load.tile_number] = true; } static void gfx_dp_load_tile(uint8_t tile, uint32_t uls, uint32_t ult, uint32_t lrs, uint32_t lrt) { @@ -1398,66 +1397,66 @@ static void gfx_dp_set_fill_color(uint32_t packed_color) { static void gfx_draw_rectangle(int32_t ulx, int32_t uly, int32_t lrx, int32_t lry) { uint32_t saved_other_mode_h = rdp.other_mode_h; uint32_t cycle_type = (rdp.other_mode_h & (3U << G_MDSFT_CYCLETYPE)); - + if (cycle_type == G_CYC_COPY) { rdp.other_mode_h = (rdp.other_mode_h & ~(3U << G_MDSFT_TEXTFILT)) | G_TF_POINT; } - + // U10.2 coordinates float ulxf = ulx; float ulyf = uly; float lrxf = lrx; float lryf = lry; - + ulxf = ulxf / (4.0f * HALF_SCREEN_WIDTH) - 1.0f; ulyf = -(ulyf / (4.0f * HALF_SCREEN_HEIGHT)) + 1.0f; lrxf = lrxf / (4.0f * HALF_SCREEN_WIDTH) - 1.0f; lryf = -(lryf / (4.0f * HALF_SCREEN_HEIGHT)) + 1.0f; - + ulxf = gfx_adjust_x_for_aspect_ratio(ulxf); lrxf = gfx_adjust_x_for_aspect_ratio(lrxf); - + struct LoadedVertex* ul = &rsp.loaded_vertices[MAX_VERTICES + 0]; struct LoadedVertex* ll = &rsp.loaded_vertices[MAX_VERTICES + 1]; struct LoadedVertex* lr = &rsp.loaded_vertices[MAX_VERTICES + 2]; struct LoadedVertex* ur = &rsp.loaded_vertices[MAX_VERTICES + 3]; - + ul->x = ulxf; ul->y = ulyf; ul->z = -1.0f; ul->w = 1.0f; - + ll->x = ulxf; ll->y = lryf; ll->z = -1.0f; ll->w = 1.0f; - + lr->x = lrxf; lr->y = lryf; lr->z = -1.0f; lr->w = 1.0f; - + ur->x = lrxf; ur->y = ulyf; ur->z = -1.0f; ur->w = 1.0f; - + // The coordinates for texture rectangle shall bypass the viewport setting struct XYWidthHeight default_viewport = {0, 0, gfx_current_dimensions.width, gfx_current_dimensions.height}; struct XYWidthHeight viewport_saved = rdp.viewport; uint32_t geometry_mode_saved = rsp.geometry_mode; - + rdp.viewport = default_viewport; rdp.viewport_or_scissor_changed = true; rsp.geometry_mode = 0; - + gfx_sp_tri1(MAX_VERTICES + 0, MAX_VERTICES + 1, MAX_VERTICES + 3); gfx_sp_tri1(MAX_VERTICES + 1, MAX_VERTICES + 2, MAX_VERTICES + 3); - + rsp.geometry_mode = geometry_mode_saved; rdp.viewport = viewport_saved; rdp.viewport_or_scissor_changed = true; - + if (cycle_type == G_CYC_COPY) { rdp.other_mode_h = saved_other_mode_h; } @@ -1469,15 +1468,15 @@ static void gfx_dp_texture_rectangle(int32_t ulx, int32_t uly, int32_t lrx, int3 // Per RDP Command Summary Set Tile's shift s and this dsdx should be set to 4 texels // Divide by 4 to get 1 instead dsdx >>= 2; - + // Color combiner is turned off in copy mode gfx_dp_set_combine_mode(color_comb(0, 0, 0, G_CCMUX_TEXEL0), color_comb(0, 0, 0, G_ACMUX_TEXEL0)); - + // Per documentation one extra pixel is added in this modes to each edge lrx += 1 << 2; lry += 1 << 2; } - + // uls and ult are S10.5 // dsdx and dtdy are S5.10 // lrx, lry, ulx, uly are U10.2 @@ -1490,7 +1489,7 @@ static void gfx_dp_texture_rectangle(int32_t ulx, int32_t uly, int32_t lrx, int3 int16_t height = !flip ? lry - uly : lrx - ulx; float lrs = ((uls << 7) + dsdx * width) >> 7; float lrt = ((ult << 7) + dtdy * height) >> 7; - + struct LoadedVertex* ul = &rsp.loaded_vertices[MAX_VERTICES + 0]; struct LoadedVertex* ll = &rsp.loaded_vertices[MAX_VERTICES + 1]; struct LoadedVertex* lr = &rsp.loaded_vertices[MAX_VERTICES + 2]; @@ -1510,7 +1509,7 @@ static void gfx_dp_texture_rectangle(int32_t ulx, int32_t uly, int32_t lrx, int3 ur->u = uls; ur->v = lrt; } - + gfx_draw_rectangle(ulx, uly, lrx, lry); rdp.combine_mode = saved_combine_mode; } @@ -1521,18 +1520,18 @@ static void gfx_dp_fill_rectangle(int32_t ulx, int32_t uly, int32_t lrx, int32_t return; } uint32_t mode = (rdp.other_mode_h & (3U << G_MDSFT_CYCLETYPE)); - + if (mode == G_CYC_COPY || mode == G_CYC_FILL) { // Per documentation one extra pixel is added in this modes to each edge lrx += 1 << 2; lry += 1 << 2; } - + for (int32_t i = MAX_VERTICES; i < MAX_VERTICES + 4; i++) { struct LoadedVertex* v = &rsp.loaded_vertices[i]; v->color = rdp.fill_color; } - + uint32_t saved_combine_mode = rdp.combine_mode; gfx_dp_set_combine_mode(color_comb(0, 0, 0, G_CCMUX_SHADE), color_comb(0, 0, 0, G_ACMUX_SHADE)); gfx_draw_rectangle(ulx, uly, lrx, lry); @@ -1565,7 +1564,7 @@ static inline void *seg_addr(uintptr_t w1) { static void OPTIMIZE_O3 gfx_run_dl(Gfx* cmd) { for (;;) { uint32_t opcode = cmd->words.w0 >> 24; - + switch (opcode) { // RSP commands: case G_MTX: @@ -1669,7 +1668,7 @@ static void OPTIMIZE_O3 gfx_run_dl(Gfx* cmd) { gfx_sp_set_other_mode(C0(8, 8) + 32, C0(0, 8), (uint64_t) cmd->words.w1 << 32); #endif break; - + // RDP Commands: case G_SETTIMG: gfx_dp_set_texture_image(C0(21, 3), C0(19, 2), C0(0, 10), seg_addr(cmd->words.w1)); @@ -1791,7 +1790,7 @@ void gfx_init(struct GfxWindowManagerAPI *wapi, struct GfxRenderingAPI *rapi, co gfx_rapi = rapi; gfx_wapi->init(window_title); gfx_rapi->init(); - + // Used in the 120 star TAS static uint32_t precomp_shaders[] = { 0x01200200, @@ -1849,15 +1848,15 @@ void gfx_start_frame(void) { void gfx_run(Gfx *commands) { gfx_sp_reset(); - + //puts("New frame"); - + if (!gfx_wapi->start_frame()) { dropped_frame = true; return; } dropped_frame = false; - + //double t0 = gfx_wapi->get_time(); gfx_rapi->start_frame(); gfx_run_dl(commands); @@ -1891,7 +1890,6 @@ void gfx_shutdown(void) { ///////////////////////// static bool sDjuiClip = 0; -static bool sDjuiClipRotatedUV = 0; static uint8_t sDjuiClipX1 = 0; static uint8_t sDjuiClipY1 = 0; static uint8_t sDjuiClipX2 = 0; @@ -1950,30 +1948,15 @@ static void OPTIMIZE_O3 djui_gfx_dp_execute_clipping(void) { d->y -= (maxY - minY) * (sDjuiClipY1 / 255.0f); } - if (sDjuiClipRotatedUV) { - if (d->u <= midU) { - d->u += (maxU - minU) * (sDjuiClipY2 / 255.0f); - } - else { - d->u -= (maxU - minU) * (sDjuiClipY1 / 255.0f); - } - if (d->v <= midV) { - d->v += (maxV - minV) * (sDjuiClipX2 / 255.0f); - } - else { - d->v -= (maxV - minV) * (sDjuiClipX1 / 255.0f); - } + if (d->u <= midU) { + d->u += (maxU - minU) * (sDjuiClipX1 / 255.0f); } else { - if (d->u <= midU) { - d->u += (maxU - minU) * (sDjuiClipX1 / 255.0f); - } else { - d->u -= (maxU - minU) * (sDjuiClipX2 / 255.0f); - } - if (d->v <= midV) { - d->v += (maxV - minV) * (sDjuiClipY1 / 255.0f); - } else { - d->v -= (maxV - minV) * (sDjuiClipY2 / 255.0f); - } + d->u -= (maxU - minU) * (sDjuiClipX2 / 255.0f); + } + if (d->v <= midV) { + d->v += (maxV - minV) * (sDjuiClipY1 / 255.0f); + } else { + d->v -= (maxV - minV) * (sDjuiClipY2 / 255.0f); } } } @@ -2017,8 +2000,7 @@ static void OPTIMIZE_O3 djui_gfx_dp_execute_djui(uint32_t opcode) { } } -static void OPTIMIZE_O3 djui_gfx_dp_set_clipping(bool rotatedUV, uint32_t x1, uint32_t y1, uint32_t x2, uint32_t y2) { - sDjuiClipRotatedUV = rotatedUV; +static void OPTIMIZE_O3 djui_gfx_dp_set_clipping(uint32_t x1, uint32_t y1, uint32_t x2, uint32_t y2) { sDjuiClipX1 = x1; sDjuiClipY1 = y1; sDjuiClipX2 = x2; @@ -2038,21 +2020,21 @@ static void OPTIMIZE_O3 djui_gfx_sp_simple_vertex(size_t n_vertices, size_t dest for (size_t i = 0; i < n_vertices; i++, dest_index++) { const Vtx_t *v = &vertices[i].v; struct LoadedVertex *d = &rsp.loaded_vertices[dest_index]; - + float x = v->ob[0] * rsp.MP_matrix[0][0] + v->ob[1] * rsp.MP_matrix[1][0] + v->ob[2] * rsp.MP_matrix[2][0] + rsp.MP_matrix[3][0]; float y = v->ob[0] * rsp.MP_matrix[0][1] + v->ob[1] * rsp.MP_matrix[1][1] + v->ob[2] * rsp.MP_matrix[2][1] + rsp.MP_matrix[3][1]; float z = v->ob[0] * rsp.MP_matrix[0][2] + v->ob[1] * rsp.MP_matrix[1][2] + v->ob[2] * rsp.MP_matrix[2][2] + rsp.MP_matrix[3][2]; float w = v->ob[0] * rsp.MP_matrix[0][3] + v->ob[1] * rsp.MP_matrix[1][3] + v->ob[2] * rsp.MP_matrix[2][3] + rsp.MP_matrix[3][3]; - + x = gfx_adjust_x_for_aspect_ratio(x); - + short U = v->tc[0] * rsp.texture_scaling_factor.s >> 16; short V = v->tc[1] * rsp.texture_scaling_factor.t >> 16; - + d->color.r = v->cn[0]; d->color.g = v->cn[1]; d->color.b = v->cn[2]; - + d->u = U; d->v = V; @@ -2060,7 +2042,7 @@ static void OPTIMIZE_O3 djui_gfx_sp_simple_vertex(size_t n_vertices, size_t dest d->y = y; d->z = z; d->w = w; - + d->color.a = v->cn[3]; } } @@ -2072,14 +2054,14 @@ static void OPTIMIZE_O3 djui_gfx_sp_simple_tri1(uint8_t vtx1_idx, uint8_t vtx2_i struct LoadedVertex *v_arr[3] = {v1, v2, v3}; uint32_t cc_id = rdp.combine_mode; - + bool use_alpha = true; cc_id |= SHADER_OPT_ALPHA; if (!use_alpha) { cc_id &= ~0xfff000; } - + struct ColorCombiner *comb = gfx_lookup_or_create_color_combiner(cc_id); struct ShaderProgram *prg = comb->prg; if (prg != rendering_state.shader_program) { @@ -2097,9 +2079,9 @@ static void OPTIMIZE_O3 djui_gfx_sp_simple_tri1(uint8_t vtx1_idx, uint8_t vtx2_i uint32_t tex_width = (rdp.texture_tile.lrs - rdp.texture_tile.uls + 4) / 4; uint32_t tex_height = (rdp.texture_tile.lrt - rdp.texture_tile.ult + 4) / 4; - + bool z_is_from_0_to_1 = gfx_rapi->z_is_from_0_to_1(); - + for (int32_t i = 0; i < 3; i++) { float z = v_arr[i]->z, w = v_arr[i]->w; if (z_is_from_0_to_1) { @@ -2131,7 +2113,7 @@ void OPTIMIZE_O3 djui_gfx_run_dl(Gfx* cmd) { uint32_t opcode = cmd->words.w0 >> 24; switch (opcode) { case G_TEXCLIP_DJUI: - djui_gfx_dp_set_clipping(C0(0, 8), C0(16, 8), C0(8, 8), C1(16, 8), C1(8, 8)); + djui_gfx_dp_set_clipping(C0(16, 8), C0(8, 8), C1(16, 8), C1(8, 8)); break; case G_TEXOVERRIDE_DJUI: djui_gfx_dp_set_override(seg_addr(cmd->words.w1), 1 << C0(16, 8), 1 << C0(8, 8), C0(0, 8)); diff --git a/textures/custom_font_title/custom_font_normal.rgba32.png b/textures/custom_font_title/custom_font_normal.rgba32.png index 43e8a70f7a0d1469f18640c143e92241144295ee..56cbc15265cf3981fa9684f2a0564131b752091c 100644 GIT binary patch literal 12119 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 HDWM4fD484# diff --git a/textures/segment2/custom_font_normal_char_04.ia4.png b/textures/segment2/custom_font_normal_char_04.ia4.png deleted file mode 100644 index df39f225da005be2f8d953a01da3fe09a78a54ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2IclCRjv*3L zlM@!G|M>j>e7ywsYLiVOPMpelwmLl#J`U!b?LsM;42j~B$He(Krvr5`c)I$ztaD0e F0stRb8)g6i diff --git a/textures/segment2/custom_font_normal_char_10.ia4.png b/textures/segment2/custom_font_normal_char_10.ia4.png deleted file mode 100644 index 46931ec9deca9a3ca3e8d935e238a58cb715646d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2IVzqmjv*3L zlM^I3K0LQ)GBz-H6m;mofkPe6j4o2kS{87!++|>h&=Gv*@xDYBsGh;o)z4*}Q$iB} D>)sqn diff --git a/textures/segment2/custom_font_normal_char_11.ia4.png b/textures/segment2/custom_font_normal_char_11.ia4.png deleted file mode 100644 index abf6f5f8af44aa4f4a47b9fe36a56416968fc635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2Ir5$^jv*3L ylM@yg{rD^&+tN8f%q?eEq{K!|)$3eM3=GT)tbeBe-R2Hd%HZkh=d#Wzp$PzPcN+l! diff --git a/textures/segment2/custom_font_normal_char_15.ia4.png b/textures/segment2/custom_font_normal_char_15.ia4.png deleted file mode 100644 index 0488c28af4b5387364f450412593c52532512945..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2IclCRjv*3L zlM@zLCLGcG^W2^p2)LESSUEI#gfA?eAd)a$Nr-_#tDA$>(}39msDr`N)z4*}Q$iB} Do%R>h diff --git a/textures/segment2/custom_font_normal_char_26.ia4.png b/textures/segment2/custom_font_normal_char_26.ia4.png deleted file mode 100644 index 43149dfde4b565566e0f195a2316b7ee7ff987fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2IpUr!jv*3L qlM^JY9-RMg|Nmm7zyX(yHyM_FV}EbwT&V(7!rbJ`PDaPU;cPEB*=VV?2Intgkjv*3L ulM^JY9-RMg|Nmm7zyTIPl^}C728RBvybsQ7nH>&P#^CAd=d#Wzp$Py6)*0{s diff --git a/textures/segment2/custom_font_normal_char_28.ia4.png b/textures/segment2/custom_font_normal_char_28.ia4.png deleted file mode 100644 index f03c311f4ac444e69a891fb8d37e855fb08acbcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2Intgkjv*3L ulM^IN9-Oa#lcVER;Bk1#2am^>cp2m`^WJN75dRNU#^CAd=d#Wzp$PycksCJv diff --git a/textures/segment2/custom_font_normal_char_29.ia4.png b/textures/segment2/custom_font_normal_char_29.ia4.png deleted file mode 100644 index 8d2efa278df8432f7aa84cfd7321463b5be87501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2Ig*|(jv*3L rlM^ID9-Oad>16O}*&-O?0MvB(IP>qLVjngF6)||a`njxgN@xNAvr-t3 diff --git a/textures/segment2/custom_font_normal_char_30.ia4.png b/textures/segment2/custom_font_normal_char_30.ia4.png deleted file mode 100644 index 493fd04eeb4ba6d54c7f8dd50b3d42dc98d52227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2Intgkjv*3L ulM^IT9-Oalx>Pacz>)$DM=`fhCWh$Ey!V2cTG)Wf7(8A5T-G@yGywnr9~kcd diff --git a/textures/segment2/custom_font_normal_char_32.ia4.png b/textures/segment2/custom_font_normal_char_32.ia4.png deleted file mode 100644 index d74a007da79d816fc5c5e0bab993e0d6320351f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2IkuiIjv*3L zOZ`rBF(~lNy70e#V?ukx+0c1M#Fe;Kq%apgzA;s~mGOP>woPYx0`^^3;or{sD)Ybo eyUBXjtA$^MYp?$^#W(?I5QC?ypUXO@geCwrNh|>X diff --git a/textures/segment2/custom_font_normal_char_59.ia4.png b/textures/segment2/custom_font_normal_char_59.ia4.png deleted file mode 100644 index 0855e3ed9ec6c0fc57fe661d236a1f198fe11a7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2Ig*|(jv*3L slM^IV9-Obgv&g5#Wb*^#W(@`g2M^XCFHSb>0V-nfboFyt=akR{0Nr01>Hq)$ diff --git a/textures/segment2/custom_font_normal_char_60.ia4.png b/textures/segment2/custom_font_normal_char_60.ia4.png deleted file mode 100644 index e61513af4ae5936847bdd7429f707a51ac410ecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2Ia;1Bjv*3L zlM@zLCZr@JB>eb1zYz#p1(!2%99YNWEWXQV&9O(@MRbJ`PDaPU;cPEB*=VV?2If|Yxjv*3L zlM^H=4xBh};J}CH_GO-8ZW_$HnL0FtkLEEjxK^?LvMClY1S)3mboFyt=akR{0JG&A AH~;_u diff --git a/textures/segment2/custom_font_normal_char_62.ia4.png b/textures/segment2/custom_font_normal_char_62.ia4.png deleted file mode 100644 index 152501c6635441c49efef013e5ae7dead3a40fd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2Il`VUjv*3L llM^H)K0LRVoiagzm*K-!&KJGPbJ`PDaPU;cPEB*=VV?2IbxnJjv*3L plM@#3|M)DwT}D{(Y)JqEgMAMZ%Pa5sM}R6AJYD@<);T3K0RU$g7SaF! diff --git a/textures/segment2/custom_font_normal_char_64.ia4.png b/textures/segment2/custom_font_normal_char_64.ia4.png deleted file mode 100644 index 43739cb3cb7bfac64bb90e7a14861990de00f82e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2IVzqmjv*3L zlM^IXJvjg0{(oYQTa1?k5JX5wO3c`xozR%g!qB>o^?&O3H}*jF44$rjF6*2UngIWG B9S;Bi diff --git a/textures/segment2/custom_font_normal_char_91.ia4.png b/textures/segment2/custom_font_normal_char_91.ia4.png deleted file mode 100644 index f2ca1d931f8e9a28fe81efce9594866a39333368..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2Ir5$^jv*3L ylM^IV9-Obgv&g5##CXxHgNHg!9ZS;LRmyO01NVnLHvB-93=E#GelF{r5}E+CupMLo diff --git a/textures/segment2/custom_font_normal_char_92.ia4.png b/textures/segment2/custom_font_normal_char_92.ia4.png deleted file mode 100644 index e7e031c1144de94fd7ff046a310a00dbafa7c09d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!2%?s>bJ`PDaPU;cPEB*=VV?2IZ~c3jv*3L tlM^KP8YVV2HabJ`PDaPU;cPEB*=VV?2IqIG+jv*3L zlM^IL9-RMg|3A=GB2h?SR;%FDvkh9kc~ZmdKI;Vst E04}o|dH?_b diff --git a/textures/segment2/custom_font_normal_char_ca_a.ia4.png b/textures/segment2/custom_font_normal_char_ca_a.ia4.png deleted file mode 100644 index fc72fb923ed9f4280f52bd572324bad588379379..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001~iL_t(2Q)6Hl@_-T92Y>$j`A>|GSXfw4 z^kLP5%`jv!f|j8x#-$mjQ;;>_b282_Aj+RW&jSF><|nC~Z753s0000-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4002HoL_t(2Q)6Hl@_-T92Y>$j`A^74EG#Tw zJs`C(HdZ~@41pvu$00dGmoDeXOdjJ3c07*qo IM6N<$f&dNOKL7v# diff --git a/textures/segment2/custom_font_normal_char_ca_c.ia4.png b/textures/segment2/custom_font_normal_char_ca_c.ia4.png deleted file mode 100644 index f4050f025c25e0de6142ec0c345b6c133300bc8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmV+d0{#7oP)-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40025kL_t(2Q)6Hl@_-T92Y>$j`A^74EG#UH zAax)buUc$|A&U{T3|%oU%{ZNbtO1{MafSgwKSBcl00=QFsVW>7#Q*>R07*qoM6N<$ Ef=PDS8vp-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40028lL_t(2Q)6Hl@_-T92Y>$j`A>|GSXfw4 z^kLP5%`jpu02_#`7{o^B6Lcv|6E0g};yA;AD1QQ-0RYK!FM)$!Yi$4k002ovPDHLk FV1l!w-E#l{ diff --git a/textures/segment2/custom_font_normal_char_ca_t.ia4.png b/textures/segment2/custom_font_normal_char_ca_t.ia4.png deleted file mode 100644 index aff590e1463a1cc0324c30621b4d8806c8a712b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmV+k0`~ohP)-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4002QrL_t(2Q)6Hl@_-T92Y>$j`A^74EG#Tw zJs`C(HdZ~@41-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4002EnL_t(2Q)6Hl@_-T92Y>$j`A^74EG#UH zAax)buUc$|5n}<|P-Mj*HaZ`s5T`ScHQ;kD&M+Y8N2n73>@_F0qCJr-00000NkvXX Hu0mjf9S_|H diff --git a/textures/segment2/custom_font_normal_char_cae.ia4.png b/textures/segment2/custom_font_normal_char_cae.ia4.png deleted file mode 100644 index f8f89c6970245b7f0210f59b5d1f41b25bbd6a06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmV+t0`2{YP)a1zEHB0@mP2+H6Lzx zCP0V|2I<#y#~PoSO7QRaxW%XHO+@wjf8U>@dC72e@HGmL=$2g)9urQilq|)Y!tHua zTM|AH9+zdndnP#ne$_La{lV!Utmo{!aG!8@-Yo0Y^QfD&7=_ts zsa-NdI3$S^BTSky%b1jiNG(WafBT{p-y}ux=<>H%#TG}FoOlOBElXEJYDRQJK9g0I z`|muR%hpzi|1c3)QFVy@+$!YXm^sSoKy$`{4IK8N8 z=^Z%RfX;hMv$cv8km=84;N=8bQ_yw|O$%OD)pd^VU}jC8=n8iCpjY+>7ry~M?Pw=2 zu)(07*qoM6N<$f&d`tYXATM diff --git a/textures/segment2/custom_font_normal_char_cc_ced.ia4.png b/textures/segment2/custom_font_normal_char_cc_ced.ia4.png deleted file mode 100644 index 8717fb8c27b09ebb8dde5f71548f5250c560dd4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001{hL_t(2Q)6Hlp5V`)KmS1(-FMi;FhYQk zB6N8cm-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40028lL_t(2Q)6HlS>Vr~KmXBv%!Dj}O#wDB zkRF&giUGuiCrC333kxHLdUV^6`M6wyVG1sVSZxG40RTttBdZz!)z<(3002ovPDHLk FV1i32+kOB5 diff --git a/textures/segment2/custom_font_normal_char_ce_c.ia4.png b/textures/segment2/custom_font_normal_char_ce_c.ia4.png deleted file mode 100644 index d21f3ee8d8d6ace80552fa1f02ff1155b9be10f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40022jL_t(2Q)6HlS>Vr~KmXBv%!Dj}O#vY> z6a$D2PZkyyMr;N%pbH}Naj_ZEZN+LbP!Y&hY%T--p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40022jL_t(2Q)6HlS>Vr~KmXBv%!Dj}O#vY> z6a$D2PZkyyMr;N%pbH}Nv1$O?$cSz$E`=alvAGZcNFpPv@Ustv00000NkvXXu0mjf DPu|(G diff --git a/textures/segment2/custom_font_normal_char_ce_u.ia4.png b/textures/segment2/custom_font_normal_char_ce_u.ia4.png deleted file mode 100644 index d47d81620624bcd6fa6eea769d764413a0b6ad73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001>fL_t(2Q)6HlS>Vr~KmS2KhS3KX1%zw|Sa1zEHB0@mP2+H6Lzx zCP0V|2I<#y#~PoSO7QRaxW%XHO+@wjf8U>@dC72e@HGmL=$2g)9urQilq|)Y!tHua zTM|AH9+zdndnP#ne$_La{lV!Utmo{!aG!8@-Yo0Y^QfD&7=_ts zsa-NdI3$S^BTSky%b1jiNG(WafBT{p-y}ux=<>H%#TG}FoOlOBElXEJYDRQJK9g0I z`|muR%hpzi|1c3)QFVy@+$!YXm^sSoKy$`{4IK8N8 z=^Z%RfX;hMv$cv8km=84;N=8bQ_yw|O$%OD)pd^VU}jC8=n8iCpjY+>7ry~M?Pw=2 zu)({P~YA$HKyb zQ$31WY??s|aETM88Kwx`5Ef+JAW39r!ua@XM)4Cag+%)uJ-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40025kL_t(2Q)6Hl1tf*QpFe;8!!#hX;f7!p z1j>TMVHl(sSsf#?6L1;8!omVp2a<=eu{s@>0r>n008bbvn)zk8-v9sr07*qoM6N<$ Ef_qKe%>V!Z diff --git a/textures/segment2/custom_font_normal_char_ci_c.ia4.png b/textures/segment2/custom_font_normal_char_ci_c.ia4.png deleted file mode 100644 index e63d85476d5776ef25fc8aa49dbf2dba933398f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40022jL_t(2Q)6Hl1tf*QpFe;8gEYWs49&PC zK;keA(*#q?f^G^nLs(c?7?EuTsey^1=*Q_aJRSuAYM(2R!#3k800000NkvXXu0mjf Di{aar diff --git a/textures/segment2/custom_font_normal_char_ci_g.ia4.png b/textures/segment2/custom_font_normal_char_ci_g.ia4.png deleted file mode 100644 index bb8b4bcad96978412836483e21fb0b05e84f939d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001>fL_t(2Q)6Hl1tf*QpFe;8qibM77Qm(e zBo7itmP2MU5@P@h3kz5sNFz2j+zebUz~@f@2mK?q3W**600000NkvXXu0mjfbHdfj diff --git a/textures/segment2/custom_font_normal_char_ci_u.ia4.png b/textures/segment2/custom_font_normal_char_ci_u.ia4.png deleted file mode 100644 index 73d69c69ab0a961e5fd6f48b37936b89370017a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001{hL_t(2Q)6Hl1tf*QpFe;8gEYWs49&PC zK;kfru89R*0GlB!EG&%3HiOi_#8C9(bQ&Iy0sv2RC!H&e+~EKK002ovPDHLkV1n@E B+uZ;F diff --git a/textures/segment2/custom_font_normal_char_cn_t.ia4.png b/textures/segment2/custom_font_normal_char_cn_t.ia4.png deleted file mode 100644 index c434ca6dbb0dda0f98264fbdbdc7b331c73251cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP) z?ULDpOPmN{Lg*A&AxEBJsg`6`-8WM5&9EvSL;g1FIO52V74ML!1?ifSnif4JUygN^ z`~N)M^w?;*dms!APoDSI4~;wUUG%)KBhULj2LB^mSQY=OZ;PA-#b3RBMuUBw|0kVO_dKYXKx|fhOqj&+AsrZ}= Y0P=l1bvs!#$p8QV07*qoM6N<$g8HZK00000 diff --git a/textures/segment2/custom_font_normal_char_co_a.ia4.png b/textures/segment2/custom_font_normal_char_co_a.ia4.png deleted file mode 100644 index 70eb755dce9f0aba666df4651ca52263820d1cd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmV+d0{#7oP)-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40025kL_t(2Q)6Hl@_-SW5B~i5^B-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4002NqL_t(2Q)6Hl@_-SW5B~i5^B-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4002BmL_t(2Q)6Hl@_-SW5B~i5^BCIkPcyOs=xn$Pa2Ws+$0dj1Cu|Dw`5gdYoGXs9(~_$I0000igP)-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4002TsL_t(2Q)6Hl@_-SW5B~i5^B M07*qoM6N<$f^V+iS^xk5 diff --git a/textures/segment2/custom_font_normal_char_co_u.ia4.png b/textures/segment2/custom_font_normal_char_co_u.ia4.png deleted file mode 100644 index 45fb64d74a0a36e608db43c17aad4d2d5ff39a54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4002HoL_t(2Q)6Hl@_-SW5B~i5^Ba1zEHB0@mP2+H6Lzx zCP0V|2I<#y#~PoSO7QRaxW%XHO+@wjf8U>@dC72e@HGmL=$2g)9urQilq|)Y!tHua zTM|AH9+zdndnP#ne$_La{lV!Utmo{!aG!8@-Yo0Y^QfD&7=_ts zsa-NdI3$S^BTSky%b1jiNG(WafBT{p-y}ux=<>H%#TG}FoOlOBElXEJYDRQJK9g0I z`|muR%hpzi|1c3)QFVy@+$!YXm^sSoKy$`{4IK8N8 z=^Z%RfX;hMv$cv8km=84;N=8bQ_yw|O$%OD)pd^VU}jC8=n8iCpjY+>7ry~M?Pw=2 zu)(OV07*qoM6N<$f)O+5@&Et; diff --git a/textures/segment2/custom_font_normal_char_cos.ia4.png b/textures/segment2/custom_font_normal_char_cos.ia4.png deleted file mode 100644 index 190cab735e27b73e88883135f5ffed52bac9d60f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmV+l0`>igP)a1zEHB0@mP2+H6Lzx zCP0V|2I<#y#~PoSO7QRaxW%XHO+@wjf8U>@dC72e@HGmL=$2g)9urQilq|)Y!tHua zTM|AH9+zdndnP#ne$_La{lV!Utmo{!aG!8@-Yo0Y^QfD&7=_ts zsa-NdI3$S^BTSky%b1jiNG(WafBT{p-y}ux=<>H%#TG}FoOlOBElXEJYDRQJK9g0I z`|muR%hpzi|1c3)QFVy@+$!YXm^sSoKy$`{4IK8N8 z=^Z%RfX;hMv$cv8km=84;N=8bQ_yw|O$%OD)pd^VU}jC8=n8iCpjY+>7ry~M?Pw=2 zu)(&qEFpcP5!0-<)C*txu07a@VpTtWs5dZ)H M07*qoM6N<$g7JIjU;qFB diff --git a/textures/segment2/custom_font_normal_char_cu_a.ia4.png b/textures/segment2/custom_font_normal_char_cu_a.ia4.png deleted file mode 100644 index 3a0f6b6edbec7fc80ed26b64b47e1fd767e686dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40022jL_t(2Q)6Hl@_-SW5B~i5^BVd1rry1E$tm??o%tA~gAR7$w0-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4002EnL_t(2Q)6Hl@_-SW5B~i5^B-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40025kL_t(2Q)6Hl@_-SW5B~i5^BVd1rrx~UQry623qZ`6POe7#14D$kv#_$g|SK#wE0J2~k;Mtvc`2YX_07*qoM6N<$ Ef-O-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4002KpL_t(2Q)6Hl@_-SW5B~i5^BB!E<@CP-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001#bL_t(2Q)6HlS>Vr~KmS3PWM5;`NVGxN v6e5c;B0C40Vipz_6gBA1$14d^Ovq3GST-Z5!hxgA00000NkvXXu0mjfvZ&Y^ diff --git a/textures/segment2/custom_font_normal_char_cy_u.ia4.png b/textures/segment2/custom_font_normal_char_cy_u.ia4.png deleted file mode 100644 index b6fc9e3a0b4a0a030187510ab94687deaa62baa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001>fL_t(2Q)6HlS>Vr~KmW<{F-Rk_W|9md zq?i%eN!S##u&|)00jUS6gNb8EqWcluP;>(UF4G^v&g3c600000NkvXXu0mjfwz}QG diff --git a/textures/segment2/custom_font_normal_char_la_a.ia4.png b/textures/segment2/custom_font_normal_char_la_a.ia4.png deleted file mode 100644 index 075c747fa9de13ade781a76b724e38f931c0ab6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001yaL_t(2Q)6HlUf|E4KmSSf5hJn&YzDBf uu%M_RXaTw*$b5n>Bu6ub^N-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N40028lL_t(2Q)6HlUf|E4KmSSf5hJn&YzDBf zu)x)TE diff --git a/textures/segment2/custom_font_normal_char_la_c.ia4.png b/textures/segment2/custom_font_normal_char_la_c.ia4.png deleted file mode 100644 index 195b1f01ad1479c9d8d0ca34b8092dbaeb108f08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001^gL_t(2Q)6HlUf|E4KmSSf5hJn&YzDBf zuz=No-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001>fL_t(2Q)6HlUf|E4KmSSf5hJn&YzDBf zu%M_RXaTw*Fg{VP!=)K!D>g$goQJH480P~3g#aU{8#cAS00000NkvXXu0mjfI-A+s diff --git a/textures/segment2/custom_font_normal_char_la_t.ia4.png b/textures/segment2/custom_font_normal_char_la_t.ia4.png deleted file mode 100644 index bd4c6ad34d37b1022d3a4fa7c7ce09018fd3ed12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001~iL_t(2Q)6HlUf|E4KmSSf5hJn&YzDBf zu)x)T-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001{hL_t(2Q)6HlUf|E4KmSSf5hJn&YzDBf zuz=NoIguDA0|20EBefoDQ+xmb002ovPDHLkV1iJ* B+*tqs diff --git a/textures/segment2/custom_font_normal_char_lae.ia4.png b/textures/segment2/custom_font_normal_char_lae.ia4.png deleted file mode 100644 index 991770e44f8e5d76505bc7cc4f5c70788aa4795f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)a1zEHB0@mP2+H6Lzx zCP0V|2I<#y#~PoSO7QRaxW%XHO+@wjf8U>@dC72e@HGmL=$2g)9urQilq|)Y!tHua zTM|AH9+zdndnP#ne$_La{lV!Utmo{!aG!8@-Yo0Y^QfD&7=_ts zsa-NdI3$S^BTSky%b1jiNG(WafBT{p-y}ux=<>H%#TG}FoOlOBElXEJYDRQJK9g0I z`|muR%hpzi|1c3)QFVy@+$!YXm^sSoKy$`{4IK8N8 z=^Z%RfX;hMv$cv8km=84;N=8bQ_yw|O$%OD)pd^VU}jC8=n8iCpjY+>7ry~M?Pw=2 zu)(-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001*dL_t(2Q)6Hl1sEal=g*)2FhOKC!Jq;u x#-@QNLtu)~6%(VG5#4FXnpjv^FyztI0{~R{BbxS9lEDA~002ovPDHLkV1lSr+q3`x diff --git a/textures/segment2/custom_font_normal_char_le_a.ia4.png b/textures/segment2/custom_font_normal_char_le_a.ia4.png deleted file mode 100644 index 91628110ca6e0b43bfb5f7cb7ee93311d3895206..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001yaL_t(2Q)6Hl1vo?C&!0d4L71cMNYU~~hB(aeZ$60#;178VS7boBsg^(%njYs+x}0000-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001^gL_t(2Q)6Hl1vo?C&!0d4K^Ue0nT=Ny zND`Muf`-5ppwsAvBD;VQ-8sm%u&}UT$fK(V0LBt8bJzr@8vp-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001&cL_t(2Q)6Hl1vo?C&!0d4L71ck diff --git a/textures/segment2/custom_font_normal_char_le_u.ia4.png b/textures/segment2/custom_font_normal_char_le_u.ia4.png deleted file mode 100644 index 0b7533508cf296fe653fdad4490fb19989e7941f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001{hL_t(2Q)6Hl1vo?C&!0d4K^Ue0nT=Ny zNRkwdO!y)JWDpAr3nRLr$a=t%$N<@Pm}Y#I000n_BdNF-v#kIC002ovPDHLkV1k_S B+3o-U diff --git a/textures/segment2/custom_font_normal_char_leth.ia4.png b/textures/segment2/custom_font_normal_char_leth.ia4.png deleted file mode 100644 index 08c7c1b28593c54c6f0e0e1992777799a04f7991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)a1zEHB0@mP2+H6Lzx zCP0V|2I<#y#~PoSO7QRaxW%XHO+@wjf8U>@dC72e@HGmL=$2g)9urQilq|)Y!tHua zTM|AH9+zdndnP#ne$_La{lV!Utmo{!aG!8@-Yo0Y^QfD&7=_ts zsa-NdI3$S^BTSky%b1jiNG(WafBT{p-y}ux=<>H%#TG}FoOlOBElXEJYDRQJK9g0I z`|muR%hpzi|1c3)QFVy@+$!YXm^sSoKy$`{4IK8N8 z=^Z%RfX;hMv$cv8km=84;N=8bQ_yw|O$%OD)pd^VU}jC8=n8iCpjY+>7ry~M?Pw=2 zu)(TLGb6#pZ~amgoT9# zMJ>*tLpKD*N2jqGfJ-w>F+LZ<4FoBIVQk(*Hv|C0;WK87kqJ!z0000-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001sYL_t(2Q)6Hl1=J6LKY#xG$7L!$Ij|md s1t30543}m`blZ>>vaqmV$fK(V0ONogv`#*n5dZ)H07*qoM6N<$f*Ix46#xJL diff --git a/textures/segment2/custom_font_normal_char_li_c.ia4.png b/textures/segment2/custom_font_normal_char_li_c.ia4.png deleted file mode 100644 index de594a946bc20e21603bf716ad5f29b24a5533ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001aSL_t(2Q)6Hl1=J6LKY#xG$7U)naTK-a mia>m1F`^AY*9fu&mu3KZNhf~|G>51F0000-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001OOL_t(2Q)6Hl1=J6LKY#xGC)-qX%^*HZ ijA(;lny_iWCI$c>?jwxbM@@PF0000-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001dTL_t(2Q)6Hl1=J6LKY#xG$7U)naTK-a nia>m#G$NY<(}c}1Y%T);FnlA78nP@+00000NkvXXu0mjf<5JWr diff --git a/textures/segment2/custom_font_normal_char_ln_t.ia4.png b/textures/segment2/custom_font_normal_char_ln_t.ia4.png deleted file mode 100644 index 58b136d7d5ccc53f82a37d40988cd316a3a6c3d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmV z?ULDpOPmN{Lg*A&AxEBJsg`6`-8WM5&9EvSL;g1FIO52V74ML!1?ifSnif4JUygN^ z`~N)M^w?;*dms!APoDSI4~;wUUG%)KBhULj2LB^mSQY=OZ;V!Z diff --git a/textures/segment2/custom_font_normal_char_lo_a.ia4.png b/textures/segment2/custom_font_normal_char_lo_a.ia4.png deleted file mode 100644 index 68e0e525a15395b66e48b05e5c2a6da28d33aa9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001vZL_t(2Q)6Hl1&r8&;Lo2w|6$@REG$^n t;0!us%^*d{d~`VsL&(vL;XG2E4*;6xAGP>>b2-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001yaL_t(2Q)6Hl1z1Di&!0d4VHlpAsfQN!h#`>t{wmmb1Q(9qKY~I0000DMm+ diff --git a/textures/segment2/custom_font_normal_char_lo_g.ia4.png b/textures/segment2/custom_font_normal_char_lo_g.ia4.png deleted file mode 100644 index f61de82acbe2f41aae66fabc1152f990f1b9b986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 507 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001*dL_t(2Q)6Hl1&r8&;Lo2w|6$@REG$^n x;0!us%^*cEKDszo18`}EDaK|9hVw{uJ^-5LAGJXlMw|cu002ovPDHLkV1kmW*`NRb diff --git a/textures/segment2/custom_font_normal_char_lo_t.ia4.png b/textures/segment2/custom_font_normal_char_lo_t.ia4.png deleted file mode 100644 index 3f64d4b7c5fb855950a6aab7b5aab2975459f428..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001aSL_t(2Q)6Hl1z1Di&!0d4VHjBfNQ_{R mp(}#%DbftHm1sjqaXtW*VK+;iyrK{Q0000-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001&cL_t(2Q)6Hl1z1Di&!0d4VHla1zEHB0@mP2+H6Lzx zCP0V|2I<#y#~PoSO7QRaxW%XHO+@wjf8U>@dC72e@HGmL=$2g)9urQilq|)Y!tHua zTM|AH9+zdndnP#ne$_La{lV!Utmo{!aG!8@-Yo0Y^QfD&7=_ts zsa-NdI3$S^BTSky%b1jiNG(WafBT{p-y}ux=<>H%#TG}FoOlOBElXEJYDRQJK9g0I z`|muR%hpzi|1c3)QFVy@+$!YXm^sSoKy$`{4IK8N8 z=^Z%RfX;hMv$cv8km=84;N=8bQ_yw|O$%OD)pd^VU}jC8=n8iCpjY+>7ry~M?Pw=2 zu)(a1zEHB0@mP2+H6Lzx zCP0V|2I<#y#~PoSO7QRaxW%XHO+@wjf8U>@dC72e@HGmL=$2g)9urQilq|)Y!tHua zTM|AH9+zdndnP#ne$_La{lV!Utmo{!aG!8@-Yo0Y^QfD&7=_ts zsa-NdI3$S^BTSky%b1jiNG(WafBT{p-y}ux=<>H%#TG}FoOlOBElXEJYDRQJK9g0I z`|muR%hpzi|1c3)QFVy@+$!YXm^sSoKy$`{4IK8N8 z=^Z%RfX;hMv$cv8km=84;N=8bQ_yw|O$%OD)pd^VU}jC8=n8iCpjY+>7ry~M?Pw=2 zu)(zLGb6#pZ~~WEG#S- vYH$V{vSt_?-9U8BOxR2VX(HBUioE~;4PqDGa(f);00000NkvXXu0mjfC4$_h diff --git a/textures/segment2/custom_font_normal_char_lu_a.ia4.png b/textures/segment2/custom_font_normal_char_lu_a.ia4.png deleted file mode 100644 index 96db79a63a1474fe38fcf39305e445184c9d64ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 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 diff --git a/textures/segment2/custom_font_normal_char_punc_sp_qu.ia4.png b/textures/segment2/custom_font_normal_char_punc_sp_qu.ia4.png deleted file mode 100644 index 028c61131ace8550436bf66539b45600f857243f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmV-p*Gkt){GvEh;t$1kJT?V>)iac-V6B4ntZfPp2!~B0um7D#-J~^@o1c@~ zBeNHW7}G=up^;}51D7GGImxWLZ}`_Y!`CAmQ#gQQ^-a%3G(lsSDEqY2mgM!Na zf1XZybfnb1H3Id|p7-7d!Cffsc;5H1=M_&N@C28+vVTo-8vhi1r>un!p?wq1ugaRX z2Nzq={b(iac{sEQRXW4f_ zJpTXy010qNS#tmY3labT3lag+-G2N4001>fL_t(2Q)6HlUf|E4KmS3PEMMW%h|gdq zkZm9ZEG#UH$TpMY8g$!9@dn&hWKHO1&00000NkvXXu0mjfrhVQI diff --git a/textures/segment2/custom_font_normal_char_ss.ia4.png b/textures/segment2/custom_font_normal_char_ss.ia4.png deleted file mode 100644 index f942adc13781563f13cce8771416ace5574f4212..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmV+k0`~ohP)a1zEHB0@mP2+H6Lzx zCP0V|2I<#y#~PoSO7QRaxW%XHO+@wjf8U>@dC72e@HGmL=$2g)9urQilq|)Y!tHua zTM|AH9+zdndnP#ne$_La{lV!Utmo{!aG!8@-Yo0Y^QfD&7=_ts zsa-NdI3$S^BTSky%b1jiNG(WafBT{p-y}ux=<>H%#TG}FoOlOBElXEJYDRQJK9g0I z`|muR%hpzi|1c3)QFVy@+$!YXm^sSoKy$`{4IK8N8 z=^Z%RfX;hMv$cv8km=84;N=8bQ_yw|O$%OD)pd^VU}jC8=n8iCpjY+>7ry~M?Pw=2 zu)(