From 468887a6f97c08137784443bd5841ec826e793ba Mon Sep 17 00:00:00 2001 From: Garrett Date: Fri, 28 Aug 2020 23:36:56 -0400 Subject: [PATCH 1/4] Check for zero rumble setting before allowing rumble Fixes controllers which don't check for rumble_strength and have constant rumble from rumbling even when set to 0 in the config. --- src/pc/controller/controller_entry_point.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/pc/controller/controller_entry_point.c b/src/pc/controller/controller_entry_point.c index d5403f938e..bc5e9fe6c5 100644 --- a/src/pc/controller/controller_entry_point.c +++ b/src/pc/controller/controller_entry_point.c @@ -33,12 +33,16 @@ s32 osContInit(UNUSED OSMesgQueue *mq, u8 *controllerBits, UNUSED OSContStatus * s32 osMotorStart(UNUSED void *pfs) { // Since rumble stops by osMotorStop, its duration is not nessecary. // Set it to 5 seconds and hope osMotorStop() is called in time. - controller_rumble_play(configRumbleStrength / 100.0f, 5.0f); + if (configRumbleStrength>0){ + controller_rumble_play(configRumbleStrength / 100.0f, 5.0f); + } return 0; } s32 osMotorStop(UNUSED void *pfs) { - controller_rumble_stop(); + if (configRumbleStrength>0){ + controller_rumble_stop(); + } return 0; } From 420d82ce8c9c9d0746e4be6ec33f2f4d358484ac Mon Sep 17 00:00:00 2001 From: fgsfds Date: Sun, 30 Aug 2020 15:39:41 +0300 Subject: [PATCH 2/4] fix spaces --- src/pc/controller/controller_entry_point.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/pc/controller/controller_entry_point.c b/src/pc/controller/controller_entry_point.c index bc5e9fe6c5..f1eeeedcf6 100644 --- a/src/pc/controller/controller_entry_point.c +++ b/src/pc/controller/controller_entry_point.c @@ -33,16 +33,14 @@ s32 osContInit(UNUSED OSMesgQueue *mq, u8 *controllerBits, UNUSED OSContStatus * s32 osMotorStart(UNUSED void *pfs) { // Since rumble stops by osMotorStop, its duration is not nessecary. // Set it to 5 seconds and hope osMotorStop() is called in time. - if (configRumbleStrength>0){ + if (configRumbleStrength) controller_rumble_play(configRumbleStrength / 100.0f, 5.0f); - } return 0; } s32 osMotorStop(UNUSED void *pfs) { - if (configRumbleStrength>0){ + if (configRumbleStrength) controller_rumble_stop(); - } return 0; } From d88bd76041ff0f30412260a5662c57bdac46309f Mon Sep 17 00:00:00 2001 From: Victor Diego Alejandro Diaz Urbaneja <49420637+sodomon2@users.noreply.github.com> Date: Wed, 9 Sep 2020 01:25:51 -0400 Subject: [PATCH 3/4] Update README_es_ES.md --- README_es_ES.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README_es_ES.md b/README_es_ES.md index 44a34a1c5f..1382d88be5 100644 --- a/README_es_ES.md +++ b/README_es_ES.md @@ -155,6 +155,11 @@ sudo xbps-install -S base-devel python3 audiofile-devel SDL2-devel glew-devel sudo xbps-install -S base-devel python3 audiofile-devel-32bit SDL2-devel-32bit glew-devel-32bit ``` +##### Alpine Linux - (compilando para 32 bits y 64 bits) +``` +sudo apk add build-base python3 audiofile-dev sdl2-dev glew-dev +``` + #### Compila el ejecutable. Ejecuta `make` para compilar (por defecto `VERSION=us`) From d1606bc89785b9c09508080e08ccd97210c05f90 Mon Sep 17 00:00:00 2001 From: AdyaGD <63500857+AdyaGD@users.noreply.github.com> Date: Sun, 6 Dec 2020 21:34:01 +0100 Subject: [PATCH 4/4] Add files via upload --- bin/segment2.c | 2116 ++++-------- src/game/ingame_menu.c | 553 +--- src/game/options_menu.c | 193 +- src/text/txtconv.c | 218 ++ texts/AR_ar.json | 3425 ++++++++++++++++++++ textures/special/Arabic/HUD_ain_mid.png | Bin 0 -> 511 bytes textures/special/Arabic/HUD_alif.png | Bin 0 -> 402 bytes textures/special/Arabic/HUD_ba_mid.png | Bin 0 -> 399 bytes textures/special/Arabic/HUD_lam.png | Bin 0 -> 355 bytes textures/special/Arabic/HUD_lam_mid.png | Bin 0 -> 424 bytes textures/special/Arabic/HUD_rain_mid.png | Bin 0 -> 537 bytes textures/special/Arabic/HUD_ta_marbout.png | Bin 0 -> 521 bytes textures/special/Arabic/ain_mid.png | Bin 0 -> 193 bytes textures/special/Arabic/alif.png | Bin 0 -> 174 bytes textures/special/Arabic/alif_h.png | Bin 0 -> 161 bytes textures/special/Arabic/ba_mid.png | Bin 0 -> 179 bytes textures/special/Arabic/ba_s.png | Bin 0 -> 153 bytes textures/special/Arabic/ha_mid.png | Bin 0 -> 163 bytes textures/special/Arabic/la.png | Bin 0 -> 182 bytes textures/special/Arabic/lam_mid.png | Bin 0 -> 154 bytes textures/special/Arabic/lam_s.png | Bin 0 -> 159 bytes textures/special/Arabic/ra.png | Bin 0 -> 185 bytes textures/special/Arabic/ra_e.png | Bin 0 -> 162 bytes textures/special/Arabic/rain_mid.png | Bin 0 -> 156 bytes textures/special/Arabic/ta_marbout.png | Bin 0 -> 181 bytes textures/special/Arabic/ya_mid.png | Bin 0 -> 185 bytes textures/special/Arabic/zay.png | Bin 0 -> 189 bytes 27 files changed, 4378 insertions(+), 2127 deletions(-) create mode 100644 src/text/txtconv.c create mode 100644 texts/AR_ar.json create mode 100644 textures/special/Arabic/HUD_ain_mid.png create mode 100644 textures/special/Arabic/HUD_alif.png create mode 100644 textures/special/Arabic/HUD_ba_mid.png create mode 100644 textures/special/Arabic/HUD_lam.png create mode 100644 textures/special/Arabic/HUD_lam_mid.png create mode 100644 textures/special/Arabic/HUD_rain_mid.png create mode 100644 textures/special/Arabic/HUD_ta_marbout.png create mode 100644 textures/special/Arabic/ain_mid.png create mode 100644 textures/special/Arabic/alif.png create mode 100644 textures/special/Arabic/alif_h.png create mode 100644 textures/special/Arabic/ba_mid.png create mode 100644 textures/special/Arabic/ba_s.png create mode 100644 textures/special/Arabic/ha_mid.png create mode 100644 textures/special/Arabic/la.png create mode 100644 textures/special/Arabic/lam_mid.png create mode 100644 textures/special/Arabic/lam_s.png create mode 100644 textures/special/Arabic/ra.png create mode 100644 textures/special/Arabic/ra_e.png create mode 100644 textures/special/Arabic/rain_mid.png create mode 100644 textures/special/Arabic/ta_marbout.png create mode 100644 textures/special/Arabic/ya_mid.png create mode 100644 textures/special/Arabic/zay.png diff --git a/bin/segment2.c b/bin/segment2.c index 5d5398aa87..ccde963b3a 100644 --- a/bin/segment2.c +++ b/bin/segment2.c @@ -6,1835 +6,969 @@ // SM64 (US/JP/EU) Segment 02 -ALIGNED8 static const u8 texture_hud_char_0[] = { -#include "textures/segment2/segment2.00000.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_0[] = "textures/segment2/segment2.00000.rgba16"; -ALIGNED8 static const u8 texture_hud_char_1[] = { -#include "textures/segment2/segment2.00200.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_1[] = "textures/segment2/segment2.00200.rgba16"; -ALIGNED8 static const u8 texture_hud_char_2[] = { -#include "textures/segment2/segment2.00400.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_2[] = "textures/segment2/segment2.00400.rgba16"; -ALIGNED8 static const u8 texture_hud_char_3[] = { -#include "textures/segment2/segment2.00600.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_3[] = "textures/segment2/segment2.00600.rgba16"; -ALIGNED8 static const u8 texture_hud_char_4[] = { -#include "textures/segment2/segment2.00800.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_4[] = "textures/segment2/segment2.00800.rgba16"; -ALIGNED8 static const u8 texture_hud_char_5[] = { -#include "textures/segment2/segment2.00A00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_5[] = "textures/segment2/segment2.00A00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_6[] = { -#include "textures/segment2/segment2.00C00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_6[] = "textures/segment2/segment2.00C00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_7[] = { -#include "textures/segment2/segment2.00E00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_7[] = "textures/segment2/segment2.00E00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_8[] = { -#include "textures/segment2/segment2.01000.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_8[] = "textures/segment2/segment2.01000.rgba16"; -ALIGNED8 static const u8 texture_hud_char_9[] = { -#include "textures/segment2/segment2.01200.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_9[] = "textures/segment2/segment2.01200.rgba16"; -ALIGNED8 static const u8 texture_hud_char_A[] = { -#include "textures/segment2/segment2.01400.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_A[] = "textures/segment2/segment2.01400.rgba16"; -ALIGNED8 static const u8 texture_hud_char_B[] = { -#include "textures/segment2/segment2.01600.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_B[] = "textures/segment2/segment2.01600.rgba16"; -ALIGNED8 static const u8 texture_hud_char_C[] = { -#include "textures/segment2/segment2.01800.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_C[] = "textures/segment2/segment2.01800.rgba16"; -ALIGNED8 static const u8 texture_hud_char_D[] = { -#include "textures/segment2/segment2.01A00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_D[] = "textures/segment2/segment2.01A00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_E[] = { -#include "textures/segment2/segment2.01C00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_E[] = "textures/segment2/segment2.01C00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_F[] = { -#include "textures/segment2/segment2.01E00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_F[] = "textures/segment2/segment2.01E00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_G[] = { -#include "textures/segment2/segment2.02000.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_G[] = "textures/segment2/segment2.02000.rgba16"; -ALIGNED8 static const u8 texture_hud_char_H[] = { -#include "textures/segment2/segment2.02200.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_H[] = "textures/segment2/segment2.02200.rgba16"; -ALIGNED8 static const u8 texture_hud_char_I[] = { -#include "textures/segment2/segment2.02400.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_I[] = "textures/segment2/segment2.02400.rgba16"; #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const u8 texture_hud_char_J[] = { -#include "textures/segment2/segment2.02600.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_J[] = "textures/segment2/segment2.02600.rgba16"; #endif -ALIGNED8 static const u8 texture_hud_char_K[] = { -#include "textures/segment2/segment2.02800.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_K[] = "textures/segment2/segment2.02800.rgba16"; -ALIGNED8 static const u8 texture_hud_char_L[] = { -#include "textures/segment2/segment2.02A00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_L[] = "textures/segment2/segment2.02A00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_M[] = { -#include "textures/segment2/segment2.02C00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_M[] = "textures/segment2/segment2.02C00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_N[] = { -#include "textures/segment2/segment2.02E00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_N[] = "textures/segment2/segment2.02E00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_O[] = { -#include "textures/segment2/segment2.03000.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_O[] = "textures/segment2/segment2.03000.rgba16"; -ALIGNED8 static const u8 texture_hud_char_P[] = { -#include "textures/segment2/segment2.03200.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_P[] = "textures/segment2/segment2.03200.rgba16"; #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const u8 texture_hud_char_Q[] = { -#include "textures/segment2/segment2.03400.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_Q[] = "textures/segment2/segment2.03400.rgba16"; #endif -ALIGNED8 static const u8 texture_hud_char_R[] = { -#include "textures/segment2/segment2.03600.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_R[] = "textures/segment2/segment2.03600.rgba16"; -ALIGNED8 static const u8 texture_hud_char_S[] = { -#include "textures/segment2/segment2.03800.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_S[] = "textures/segment2/segment2.03800.rgba16"; -ALIGNED8 static const u8 texture_hud_char_T[] = { -#include "textures/segment2/segment2.03A00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_T[] = "textures/segment2/segment2.03A00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_U[] = { -#include "textures/segment2/segment2.03C00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_U[] = "textures/segment2/segment2.03C00.rgba16"; #if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH) -ALIGNED8 static const u8 texture_hud_char_V[] = { -#include "textures/segment2/segment2.03E00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_V[] = "textures/segment2/segment2.03E00.rgba16"; #endif -ALIGNED8 static const u8 texture_hud_char_W[] = { -#include "textures/segment2/segment2.04000.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_W[] = "textures/segment2/segment2.04000.rgba16"; #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const u8 texture_hud_char_X[] = { -#include "textures/segment2/segment2.04200.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_X[] = "textures/segment2/segment2.04200.rgba16"; #endif -ALIGNED8 static const u8 texture_hud_char_Y[] = { -#include "textures/segment2/segment2.04400.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_Y[] = "textures/segment2/segment2.04400.rgba16"; #if defined(VERSION_JP) || defined(VERSION_EU) || defined(VERSION_SH) -ALIGNED8 static const u8 texture_hud_char_Z[] = { -#include "textures/segment2/segment2.04600.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_Z[] = "textures/segment2/segment2.04600.rgba16"; #endif -ALIGNED8 static const u8 texture_hud_char_apostrophe[] = { -#include "textures/segment2/segment2.04800.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_apostrophe[] = "textures/segment2/segment2.04800.rgba16"; -ALIGNED8 static const u8 texture_hud_char_double_quote[] = { -#include "textures/segment2/segment2.04A00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_double_quote[] = "textures/segment2/segment2.04A00.rgba16"; #ifdef VERSION_EU -ALIGNED8 static const u8 texture_hud_char_umlaut[] = { -#include "textures/segment2/segment2.umlaut.rgba16.inc.c"// EU ¨ -}; +ALIGNED8 static const u8 texture_hud_char_umlaut[] = "textures/segment2/segment2.umlaut.rgba16"// EU ¨; #endif #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const u8 texture_hud_char_exclamation[] = { -#include "textures/segment2/segment2.04C00.rgba16.inc.c"// JP ! -}; +ALIGNED8 static const u8 texture_hud_char_exclamation[] = "textures/segment2/segment2.04C00.rgba16"// JP !; -ALIGNED8 static const u8 texture_hud_char_double_exclamation[] = { -#include "textures/segment2/segment2.04E00.rgba16.inc.c"// JP !! -}; +ALIGNED8 static const u8 texture_hud_char_double_exclamation[] = "textures/segment2/segment2.04E00.rgba16"// JP !!; -ALIGNED8 static const u8 texture_hud_char_question[] = { -#include "textures/segment2/segment2.05000.rgba16.inc.c"// JP ? -}; +ALIGNED8 static const u8 texture_hud_char_question[] = "textures/segment2/segment2.05000.rgba16"// JP ?; -ALIGNED8 static const u8 texture_hud_char_ampersand[] = { -#include "textures/segment2/segment2.05200.rgba16.inc.c"// JP & -}; +ALIGNED8 static const u8 texture_hud_char_ampersand[] = "textures/segment2/segment2.05200.rgba16"// JP &; -ALIGNED8 static const u8 texture_hud_char_percent[] = { -#include "textures/segment2/segment2.05400.rgba16.inc.c"// JP % -}; +ALIGNED8 static const u8 texture_hud_char_percent[] = "textures/segment2/segment2.05400.rgba16"// JP %; #endif -ALIGNED8 static const u8 texture_hud_char_multiply[] = { -#include "textures/segment2/segment2.05600.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_multiply[] = "textures/segment2/segment2.05600.rgba16"; -ALIGNED8 static const u8 texture_hud_char_coin[] = { -#include "textures/segment2/segment2.05800.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_coin[] = "textures/segment2/segment2.05800.rgba16"; -ALIGNED8 static const u8 texture_hud_char_mario_head[] = { -#include "textures/segment2/segment2.05A00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_mario_head[] = "textures/segment2/segment2.05A00.rgba16"; -ALIGNED8 static const u8 texture_hud_char_star[] = { -#include "textures/segment2/segment2.05C00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_star[] = "textures/segment2/segment2.05C00.rgba16"; #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const u8 texture_hud_char_decimal_point[] = { -#include "textures/segment2/segment2.05E00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_decimal_point[] = "textures/segment2/segment2.05E00.rgba16"; #endif #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const u8 texture_hud_char_beta_key[] = { -#include "textures/segment2/segment2.06000.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_hud_char_beta_key[] = "textures/segment2/segment2.06000.rgba16"; #endif -ALIGNED8 static const u8 texture_credits_char_3[] = { -#include "textures/segment2/segment2.06200.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_3[] = "textures/segment2/segment2.06200.rgba16"; -ALIGNED8 static const u8 texture_credits_char_4[] = { -#include "textures/segment2/segment2.06280.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_4[] = "textures/segment2/segment2.06280.rgba16"; -ALIGNED8 static const u8 texture_credits_char_6[] = { -#include "textures/segment2/segment2.06300.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_6[] = "textures/segment2/segment2.06300.rgba16"; -ALIGNED8 static const u8 texture_credits_char_A[] = { -#include "textures/segment2/segment2.06380.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_A[] = "textures/segment2/segment2.06380.rgba16"; -ALIGNED8 static const u8 texture_credits_char_B[] = { -#include "textures/segment2/segment2.06400.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_B[] = "textures/segment2/segment2.06400.rgba16"; -ALIGNED8 static const u8 texture_credits_char_C[] = { -#include "textures/segment2/segment2.06480.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_C[] = "textures/segment2/segment2.06480.rgba16"; -ALIGNED8 static const u8 texture_credits_char_D[] = { -#include "textures/segment2/segment2.06500.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_D[] = "textures/segment2/segment2.06500.rgba16"; -ALIGNED8 static const u8 texture_credits_char_E[] = { -#include "textures/segment2/segment2.06580.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_E[] = "textures/segment2/segment2.06580.rgba16"; -ALIGNED8 static const u8 texture_credits_char_F[] = { -#include "textures/segment2/segment2.06600.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_F[] = "textures/segment2/segment2.06600.rgba16"; -ALIGNED8 static const u8 texture_credits_char_G[] = { -#include "textures/segment2/segment2.06680.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_G[] = "textures/segment2/segment2.06680.rgba16"; -ALIGNED8 static const u8 texture_credits_char_H[] = { -#include "textures/segment2/segment2.06700.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_H[] = "textures/segment2/segment2.06700.rgba16"; -ALIGNED8 static const u8 texture_credits_char_I[] = { -#include "textures/segment2/segment2.06780.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_I[] = "textures/segment2/segment2.06780.rgba16"; -ALIGNED8 static const u8 texture_credits_char_J[] = { -#include "textures/segment2/segment2.06800.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_J[] = "textures/segment2/segment2.06800.rgba16"; -ALIGNED8 static const u8 texture_credits_char_K[] = { -#include "textures/segment2/segment2.06880.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_K[] = "textures/segment2/segment2.06880.rgba16"; -ALIGNED8 static const u8 texture_credits_char_L[] = { -#include "textures/segment2/segment2.06900.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_L[] = "textures/segment2/segment2.06900.rgba16"; -ALIGNED8 static const u8 texture_credits_char_M[] = { -#include "textures/segment2/segment2.06980.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_M[] = "textures/segment2/segment2.06980.rgba16"; -ALIGNED8 static const u8 texture_credits_char_N[] = { -#include "textures/segment2/segment2.06A00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_N[] = "textures/segment2/segment2.06A00.rgba16"; -ALIGNED8 static const u8 texture_credits_char_O[] = { -#include "textures/segment2/segment2.06A80.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_O[] = "textures/segment2/segment2.06A80.rgba16"; -ALIGNED8 static const u8 texture_credits_char_P[] = { -#include "textures/segment2/segment2.06B00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_P[] = "textures/segment2/segment2.06B00.rgba16"; -ALIGNED8 static const u8 texture_credits_char_Q[] = { -#include "textures/segment2/segment2.06B80.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_Q[] = "textures/segment2/segment2.06B80.rgba16"; -ALIGNED8 static const u8 texture_credits_char_R[] = { -#include "textures/segment2/segment2.06C00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_R[] = "textures/segment2/segment2.06C00.rgba16"; -ALIGNED8 static const u8 texture_credits_char_S[] = { -#include "textures/segment2/segment2.06C80.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_S[] = "textures/segment2/segment2.06C80.rgba16"; -ALIGNED8 static const u8 texture_credits_char_T[] = { -#include "textures/segment2/segment2.06D00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_T[] = "textures/segment2/segment2.06D00.rgba16"; -ALIGNED8 static const u8 texture_credits_char_U[] = { -#include "textures/segment2/segment2.06D80.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_U[] = "textures/segment2/segment2.06D80.rgba16"; -ALIGNED8 static const u8 texture_credits_char_V[] = { -#include "textures/segment2/segment2.06E00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_V[] = "textures/segment2/segment2.06E00.rgba16"; -ALIGNED8 static const u8 texture_credits_char_W[] = { -#include "textures/segment2/segment2.06E80.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_W[] = "textures/segment2/segment2.06E80.rgba16"; -ALIGNED8 static const u8 texture_credits_char_X[] = { -#include "textures/segment2/segment2.06F00.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_X[] = "textures/segment2/segment2.06F00.rgba16"; -ALIGNED8 static const u8 texture_credits_char_Y[] = { -#include "textures/segment2/segment2.06F80.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_Y[] = "textures/segment2/segment2.06F80.rgba16"; -ALIGNED8 static const u8 texture_credits_char_Z[] = { -#include "textures/segment2/segment2.07000.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_Z[] = "textures/segment2/segment2.07000.rgba16"; -ALIGNED8 static const u8 texture_credits_char_period[] = { -#include "textures/segment2/segment2.07080.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_credits_char_period[] = "textures/segment2/segment2.07080.rgba16"; // JP Small Font #if defined(VERSION_JP) || defined(VERSION_SH) -ALIGNED8 static const u8 texture_font_char_jp_0[] = { -#include "textures/segment2/segment2.07100.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_0[] = "textures/segment2/segment2.07100.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_1[] = { -#include "textures/segment2/segment2.07110.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_1[] = "textures/segment2/segment2.07110.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_2[] = { -#include "textures/segment2/segment2.07120.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_2[] = "textures/segment2/segment2.07120.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_3[] = { -#include "textures/segment2/segment2.07130.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_3[] = "textures/segment2/segment2.07130.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_4[] = { -#include "textures/segment2/segment2.07140.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_4[] = "textures/segment2/segment2.07140.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_5[] = { -#include "textures/segment2/segment2.07150.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_5[] = "textures/segment2/segment2.07150.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_6[] = { -#include "textures/segment2/segment2.07160.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_6[] = "textures/segment2/segment2.07160.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_7[] = { -#include "textures/segment2/segment2.07170.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_7[] = "textures/segment2/segment2.07170.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_8[] = { -#include "textures/segment2/segment2.07180.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_8[] = "textures/segment2/segment2.07180.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_9[] = { -#include "textures/segment2/segment2.07190.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_9[] = "textures/segment2/segment2.07190.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_A[] = { -#include "textures/segment2/segment2.071A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_A[] = "textures/segment2/segment2.071A0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_B[] = { -#include "textures/segment2/segment2.071B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_B[] = "textures/segment2/segment2.071B0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_C[] = { -#include "textures/segment2/segment2.071C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_C[] = "textures/segment2/segment2.071C0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_D[] = { -#include "textures/segment2/segment2.071D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_D[] = "textures/segment2/segment2.071D0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_E[] = { -#include "textures/segment2/segment2.071E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_E[] = "textures/segment2/segment2.071E0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_F[] = { -#include "textures/segment2/segment2.071F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_F[] = "textures/segment2/segment2.071F0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_G[] = { -#include "textures/segment2/segment2.07200.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_G[] = "textures/segment2/segment2.07200.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_H[] = { -#include "textures/segment2/segment2.07210.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_H[] = "textures/segment2/segment2.07210.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_I[] = { -#include "textures/segment2/segment2.07220.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_I[] = "textures/segment2/segment2.07220.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_J[] = { -#include "textures/segment2/segment2.07230.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_J[] = "textures/segment2/segment2.07230.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_K[] = { -#include "textures/segment2/segment2.07240.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_K[] = "textures/segment2/segment2.07240.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_L[] = { -#include "textures/segment2/segment2.07250.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_L[] = "textures/segment2/segment2.07250.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_M[] = { -#include "textures/segment2/segment2.07260.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_M[] = "textures/segment2/segment2.07260.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_N[] = { -#include "textures/segment2/segment2.07270.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_N[] = "textures/segment2/segment2.07270.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_O[] = { -#include "textures/segment2/segment2.07280.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_O[] = "textures/segment2/segment2.07280.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_P[] = { -#include "textures/segment2/segment2.07290.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_P[] = "textures/segment2/segment2.07290.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_Q[] = { -#include "textures/segment2/segment2.072A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_Q[] = "textures/segment2/segment2.072A0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_R[] = { -#include "textures/segment2/segment2.072B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_R[] = "textures/segment2/segment2.072B0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_S[] = { -#include "textures/segment2/segment2.072C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_S[] = "textures/segment2/segment2.072C0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_T[] = { -#include "textures/segment2/segment2.072D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_T[] = "textures/segment2/segment2.072D0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_U[] = { -#include "textures/segment2/segment2.072E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_U[] = "textures/segment2/segment2.072E0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_V[] = { -#include "textures/segment2/segment2.072F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_V[] = "textures/segment2/segment2.072F0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_W[] = { -#include "textures/segment2/segment2.07300.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_W[] = "textures/segment2/segment2.07300.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_X[] = { -#include "textures/segment2/segment2.07310.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_X[] = "textures/segment2/segment2.07310.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_Y[] = { -#include "textures/segment2/segment2.07320.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_Y[] = "textures/segment2/segment2.07320.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_Z[] = { -#include "textures/segment2/segment2.07330.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_Z[] = "textures/segment2/segment2.07330.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_long_vowel[] = { -#include "textures/segment2/segment2.07340.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_long_vowel[] = "textures/segment2/segment2.07340.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_exclamation[] = { -#include "textures/segment2/segment2.07350.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_exclamation[] = "textures/segment2/segment2.07350.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_dakuten[] = { -#include "textures/segment2/segment2.07360.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_dakuten[] = "textures/segment2/segment2.07360.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_handakuten[] = { -#include "textures/segment2/segment2.07370.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_handakuten[] = "textures/segment2/segment2.07370.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_percent[] = { -#include "textures/segment2/segment2.07380.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_percent[] = "textures/segment2/segment2.07380.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_question[] = { -#include "textures/segment2/segment2.07390.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_question[] = "textures/segment2/segment2.07390.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_left_right_arrow[] = { -#include "textures/segment2/segment2.073A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_left_right_arrow[] = "textures/segment2/segment2.073A0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_open_parentheses[] = { -#include "textures/segment2/segment2.073B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_open_parentheses[] = "textures/segment2/segment2.073B0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_close_open_parentheses[] = { -#include "textures/segment2/segment2.073C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_close_open_parentheses[] = "textures/segment2/segment2.073C0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_close_parentheses[] = { -#include "textures/segment2/segment2.073D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_close_parentheses[] = "textures/segment2/segment2.073D0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_coin[] = { -#include "textures/segment2/segment2.073E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_coin[] = "textures/segment2/segment2.073E0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_multiply[] = { -#include "textures/segment2/segment2.073F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_multiply[] = "textures/segment2/segment2.073F0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_star_filled[] = { -#include "textures/segment2/segment2.07400.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_star_filled[] = "textures/segment2/segment2.07400.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_star_hollow[] = { -#include "textures/segment2/segment2.07410.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_star_hollow[] = "textures/segment2/segment2.07410.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_a[] = { -#include "textures/segment2/segment2.07420.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_a[] = "textures/segment2/segment2.07420.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_i[] = { -#include "textures/segment2/segment2.07430.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_i[] = "textures/segment2/segment2.07430.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_u[] = { -#include "textures/segment2/segment2.07440.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_u[] = "textures/segment2/segment2.07440.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_c[] = { -#include "textures/segment2/segment2.07450.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_c[] = "textures/segment2/segment2.07450.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_o[] = { -#include "textures/segment2/segment2.07460.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_o[] = "textures/segment2/segment2.07460.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ka[] = { -#include "textures/segment2/segment2.07470.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ka[] = "textures/segment2/segment2.07470.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ki[] = { -#include "textures/segment2/segment2.07480.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ki[] = "textures/segment2/segment2.07480.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ku[] = { -#include "textures/segment2/segment2.07490.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ku[] = "textures/segment2/segment2.07490.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ke[] = { -#include "textures/segment2/segment2.074A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ke[] = "textures/segment2/segment2.074A0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ko[] = { -#include "textures/segment2/segment2.074B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ko[] = "textures/segment2/segment2.074B0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_sa[] = { -#include "textures/segment2/segment2.074C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_sa[] = "textures/segment2/segment2.074C0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_shi[] = { -#include "textures/segment2/segment2.074D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_shi[] = "textures/segment2/segment2.074D0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_su[] = { -#include "textures/segment2/segment2.074E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_su[] = "textures/segment2/segment2.074E0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_se[] = { -#include "textures/segment2/segment2.074F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_se[] = "textures/segment2/segment2.074F0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_so[] = { -#include "textures/segment2/segment2.07500.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_so[] = "textures/segment2/segment2.07500.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ta[] = { -#include "textures/segment2/segment2.07510.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ta[] = "textures/segment2/segment2.07510.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_chi[] = { -#include "textures/segment2/segment2.07520.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_chi[] = "textures/segment2/segment2.07520.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_tsu[] = { -#include "textures/segment2/segment2.07530.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_tsu[] = "textures/segment2/segment2.07530.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_te[] = { -#include "textures/segment2/segment2.07540.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_te[] = "textures/segment2/segment2.07540.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_to[] = { -#include "textures/segment2/segment2.07550.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_to[] = "textures/segment2/segment2.07550.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_na[] = { -#include "textures/segment2/segment2.07560.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_na[] = "textures/segment2/segment2.07560.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ni[] = { -#include "textures/segment2/segment2.07570.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ni[] = "textures/segment2/segment2.07570.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_nu[] = { -#include "textures/segment2/segment2.07580.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_nu[] = "textures/segment2/segment2.07580.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ne[] = { -#include "textures/segment2/segment2.07590.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ne[] = "textures/segment2/segment2.07590.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_no[] = { -#include "textures/segment2/segment2.075A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_no[] = "textures/segment2/segment2.075A0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ha[] = { -#include "textures/segment2/segment2.075B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ha[] = "textures/segment2/segment2.075B0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_hi[] = { -#include "textures/segment2/segment2.075C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_hi[] = "textures/segment2/segment2.075C0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_hu[] = { -#include "textures/segment2/segment2.075D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_hu[] = "textures/segment2/segment2.075D0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_he[] = { -#include "textures/segment2/segment2.075E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_he[] = "textures/segment2/segment2.075E0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ho[] = { -#include "textures/segment2/segment2.075F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ho[] = "textures/segment2/segment2.075F0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ma[] = { -#include "textures/segment2/segment2.07600.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ma[] = "textures/segment2/segment2.07600.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_mi[] = { -#include "textures/segment2/segment2.07610.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_mi[] = "textures/segment2/segment2.07610.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_mu[] = { -#include "textures/segment2/segment2.07620.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_mu[] = "textures/segment2/segment2.07620.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_me[] = { -#include "textures/segment2/segment2.07630.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_me[] = "textures/segment2/segment2.07630.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_mo[] = { -#include "textures/segment2/segment2.07640.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_mo[] = "textures/segment2/segment2.07640.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ya[] = { -#include "textures/segment2/segment2.07650.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ya[] = "textures/segment2/segment2.07650.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_yu[] = { -#include "textures/segment2/segment2.07660.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_yu[] = "textures/segment2/segment2.07660.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_yo[] = { -#include "textures/segment2/segment2.07670.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_yo[] = "textures/segment2/segment2.07670.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ra[] = { -#include "textures/segment2/segment2.07680.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ra[] = "textures/segment2/segment2.07680.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ri[] = { -#include "textures/segment2/segment2.07690.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ri[] = "textures/segment2/segment2.07690.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ru[] = { -#include "textures/segment2/segment2.076A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ru[] = "textures/segment2/segment2.076A0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_re[] = { -#include "textures/segment2/segment2.076B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_re[] = "textures/segment2/segment2.076B0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_ro[] = { -#include "textures/segment2/segment2.076C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_ro[] = "textures/segment2/segment2.076C0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_wa[] = { -#include "textures/segment2/segment2.076D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_wa[] = "textures/segment2/segment2.076D0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_wo[] = { -#include "textures/segment2/segment2.076E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_wo[] = "textures/segment2/segment2.076E0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_n[] = { -#include "textures/segment2/segment2.076F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_n[] = "textures/segment2/segment2.076F0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_e[] = { -#include "textures/segment2/segment2.07700.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_e[] = "textures/segment2/segment2.07700.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_tsu[] = { -#include "textures/segment2/segment2.07710.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_tsu[] = "textures/segment2/segment2.07710.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_ya[] = { -#include "textures/segment2/segment2.07720.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_ya[] = "textures/segment2/segment2.07720.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yu[] = { -#include "textures/segment2/segment2.07730.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yu[] = "textures/segment2/segment2.07730.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yo[] = { -#include "textures/segment2/segment2.07740.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_yo[] = "textures/segment2/segment2.07740.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_a[] = { -#include "textures/segment2/segment2.07750.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_a[] = "textures/segment2/segment2.07750.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_i[] = { -#include "textures/segment2/segment2.07760.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_i[] = "textures/segment2/segment2.07760.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_o[] = { -#include "textures/segment2/segment2.07770.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_o[] = "textures/segment2/segment2.07770.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_u[] = { -#include "textures/segment2/segment2.07780.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_hiragana_small_u[] = "textures/segment2/segment2.07780.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_interpunct[] = { -#include "textures/segment2/segment2.07790.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_interpunct[] = "textures/segment2/segment2.07790.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_comma[] = { -#include "textures/segment2/segment2.077A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_comma[] = "textures/segment2/segment2.077A0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_a[] = { -#include "textures/segment2/segment2.077B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_a[] = "textures/segment2/segment2.077B0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_i[] = { -#include "textures/segment2/segment2.077C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_i[] = "textures/segment2/segment2.077C0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_u[] = { -#include "textures/segment2/segment2.077D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_u[] = "textures/segment2/segment2.077D0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_e[] = { -#include "textures/segment2/segment2.077E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_e[] = "textures/segment2/segment2.077E0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_o[] = { -#include "textures/segment2/segment2.077F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_o[] = "textures/segment2/segment2.077F0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ka[] = { -#include "textures/segment2/segment2.07800.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ka[] = "textures/segment2/segment2.07800.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ki[] = { -#include "textures/segment2/segment2.07810.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ki[] = "textures/segment2/segment2.07810.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ku[] = { -#include "textures/segment2/segment2.07820.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ku[] = "textures/segment2/segment2.07820.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ke[] = { -#include "textures/segment2/segment2.07830.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ke[] = "textures/segment2/segment2.07830.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ko[] = { -#include "textures/segment2/segment2.07840.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ko[] = "textures/segment2/segment2.07840.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_sa[] = { -#include "textures/segment2/segment2.07850.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_sa[] = "textures/segment2/segment2.07850.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_shi[] = { -#include "textures/segment2/segment2.07860.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_shi[] = "textures/segment2/segment2.07860.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_su[] = { -#include "textures/segment2/segment2.07870.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_su[] = "textures/segment2/segment2.07870.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_se[] = { -#include "textures/segment2/segment2.07880.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_se[] = "textures/segment2/segment2.07880.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_so[] = { -#include "textures/segment2/segment2.07890.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_so[] = "textures/segment2/segment2.07890.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ta[] = { -#include "textures/segment2/segment2.078A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ta[] = "textures/segment2/segment2.078A0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_chi[] = { -#include "textures/segment2/segment2.078B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_chi[] = "textures/segment2/segment2.078B0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_tsu[] = { -#include "textures/segment2/segment2.078C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_tsu[] = "textures/segment2/segment2.078C0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_te[] = { -#include "textures/segment2/segment2.078D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_te[] = "textures/segment2/segment2.078D0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_to[] = { -#include "textures/segment2/segment2.078E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_to[] = "textures/segment2/segment2.078E0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_na[] = { -#include "textures/segment2/segment2.078F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_na[] = "textures/segment2/segment2.078F0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ni[] = { -#include "textures/segment2/segment2.07900.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ni[] = "textures/segment2/segment2.07900.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_nu[] = { -#include "textures/segment2/segment2.07910.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_nu[] = "textures/segment2/segment2.07910.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ne[] = { -#include "textures/segment2/segment2.07920.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ne[] = "textures/segment2/segment2.07920.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_no[] = { -#include "textures/segment2/segment2.07930.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_no[] = "textures/segment2/segment2.07930.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ha[] = { -#include "textures/segment2/segment2.07940.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ha[] = "textures/segment2/segment2.07940.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_hi[] = { -#include "textures/segment2/segment2.07950.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_hi[] = "textures/segment2/segment2.07950.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_hu[] = { -#include "textures/segment2/segment2.07960.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_hu[] = "textures/segment2/segment2.07960.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_he[] = { -#include "textures/segment2/segment2.07970.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_he[] = "textures/segment2/segment2.07970.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ho[] = { -#include "textures/segment2/segment2.07980.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ho[] = "textures/segment2/segment2.07980.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ma[] = { -#include "textures/segment2/segment2.07990.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ma[] = "textures/segment2/segment2.07990.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_mi[] = { -#include "textures/segment2/segment2.079A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_mi[] = "textures/segment2/segment2.079A0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_mu[] = { -#include "textures/segment2/segment2.079B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_mu[] = "textures/segment2/segment2.079B0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_me[] = { -#include "textures/segment2/segment2.079C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_me[] = "textures/segment2/segment2.079C0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_mo[] = { -#include "textures/segment2/segment2.079D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_mo[] = "textures/segment2/segment2.079D0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ya[] = { -#include "textures/segment2/segment2.079E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ya[] = "textures/segment2/segment2.079E0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_yu[] = { -#include "textures/segment2/segment2.079F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_yu[] = "textures/segment2/segment2.079F0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_yo[] = { -#include "textures/segment2/segment2.07A00.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_yo[] = "textures/segment2/segment2.07A00.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ra[] = { -#include "textures/segment2/segment2.07A10.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ra[] = "textures/segment2/segment2.07A10.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ri[] = { -#include "textures/segment2/segment2.07A20.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ri[] = "textures/segment2/segment2.07A20.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ru[] = { -#include "textures/segment2/segment2.07A30.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ru[] = "textures/segment2/segment2.07A30.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_re[] = { -#include "textures/segment2/segment2.07A40.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_re[] = "textures/segment2/segment2.07A40.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_ro[] = { -#include "textures/segment2/segment2.07A50.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_ro[] = "textures/segment2/segment2.07A50.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_wa[] = { -#include "textures/segment2/segment2.07A60.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_wa[] = "textures/segment2/segment2.07A60.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_n[] = { -#include "textures/segment2/segment2.07A70.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_n[] = "textures/segment2/segment2.07A70.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_small_e[] = { -#include "textures/segment2/segment2.07A80.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_e[] = "textures/segment2/segment2.07A80.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_small_tsu[] = { -#include "textures/segment2/segment2.07A90.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_tsu[] = "textures/segment2/segment2.07A90.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_small_ya[] = { -#include "textures/segment2/segment2.07AA0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_ya[] = "textures/segment2/segment2.07AA0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yu[] = { -#include "textures/segment2/segment2.07AB0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yu[] = "textures/segment2/segment2.07AB0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yo[] = { -#include "textures/segment2/segment2.07AC0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_yo[] = "textures/segment2/segment2.07AC0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_small_a[] = { -#include "textures/segment2/segment2.07AD0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_a[] = "textures/segment2/segment2.07AD0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_small_i[] = { -#include "textures/segment2/segment2.07AE0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_i[] = "textures/segment2/segment2.07AE0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_small_u[] = { -#include "textures/segment2/segment2.07AF0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_u[] = "textures/segment2/segment2.07AF0.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_katakana_small_o[] = { -#include "textures/segment2/segment2.07B00.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_katakana_small_o[] = "textures/segment2/segment2.07B00.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_double_quotation_open[] = { -#include "textures/segment2/segment2.07B10.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_double_quotation_open[] = "textures/segment2/segment2.07B10.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_double_quotation_close[] = { -#include "textures/segment2/segment2.07B20.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_double_quotation_close[] = "textures/segment2/segment2.07B20.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_wave_dash[] = { -#include "textures/segment2/segment2.07B30.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_wave_dash[] = "textures/segment2/segment2.07B30.ia1"; -ALIGNED8 static const u8 texture_font_char_jp_ellipsis[] = { -#include "textures/segment2/segment2.07B40.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_jp_ellipsis[] = "textures/segment2/segment2.07B40.ia1"; // EU Small Font #elif defined(VERSION_EU) -ALIGNED8 static const u8 texture_font_char_eu_0[] = { -#include "textures/segment2/font_graphics.05F00.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_0[] = "textures/segment2/font_graphics.05F00.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_1[] = { -#include "textures/segment2/font_graphics.05F10.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_1[] = "textures/segment2/font_graphics.05F10.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_2[] = { -#include "textures/segment2/font_graphics.05F20.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_2[] = "textures/segment2/font_graphics.05F20.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_3[] = { -#include "textures/segment2/font_graphics.05F30.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_3[] = "textures/segment2/font_graphics.05F30.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_4[] = { -#include "textures/segment2/font_graphics.05F40.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_4[] = "textures/segment2/font_graphics.05F40.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_5[] = { -#include "textures/segment2/font_graphics.05F50.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_5[] = "textures/segment2/font_graphics.05F50.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_6[] = { -#include "textures/segment2/font_graphics.05F60.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_6[] = "textures/segment2/font_graphics.05F60.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_7[] = { -#include "textures/segment2/font_graphics.05F70.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_7[] = "textures/segment2/font_graphics.05F70.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_8[] = { -#include "textures/segment2/font_graphics.05F80.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_8[] = "textures/segment2/font_graphics.05F80.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_9[] = { -#include "textures/segment2/font_graphics.05F90.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_9[] = "textures/segment2/font_graphics.05F90.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_A[] = { -#include "textures/segment2/font_graphics.05FA0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_A[] = "textures/segment2/font_graphics.05FA0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_B[] = { -#include "textures/segment2/font_graphics.05FB0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_B[] = "textures/segment2/font_graphics.05FB0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_C[] = { -#include "textures/segment2/font_graphics.05FC0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_C[] = "textures/segment2/font_graphics.05FC0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_D[] = { -#include "textures/segment2/font_graphics.05FD0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_D[] = "textures/segment2/font_graphics.05FD0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_E[] = { -#include "textures/segment2/font_graphics.05FE0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_E[] = "textures/segment2/font_graphics.05FE0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_F[] = { -#include "textures/segment2/font_graphics.05FF0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_F[] = "textures/segment2/font_graphics.05FF0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_G[] = { -#include "textures/segment2/font_graphics.06000.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_G[] = "textures/segment2/font_graphics.06000.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_H[] = { -#include "textures/segment2/font_graphics.06010.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_H[] = "textures/segment2/font_graphics.06010.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_I[] = { -#include "textures/segment2/font_graphics.06020.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_I[] = "textures/segment2/font_graphics.06020.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_J[] = { -#include "textures/segment2/font_graphics.06030.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_J[] = "textures/segment2/font_graphics.06030.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_K[] = { -#include "textures/segment2/font_graphics.06040.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_K[] = "textures/segment2/font_graphics.06040.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_L[] = { -#include "textures/segment2/font_graphics.06050.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_L[] = "textures/segment2/font_graphics.06050.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_M[] = { -#include "textures/segment2/font_graphics.06060.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_M[] = "textures/segment2/font_graphics.06060.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_N[] = { -#include "textures/segment2/font_graphics.06070.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_N[] = "textures/segment2/font_graphics.06070.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_O[] = { -#include "textures/segment2/font_graphics.06080.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_O[] = "textures/segment2/font_graphics.06080.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_P[] = { -#include "textures/segment2/font_graphics.06090.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_P[] = "textures/segment2/font_graphics.06090.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_Q[] = { -#include "textures/segment2/font_graphics.060A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_Q[] = "textures/segment2/font_graphics.060A0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_R[] = { -#include "textures/segment2/font_graphics.060B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_R[] = "textures/segment2/font_graphics.060B0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_S[] = { -#include "textures/segment2/font_graphics.060C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_S[] = "textures/segment2/font_graphics.060C0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_T[] = { -#include "textures/segment2/font_graphics.060D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_T[] = "textures/segment2/font_graphics.060D0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_U[] = { -#include "textures/segment2/font_graphics.060E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_U[] = "textures/segment2/font_graphics.060E0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_V[] = { -#include "textures/segment2/font_graphics.060F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_V[] = "textures/segment2/font_graphics.060F0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_W[] = { -#include "textures/segment2/font_graphics.06100.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_W[] = "textures/segment2/font_graphics.06100.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_X[] = { -#include "textures/segment2/font_graphics.06110.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_X[] = "textures/segment2/font_graphics.06110.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_Y[] = { -#include "textures/segment2/font_graphics.06120.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_Y[] = "textures/segment2/font_graphics.06120.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_Z[] = { -#include "textures/segment2/font_graphics.06130.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_Z[] = "textures/segment2/font_graphics.06130.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_a[] = { -#include "textures/segment2/font_graphics.06140.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_a[] = "textures/segment2/font_graphics.06140.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_b[] = { -#include "textures/segment2/font_graphics.06150.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_b[] = "textures/segment2/font_graphics.06150.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_c[] = { -#include "textures/segment2/font_graphics.06160.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_c[] = "textures/segment2/font_graphics.06160.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_d[] = { -#include "textures/segment2/font_graphics.06170.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_d[] = "textures/segment2/font_graphics.06170.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_e[] = { -#include "textures/segment2/font_graphics.06180.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_e[] = "textures/segment2/font_graphics.06180.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_f[] = { -#include "textures/segment2/font_graphics.06190.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_f[] = "textures/segment2/font_graphics.06190.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_g[] = { -#include "textures/segment2/font_graphics.061A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_g[] = "textures/segment2/font_graphics.061A0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_h[] = { -#include "textures/segment2/font_graphics.061B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_h[] = "textures/segment2/font_graphics.061B0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_i[] = { -#include "textures/segment2/font_graphics.061C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_i[] = "textures/segment2/font_graphics.061C0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_j[] = { -#include "textures/segment2/font_graphics.061D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_j[] = "textures/segment2/font_graphics.061D0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_k[] = { -#include "textures/segment2/font_graphics.061E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_k[] = "textures/segment2/font_graphics.061E0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_l[] = { -#include "textures/segment2/font_graphics.061F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_l[] = "textures/segment2/font_graphics.061F0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_m[] = { -#include "textures/segment2/font_graphics.06200.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_m[] = "textures/segment2/font_graphics.06200.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_n[] = { -#include "textures/segment2/font_graphics.06210.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_n[] = "textures/segment2/font_graphics.06210.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_o[] = { -#include "textures/segment2/font_graphics.06220.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_o[] = "textures/segment2/font_graphics.06220.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_p[] = { -#include "textures/segment2/font_graphics.06230.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_p[] = "textures/segment2/font_graphics.06230.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_q[] = { -#include "textures/segment2/font_graphics.06240.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_q[] = "textures/segment2/font_graphics.06240.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_r[] = { -#include "textures/segment2/font_graphics.06250.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_r[] = "textures/segment2/font_graphics.06250.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_s[] = { -#include "textures/segment2/font_graphics.06260.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_s[] = "textures/segment2/font_graphics.06260.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_t[] = { -#include "textures/segment2/font_graphics.06270.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_t[] = "textures/segment2/font_graphics.06270.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_u[] = { -#include "textures/segment2/font_graphics.06280.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_u[] = "textures/segment2/font_graphics.06280.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_v[] = { -#include "textures/segment2/font_graphics.06290.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_v[] = "textures/segment2/font_graphics.06290.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_w[] = { -#include "textures/segment2/font_graphics.062A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_w[] = "textures/segment2/font_graphics.062A0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_x[] = { -#include "textures/segment2/font_graphics.062B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_x[] = "textures/segment2/font_graphics.062B0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_y[] = { -#include "textures/segment2/font_graphics.062C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_y[] = "textures/segment2/font_graphics.062C0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_z[] = { -#include "textures/segment2/font_graphics.062D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_z[] = "textures/segment2/font_graphics.062D0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_left_right_arrow[] = { -#include "textures/segment2/font_graphics.062E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_left_right_arrow[] = "textures/segment2/font_graphics.062E0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_ampersand[] = { -#include "textures/segment2/font_graphics.062F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_ampersand[] = "textures/segment2/font_graphics.062F0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_exclamation[] = { -#include "textures/segment2/font_graphics.06300.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_exclamation[] = "textures/segment2/font_graphics.06300.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_coin[] = { -#include "textures/segment2/font_graphics.06310.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_coin[] = "textures/segment2/font_graphics.06310.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_multiply[] = { -#include "textures/segment2/font_graphics.06320.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_multiply[] = "textures/segment2/font_graphics.06320.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_open_parentheses[] = { -#include "textures/segment2/font_graphics.06330.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_open_parentheses[] = "textures/segment2/font_graphics.06330.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_close_open_parentheses[] = { -#include "textures/segment2/font_graphics.06340.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_close_open_parentheses[] = "textures/segment2/font_graphics.06340.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_close_parentheses[] = { -#include "textures/segment2/font_graphics.06350.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_close_parentheses[] = "textures/segment2/font_graphics.06350.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_tilde[] = { -#include "textures/segment2/font_graphics.06360.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_tilde[] = "textures/segment2/font_graphics.06360.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_period[] = { -#include "textures/segment2/font_graphics.06370.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_period[] = "textures/segment2/font_graphics.06370.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_percent[] = { -#include "textures/segment2/font_graphics.06380.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_percent[] = "textures/segment2/font_graphics.06380.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_interpunct[] = { -#include "textures/segment2/font_graphics.06390.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_interpunct[] = "textures/segment2/font_graphics.06390.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_comma[] = { -#include "textures/segment2/font_graphics.063A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_comma[] = "textures/segment2/font_graphics.063A0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_apostrophe[] = { -#include "textures/segment2/font_graphics.063B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_apostrophe[] = "textures/segment2/font_graphics.063B0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_question[] = { -#include "textures/segment2/font_graphics.063C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_question[] = "textures/segment2/font_graphics.063C0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_star_filled[] = { -#include "textures/segment2/font_graphics.063D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_star_filled[] = "textures/segment2/font_graphics.063D0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_star_hollow[] = { -#include "textures/segment2/font_graphics.063E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_star_hollow[] = "textures/segment2/font_graphics.063E0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_double_quote_open[] = { -#include "textures/segment2/font_graphics.063F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_double_quote_open[] = "textures/segment2/font_graphics.063F0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_double_quote_close[] = { -#include "textures/segment2/font_graphics.06400.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_double_quote_close[] = "textures/segment2/font_graphics.06400.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_colon[] = { -#include "textures/segment2/font_graphics.06410.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_colon[] = "textures/segment2/font_graphics.06410.ia1"; -ALIGNED8 static const u8 texture_font_char_EU_slash[] = { -#include "textures/segment2/font_graphics.06420.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_EU_slash[] = "textures/segment2/font_graphics.06420.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_button_A[] = { -#include "textures/segment2/font_graphics.06430.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_button_A[] = "textures/segment2/font_graphics.06430.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_button_B[] = { -#include "textures/segment2/font_graphics.06440.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_button_B[] = "textures/segment2/font_graphics.06440.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_button_C[] = { -#include "textures/segment2/font_graphics.06450.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_button_C[] = "textures/segment2/font_graphics.06450.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_button_Z[] = { -#include "textures/segment2/font_graphics.06460.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_button_Z[] = "textures/segment2/font_graphics.06460.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_button_R[] = { -#include "textures/segment2/font_graphics.06470.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_button_R[] = "textures/segment2/font_graphics.06470.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_button_C_up[] = { -#include "textures/segment2/font_graphics.06480.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_button_C_up[] = "textures/segment2/font_graphics.06480.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_button_C_down[] = { -#include "textures/segment2/font_graphics.06490.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_button_C_down[] = "textures/segment2/font_graphics.06490.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_button_C_left[] = { -#include "textures/segment2/font_graphics.064A0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_button_C_left[] = "textures/segment2/font_graphics.064A0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_button_C_right[] = { -#include "textures/segment2/font_graphics.064B0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_button_C_right[] = "textures/segment2/font_graphics.064B0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_umlaut[] = { -#include "textures/segment2/font_graphics.064C0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_umlaut[] = "textures/segment2/font_graphics.064C0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_circumflex[] = { -#include "textures/segment2/font_graphics.064D0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_circumflex[] = "textures/segment2/font_graphics.064D0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_grave[] = { -#include "textures/segment2/font_graphics.064E0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_grave[] = "textures/segment2/font_graphics.064E0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_acute[] = { -#include "textures/segment2/font_graphics.064F0.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_acute[] = "textures/segment2/font_graphics.064F0.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_cedilla[] = { -#include "textures/segment2/font_graphics.06500.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_cedilla[] = "textures/segment2/font_graphics.06500.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_unknown[] = { -#include "textures/segment2/font_graphics.06510.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_unknown[] = "textures/segment2/font_graphics.06510.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_Cedilla[] = { -#include "textures/segment2/font_graphics.06520.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_Cedilla[] = "textures/segment2/font_graphics.06520.ia1"; -ALIGNED8 static const u8 texture_font_char_eu_eszeet[] = { -#include "textures/segment2/font_graphics.06530.ia1.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_eu_eszeet[] = "textures/segment2/font_graphics.06530.ia1"; // US Small Font #else -ALIGNED8 static const u8 texture_font_char_us_0[] = { -#include "textures/segment2/font_graphics.05900.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_0[] = "textures/segment2/font_graphics.05900.ia4"; -ALIGNED8 static const u8 texture_font_char_us_1[] = { -#include "textures/segment2/font_graphics.05940.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_1[] = "textures/segment2/font_graphics.05940.ia4"; -ALIGNED8 static const u8 texture_font_char_us_2[] = { -#include "textures/segment2/font_graphics.05980.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_2[] = "textures/segment2/font_graphics.05980.ia4"; -ALIGNED8 static const u8 texture_font_char_us_3[] = { -#include "textures/segment2/font_graphics.059C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_3[] = "textures/segment2/font_graphics.059C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_4[] = { -#include "textures/segment2/font_graphics.05A00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_4[] = "textures/segment2/font_graphics.05A00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_5[] = { -#include "textures/segment2/font_graphics.05A40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_5[] = "textures/segment2/font_graphics.05A40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_6[] = { -#include "textures/segment2/font_graphics.05A80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_6[] = "textures/segment2/font_graphics.05A80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_7[] = { -#include "textures/segment2/font_graphics.05AC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_7[] = "textures/segment2/font_graphics.05AC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_8[] = { -#include "textures/segment2/font_graphics.05B00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_8[] = "textures/segment2/font_graphics.05B00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_9[] = { -#include "textures/segment2/font_graphics.05B40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_9[] = "textures/segment2/font_graphics.05B40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_A[] = { -#include "textures/segment2/font_graphics.05B80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_A[] = "textures/segment2/font_graphics.05B80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_B[] = { -#include "textures/segment2/font_graphics.05BC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_B[] = "textures/segment2/font_graphics.05BC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_C[] = { -#include "textures/segment2/font_graphics.05C00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_C[] = "textures/segment2/font_graphics.05C00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_D[] = { -#include "textures/segment2/font_graphics.05C40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_D[] = "textures/segment2/font_graphics.05C40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_E[] = { -#include "textures/segment2/font_graphics.05C80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_E[] = "textures/segment2/font_graphics.05C80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_F[] = { -#include "textures/segment2/font_graphics.05CC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_F[] = "textures/segment2/font_graphics.05CC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_G[] = { -#include "textures/segment2/font_graphics.05D00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_G[] = "textures/segment2/font_graphics.05D00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_H[] = { -#include "textures/segment2/font_graphics.05D40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_H[] = "textures/segment2/font_graphics.05D40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_I[] = { -#include "textures/segment2/font_graphics.05D80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_I[] = "textures/segment2/font_graphics.05D80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_J[] = { -#include "textures/segment2/font_graphics.05DC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_J[] = "textures/segment2/font_graphics.05DC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_K[] = { -#include "textures/segment2/font_graphics.05E00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_K[] = "textures/segment2/font_graphics.05E00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_L[] = { -#include "textures/segment2/font_graphics.05E40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_L[] = "textures/segment2/font_graphics.05E40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_M[] = { -#include "textures/segment2/font_graphics.05E80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_M[] = "textures/segment2/font_graphics.05E80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_N[] = { -#include "textures/segment2/font_graphics.05EC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_N[] = "textures/segment2/font_graphics.05EC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_O[] = { -#include "textures/segment2/font_graphics.05F00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_O[] = "textures/segment2/font_graphics.05F00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_P[] = { -#include "textures/segment2/font_graphics.05F40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_P[] = "textures/segment2/font_graphics.05F40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_Q[] = { -#include "textures/segment2/font_graphics.05F80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_Q[] = "textures/segment2/font_graphics.05F80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_R[] = { -#include "textures/segment2/font_graphics.05FC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_R[] = "textures/segment2/font_graphics.05FC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_S[] = { -#include "textures/segment2/font_graphics.06000.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_S[] = "textures/segment2/font_graphics.06000.ia4"; -ALIGNED8 static const u8 texture_font_char_us_T[] = { -#include "textures/segment2/font_graphics.06040.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_T[] = "textures/segment2/font_graphics.06040.ia4"; -ALIGNED8 static const u8 texture_font_char_us_U[] = { -#include "textures/segment2/font_graphics.06080.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_U[] = "textures/segment2/font_graphics.06080.ia4"; -ALIGNED8 static const u8 texture_font_char_us_V[] = { -#include "textures/segment2/font_graphics.060C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_V[] = "textures/segment2/font_graphics.060C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_W[] = { -#include "textures/segment2/font_graphics.06100.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_W[] = "textures/segment2/font_graphics.06100.ia4"; -ALIGNED8 static const u8 texture_font_char_us_X[] = { -#include "textures/segment2/font_graphics.06140.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_X[] = "textures/segment2/font_graphics.06140.ia4"; -ALIGNED8 static const u8 texture_font_char_us_Y[] = { -#include "textures/segment2/font_graphics.06180.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_Y[] = "textures/segment2/font_graphics.06180.ia4"; -ALIGNED8 static const u8 texture_font_char_us_Z[] = { -#include "textures/segment2/font_graphics.061C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_Z[] = "textures/segment2/font_graphics.061C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_a[] = { -#include "textures/segment2/font_graphics.06200.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_a[] = "textures/segment2/font_graphics.06200.ia4"; -ALIGNED8 static const u8 texture_font_char_us_b[] = { -#include "textures/segment2/font_graphics.06240.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_b[] = "textures/segment2/font_graphics.06240.ia4"; -ALIGNED8 static const u8 texture_font_char_us_c[] = { -#include "textures/segment2/font_graphics.06280.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_c[] = "textures/segment2/font_graphics.06280.ia4"; -ALIGNED8 static const u8 texture_font_char_us_d[] = { -#include "textures/segment2/font_graphics.062C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_d[] = "textures/segment2/font_graphics.062C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_e[] = { -#include "textures/segment2/font_graphics.06300.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_e[] = "textures/segment2/font_graphics.06300.ia4"; -ALIGNED8 static const u8 texture_font_char_us_f[] = { -#include "textures/segment2/font_graphics.06340.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_f[] = "textures/segment2/font_graphics.06340.ia4"; -ALIGNED8 static const u8 texture_font_char_us_g[] = { -#include "textures/segment2/font_graphics.06380.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_g[] = "textures/segment2/font_graphics.06380.ia4"; -ALIGNED8 static const u8 texture_font_char_us_h[] = { -#include "textures/segment2/font_graphics.063C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_h[] = "textures/segment2/font_graphics.063C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_i[] = { -#include "textures/segment2/font_graphics.06400.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_i[] = "textures/segment2/font_graphics.06400.ia4"; -ALIGNED8 static const u8 texture_font_char_us_j[] = { -#include "textures/segment2/font_graphics.06440.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_j[] = "textures/segment2/font_graphics.06440.ia4"; -ALIGNED8 static const u8 texture_font_char_us_k[] = { -#include "textures/segment2/font_graphics.06480.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_k[] = "textures/segment2/font_graphics.06480.ia4"; -ALIGNED8 static const u8 texture_font_char_us_l[] = { -#include "textures/segment2/font_graphics.064C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_l[] = "textures/segment2/font_graphics.064C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_m[] = { -#include "textures/segment2/font_graphics.06500.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_m[] = "textures/segment2/font_graphics.06500.ia4"; -ALIGNED8 static const u8 texture_font_char_us_n[] = { -#include "textures/segment2/font_graphics.06540.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_n[] = "textures/segment2/font_graphics.06540.ia4"; -ALIGNED8 static const u8 texture_font_char_us_o[] = { -#include "textures/segment2/font_graphics.06580.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_o[] = "textures/segment2/font_graphics.06580.ia4"; -ALIGNED8 static const u8 texture_font_char_us_p[] = { -#include "textures/segment2/font_graphics.065C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_p[] = "textures/segment2/font_graphics.065C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_q[] = { -#include "textures/segment2/font_graphics.06600.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_q[] = "textures/segment2/font_graphics.06600.ia4"; -ALIGNED8 static const u8 texture_font_char_us_r[] = { -#include "textures/segment2/font_graphics.06640.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_r[] = "textures/segment2/font_graphics.06640.ia4"; -ALIGNED8 static const u8 texture_font_char_us_s[] = { -#include "textures/segment2/font_graphics.06680.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_s[] = "textures/segment2/font_graphics.06680.ia4"; -ALIGNED8 static const u8 texture_font_char_us_t[] = { -#include "textures/segment2/font_graphics.066C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_t[] = "textures/segment2/font_graphics.066C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_u[] = { -#include "textures/segment2/font_graphics.06700.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_u[] = "textures/segment2/font_graphics.06700.ia4"; -ALIGNED8 static const u8 texture_font_char_us_v[] = { -#include "textures/segment2/font_graphics.06740.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_v[] = "textures/segment2/font_graphics.06740.ia4"; -ALIGNED8 static const u8 texture_font_char_us_w[] = { -#include "textures/segment2/font_graphics.06780.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_w[] = "textures/segment2/font_graphics.06780.ia4"; -ALIGNED8 static const u8 texture_font_char_us_x[] = { -#include "textures/segment2/font_graphics.067C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_x[] = "textures/segment2/font_graphics.067C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_y[] = { -#include "textures/segment2/font_graphics.06800.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_y[] = "textures/segment2/font_graphics.06800.ia4"; -ALIGNED8 static const u8 texture_font_char_us_z[] = { -#include "textures/segment2/font_graphics.06840.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_z[] = "textures/segment2/font_graphics.06840.ia4"; -ALIGNED8 static const u8 texture_font_char_us_left_right_arrow[] = { -#include "textures/segment2/font_graphics.06880.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_left_right_arrow[] = "textures/segment2/font_graphics.06880.ia4"; -ALIGNED8 static const u8 texture_font_char_us_exclamation[] = { -#include "textures/segment2/font_graphics.068C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_exclamation[] = "textures/segment2/font_graphics.068C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_coin[] = { -#include "textures/segment2/font_graphics.06900.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_coin[] = "textures/segment2/font_graphics.06900.ia4"; -ALIGNED8 static const u8 texture_font_char_us_multiply[] = { -#include "textures/segment2/font_graphics.06940.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_multiply[] = "textures/segment2/font_graphics.06940.ia4"; -ALIGNED8 static const u8 texture_font_char_us_open_parentheses[] = { -#include "textures/segment2/font_graphics.06980.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_open_parentheses[] = "textures/segment2/font_graphics.06980.ia4"; -ALIGNED8 static const u8 texture_font_char_us_close_open_parentheses[] = { -#include "textures/segment2/font_graphics.069C0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_close_open_parentheses[] = "textures/segment2/font_graphics.069C0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_close_parentheses[] = { -#include "textures/segment2/font_graphics.06A00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_close_parentheses[] = "textures/segment2/font_graphics.06A00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_tilde[] = { -#include "textures/segment2/font_graphics.06A40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_tilde[] = "textures/segment2/font_graphics.06A40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_period[] = { -#include "textures/segment2/font_graphics.06A80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_period[] = "textures/segment2/font_graphics.06A80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_percent[] = { -#include "textures/segment2/font_graphics.06AC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_percent[] = "textures/segment2/font_graphics.06AC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_interpunct[] = { -#include "textures/segment2/font_graphics.06B00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_interpunct[] = "textures/segment2/font_graphics.06B00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_comma[] = { -#include "textures/segment2/font_graphics.06B40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_comma[] = "textures/segment2/font_graphics.06B40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_apostrophe[] = { -#include "textures/segment2/font_graphics.06B80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_apostrophe[] = "textures/segment2/font_graphics.06B80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_question[] = { -#include "textures/segment2/font_graphics.06BC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_question[] = "textures/segment2/font_graphics.06BC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_star_filled[] = { -#include "textures/segment2/font_graphics.06C00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_star_filled[] = "textures/segment2/font_graphics.06C00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_star_hollow[] = { -#include "textures/segment2/font_graphics.06C40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_star_hollow[] = "textures/segment2/font_graphics.06C40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_double_quote_open[] = { -#include "textures/segment2/font_graphics.06C80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_double_quote_open[] = "textures/segment2/font_graphics.06C80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_double_quote_close[] = { -#include "textures/segment2/font_graphics.06CC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_double_quote_close[] = "textures/segment2/font_graphics.06CC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_ellipsis[] = { -#include "textures/segment2/font_graphics.06D00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_ellipsis[] = "textures/segment2/font_graphics.06D00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_slash[] = { -#include "textures/segment2/font_graphics.06D40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_slash[] = "textures/segment2/font_graphics.06D40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_ampersand[] = { -#include "textures/segment2/font_graphics.06D80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_ampersand[] = "textures/segment2/font_graphics.06D80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_button_A[] = { -#include "textures/segment2/font_graphics.06DC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_button_A[] = "textures/segment2/font_graphics.06DC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_button_B[] = { -#include "textures/segment2/font_graphics.06E00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_button_B[] = "textures/segment2/font_graphics.06E00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_button_C[] = { -#include "textures/segment2/font_graphics.06E40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_button_C[] = "textures/segment2/font_graphics.06E40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_button_Z[] = { -#include "textures/segment2/font_graphics.06E80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_button_Z[] = "textures/segment2/font_graphics.06E80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_button_R[] = { -#include "textures/segment2/font_graphics.06EC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_button_R[] = "textures/segment2/font_graphics.06EC0.ia4"; -ALIGNED8 static const u8 texture_font_char_us_button_C_up[] = { -#include "textures/segment2/font_graphics.06F00.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_button_C_up[] = "textures/segment2/font_graphics.06F00.ia4"; -ALIGNED8 static const u8 texture_font_char_us_button_C_down[] = { -#include "textures/segment2/font_graphics.06F40.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_button_C_down[] = "textures/segment2/font_graphics.06F40.ia4"; -ALIGNED8 static const u8 texture_font_char_us_button_C_left[] = { -#include "textures/segment2/font_graphics.06F80.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_button_C_left[] = "textures/segment2/font_graphics.06F80.ia4"; -ALIGNED8 static const u8 texture_font_char_us_button_C_right[] = { -#include "textures/segment2/font_graphics.06FC0.ia4.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_us_button_C_right[] = "textures/segment2/font_graphics.06FC0.ia4"; #endif -ALIGNED8 static const u8 texture_hud_char_camera[] = { -#include "textures/segment2/segment2.07B50.rgba16.inc.c" -}; +ALIGNED8 static const u8 texture_font_char_mayus_accent_a [] = "textures/special/mayus_accent_a"; +ALIGNED8 static const u8 texture_font_char_mayus_accent_e [] = "textures/special/mayus_accent_e"; +ALIGNED8 static const u8 texture_font_char_mayus_accent_i [] = "textures/special/mayus_accent_i"; +ALIGNED8 static const u8 texture_font_char_mayus_accent_o [] = "textures/special/mayus_accent_o"; +ALIGNED8 static const u8 texture_font_char_mayus_accent_u [] = "textures/special/mayus_accent_u"; +ALIGNED8 static const u8 texture_font_char_mayus_umlaut [] = "textures/special/mayus_umlaut"; +ALIGNED8 static const u8 texture_font_char_exclamation [] = "textures/special/exclamation"; +ALIGNED8 static const u8 texture_font_char_mayus_enye [] = "textures/special/mayus_enye"; +ALIGNED8 static const u8 texture_font_char_accent_a [] = "textures/special/accent_a"; +ALIGNED8 static const u8 texture_font_char_accent_e [] = "textures/special/accent_e"; +ALIGNED8 static const u8 texture_font_char_accent_i [] = "textures/special/accent_i"; +ALIGNED8 static const u8 texture_font_char_accent_o [] = "textures/special/accent_o"; +ALIGNED8 static const u8 texture_font_char_accent_u [] = "textures/special/accent_u"; +ALIGNED8 static const u8 texture_font_char_question [] = "textures/special/question"; +ALIGNED8 static const u8 texture_font_char_umlaut [] = "textures/special/umlaut"; +ALIGNED8 static const u8 texture_font_char_enye [] = "textures/special/enye"; + +ALIGNED8 static const u8 texture_hud_char_J [] = "textures/special/hud_j"; +ALIGNED8 static const u8 texture_hud_char_Q [] = "textures/special/hud_q"; +ALIGNED8 static const u8 texture_hud_char_V [] = "textures/special/hud_v"; +ALIGNED8 static const u8 texture_hud_char_X [] = "textures/special/hud_x"; +ALIGNED8 static const u8 texture_hud_char_Z [] = "textures/special/hud_z"; +ALIGNED8 static const u8 texture_hud_char_decimal_point [] = "textures/special/hud_decimal"; + +ALIGNED8 static const u8 texture_hud_char_camera[] = "textures/segment2/segment2.07B50.rgba16"; + +ALIGNED8 static const u8 texture_hud_char_lakitu[] = "textures/segment2/segment2.07D50.rgba16"; + +ALIGNED8 static const u8 texture_hud_char_no_camera[] = "textures/segment2/segment2.07F50.rgba16"; + +ALIGNED8 static const u8 texture_hud_char_arrow_up[] = "textures/segment2/segment2.08150.rgba16"; + +ALIGNED8 static const u8 texture_hud_char_arrow_down[] = "textures/segment2/segment2.081D0.rgba16"; + +//Arabic by Adya#8011 +// Main Font +ALIGNED8 static const u8 texture_font_arabic_char_alif_h[] = "textures/special/arabic/alif_h"; +ALIGNED8 static const u8 texture_font_arabic_char_alif[] = "textures/special/arabic/alif"; +ALIGNED8 static const u8 texture_font_arabic_char_lam_s[] = "textures/special/arabic/lam_s"; +ALIGNED8 static const u8 texture_font_arabic_char_ain_mid[] = "textures/special/arabic/ain_mid"; +ALIGNED8 static const u8 texture_font_arabic_char_ba_mid[] = "textures/special/arabic/ba_mid"; +ALIGNED8 static const u8 texture_font_arabic_char_ba_s[] = "textures/special/arabic/ba_s"; +ALIGNED8 static const u8 texture_font_arabic_char_ya_mid[] = "textures/special/arabic/ya_mid"; +ALIGNED8 static const u8 texture_font_arabic_char_ra[] = "textures/special/arabic/ra"; +ALIGNED8 static const u8 texture_font_arabic_char_ta_marbout[] = "textures/special/arabic/ta_marbout"; +ALIGNED8 static const u8 texture_font_arabic_char_ra_e[] = "textures/special/arabic/ra_e"; +ALIGNED8 static const u8 texture_font_arabic_char_lam_mid[] = "textures/special/arabic/lam_mid"; +ALIGNED8 static const u8 texture_font_arabic_char_rain_mid[] = "textures/special/arabic/rain_mid"; +ALIGNED8 static const u8 texture_font_arabic_char_ha_mid[] = "textures/special/arabic/ha_mid"; +ALIGNED8 static const u8 texture_font_arabic_char_zay_mid[] = "textures/special/arabic/zay"; +ALIGNED8 static const u8 texture_font_arabic_char_la[] = "textures/special/arabic/la"; +//Main HUD +ALIGNED8 static const u8 texture_hud_arabic_char_alif[] = "textures/special/arabic/HUD_alif"; +ALIGNED8 static const u8 texture_hud_arabic_char_lam_s[] = "textures/special/arabic/HUD_lam"; +ALIGNED8 static const u8 texture_hud_arabic_char_lam_mid[] = "textures/special/arabic/HUD_lam_mid"; +ALIGNED8 static const u8 texture_hud_arabic_char_ain_mid[] = "textures/special/arabic/HUD_ain_mid"; +ALIGNED8 static const u8 texture_hud_arabic_char_rain_mid[] = "textures/special/arabic/HUD_rain_mid"; +ALIGNED8 static const u8 texture_hud_arabic_char_ta_marbout_mid[]= "textures/special/arabic/HUD_ta_marbout"; +ALIGNED8 static const u8 texture_hud_arabic_char_ba_mid[] = "textures/special/arabic/HUD_ba_mid"; -ALIGNED8 static const u8 texture_hud_char_lakitu[] = { -#include "textures/segment2/segment2.07D50.rgba16.inc.c" -}; - -ALIGNED8 static const u8 texture_hud_char_no_camera[] = { -#include "textures/segment2/segment2.07F50.rgba16.inc.c" -}; - -ALIGNED8 static const u8 texture_hud_char_arrow_up[] = { -#include "textures/segment2/segment2.08150.rgba16.inc.c" -}; - -ALIGNED8 static const u8 texture_hud_char_arrow_down[] = { -#include "textures/segment2/segment2.081D0.rgba16.inc.c" -}; // Main HUD print table 0x02008250-0x02008337 const u8 *const main_hud_lut[] = { -#ifdef VERSION_EU - texture_hud_char_0, texture_hud_char_1, texture_hud_char_2, texture_hud_char_3, - texture_hud_char_4, texture_hud_char_5, texture_hud_char_6, texture_hud_char_7, - texture_hud_char_8, texture_hud_char_9, texture_hud_char_A, texture_hud_char_B, - texture_hud_char_C, texture_hud_char_D, texture_hud_char_E, texture_hud_char_F, - texture_hud_char_G, texture_hud_char_H, texture_hud_char_I, 0x0, - texture_hud_char_K, texture_hud_char_L, texture_hud_char_M, texture_hud_char_N, - texture_hud_char_O, texture_hud_char_P, 0x0, texture_hud_char_R, - texture_hud_char_S, texture_hud_char_T, texture_hud_char_U, texture_hud_char_V, - texture_hud_char_W, 0x0, texture_hud_char_Y, texture_hud_char_Z, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, texture_hud_char_multiply, texture_hud_char_coin, - texture_hud_char_mario_head, texture_hud_char_star, 0x0, 0x0, - texture_hud_char_apostrophe, texture_hud_char_double_quote, texture_hud_char_umlaut, -#elif defined(VERSION_US) - texture_hud_char_0, texture_hud_char_1, texture_hud_char_2, texture_hud_char_3, - texture_hud_char_4, texture_hud_char_5, texture_hud_char_6, texture_hud_char_7, - texture_hud_char_8, texture_hud_char_9, texture_hud_char_A, texture_hud_char_B, - texture_hud_char_C, texture_hud_char_D, texture_hud_char_E, texture_hud_char_F, - texture_hud_char_G, texture_hud_char_H, texture_hud_char_I, 0x0, - texture_hud_char_K, texture_hud_char_L, texture_hud_char_M, texture_hud_char_N, - texture_hud_char_O, texture_hud_char_P, 0x0, texture_hud_char_R, - texture_hud_char_S, texture_hud_char_T, texture_hud_char_U, 0x0, - texture_hud_char_W, 0x0, texture_hud_char_Y, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, texture_hud_char_multiply, texture_hud_char_coin, - texture_hud_char_mario_head, texture_hud_char_star, 0x0, 0x0, - texture_hud_char_apostrophe, texture_hud_char_double_quote, -#else texture_hud_char_0, texture_hud_char_1, texture_hud_char_2, texture_hud_char_3, texture_hud_char_4, texture_hud_char_5, texture_hud_char_6, texture_hud_char_7, texture_hud_char_8, texture_hud_char_9, texture_hud_char_A, texture_hud_char_B, @@ -1844,85 +978,37 @@ const u8 *const main_hud_lut[] = { texture_hud_char_O, texture_hud_char_P, texture_hud_char_Q, texture_hud_char_R, texture_hud_char_S, texture_hud_char_T, texture_hud_char_U, texture_hud_char_V, texture_hud_char_W, texture_hud_char_X, texture_hud_char_Y, texture_hud_char_Z, - texture_hud_char_exclamation, texture_hud_char_double_exclamation, texture_hud_char_question, texture_hud_char_ampersand, - texture_hud_char_percent, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, texture_hud_char_multiply, texture_hud_char_coin, - texture_hud_char_mario_head, texture_hud_char_star, texture_hud_char_decimal_point, texture_hud_char_beta_key, - texture_hud_char_apostrophe, texture_hud_char_double_quote, -#endif + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, texture_hud_char_multiply, texture_hud_char_coin, + texture_hud_char_mario_head, texture_hud_char_star, texture_hud_char_decimal_point, 0x0, + texture_hud_char_apostrophe, texture_hud_char_double_quote,0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, + texture_hud_arabic_char_alif, 0x0, 0x0,texture_hud_arabic_char_lam_s, + texture_hud_arabic_char_ba_mid, 0x0,texture_hud_arabic_char_ain_mid, 0x0, + texture_hud_arabic_char_ta_marbout_mid, 0x0,texture_hud_arabic_char_lam_mid,texture_hud_arabic_char_rain_mid, + 0x0, 0x0, 0x0, 0x0, }; // Main small font print table 0x02008338-0x02008737 const u8 *const main_font_lut[] = { -#ifdef VERSION_EU // EU Font Table - texture_font_char_eu_0, texture_font_char_eu_1, texture_font_char_eu_2, texture_font_char_eu_3, - texture_font_char_eu_4, texture_font_char_eu_5, texture_font_char_eu_6, texture_font_char_eu_7, - texture_font_char_eu_8, texture_font_char_eu_9, texture_font_char_eu_A, texture_font_char_eu_B, - texture_font_char_eu_C, texture_font_char_eu_D, texture_font_char_eu_E, texture_font_char_eu_F, - texture_font_char_eu_G, texture_font_char_eu_H, texture_font_char_eu_I, texture_font_char_eu_J, - texture_font_char_eu_K, texture_font_char_eu_L, texture_font_char_eu_M, texture_font_char_eu_N, - texture_font_char_eu_O, texture_font_char_eu_P, texture_font_char_eu_Q, texture_font_char_eu_R, - texture_font_char_eu_S, texture_font_char_eu_T, texture_font_char_eu_U, texture_font_char_eu_V, - texture_font_char_eu_W, texture_font_char_eu_X, texture_font_char_eu_Y, texture_font_char_eu_Z, - texture_font_char_eu_a, texture_font_char_eu_b, texture_font_char_eu_c, texture_font_char_eu_d, - texture_font_char_eu_e, texture_font_char_eu_f, texture_font_char_eu_g, texture_font_char_eu_h, - texture_font_char_eu_i, texture_font_char_eu_j, texture_font_char_eu_k, texture_font_char_eu_l, - texture_font_char_eu_m, texture_font_char_eu_n, texture_font_char_eu_o, texture_font_char_eu_p, - texture_font_char_eu_q, texture_font_char_eu_r, texture_font_char_eu_s, texture_font_char_eu_t, - texture_font_char_eu_u, texture_font_char_eu_v, texture_font_char_eu_w, texture_font_char_eu_x, - texture_font_char_eu_y, texture_font_char_eu_z, texture_font_char_eu_apostrophe, texture_font_char_eu_period, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - texture_font_char_eu_button_C_up, - texture_font_char_eu_button_C_down, - texture_font_char_eu_button_C_left, - texture_font_char_eu_button_C_right, - texture_font_char_eu_button_A, - texture_font_char_eu_button_B, - texture_font_char_eu_button_C, - texture_font_char_eu_button_Z, - texture_font_char_eu_button_R, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - texture_font_char_eu_comma, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - texture_font_char_EU_slash, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, - texture_font_char_eu_open_parentheses, - texture_font_char_eu_close_open_parentheses, - texture_font_char_eu_close_parentheses, - texture_font_char_eu_left_right_arrow, - texture_font_char_eu_ampersand, - texture_font_char_eu_colon, - texture_font_char_eu_acute, - texture_font_char_eu_circumflex, - texture_font_char_eu_umlaut, - texture_font_char_eu_grave, - texture_font_char_eu_unknown, - texture_font_char_eu_eszeet, - texture_font_char_eu_Cedilla, - texture_font_char_eu_cedilla, - 0x0, 0x0, 0x0, - texture_font_char_eu_exclamation, - texture_font_char_eu_percent, - texture_font_char_eu_question, - texture_font_char_eu_double_quote_open, - texture_font_char_eu_double_quote_close, - texture_font_char_eu_tilde, - 0x0, - texture_font_char_eu_coin, - texture_font_char_eu_star_filled, - texture_font_char_eu_multiply, - texture_font_char_eu_interpunct, - texture_font_char_eu_star_hollow, - 0x0, 0x0, -#elif defined(VERSION_US) // US Font Table texture_font_char_us_0, texture_font_char_us_1, texture_font_char_us_2, texture_font_char_us_3, texture_font_char_us_4, texture_font_char_us_5, texture_font_char_us_6, texture_font_char_us_7, texture_font_char_us_8, texture_font_char_us_9, texture_font_char_us_A, texture_font_char_us_B, @@ -1951,14 +1037,15 @@ const u8 *const main_font_lut[] = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, texture_font_char_us_comma, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, + // SPECIAL CHARS: Start ID - 112:0x70 + texture_font_char_accent_a, texture_font_char_accent_e, texture_font_char_accent_i, texture_font_char_accent_o, + texture_font_char_accent_u, texture_font_char_mayus_accent_a, texture_font_char_mayus_accent_e, texture_font_char_mayus_accent_i, + texture_font_char_mayus_accent_o, texture_font_char_mayus_accent_u, texture_font_char_enye, texture_font_char_mayus_enye, + texture_font_char_umlaut, texture_font_char_mayus_umlaut, texture_font_char_question, texture_font_char_exclamation, + texture_font_arabic_char_alif_h, texture_font_arabic_char_alif, texture_font_arabic_char_ba_s, texture_font_arabic_char_lam_s, + texture_font_arabic_char_ba_mid, texture_font_arabic_char_ra_e, texture_font_arabic_char_ain_mid, texture_font_arabic_char_ya_mid, + texture_font_arabic_char_ta_marbout, texture_font_arabic_char_ra, texture_font_arabic_char_lam_mid,texture_font_arabic_char_rain_mid, + texture_font_arabic_char_ha_mid, texture_font_arabic_char_zay_mid,texture_font_arabic_char_la, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @@ -1987,72 +1074,6 @@ const u8 *const main_font_lut[] = { texture_font_char_us_question, texture_font_char_us_double_quote_open, texture_font_char_us_double_quote_close, texture_font_char_us_tilde, 0x0, texture_font_char_us_coin, texture_font_char_us_star_filled, texture_font_char_us_multiply, texture_font_char_us_interpunct, texture_font_char_us_star_hollow, 0x0, 0x0, -#elif defined(VERSION_JP) || defined(VERSION_SH) - texture_font_char_jp_0, texture_font_char_jp_1, texture_font_char_jp_2, texture_font_char_jp_3, - texture_font_char_jp_4, texture_font_char_jp_5, texture_font_char_jp_6, texture_font_char_jp_7, - texture_font_char_jp_8, texture_font_char_jp_9, texture_font_char_jp_A, texture_font_char_jp_B, - texture_font_char_jp_C, texture_font_char_jp_D, texture_font_char_jp_E, texture_font_char_jp_F, - texture_font_char_jp_G, texture_font_char_jp_H, texture_font_char_jp_I, texture_font_char_jp_J, - texture_font_char_jp_K, texture_font_char_jp_L, texture_font_char_jp_M, texture_font_char_jp_N, - texture_font_char_jp_O, texture_font_char_jp_P, texture_font_char_jp_Q, texture_font_char_jp_R, - texture_font_char_jp_S, texture_font_char_jp_T, texture_font_char_jp_U, texture_font_char_jp_V, - texture_font_char_jp_W, texture_font_char_jp_X, texture_font_char_jp_Y, texture_font_char_jp_Z, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - texture_font_char_jp_hiragana_a, texture_font_char_jp_hiragana_i, texture_font_char_jp_hiragana_u, texture_font_char_jp_hiragana_c, - texture_font_char_jp_hiragana_o, texture_font_char_jp_hiragana_ka, texture_font_char_jp_hiragana_ki, texture_font_char_jp_hiragana_ku, - texture_font_char_jp_hiragana_ke, texture_font_char_jp_hiragana_ko, texture_font_char_jp_hiragana_sa, texture_font_char_jp_hiragana_shi, - texture_font_char_jp_hiragana_su, texture_font_char_jp_hiragana_se, texture_font_char_jp_hiragana_so, texture_font_char_jp_hiragana_ta, - texture_font_char_jp_hiragana_chi, texture_font_char_jp_hiragana_tsu, texture_font_char_jp_hiragana_te, texture_font_char_jp_hiragana_to, - texture_font_char_jp_hiragana_na, texture_font_char_jp_hiragana_ni, texture_font_char_jp_hiragana_nu, texture_font_char_jp_hiragana_ne, - texture_font_char_jp_hiragana_no, texture_font_char_jp_hiragana_ha, texture_font_char_jp_hiragana_hi, texture_font_char_jp_hiragana_hu, - texture_font_char_jp_hiragana_he, texture_font_char_jp_hiragana_ho, texture_font_char_jp_hiragana_ma, texture_font_char_jp_hiragana_mi, - texture_font_char_jp_hiragana_mu, texture_font_char_jp_hiragana_me, texture_font_char_jp_hiragana_mo, texture_font_char_jp_hiragana_ya, - texture_font_char_jp_hiragana_yu, texture_font_char_jp_hiragana_yo, texture_font_char_jp_hiragana_ra, texture_font_char_jp_hiragana_ri, - texture_font_char_jp_hiragana_ru, texture_font_char_jp_hiragana_re, texture_font_char_jp_hiragana_ro, texture_font_char_jp_hiragana_wa, - texture_font_char_jp_hiragana_wo, texture_font_char_jp_hiragana_n, 0x0, texture_font_char_jp_comma, - texture_font_char_jp_katakana_a, texture_font_char_jp_katakana_i, texture_font_char_jp_katakana_u, texture_font_char_jp_katakana_e, - texture_font_char_jp_katakana_o, texture_font_char_jp_katakana_ka, texture_font_char_jp_katakana_ki, texture_font_char_jp_katakana_ku, - texture_font_char_jp_katakana_ke, texture_font_char_jp_katakana_ko, texture_font_char_jp_katakana_sa, texture_font_char_jp_katakana_shi, - texture_font_char_jp_katakana_su, texture_font_char_jp_katakana_se, texture_font_char_jp_katakana_so, texture_font_char_jp_katakana_ta, - texture_font_char_jp_katakana_chi, texture_font_char_jp_katakana_tsu, texture_font_char_jp_katakana_te, texture_font_char_jp_katakana_to, - texture_font_char_jp_katakana_na, texture_font_char_jp_katakana_ni, texture_font_char_jp_katakana_nu, texture_font_char_jp_katakana_ne, - texture_font_char_jp_katakana_no, texture_font_char_jp_katakana_ha, texture_font_char_jp_katakana_hi, texture_font_char_jp_katakana_hu, - texture_font_char_jp_katakana_he, texture_font_char_jp_katakana_ho, texture_font_char_jp_katakana_ma, texture_font_char_jp_katakana_mi, - texture_font_char_jp_katakana_mu, texture_font_char_jp_katakana_me, texture_font_char_jp_katakana_mo, texture_font_char_jp_katakana_ya, - texture_font_char_jp_katakana_yu, texture_font_char_jp_katakana_yo, texture_font_char_jp_katakana_ra, texture_font_char_jp_katakana_ri, - texture_font_char_jp_katakana_ru, texture_font_char_jp_katakana_re, texture_font_char_jp_katakana_ro, texture_font_char_jp_katakana_wa, - 0x0, texture_font_char_jp_katakana_n, 0x0, texture_font_char_jp_long_vowel, - texture_font_char_jp_hiragana_small_e, texture_font_char_jp_hiragana_small_tsu, texture_font_char_jp_hiragana_small_ya, texture_font_char_jp_hiragana_small_yu, - texture_font_char_jp_hiragana_small_yo, texture_font_char_jp_hiragana_small_a, texture_font_char_jp_hiragana_small_i, texture_font_char_jp_hiragana_small_u, - texture_font_char_jp_hiragana_small_o, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - texture_font_char_jp_katakana_small_e, texture_font_char_jp_katakana_small_tsu, texture_font_char_jp_katakana_small_ya, texture_font_char_jp_katakana_small_yu, - texture_font_char_jp_katakana_small_yo, texture_font_char_jp_katakana_small_a, texture_font_char_jp_katakana_small_i, texture_font_char_jp_katakana_small_u, - texture_font_char_jp_katakana_small_o, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, texture_font_char_jp_open_parentheses, texture_font_char_jp_close_open_parentheses, texture_font_char_jp_close_parentheses, - texture_font_char_jp_left_right_arrow, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - texture_font_char_jp_dakuten, texture_font_char_jp_handakuten, texture_font_char_jp_exclamation, texture_font_char_jp_percent, - texture_font_char_jp_question, texture_font_char_jp_double_quotation_open, texture_font_char_jp_double_quotation_close, texture_font_char_jp_wave_dash, - texture_font_char_jp_ellipsis, texture_font_char_jp_coin, texture_font_char_jp_star_filled, texture_font_char_jp_multiply, - texture_font_char_jp_interpunct, texture_font_char_jp_star_hollow, 0x0, 0x0, -#endif }; // credits font LUT 0x02008738-0x020087CB @@ -2075,15 +1096,6 @@ const u8 *const main_hud_camera_lut[] = { texture_hud_char_arrow_up, texture_hud_char_arrow_down, }; -// If you change the language here, the following Makefile rule also needs to -// change, to generate the right version of define_text.inc.c: -// $(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/$(VERSION)/define_text.inc.c -#if defined(VERSION_JP) || defined(VERSION_SH) -#include "text/jp/define_text.inc.c" -#elif defined(VERSION_US) -#include "text/us/define_text.inc.c" -#endif - UNUSED static const u64 segment2_unused_0 = 0; // 0x0200EC60 - 0x0200EC98 @@ -2447,49 +1459,27 @@ const Gfx dl_billboard_num_9[] = { gsSPEndDisplayList(), }; -ALIGNED8 static const u8 texture_shadow_quarter_circle[] = { -#include "textures/segment2/shadow_quarter_circle.ia8.inc.c" -}; +ALIGNED8 static const u8 texture_shadow_quarter_circle[] = "textures/segment2/shadow_quarter_circle.ia8"; -ALIGNED8 static const u8 texture_shadow_quarter_square[] = { -#include "textures/segment2/shadow_quarter_square.ia8.inc.c" -}; +ALIGNED8 static const u8 texture_shadow_quarter_square[] = "textures/segment2/shadow_quarter_square.ia8"; -ALIGNED8 const u8 texture_transition_star_half[] = { -#include "textures/segment2/segment2.0F458.ia8.inc.c" -}; +ALIGNED8 const u8 texture_transition_star_half[] = "textures/segment2/segment2.0F458.ia8"; -ALIGNED8 const u8 texture_transition_circle_half[] = { -#include "textures/segment2/segment2.0FC58.ia8.inc.c" -}; +ALIGNED8 const u8 texture_transition_circle_half[] = "textures/segment2/segment2.0FC58.ia8"; -ALIGNED8 const u8 texture_transition_mario[] = { -#include "textures/segment2/segment2.10458.ia8.inc.c" -}; +ALIGNED8 const u8 texture_transition_mario[] = "textures/segment2/segment2.10458.ia8"; -ALIGNED8 const u8 texture_transition_bowser_half[] = { -#include "textures/segment2/segment2.11458.ia8.inc.c" -}; +ALIGNED8 const u8 texture_transition_bowser_half[] = "textures/segment2/segment2.11458.ia8"; -ALIGNED8 const u8 texture_waterbox_water[] = { -#include "textures/segment2/segment2.11C58.rgba16.inc.c" -}; +ALIGNED8 const u8 texture_waterbox_water[] = "textures/segment2/segment2.11C58.rgba16"; -ALIGNED8 const u8 texture_waterbox_jrb_water[] = { -#include "textures/segment2/segment2.12458.rgba16.inc.c" -}; +ALIGNED8 const u8 texture_waterbox_jrb_water[] = "textures/segment2/segment2.12458.rgba16"; -ALIGNED8 const u8 texture_waterbox_unknown_water[] = { -#include "textures/segment2/segment2.12C58.rgba16.inc.c" -}; +ALIGNED8 const u8 texture_waterbox_unknown_water[] = "textures/segment2/segment2.12C58.rgba16"; -ALIGNED8 const u8 texture_waterbox_mist[] = { -#include "textures/segment2/segment2.13458.ia16.inc.c" -}; +ALIGNED8 const u8 texture_waterbox_mist[] = "textures/segment2/segment2.13458.ia16"; -ALIGNED8 const u8 texture_waterbox_lava[] = { -#include "textures/segment2/segment2.13C58.rgba16.inc.c" -}; +ALIGNED8 const u8 texture_waterbox_lava[] = "textures/segment2/segment2.13C58.rgba16"; // Unreferenced light group static const Lights1 segment2_lights_unused = gdSPDefLights1( @@ -2498,24 +1488,20 @@ static const Lights1 segment2_lights_unused = gdSPDefLights1( ); // 0x02014470 - 0x020144B0 -static const Mtx matrix_identity = { - +const Mtx matrix_identity = { {{1.0f, 0.0f, 0.0f, 0.0f}, {0.0f, 1.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 1.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 1.0f}} - }; // 0x020144B0 - 0x020144F0 static const Mtx matrix_fullscreen = { - {{2.0f / SCREEN_WIDTH, 0.0f, 0.0f, 0.0f}, {0.0f, 2.0f / SCREEN_HEIGHT, 0.0f, 0.0f}, {0.0f, 0.0f, -1.0f, 0.0f}, {-1.0f, -1.0f, -1.0f, 1.0f}} - }; @@ -2614,16 +1600,6 @@ const Gfx dl_skybox_begin[] = { gsSPEndDisplayList(), }; -// 0x02014738 - 0x02014768 -const Gfx dl_skybox_tile_tex_settings[] = { - gsSPMatrix(&matrix_identity, G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPTileSync(), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPEndDisplayList(), -}; - // 0x02014768 - 0x02014790 const Gfx dl_skybox_end[] = { gsDPPipeSync(), @@ -2667,9 +1643,7 @@ const Gfx dl_waterbox_end[] = { }; // 0x02014838 - 0x02014878 -ALIGNED8 static const u8 texture_ia8_up_arrow[] = { -#include "textures/segment2/segment2.14838.ia8.inc.c" -}; +ALIGNED8 static const u8 texture_ia8_up_arrow[] = "textures/segment2/segment2.14838.ia8"; // 0x02014878 - 0x020148B0 const Gfx dl_ia8_up_arrow_begin[] = { diff --git a/src/game/ingame_menu.c b/src/game/ingame_menu.c index 7c28c29383..e424389374 100644 --- a/src/game/ingame_menu.c +++ b/src/game/ingame_menu.c @@ -1,26 +1,28 @@ #include -#include "sm64.h" -#include "gfx_dimensions.h" -#include "memory.h" -#include "types.h" +#include "actors/common1.h" +#include "area.h" #include "audio/external.h" -#include "seq_ids.h" +#include "camera.h" +#include "course_table.h" #include "dialog_ids.h" +#include "engine/math_util.h" #include "game_init.h" -#include "save_file.h" +#include "gfx_dimensions.h" +#include "ingame_menu.h" #include "level_update.h" -#include "camera.h" -#include "text_strings.h" +#include "levels/castle_grounds/header.h" +#include "memory.h" +#include "print.h" +#include "save_file.h" #include "segment2.h" #include "segment7.h" -#include "eu_translation.h" -#include "ingame_menu.h" -#include "print.h" -#include "engine/math_util.h" -#include "course_table.h" +#include "seq_ids.h" +#include "sm64.h" +#include "types.h" #include "macros.h" #include "pc/cheats.h" +#include "pc/configfile.h" #ifdef BETTERCAMERA #include "bettercamera.h" #endif @@ -28,17 +30,8 @@ #include "options_menu.h" #endif -extern Gfx *gDisplayListHead; -extern s16 gCurrCourseNum; -extern s16 gCurrSaveFileNum; - -extern Gfx coin_seg3_dl_03007940[]; -extern Gfx coin_seg3_dl_03007968[]; -extern Gfx coin_seg3_dl_03007990[]; -extern Gfx coin_seg3_dl_030079B8[]; - -extern u8 main_menu_seg7_table_0700ABD0[]; -extern Gfx castle_grounds_seg7_dl_0700EA58[]; +#include "text/txtconv.h" +#include "text/text-loader.h" u16 gDialogColorFadeTimer; s8 gLastDialogLineNum; @@ -118,27 +111,13 @@ s16 gDialogScrollOffsetY = 0; s8 gDialogBoxType = DIALOG_TYPE_ROTATE; s16 gDialogID = -1; s16 gLastDialogPageStrPos = 0; -s16 gDialogTextPos = 0; // EU: D_802FD64C -#ifdef VERSION_EU -s32 gInGameLanguage = 0; -#endif +s16 gDialogTextPos = 0; s8 gDialogLineNum = 1; s8 gLastDialogResponse = 0; u8 gMenuHoldKeyIndex = 0; u8 gMenuHoldKeyTimer = 0; s32 gDialogResponse = 0; -#if !defined(EXTERNAL_DATA) && (defined(VERSION_JP) || defined(VERSION_SH) || defined(VERSION_EU)) -#ifdef VERSION_EU -#define CHCACHE_BUFLEN (8 * 8) // EU only converts 8x8 -#else -#define CHCACHE_BUFLEN (8 * 16) // JP only converts 8x16 or 16x8 characters -#endif -// stores char data unpacked from ia1 to ia8 or ia4 -// so that it won't be reconverted every time a character is rendered -static struct CachedChar { u8 used; u8 data[CHCACHE_BUFLEN]; } charCache[256]; -#endif // VERSION - void create_dl_identity_matrix(void) { Mtx *matrix = (Mtx *) alloc_display_list(sizeof(Mtx)); @@ -242,16 +221,7 @@ static inline void alloc_ia8_text_from_i1(u8 *out, u16 *in, s16 width, s16 heigh } static inline u8 *convert_ia8_char(u8 c, u16 *tex, s16 w, s16 h) { -#ifdef EXTERNAL_DATA return (u8 *)tex; // the data's just a name -#else - if (!tex) return NULL; - if (!charCache[c].used) { - charCache[c].used = 1; - alloc_ia8_text_from_i1(charCache[c].data, tex, w, h); - } - return charCache[c].data; -#endif } #endif @@ -303,16 +273,7 @@ static void alloc_ia4_tex_from_i1(u8 *out, u8 *in, s16 width, s16 height) { } static u8 *convert_ia4_char(u8 c, u8 *tex, s16 w, s16 h) { -#ifdef EXTERNAL_DATA - return tex; // the data's just a name -#else - if (!tex) return NULL; - if (!charCache[c].used) { - charCache[c].used = 1; - alloc_ia4_tex_from_i1(charCache[c].data, tex, w, h); - } - return charCache[c].data; -#endif + return tex; } void render_generic_char_at_pos(s16 xPos, s16 yPos, u8 c) { @@ -361,9 +322,9 @@ enum MultiStringIDs { STRING_THE, STRING_YOU }; * 1: 'you' */ #ifdef VERSION_US -void render_multi_text_string(s8 multiTextID) // US: 802D76C8 +void render_multi_text_string(s8 multiTextID) #elif defined(VERSION_EU) -void render_multi_text_string(s16 *xPos, s16 *yPos, s8 multiTextID) // EU: 802AD650 +void render_multi_text_string(s16 *xPos, s16 *yPos, s8 multiTextID) #endif { s8 i; @@ -423,7 +384,7 @@ void print_generic_string(s16 x, s16 y, const u8 *str) { case DIALOG_CHAR_LOWER_A_UMLAUT: render_lowercase_diacritic(&xCoord, &yCoord, ASCII_TO_DIALOG('a'), str[strPos] & 0xF); break; - case DIALOG_CHAR_UPPER_A_UMLAUT: // @bug grave and circumflux (0x64-0x65) are absent here + case DIALOG_CHAR_UPPER_A_UMLAUT: // @bug grave and circumflex (0x64-0x65) are absent here render_uppercase_diacritic(&xCoord, &yCoord, ASCII_TO_DIALOG('A'), str[strPos] & 0xF); break; case DIALOG_CHAR_LOWER_E_GRAVE: @@ -574,6 +535,9 @@ void print_hud_lut_string(s8 hudLUT, s16 x, s16 y, const u8 *str) { #else xStride = 12; //? Shindou uses this. #endif + if (str[strPos] >= 0x80) { + xStride = 8; + } } while (str[strPos] != GLOBAR_CHAR_TERMINATOR) { @@ -1028,12 +992,12 @@ void change_and_flash_dialog_text_color_lines(s8 colorMode, s8 lineNum) { #ifdef VERSION_EU void render_generic_dialog_char_at_pos(struct DialogEntry *dialog, s16 x, s16 y, u8 c) { - s16 width; // sp26 - s16 height; // sp24 + s16 width; + s16 height; s16 tmpX; s16 tmpY; - s16 xCoord; // sp1E - s16 yCoord; // sp1C + s16 xCoord; + s16 yCoord; void **fontLUT; void *packedTexture; void *unpackedTexture; @@ -1514,22 +1478,10 @@ void render_dialog_triangle_choice(void) { gSPDisplayList(gDisplayListHead++, dl_draw_triangle); } -#ifdef VERSION_EU -#define X_VAL5 122.0f -#define Y_VAL5_1 -16 -#define Y_VAL5_2 3 -#define X_Y_VAL6 0.5f -#elif defined(VERSION_US) #define X_VAL5 118.0f #define Y_VAL5_1 -16 #define Y_VAL5_2 5 #define X_Y_VAL6 0.8f -#elif defined(VERSION_JP) || defined(VERSION_SH) -#define X_VAL5 123.0f -#define Y_VAL5_1 -20 -#define Y_VAL5_2 2 -#define X_Y_VAL6 0.8f -#endif void render_dialog_string_color(s8 linesPerBox) { s32 timer = gGlobalTimer; @@ -1601,82 +1553,6 @@ void handle_special_dialog_text(s16 dialogID) { // dialog ID tables, in order s16 gMenuMode = -1; -u8 gEndCutsceneStrEn0[] = { TEXT_FILE_MARIO_EXCLAMATION }; -u8 gEndCutsceneStrEn1[] = { TEXT_POWER_STARS_RESTORED }; -u8 gEndCutsceneStrEn2[] = { TEXT_THANKS_TO_YOU }; -u8 gEndCutsceneStrEn3[] = { TEXT_THANK_YOU_MARIO }; -u8 gEndCutsceneStrEn4[] = { TEXT_SOMETHING_SPECIAL }; -u8 gEndCutsceneStrEn5[] = { TEXT_LISTEN_EVERYBODY }; -u8 gEndCutsceneStrEn6[] = { TEXT_LETS_HAVE_CAKE }; -u8 gEndCutsceneStrEn7[] = { TEXT_FOR_MARIO }; -u8 gEndCutsceneStrEn8[] = { TEXT_FILE_MARIO_QUESTION }; - -u8 *gEndCutsceneStringsEn[] = { - gEndCutsceneStrEn0, - gEndCutsceneStrEn1, - gEndCutsceneStrEn2, - gEndCutsceneStrEn3, - gEndCutsceneStrEn4, - gEndCutsceneStrEn5, - gEndCutsceneStrEn6, - gEndCutsceneStrEn7, - // This [8] string is actually unused. In the cutscene handler, the developers do not - // set the 8th one, but use the first string again at the very end, so Peach ends up - // saying "Mario!" twice. It is likely that she was originally meant to say "Mario?" at - // the end but the developers changed their mind, possibly because the line recorded - // sounded more like an exclamation than a question. - gEndCutsceneStrEn8, - NULL -}; - -#ifdef VERSION_EU -u8 gEndCutsceneStrFr0[] = { TEXT_FILE_MARIO_EXCLAMATION }; -u8 gEndCutsceneStrFr1[] = { TEXT_POWER_STARS_RESTORED_FR }; -u8 gEndCutsceneStrFr2[] = { TEXT_THANKS_TO_YOU_FR }; -u8 gEndCutsceneStrFr3[] = { TEXT_THANK_YOU_MARIO_FR }; -u8 gEndCutsceneStrFr4[] = { TEXT_SOMETHING_SPECIAL_FR }; -u8 gEndCutsceneStrFr5[] = { TEXT_COME_ON_EVERYBODY_FR }; -u8 gEndCutsceneStrFr6[] = { TEXT_LETS_HAVE_CAKE_FR }; -u8 gEndCutsceneStrFr7[] = { TEXT_FOR_MARIO_FR }; -u8 gEndCutsceneStrFr8[] = { TEXT_FILE_MARIO_QUESTION }; - -u8 *gEndCutsceneStringsFr[] = { - gEndCutsceneStrFr0, - gEndCutsceneStrFr1, - gEndCutsceneStrFr2, - gEndCutsceneStrFr3, - gEndCutsceneStrFr4, - gEndCutsceneStrFr5, - gEndCutsceneStrFr6, - gEndCutsceneStrFr7, - gEndCutsceneStrFr8, - NULL -}; - -u8 gEndCutsceneStrDe0[] = { TEXT_FILE_MARIO_EXCLAMATION }; -u8 gEndCutsceneStrDe1[] = { TEXT_POWER_STARS_RESTORED_DE }; -u8 gEndCutsceneStrDe2[] = { TEXT_THANKS_TO_YOU_DE }; -u8 gEndCutsceneStrDe3[] = { TEXT_THANK_YOU_MARIO_DE }; -u8 gEndCutsceneStrDe4[] = { TEXT_SOMETHING_SPECIAL_DE }; -u8 gEndCutsceneStrDe5[] = { TEXT_COME_ON_EVERYBODY_DE }; -u8 gEndCutsceneStrDe6[] = { TEXT_LETS_HAVE_CAKE_DE }; -u8 gEndCutsceneStrDe7[] = { TEXT_FOR_MARIO_DE }; -u8 gEndCutsceneStrDe8[] = { TEXT_FILE_MARIO_QUESTION }; - -u8 *gEndCutsceneStringsDe[] = { - gEndCutsceneStrDe0, - gEndCutsceneStrDe1, - gEndCutsceneStrDe2, - gEndCutsceneStrDe3, - gEndCutsceneStrDe4, - gEndCutsceneStrDe5, - gEndCutsceneStrDe6, - gEndCutsceneStrDe7, - gEndCutsceneStrDe8, - NULL -}; -#endif - u16 gCutsceneMsgFade = 0; s16 gCutsceneMsgIndex = -1; s16 gCutsceneMsgDuration = -1; @@ -1700,31 +1576,10 @@ s8 gDialogCourseActNum = 1; #endif void render_dialog_entries(void) { -#ifdef VERSION_EU - s8 lowerBound; -#endif - void **dialogTable; - struct DialogEntry *dialog; -#ifdef VERSION_US + + struct DialogEntry * dialog; + dialog = segmented_to_virtual(dialogPool[gDialogID]); s8 lowerBound; -#endif -#ifdef VERSION_EU - gInGameLanguage = eu_get_language(); - switch (gInGameLanguage) { - case LANGUAGE_ENGLISH: - dialogTable = segmented_to_virtual(dialog_table_eu_en); - break; - case LANGUAGE_FRENCH: - dialogTable = segmented_to_virtual(dialog_table_eu_fr); - break; - case LANGUAGE_GERMAN: - dialogTable = segmented_to_virtual(dialog_table_eu_de); - break; - } -#else - dialogTable = segmented_to_virtual(seg2_dialog_table); -#endif - dialog = segmented_to_virtual(dialogTable[gDialogID]); // if the dialog entry is invalid, set the ID to -1. if (segmented_to_virtual(NULL) == dialog) { @@ -1821,18 +1676,13 @@ void render_dialog_entries(void) { render_dialog_box_type(dialog, dialog->linesPerBox); gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, - 0, ensure_nonnegative(DIAG_VAL2 - dialog->width), #ifdef VERSION_EU - SCREEN_WIDTH, - ensure_nonnegative((240 - dialog->width) + ((dialog->linesPerBox * 80) / DIAG_VAL4) / gDialogBoxScale)); #else - SCREEN_WIDTH, - ensure_nonnegative(240 + ((dialog->linesPerBox * 80) / DIAG_VAL4) - dialog->width)); #endif #if defined(VERSION_JP) || defined(VERSION_SH) @@ -1942,6 +1792,19 @@ void set_cutscene_message(s16 xOffset, s16 yOffset, s16 msgIndex, s16 msgDuratio void do_cutscene_handler(void) { s16 x; + u8 * gEndCutsceneStringsEn[] = { + get_key_string("TEXT_FILE_MARIO_EXCLAMATION"), + get_key_string("TEXT_POWER_STARS_RESTORED"), + get_key_string("TEXT_THANKS_TO_YOU"), + get_key_string("TEXT_THANK_YOU_MARIO"), + get_key_string("TEXT_SOMETHING_SPECIAL"), + get_key_string("TEXT_LISTEN_EVERYBODY"), + get_key_string("TEXT_LETS_HAVE_CAKE"), + get_key_string("TEXT_FOR_MARIO"), + get_key_string("TEXT_FILE_MARIO_QUESTION"), + NULL + }; + // is a cutscene playing? do not perform this handler's actions if so. if (gCutsceneMsgIndex == -1) { return; @@ -2008,10 +1871,6 @@ void do_cutscene_handler(void) { gCutsceneMsgTimer++; } -#ifndef VERSION_JP -extern Gfx castle_grounds_seg7_us_dl_0700F2E8[]; -#endif - #if defined(VERSION_JP) || defined(VERSION_SH) #define PEACH_MESSAGE_TIMER 170 #else @@ -2028,26 +1887,9 @@ extern Gfx castle_grounds_seg7_us_dl_0700F2E8[]; // "Dear Mario" message handler void print_peach_letter_message(void) { - void **dialogTable; struct DialogEntry *dialog; u8 *str; -#ifdef VERSION_EU - gInGameLanguage = eu_get_language(); - switch (gInGameLanguage) { - case LANGUAGE_ENGLISH: - dialogTable = segmented_to_virtual(dialog_table_eu_en); - break; - case LANGUAGE_FRENCH: - dialogTable = segmented_to_virtual(dialog_table_eu_fr); - break; - case LANGUAGE_GERMAN: - dialogTable = segmented_to_virtual(dialog_table_eu_de); - break; - } -#else - dialogTable = segmented_to_virtual(seg2_dialog_table); -#endif - dialog = segmented_to_virtual(dialogTable[gDialogID]); + dialog = segmented_to_virtual(dialogPool[gDialogID]); str = segmented_to_virtual(dialog->str); @@ -2060,15 +1902,10 @@ void print_peach_letter_message(void) { gDPSetEnvColor(gDisplayListHead++, 20, 20, 20, gCutsceneMsgFade); print_generic_string(STR_X, STR_Y, str); -#if defined(VERSION_JP) || defined(VERSION_SH) - gSPDisplayList(gDisplayListHead++, dl_ia_text_end); -#endif gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, 255); -#ifndef VERSION_JP gSPDisplayList(gDisplayListHead++, dl_ia_text_end); gDPSetEnvColor(gDisplayListHead++, 200, 80, 120, gCutsceneMsgFade); gSPDisplayList(gDisplayListHead++, castle_grounds_seg7_us_dl_0700F2E8); -#endif // at the start/end of message, reset the fade. if (gCutsceneMsgTimer == 0) { @@ -2189,7 +2026,7 @@ void render_pause_red_coins(void) { } #ifdef VERSION_EU -u8 gTextCourseArr[][7] = { // D_802FDA10 +u8 gTextCourseArr[][7] = { { TEXT_COURSE }, { TEXT_COURSE_FR }, { TEXT_COURSE_DE } @@ -2214,20 +2051,6 @@ u8 gTextCourseArr[][7] = { // D_802FDA10 #endif void render_pause_my_score_coins(void) { -#ifdef VERSION_EU - u8 textMyScore[][10] = { - { TEXT_MY_SCORE }, - { TEXT_MY_SCORE_FR }, - { TEXT_MY_SCORE_DE } - }; -#define textMyScore textMyScore[gInGameLanguage] -#else - u8 textCourse[] = { TEXT_COURSE }; - u8 textMyScore[] = { TEXT_MY_SCORE }; -#endif - u8 textStar[] = { TEXT_STAR }; - u8 textUnfilledStar[] = { TEXT_UNFILLED_STAR }; - u8 strCourseNum[4]; void **courseNameTbl; u8 *courseName; @@ -2275,7 +2098,7 @@ void render_pause_my_score_coins(void) { gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); if (courseIndex < COURSE_STAGES_COUNT && save_file_get_course_star_count(gCurrSaveFileNum - 1, courseIndex) != 0) { - print_generic_string(MYSCORE_X, 121, textMyScore); + print_generic_string(MYSCORE_X, 121, get_key_string("TEXT_MY_SCORE")); } courseName = segmented_to_virtual(courseNameTbl[courseIndex]); @@ -2284,7 +2107,7 @@ void render_pause_my_score_coins(void) { #ifdef VERSION_EU print_generic_string(48, 157, gTextCourseArr[gInGameLanguage]); #else - print_generic_string(63, 157, textCourse); + print_generic_string(63, 157, get_key_string("TEXT_COURSE")); #endif int_to_str(gCurrCourseNum, strCourseNum); #ifdef VERSION_EU @@ -2296,9 +2119,9 @@ void render_pause_my_score_coins(void) { actName = segmented_to_virtual(actNameTbl[(gCurrCourseNum - 1) * 6 + gDialogCourseActNum - 1]); if (starFlags & (1 << (gDialogCourseActNum - 1))) { - print_generic_string(TXT_STAR_X, 140, textStar); + print_generic_string(TXT_STAR_X, 140, get_key_string("TEXT_STAR")); } else { - print_generic_string(TXT_STAR_X, 140, textUnfilledStar); + print_generic_string(TXT_STAR_X, 140, get_key_string("TEXT_UNFILLED_STAR")); } print_generic_string(ACT_NAME_X, 140, actName); #ifndef VERSION_JP @@ -2330,35 +2153,15 @@ void render_pause_my_score_coins(void) { #endif void render_pause_camera_options(s16 x, s16 y, s8 *index, s16 xIndex) { - u8 textLakituMario[] = { TEXT_LAKITU_MARIO }; - u8 textLakituStop[] = { TEXT_LAKITU_STOP }; -#ifdef VERSION_EU - u8 textNormalUpClose[][20] = { - { TEXT_NORMAL_UPCLOSE }, - { TEXT_NORMAL_UPCLOSE_FR }, - { TEXT_NORMAL_UPCLOSE_DE } - }; - u8 textNormalFixed[][17] = { - { TEXT_NORMAL_FIXED }, - { TEXT_NORMAL_FIXED_FR }, - { TEXT_NORMAL_FIXED_DE }, - }; -#define textNormalUpClose textNormalUpClose[gInGameLanguage] -#define textNormalFixed textNormalFixed[gInGameLanguage] -#else - u8 textNormalUpClose[] = { TEXT_NORMAL_UPCLOSE }; - u8 textNormalFixed[] = { TEXT_NORMAL_FIXED }; -#endif - handle_menu_scrolling(MENU_SCROLL_HORIZONTAL, index, 1, 2); gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); - print_generic_string(x + 14, y + 2, textLakituMario); - print_generic_string(x + TXT1_X, y - 13, textNormalUpClose); - print_generic_string(x + 124, y + 2, textLakituStop); - print_generic_string(x + TXT2_X, y - 13, textNormalFixed); + print_generic_string(x + 14, y + 2, get_key_string("TEXT_LAKITU_MARIO")); + print_generic_string(x + TXT1_X, y - 13, get_key_string("TEXT_NORMAL_UPCLOSE")); + print_generic_string(x + 124, y + 2, get_key_string("TEXT_LAKITU_STOP")); + print_generic_string(x + TXT2_X, y - 13, get_key_string("TEXT_NORMAL_FIXED")); gSPDisplayList(gDisplayListHead++, dl_ia_text_end); create_dl_translation_matrix(MENU_MTX_PUSH, ((index[0] - 1) * xIndex) + x, y + Y_VAL7, 0); @@ -2385,42 +2188,17 @@ void render_pause_camera_options(s16 x, s16 y, s8 *index, s16 xIndex) { #endif void render_pause_course_options(s16 x, s16 y, s8 *index, s16 yIndex) { -#ifdef VERSION_EU - u8 textContinue[][10] = { - { TEXT_CONTINUE }, - { TEXT_CONTINUE_FR }, - { TEXT_CONTINUE_DE } - }; - u8 textExitCourse[][15] = { - { TEXT_EXIT_COURSE }, - { TEXT_EXIT_COURSE_FR }, - { TEXT_EXIT_COURSE_DE } - }; - - u8 textCameraAngleR[][24] = { - { TEXT_CAMERA_ANGLE_R }, - { TEXT_CAMERA_ANGLE_R_FR }, - { TEXT_CAMERA_ANGLE_R_DE } - }; -#define textContinue textContinue[gInGameLanguage] -#define textExitCourse textExitCourse[gInGameLanguage] -#define textCameraAngleR textCameraAngleR[gInGameLanguage] -#else - u8 textContinue[] = { TEXT_CONTINUE }; - u8 textExitCourse[] = { TEXT_EXIT_COURSE }; - u8 textCameraAngleR[] = { TEXT_CAMERA_ANGLE_R }; -#endif handle_menu_scrolling(MENU_SCROLL_VERTICAL, index, 1, 3); gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); - print_generic_string(x + 10, y - 2, textContinue); - print_generic_string(x + 10, y - 17, textExitCourse); + print_generic_string(x + 10, y - 2, get_key_string("TEXT_CONTINUE")); + print_generic_string(x + 10, y - 17, get_key_string("TEXT_EXIT_COURSE")); if (index[0] != 3) { - print_generic_string(x + 10, y - 33, textCameraAngleR); + print_generic_string(x + 10, y - 33, get_key_string("TEXT_CAMERA_ANGLE_R")); gSPDisplayList(gDisplayListHead++, dl_ia_text_end); create_dl_translation_matrix(MENU_MTX_PUSH, x - X_VAL8, (y - ((index[0] - 1) * yIndex)) - Y_VAL8, 0); @@ -2468,18 +2246,12 @@ void highlight_last_course_complete_stars(void) { gDialogLineNum = courseDone; } -void print_hud_pause_colorful_str(void) { - u8 textPause[] = { TEXT_PAUSE }; +void print_hud_pause_colorful_str(void) { gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); -#ifdef VERSION_EU - print_hud_lut_string(HUD_LUT_GLOBAL, get_str_x_pos_from_center_scale( - SCREEN_WIDTH / 2, textPause, 12.0f), 81, textPause); -#else - print_hud_lut_string(HUD_LUT_GLOBAL, 123, 81, textPause); -#endif + print_hud_lut_string(HUD_LUT_GLOBAL, 123, 81, get_key_string("TEXT_PAUSE")); gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); } @@ -2489,8 +2261,6 @@ void render_pause_castle_course_stars(s16 x, s16 y, s16 fileNum, s16 courseNum) u8 str[COURSE_STAGES_COUNT * 2]; - u8 textStar[] = { TEXT_STAR }; - u8 starFlags = save_file_get_star_flags(fileNum, courseNum); u16 starCount = save_file_get_course_star_count(fileNum, courseNum); @@ -2498,7 +2268,7 @@ void render_pause_castle_course_stars(s16 x, s16 y, s16 fileNum, s16 courseNum) if (starFlags & 0x40) { starCount--; - print_generic_string(x + 89, y - 5, textStar); + print_generic_string(x + 89, y - 5, get_key_string("TEXT_STAR")); } while (hasStar != starCount) { @@ -2525,38 +2295,13 @@ void render_pause_castle_course_stars(s16 x, s16 y, s16 fileNum, s16 courseNum) } void render_pause_castle_main_strings(s16 x, s16 y) { -#ifdef VERSION_EU - void **courseNameTbl; -#else - void **courseNameTbl = segmented_to_virtual(seg2_course_name_table); -#endif - -#ifdef VERSION_EU - u8 textCoin[] = { TEXT_COIN }; - u8 textX[] = { TEXT_VARIABLE_X }; -#else - u8 textCoin[] = { TEXT_COIN_X }; -#endif + void **courseNameTbl = segmented_to_virtual(seg2_course_name_table); void *courseName; u8 strVal[8]; s16 starNum = gDialogLineNum; -#ifdef VERSION_EU - switch (gInGameLanguage) { - case LANGUAGE_ENGLISH: - courseNameTbl = segmented_to_virtual(course_name_table_eu_en); - break; - case LANGUAGE_FRENCH: - courseNameTbl = segmented_to_virtual(course_name_table_eu_fr); - break; - case LANGUAGE_GERMAN: - courseNameTbl = segmented_to_virtual(course_name_table_eu_de); - break; - } -#endif - handle_menu_scrolling(MENU_SCROLL_VERTICAL, &gDialogLineNum, -1, COURSE_STAGES_COUNT + 1); if (gDialogLineNum == COURSE_STAGES_COUNT + 1) { @@ -2588,30 +2333,17 @@ void render_pause_castle_main_strings(s16 x, s16 y) { if (gDialogLineNum < COURSE_STAGES_COUNT) { courseName = segmented_to_virtual(courseNameTbl[gDialogLineNum]); render_pause_castle_course_stars(x, y, gCurrSaveFileNum - 1, gDialogLineNum); - print_generic_string(x + 34, y - 5, textCoin); -#ifdef VERSION_EU - print_generic_string(x + 44, y - 5, textX); -#endif + print_generic_string(x + 34, y - 5, get_key_string("TEXT_COIN_X")); int_to_str(save_file_get_course_coin_score(gCurrSaveFileNum - 1, gDialogLineNum), strVal); print_generic_string(x + 54, y - 5, strVal); -#ifdef VERSION_EU - print_generic_string(x - 17, y + 30, courseName); -#endif - } else { - u8 textStarX[] = { TEXT_STAR_X }; + } else { courseName = segmented_to_virtual(courseNameTbl[COURSE_MAX]); - print_generic_string(x + 40, y + 13, textStarX); + print_generic_string(x + 40, y + 13, get_key_string("TEXT_STAR_X")); int_to_str(save_file_get_total_star_count(gCurrSaveFileNum - 1, COURSE_BONUS_STAGES - 1, COURSE_MAX - 1), strVal); print_generic_string(x + 60, y + 13, strVal); -#ifdef VERSION_EU - print_generic_string(get_str_x_pos_from_center(x + 51, courseName, 10.0f), y + 30, courseName); -#endif } -#ifndef VERSION_EU print_generic_string(x - 9, y + 30, courseName); -#endif - gSPDisplayList(gDisplayListHead++, dl_ia_text_end); } @@ -2623,9 +2355,6 @@ s8 gHudFlash = 0; s16 render_pause_courses_and_castle(void) { s16 num; -#ifdef VERSION_EU - gInGameLanguage = eu_get_language(); -#endif #ifdef EXT_OPTIONS_MENU if (optmenu_open == 0) { #endif @@ -2634,11 +2363,7 @@ s16 render_pause_courses_and_castle(void) { gDialogLineNum = 1; gDialogTextAlpha = 0; level_set_transition(-1, 0); -#if defined(VERSION_JP) || defined(VERSION_SH) - play_sound(SOUND_MENU_PAUSE, gDefaultSoundArgs); -#else play_sound(SOUND_MENU_PAUSE_HIGHPRIO, gDefaultSoundArgs); -#endif if (gCurrCourseNum >= COURSE_MIN && gCurrCourseNum <= COURSE_MAX) { change_dialog_camera_angle(); @@ -2731,41 +2456,15 @@ s16 render_pause_courses_and_castle(void) { #define HUD_PRINT_CONGRATULATIONS 1 void print_hud_course_complete_string(s8 str) { -#ifdef VERSION_EU - u8 textHiScore[][15] = { - { TEXT_HUD_HI_SCORE }, - { TEXT_HUD_HI_SCORE_FR }, - { TEXT_HUD_HI_SCORE_DE } - }; - u8 textCongratulations[][16] = { - { TEXT_HUD_CONGRATULATIONS }, - { TEXT_HUD_CONGRATULATIONS_FR }, - { TEXT_HUD_CONGRATULATIONS_DE } - }; -#else - u8 textHiScore[] = { TEXT_HUD_HI_SCORE }; - u8 textCongratulations[] = { TEXT_HUD_CONGRATULATIONS }; -#endif - u8 colorFade = sins(gDialogColorFadeTimer) * 50.0f + 200.0f; gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin); gDPSetEnvColor(gDisplayListHead++, colorFade, colorFade, colorFade, 255); if (str == HUD_PRINT_HISCORE) { -#ifdef VERSION_EU - print_hud_lut_string(HUD_LUT_GLOBAL, get_str_x_pos_from_center_scale(160, textHiScore[gInGameLanguage], 12.0f), - 36, textHiScore[gInGameLanguage]); -#else - print_hud_lut_string(HUD_LUT_GLOBAL, TXT_HISCORE_X, TXT_HISCORE_Y, textHiScore); -#endif + print_hud_lut_string(HUD_LUT_GLOBAL, TXT_HISCORE_X, TXT_HISCORE_Y, get_key_string("TEXT_HUD_HI_SCORE")); } else { // HUD_PRINT_CONGRATULATIONS -#ifdef VERSION_EU - print_hud_lut_string(HUD_LUT_GLOBAL, get_str_x_pos_from_center_scale(160, textCongratulations[gInGameLanguage], 12.0f), - 67, textCongratulations[gInGameLanguage]); -#else - print_hud_lut_string(HUD_LUT_GLOBAL, TXT_CONGRATS_X, 67, textCongratulations); -#endif + print_hud_lut_string(HUD_LUT_GLOBAL, TXT_CONGRATS_X, 67, get_key_string("TEXT_HUD_CONGRATULATIONS")); } gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); @@ -2838,48 +2537,13 @@ void play_star_fanfare_and_flash_hud(s32 arg, u8 starNum) { #endif void render_course_complete_lvl_info_and_hud_str(void) { -#if defined(VERSION_JP) || defined(VERSION_SH) - u8 textSymStar[] = { GLYPH_STAR, GLYPH_SPACE }; - u8 textCourse[] = { TEXT_COURSE }; - u8 textCatch[] = { TEXT_CATCH }; - u8 textClear[] = { TEXT_CLEAR }; -#elif defined(VERSION_EU) - UNUSED u8 textCatch[] = { TEXT_CATCH }; // unused in EU - u8 textSymStar[] = { GLYPH_STAR, GLYPH_SPACE }; -#define textCourse gTextCourseArr[gInGameLanguage] -#else - u8 textCourse[] = { TEXT_COURSE }; - UNUSED u8 textCatch[] = { TEXT_CATCH }; // unused in US - UNUSED u8 textClear[] = { TEXT_CLEAR }; u8 textSymStar[] = { GLYPH_STAR, GLYPH_SPACE }; -#endif - void **actNameTbl; void **courseNameTbl; u8 *name; - u8 strCourseNum[4]; - -#ifdef VERSION_EU - s16 centerX; - switch (gInGameLanguage) { - case LANGUAGE_ENGLISH: - actNameTbl = segmented_to_virtual(act_name_table_eu_en); - courseNameTbl = segmented_to_virtual(course_name_table_eu_en); - break; - case LANGUAGE_FRENCH: - actNameTbl = segmented_to_virtual(act_name_table_eu_fr); - courseNameTbl = segmented_to_virtual(course_name_table_eu_fr); - break; - case LANGUAGE_GERMAN: - actNameTbl = segmented_to_virtual(act_name_table_eu_de); - courseNameTbl = segmented_to_virtual(course_name_table_eu_de); - break; - } -#else actNameTbl = segmented_to_virtual(seg2_act_name_table); courseNameTbl = segmented_to_virtual(seg2_course_name_table); -#endif if (gLastCompletedCourseNum <= COURSE_STAGES_MAX) { print_hud_course_complete_coins(118, 103); @@ -2894,10 +2558,10 @@ void render_course_complete_lvl_info_and_hud_str(void) { gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); int_to_str(gLastCompletedCourseNum, strCourseNum); gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, gDialogTextAlpha); - print_generic_string(65, 165, textCourse); + print_generic_string(65, 165, get_key_string("TEXT_COURSE")); print_generic_string(CRS_NUM_X2, 165, strCourseNum); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); - print_generic_string(63, 167, textCourse); + print_generic_string(63, 167, get_key_string("TEXT_COURSE")); print_generic_string(CRS_NUM_X3, 167, strCourseNum); gSPDisplayList(gDisplayListHead++, dl_ia_text_end); } else if (gLastCompletedCourseNum == COURSE_BITDW || gLastCompletedCourseNum == COURSE_BITFS) { @@ -2909,12 +2573,12 @@ void render_course_complete_lvl_info_and_hud_str(void) { #endif print_generic_string(TXT_NAME_X1, 130, name); #ifndef VERSION_EU - print_generic_string(TXT_CLEAR_X1, 130, textClear); + print_generic_string(TXT_CLEAR_X1, 130, get_key_string("TEXT_CLEAR")); #endif gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); print_generic_string(TXT_NAME_X2, 132, name); #ifndef VERSION_EU - print_generic_string(TXT_CLEAR_X2, 132, textClear); + print_generic_string(TXT_CLEAR_X2, 132, get_key_string("TEXT_CLEAR")); #endif gSPDisplayList(gDisplayListHead++, dl_ia_text_end); print_hud_course_complete_string(HUD_PRINT_CONGRATULATIONS); @@ -2934,89 +2598,29 @@ void render_course_complete_lvl_info_and_hud_str(void) { gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); gDPSetEnvColor(gDisplayListHead++, 0, 0, 0, gDialogTextAlpha); print_generic_string(76, 145, name); -#if defined(VERSION_JP) || defined(VERSION_SH) - print_generic_string(220, 145, textCatch); -#endif gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); print_generic_string(74, 147, name); -#if defined(VERSION_JP) || defined(VERSION_SH) - print_generic_string(218, 147, textCatch); -#endif gSPDisplayList(gDisplayListHead++, dl_ia_text_end); } -#if defined(VERSION_JP) || defined(VERSION_SH) -#define TXT_SAVEOPTIONS_X x + 10 -#elif defined(VERSION_US) #define TXT_SAVEOPTIONS_X x + 12 -#elif defined(VERSION_EU) -#define TXT_SAVEOPTIONS_X xOffset -#endif -#if defined(VERSION_JP) || defined(VERSION_SH) -#define TXT_SAVECONT_Y 2 -#define TXT_SAVEQUIT_Y 18 -#define TXT_SAVE_EXIT_GAME_Y 38 -#define TXT_CONTNOSAVE_Y 54 -#else #define TXT_SAVECONT_Y 0 #define TXT_SAVEQUIT_Y 20 #define TXT_SAVE_EXIT_GAME_Y 40 #define TXT_CONTNOSAVE_Y 60 -#endif -#ifdef VERSION_EU -#define X_VAL9 xOffset - 12 -void render_save_confirmation(s16 y, s8 *index, s16 sp6e) -#else #define X_VAL9 x -void render_save_confirmation(s16 x, s16 y, s8 *index, s16 sp6e) -#endif -{ -#ifdef VERSION_EU - u8 textSaveAndContinueArr[][24] = { - { TEXT_SAVE_AND_CONTINUE }, - { TEXT_SAVE_AND_CONTINUE_FR }, - { TEXT_SAVE_AND_CONTINUE_DE } - }; - u8 textSaveAndQuitArr[][22] = { - { TEXT_SAVE_AND_QUIT }, - { TEXT_SAVE_AND_QUIT_FR }, - { TEXT_SAVE_AND_QUIT_DE } - }; - - u8 textSaveExitGame[][26] = { // New function to exit game - { TEXT_SAVE_EXIT_GAME }, - { TEXT_SAVE_EXIT_GAME_FR }, - { TEXT_SAVE_EXIT_GAME_DE } - }; - - u8 textContinueWithoutSaveArr[][27] = { - { TEXT_CONTINUE_WITHOUT_SAVING }, - { TEXT_CONTINUE_WITHOUT_SAVING_FR }, - { TEXT_CONTINUE_WITHOUT_SAVING_DE } - }; - -#define textSaveAndContinue textSaveAndContinueArr[gInGameLanguage] -#define textSaveAndQuit textSaveAndQuitArr[gInGameLanguage] -#define textSaveExitGame textSaveExitGame[gInGameLanguage] -#define textContinueWithoutSave textContinueWithoutSaveArr[gInGameLanguage] - s16 xOffset = get_str_x_pos_from_center(160, textContinueWithoutSaveArr[gInGameLanguage], 12.0f); -#else - u8 textSaveAndContinue[] = { TEXT_SAVE_AND_CONTINUE }; - u8 textSaveAndQuit[] = { TEXT_SAVE_AND_QUIT }; - u8 textSaveExitGame[] = { TEXT_SAVE_EXIT_GAME }; - u8 textContinueWithoutSave[] = { TEXT_CONTINUE_WITHOUT_SAVING }; -#endif +void render_save_confirmation(s16 x, s16 y, s8 *index, s16 sp6e) { handle_menu_scrolling(MENU_SCROLL_VERTICAL, index, 1, 4); // Increased to '4' to handle Exit Game gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); - print_generic_string(TXT_SAVEOPTIONS_X, y + TXT_SAVECONT_Y, textSaveAndContinue); - print_generic_string(TXT_SAVEOPTIONS_X, y - TXT_SAVEQUIT_Y, textSaveAndQuit); - print_generic_string(TXT_SAVEOPTIONS_X, y - TXT_SAVE_EXIT_GAME_Y, textSaveExitGame); - print_generic_string(TXT_SAVEOPTIONS_X, y - TXT_CONTNOSAVE_Y, textContinueWithoutSave); + print_generic_string(TXT_SAVEOPTIONS_X, y + TXT_SAVECONT_Y, get_key_string("TEXT_SAVE_AND_CONTINUE")); + print_generic_string(TXT_SAVEOPTIONS_X, y - TXT_SAVEQUIT_Y, get_key_string("TEXT_SAVE_AND_QUIT")); + print_generic_string(TXT_SAVEOPTIONS_X, y - TXT_CONTNOSAVE_Y, get_key_string("TEXT_CONTINUE_WITHOUT_SAVING")); + print_generic_string(TXT_SAVEOPTIONS_X, y - TXT_SAVE_EXIT_GAME_Y, get_key_string("TEXT_SAVE_EXIT_GAME")); gSPDisplayList(gDisplayListHead++, dl_ia_text_end); @@ -3108,10 +2712,9 @@ s16 render_menus_and_dialogs() { gDialogColorFadeTimer = (s16) gDialogColorFadeTimer + 0x1000; } else if (gDialogID != -1) { - // Peach message "Dear Mario" new game dialog + // The Peach "Dear Mario" message needs to be repositioned separately if (gDialogID == 20) { - print_peach_letter_message(); // the peach message needs to be - // repositioned seperately + print_peach_letter_message(); return mode; } diff --git a/src/game/options_menu.c b/src/game/options_menu.c index e004749cbe..089de7fd0d 100644 --- a/src/game/options_menu.c +++ b/src/game/options_menu.c @@ -1,7 +1,6 @@ #ifdef EXT_OPTIONS_MENU #include "sm64.h" -#include "include/text_strings.h" #include "engine/math_util.h" #include "audio/external.h" #include "game/camera.h" @@ -21,10 +20,12 @@ #include "pc/cheats.h" #include "pc/configfile.h" #include "pc/controller/controller_api.h" - #include #include "../../include/libc/stdlib.h" +#include "text/txtconv.h" +#include "text/text-loader.h" + u8 optmenu_open = 0; static u8 optmenu_binding = 0; @@ -40,88 +41,96 @@ static s32 l_counter = 0; // menus: add a new submenu definition and a new // option to the optsMain list -static const u8 toggleStr[][16] = { - { TEXT_OPT_DISABLED }, - { TEXT_OPT_ENABLED }, +static const u8 toggleStr[][20] = { + "TEXT_OPT_DISABLED", + "TEXT_OPT_ENABLED" }; static const u8 menuStr[][32] = { - { TEXT_OPT_HIGHLIGHT }, - { TEXT_OPT_BUTTON1 }, - { TEXT_OPT_BUTTON2 }, - { TEXT_OPT_OPTIONS }, - { TEXT_OPT_CAMERA }, - { TEXT_OPT_CONTROLS }, - { TEXT_OPT_VIDEO }, - { TEXT_OPT_AUDIO }, - { TEXT_EXIT_GAME }, - { TEXT_OPT_CHEATS }, - + "TEXT_OPT_HIGHLIGHT", + "TEXT_OPT_BUTTON1", + "TEXT_OPT_BUTTON2", + "TEXT_OPT_OPTIONS", + "TEXT_OPT_CAMERA", + "TEXT_OPT_CONTROLS", + "TEXT_OPT_VIDEO", + "TEXT_OPT_AUDIO", + "TEXT_EXIT_GAME", + "TEXT_OPT_CHEATS", + "TEXT_OPT_GAME" }; static const u8 optsCameraStr[][32] = { - { TEXT_OPT_CAMX }, - { TEXT_OPT_CAMY }, - { TEXT_OPT_INVERTX }, - { TEXT_OPT_INVERTY }, - { TEXT_OPT_CAMC }, - { TEXT_OPT_CAMP }, - { TEXT_OPT_ANALOGUE }, - { TEXT_OPT_MOUSE }, - { TEXT_OPT_CAMD }, + "TEXT_OPT_CAMX", + "TEXT_OPT_CAMY", + "TEXT_OPT_INVERTX", + "TEXT_OPT_INVERTY", + "TEXT_OPT_CAMC", + "TEXT_OPT_CAMP", + "TEXT_OPT_ANALOGUE", + "TEXT_OPT_MOUSE", + "TEXT_OPT_CAMD", + "TEXT_OPT_CAMON" +}; + +// TODO: Get dynamic languages +// This is only for testing + +static const u8 optsGameStr[][32] = { + "TEXT_OPT_LANGUAGE" }; static const u8 optsVideoStr[][32] = { - { TEXT_OPT_FSCREEN }, - { TEXT_OPT_TEXFILTER }, - { TEXT_OPT_NEAREST }, - { TEXT_OPT_LINEAR }, - { TEXT_OPT_RESETWND }, - { TEXT_OPT_VSYNC }, - { TEXT_OPT_DOUBLE }, - { TEXT_OPT_HUD }, - { TEXT_OPT_THREEPT }, - { TEXT_OPT_APPLY }, + "TEXT_OPT_FSCREEN", + "TEXT_OPT_TEXFILTER", + "TEXT_OPT_NEAREST", + "TEXT_OPT_LINEAR", + "TEXT_OPT_RESETWND", + "TEXT_OPT_VSYNC", + "TEXT_OPT_AUTO", + "TEXT_OPT_HUD", + "TEXT_OPT_THREEPT", + "TEXT_OPT_APPLY" }; static const u8 optsAudioStr[][32] = { - { TEXT_OPT_MVOLUME }, - { TEXT_OPT_MUSVOLUME }, - { TEXT_OPT_SFXVOLUME }, - { TEXT_OPT_ENVVOLUME }, + "TEXT_OPT_MVOLUME", + "TEXT_OPT_MUSVOLUME", + "TEXT_OPT_SFXVOLUME", + "TEXT_OPT_ENVVOLUME" }; static const u8 optsCheatsStr[][64] = { - { TEXT_OPT_CHEAT1 }, - { TEXT_OPT_CHEAT2 }, - { TEXT_OPT_CHEAT3 }, - { TEXT_OPT_CHEAT4 }, - { TEXT_OPT_CHEAT5 }, - { TEXT_OPT_CHEAT6 }, - { TEXT_OPT_CHEAT7 }, - { TEXT_OPT_CHEAT8 }, - { TEXT_OPT_CHEAT9 }, + "TEXT_OPT_CHEAT1", + "TEXT_OPT_CHEAT2", + "TEXT_OPT_CHEAT3", + "TEXT_OPT_CHEAT4", + "TEXT_OPT_CHEAT5", + "TEXT_OPT_CHEAT6", + "TEXT_OPT_CHEAT7", + "TEXT_OPT_CHEAT8", + "TEXT_OPT_CHEAT9" }; static const u8 bindStr[][32] = { - { TEXT_OPT_UNBOUND }, - { TEXT_OPT_PRESSKEY }, - { TEXT_BIND_A }, - { TEXT_BIND_B }, - { TEXT_BIND_START }, - { TEXT_BIND_L }, - { TEXT_BIND_R }, - { TEXT_BIND_Z }, - { TEXT_BIND_C_UP }, - { TEXT_BIND_C_DOWN }, - { TEXT_BIND_C_LEFT }, - { TEXT_BIND_C_RIGHT }, - { TEXT_BIND_UP }, - { TEXT_BIND_DOWN }, - { TEXT_BIND_LEFT }, - { TEXT_BIND_RIGHT }, - { TEXT_OPT_DEADZONE }, - { TEXT_OPT_RUMBLE } + "TEXT_OPT_UNBOUND", + "TEXT_OPT_PRESSKEY", + "TEXT_BIND_A", + "TEXT_BIND_B", + "TEXT_BIND_START", + "TEXT_BIND_L", + "TEXT_BIND_R", + "TEXT_BIND_Z", + "TEXT_BIND_C_UP", + "TEXT_BIND_C_DOWN", + "TEXT_BIND_C_LEFT", + "TEXT_BIND_C_RIGHT", + "TEXT_BIND_UP", + "TEXT_BIND_DOWN", + "TEXT_BIND_LEFT", + "TEXT_BIND_RIGHT", + "TEXT_OPT_DEADZONE", + "TEXT_OPT_RUMBLE" }; static const u8 *filterChoices[] = { @@ -218,12 +227,13 @@ static void optvideo_apply(UNUSED struct Option *self, s32 arg) { #ifdef BETTERCAMERA static struct Option optsCamera[] = { - DEF_OPT_TOGGLE( optsCameraStr[6], &configEnableCamera ), + DEF_OPT_TOGGLE( optsCameraStr[9], &configEnableCamera ), + DEF_OPT_TOGGLE( optsCameraStr[6], &configCameraAnalog ), DEF_OPT_TOGGLE( optsCameraStr[7], &configCameraMouse ), DEF_OPT_TOGGLE( optsCameraStr[2], &configCameraInvertX ), DEF_OPT_TOGGLE( optsCameraStr[3], &configCameraInvertY ), - DEF_OPT_SCROLL( optsCameraStr[0], &configCameraXSens, 10, 250, 1 ), - DEF_OPT_SCROLL( optsCameraStr[1], &configCameraYSens, 10, 250, 1 ), + DEF_OPT_SCROLL( optsCameraStr[0], &configCameraXSens, 1, 100, 1 ), + DEF_OPT_SCROLL( optsCameraStr[1], &configCameraYSens, 1, 100, 1 ), DEF_OPT_SCROLL( optsCameraStr[4], &configCameraAggr, 0, 100, 1 ), DEF_OPT_SCROLL( optsCameraStr[5], &configCameraPan, 0, 100, 1 ), DEF_OPT_SCROLL( optsCameraStr[8], &configCameraDegrade, 0, 100, 1 ), @@ -253,13 +263,17 @@ static struct Option optsControls[] = { static struct Option optsVideo[] = { DEF_OPT_TOGGLE( optsVideoStr[0], &configWindow.fullscreen ), - DEF_OPT_CHOICE( optsVideoStr[5], &configWindow.vsync, vsyncChoices ), + DEF_OPT_TOGGLE( optsVideoStr[5], &configWindow.vsync ), DEF_OPT_CHOICE( optsVideoStr[1], &configFiltering, filterChoices ), DEF_OPT_TOGGLE( optsVideoStr[7], &configHUD ), DEF_OPT_BUTTON( optsVideoStr[4], optvideo_reset_window ), DEF_OPT_BUTTON( optsVideoStr[9], optvideo_apply ), }; +static struct Option optsGame[] = { + DEF_OPT_CHOICE( optsGameStr[0], &configLanguage, NULL ), +}; + static struct Option optsAudio[] = { DEF_OPT_SCROLL( optsAudioStr[0], &configMasterVolume, 0, MAX_VOLUME, 1 ), DEF_OPT_SCROLL( optsAudioStr[1], &configMusicVolume, 0, MAX_VOLUME, 1), @@ -285,6 +299,7 @@ static struct Option optsCheats[] = { #ifdef BETTERCAMERA static struct SubMenu menuCamera = DEF_SUBMENU( menuStr[4], optsCamera ); #endif +static struct SubMenu menuGame = DEF_SUBMENU( menuStr[10], optsGame ); static struct SubMenu menuControls = DEF_SUBMENU( menuStr[5], optsControls ); static struct SubMenu menuVideo = DEF_SUBMENU( menuStr[6], optsVideo ); static struct SubMenu menuAudio = DEF_SUBMENU( menuStr[7], optsAudio ); @@ -293,6 +308,7 @@ static struct SubMenu menuCheats = DEF_SUBMENU( menuStr[9], optsCheats ); /* main options menu definition */ static struct Option optsMain[] = { + DEF_OPT_SUBMENU( menuStr[10], &menuGame ), #ifdef BETTERCAMERA DEF_OPT_SUBMENU( menuStr[4], &menuCamera ), #endif @@ -355,19 +371,27 @@ static void optmenu_draw_text(s16 x, s16 y, const u8 *str, u8 col) { static void optmenu_draw_opt(const struct Option *opt, s16 x, s16 y, u8 sel) { u8 buf[32] = { 0 }; + u8 * choice; if (opt->type == OPT_SUBMENU || opt->type == OPT_BUTTON) y -= 6; - optmenu_draw_text(x, y, opt->label, sel); + optmenu_draw_text(x, y, get_key_string(opt->label), sel); switch (opt->type) { case OPT_TOGGLE: - optmenu_draw_text(x, y-13, toggleStr[(int)*opt->bval], sel); + optmenu_draw_text(x, y-13, get_key_string(toggleStr[(int)*opt->bval]), sel); break; case OPT_CHOICE: - optmenu_draw_text(x, y-13, opt->choices[*opt->uval], sel); + if(strcmp(opt->label, optsGameStr[0]) != 0){ + choice = get_key_string(opt->choices[*opt->uval]); + optmenu_draw_text(x, y-13, choice, sel); + }else{ + choice = getTranslatedText(languages[*opt->uval]->name); + optmenu_draw_text(x, y-13, choice, sel); + free(choice); + } break; case OPT_SCROLL: @@ -382,9 +406,9 @@ static void optmenu_draw_opt(const struct Option *opt, s16 x, s16 y, u8 sel) { // TODO: button names if (opt->uval[i] == VK_INVALID) { if (optmenu_binding && white) - optmenu_draw_text(x, y-13, bindStr[1], 1); + optmenu_draw_text(x, y-13, get_key_string(bindStr[1]), 1); else - optmenu_draw_text(x, y-13, bindStr[0], white); + optmenu_draw_text(x, y-13, get_key_string(bindStr[0]), white); } else { uint_to_hex(opt->uval[i], buf); optmenu_draw_text(x, y-13, buf, white); @@ -403,7 +427,8 @@ static void optmenu_opt_change(struct Option *opt, s32 val) { break; case OPT_CHOICE: - *opt->uval = wrap_add(*opt->uval, val, 0, opt->numChoices - 1); + *opt->uval = wrap_add(*opt->uval, val, 0, strcmp(opt->label, optsGameStr[0]) == 0 ? languagesAmount - 1: opt->numChoices - 1); + set_language(languages[configLanguage]); break; case OPT_SCROLL: @@ -449,10 +474,16 @@ void optmenu_draw(void) { s16 scroll; s16 scrollpos; - const s16 labelX = get_hudstr_centered_x(160, currentMenu->label); + u8* label = get_key_string(currentMenu->label); + + const s16 labelX = get_hudstr_centered_x(160, label); gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, 255); - print_hud_lut_string(HUD_LUT_GLOBAL, labelX, 40, currentMenu->label); + if (configLanguage == 1) { + print_hud_lut_string(HUD_LUT_GLOBAL, labelX + 33, 40, label); + } else { + print_hud_lut_string(HUD_LUT_GLOBAL, labelX, 40, label); + } gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); if (currentMenu->numOpts > 4) { @@ -474,15 +505,15 @@ void optmenu_draw(void) { gSPDisplayList(gDisplayListHead++, dl_ia_text_end); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, 255); gSPDisplayList(gDisplayListHead++, dl_rgba16_text_begin); - print_hud_lut_string(HUD_LUT_GLOBAL, 80, 90 + (32 * (currentMenu->select - currentMenu->scroll)), menuStr[0]); - print_hud_lut_string(HUD_LUT_GLOBAL, 224, 90 + (32 * (currentMenu->select - currentMenu->scroll)), menuStr[0]); + print_hud_lut_string(HUD_LUT_GLOBAL, 80, 90 + (32 * (currentMenu->select - currentMenu->scroll)), get_key_string(menuStr[0])); + print_hud_lut_string(HUD_LUT_GLOBAL, 224, 90 + (32 * (currentMenu->select - currentMenu->scroll)), get_key_string(menuStr[0])); gSPDisplayList(gDisplayListHead++, dl_rgba16_text_end); } //This has been separated for interesting reasons. Don't question it. void optmenu_draw_prompt(void) { gSPDisplayList(gDisplayListHead++, dl_ia_text_begin); - optmenu_draw_text(264, 212, menuStr[1 + optmenu_open], 0); + optmenu_draw_text(264, 212, get_key_string(menuStr[1 + optmenu_open]), 0); gSPDisplayList(gDisplayListHead++, dl_ia_text_end); } diff --git a/src/text/txtconv.c b/src/text/txtconv.c new file mode 100644 index 0000000000..0961482922 --- /dev/null +++ b/src/text/txtconv.c @@ -0,0 +1,218 @@ +#include +#include +#include +#include "txtconv.h" + +struct Character charmap[366] = { + {"0", {0x0, NULL}}, {"1", {0x1, NULL}}, {"{65297}", {0x1, NULL}}, {"2", {0x2, NULL}}, {"{65298}", {0x2, NULL}}, {"3", {0x3, NULL}}, {"{65299}", {0x3, NULL}}, {"4", {0x4, NULL}}, {"{65300}", {0x4, NULL}}, {"5", {0x5, NULL}}, + {"{65301}", {0x5, NULL}}, {"6", {0x6, NULL}}, {"{65302}", {0x6, NULL}}, {"7", {0x7, NULL}}, {"{65303}", {0x7, NULL}}, {"8", {0x8, NULL}}, {"{65304}", {0x8, NULL}}, {"9", {0x9, NULL}}, {"{65305}", {0x9, NULL}}, + {"A", {0xa, NULL}}, {"{65313}", {0xa, NULL}}, {"B", {0xb, NULL}}, {"{65314}", {0xb, NULL}}, {"C", {0xc, NULL}}, {"{65315}", {0xc, NULL}}, {"D", {0xd, NULL}}, {"{65316}", {0xd, NULL}}, {"E", {0xe, NULL}}, + {"{65317}", {0xe, NULL}}, {"F", {0xf, NULL}}, {"{65318}", {0xf, NULL}}, {"G", {0x10, NULL}}, {"{65319}", {0x10, NULL}}, {"H", {0x11, NULL}}, {"{65320}", {0x11, NULL}}, {"I", {0x12, NULL}}, {"{65321}", {0x12, NULL}}, + {"J", {0x13, NULL}}, {"{65322}", {0x13, NULL}}, {"K", {0x14, NULL}}, {"{65323}", {0x14, NULL}}, {"L", {0x15, NULL}}, {"{65324}", {0x15, NULL}}, {"M", {0x16, NULL}}, {"{65325}", {0x16, NULL}}, {"N", {0x17, NULL}}, + {"{65326}", {0x17, NULL}}, {"O", {0x18, NULL}}, {"{65327}", {0x18, NULL}}, {"P", {0x19, NULL}}, {"{65328}", {0x19, NULL}}, {"Q", {0x1a, NULL}}, {"{65329}", {0x1a, NULL}}, {"R", {0x1b, NULL}}, {"{65330}", {0x1b, NULL}}, + {"S", {0x1c, NULL}}, {"{65331}", {0x1c, NULL}}, {"T", {0x1d, NULL}}, {"{65332}", {0x1d, NULL}}, {"U", {0x1e, NULL}}, {"{65333}", {0x1e, NULL}}, {"V", {0x1f, NULL}}, {"{65334}", {0x1f, NULL}}, {"W", {0x20, NULL}}, + {"{65335}", {0x20, NULL}}, {"X", {0x21, NULL}}, {"{65336}", {0x21, NULL}}, {"Y", {0x22, NULL}}, {"{65337}", {0x22, NULL}}, {"Z", {0x23, NULL}}, {"{65338}", {0x23, NULL}}, {"a", {0x24, NULL}}, {"b", {0x25, NULL}}, + {"c", {0x26, NULL}}, {"d", {0x27, NULL}}, {"e", {0x28, NULL}}, {"f", {0x29, NULL}}, {"g", {0x2a, NULL}}, {"h", {0x2b, NULL}}, {"i", {0x2c, NULL}}, {"j", {0x2d, NULL}}, {"k", {0x2e, NULL}}, + {"l", {0x2f, NULL}}, {"m", {0x30, NULL}}, {"n", {0x31, NULL}}, {"o", {0x32, NULL}}, {"p", {0x33, NULL}}, {"q", {0x34, NULL}}, {"r", {0x35, NULL}}, {"s", {0x36, NULL}}, {"t", {0x37, NULL}}, + {"u", {0x38, NULL}}, {"v", {0x39, NULL}}, {"w", {0x3a, NULL}}, {"x", {0x3b, NULL}}, {"y", {0x3c, NULL}}, {"z", {0x3d, NULL}}, {"'", {0x3e, NULL}}, {".", {0x3f, NULL}}, {"{09786}", {0x40, 0x41}}, + {"{12354}", {0x40, NULL}}, {"{12356}", {0x41, NULL}}, {"{12358}", {0x42, NULL}}, {"{12360}", {0x43, NULL}}, {"{12362}", {0x44, NULL}}, {"{12363}", {0x45, NULL}}, {"{12365}", {0x46, NULL}}, {"{12367}", {0x47, NULL}}, {"{12369}", {0x48, NULL}}, + {"{12371}", {0x49, NULL}}, {"{12373}", {0x4a, NULL}}, {"{12375}", {0x4b, NULL}}, {"{12377}", {0x4c, NULL}}, {"{12379}", {0x4d, NULL}}, {"{12381}", {0x4e, NULL}}, {"{12383}", {0x4f, NULL}}, {"{12385}", {0x50, NULL}}, {"{12388}", {0x51, NULL}}, + {"{12390}", {0x52, NULL}}, {"{12392}", {0x53, NULL}}, {"{12394}", {0x54, NULL}}, {"{12395}", {0x55, NULL}}, {"{12396}", {0x56, NULL}}, {"{12397}", {0x57, NULL}}, {"{12398}", {0x58, NULL}}, {"{12399}", {0x59, NULL}}, {"{12402}", {0x5a, NULL}}, + {"{12405}", {0x5b, NULL}}, {"{12408}", {0x5c, NULL}}, {"{12411}", {0x5d, NULL}}, {"{12414}", {0x5e, NULL}}, {"{12415}", {0x5f, NULL}}, {"{12416}", {0x60, NULL}}, {"{12417}", {0x61, NULL}}, {"{12418}", {0x62, NULL}}, {"{12420}", {0x63, NULL}}, + {"{12422}", {0x64, NULL}}, {"{12424}", {0x65, NULL}}, {"{12425}", {0x66, NULL}}, {"{12426}", {0x67, NULL}}, {"{12427}", {0x68, NULL}}, {"{12428}", {0x69, NULL}}, {"{12429}", {0x6a, NULL}}, {"{12431}", {0x6b, NULL}}, {"{12434}", {0x6c, NULL}}, + {"{12435}", {0x6d, NULL}}, {"{12290}", {0x6e, NULL}}, {",", {0x6f, NULL}}, {"{12289}", {0x6f, NULL}}, {"{12450}", {0x70, NULL}}, {"{12452}", {0x71, NULL}}, {"{12454}", {0x72, NULL}}, {"{12456}", {0x73, NULL}}, {"{12458}", {0x74, NULL}}, + {"{12459}", {0x75, NULL}}, {"{12461}", {0x76, NULL}}, {"{12463}", {0x77, NULL}}, {"{12465}", {0x78, NULL}}, {"{12467}", {0x79, NULL}}, {"{12469}", {0x7a, NULL}}, {"{12471}", {0x7b, NULL}}, {"{12473}", {0x7c, NULL}}, {"{12475}", {0x7d, NULL}}, + {"{12477}", {0x7e, NULL}}, {"{12479}", {0x7f, NULL}}, {"{12481}", {0x80, NULL}}, {"{12484}", {0x81, NULL}}, {"{12486}", {0x82, NULL}}, {"{12488}", {0x83, NULL}}, {"{12490}", {0x84, NULL}}, {"{12491}", {0x85, NULL}}, {"{12492}", {0x86, NULL}}, + {"{12493}", {0x87, NULL}}, {"{12494}", {0x88, NULL}}, {"{12495}", {0x89, NULL}}, {"{12498}", {0x8a, NULL}}, {"{12501}", {0x8b, NULL}}, {"{12504}", {0x8c, NULL}}, {"{12507}", {0x8d, NULL}}, {"{12510}", {0x8e, NULL}}, {"{12511}", {0x8f, NULL}}, + {"{12512}", {0x90, NULL}}, {"{12513}", {0x91, NULL}}, {"{12514}", {0x92, NULL}}, {"{12516}", {0x93, NULL}}, {"{12518}", {0x94, NULL}}, {"{12520}", {0x95, NULL}}, {"{12521}", {0x96, NULL}}, {"{12522}", {0x97, NULL}}, {"{12523}", {0x98, NULL}}, + {"{12524}", {0x99, NULL}}, {"{12525}", {0x9a, NULL}}, {"{12527}", {0x9b, NULL}}, {"{12530}", {0x9c, NULL}}, {"{12531}", {0x9d, NULL}}, {" ", {0x9e, NULL}}, {"{12288}", {0x9e, NULL}}, {"-", {0x9f, NULL}}, {"{12540}", {0x9f, NULL}}, + {"{12359}", {0xa0, NULL}}, {"{12387}", {0xa1, NULL}}, {"{12419}", {0xa2, NULL}}, {"{12421}", {0xa3, NULL}}, {"{12423}", {0xa4, NULL}}, {"{12353}", {0xa5, NULL}}, {"{12355}", {0xa6, NULL}}, {"{12357}", {0xa7, NULL}}, {"{12361}", {0xa8, NULL}}, + {"{12455}", {0xd0, NULL}}, {"{12483}", {0xd1, NULL}}, {"{12515}", {0xd2, NULL}}, {"{12517}", {0xd3, NULL}}, {"{12519}", {0xd4, NULL}}, {"{12449}", {0xd5, NULL}}, {"{12451}", {0xd6, NULL}}, {"{12453}", {0xd7, NULL}}, {"{12457}", {0xd8, NULL}}, + {"[%]", {0xe0, NULL}}, {"(", {0xe1, NULL}}, {"{65288}", {0xe1, NULL}}, {")(", {0xe2, NULL}}, {")(", {0xe2, NULL}}, {")", {0xe3, NULL}}, {"{65289}", {0xe3, NULL}}, {"+", {0xe4, NULL}}, {"{08596}", {0xe4, NULL}}, + {"&", {0xe5, NULL}}, {":", {0xe6, NULL}}, {"{12443}", {0xf0, NULL}}, {"{12444}", {0xf1, NULL}}, {"!", {0xf2, NULL}}, {"{65281}", {0xf2, NULL}}, {"%", {0xf3, NULL}}, {"{65285}", {0xf3, NULL}}, {"?", {0xf4, NULL}}, + {"{65311}", {0xf4, NULL}}, {"{12302}", {0xf5, NULL}}, {"{12303}", {0xf6, NULL}}, {"~", {0xf7, NULL}}, {"{65374}", {0xf7, NULL}}, {"{08230}", {0xf8, NULL}}, {"$", {0xf9, NULL}}, {"{09733}", {0xfa, NULL}}, {"{00215}", {0xfb, NULL}}, + {"{12539}", {0xfc, NULL}}, {"{09734}", {0xfd, NULL}}, {"\n", {0xfe, NULL}}, {"{12364}", {0xf0, 0xf0}}, {"{12366}", {0xf0, 0xf0}}, {"{12368}", {0xf0, 0xf0}}, {"{12370}", {0xf0, 0xf0}}, {"{12372}", {0xf0, 0xf0}}, {"{12374}", {0xf0, 0xf0}}, + {"{12376}", {0xf0, 0xf0}}, {"{12378}", {0xf0, 0xf0}}, {"{12380}", {0xf0, 0xf0}}, {"{12382}", {0xf0, 0xf0}}, {"{12384}", {0xf0, 0xf0}}, {"{12386}", {0xf0, 0xf0}}, {"{12389}", {0xf0, 0xf0}}, {"{12391}", {0xf0, 0xf0}}, {"{12393}", {0xf0, 0xf0}}, + {"{12400}", {0xf0, 0xf0}}, {"{12403}", {0xf0, 0xf0}}, {"{12406}", {0xf0, 0xf0}}, {"{12409}", {0xf0, 0xf0}}, {"{12412}", {0xf0, 0xf0}}, {"{12460}", {0xf0, 0xf0}}, {"{12462}", {0xf0, 0xf0}}, {"{12464}", {0xf0, 0xf0}}, {"{12466}", {0xf0, 0xf0}}, + {"{12468}", {0xf0, 0xf0}}, {"{12470}", {0xf0, 0xf0}}, {"{12472}", {0xf0, 0xf0}}, {"{12474}", {0xf0, 0xf0}}, {"{12476}", {0xf0, 0xf0}}, {"{12478}", {0xf0, 0xf0}}, {"{12480}", {0xf0, 0xf0}}, {"{12482}", {0xf0, 0xf0}}, {"{12485}", {0xf0, 0xf0}}, + {"{12487}", {0xf0, 0xf0}}, {"{12489}", {0xf0, 0xf0}}, {"{12496}", {0xf0, 0xf0}}, {"{12499}", {0xf0, 0xf0}}, {"{12502}", {0xf0, 0xf0}}, {"{12505}", {0xf0, 0xf0}}, {"{12508}", {0xf0, 0xf0}}, {"{12401}", {0xf1, 0xf1}}, {"{12404}", {0xf1, 0xf1}}, + {"{12407}", {0xf1, 0xf1}}, {"{12410}", {0xf1, 0xf1}}, {"{12413}", {0xf1, 0xf1}}, {"{12497}", {0xf1, 0xf1}}, {"{12500}", {0xf1, 0xf1}}, {"{12503}", {0xf1, 0xf1}}, {"{12506}", {0xf1, 0xf1}}, {"{12509}", {0xf1, 0xf1}}, {"^", {0x50, NULL}}, + {"|", {0x51, NULL}}, {"<", {0x52, NULL}}, {">", {0x53, NULL}}, {"[A]", {0x54, NULL}}, {"[B]", {0x55, NULL}}, {"[C]", {0x56, NULL}}, {"[Z]", {0x57, NULL}}, {"[R]", {0x58, NULL}}, {"/", {0xd0, NULL}}, + {"the", {0xd1, NULL}}, {"you", {0xd2, NULL}}, {"{00224}", {0x60, NULL}}, {"{00226}", {0x61, NULL}}, {"{00228}", {0x62, NULL}}, {"{00192}", {0x64, NULL}}, {"{00194}", {0x65, NULL}}, {"{00196}", {0x66, NULL}}, {"{00232}", {0x70, NULL}}, + {"{00234}", {0x71, NULL}}, {"{00235}", {0x72, NULL}}, {"{00200}", {0x74, NULL}}, {"{00202}", {0x75, NULL}}, {"{00203}", {0x76, NULL}}, {"{00249}", {0x80, NULL}}, {"{00251}", {0x81, NULL}}, + {"{00217}", {0x84, NULL}}, {"{00219}", {0x85, NULL}}, {"{00244}", {0x91, NULL}}, {"{00246}", {0x92, NULL}}, {"{00212}", {0x95, NULL}}, {"{00214}", {0x96, NULL}}, {"{00238}", {0xa1, NULL}}, + {"{00239}", {0xa2, NULL}}, {"{00223}", {0xec, NULL}}, {"{00199}", {0xed, NULL}}, {"{00231}", {0xee, NULL}}, {"{08222}", {0xf0, NULL}}, + + // SPECIAL CHARACTERS + {"{00225}", {112, NULL}}, + {"{00233}", {113, NULL}}, + {"{00237}", {114, NULL}}, + {"{00243}", {115, NULL}}, + {"{00250}", {116, NULL}}, + {"{00193}", {117, NULL}}, + {"{00201}", {118, NULL}}, + {"{00205}", {119, NULL}}, + {"{00211}", {120, NULL}}, + {"{00218}", {121, NULL}}, + {"{00241}", {122, NULL}}, + {"{00209}", {123, NULL}}, + {"{00252}", {124, NULL}}, + {"{00220}", {125, NULL}}, + {"{00191}", {126, NULL}}, + {"{00161}", {127, NULL}}, + +// ARABIC TRANSLATION BY ADYA#8011 + {"{00311}", {0x80, NULL}}, // ا + {"{00312}", {0x81, NULL}}, // أ + {"{00313}", {0x82, NULL}}, // ﺑ + {"{00314}", {0x83, NULL}}, // ﻟ + {"{00315}", {0x84, NULL}}, // ﺒ + {"{00316}", {0x85, NULL}}, // ﺮ + {"{00317}", {0x86, NULL}}, // ﻌ + {"{00318}", {0x87, NULL}}, // ﻴ + {"{00319}", {0x88, NULL}}, // ﺔ + {"{00320}", {0x89, NULL}}, // ر + {"{00321}", {0x8a, NULL}}, // ﻠ + {"{00322}", {0x8b, NULL}}, // ﻐ + {"{00323}", {0x8c, NULL}}, // ﺤ + {"{00324}", {0x8d, NULL}}, // ز + {"{00325}", {0x8e, NULL}}, // لا + +// *MISSING* SPECIAL CHARACTERS WITH SUBSTITIONS +// *NOTE: when adding characters here, don't forget to increment charmap size +// (value is number of '}}' in this file minus 1) + {"{00227}", {0x24, NULL}}, // latin small letter a with tilde (PT_br) + {"{00195}", {0x0a, NULL}}, // latin capital letter A with tilde (PT_br) + {"{00245}", {0x32, NULL}}, // latin small letter o with tilde (PT_br) + {"{00213}", {0x18, NULL}}, // latin capital letter O with tilde (PT_br) + {"{00236}", {0x2c, NULL}}, // latin small letter i with grave (ES_es) + {"{07765}", {0x33, NULL}} // latin small letter p with acute (ES_la) +}; + +struct Character getCharacter(char *ch){ + struct Character tmp = {NULL, {NULL, NULL}}; + for(s32 cmid = 0; cmid < sizeof(charmap) / sizeof(struct Character); cmid++){ + if(charmap[cmid].txt != NULL){ + if(strncmp(charmap[cmid].txt, ch, strlen(charmap[cmid].txt)) == 0) { + tmp = charmap[cmid]; + break; + } + } + } + return tmp; +} + +u8 *getTranslatedText(char *txt){ + + txt = (txt == NULL ? "" : txt); + + s32 cid = 0; + s32 shiftArr = 0; + s32 strSize = strlen(txt); + + u8 *tmp = malloc((strSize + 1) * sizeof(u8)); + u8 icon = FALSE; + + char tmpIcon[3]; + char tmpSpecialChar[7]; + + memset(tmpIcon, 0, sizeof(tmpIcon)); + memset(tmpSpecialChar, 0, sizeof(tmpSpecialChar)); + + for(cid = 0; cid < strSize; cid++){ + char ch = txt[cid]; + + if(ch == '['){ + tmpIcon[0] = ch; + tmpIcon[1] = txt[cid + 1]; + tmpIcon[2] = txt[cid + 2]; + struct Character ctm = getCharacter(tmpIcon); + if(ctm.txt != NULL){ + shiftArr += 2; + cid += 2; + for(int cl = 0; cl < 2; cl++){ + if(ctm.value[cl] != NULL){ + tmp[cid - shiftArr + cl] = ctm.value[cl]; + shiftArr-=cl; + } + } + memset(tmpIcon, 0, sizeof(tmpIcon)); + } + } else if(ch == ')'){ + + struct Character ctm; + + // case: ')' at end of string + if (cid == (strSize - 1)) { + ctm = getCharacter(")"); + if(ctm.txt != NULL){ + tmp[cid - shiftArr] = ctm.value[0]; + } + break; // avoids out of bounds read/write + } + + char tmpIcon[2]; + tmpIcon[0] = ch; + tmpIcon[1] = txt[cid + 1]; + + // case: ')(' contained in string + if (tmpIcon[1] == '(') { + ctm = getCharacter(")("); + shiftArr += 1; + cid += 1; + for(int cl = 0; cl < 2; cl++){ + if(ctm.value[cl] != NULL){ + tmp[cid - shiftArr + cl] = ctm.value[cl]; + shiftArr-=cl; + } + } + // case: ')' contained in string + } else { + ctm = getCharacter(")"); + if(ctm.txt != NULL){ + tmp[cid - shiftArr] = ctm.value[0]; + } + } + memset(tmpIcon, 0, sizeof(tmpIcon)); + + } else if(ch == '{'){ + tmpSpecialChar[0] = ch; + tmpSpecialChar[1] = txt[cid + 1]; + tmpSpecialChar[2] = txt[cid + 2]; + tmpSpecialChar[3] = txt[cid + 3]; + tmpSpecialChar[4] = txt[cid + 4]; + tmpSpecialChar[5] = txt[cid + 5]; + tmpSpecialChar[6] = txt[cid + 6]; + + struct Character ctm = getCharacter(tmpSpecialChar); + + if(ctm.txt != NULL){ + shiftArr += 5; + cid += 5; + for(int cl = 0; cl < 2; cl++){ + if(ctm.value[cl] != NULL){ + tmp[cid - shiftArr + cl] = ctm.value[cl]; + shiftArr-=cl; + } + } + } else { + printf("Loading File: missing special character found: %s\n", tmpSpecialChar); + } + memset(tmpSpecialChar, 0, sizeof(tmpSpecialChar)); + } else { + char findTxt[1] = {ch}; + + struct Character ctm = getCharacter(findTxt); + if(ctm.txt != NULL){ + tmp[cid - shiftArr] = ctm.value[0]; + }else{ + tmp[cid - shiftArr] = 0x9E; + } + } + } + + tmp = realloc(tmp, (strSize - shiftArr + 1) * sizeof(u8)); + tmp[strSize - shiftArr] = 0xFF; + + return tmp; +} \ No newline at end of file diff --git a/texts/AR_ar.json b/texts/AR_ar.json new file mode 100644 index 0000000000..addcf1a899 --- /dev/null +++ b/texts/AR_ar.json @@ -0,0 +1,3425 @@ +{ + "manifest": { + "langName": "{00319}{00318}{00313}{00316}{00317}{00314}{00311}", + "langLogo": "none" + }, + "dialogs": [ + { + "ID": 0, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Wow! You're smack in the", + "middle of the battlefield.", + "You'll find the Power", + "Stars that Bowser stole", + "inside the painting", + "worlds.", + "First, talk to the", + "Bob-omb Buddy. (Press [B]", + "to talk.) He'll certainly", + "help you out, and so will", + "his comrades in other", + "areas.", + "To read signs, stop, face", + "them and press [B]. Press [A]", + "or [B] to scroll ahead. You", + "can talk to some other", + "characters by facing them", + "and pressing [B]." + ] + }, + { + "ID": 1, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "Watch out! If you wander", + "around here, you're liable", + "to be plastered by a", + "water bomb!", + "Those enemy Bob-ombs love", + "to fight, and they're", + "always finding ways to", + "attack.", + "This meadow has become", + "a battlefield ever since", + "the Big Bob-omb got his", + "paws on the Power Star.", + "Can you recover the Star", + "for us? Cross the bridge", + "and go left up the path", + "to find the Big Bob-omb.", + "Please come back to see", + "me after you've retrieved", + "the Power Star!" + ] + }, + { + "ID": 2, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "Hey, you! It's dangerous", + "ahead, so listen up! Take", + "my advice.", + "", + "Cross the two", + "bridges ahead, then", + "watch for falling", + "water bombs.", + "The Big Bob-omb at the", + "top of the mountain is", + "very powerful--don't let", + "him grab you!", + "We're Bob-omb Buddies,", + "and we're on your side.", + "You can talk to us", + "whenever you'd like to!" + ] + }, + { + "ID": 3, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "Thank you, Mario! The Big", + "Bob-omb is nothing but a", + "big dud now! But the", + "battle for the castle has", + "just begun.", + "Other enemies are holding", + "the other Power Stars. If", + "you recover more Stars,", + "you can open new doors", + "that lead to new worlds!", + "My Bob-omb Buddies are", + "waiting for you. Be sure", + "to talk to them--they'll", + "set up cannons for you." + ] + }, + { + "ID": 4, + "linesPerBox": 3, + "leftOffset": 95, + "width": 200, + "lines": [ + "We're peace-loving", + "Bob-ombs, so we don't use", + "cannons.", + "But if you'd like", + "to blast off, we don't", + "mind. Help yourself.", + "We'll prepare all of the", + "cannons in this course for", + "you to use. Bon Voyage!" + ] + }, + { + "ID": 5, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hey, Mario! Is it true", + "that you beat the Big", + "Bob-omb? Cool!", + "You must be strong. And", + "pretty fast. So, how fast", + "are you, anyway?", + "Fast enough to beat me...", + "Koopa the Quick? I don't", + "think so. Just try me.", + "How about a race to the", + "mountaintop, where the", + "Big Bob-omb was?", + "Whaddya say? When I say", + "『Go,』 let the race begin!", + "", + "Ready....", + "", + "//Go!////Don't Go" + ] + }, + { + "ID": 6, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hey!!! Don't try to scam", + "ME.You've gotta run", + "the whole course.", + "Later. Look me up when", + "you want to race for", + "real." + ] + }, + { + "ID": 7, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hufff...fff...pufff...", + "Whoa! You...really...are...", + "fast! A human blur!", + "Here you go--you've won", + "it, fair and square!" + ] + }, + { + "ID": 8, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "BEWARE OF CHAIN CHOMP", + "Extreme Danger!", + "Get close and press [C]^", + "for a better look.", + "Scary, huh?", + "See the Red Coin on top", + "of the stake?", + "", + "When you collect eight of", + "them, a Power Star will", + "appear in the meadow", + "across the bridge." + ] + }, + { + "ID": 9, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Long time, no see! Wow,", + "have you gotten fast!", + "Have you been training", + "on the sly, or is it the", + "power of the Stars?", + "I've been feeling down", + "about losing the last", + "race. This is my home", + "course--how about a", + "rematch?", + "The goal is in", + "Windswept Valley.", + "Ready?", + "", + "//Go//// Don't Go" + ] + }, + { + "ID": 10, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "You've stepped on the", + "Wing Cap Switch. Wearing", + "the Wing Cap, you can", + "soar through the sky.", + "Now Wing Caps will pop", + "out of all the red blocks", + "you find.", + "", + "Would you like to Save?", + "", + "//Yes////No" + ] + }, + { + "ID": 11, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "You've just stepped on", + "the Metal Cap Switch!", + "The Metal Cap makes", + "Mario invincible.", + "Now Metal Caps will", + "pop out of all of the", + "green blocks you find.", + "", + "Would you like to Save?", + "", + "//Yes////No" + ] + }, + { + "ID": 12, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "You've just stepped on", + "the Vanish Cap Switch.", + "The Vanish Cap makes", + "Mario disappear.", + "Now Vanish Caps will pop", + "from all of the blue", + "blocks you find.", + "", + "Would you like to Save?", + "", + "//Yes////No" + ] + }, + { + "ID": 13, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "You've collected 100", + "coins! Mario gains more", + "power from the castle.", + "Do you want to Save?", + "//Yes////No" + ] + }, + { + "ID": 14, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Wow! Another Power Star!", + "Mario gains more courage", + "from the power of the", + "castle.", + "Do you want to Save?", + "", + "//You Bet//Not Now" + ] + }, + { + "ID": 15, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "You can punch enemies to", + "knock them down. Press [A]", + "to jump, [B] to punch.", + "Press [A] then [B] to Kick.", + "To pick something up,", + "press [B], too. To throw", + "something you're holding,", + "press [B] again." + ] + }, + { + "ID": 16, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hop on the shiny shell and", + "ride wherever you want to", + "go! Shred those enemies!" + ] + }, + { + "ID": 17, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "I'm the Big Bob-omb, lord", + "of all blasting matter,", + "king of ka-booms the", + "world over!", + "How dare you scale my", + "mountain? By what right", + "do you set foot on my", + "imperial mountaintop?", + "You may have eluded my", + "guards, but you'll never", + "escape my grasp...", + "", + "...and you'll never take", + "away my Power Star. I", + "hereby challenge you,", + "Mario!", + "If you want the Star I", + "hold, you must prove", + "yourself in battle.", + "", + "Can you pick me up from", + "the back and hurl me to", + "this royal turf? I think", + "that you cannot!" + ] + }, + { + "ID": 18, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "I'm sleeping because...", + "...I'm sleepy. I don't", + "like being disturbed.", + "Please walk quietly." + ] + }, + { + "ID": 19, + "linesPerBox": 2, + "leftOffset": 30, + "width": 200, + "lines": [ + "Shhh! Please walk", + "quietly in the hallway!" + ] + }, + { + "ID": 20, + "linesPerBox": 6, + "leftOffset": 95, + "width": 150, + "lines": [ + "Dear Mario:", + "Please come to the", + "castle. I've baked", + "a cake for you.", + "Yours truly--", + "Princess Toadstool" + ] + }, + { + "ID": 21, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "Welcome.", + "No one's home!", + "Now scram--", + "and don't come back!", + "Gwa ha ha!" + ] + }, + { + "ID": 22, + "linesPerBox": 2, + "leftOffset": 95, + "width": 200, + "lines": [ + "You need a key to open", + "this door." + ] + }, + { + "ID": 23, + "linesPerBox": 3, + "leftOffset": 95, + "width": 200, + "lines": [ + "This key doesn't fit!", + "Maybe it's for the", + "basement..." + ] + }, + { + "ID": 24, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "You need Star power to", + "open this door. Recover a", + "Power Star from an enemy", + "inside one of the castle's", + "paintings." + ] + }, + { + "ID": 25, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "It takes the power of", + "3 Stars to open this", + "door. You need [%] more", + "Stars." + ] + }, + { + "ID": 26, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "It takes the power of", + "8 Stars to open this", + "door. You need [%] more", + "Stars." + ] + }, + { + "ID": 27, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "It takes the power of", + "30 Stars to open this", + "door. You need [%] more", + "Stars." + ] + }, + { + "ID": 28, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "It takes the power of", + "50 Stars to open this", + "door. You need [%] more", + "Stars." + ] + }, + { + "ID": 29, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "To open the door that", + "leads to the 『endless』", + "stairs, you need 70", + "Stars.", + "Bwa ha ha!" + ] + }, + { + "ID": 30, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hello! The Lakitu Bros.,", + "cutting in with a live", + "update on Mario's", + "progress. He's about to", + "learn a technique for", + "sneaking up on enemies.", + "The trick is this: He has", + "to walk very slowly in", + "order to walk quietly.", + "", + "", + "", + "And wrapping up filming", + "techniques reported on", + "earlier, you can take a", + "look around using [C]> and", + "[C]<. Press [C]| to view the", + "action from a distance.", + "When you can't move the", + "camera any farther, the", + "buzzer will sound. This is", + "the Lakitu Bros.,", + "signing off." + ] + }, + { + "ID": 31, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "No way! You beat me...", + "again!! And I just spent", + "my entire savings on", + "these new Koopa", + "Mach 1 Sprint shoes!", + "Here, I guess I have to", + "hand over this Star to", + "the winner of the race.", + "Congrats, Mario!" + ] + }, + { + "ID": 32, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "If you get the Wing Cap,", + "you can fly! Put the cap", + "on, then do a Triple", + "Jump--jump three times", + "in a row--to take off.", + "You can fly even higher", + "if you blast out of a", + "cannon wearing the", + "Wing Cap!", + "", + "Use the [C] Buttons to look", + "around while flying, and", + "press [Z] to land." + ] + }, + { + "ID": 33, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Ciao! You've reached", + "Princess Toadstool's", + "castle via a warp pipe.", + "Using the controller is a", + "piece of cake. Press [A] to", + "jump and [B] to attack.", + "Press [B] to read signs,", + "too. Use the Control Stick", + "in the center of the", + "controller to move Mario", + "around. Now, head for", + "the castle." + ] + }, + { + "ID": 34, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Good afternoon. The", + "Lakitu Bros., here,", + "reporting live from just", + "outside the Princess's", + "castle.", + "", + "Mario has just arrived", + "on the scene, and we'll", + "be filming the action live", + "as he enters the castle", + "and pursues the missing", + "Power Stars.", + "As seasoned cameramen,", + "we'll be shooting from the", + "recommended angle, but", + "you can change the", + "camera angle by pressing", + "the [C] Buttons.", + "If we can't adjust the", + "view any further, we'll", + "buzz. To take a look at", + "the surroundings, stop", + "and press [C]^.", + "", + "Press [A] to resume play.", + "Switch camera modes with", + "the [R] Button. Signs along", + "the way will review these", + "instructions.", + "", + "For now, reporting live,", + "this has been the", + "Lakitu Bros." + ] + }, + { + "ID": 35, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "There are four camera, or", + "『[C],』 Buttons. Press [C]^", + "to look around using the", + "Control Stick.", + "", + "You'll usually see Mario", + "through Lakitu's camera.", + "It is the camera", + "recommended for normal", + "play.", + "You can change angles by", + "pressing [C]>. If you press", + "[R], the view switches to", + "Mario's camera, which", + "is directly behind him.", + "Press [R] again to return", + "to Lakitu's camera. Press", + "[C]| to see Mario from", + "afar, using either", + "Lakitu's or Mario's view." + ] + }, + { + "ID": 36, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "OBSERVATION PLATFORM", + "Press [C]^ to take a look", + "around. Don't miss", + "anything!", + "", + "Press [R] to switch to", + "Mario's camera. It", + "always follows Mario.", + "Press [R] again to switch", + "to Lakitu's camera.", + "Pause the game and", + "switch the mode to 『fix』", + "the camera in place while", + "holding [R]. Give it a try!" + ] + }, + { + "ID": 37, + "linesPerBox": 2, + "leftOffset": 30, + "width": 200, + "lines": [ + "I win! You lose!", + "Ha ha ha ha!", + "You're no slouch, but I'm", + "a better sledder!", + "Better luck next time!" + ] + }, + { + "ID": 38, + "linesPerBox": 3, + "leftOffset": 95, + "width": 200, + "lines": [ + "Reacting to the Star", + "power, the door slowly", + "opens." + ] + }, + { + "ID": 39, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "No visitors allowed,", + "by decree of", + "the Big Bob-omb", + "", + "I shall never surrender my", + "Stars, for they hold the", + "power of the castle in", + "their glow.", + "They were a gift from", + "Bowser, the Koopa King", + "himself, and they lie well", + "hidden within my realm.", + "Not a whisper of their", + "whereabouts shall leave", + "my lips. Oh, all right,", + "perhaps one hint:", + "Heed the Star names at", + "the beginning of the", + "course.", + "//--The Big Bob-omb" + ] + }, + { + "ID": 40, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Warning!", + "Cold, Cold Crevasse", + "Below!" + ] + }, + { + "ID": 41, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "I win! You lose!", + "Ha ha ha!", + "", + "That's what you get for", + "messin' with Koopa the", + "Quick.", + "Better luck next time!" + ] + }, + { + "ID": 42, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Caution! Narrow Bridge!", + "Cross slowly!", + "", + "", + "You can jump to the edge", + "of the cliff and hang on,", + "and you can climb off the", + "edge if you move slowly.", + "When you want to let go,", + "either press [Z] or press", + "the Control Stick in the", + "direction of Mario's back.", + "To climb up, press Up on", + "the Control Stick. To", + "scurry up quickly, press", + "the [A] Button." + ] + }, + { + "ID": 43, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "If you jump and hold the", + "[A] Button, you can hang on", + "to some objects overhead.", + "It's the same as grabbing", + "a flying bird!" + ] + }, + { + "ID": 44, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "Whooo's there? Whooo", + "woke me up? It's still", + "daylight--I should be", + "sleeping!", + "", + "Hey, as long as I'm", + "awake, why not take a", + "short flight with me?", + "Press and hold [A] to grab", + "on. Release [A] to let go.", + "I'll take you wherever", + "you want to go, as long", + "as my wings hold out.", + "Watch my shadow, and", + "grab on." + ] + }, + { + "ID": 45, + "linesPerBox": 6, + "leftOffset": 95, + "width": 200, + "lines": [ + "Whew! I'm just about", + "flapped out. You should", + "lay off the pasta, Mario!", + "That's it for now. Press", + "[A] to let go. Okay,", + "bye byyyyyyeeee!" + ] + }, + { + "ID": 46, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "You have to master three", + "important jumping", + "techniques.", + "First try the Triple Jump.", + "", + "Run fast, then jump three", + "times, one, two, three.", + "If you time the jumps", + "right, you'll hop, skip,", + "then jump really high.", + "Next, go for distance", + "with the Long Jump. Run,", + "press [Z] to crouch then [A]", + "to jump really far.", + "", + "To do the Wall Kick, press", + "[A] to jump at a wall, then", + "jump again when you hit", + "the wall.", + "", + "Got that? Triple Jump,", + "Long Jump, Wall Kick.", + "Practice, practice,", + "practice. You don't stand", + "a chance without them." + ] + }, + { + "ID": 47, + "linesPerBox": 2, + "leftOffset": 95, + "width": 200, + "lines": [ + "Hi! I'll prepare the", + "cannon for you!" + ] + }, + { + "ID": 48, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Snow Mountain Summit", + "Watch for slippery", + "conditions! Please enter", + "the cottage first." + ] + }, + { + "ID": 49, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Remember that tricky Wall", + "Kick jump? It's a", + "technique you'll have to", + "master in order to reach", + "high places.", + "Use it to jump from wall", + "to wall. Press the", + "Control Stick in the", + "direction you want to", + "bounce to gain momentum.", + "Practice makes perfect!" + ] + }, + { + "ID": 50, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hold [Z] to crouch and", + "slide down a slope.", + "Or press [Z] while in the", + "air to Pound the Ground!", + "If you stop, crouch, then", + "jump, you'll do a", + "Backward Somersault!", + "Got that?", + "There's more. Crouch and", + "then jump to do a", + "Long Jump! Or crouch and", + "walk to...never mind." + ] + }, + { + "ID": 51, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Climbing's easy! When you", + "jump at trees, poles or", + "pillars, you'll grab them", + "automatically. Press [A] to", + "jump off backward.", + "", + "To rotate around the", + "object, press Right or", + "Left on the Control Stick.", + "When you reach the top,", + "press Up to do a", + "handstand!", + "Jump off from the", + "handstand for a high,", + "stylin' dismount." + ] + }, + { + "ID": 52, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Stop and press [Z] to", + "crouch, then press [A]", + "to do a high, Backward", + "Somersault!", + "", + "To perform a Side", + "Somersault, run, do a", + "sharp U-turn and jump.", + "You can catch lots of", + "air with both jumps." + ] + }, + { + "ID": 53, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Sometimes, if you pass", + "through a coin ring or", + "find a secret point in a", + "course, a red number will", + "appear.", + "If you trigger five red", + "numbers, a secret Star", + "will show up." + ] + }, + { + "ID": 54, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Welcome to the snow", + "slide! Hop on! To speed", + "up, press forward on the", + "Control Stick. To slow", + "down, pull back." + ] + }, + { + "ID": 55, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hey-ey, Mario, buddy,", + "howzit goin'? Step right", + "up. You look like a fast", + "sleddin' kind of guy.", + "I know speed when I see", + "it, yes siree--I'm the", + "world champion sledder,", + "you know. Whaddya say?", + "How about a race?", + "Ready...", + "", + "//Go//// Don't Go" + ] + }, + { + "ID": 56, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "You brrrr-oke my record!", + "Unbelievable! I knew", + "that you were the coolest.", + "Now you've proven", + "that you're also the", + "fastest!", + "I can't award you a gold", + "medal, but here, take this", + "Star instead. You've", + "earned it!" + ] + }, + { + "ID": 57, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Egad! My baby!! Have you", + "seen my baby??? She's", + "the most precious baby in", + "the whole wide world.", + "(They say she has my", + "beak...) I just can't", + "remember where I left", + "her.", + "Let's see...I stopped", + "for herring and ice cubes,", + "then I...oohh! I just", + "don't know!" + ] + }, + { + "ID": 58, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "You found my precious,", + "precious baby! Where", + "have you been? How can", + "I ever thank you, Mario?", + "Oh, I do have this...", + "...Star. Here, take it", + "with my eternal", + "gratitude." + ] + }, + { + "ID": 59, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "That's not my baby! She", + "looks nothing like me!", + "Her parents must be", + "worried sick!" + ] + }, + { + "ID": 60, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "ATTENTION!", + "Read Before Diving In!", + "", + "", + "If you stay under the", + "water for too long, you'll", + "run out of oxygen.", + "", + "Return to the surface for", + "air or find an air bubble", + "or coins to breathe while", + "underwater.", + "Press [A] to swim. Hold [A]", + "to swim slow and steady.", + "Tap [A] with smooth timing", + "to gain speed.", + "Press Up on the", + "Control Stick and press [A]", + "to dive.", + "", + "Press Down on the Control", + "Stick and press [A] to", + "return to the surface.", + "", + "Hold Down and press [A]", + "while on the surface near", + "the edge of the water to", + "jump out." + ] + }, + { + "ID": 61, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "BRRR! Frostbite Danger!", + "Do not swim here.", + "I'm serious.", + "/--The Penguin" + ] + }, + { + "ID": 62, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hidden inside the green", + "block is the amazing", + "Metal Cap.", + "Wearing it, you won't", + "catch fire or be hurt", + "by enemy attacks.", + "You don't even have to", + "breathe while wearing it.", + "", + "The only problem:", + "You can't swim in it." + ] + }, + { + "ID": 63, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "The Vanish Cap is inside", + "the blue block. Mr. I.", + "will be surprised, since", + "you'll be invisible when", + "you wear it!", + "Even the Big Boo will be", + "fooled--and you can walk", + "through secret walls, too." + ] + }, + { + "ID": 64, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "When you put on the Wing", + "Cap that comes from a", + "red block, do the Triple", + "Jump to soar high into", + "the sky.", + "Use the Control Stick to", + "guide Mario. Pull back to", + "to fly up, press forward", + "to nose down, and press [Z]", + "to land." + ] + }, + { + "ID": 65, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Swimming Lessons!", + "Tap [A] to do the breast", + "stroke. If you time the", + "taps right, you'll swim", + "fast.", + "", + "Press and hold [A] to do a", + "slow, steady flutter kick.", + "Press Up on the Control", + "Stick to dive, and pull", + "back on the stick to head", + "for the surface.", + "To jump out of the water,", + "hold Down on the Control", + "Stick, then press [A].", + "Easy as pie, right?", + "", + "", + "But remember:", + "Mario can't breathe under", + "the water! Return to the", + "surface for air when the", + "Power Meter runs low.", + "", + "And one last thing: You", + "can't open doors that", + "are underwater." + ] + }, + { + "ID": 66, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Mario, it's Peach!", + "Please be careful! Bowser", + "is so wicked! He will try", + "to burn you with his", + "horrible flame breath.", + "Run around behind and", + "grab him by the tail with", + "the [B] Button. Once you", + "grab hold, swing him", + "around in great circles.", + "Rotate the Control Stick", + "to go faster and faster.", + "The faster you swing him,", + "the farther he'll fly.", + "", + "Use the [C] Buttons to look", + "around, Mario. You have", + "to throw Bowser into one", + "of the bombs in the four", + "corners.", + "Aim well, then press [B]", + "again to launch Bowser.", + "Good luck, Mario! Our", + "fate is in your hands." + ] + }, + { + "ID": 67, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Tough luck, Mario!", + "Princess Toadstool isn't", + "here...Gwa ha ha!! Go", + "ahead--just try to grab", + "me by the tail!", + "You'll never be able to", + "swing ME around! A wimp", + "like you won't throw me", + "out of here! Never! Ha!" + ] + }, + { + "ID": 68, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "It's Lethal Lava Land!", + "If you catch fire or fall", + "into a pool of flames,", + "you'll be hopping mad, but", + "don't lose your cool.", + "You can still control", + "Mario--just try to keep", + "calm!" + ] + }, + { + "ID": 69, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Sometimes you'll bump into", + "invisible walls at the", + "edges of the painting", + "worlds. If you hit a wall", + "while flying, you'll bounce", + "back." + ] + }, + { + "ID": 70, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "You can return to the", + "castle's main hall at any", + "time from the painting", + "worlds where the enemies", + "live.", + "Just stop, stand still,", + "press Start to pause the", + "game, then select", + "『Exit Course.』", + "", + "You don't have to collect", + "all Power Stars in one", + "course before going on to", + "the next.", + "", + "Return later, when you're", + "more experienced, to pick", + "up difficult ones.", + "", + "", + "Whenever you find a Star,", + "a hint for finding the", + "next one will appear on", + "the course's start screen.", + "", + "You can, however, collect", + "any of the remaining", + "Stars next. You don't", + "have to recover the one", + "described by the hint." + ] + }, + { + "ID": 71, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Danger Ahead!", + "Beware of the strange", + "cloud! Don't inhale!", + "If you feel faint, run for", + "higher ground and fresh", + "air!", + "Circle: Shelter", + "Arrow: Entrance-Exit" + ] + }, + { + "ID": 72, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "High winds ahead!", + "Pull your Cap down tight.", + "If it blows off, you'll", + "have to find it on this", + "mountain." + ] + }, + { + "ID": 73, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "Aarrgh! Ahoy, matey. I", + "have sunken treasure,", + "here, I do.", + "", + "But to pluck the plunder,", + "you must open the", + "Treasure Chests in the", + "right order.", + "What order is that,", + "ye say?", + "", + "", + "I'll never tell!", + "", + "//--The Cap'n" + ] + }, + { + "ID": 74, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "You can grab on to the", + "edge of a cliff or ledge", + "with your fingertips and", + "hang down from it.", + "", + "To drop from the edge,", + "either press the Control", + "Stick in the direction of", + "Mario's back or press the", + "[Z] Button.", + "To get up onto the ledge,", + "either press Up on the", + "Control Stick or press [A]", + "as soon as you grab the", + "ledge to climb up quickly." + ] + }, + { + "ID": 75, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Mario!! My castle is in", + "great peril. I know that", + "Bowser is the cause...and", + "I know that only you can", + "stop him!", + "The doors in the castle", + "that have been sealed by", + "Bowser can be opened only", + "with Star Power.", + "", + "But there are secret", + "paths in the castle,", + "paths that Bowser hasn't", + "found.", + "", + "One of those paths is in", + "this room, and it holds", + "one of the castle's Secret", + "Stars!", + "", + "Find that Secret Star,", + "Mario! It will help you", + "on your quest. Please,", + "Mario, you have to", + "help us!", + "Retrieve all of the", + "Power Stars in the castle", + "and free us from this", + "awful prison!", + "Please!" + ] + }, + { + "ID": 76, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Thanks to the power of", + "the Stars, life is", + "returning to the castle.", + "Please, Mario, you have", + "to give Bowser the boot!", + "", + "Here, let me tell you a", + "little something about the", + "castle. In the room with", + "the mirrors, look carefully", + "for anything that's not", + "reflected in the mirror.", + "And when you go to the", + "water town, you can flood", + "it with a high jump into", + "the painting. Oh, by the", + "way, look what I found!" + ] + }, + { + "ID": 77, + "linesPerBox": 2, + "leftOffset": 150, + "width": 200, + "lines": [ + "It is decreed that one", + "shall pound the pillars." + ] + }, + { + "ID": 78, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Break open the Blue Coin", + "Block by Pounding the", + "Ground with the [Z] Button.", + "One Blue Coin is worth", + "five Yellow Coins.", + "But you have to hurry!", + "The coins will disappear", + "if you're not quick to", + "collect them! Too bad." + ] + }, + { + "ID": 79, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Owwwuu! Let me go!", + "Uukee-kee! I was only", + "teasing! Can't you take", + "a joke?", + "I'll tell you what, let's", + "trade. If you let me go,", + "I'll give you something", + "really good.", + "So, how about it?", + "", + "//Free him/ Hold on" + ] + }, + { + "ID": 80, + "linesPerBox": 1, + "leftOffset": 30, + "width": 200, + "lines": [ + "Eeeh hee hee hee!" + ] + }, + { + "ID": 81, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "The mystery is of Wet", + "or Dry.", + "And where does the", + "solution lie?", + "The city welcomes visitors", + "with the depth they bring", + "as they enter." + ] + }, + { + "ID": 82, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hold on to your hat! If", + "you lose it, you'll be", + "injured easily.", + "", + "If you do lose your Cap,", + "you'll have to find it in", + "the course where you", + "lost it.", + "Oh, boy, it's not looking", + "good for Peach. She's", + "still trapped somewhere", + "inside the walls.", + "Please, Mario, you have", + "to help her! Did you know", + "that there are enemy", + "worlds inside the walls?", + "Yup. It's true. Bowser's", + "troops are there, too.", + "Oh, here, take this. I've", + "been keeping it for you." + ] + }, + { + "ID": 83, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "There's something strange", + "about that clock. As you", + "jump inside, watch the", + "position of the big hand.", + "Oh, look what I found!", + "Here, Mario, catch!" + ] + }, + { + "ID": 84, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Yeeoww! Unhand me,", + "brute! I'm late, so late,", + "I must make haste!", + "This shiny thing? Mine!", + "It's mine. Finders,", + "keepers, losers...", + "Late, late, late...", + "Ouch! Take it then! A", + "gift from Bowser, it was.", + "Now let me be! I have a", + "date! I cannot be late", + "for tea!" + ] + }, + { + "ID": 85, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "You don't stand a ghost", + "of a chance in this house.", + "If you walk out of here,", + "you deserve...", + "...a Ghoul Medal..." + ] + }, + { + "ID": 86, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Running around in circles", + "makes some bad guys roll", + "their eyes." + ] + }, + { + "ID": 87, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Santa Claus isn't the only", + "one who can go down a", + "chimney! Come on in!", + "/--Cabin Proprietor" + ] + }, + { + "ID": 88, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Work Elevator", + "For those who get off", + "here: Grab the pole to the", + "left and slide carefully", + "down." + ] + }, + { + "ID": 89, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "Both ways fraught with", + "danger! Watch your feet!", + "Those who can't do the", + "Long Jump, tsk, tsk. Make", + "your way to the right.", + "Right: Work Elevator", + "/// Cloudy Maze", + "Left: Black Hole", + "///Underground Lake", + "", + "Red Circle: Elevator 2", + "//// Underground Lake", + "Arrow: You are here" + ] + }, + { + "ID": 90, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Bwa ha ha ha!", + "You've stepped right into", + "my trap, just as I knew", + "you would! I warn you,", + "『Friend,』 watch your", + "step!" + ] + }, + { + "ID": 91, + "linesPerBox": 2, + "leftOffset": 30, + "width": 200, + "lines": [ + "Danger!", + "Strong Gusts!", + "But the wind makes a", + "comfy ride." + ] + }, + { + "ID": 92, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Pestering me again, are", + "you, Mario? Can't you see", + "that I'm having a merry", + "little time, making", + "mischief with my minions?", + "Now, return those Stars!", + "My troops in the walls", + "need them! Bwa ha ha!" + ] + }, + { + "ID": 93, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Mario! You again! Well", + "that's just fine--I've", + "been looking for something", + "to fry with my fire", + "breath!", + "Your Star Power is", + "useless against me!", + "Your friends are all", + "trapped within the", + "walls...", + "And you'll never see the", + "Princess again!", + "Bwa ha ha ha!" + ] + }, + { + "ID": 94, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Get a good run up the", + "slope! Do you remember", + "the Long Jump? Run, press", + "[Z], then jump!" + ] + }, + { + "ID": 95, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "To read a sign, stand in", + "front of it and press [B],", + "like you did just now.", + "", + "When you want to talk to", + "a Koopa Troopa or other", + "animal, stand right in", + "front of it.", + "Please recover the Stars", + "that were stolen by", + "Bowser in this course." + ] + }, + { + "ID": 96, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "The path is narrow here.", + "Easy does it! No one is", + "allowed on top of the", + "mountain!", + "And if you know what's", + "good for you, you won't", + "wake anyone who's", + "sleeping!", + "Move slowly,", + "tread lightly." + ] + }, + { + "ID": 97, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Don't be a pushover!", + "If anyone tries to shove", + "you around, push back!", + "It's one-on-one, with a", + "fiery finish for the loser!" + ] + }, + { + "ID": 98, + "linesPerBox": 2, + "leftOffset": 95, + "width": 200, + "lines": [ + "Come on in here...", + "...heh, heh, heh..." + ] + }, + { + "ID": 99, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "Eh he he...", + "You're mine, now, hee hee!", + "I'll pass right through", + "this wall. Can you do", + "that? Heh, heh, heh!" + ] + }, + { + "ID": 100, + "linesPerBox": 3, + "leftOffset": 95, + "width": 200, + "lines": [ + "Ukkiki...Wakkiki...kee kee!", + "Ha! I snagged it!", + "It's mine! Heeheeheeee!" + ] + }, + { + "ID": 101, + "linesPerBox": 3, + "leftOffset": 95, + "width": 200, + "lines": [ + "Ackk! Let...go...", + "You're...choking...me...", + "Cough...I've been framed!", + "This Cap? Oh, all right,", + "take it. It's a cool Cap,", + "but I'll give it back.", + "I think it looks better on", + "me than it does on you,", + "though! Eeeee! Kee keee!" + ] + }, + { + "ID": 102, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Pssst! The Boos are super", + "shy. If you look them", + "in the eyes, they fade", + "away, but if you turn", + "your back, they reappear.", + "It's no use trying to hit", + "them when they're fading", + "away. Instead, sneak up", + "behind them and punch." + ] + }, + { + "ID": 103, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "Upon four towers", + "one must alight...", + "Then at the peak", + "shall shine the light..." + ] + }, + { + "ID": 104, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "The shadowy star in front", + "of you is a 『Star", + "Marker.』 When you collect", + "all 8 Red Coins, the Star", + "will appear here." + ] + }, + { + "ID": 105, + "linesPerBox": 3, + "leftOffset": 95, + "width": 200, + "lines": [ + "Ready for blastoff! Come", + "on, hop into the cannon!", + "", + "You can reach the Star on", + "the floating island by", + "using the four cannons.", + "Use the Control Stick to", + "aim, then press [A] to fire.", + "", + "If you're handy, you can", + "grab on to trees or poles", + "to land." + ] + }, + { + "ID": 106, + "linesPerBox": 2, + "leftOffset": 95, + "width": 200, + "lines": [ + "Ready for blastoff! Come", + "on, hop into the cannon!" + ] + }, + { + "ID": 107, + "linesPerBox": 3, + "leftOffset": 95, + "width": 200, + "lines": [ + "Ghosts...", + "...don't...", + "...DIE!", + "Heh, heh, heh!", + "Can you get out of here...", + "...alive?" + ] + }, + { + "ID": 108, + "linesPerBox": 2, + "leftOffset": 95, + "width": 200, + "lines": [ + "Boooooo-m! Here comes", + "the master of mischief,", + "the tower of terror,", + "the Big Boo!", + "Ka ha ha ha..." + ] + }, + { + "ID": 109, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "Ooooo Nooooo!", + "Talk about out-of-body", + "experiences--my body", + "has melted away!", + "Have you run in to any", + "headhunters lately??", + "I could sure use a new", + "body!", + "Brrr! My face might", + "freeze like this!" + ] + }, + { + "ID": 110, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "I need a good head on my", + "shoulders. Do you know of", + "anybody in need of a good", + "body? Please! I'll follow", + "you if you do!" + ] + }, + { + "ID": 111, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "Perfect! What a great", + "new body! Here--this is a", + "present for you. It's sure", + "to warm you up." + ] + }, + { + "ID": 112, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Collect as many coins as", + "possible! They'll refill", + "your Power Meter.", + "", + "You can check to see how", + "many coins you've", + "collected in each of the", + "15 enemy worlds.", + "You can also recover", + "power by touching the", + "Spinning Heart.", + "", + "The faster you run", + "through the heart, the", + "more power you'll recover." + ] + }, + { + "ID": 113, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "There are special Caps in", + "the red, green and blue", + "blocks. Step on the", + "switches in the hidden", + "courses to activate the", + "Cap Blocks." + ] + }, + { + "ID": 114, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "It makes me so mad! We", + "build your houses, your", + "castles. We pave your", + "roads, and still you", + "walk all over us.", + "Do you ever say thank", + "you? No! Well, you're not", + "going to wipe your feet", + "on me! I think I'll crush", + "you just for fun!", + "Do you have a problem", + "with that? Just try to", + "pound me, wimp! Ha!" + ] + }, + { + "ID": 115, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "No! Crushed again!", + "I'm just a stepping stone,", + "after all. I won't gravel,", + "er, grovel. Here, you win.", + "Take this with you!" + ] + }, + { + "ID": 116, + "linesPerBox": 5, + "leftOffset": 95, + "width": 200, + "lines": [ + "Whaaa....Whaaat?", + "Can it be that a", + "pipsqueak like you has", + "defused the Bob-omb", + "king????", + "You might be fast enough", + "to ground me, but you'll", + "have to pick up the pace", + "if you want to take King", + "Bowser by the tail.", + "Methinks my troops could", + "learn a lesson from you!", + "Here is your Star, as I", + "promised, Mario.", + "", + "If you want to see me", + "again, select this Star", + "from the menu. For now,", + "farewell." + ] + }, + { + "ID": 117, + "linesPerBox": 1, + "leftOffset": 95, + "width": 200, + "lines": [ + "Who...walk...here?", + "Who...break...seal?", + "Wake..ancient..ones?", + "We no like light...", + "Rrrrummbbble...", + "We no like...intruders!", + "Now battle...", + "...hand...", + "...to...", + "...hand!" + ] + }, + { + "ID": 118, + "linesPerBox": 6, + "leftOffset": 95, + "width": 200, + "lines": [ + "Grrrrumbbble!", + "What...happen?", + "We...crushed like pebble.", + "You so strong!", + "You rule ancient pyramid!", + "For today...", + "Now, take Star of Power.", + "We...sleep...darkness." + ] + }, + { + "ID": 119, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Grrr! I was a bit", + "careless. This is not as I", + "had planned...but I still", + "hold the power of the", + "Stars, and I still have", + "Peach.", + "Bwa ha ha! You'll get no", + "more Stars from me! I'm", + "not finished with you yet,", + "but I'll let you go for", + "now. You'll pay for this...", + "later!" + ] + }, + { + "ID": 120, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Ooowaah! Can it be that", + "I've lost??? The power of", + "the Stars has failed me...", + "this time.", + "Consider this a draw.", + "Next time, I'll be in", + "perfect condition.", + "", + "Now, if you want to see", + "your precious Princess,", + "come to the top of the", + "tower.", + "I'll be waiting!", + "Gwa ha ha ha!" + ] + }, + { + "ID": 121, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Nooo! It can't be!", + "You've really beaten me,", + "Mario?!! I gave those", + "troops power, but now", + "it's fading away!", + "Arrgghh! I can see peace", + "returning to the world! I", + "can't stand it! Hmmm...", + "It's not over yet...", + "", + "C'mon troops! Let's watch", + "the ending together!", + "Bwa ha ha!" + ] + }, + { + "ID": 122, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "The Black Hole", + "Right: Work Elevator", + "/// Cloudy Maze", + "Left: Underground Lake" + ] + }, + { + "ID": 123, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Metal Cavern", + "Right: To Waterfall", + "Left: Metal Cap Switch" + ] + }, + { + "ID": 124, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Work Elevator", + "Danger!!", + "Read instructions", + "thoroughly!", + "Elevator continues in the", + "direction of the arrow", + "activated." + ] + }, + { + "ID": 125, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hazy Maze-Exit", + "Danger! Closed.", + "Turn back now." + ] + }, + { + "ID": 126, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Up: Black Hole", + "Right: Work Elevator", + "/// Hazy Maze" + ] + }, + { + "ID": 127, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Underground Lake", + "Right: Metal Cave", + "Left: Abandoned Mine", + "///(Closed)", + "A gentle sea dragon lives", + "here. Pound on his back to", + "make him lower his head.", + "Don't become his lunch." + ] + }, + { + "ID": 128, + "linesPerBox": 4, + "leftOffset": 95, + "width": 200, + "lines": [ + "You must fight with", + "honor! It is against the", + "royal rules to throw the", + "king out of the ring!" + ] + }, + { + "ID": 129, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Welcome to the Vanish", + "Cap Switch Course! All of", + "the blue blocks you find", + "will become solid once you", + "step on the Cap Switch.", + "You'll disappear when you", + "put on the Vanish Cap, so", + "you'll be able to elude", + "enemies and walk through", + "many things. Try it out!" + ] + }, + { + "ID": 130, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Welcome to the Metal Cap", + "Switch Course! Once you", + "step on the Cap Switch,", + "the green blocks will", + "become solid.", + "When you turn your body", + "into metal with the Metal", + "Cap, you can walk", + "underwater! Try it!" + ] + }, + { + "ID": 131, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Welcome to the Wing Cap", + "Course! Step on the red", + "switch at the top of the", + "tower, in the center of", + "the rainbow ring.", + "When you trigger the", + "switch, all of the red", + "blocks you find will", + "become solid.", + "", + "Try out the Wing Cap! Do", + "the Triple Jump to take", + "off and press [Z] to land.", + "", + "", + "Pull back on the Control", + "Stick to go up and push", + "forward to nose down,", + "just as you would when", + "flying an airplane." + ] + }, + { + "ID": 132, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Whoa, Mario, pal, you", + "aren't trying to cheat,", + "are you? Shortcuts aren't", + "allowed.", + "Now, I know that you", + "know better. You're", + "disqualified! Next time,", + "play fair!" + ] + }, + { + "ID": 133, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Am I glad to see you! The", + "Princess...and I...and,", + "well, everybody...we're all", + "trapped inside the castle", + "walls.", + "", + "Bowser has stolen the", + "castle's Stars, and he's", + "using their power to", + "create his own world in", + "the paintings and walls.", + "", + "Please recover the Power", + "Stars! As you find them,", + "you can use their power", + "to open the doors that", + "Bowser has sealed.", + "", + "There are four rooms on", + "the first floor. Start in", + "the one with the painting", + "of Bob-omb inside. It's", + "the only room that Bowser", + "hasn't sealed.", + "When you collect eight", + "Power Stars, you'll be", + "able to open the door", + "with the big star. The", + "Princess must be inside!" + ] + }, + { + "ID": 134, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "The names of the Stars", + "are also hints for", + "finding them. They are", + "displayed at the beginning", + "of each course.", + "You can collect the Stars", + "in any order. You won't", + "find some Stars, enemies", + "or items unless you select", + "a specific Star.", + "After you collect some", + "Stars, you can try", + "another course.", + "We're all waiting for", + "your help!" + ] + }, + { + "ID": 135, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "It was Bowser who stole", + "the Stars. I saw him with", + "my own eyes!", + "", + "", + "He's hidden six Stars in", + "each course, but you", + "won't find all of them in", + "some courses until you", + "press the Cap Switches.", + "The Stars you've found", + "will show on each course's", + "starting screen.", + "", + "", + "If you want to see some", + "of the enemies you've", + "already defeated, select", + "the Stars you recovered", + "from them." + ] + }, + { + "ID": 136, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Wow! You've already", + "recovered that many", + "Stars? Way to go, Mario!", + "I'll bet you'll have us out", + "of here in no time!", + "", + "Be careful, though.", + "Bowser and his band", + "wrote the book on 『bad.』", + "Take my advice: When you", + "need to recover from", + "injuries, collect coins.", + "Yellow Coins refill one", + "piece of the Power Meter,", + "Red Coins refill two", + "pieces, and Blue Coins", + "refill five.", + "", + "To make Blue Coins", + "appear, pound on Blue", + "Coin Blocks.", + "", + "", + "", + "Also, if you fall from", + "high places, you'll", + "minimize damage if you", + "Pound the Ground as you", + "land." + ] + }, + { + "ID": 137, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Thanks, Mario! The castle", + "is recovering its energy", + "as you retrieve Power", + "Stars, and you've chased", + "Bowser right out of here,", + "on to some area ahead.", + "Oh, by the by, are you", + "collecting coins? Special", + "Stars appear when you", + "collect 100 coins in each", + "of the 15 courses!" + ] + }, + { + "ID": 138, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Down: Underground Lake", + "Left: Black Hole", + "Right: Hazy Maze (Closed)" + ] + }, + { + "ID": 139, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Above: Automatic Elevator", + "Elevator begins", + "automatically and follows", + "pre-set course.", + "It disappears", + "automatically, too." + ] + }, + { + "ID": 140, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Elevator Area", + "Right: Hazy Maze", + "/// Entrance", + "Left: Black Hole", + "///Elevator 1", + "Arrow: You are here" + ] + }, + { + "ID": 141, + "linesPerBox": 5, + "leftOffset": 150, + "width": 200, + "lines": [ + "You've recovered one of", + "the stolen Power Stars!", + "Now you can open some of", + "the sealed doors in the", + "castle.", + "Try the Princess's room", + "on the second floor and", + "the room with the", + "painting of Whomp's", + "Fortress on Floor 1.", + "Bowser's troops are still", + "gaining power, so you", + "can't give up. Save us,", + "Mario! Keep searching for", + "Stars!" + ] + }, + { + "ID": 142, + "linesPerBox": 5, + "leftOffset": 150, + "width": 200, + "lines": [ + "You've recovered three", + "Power Stars! Now you can", + "open any door with a 3", + "on its star.", + "", + "You can come and go from", + "the open courses as you", + "please. The enemies ahead", + "are even meaner, so be", + "careful!" + ] + }, + { + "ID": 143, + "linesPerBox": 6, + "leftOffset": 150, + "width": 200, + "lines": [ + "You've recovered eight of", + "the Power Stars! Now you", + "can open the door with", + "the big Star! But Bowser", + "is just ahead...can you", + "hear the Princess calling?" + ] + }, + { + "ID": 144, + "linesPerBox": 6, + "leftOffset": 150, + "width": 200, + "lines": [ + "You've recovered 30", + "Power Stars! Now you can", + "open the door with the", + "big Star! But before you", + "move on, how's it going", + "otherwise?", + "Did you pound the two", + "columns down? You didn't", + "lose your hat, did you?", + "If you did, you'll have to", + "stomp on the condor to", + "get it back!", + "They say that Bowser has", + "sneaked out of the sea", + "and into the underground.", + "Have you finally", + "cornered him?" + ] + }, + { + "ID": 145, + "linesPerBox": 6, + "leftOffset": 150, + "width": 200, + "lines": [ + "You've recovered 50", + "Power Stars! Now you can", + "open the Star Door on the", + "third floor. Bowser's", + "there, you know.", + "", + "Oh! You've found all of", + "the Cap Switches, haven't", + "you? Red, green and blue?", + "The Caps you get from the", + "colored blocks are really", + "helpful.", + "Hurry along, now. The", + "third floor is just ahead." + ] + }, + { + "ID": 146, + "linesPerBox": 6, + "leftOffset": 150, + "width": 200, + "lines": [ + "You've found 70 Power", + "Stars! The mystery of the", + "endless stairs is solved,", + "thanks to you--and is", + "Bowser ever upset! Now,", + "on to the final bout!" + ] + }, + { + "ID": 147, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Are you using the Cap", + "Blocks? You really should,", + "you know.", + "", + "", + "To make them solid so you", + "can break them, you have", + "to press the colored Cap", + "Switches in the castle's", + "hidden courses.", + "You'll find the hidden", + "courses only after", + "regaining some of the", + "Power Stars.", + "", + "The Cap Blocks are a big", + "help! Red for the Wing", + "Cap, green for the Metal", + "Cap, blue for the Vanish", + "Cap." + ] + }, + { + "ID": 148, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Snowman Mountain ahead.", + "Keep out! And don't try", + "the Triple Jump over the", + "ice block shooter.", + "", + "", + "If you fall into the", + "freezing pond, your power", + "decreases quickly, and", + "you won't recover", + "automatically.", + "//--The Snowman" + ] + }, + { + "ID": 149, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Welcome to", + "Princess Toadstool's", + "secret slide!", + "There's a Star hidden", + "here that Bowser couldn't", + "find.", + "When you slide, press", + "forward to speed up,", + "pull back to slow down.", + "If you slide really", + "fast, you'll win the Star!" + ] + }, + { + "ID": 150, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Waaaa! You've flooded my", + "house! Wh-why?? Look at", + "this mess! What am I", + "going to do now?", + "", + "The ceiling's ruined, the", + "floor is soaked...what to", + "do, what to do? Huff...", + "huff...it makes me so...", + "MAD!!!", + "Everything's been going", + "wrong ever since I got", + "this Star...It's so shiny,", + "but it makes me feel...", + "strange..." + ] + }, + { + "ID": 151, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "I can't take this", + "anymore! First you get", + "me all wet, then you", + "stomp on me!", + "Now I'm really, really,", + "REALLY mad!", + "Waaaaaaaaaaaaaaaaa!!!" + ] + }, + { + "ID": 152, + "linesPerBox": 3, + "leftOffset": 30, + "width": 200, + "lines": [ + "Owwch! Uncle! Uncle!", + "Okay, I give up. Take this", + "Star!", + "Whew! I feel better now.", + "I don't really need it", + "anymore, anyway--", + "I can see the stars", + "through my ceiling at", + "night.", + "They make me feel...", + "...peaceful. Please, come", + "back and visit anytime." + ] + }, + { + "ID": 153, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hey! Who's there?", + "What's climbing on me?", + "Is it an ice ant?", + "A snow flea?", + "Whatever it is, it's", + "bugging me! I think I'll", + "blow it away!" + ] + }, + { + "ID": 154, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hold on to your hat! If", + "you lose it, you'll be", + "easily injured. If you", + "lose it, look for it in the", + "course where you lost it.", + "Speaking of lost, the", + "Princess is still stuck in", + "the walls somewhere.", + "Please help, Mario!", + "", + "Oh, you know that there", + "are secret worlds in the", + "walls as well as in the", + "paintings, right?" + ] + }, + { + "ID": 155, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "Thanks to the power of", + "the Stars, life is", + "returning to the castle.", + "Please, Mario, you have", + "to give Bowser the boot!", + "", + "Here, let me tell you a", + "little something about the", + "castle. In the room with", + "the mirrors, look carefully", + "for anything that's not", + "reflected in the mirror.", + "And when you go to the", + "water town, you can flood", + "it with a high jump into", + "the painting." + ] + }, + { + "ID": 156, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "The world inside the", + "clock is so strange!", + "When you jump inside,", + "watch the position of", + "the big hand!" + ] + }, + { + "ID": 157, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Watch out! Don't let", + "yourself be swallowed by", + "quicksand.", + "", + "", + "If you sink into the sand,", + "you won't be able to", + "jump, and if your head", + "goes under, you'll be", + "smothered.", + "The dark areas are", + "bottomless pits." + ] + }, + { + "ID": 158, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "1. If you jump repeatedly", + "and time it right, you'll", + "jump higher and higher.", + "If you run really fast and", + "time three jumps right,", + "you can do a Triple Jump.", + "2. Jump into a solid wall,", + "then jump again when you", + "hit the wall. You can", + "bounce to a higher level", + "using this Wall Kick." + ] + }, + { + "ID": 159, + "linesPerBox": 6, + "leftOffset": 30, + "width": 200, + "lines": [ + "3. If you stop, press [Z]", + "to crouch, then jump, you", + "can perform a Backward", + "Somersault. To do a Long", + "Jump, run fast, press [Z],", + "then jump." + ] + }, + { + "ID": 160, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Press [B] while running", + "fast to do a Body Slide", + "attack. To stand while", + "sliding, press [A] or [B]." + ] + }, + { + "ID": 161, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Mario!!!", + "It that really you???", + "It has been so long since", + "our last adventure!", + "They told me that I might", + "see you if I waited here,", + "but I'd just about given", + "up hope!", + "Is it true? Have you", + "really beaten Bowser? And", + "restored the Stars to the", + "castle?", + "And saved the Princess?", + "I knew you could do it!", + "Now I have a very special", + "message for you.", + "『Thanks for playing Super", + "Mario 64! This is the", + "end of the game, but not", + "the end of the fun. We want you to keep on", + "playing, so we have a", + "little something for you.", + "We hope that you like it!", + "Enjoy!!! 』", + "", + "The Super Mario 64 Team" + ] + }, + { + "ID": 162, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "No, no, no! Not you", + "again! I'm in a great", + "hurry, can't you see?", + "", + "I've no time to squabble", + "over Stars. Here, have it.", + "I never meant to hide it", + "from you...", + "It's just that I'm in such", + "a rush. That's it, that's", + "all. Now, I must be off.", + "Owww! Let me go!" + ] + }, + { + "ID": 163, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Noooo! You've really", + "beaten me this time,", + "Mario! I can't stand", + "losing to you!", + "", + "My troops...worthless!", + "They've turned over all", + "the Power Stars! What?!", + "There are 120 in all???", + "", + "Amazing! There were some", + "in the castle that I", + "missed??!!", + "", + "", + "Now I see peace", + "returning to the world...", + "Oooo! I really hate that!", + "I can't watch--", + "I'm outta here!", + "Just you wait until next", + "time. Until then, keep", + "that Control Stick", + "smokin'!", + "Buwaa ha ha!" + ] + }, + { + "ID": 164, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Mario! What's up, pal?", + "I haven't been on the", + "slide lately, so I'm out", + "of shape.", + "Still, I'm always up for a", + "good race, especially", + "against an old sleddin'", + "buddy.", + "Whaddya say?", + "Ready...set...", + "", + "//Go//// Don't Go" + ] + }, + { + "ID": 165, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "I take no responsibility", + "whatsoever for those who", + "get dizzy and pass out", + "from running around", + "this post." + ] + }, + { + "ID": 166, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "I'll be back soon.", + "I'm out training now,", + "so come back later.", + "//--Koopa the Quick" + ] + }, + { + "ID": 167, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Princess Toadstool's", + "castle is just ahead.", + "", + "", + "Press [A] to jump, [Z] to", + "crouch, and [B] to punch,", + "read a sign, or grab", + "something.", + "Press [B] again to throw", + "something you're holding." + ] + }, + { + "ID": 168, + "linesPerBox": 5, + "leftOffset": 30, + "width": 200, + "lines": [ + "Hey! Knock it off! That's", + "the second time you've", + "nailed me. Now you're", + "asking for it, linguine", + "breath!" + ] + }, + { + "ID": 169, + "linesPerBox": 4, + "leftOffset": 30, + "width": 200, + "lines": [ + "Keep out!", + "That means you!", + "Arrgghh!", + "", + "Anyone entering this cave", + "without permission will", + "meet certain disaster." + ] + } + ], + "courses": [ + { + "course": " 1 BOB-OMB BATTLEFIELD", + "acts": [ + "BIG BOB-OMB ON THE SUMMIT", + "FOOTRACE WITH KOOPA THE QUICK", + "SHOOT TO THE ISLAND IN THE SKY", + "FIND THE 8 RED COINS", + "MARIO WINGS TO THE SKY", + "BEHIND CHAIN CHOMP'S GATE" + ] + }, + { + "course": " 2 WHOMP'S FORTRESS", + "acts": [ + "CHIP OFF WHOMP'S BLOCK", + "TO THE TOP OF THE FORTRESS", + "SHOOT INTO THE WILD BLUE", + "RED COINS ON THE FLOATING ISLE", + "FALL ONTO THE CAGED ISLAND", + "BLAST AWAY THE WALL" + ] + }, + { + "course": " 3 JOLLY ROGER BAY", + "acts": [ + "PLUNDER IN THE SUNKEN SHIP", + "CAN THE EEL COME OUT TO PLAY?", + "TREASURE OF THE OCEAN CAVE", + "RED COINS ON THE SHIP AFLOAT", + "BLAST TO THE STONE PILLAR", + "THROUGH THE JET STREAM" + ] + }, + { + "course": " 4 COOL, COOL MOUNTAIN", + "acts": [ + "SLIP SLIDIN' AWAY", + "LI'L PENGUIN LOST", + "BIG PENGUIN RACE", + "FROSTY SLIDE FOR 8 RED COINS", + "SNOWMAN'S LOST HIS HEAD", + "WALL KICKS WILL WORK" + ] + }, + { + "course": " 5 BIG BOO'S HAUNT", + "acts": [ + "GO ON A GHOST HUNT", + "RIDE BIG BOO'S MERRY-GO-ROUND", + "SECRET OF THE HAUNTED BOOKS", + "SEEK THE 8 RED COINS", + "BIG BOO'S BALCONY", + "EYE TO EYE IN THE SECRET ROOM" + ] + }, + { + "course": " 6 HAZY MAZE CAVE", + "acts": [ + "SWIMMING BEAST IN THE CAVERN", + "ELEVATE FOR 8 RED COINS", + "METAL-HEAD MARIO CAN MOVE!", + "NAVIGATING THE TOXIC MAZE", + "A-MAZE-ING EMERGENCY EXIT", + "WATCH FOR ROLLING ROCKS" + ] + }, + { + "course": " 7 LETHAL LAVA LAND", + "acts": [ + "BOIL THE BIG BULLY", + "BULLY THE BULLIES", + "8-COIN PUZZLE WITH 15 PIECES", + "RED-HOT LOG ROLLING", + "HOT-FOOT-IT INTO THE VOLCANO", + "ELEVATOR TOUR IN THE VOLCANO" + ] + }, + { + "course": " 8 SHIFTING SAND LAND", + "acts": [ + "IN THE TALONS OF THE BIG BIRD", + "SHINING ATOP THE PYRAMID", + "INSIDE THE ANCIENT PYRAMID", + "STAND TALL ON THE FOUR PILLARS", + "FREE FLYING FOR 8 RED COINS", + "PYRAMID PUZZLE" + ] + }, + { + "course": " 9 DIRE, DIRE DOCKS", + "acts": [ + "BOARD BOWSER'S SUB", + "CHESTS IN THE CURRENT", + "POLE-JUMPING FOR RED COINS", + "THROUGH THE JET STREAM", + "THE MANTA RAY'S REWARD", + "COLLECT THE CAPS..." + ] + }, + { + "course": "10 SNOWMAN'S LAND", + "acts": [ + "SNOWMAN'S BIG HEAD", + "CHILL WITH THE BULLY", + "IN THE DEEP FREEZE", + "WHIRL FROM THE FREEZING POND", + "SHELL SHREDDIN' FOR RED COINS", + "INTO THE IGLOO" + ] + }, + { + "course": "11 WET-DRY WORLD", + "acts": [ + "SHOCKING ARROW LIFTS!", + "TOP O' THE TOWN", + "SECRETS IN THE SHALLOWS & SKY", + "EXPRESS ELEVATOR--HURRY UP!", + "GO TO TOWN FOR RED COINS", + "QUICK RACE THROUGH DOWNTOWN!" + ] + }, + { + "course": "12 TALL, TALL MOUNTAIN", + "acts": [ + "SCALE THE MOUNTAIN", + "MYSTERY OF THE MONKEY CAGE", + "SCARY 'SHROOMS, RED COINS", + "MYSTERIOUS MOUNTAINSIDE", + "BREATHTAKING VIEW FROM BRIDGE", + "BLAST TO THE LONELY MUSHROOM" + ] + }, + { + "course": "13 TINY-HUGE ISLAND", + "acts": [ + "PLUCK THE PIRANHA FLOWER", + "THE TIP TOP OF THE HUGE ISLAND", + "REMATCH WITH KOOPA THE QUICK", + "FIVE ITTY BITTY SECRETS", + "WIGGLER'S RED COINS", + "MAKE WIGGLER SQUIRM" + ] + }, + { + "course": "14 TICK TOCK CLOCK", + "acts": [ + "ROLL INTO THE CAGE", + "THE PIT AND THE PENDULUMS", + "GET A HAND", + "STOMP ON THE THWOMP", + "TIMED JUMPS ON MOVING BARS", + "STOP TIME FOR RED COINS" + ] + }, + { + "course": "15 RAINBOW RIDE", + "acts": [ + "CRUISER CROSSING THE RAINBOW", + "THE BIG HOUSE IN THE SKY", + "COINS AMASSED IN A MAZE", + "SWINGIN' IN THE BREEZE", + "TRICKY TRIANGLES!", + "SOMEWHERE OVER THE RAINBOW" + ] + }, + { "course": "CASTLE", "acts": ["ONE OF THE CASTLE'S SECRET STARS!"] } + ], + "secrets": [ + " BOWSER IN THE DARK WORLD", + " BOWSER IN THE FIRE SEA", + " BOWSER IN THE SKY", + " THE PRINCESS'S SECRET SLIDE", + " CAVERN OF THE METAL CAP", + " TOWER OF THE WING CAP", + " VANISH CAP UNDER THE MOAT", + " WING MARIO OVER THE RAINBOW", + " THE SECRET AQUARIUM", + null, + " CASTLE SECRET STARS" + ], + "options": { + "TEXT_OPT_OPTIONS": "OPTIONS", + "TEXT_OPT_CAMERA": "CAMERA", + "TEXT_OPT_CONTROLS": "CONTROLS", + "TEXT_OPT_VIDEO": "DISPLAY", + "TEXT_OPT_AUDIO": "SOUND", + "TEXT_OPT_CHEATS": "CHEATS", + "TEXT_OPT_HIGHLIGHT": "O", + "TEXT_OPT_UNBOUND": "NONE", + "TEXT_OPT_PRESSKEY": "...", + "TEXT_OPT_BUTTON1": "[R] Options", + "TEXT_OPT_BUTTON2": "[R] Return", + "TEXT_OPT_ENABLED": "Enabled", + "TEXT_OPT_DISABLED": "Disabled", + "TEXT_OPT_CAMX": "Camera X Sensitivity", + "TEXT_OPT_CAMY": "Camera Y Sensitivity", + "TEXT_OPT_INVERTX": "Invert X Axis", + "TEXT_OPT_INVERTY": "Invert Y Axis", + "TEXT_OPT_CAMC": "Camera Centre Aggression", + "TEXT_OPT_CAMP": "Camera Pan Level", + "TEXT_OPT_CAMD": "Camera Deceleration", + "TEXT_OPT_CAMON": "Free Camera", + "TEXT_OPT_ANALOGUE": "Analogue Camera", + "TEXT_OPT_MOUSE": "Mouse Look", + "TEXT_OPT_TEXFILTER": "Texture Filtering", + "TEXT_OPT_FSCREEN": "Fullscreen", + "TEXT_OPT_NEAREST": "Nearest", + "TEXT_OPT_LINEAR": "Linear", + "TEXT_OPT_MVOLUME": "Master Volume", + "TEXT_OPT_MUSVOLUME": "Music Volume", + "TEXT_OPT_SFXVOLUME": "Sfx Volume", + "TEXT_OPT_ENVVOLUME": "Env Volume", + "TEXT_OPT_VSYNC": "Vertical Sync", + "TEXT_OPT_AUTO": "Auto", + "TEXT_OPT_HUD": "HUD", + "TEXT_OPT_THREEPT": "Three-point", + "TEXT_OPT_APPLY": "Apply", + "TEXT_OPT_RESETWND": "Reset Window", + "TEXT_BIND_A": "A {00320}{00324}{00314}{00311}", + "TEXT_BIND_B": "B {00320}{00324}{00314}{00311}", + "TEXT_BIND_START": "Start {00320}{00324}{00314}{00311}", + "TEXT_BIND_L": "L {00320}{00324}{00314}{00311}", + "TEXT_BIND_R": "R {00320}{00324}{00314}{00311}", + "TEXT_BIND_Z": "Z {00320}{00324}{00314}{00311}", + "TEXT_BIND_C_UP": "C-Up", + "TEXT_BIND_C_DOWN": "C-Down", + "TEXT_BIND_C_LEFT": "C-Left", + "TEXT_BIND_C_RIGHT": "C-Right", + "TEXT_BIND_UP": "Stick Up", + "TEXT_BIND_DOWN": "Stick Down", + "TEXT_BIND_LEFT": "Stick Left", + "TEXT_BIND_RIGHT": "Stick Right", + "TEXT_OPT_DEADZONE": "Stick Deadzone", + "TEXT_OPT_RUMBLE": "Rumble Strength", + "TEXT_OPT_CHEAT1": "Enable cheats", + "TEXT_OPT_CHEAT2": "Moonjump (Press L)", + "TEXT_OPT_CHEAT3": "Invincible Mario", + "TEXT_OPT_CHEAT4": "Infinite lives", + "TEXT_OPT_CHEAT5": "Super speed", + "TEXT_OPT_CHEAT6": "Super responsive controls", + "TEXT_OPT_CHEAT7": "Exit course at any time", + "TEXT_OPT_CHEAT8": "Huge Mario", + "TEXT_OPT_CHEAT9": "Tiny Mario", + "TEXT_OPT_GAME": "{00319}{00315}{00317}{00321}{00314}{00311}", + "TEXT_OPT_LANGUAGE": "{00319}{00318}{00314}{00311}{00323}{00314}{00311} {00319}{00322}{00321}{00314}{00311}" + }, + "strings": { + "TEXT_ZERO": "0", + "TEXT_COIN": "$", + "TEXT_STAR": "{09733}", + "TEXT_COIN_X": "${00215}", + "TEXT_STAR_X": "{09733}{00215}", + "TEXT_VARIABLE_X": "{00215}", + "TEXT_UNFILLED_STAR": "{09734}", + "TEXT_NEW": "NEW", + "TEXT_4DASHES": "----", + "TEXT_PAUSE": "PAUSE", + "TEXT_HUD_CONGRATULATIONS": "CONGRATULATIONS", + "TEXT_MARIO": "MARIO", + "TEXT_SELECT_FILE": "SELECT FILE", + "TEXT_CHECK_FILE": "CHECK FILE", + "TEXT_COPY_FILE": "COPY FILE", + "TEXT_ERASE_FILE": "ERASE FILE", + "TEXT_SOUND_SELECT": "SOUND SELECT", + "TEXT_FILE_MARIO_A": "MARIO A", + "TEXT_FILE_MARIO_B": "MARIO B", + "TEXT_FILE_MARIO_C": "MARIO C", + "TEXT_FILE_MARIO_D": "MARIO D", + "TEXT_SCORE": "SCORE", + "TEXT_COPY": "COPY", + "TEXT_ERASE": "ERASE", + "TEXT_STEREO": "STEREO", + "TEXT_MONO": "MONO", + "TEXT_HEADSET": "HEADSET", + "TEXT_SAVED_DATA_EXISTS": "SAVED DATA EXITS", + "TEXT_NO_SAVED_DATA_EXISTS": "NO SAVED DATA EXISTS", + "TEXT_RETURN": "RETURN", + "TEXT_CHECK_SCORE": "CHECK SCORE", + "TEXT_COPY_FILE_BUTTON": "COPY FILE", + "TEXT_ERASE_FILE_BUTTON": "ERASE FILE", + "TEXT_HI_SCORE": "HI SCORE", + "TEXT_MY_SCORE": "MY SCORE", + "TEXT_SCORE_MARIO_A": "{09786}A", + "TEXT_SCORE_MARIO_B": "{09786}B", + "TEXT_SCORE_MARIO_C": "{09786}C", + "TEXT_SCORE_MARIO_D": "{09786}D", + "TEXT_COPY_IT_TO_WHERE": "COPY IT TO WHERE?", + "TEXT_COPYING_COMPLETED": "COPYING COMPLETED", + "TEXT_NO_FILE_TO_COPY_FROM": "NO EMPTY FILE", + "TEXT_SURE": "SURE?", + "TEXT_YES": "YES", + "TEXT_NO": "{00325}", + "TEXT_FILE_MARIO_A_JUST_ERASED": "MARIO A JUST ERASED", + "TEXT_COURSE": "COURSE", + "TEXT_MYSCORE": "MYSCORE", + "TEXT_CONTINUE": "CONTINUE", + "TEXT_EXIT_COURSE": "EXIT COURSE", + "TEXT_EXIT_GAME": "EXIT GAME", + "TEXT_CAMERA_ANGLE_R": "SET CAMERA ANGLE WITH R", + "TEXT_LAKITU_MARIO": "LAKITU + MARIO", + "TEXT_LAKITU_STOP": "LAKITU + STOP", + "TEXT_NORMAL_UPCLOSE": "(NORMAL)(UP-CLOSE)", + "TEXT_NORMAL_FIXED": "(NORMAL)(FIXED)", + "TEXT_CATCH": "CATCH", + "TEXT_CLEAR": "CLEAR", + "TEXT_HUD_HI_SCORE": "HI SCORE", + "TEXT_SAVE_AND_CONTINUE": "SAVE & CONTINUE", + "TEXT_SAVE_AND_QUIT": "SAVE & QUIT", + "TEXT_SAVE_EXIT_GAME": "SAVE & EXIT GAME", + "TEXT_CONTINUE_WITHOUT_SAVING": "CONTINUE, DON'T SAVE", + "TEXT_FILE_MARIO_EXCLAMATION": "Mario!", + "TEXT_POWER_STARS_RESTORED": "The power of the Stars is restored to the castle...", + "TEXT_THANKS_TO_YOU": "...and it's all thanks to you!", + "TEXT_THANK_YOU_MARIO": "Thank you, Mario!", + "TEXT_SOMETHING_SPECIAL": "We have to do something special for you...", + "TEXT_LISTEN_EVERYBODY": "Listen, everybody,", + "TEXT_LETS_HAVE_CAKE": "let's bake a delicious cake...", + "TEXT_FOR_MARIO": "...for Mario...", + "TEXT_FILE_MARIO_QUESTION": "Mario!" + } +} \ No newline at end of file diff --git a/textures/special/Arabic/HUD_ain_mid.png b/textures/special/Arabic/HUD_ain_mid.png new file mode 100644 index 0000000000000000000000000000000000000000..6ddd22b512bee51aacc2ad8d0cb5e97df54ac444 GIT binary patch literal 511 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940hCEZK~yMHty0ZO z0#OwH?);G^n3!coE!wti)eE%i4T4%mv9FQ>R5NqiMy@TATo1~XmdQN@X z^q_2a$>fCYltKuBVmXfdYn;zO&V{m{yPJ_KrLnM&e)#cZ$*)JT;TUq^B|XVpoKsj# zYP8=vCfv4$jNV56Er$EXNH>u|_;)qJ?b~IeuF`OlBWx4n?B`2&F z=0_XTsuSX!snGn}I0y zTp`_e3no=DXw2{<;K^n5&fJ&TgpCMslT=$qIDCdUr9SCQXgSodD!nT-O+3`1xJ*@) z(Q+Xrr>!QEMvH#L?=%<`d%|dkYw%YLoz}qsJ^&Q2(y8Jc*T4V(002ovPDHLkV1h*6 BPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0VhdBK~yMHm6Fd& z!$1(mza7(5qphVN6;zN`5UR&Qp}qFz19(*M;Il}c!#C-{XYj0tK0}j?v;Sf$+1UJG zvXjZTvy+)cJjTewo3OI{k);jc`I=95{Hd%`)H42F5U8@X0ygC9u_JRuHMGTC^ z0uYi2m~`B0fP8%^Ww@#Z?`xwpO^*>N(}&t#=sx66haW;J!Mv!T%&kTHhz`<@e zAbm{04+$`h%dBmn&ge_=T-taq19?4dU4^;+Jd@LxUEs!6(FW2RqQSS~JDJz5otOWW weUh2$s*U>u9@%SKwY|wduKqo)TA4M*52I$ywaPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0VGL8K~yMHrIS5N z13?gmXATcP&_dA0MhprHu@Xe^PuL2k)Jl>+lg8g=VIc@MR)T_GM8WZyb$4$ylBjv% zx&64Emz|kAahX{d#n#0%t*Y=u>W_Q|RkkB0ZT;M7sSTfqV^$U39uv}uVYW-enn#(q zU+{31KBa~{ze}ylwcO_gF5w#HU>la@HCTUP(}!lARc_jW)M-BXC4YAy+aFP_eelXf zsr5+no!Kp%!!xYH2F%JpZI1&37WZ%!D@&U~Efyf9lSzGuPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TXtmgc1dGYQ4USxb1(E0fu06fG_Vj+q&uiM}wS7HFM1l#@ z-=n0`4EW7t1Y#^n%%H}Rk+D-*X5yrRq^ThB!e~G;o#7gm3l3^*O5|zl2m*1yW>=WN z2+rY3uLA3sWxNUY8TQyBhn>)Yp-FPzB8Q!DgHJVNB%RT@21Z;oh8x(|T?CRsEVVHD zz@Ayi@Lsd{232l3IOd`EmMLAhEcP#>UV$d$drs^k^$PI!$L-}<;(wE3?083vv_n^y z*LVg#2OpE=lsA093rrwC?8yEz<9{X(^?Fc=5MSlPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TER=_)~ZyPI71ojyvSG}P_W2v8RLr#L8-Ni ze1k5$A(~u}`4ijxq4hupI- Sz}!#(0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizyJUazyWI3i3tDz0j^0zK~yMHm6N+p z0#Oi#|2eyBTtc#f5GlMgyowqt3L9hVGx!1)MxQ_v?QOJB8?3Co6m}Y=FeVZ&5G0Dg zvg|l#SuO&G_$5PTW@qM{Gcyn~gZ9A+nuHkIqiK1BR?HC?CSXJwrlMo8RjqyDq0zpQp4= zxC={E7}l)|<$3U?4MeZMFn(X{KJ8C*KwFTN-yU1b$O@eRI+IJ5L~%sErSh`ePw2ct z!z+@o1afkP(9=_4V!OcQxk-@i!_OE&wx;z=UrIfCu<|ba1c8)~*hvZQ%$OXJW2grY z(W^3QYY}oYHpLH%@Zu)wY5Sjj=ojoUJ6rFf4*#xY=n26J4WZqdUIq#T{SPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!Tj*x)yk-nfZGxES3CY z39qfg&}F*Au50?+2_EApmMb_11<$LtdCm6G;Q0%3#Gz7N0qigsA$-6>*nEc-X~Q6Q zdJ4~>vRdUX8%W*8$+rjmE&`wAL>fUUsnzN6NEA;+r!|X4eG#qpoNpeYyM8V~26en! zuJP+mG1%)t&8-V=HWo!7dlDTY#AfP{1(wLAhfI~*ow&prPOUF4cY^av6`J?mEAD;} z;>9(pW^b7#$3ijvqb}o2%`lCij(X!b25j3D^#n3(gk&h?LXFjS7;^UV%smrMKLWFu z4ICe(y2d;n+kzo2P;jLIhRlZVCJogsAss{K5sC7thK%0-i}?Kq{|Vp|favT8(yXm200000 LNkvXXu0mjf4wU9~ literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/ain_mid.png b/textures/special/Arabic/ain_mid.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6ec7372674ec0b1cbfcbbaa0ea8552edc8759c GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!OXzGxMBT%V<3mIILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFKt5-HPlzj!{{R0!kSspdTnMC?OM?7@fdbc0@dDK{a29w(7BevL?FV5- z3)Wy2prDbbi(`mHcydBglY*N7W0GOhP6e)03>yy=DKwmF@Lss0k#PmX4Hbiil?g4K e3s)v2F)=tLFnrq^7<&b%o59o7&t;ucLK6Vwnl@|z literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/alif.png b/textures/special/Arabic/alif.png new file mode 100644 index 0000000000000000000000000000000000000000..a21a4c60ece0e5aba08aca9ba5ef87d211a74452 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!N$PA*k0(*2;?vp2e~^jtUD+363Agmcl32+ zVA$Bt{U?zX$mcBZh%9Dc;M)(vj25iHDnLPJPZ!4!jo{=z|Nq-Fa~zPAVA#&XBM@?s zW9dPL6%x*-j>0n*nEYgT$CmP2vXSAG%Axrz3{Ue^L=Ws~dZW6CaakH08$;1W&F2TN SnwbKPWAJqKb6Mw<&;$Umb})wk literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/alif_h.png b/textures/special/Arabic/alif_h.png new file mode 100644 index 0000000000000000000000000000000000000000..6699f6756c5aa43c231402bd93fd538069f11746 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!N$PA*k0(*2;?vp2e~^jtUD+363Agmcl32+ zVA$Bt{U?zX$mcBZh%9Dc;M)(vj25iHDnLOqPZ!4!jo{=z|Nq-Fa~zPAVA#&XBM@?s zW9dPL6%vuA5q%3deFA3HFqAXT`m5kDN4m{6A%THmk(cD>vgC%XKob}|UHx3vIVCg! E02?(a-v9sr literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/ba_mid.png b/textures/special/Arabic/ba_mid.png new file mode 100644 index 0000000000000000000000000000000000000000..d244e2a40dce9eddaec401be9f5ee0f4903fd451 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!OXzGxMBT%V<3mIILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFKt5-HPlzj!{{R0!kSspdTnMC?OM?7@fdbc0@dDK{a29w(7BevL?FV5- z3)Wy2prDGUi(`mHcydA#ld_we0ApICtAmIXGf#j-#L@#z2@abWgoPO#pD=urkQG@B PRL|h)>gTe~DWM4fZiXxZ literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/ba_s.png b/textures/special/Arabic/ba_s.png new file mode 100644 index 0000000000000000000000000000000000000000..801148da2008bf893a664d7cfd8cadd6ba9bbaf1 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!N$PA*k0(*2;?vp2e~^jtUD+363Agmcl32+ zVA$Bt{U?zX$mcBZh%9Dc;M)(vj25iHDnLO!PZ!4!jo{=1y#JUPr*yJDn0}P~#C1=T v122WQ%mvv4F FO#t(gDBA!4 literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/la.png b/textures/special/Arabic/la.png new file mode 100644 index 0000000000000000000000000000000000000000..192d7704e1fc67d87bc5c35630ce8bfc5cec1b8d GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!N$PA*k0(*2;?vp2e~^jtUD+363Agmcl32+ zVA$Bt{U?zX$mcBZh%9Dc;M)(vj25iHDnLPRPZ!4!jo`U`fkF%lEG{qqm51>hTXCgA zJ}1LbiRoBta9L1lqU$-W_fHyY-I*+1;$v2bw52JUn=iU-zTUpBY3KHBb2!>Q>(VH!ijVOg%jTr49@t4h0SjzTCpX3@%;_ Vzi-cpo)6T;;OXk;vd$@?2>@m|Em;5n literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/ra_e.png b/textures/special/Arabic/ra_e.png new file mode 100644 index 0000000000000000000000000000000000000000..17923167cf8524446a92daa911234b412a389151 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!N$PA*k0(*2;?vp2e~^jtUD+363Agmcl32+ zVA$Bt{U?zX$mcBZh%9Dc;M)(vj25iHDnLPVPZ!4!jo{=z|Nq-Fa~zONV0dz%a)psW z!k~{%ta-RrykIkNm^S&uH+GH*%V#z+GI-Z$-F9y3S`RdW!PC{xWt~$( F69C7CEcE~Y literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/rain_mid.png b/textures/special/Arabic/rain_mid.png new file mode 100644 index 0000000000000000000000000000000000000000..3e755142b68f73826ad46702a3768d496713a62c GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!N$PA*k0(*2;?vp2e~^jtUD+363Agmcl32+ zVA$Bt{U?zX$mcBZh%9Dc;M)(vj25iHDnLO)PZ!4!jo{=1y#JUPr*yJDm~vF@Aj{H+ z49oLgF_vf>+;OmX5WRnh$8mWl(-FgTe~DWM4fnl~yJ literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/ta_marbout.png b/textures/special/Arabic/ta_marbout.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b13238c97f8fc907195233a43b3b240e36c803 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!N$PA*k0(*2;?vp2e~^jtUD+363Agmcl32+ zVA$Bt{U?zX$mcBZh%9Dc;M)(vj25iHDnLOmPZ!4!jo{=z|Nq-Fa~zN?U=aDiz9`X1 zp-J!v1M>_WHU_T+k}fOmdKI;Vst0Hg#j+yDRo literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/ya_mid.png b/textures/special/Arabic/ya_mid.png new file mode 100644 index 0000000000000000000000000000000000000000..ab17edf2e53b497e4d2f2cb1ce0689a0386b534e GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!OXzGxMBT%V<3mIILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFKt5-HPlzj!{{R0!kSspdTnMC?OM?7@fdbc0@dDK{a29w(7BevL?FV5- z3)Wy2prDqgi(`mHcydBglY*PVL5`$GP62t20EvW#LkF~2#aNg(Fep1Rwuq^zF*qqO Ve4VW2o(9y#;OXk;vd$@?2>^$ZEj<7L literal 0 HcmV?d00001 diff --git a/textures/special/Arabic/zay.png b/textures/special/Arabic/zay.png new file mode 100644 index 0000000000000000000000000000000000000000..a457260611f548b699921e23775dbd58efa23cdf GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!OXzGxMBT%V<3mIILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFKt5-HPlzj!{{R0!kSspdTnMC?OM?7@fdbc0@dDK{a29w(7BevL?FV5- z3)Wy2prD?oi(`mHcydBglY*N7W11tUKmr4ovt)onj|fi#tAymjR}Bmr4G$U^W{Ih( ZF*qM#`1L0sY70;&gQu&X%Q~loCICzFFjfEn literal 0 HcmV?d00001