Something went wrong. Try again.
Base for making Paper Mario (N64) mods, built on the decompilation docs.starhaven.dev/papermario-dx
paper-mario n64
Something went wrong. Try again.
32 kB · 945 lines
C
at textures
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946#include "common.h"#include "ld_addrs.h"#include "charset/charset.h"
extern IMG_BIN MsgCharImgTitle[];extern IMG_BIN MsgCharImgSubtitle[];extern IMG_BIN MsgCharImgNormal[];extern IMG_BIN MsgCharImgMenuLatin[];extern IMG_BIN MsgCharImgMenuKana[];extern IMG_BIN MsgCharImgKana[];extern IMG_BIN MsgCharImgLatin[];
#if VERSION_JPu8 MsgCharWidthKana[] = { [MSG_CHAR_HIRAGANA_A] 11, [MSG_CHAR_HIRAGANA_I] 11, [MSG_CHAR_HIRAGANA_U] 10, [MSG_CHAR_HIRAGANA_E] 10, [MSG_CHAR_HIRAGANA_O] 11, [MSG_CHAR_HIRAGANA_KA] 11, [MSG_CHAR_HIRAGANA_KI] 9, [MSG_CHAR_HIRAGANA_KU] 9, [MSG_CHAR_HIRAGANA_KE] 11, [MSG_CHAR_HIRAGANA_KO] 10, [MSG_CHAR_HIRAGANA_SA] 10, [MSG_CHAR_HIRAGANA_SI] 9, [MSG_CHAR_HIRAGANA_SU] 11, [MSG_CHAR_HIRAGANA_SE] 11, [MSG_CHAR_HIRAGANA_SO] 10, [MSG_CHAR_HIRAGANA_TA] 11, [MSG_CHAR_HIRAGANA_TI] 11, [MSG_CHAR_HIRAGANA_TU] 11, [MSG_CHAR_HIRAGANA_TE] 11, [MSG_CHAR_HIRAGANA_TO] 10, [MSG_CHAR_HIRAGANA_NA] 11, [MSG_CHAR_HIRAGANA_NI] 11, [MSG_CHAR_HIRAGANA_NU] 11, [MSG_CHAR_HIRAGANA_NE] 11, [MSG_CHAR_HIRAGANA_NO] 11, [MSG_CHAR_HIRAGANA_HA] 11, [MSG_CHAR_HIRAGANA_HI] 11, [MSG_CHAR_HIRAGANA_HU] 11, [MSG_CHAR_HIRAGANA_HE] 11, [MSG_CHAR_HIRAGANA_HO] 11, [MSG_CHAR_HIRAGANA_MA] 9, [MSG_CHAR_HIRAGANA_MI] 11, [MSG_CHAR_HIRAGANA_MU] 11, [MSG_CHAR_HIRAGANA_ME] 11, [MSG_CHAR_HIRAGANA_MO] 11, [MSG_CHAR_HIRAGANA_YA] 11, [MSG_CHAR_HIRAGANA_YU] 11, [MSG_CHAR_HIRAGANA_YO] 11, [MSG_CHAR_HIRAGANA_RA] 11, [MSG_CHAR_HIRAGANA_RI] 11, [MSG_CHAR_HIRAGANA_RU] 11, [MSG_CHAR_HIRAGANA_RE] 11, [MSG_CHAR_HIRAGANA_RO] 11, [MSG_CHAR_HIRAGANA_WA] 11, [MSG_CHAR_HIRAGANA_WO] 11, [MSG_CHAR_HIRAGANA_N] 11, [MSG_CHAR_HIRAGANA_VU] 11, [MSG_CHAR_HIRAGANA_GA] 11, [MSG_CHAR_HIRAGANA_GI] 11, [MSG_CHAR_HIRAGANA_GU] 11, [MSG_CHAR_HIRAGANA_GE] 11, [MSG_CHAR_HIRAGANA_GO] 12, [MSG_CHAR_HIRAGANA_ZA] 11, [MSG_CHAR_HIRAGANA_ZI] 10, [MSG_CHAR_HIRAGANA_ZU] 11, [MSG_CHAR_HIRAGANA_ZE] 11, [MSG_CHAR_HIRAGANA_ZO] 11, [MSG_CHAR_HIRAGANA_DA] 11, [MSG_CHAR_HIRAGANA_DI] 11, [MSG_CHAR_HIRAGANA_DU] 11, [MSG_CHAR_HIRAGANA_DE] 11, [MSG_CHAR_HIRAGANA_DO] 11, [MSG_CHAR_HIRAGANA_BA] 12, [MSG_CHAR_HIRAGANA_BI] 11, [MSG_CHAR_HIRAGANA_BU] 11, [MSG_CHAR_HIRAGANA_BE] 11, [MSG_CHAR_HIRAGANA_BO] 11, [MSG_CHAR_HIRAGANA_PA] 12, [MSG_CHAR_HIRAGANA_PI] 11, [MSG_CHAR_HIRAGANA_PU] 11, [MSG_CHAR_HIRAGANA_PE] 11, [MSG_CHAR_HIRAGANA_PO] 11, [MSG_CHAR_HIRAGANA_SMALL_A] 9, [MSG_CHAR_HIRAGANA_SMALL_I] 8, [MSG_CHAR_HIRAGANA_SMALL_U] 8, [MSG_CHAR_HIRAGANA_SMALL_E] 8, [MSG_CHAR_HIRAGANA_SMALL_O] 9, [MSG_CHAR_HIRAGANA_SMALL_TU] 9, [MSG_CHAR_HIRAGANA_SMALL_YA] 9, [MSG_CHAR_HIRAGANA_SMALL_YU] 9, [MSG_CHAR_HIRAGANA_SMALL_YO] 8, [MSG_CHAR_KATAKANA_A] 11, [MSG_CHAR_KATAKANA_I] 10, [MSG_CHAR_KATAKANA_U] 10, [MSG_CHAR_KATAKANA_E] 11, [MSG_CHAR_KATAKANA_O] 11, [MSG_CHAR_KATAKANA_KA] 11, [MSG_CHAR_KATAKANA_KI] 11, [MSG_CHAR_KATAKANA_KU] 10, [MSG_CHAR_KATAKANA_KE] 11, [MSG_CHAR_KATAKANA_KO] 11, [MSG_CHAR_KATAKANA_SA] 11, [MSG_CHAR_KATAKANA_SI] 11, [MSG_CHAR_KATAKANA_SU] 11, [MSG_CHAR_KATAKANA_SE] 11, [MSG_CHAR_KATAKANA_SO] 11, [MSG_CHAR_KATAKANA_TA] 11, [MSG_CHAR_KATAKANA_TI] 11, [MSG_CHAR_KATAKANA_TU] 11, [MSG_CHAR_KATAKANA_TE] 11, [MSG_CHAR_KATAKANA_TO] 8, [MSG_CHAR_KATAKANA_NA] 11, [MSG_CHAR_KATAKANA_NI] 9, [MSG_CHAR_KATAKANA_NU] 11, [MSG_CHAR_KATAKANA_NE] 10, [MSG_CHAR_KATAKANA_NO] 11, [MSG_CHAR_KATAKANA_HA] 11, [MSG_CHAR_KATAKANA_HI] 11, [MSG_CHAR_KATAKANA_HU] 11, [MSG_CHAR_KATAKANA_HE] 11, [MSG_CHAR_KATAKANA_HO] 11, [MSG_CHAR_KATAKANA_MA] 11, [MSG_CHAR_KATAKANA_MI] 10, [MSG_CHAR_KATAKANA_MU] 11, [MSG_CHAR_KATAKANA_ME] 10, [MSG_CHAR_KATAKANA_MO] 11, [MSG_CHAR_KATAKANA_YA] 11, [MSG_CHAR_KATAKANA_YU] 11, [MSG_CHAR_KATAKANA_YO] 10, [MSG_CHAR_KATAKANA_RA] 11, [MSG_CHAR_KATAKANA_RI] 10, [MSG_CHAR_KATAKANA_RU] 11, [MSG_CHAR_KATAKANA_RE] 10, [MSG_CHAR_KATAKANA_RO] 10, [MSG_CHAR_KATAKANA_WA] 10, [MSG_CHAR_KATAKANA_WO] 10, [MSG_CHAR_KATAKANA_N] 11, [MSG_CHAR_KATAKANA_VU] 11, [MSG_CHAR_KATAKANA_GA] 11, [MSG_CHAR_KATAKANA_GI] 11, [MSG_CHAR_KATAKANA_GU] 11, [MSG_CHAR_KATAKANA_GE] 11, [MSG_CHAR_KATAKANA_GO] 11, [MSG_CHAR_KATAKANA_ZA] 11, [MSG_CHAR_KATAKANA_ZI] 11, [MSG_CHAR_KATAKANA_ZU] 11, [MSG_CHAR_KATAKANA_ZE] 11, [MSG_CHAR_KATAKANA_ZO] 11, [MSG_CHAR_KATAKANA_DA] 11, [MSG_CHAR_KATAKANA_DI] 11, [MSG_CHAR_KATAKANA_DU] 9, [MSG_CHAR_KATAKANA_DE] 11, [MSG_CHAR_KATAKANA_DO] 11, [MSG_CHAR_KATAKANA_BA] 11, [MSG_CHAR_KATAKANA_BI] 11, [MSG_CHAR_KATAKANA_BU] 11, [MSG_CHAR_KATAKANA_BE] 11, [MSG_CHAR_KATAKANA_BO] 11, [MSG_CHAR_KATAKANA_PA] 11, [MSG_CHAR_KATAKANA_PI] 11, [MSG_CHAR_KATAKANA_PU] 11, [MSG_CHAR_KATAKANA_PE] 11, [MSG_CHAR_KATAKANA_PO] 11, [MSG_CHAR_KATAKANA_SMALL_A] 9, [MSG_CHAR_KATAKANA_SMALL_I] 8, [MSG_CHAR_KATAKANA_SMALL_U] 8, [MSG_CHAR_KATAKANA_SMALL_E] 9, [MSG_CHAR_KATAKANA_SMALL_O] 9, [MSG_CHAR_KATAKANA_SMALL_TU] 9, [MSG_CHAR_KATAKANA_SMALL_YA] 9, [MSG_CHAR_KATAKANA_SMALL_YU] 9, [MSG_CHAR_KATAKANA_SMALL_YO] 8, [MSG_CHAR_PROLONGED_SOUND] 11, [MSG_CHAR_TILDE] 11, [MSG_CHAR_LONGDASH_0] 12, [MSG_CHAR_LONGDASH_1] 12, [MSG_CHAR_LONGDASH_2] 11, [MSG_CHAR_DIGIT_0] 11, [MSG_CHAR_DIGIT_1] 8, [MSG_CHAR_DIGIT_2] 10, [MSG_CHAR_DIGIT_3] 11, [MSG_CHAR_DIGIT_4] 11, [MSG_CHAR_DIGIT_5] 10, [MSG_CHAR_DIGIT_6] 11, [MSG_CHAR_DIGIT_7] 11, [MSG_CHAR_DIGIT_8] 11, [MSG_CHAR_DIGIT_9] 11, [MSG_CHAR_UP] 11, [MSG_CHAR_DOWN] 11, [MSG_CHAR_LEFT] 12, [MSG_CHAR_RIGHT] 12, [MSG_CHAR_EXCLAMATION] 11, [MSG_CHAR_QUESTION] 10, [MSG_CHAR_PLUS] 9, [MSG_CHAR_MINUS] 9, [MSG_CHAR_FORWARDSLASH] 11, [MSG_CHAR_PERIOD] 8, [MSG_CHAR_AND] 10, [MSG_CHAR_HASH] 11, [MSG_CHAR_HEART] 11, [MSG_CHAR_STAR] 11, [MSG_CHAR_LPAREN] 9, [MSG_CHAR_RPAREN] 9, [MSG_CHAR_TLBRACKET] 11, [MSG_CHAR_BRBRACKET] 11, [MSG_CHAR_MIDDLE_DOT] 8, [MSG_CHAR_HIRAGANA_SMALL_N] 9, [MSG_CHAR_KATAKANA_SMALL_N] 9, [MSG_CHAR_KANJI_C6] 11,};
u8 MsgCharWidthLatin[] = { [MSG_CHAR_UPPER_A] 11, [MSG_CHAR_UPPER_B] 10, [MSG_CHAR_UPPER_C] 10, [MSG_CHAR_UPPER_D] 10, [MSG_CHAR_UPPER_E] 11, [MSG_CHAR_UPPER_F] 10, [MSG_CHAR_UPPER_G] 11, [MSG_CHAR_UPPER_H] 10, [MSG_CHAR_UPPER_I] 8, [MSG_CHAR_UPPER_J] 9, [MSG_CHAR_UPPER_K] 10, [MSG_CHAR_UPPER_L] 11, [MSG_CHAR_UPPER_M] 11, [MSG_CHAR_UPPER_N] 11, [MSG_CHAR_UPPER_O] 11, [MSG_CHAR_UPPER_P] 11, [MSG_CHAR_UPPER_Q] 11, [MSG_CHAR_UPPER_R] 10, [MSG_CHAR_UPPER_S] 11, [MSG_CHAR_UPPER_T] 11, [MSG_CHAR_UPPER_U] 11, [MSG_CHAR_UPPER_V] 11, [MSG_CHAR_UPPER_W] 11, [MSG_CHAR_UPPER_X] 11, [MSG_CHAR_UPPER_Y] 11, [MSG_CHAR_UPPER_Z] 10, [MSG_CHAR_LOWER_Z] 9,};
u8 MsgCharWidthKanji[] = { [MSG_CHAR_KANJI_00 ... MSG_CHAR_KANJI_77] = 11, [MSG_CHAR_LOWER_X] 7,};
u8 MsgCharWidthButtons[] = { [MSG_CHAR_BUTTON_A] 13, [MSG_CHAR_BUTTON_B] 13, [MSG_CHAR_BUTTON_START] 16, [MSG_CHAR_BUTTON_C_UP] 13, [MSG_CHAR_BUTTON_C_DOWN] 13, [MSG_CHAR_BUTTON_C_LEFT] 13, [MSG_CHAR_BUTTON_C_RIGHT] 13, [MSG_CHAR_BUTTON_Z] 12, [MSG_CHAR_BUTTON_L] 14, [MSG_CHAR_BUTTON_R] 14,};
u8 MsgCharWidthMenuKana[] = { [MSG_CHAR_HIRAGANA_A] 9, [MSG_CHAR_HIRAGANA_I] 9, [MSG_CHAR_HIRAGANA_U] 9, [MSG_CHAR_HIRAGANA_E] 9, [MSG_CHAR_HIRAGANA_O] 9, [MSG_CHAR_HIRAGANA_KA] 9, [MSG_CHAR_HIRAGANA_KI] 9, [MSG_CHAR_HIRAGANA_KU] 9, [MSG_CHAR_HIRAGANA_KE] 9, [MSG_CHAR_HIRAGANA_KO] 9, [MSG_CHAR_HIRAGANA_SA] 9, [MSG_CHAR_HIRAGANA_SI] 9, [MSG_CHAR_HIRAGANA_SU] 9, [MSG_CHAR_HIRAGANA_SE] 9, [MSG_CHAR_HIRAGANA_SO] 9, [MSG_CHAR_HIRAGANA_TA] 9, [MSG_CHAR_HIRAGANA_TI] 9, [MSG_CHAR_HIRAGANA_TU] 9, [MSG_CHAR_HIRAGANA_TE] 9, [MSG_CHAR_HIRAGANA_TO] 9, [MSG_CHAR_HIRAGANA_NA] 9, [MSG_CHAR_HIRAGANA_NI] 9, [MSG_CHAR_HIRAGANA_NU] 9, [MSG_CHAR_HIRAGANA_NE] 9, [MSG_CHAR_HIRAGANA_NO] 9, [MSG_CHAR_HIRAGANA_HA] 9, [MSG_CHAR_HIRAGANA_HI] 9, [MSG_CHAR_HIRAGANA_HU] 9, [MSG_CHAR_HIRAGANA_HE] 9, [MSG_CHAR_HIRAGANA_HO] 9, [MSG_CHAR_HIRAGANA_MA] 9, [MSG_CHAR_HIRAGANA_MI] 9, [MSG_CHAR_HIRAGANA_MU] 9, [MSG_CHAR_HIRAGANA_ME] 9, [MSG_CHAR_HIRAGANA_MO] 9, [MSG_CHAR_HIRAGANA_YA] 9, [MSG_CHAR_HIRAGANA_YU] 9, [MSG_CHAR_HIRAGANA_YO] 9, [MSG_CHAR_HIRAGANA_RA] 9, [MSG_CHAR_HIRAGANA_RI] 9, [MSG_CHAR_HIRAGANA_RU] 9, [MSG_CHAR_HIRAGANA_RE] 9, [MSG_CHAR_HIRAGANA_RO] 9, [MSG_CHAR_HIRAGANA_WA] 9, [MSG_CHAR_HIRAGANA_WO] 9, [MSG_CHAR_HIRAGANA_N] 9, [MSG_CHAR_HIRAGANA_VU] 9, [MSG_CHAR_HIRAGANA_GA] 9, [MSG_CHAR_HIRAGANA_GI] 9, [MSG_CHAR_HIRAGANA_GU] 9, [MSG_CHAR_HIRAGANA_GE] 9, [MSG_CHAR_HIRAGANA_GO] 9, [MSG_CHAR_HIRAGANA_ZA] 9, [MSG_CHAR_HIRAGANA_ZI] 9, [MSG_CHAR_HIRAGANA_ZU] 9, [MSG_CHAR_HIRAGANA_ZE] 9, [MSG_CHAR_HIRAGANA_ZO] 9, [MSG_CHAR_HIRAGANA_DA] 9, [MSG_CHAR_HIRAGANA_DI] 9, [MSG_CHAR_HIRAGANA_DU] 9, [MSG_CHAR_HIRAGANA_DE] 9, [MSG_CHAR_HIRAGANA_DO] 9, [MSG_CHAR_HIRAGANA_BA] 9, [MSG_CHAR_HIRAGANA_BI] 9, [MSG_CHAR_HIRAGANA_BU] 9, [MSG_CHAR_HIRAGANA_BE] 9, [MSG_CHAR_HIRAGANA_BO] 9, [MSG_CHAR_HIRAGANA_PA] 9, [MSG_CHAR_HIRAGANA_PI] 9, [MSG_CHAR_HIRAGANA_PU] 9, [MSG_CHAR_HIRAGANA_PE] 9, [MSG_CHAR_HIRAGANA_PO] 9, [MSG_CHAR_HIRAGANA_SMALL_A] 9, [MSG_CHAR_HIRAGANA_SMALL_I] 8, [MSG_CHAR_HIRAGANA_SMALL_U] 8, [MSG_CHAR_HIRAGANA_SMALL_E] 8, [MSG_CHAR_HIRAGANA_SMALL_O] 8, [MSG_CHAR_HIRAGANA_SMALL_TU] 8, [MSG_CHAR_HIRAGANA_SMALL_YA] 8, [MSG_CHAR_HIRAGANA_SMALL_YU] 8, [MSG_CHAR_HIRAGANA_SMALL_YO] 8, [MSG_CHAR_KATAKANA_A] 9, [MSG_CHAR_KATAKANA_I] 8, [MSG_CHAR_KATAKANA_U] 9, [MSG_CHAR_KATAKANA_E] 9, [MSG_CHAR_KATAKANA_O] 9, [MSG_CHAR_KATAKANA_KA] 9, [MSG_CHAR_KATAKANA_KI] 9, [MSG_CHAR_KATAKANA_KU] 9, [MSG_CHAR_KATAKANA_KE] 9, [MSG_CHAR_KATAKANA_KO] 9, [MSG_CHAR_KATAKANA_SA] 9, [MSG_CHAR_KATAKANA_SI] 9, [MSG_CHAR_KATAKANA_SU] 9, [MSG_CHAR_KATAKANA_SE] 9, [MSG_CHAR_KATAKANA_SO] 9, [MSG_CHAR_KATAKANA_TA] 9, [MSG_CHAR_KATAKANA_TI] 9, [MSG_CHAR_KATAKANA_TU] 9, [MSG_CHAR_KATAKANA_TE] 9, [MSG_CHAR_KATAKANA_TO] 9, [MSG_CHAR_KATAKANA_NA] 9, [MSG_CHAR_KATAKANA_NI] 9, [MSG_CHAR_KATAKANA_NU] 9, [MSG_CHAR_KATAKANA_NE] 9, [MSG_CHAR_KATAKANA_NO] 9, [MSG_CHAR_KATAKANA_HA] 9, [MSG_CHAR_KATAKANA_HI] 9, [MSG_CHAR_KATAKANA_HU] 9, [MSG_CHAR_KATAKANA_HE] 9, [MSG_CHAR_KATAKANA_HO] 9, [MSG_CHAR_KATAKANA_MA] 9, [MSG_CHAR_KATAKANA_MI] 9, [MSG_CHAR_KATAKANA_MU] 9, [MSG_CHAR_KATAKANA_ME] 9, [MSG_CHAR_KATAKANA_MO] 9, [MSG_CHAR_KATAKANA_YA] 9, [MSG_CHAR_KATAKANA_YU] 9, [MSG_CHAR_KATAKANA_YO] 9, [MSG_CHAR_KATAKANA_RA] 9, [MSG_CHAR_KATAKANA_RI] 9, [MSG_CHAR_KATAKANA_RU] 9, [MSG_CHAR_KATAKANA_RE] 9, [MSG_CHAR_KATAKANA_RO] 9, [MSG_CHAR_KATAKANA_WA] 9, [MSG_CHAR_KATAKANA_WO] 9, [MSG_CHAR_KATAKANA_N] 9, [MSG_CHAR_KATAKANA_VU] 9, [MSG_CHAR_KATAKANA_GA] 9, [MSG_CHAR_KATAKANA_GI] 9, [MSG_CHAR_KATAKANA_GU] 9, [MSG_CHAR_KATAKANA_GE] 9, [MSG_CHAR_KATAKANA_GO] 9, [MSG_CHAR_KATAKANA_ZA] 9, [MSG_CHAR_KATAKANA_ZI] 9, [MSG_CHAR_KATAKANA_ZU] 9, [MSG_CHAR_KATAKANA_ZE] 9, [MSG_CHAR_KATAKANA_ZO] 9, [MSG_CHAR_KATAKANA_DA] 9, [MSG_CHAR_KATAKANA_DI] 9, [MSG_CHAR_KATAKANA_DU] 9, [MSG_CHAR_KATAKANA_DE] 9, [MSG_CHAR_KATAKANA_DO] 9, [MSG_CHAR_KATAKANA_BA] 9, [MSG_CHAR_KATAKANA_BI] 9, [MSG_CHAR_KATAKANA_BU] 9, [MSG_CHAR_KATAKANA_BE] 9, [MSG_CHAR_KATAKANA_BO] 9, [MSG_CHAR_KATAKANA_PA] 9, [MSG_CHAR_KATAKANA_PI] 9, [MSG_CHAR_KATAKANA_PU] 9, [MSG_CHAR_KATAKANA_PE] 9, [MSG_CHAR_KATAKANA_PO] 9, [MSG_CHAR_KATAKANA_SMALL_A] 8, [MSG_CHAR_KATAKANA_SMALL_I] 8, [MSG_CHAR_KATAKANA_SMALL_U] 8, [MSG_CHAR_KATAKANA_SMALL_E] 8, [MSG_CHAR_KATAKANA_SMALL_O] 8, [MSG_CHAR_KATAKANA_SMALL_TU] 8, [MSG_CHAR_KATAKANA_SMALL_YA] 8, [MSG_CHAR_KATAKANA_SMALL_YU] 8, [MSG_CHAR_KATAKANA_SMALL_YO] 8, [MSG_CHAR_PROLONGED_SOUND] 9, [MSG_CHAR_TILDE] 9, [MSG_CHAR_LONGDASH_0] 9, [MSG_CHAR_LONGDASH_1] 9, [MSG_CHAR_LONGDASH_2] 11, [MSG_CHAR_DIGIT_0] 9, [MSG_CHAR_DIGIT_1] 8, [MSG_CHAR_DIGIT_2] 9, [MSG_CHAR_DIGIT_3] 9, [MSG_CHAR_DIGIT_4] 9, [MSG_CHAR_DIGIT_5] 9, [MSG_CHAR_DIGIT_6] 9, [MSG_CHAR_DIGIT_7] 9, [MSG_CHAR_DIGIT_8] 9, [MSG_CHAR_DIGIT_9] 9, [MSG_CHAR_UP] 9, [MSG_CHAR_DOWN] 9, [MSG_CHAR_LEFT] 9, [MSG_CHAR_RIGHT] 9, [MSG_CHAR_EXCLAMATION] 9, [MSG_CHAR_QUESTION] 9, [MSG_CHAR_PLUS] 9, [MSG_CHAR_MINUS] 9, [MSG_CHAR_FORWARDSLASH] 10, [MSG_CHAR_PERIOD] 7, [MSG_CHAR_AND] 9, [MSG_CHAR_HASH] 9, [MSG_CHAR_HEART] 9, [MSG_CHAR_STAR] 9, [MSG_CHAR_LPAREN] 9, [MSG_CHAR_RPAREN] 9, [MSG_CHAR_TLBRACKET] 9, [MSG_CHAR_BRBRACKET] 9, [MSG_CHAR_MIDDLE_DOT] 7, [MSG_CHAR_HIRAGANA_SMALL_N] 8, [MSG_CHAR_KATAKANA_SMALL_N] 8, [MSG_CHAR_KANJI_C6] 11, [MSG_CHAR_KANJI_C7] 11,};
u8 MsgCharWidthMenuLatin[] = { [MSG_CHAR_UPPER_A] 9, [MSG_CHAR_UPPER_B] 9, [MSG_CHAR_UPPER_C] 9, [MSG_CHAR_UPPER_D] 9, [MSG_CHAR_UPPER_E] 9, [MSG_CHAR_UPPER_F] 9, [MSG_CHAR_UPPER_G] 9, [MSG_CHAR_UPPER_H] 9, [MSG_CHAR_UPPER_I] 8, [MSG_CHAR_UPPER_J] 9, [MSG_CHAR_UPPER_K] 9, [MSG_CHAR_UPPER_L] 9, [MSG_CHAR_UPPER_M] 9, [MSG_CHAR_UPPER_N] 9, [MSG_CHAR_UPPER_O] 9, [MSG_CHAR_UPPER_P] 9, [MSG_CHAR_UPPER_Q] 9, [MSG_CHAR_UPPER_R] 9, [MSG_CHAR_UPPER_S] 9, [MSG_CHAR_UPPER_T] 9, [MSG_CHAR_UPPER_U] 9, [MSG_CHAR_UPPER_V] 9, [MSG_CHAR_UPPER_W] 9, [MSG_CHAR_UPPER_X] 9, [MSG_CHAR_UPPER_Y] 9, [MSG_CHAR_UPPER_Z] 9, [MSG_CHAR_LOWER_Z] 9,};
MessageCharData MsgCharDataNormal[] = { { .raster = MsgCharImgKana, .charWidthTable = MsgCharWidthKana, .monospaceWidth = 11, .baseHeightOffset = 0, }, { .raster = MsgCharImgLatin, .charWidthTable = MsgCharWidthLatin, .monospaceWidth = 11, .baseHeightOffset = 2, }, { .raster = MsgCharImgTitle, .charWidthTable = MsgCharWidthKanji, .monospaceWidth = 12, .baseHeightOffset = 0, }, { .raster = MsgCharImgSubtitle, .charWidthTable = MsgCharWidthButtons, .monospaceWidth = 14, .baseHeightOffset = 0, }, {}};
MessageCharset MsgCharsetNormal = { .texSize = { 16, 14 }, .unk_02 = 14, .newLineY = 16, .charRasterSize = 112, .rasters = MsgCharDataNormal};
MessageCharData MsgCharDataMenu[] = { { .raster = MsgCharImgMenuKana, .charWidthTable = MsgCharWidthMenuKana, .monospaceWidth = 9, .baseHeightOffset = 0, }, { .raster = MsgCharImgMenuLatin, .charWidthTable = MsgCharWidthMenuLatin, .monospaceWidth = 9, .baseHeightOffset = 0, }, {}};
MessageCharset MsgCharsetMenu = { .texSize = { 12, 12 }, .unk_02 = 10, .newLineY = 12, .charRasterSize = 72, .rasters = MsgCharDataMenu};
MessageCharset MsgCharsetMenu2 = { .texSize = { 12, 12 }, .unk_02 = 10, .newLineY = 16, .charRasterSize = 72, .rasters = MsgCharDataMenu};#elseu8 MsgCharWidthNormal[] = { [MSG_CHAR_NOTE] 11, [MSG_CHAR_EXCLAMTION] 8, [MSG_CHAR_BACKSLASH] 8, [MSG_CHAR_HASH] 10, [MSG_CHAR_DOLLAR] 9, [MSG_CHAR_PERCENT] 9, [MSG_CHAR_AND] 9, [MSG_CHAR_APOSTROPHE] 4, [MSG_CHAR_LPAREN] 8, [MSG_CHAR_RPAREN] 8, [MSG_CHAR_TIMES] 9, [MSG_CHAR_PLUS] 9, [MSG_CHAR_COMMA] 5, [MSG_CHAR_MINUS] 9, [MSG_CHAR_PERIOD] 5, [MSG_CHAR_FORWARDSLASH] 10, [MSG_CHAR_DIGIT_0] 9, [MSG_CHAR_DIGIT_1] 7, [MSG_CHAR_DIGIT_2] 9, [MSG_CHAR_DIGIT_3] 9, [MSG_CHAR_DIGIT_4] 9, [MSG_CHAR_DIGIT_5] 9, [MSG_CHAR_DIGIT_6] 9, [MSG_CHAR_DIGIT_7] 9, [MSG_CHAR_DIGIT_8] 9, [MSG_CHAR_DIGIT_9] 9, [MSG_CHAR_COLON] 5, [MSG_CHAR_SEMICOLON] 5, [MSG_CHAR_LESS_THAN] 8, [MSG_CHAR_EQUAL] 9, [MSG_CHAR_GREATER_THAN] 8, [MSG_CHAR_QUESTION] 9, [MSG_CHAR_AT] 10, [MSG_CHAR_UPPER_A] 9, [MSG_CHAR_UPPER_B] 9, [MSG_CHAR_UPPER_C] 9, [MSG_CHAR_UPPER_D] 9, [MSG_CHAR_UPPER_E] 9, [MSG_CHAR_UPPER_F] 9, [MSG_CHAR_UPPER_G] 9, [MSG_CHAR_UPPER_H] 9, [MSG_CHAR_UPPER_I] 7, [MSG_CHAR_UPPER_J] 9, [MSG_CHAR_UPPER_K] 9, [MSG_CHAR_UPPER_L] 9, [MSG_CHAR_UPPER_M] 9, [MSG_CHAR_UPPER_N] 9, [MSG_CHAR_UPPER_O] 9, [MSG_CHAR_UPPER_P] 9, [MSG_CHAR_UPPER_Q] 9, [MSG_CHAR_UPPER_R] 9, [MSG_CHAR_UPPER_S] 9, [MSG_CHAR_UPPER_T] 9, [MSG_CHAR_UPPER_U] 9, [MSG_CHAR_UPPER_V] 9, [MSG_CHAR_UPPER_W] 9, [MSG_CHAR_UPPER_X] 9, [MSG_CHAR_UPPER_Y] 9, [MSG_CHAR_UPPER_Z] 9, [MSG_CHAR_LBRACKET] 7, [MSG_CHAR_YEN] 9, [MSG_CHAR_RBRACKET] 6, [MSG_CHAR_CARET] 7, [MSG_CHAR_UNDERSCORE] 9, [MSG_CHAR_BACKTICK] 6, [MSG_CHAR_LOWER_A] 9, [MSG_CHAR_LOWER_B] 8, [MSG_CHAR_LOWER_C] 8, [MSG_CHAR_LOWER_D] 9, [MSG_CHAR_LOWER_E] 8, [MSG_CHAR_LOWER_F] 8, [MSG_CHAR_LOWER_G] 8, [MSG_CHAR_LOWER_H] 7, [MSG_CHAR_LOWER_I] 4, [MSG_CHAR_LOWER_J] 7, [MSG_CHAR_LOWER_K] 8, [MSG_CHAR_LOWER_L] 4, [MSG_CHAR_LOWER_M] 9, [MSG_CHAR_LOWER_N] 8, [MSG_CHAR_LOWER_O] 7, [MSG_CHAR_LOWER_P] 9, [MSG_CHAR_LOWER_Q] 8, [MSG_CHAR_LOWER_R] 8, [MSG_CHAR_LOWER_S] 8, [MSG_CHAR_LOWER_T] 8, [MSG_CHAR_LOWER_U] 8, [MSG_CHAR_LOWER_V] 8, [MSG_CHAR_LOWER_W] 9, [MSG_CHAR_LOWER_X] 8, [MSG_CHAR_LOWER_Y] 8, [MSG_CHAR_LOWER_Z] 8, [MSG_CHAR_LCURLY] 7, [MSG_CHAR_PIPE] 3, [MSG_CHAR_RCURLY] 7, [MSG_CHAR_TILDA] 10, [MSG_CHAR_DEGREE] 7, [MSG_CHAR_UPPER_A_GRAVE] 9, [MSG_CHAR_UPPER_A_ACUTE] 9, [MSG_CHAR_UPPER_A_CIRCUMFLEX] 9, [MSG_CHAR_UPPER_A_UMLAUT] 9, [MSG_CHAR_UPPER_C_CEDILLA] 9, [MSG_CHAR_UPPER_E_GRAVE] 9, [MSG_CHAR_UPPER_E_ACUTE] 9, [MSG_CHAR_UPPER_E_CIRCUMFLEX] 9, [MSG_CHAR_UPPER_E_UMLAUT] 9, [MSG_CHAR_UPPER_I_GRAVE] 7, [MSG_CHAR_UPPER_I_ACUTE] 7, [MSG_CHAR_UPPER_I_CIRCUMFLEX] 7, [MSG_CHAR_UPPER_I_UMLAUT] 8, [MSG_CHAR_UPPER_N_TILDE] 9, [MSG_CHAR_UPPER_O_GRAVE] 9,#if VERSION_IQUE [MSG_CHAR_UPPER_O_ACUTE ... MSG_CHAR_BUTTON_C_LEFT] = 18,#else [MSG_CHAR_UPPER_O_ACUTE] 9, [MSG_CHAR_UPPER_O_CIRCUMFLEX] 9, [MSG_CHAR_UPPER_O_UMLAUT] 9, [MSG_CHAR_UPPER_U_GRAVE] 9, [MSG_CHAR_UPPER_U_ACUTE] 9, [MSG_CHAR_UPPER_U_CIRCUMFLEX] 9, [MSG_CHAR_UPPER_U_UMLAUT] 9, [MSG_CHAR_SHARP_S] 9, [MSG_CHAR_LOWER_A_GRAVE] 9, [MSG_CHAR_LOWER_A_ACUTE] 9, [MSG_CHAR_LOWER_A_CIRCUMFLEX] 9, [MSG_CHAR_LOWER_A_UMLAUT] 9, [MSG_CHAR_LOWER_C_CEDILLA] 8, [MSG_CHAR_LOWER_E_GRAVE] 8, [MSG_CHAR_LOWER_E_ACUTE] 8, [MSG_CHAR_LOWER_E_CIRCUMFLEX] 8, [MSG_CHAR_LOWER_E_UMLAUT] 8, [MSG_CHAR_LOWER_I_GRAVE] 6, [MSG_CHAR_LOWER_I_ACUTE] 6, [MSG_CHAR_LOWER_I_CIRCUMFLEX] 6, [MSG_CHAR_LOWER_I_UMLAUT] 7, [MSG_CHAR_LOWER_N_TILDE] 9, [MSG_CHAR_LOWER_O_GRAVE] 7, [MSG_CHAR_LOWER_O_ACUTE] 7, [MSG_CHAR_LOWER_O_CIRCUMFLEX] 7, [MSG_CHAR_LOWER_O_UMLAUT] 8, [MSG_CHAR_LOWER_U_GRAVE] 8, [MSG_CHAR_LOWER_U_ACUTE] 8, [MSG_CHAR_LOWER_U_CIRCUMFLEX] 8, [MSG_CHAR_LOWER_U_UMLAUT] 8, [MSG_CHAR_INVERTED_EXCLAMTION] 6, [MSG_CHAR_INVERTED_QUESTION] 9, [MSG_CHAR_FEM_ORDINAL] 7, [MSG_CHAR_HEART] 11, [MSG_CHAR_STAR] 11, [MSG_CHAR_UP] 11, [MSG_CHAR_DOWN] 11, [MSG_CHAR_LEFT] 12, [MSG_CHAR_RIGHT] 12, [MSG_CHAR_CIRCLE] 11, [MSG_CHAR_CROSS] 11, [MSG_CHAR_BUTTON_A] 13, [MSG_CHAR_BUTTON_B] 13, [MSG_CHAR_BUTTON_L] 14, [MSG_CHAR_BUTTON_R] 14, [MSG_CHAR_BUTTON_Z] 12, [MSG_CHAR_BUTTON_C_UP] 13, [MSG_CHAR_BUTTON_C_DOWN] 13, [MSG_CHAR_BUTTON_C_LEFT] 13,#endif [MSG_CHAR_BUTTON_C_RIGHT] 13, [MSG_CHAR_BUTTON_START] 16, [MSG_CHAR_DOUBLE_QUOTE_OPEN] 9, [MSG_CHAR_DOUBLE_QUOTE_CLOSE] 9, [MSG_CHAR_SINGLE_QUOTE_OPEN] 5, [MSG_CHAR_SINGLE_QUOTE_CLOSE] 5,};
MessageCharData MsgCharDataNormal[] = { { .raster = MsgCharImgNormal, .charWidthTable = MsgCharWidthNormal, .monospaceWidth = 10, .baseHeightOffset = 0, }, { .raster = MsgCharImgNormal, .charWidthTable = MsgCharWidthNormal, .monospaceWidth = 10, .baseHeightOffset = -2, }, { .raster = MsgCharImgNormal, .charWidthTable = MsgCharWidthNormal, .monospaceWidth = 10, .baseHeightOffset = 0, }, { .raster = MsgCharImgNormal, .charWidthTable = MsgCharWidthNormal, .monospaceWidth = 10, .baseHeightOffset = 0, }, {}};
MessageCharData MsgCharDataMenu[] = { { .raster = MsgCharImgNormal, .charWidthTable = MsgCharWidthNormal, .monospaceWidth = 9, .baseHeightOffset = -2, }, { .raster = MsgCharImgNormal, .charWidthTable = MsgCharWidthNormal, .monospaceWidth = 9, .baseHeightOffset = 0, }, { .raster = MsgCharImgNormal, .charWidthTable = MsgCharWidthNormal, .monospaceWidth = 9, .baseHeightOffset = 0, }, { .raster = MsgCharImgNormal, .charWidthTable = MsgCharWidthNormal, .monospaceWidth = 9, .baseHeightOffset = 0, }, {}};
MessageCharset MsgCharsetNormal = { .texSize = { 16, 16 }, .unk_02 = 14, .newLineY = 16, .charRasterSize = 128, .rasters = MsgCharDataNormal};
MessageCharset MsgCharsetMenu = { .texSize = { 16, 16 }, .unk_02 = 14, .newLineY = 16, .charRasterSize = 128, .rasters = MsgCharDataMenu};#endif
u8 MsgCharWidthTitle[] = { 8, 8, 8, 9, 8, 8, 8, 8, 5, 8, 9, 8,10, 8, 8, 9, 8, 9, 8, 8, 8, 8,10, 9, 9, 8, 4, 3, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 10};
u8 MsgCharWidthSubtitle[] = { 9, 9, 8, 8, 7, 7, 8, 7, 3, 7, 7, 7, 8, 7, 8, 8, 8, 7, 7, 8, 7, 7, 8, 8, 8, 7, 4, 3, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8};
MessageCharData MsgCharDataTitle[] = { { .raster = MsgCharImgTitle, .charWidthTable = MsgCharWidthTitle, .monospaceWidth = 14, .baseHeightOffset = 0, }, {}};
MessageCharData MsgCharDataSubtitle[] = { { .raster = MsgCharImgSubtitle, .charWidthTable = MsgCharWidthSubtitle, .monospaceWidth = 10, .baseHeightOffset = 0, }, {}};
MessageCharset MsgCharsetTitle = { .texSize = { 12, 15 }, .unk_02 = 14, .newLineY = 16, .charRasterSize = 96, .rasters = MsgCharDataTitle};
MessageCharset MsgCharsetSubtitle = { .texSize = { 12, 12 }, .unk_02 = 10, .newLineY = 10, .charRasterSize = 72, .rasters = MsgCharDataSubtitle};
MessageCharset* MsgCharsets[] = { [MSG_FONT_NORMAL] &MsgCharsetNormal, [MSG_FONT_MENU] &MsgCharsetMenu,#if VERSION_JP [MSG_FONT_2] &MsgCharsetMenu2,#else [MSG_FONT_2] &MsgCharsetMenu,#endif [MSG_FONT_TITLE] &MsgCharsetTitle, [MSG_FONT_SUBTITLE] &MsgCharsetSubtitle, NULL};
IMG_PTR MsgLetterRasterOffsets[] = { charset_letter_content_1_OFFSET, charset_letter_content_2_OFFSET, charset_letter_content_3_OFFSET, charset_letter_content_4_OFFSET, charset_letter_content_5_OFFSET, charset_letter_content_6_OFFSET, charset_letter_content_7_OFFSET, charset_letter_content_8_OFFSET, charset_letter_content_9_OFFSET, charset_letter_content_10_OFFSET, charset_letter_content_11_OFFSET, charset_letter_content_12_OFFSET,};
PAL_PTR MsgLetterPaletteOffsets[] = { charset_letter_content_1_pal_OFFSET, charset_letter_content_2_pal_OFFSET, charset_letter_content_3_pal_OFFSET, charset_letter_content_4_pal_OFFSET, charset_letter_content_5_pal_OFFSET, charset_letter_content_6_pal_OFFSET, charset_letter_content_7_pal_OFFSET, charset_letter_content_8_pal_OFFSET, charset_letter_content_9_pal_OFFSET, charset_letter_content_10_pal_OFFSET, charset_letter_content_11_pal_OFFSET, charset_letter_content_12_pal_OFFSET,};
MsgVoice MsgVoices[] = { [MSG_VOICE_NORMAL] { .voiceA = SOUND_MSG_VOICE_1A, .voiceB = SOUND_MSG_VOICE_1B, .pitchShift = 0 }, [MSG_VOICE_BOWSER] { .voiceA = SOUND_MSG_VOICE_4A, .voiceB = SOUND_MSG_VOICE_4B, .pitchShift = -50 }, [MSG_VOICE_STAR] { .voiceA = SOUND_MSG_VOICE_STAR, .voiceB = SOUND_MSG_VOICE_STAR, .pitchShift = 0 },};
#if !VERSION_JPs16 MsgStyleVerticalLineOffsets[] = { [MSG_STYLE_NONE] 0, [MSG_STYLE_RIGHT] -4, [MSG_STYLE_LEFT] -4, [MSG_STYLE_CENTER] -4, [MSG_STYLE_TATTLE] -4, [MSG_STYLE_CHOICE] 0, [MSG_STYLE_INSPECT] -4, [MSG_STYLE_SIGN] -4, [MSG_STYLE_LAMPPOST] -4, [MSG_STYLE_POSTCARD] 0, [MSG_STYLE_POPUP] 0, [MSG_STYLE_B] 0, [MSG_STYLE_UPGRADE] 0, [MSG_STYLE_NARRATE] -4, [MSG_STYLE_EPILOGUE] -4, [MSG_STYLE_F] 0,};#endif