Files
Aloqas 0e6c93efd8 jak2/jak3: Flags for custom languages (#4209)
<img width="224" height="39" alt="Näyttökuva 2026-04-12 013017"
src="https://github.com/user-attachments/assets/fbfc8e6d-83f7-496c-bbfd-d1d1df955359"
/>
<img width="185" height="39" alt="Näyttökuva 2026-04-12 013027"
src="https://github.com/user-attachments/assets/8ba826e3-8268-4e37-bef5-4404acef1f53"
/>
<img width="181" height="35" alt="Näyttökuva 2026-04-12 143327"
src="https://github.com/user-attachments/assets/bbd4da10-2ead-4f7f-a5ca-9bdf4f5f2c1a"
/>
<img width="286" height="35" alt="Näyttökuva 2026-04-12 143339"
src="https://github.com/user-attachments/assets/60fc2581-b92e-42a4-9a13-6f51587112a1"
/>
<img width="405" height="38" alt="Näyttökuva 2026-04-12 013059"
src="https://github.com/user-attachments/assets/a641f6c3-ba8f-473f-a680-0828a9fd1bcf"
/>
<img width="210" height="37" alt="Näyttökuva 2026-04-12 143351"
src="https://github.com/user-attachments/assets/d0ce1da8-2fe6-4fdb-b943-01b595606dbb"
/>
<img width="203" height="37" alt="Näyttökuva 2026-04-12 143400"
src="https://github.com/user-attachments/assets/a8f81b2d-2a96-46a5-bebb-6839ef8fc18e"
/>
<img width="220" height="37" alt="Näyttökuva 2026-04-12 143410"
src="https://github.com/user-attachments/assets/fe9a12b9-ea23-48bb-ba0a-e310eb5e13e2"
/>
<img width="179" height="38" alt="Näyttökuva 2026-04-12 143418"
src="https://github.com/user-attachments/assets/d10926e2-81f9-479f-8df5-078f823db8f0"
/>
<img width="338" height="38" alt="Näyttökuva 2026-04-12 143427"
src="https://github.com/user-attachments/assets/4bc9edc0-d914-4e2d-9b9d-c662e2a6bd80"
/>
<img width="220" height="39" alt="Näyttökuva 2026-04-12 143439"
src="https://github.com/user-attachments/assets/ca8134e2-aa37-4e51-b23e-87a816514b5f"
/>
<img width="231" height="37" alt="Näyttökuva 2026-04-12 013158"
src="https://github.com/user-attachments/assets/69af6c29-699c-41c8-a93d-033497c1ba18"
/>
<img width="210" height="37" alt="Näyttökuva 2026-04-12 013205"
src="https://github.com/user-attachments/assets/1cd8cf1c-2ff0-4b3a-becc-902302466180"
/>

Needs testing, I was having issues with Visual Studio so I couldn't
fully test

---------

Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
2026-04-14 01:15:18 -04:00

905 lines
34 KiB
C++
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "font_db_jak2.h"
std::unordered_set<char> passthrus_jak2 = {'~', ' ', ',', '.', '-', '+', '(', ')',
'!', ':', '?', '=', '%', '*', '/', '#',
';', '<', '>', '@', '[', '_', ']'};
std::vector<ReplaceInfo> replace_info_jak2 = {
// other
{"A~Y~-21H~-5Vº~Z", "Å"},
{"N~Y~-6Hº~Z~+10H", ""},
// portuguese
{"~+4Vç~-4V", "ç"},
{"O~Y~-25H~-1V/~Z", "Ø"},
{"o~Y~-23H~+4V/~Z", "ø"},
{"A~Y~-13H~+8V,~Z", "Ą"},
{"a~Y~-8H~+6V,~Z", "ą"},
{"E~Y~-6H~+8V,~Z", "Ę"},
{"e~Y~-10H~+7V,~Z", "ę"},
{"L~Y~-21H~+0V/~Z", "Ł"},
{"l~Y~-16H~+0V/~Z", "ł"}, // TODO - this one is ugly, font character addition (small slash)
{"Z~Y~-25H~-11Vº~Z", "Ż"},
{"z~Y~-23H~-5Vº~Z", "ż"},
{"a~Y~-25H~-5Vº~Z", "å"},
{"S~Y~-21H~-5V'~Z", "Ś"},
{"s~Y~-25H~-5V'~Z", "ś"},
{"n~Y~-25H~-5V'~Z", "ń"},
{"c~Y~-25H~-5V'~Z", "ć"},
{"o~Y~-25H~-4V<TIL>~Z", "õ"},
{"a~Y~-25H~-4V<TIL>~Z", "ã"},
{"O~Y~-28H~-4V'~-9H'~Z", "Ő"},
{"U~Y~-27H~-4V'~-12H'~Z", "Ű"},
{"o~Y~-28H~-4V'~-9H'~Z", "ő"},
{"u~Y~-28H~-4V'~-9H'~Z", "ű"},
{"E~Y~-22H~-11Vº~Z", "Ė"},
{"e~Y~-25H~-5Vº~Z", "ė"},
{"C~Y~-27H~-10Vˇ~Z", "Č"},
{"c~Y~-25H~-5Vˇ~Z", "č"},
{"D~Y~-27H~-10Vˇ~Z", "Ď"},
{"S~Y~-24H~-10Vˇ~Z", "Š"},
{"s~Y~-22H~-4Vˇ~Z", "š"},
{"Z~Y~-25H~-10Vˇ~Z", "Ž"},
{"z~Y~-23H~-4Vˇ~Z", "ž"},
{"U~Y~-15H~+5V,~Z", "Ų"},
{"u~Y~-15H~+5V,~Z", "ų"},
{"U~Y~-20H~-18V-~Z", "Ū"},
{"u~Y~-18H~-15V-~Z", "ū"},
{"D~Y~-28H~-1V-~Z", "Đ"},
{"d~Y~-13H~-10V-~Z", "đ"},
{"I~Y~-8H~+4V,~Z", "Į"},
{"i~Y~-8H~+4V,~Z", "į"},
// czech specific
{"U~Y~-24H~-7Vº~Z", "Ů"},
{"u~Y~-23H~-5Vº~Z", "ů"},
{"t~Y~-7H~-21V,~Z", "ť"},
// tildes
{"N~Y~-22H~-4V<TIL>~Z", "Ñ"},
{"n~Y~-24H~-4V<TIL>~Z", "ñ"},
{"A~Y~-21H~-5V<TIL>~Z", "Ã"},
{"O~Y~-22H~-4V<TIL>~Z", "Õ"},
// acute accents
{"A~Y~-21H~-5V'~Z", "Á"},
{"A~Y~-26H~-8V'~Z", "<Á_V2>"}, // unfortunate...
{"a~Y~-25H~-5V'~Z", "á"},
{"E~Y~-23H~-9V'~Z", "É"},
{"e~Y~-26H~-5V'~Z", "é"},
{"I~Y~-19H~-8V'~Z", "Í"},
{"i~Y~-19H~-8V'~Z", "í"},
{"O~Y~-22H~-4V'~Z", "Ó"},
{"o~Y~-26H~-4V'~Z", "ó"},
{"U~Y~-25H~-8V'~Z", "Ú"},
{"u~Y~-24H~-3V'~Z", "ú"},
{"Z~Y~-24H~-3V'~Z", "Ź"},
{"z~Y~-24H~-3V'~Z", "ź"},
// czech specific
{"Y~Y~-26H~-5V'~Z", "Ý"},
{"~+7Vy~-7V~Y~-24H~-3V'~Z", "ý"},
// circumflex
{"A~Y~-20H~-4V^~Z", "Â"},
{"a~Y~-24H~-5V^~Z", "â"},
{"E~Y~-20H~-5V^~Z", "Ê"},
{"e~Y~-25H~-4V^~Z", "ê"},
{"I~Y~-19H~-5V^~Z", "Î"},
{"i~Y~-19H~-8V^~Z", "î"},
{"O~Y~-20H~-4V^~Z", "Ô"},
{"o~Y~-25H~-4V^~Z", "ô"},
{"U~Y~-24H~-3V^~Z", "Û"},
{"u~Y~-23H~-3V^~Z", "û"},
// grave accents
{"A~Y~-26H~-8V`~Z", "À"},
{"a~Y~-25H~-5V`~Z", "à"},
{"E~Y~-23H~-9V`~Z", "È"},
{"e~Y~-26H~-5V`~Z", "è"},
{"I~Y~-19H~-5V`~Z", "Ì"},
{"i~Y~-19H~-8V`~Z", "ì"},
{"O~Y~-22H~-4V`~Z", "Ò"},
{"o~Y~-26H~-4V`~Z", "ò"},
{"U~Y~-24H~-3V`~Z", "Ù"},
{"u~Y~-24H~-3V`~Z", "ù"},
// umlaut
{"A~Y~-26H~-8V¨~Z", "Ä"},
{"a~Y~-25H~-5V¨~Z", "ä"},
{"E~Y~-20H~-5V¨~Z", "Ë"},
{"e~Y~-25H~-5V¨~Z", "ë"},
{"I~Y~-19H~-5V¨~Z", "Ï"},
{"i~Y~-26H~-4V¨~Z", "ï"},
{"O~Y~-26H~-8V¨~Z", "Ö"},
{"o~Y~-26H~-4V¨~Z", "ö"},
{"U~Y~-25H~-8V¨~Z", "Ü"},
{"u~Y~-24H~-3V¨~Z", "ü"},
// caron - Ǎ ǎ Ě ě Ǧ ǧ Ǐ ǐ Ǒ ǒ Ǔ ǔ Y̌ y̌
{"A~Y~-25H~-9Vˇ~Z", "Ǎ"},
{"a~Y~-24H~-5Vˇ~Z", "ǎ"},
{"E~Y~-22H~-8Vˇ~Z", "Ě"},
{"e~Y~-25H~-4Vˇ~Z", "ě"},
{"G~Y~-24H~-8Vˇ~Z", "Ǧ"},
{"~+7Vg~-7V~Y~-25H~-4Vˇ~Z", "ǧ"},
{"I~Y~-19H~-8Vˇ~Z", "Ǐ"},
{"i~Y~-19H~-8Vˇ~Z", "ǐ"},
{"O~Y~-25H~-7Vˇ~Z", "Ǒ"},
{"o~Y~-25H~-4Vˇ~Z", "ǒ"},
{"U~Y~-25H~-6Vˇ~Z", "Ǔ"},
{"u~Y~-24H~-3Vˇ~Z", "ǔ"},
{"Y~Y~-25H~-5Vˇ~Z", ""},
{"~+7Vy~-7V~Y~-25H~-3Vˇ~Z", ""},
// czech specific - Č č Ň ň Ř ř Š š Ž ž Ť
{"C~Y~-25H~-9Vˇ~Z", "Č"},
{"c~Y~-24H~-5Vˇ~Z", "č"},
{"N~Y~-25H~-9Vˇ~Z", "Ň"},
{"n~Y~-24H~-5Vˇ~Z", "ň"},
{"R~Y~-25H~-9Vˇ~Z", "Ř"},
{"r~Y~-22H~-5Vˇ~Z", "ř"},
{"S~Y~-25H~-9Vˇ~Z", "Š"},
{"s~Y~-22H~-5Vˇ~Z", "š"},
{"T~Y~-24H~-7Vˇ~Z", "Ť"},
{"Z~Y~-25H~-9Vˇ~Z", "Ž"},
{"z~Y~-24H~-5Vˇ~Z", "ž"},
// dakuten katakana
{"~Yウ~Z゛", ""},
{"~Yカ~Z゛", ""},
{"~Yキ~Z゛", ""},
{"~Yク~Z゛", ""},
{"~Yケ~Z゛", ""},
{"~Yコ~Z゛", ""},
{"~Yサ~Z゛", ""},
{"~Yシ~Z゛", ""},
{"~Yス~Z゛", ""},
{"~Yセ~Z゛", ""},
{"~Yソ~Z゛", ""},
{"~Yタ~Z゛", ""},
{"~Yチ~Z゛", ""},
{"~Yツ~Z゛", ""},
{"~Yテ~Z゛", ""},
{"~Yト~Z゛", ""},
{"~Yハ~Z゛", ""},
{"~Yヒ~Z゛", ""},
{"~Yフ~Z゛", ""},
{"~Yヘ~Z゛", ""},
{"~Yホ~Z゛", ""},
// handakuten katakana
{"~Yハ~Z゜", ""},
{"~Yヒ~Z゜", ""},
{"~Yフ~Z゜", ""},
{"~Yヘ~Z゜", ""},
{"~Yホ~Z゜", ""},
// dakuten hiragana
{"~Yか~Z゛", ""},
{"~Yき~Z゛", ""},
{"~Yく~Z゛", ""},
{"~Yけ~Z゛", ""},
{"~Yこ~Z゛", ""},
{"~Yさ~Z゛", ""},
{"~Yし~Z゛", ""},
{"~Yす~Z゛", ""},
{"~Yせ~Z゛", ""},
{"~Yそ~Z゛", ""},
{"~Yた~Z゛", ""},
{"~Yち~Z゛", ""},
{"~Yつ~Z゛", ""},
{"~Yて~Z゛", ""},
{"~Yと~Z゛", ""},
{"~Yは~Z゛", ""},
{"~Yひ~Z゛", ""},
{"~Yふ~Z゛", ""},
{"~Yへ~Z゛", ""},
{"~Yほ~Z゛", ""},
// handakuten hiragana
{"~Yは~Z゜", ""},
{"~Yひ~Z゜", ""},
{"~Yふ~Z゜", ""},
{"~Yへ~Z゜", ""},
{"~Yほ~Z゜", ""},
// japanese punctuation
{",~+8H", ""},
{"~+8H ", " "},
// playstation buttons
// - face
{"~Y~22L<~Z~Y~27L*~Z~Y~1L>~Z~Y~23L[~Z~+26H", "<PAD_X>"},
{"~Y~22L<~Z~Y~26L;~Z~Y~1L>~Z~Y~23L[~Z~+26H", "<PAD_TRIANGLE>"},
{"~Y~22L<~Z~Y~25L@~Z~Y~1L>~Z~Y~23L[~Z~+26H", "<PAD_CIRCLE>"},
{"~Y~22L<~Z~Y~24L#~Z~Y~1L>~Z~Y~23L[~Z~+26H", "<PAD_SQUARE>"},
// - dpad
{"~Y~22L<PAD_PART_DPAD_L>~Z~3L~+17H~-13V<PAD_PART_DPAD_U>~Z~22L~+17H~+14V<PAD_PART_DPAD_D>~Z~"
"22L~+32H<PAD_PART_DPAD_R>~Z~+56H",
"<PAD_DPAD_UP>"},
{"~Y~22L<PAD_PART_DPAD_L>~Z~3L~+17H~-13V<PAD_PART_DPAD_U>~Z~3L~+17H~+14V<PAD_PART_DPAD_D>~Z~"
"22L~+32H<PAD_PART_DPAD_R>~Z~+56H",
"<PAD_DPAD_DOWN>"},
{"~Y~22L<PAD_PART_DPAD_L>~Z~22L~+17H~-13V<PAD_PART_DPAD_U>~Z~22L~+17H~+14V<PAD_PART_DPAD_D>~Z~"
"22L~+32H<PAD_PART_DPAD_R>~Z~+56H",
"<PAD_DPAD_ANY>"},
// - shoulder
{"~Y~22L~-2H~-12V<PAD_PART_SHOULDER_TOP_LEFT><PAD_PART_SHOULDER_TOP_RIGHT>~Z~22L~-2H~+17V<PAD_"
"PART_SHOULDER_BOTTOM_LEFT><PAD_PART_SHOULDER_BOTTOM_RIGHT>~Z~1L~+4H~+3V<PAD_PART_L1_NAME>~Z~+"
"38H",
"<PAD_L1>"},
{"~Y~22L~-2H~-12V<PAD_PART_SHOULDER_TOP_LEFT><PAD_PART_SHOULDER_TOP_RIGHT>~Z~22L~-2H~+17V<PAD_"
"PART_SHOULDER_BOTTOM_LEFT><PAD_PART_SHOULDER_BOTTOM_RIGHT>~Z~1L~+6H~+3V<PAD_PART_R1_NAME>~Z~+"
"38H",
"<PAD_R1>"},
{"~Y~22L~-2H~-6V<PAD_PART_TRIGGER_TOP_LEFT><PAD_PART_TRIGGER_TOP_RIGHT>~Z~22L~-2H~+16V<PAD_"
"PART_TRIGGER_BOTTOM_LEFT><PAD_PART_TRIGGER_BOTTOM_RIGHT>~Z~1L~+5H~-2V<PAD_PART_R2_NAME>~Z~+"
"38H",
"<PAD_R2>"},
{"~Y~22L~-2H~-6V<PAD_PART_TRIGGER_TOP_LEFT><PAD_PART_TRIGGER_TOP_RIGHT>~Z~22L~-2H~+16V<PAD_"
"PART_TRIGGER_BOTTOM_LEFT><PAD_PART_TRIGGER_BOTTOM_RIGHT>~Z~1L~+5H~-2V<PAD_PART_L2_NAME>~Z~+"
"38H",
"<PAD_L2>"},
// - analog
{"~1L~+8H~Y<PAD_PART_STICK>~Z~6L~-16H<PAD_PART_STICK_LEFT>~Z~+16h~6L<PAD_PART_STICK_RIGHT>~Z~"
"6L~-15V<PAD_PART_STICK_DOWN>~Z~+13V~6L<PAD_PART_STICK_UP>~Z~-10H~+9V~6L<PAD_PART_STICK_UP_"
"LEFT>~Z~+10H~+9V~6L<PAD_PART_STICK_UP_RIGHT>~Z~-10H~-11V~6L<PAD_PART_STICK_DOWN_LEFT>~Z~+10H~"
"-11V~6L<PAD_PART_STICK_DOWN_RIGHT>~Z~+32H",
"<PAD_ANALOG_ANY>"},
{"~Y~1L~+8H<PAD_PART_STICK>~Z~6L~-8H<PAD_PART_STICK_LEFT>~Z~+24H~6L<PAD_PART_STICK_RIGHT>~Z~+"
"40H",
"<PAD_ANALOG_LEFT_RIGHT>"},
{"~Y~1L<PAD_PART_STICK>~Z~6L~-15V<PAD_PART_STICK_DOWN>~Z~+13V~6L<PAD_PART_STICK_UP>~Z~+26H",
"<PAD_ANALOG_UP_DOWN>"},
// icons
{"~Y~6L<~Z~Y~1L>~Z~Y~23L[~Z~+26H", "<ICON_MISSION_COMPLETE>"},
{"~Y~3L<~Z~Y~1L>~Z~Y~23L[~Z~+26H", "<ICON_MISSION_TODO>"},
// flags
{"~Y~6L<FLAG_PART_VERT_STRIPE_LARGE>~Z~+15H~1L<FLAG_PART_VERT_STRIPE_LARGE>~Z~+30H~3L<FLAG_"
"PART_VERT_STRIPE_LARGE>~Z~+45H",
"<FLAG_ITALIAN>"},
{"~Y~5L<FLAG_PART_FILL>~Z~3L<FLAG_PART_TOP_BOTTOM_STRIPE>~]~-1H~Y~5L<FLAG_PART_FILL>~Z~3L<FLAG_"
"PART_TOP_BOTTOM_STRIPE>~Z~+26H",
"<FLAG_SPAIN>"},
{"~Y~39L~~~Z~3L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~5L<FLAG_PART_HORZ_STRIPE_BOTTOM>~]~-1H~Y~39L~~~"
"Z~3L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~5L<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~+26H",
"<FLAG_GERMAN>"},
{"~Y~7L<FLAG_PART_VERT_STRIPE_LARGE>~Z~+15H~1L<FLAG_PART_VERT_STRIPE_LARGE>~Z~+30H~3L<FLAG_"
"PART_VERT_STRIPE_LARGE>~Z~+47H",
"<FLAG_FRANCE>"},
{"~Y~1L<FLAG_PART_FILL>~Z~3L<FLAG_PART_UK_CROSS_LEFT>~Z~7L<FLAG_PART_UK_FILL_LEFT>~]~-1H~Y~1L<"
"FLAG_PART_FILL>~Z~3L<FLAG_PART_UK_CROSS_RIGHT>~Z~7L<FLAG_PART_UK_FILL_RIGHT>~Z~+26H",
"<FLAG_UK>"},
{"~Y~1L<FLAG_PART_FILL>~Z~3L<FLAG_PART_USA_STRIPES_LEFT>~Z~7L<FLAG_PART_USA_STARS>~]~-1H~Y~1L<"
"FLAG_PART_FILL>~Z~3L<FLAG_PART_USA_STRIPES_RIGHT>~Z~+26H",
"<FLAG_USA>"},
{"~Y~1L<FLAG_PART_FILL>~Z~39L<FLAG_PART_KOREA_TRIGRAMS_LEFT>~]~-1H~Y~1L<FLAG_PART_FILL>~Z~39L<"
"FLAG_PART_KOREA_TRIGRAMS_RIGHT>~Z~-11H~7L<FLAG_PART_KOREA_CIRCLE_FILL>~Z~-11H~3L<FLAG_PART_"
"KOREA_CIRCLE_TOP>~Z~+26H",
"<FLAG_KOREA>"},
{"~Y~1L<FLAG_PART_FILL>~]~-1H~Y~1L<FLAG_PART_FILL>~Z~-11H~3L<FLAG_PART_JAPAN_SUN>~Z~+26H",
"<FLAG_JAPAN>"},
{"~Y~1L<FLAG_PART_FILL>~Z~7L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~7L<FLAG_PART_VERT_STRIPE_RIGHT>~]"
"~-1H~Y~1L<FLAG_PART_FILL>~Z~7L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~+26H",
"<FLAG_FINLAND>"},
{"~Y~7L<FLAG_PART_FILL>~Z~5L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~5L<FLAG_PART_VERT_STRIPE_RIGHT>~]"
"~-1H~Y~7L<FLAG_PART_FILL>~Z~5L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~+26H",
"<FLAG_SWEDEN>"},
{"~Y~3L<FLAG_PART_FILL>~Z~1L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~1L<FLAG_PART_VERT_STRIPE_RIGHT>~]"
"~-1H~Y~3L<FLAG_PART_FILL>~Z~1L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~+26H",
"<FLAG_DENMARK>"},
{"~Y~1L<FLAG_PART_FILL>~Z~3L<FLAG_PART_TOP_BOTTOM_STRIPE>~]~-2H~Y~1L<FLAG_PART_FILL>~Z~3L<FLAG_"
"PART_TOP_BOTTOM_STRIPE>~Z~-10H~1L<FLAG_PART_VERT_STRIPE_LEFT>~Z~-5H~1L<FLAG_PART_VERT_STRIPE_"
"LEFT>~Z~-23H~7L<FLAG_PART_VERT_STRIPE_RIGHT>~Z~-22H~7L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~7L"
"<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~+26H",
"<FLAG_NORWAY>"},
{"~Y~1L<FLAG_PART_FILL>~Z~7L<FLAG_PART_TOP_BOTTOM_STRIPE>~]~-2H~Y~1L<FLAG_PART_FILL>~Z~7L<FLAG_"
"PART_TOP_BOTTOM_STRIPE>~Z~-10H~1L<FLAG_PART_VERT_STRIPE_LEFT>~Z~-5H~1L<FLAG_PART_VERT_STRIPE_"
"LEFT>~Z~-23H~3L<FLAG_PART_VERT_STRIPE_RIGHT>~Z~-22H~3L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~3L"
"<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~+26H",
"<FLAG_ICELAND>"},
{"~Y~6L<FLAG_PART_VERT_STRIPE_LARGE>~Z~+15H~3L<FLAG_PART_VERT_STRIPE_LARGE>~Z~+30H~3L<FLAG_"
"PART_VERT_STRIPE_LARGE>~Z~+4H~+2V~5L<FLAG_PART_KOREA_CIRCLE_FILL>~Z~+47H",
"<FLAG_PORTUGUAL>"},
{"~Y~3L~~~Z~1L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~7L<FLAG_PART_HORZ_STRIPE_BOTTOM>~]~-2H~Y~3L~~"
"~Z~1L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~7L<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~+26H",
"<FLAG_DUTCH>"},
{"~Y~26L<FLAG_PART_FILL>~]~-1H~Y~26L<FLAG_PART_FILL>~Z~-10H~-3V~5L<PAD_PART_DPAD_D>~Z~-10H"
"~+6V~5L<PAD_PART_DPAD_U>~Z~-5H~+1V~5L<PAD_PART_DPAD_L>~Z~-14H~+1V~5L<PAD_PART_DPAD_R>~Z"
"~-11H~+1V~7L<FLAG_PART_KOREA_CIRCLE_FILL>~Z~+26H",
"<FLAG_BRAZIL>"},
{"~Y~3L~~~Z~1L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~26L<FLAG_PART_HORZ_STRIPE_BOTTOM>~]~-2H~Y~3L~~"
"~Z~1L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~26L<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~+26H",
"<FLAG_HUNGARY>"},
{"~Y~3L<FLAG_PART_FILL>~Z~5L<FLAG_PART_USA_STRIPES_RIGHT>~]~-2H~Y~3L<FLAG_PART_FILL>~Z~5L"
"<FLAG_PART_USA_STRIPES_RIGHT>~Z~+26H",
"<FLAG_CATALAN>"},
{"~Y~1L<FLAG_PART_FILL>~Z~3L<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~-5V~3L<FLAG_PART_HORZ_STRIPE"
"_BOTTOM>~]~-2H~+5V~Y~1L<FLAG_PART_FILL>~Z~3L<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~-5V~3L"
"<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~+26H",
"<FLAG_POLAND>"},
{"~Y~5L~~~Z~26L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~3L<FLAG_PART_HORZ_STRIPE_BOTTOM>~]~-2H~Y~5L~~"
"~Z~26L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~3L<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~+26H",
"<FLAG_LITHUANIA>"},
{"~Y~1L<FLAG_PART_FILL>~]~-2H~Y~1L<FLAG_PART_FILL>~Z~3L<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~-5V~3L"
"<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~-22H~3L<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~-22H~-5V~3L"
"<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~-23H~7L<FLAG_PART_VERT_STRIPE_LEFT>~Z~-26H~-3V~7L"
"<PAD_PART_DPAD_D>~Z~+6V~-26H~7L<PAD_PART_DPAD_U>~Z~-21H~+1V~7L<PAD_PART_DPAD_L>~Z~+26H",
"<FLAG_CZECH>"},
{"~Y~3L~~~Z~1L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~7L<FLAG_PART_HORZ_STRIPE_BOTTOM>~]~-1H~Y~3L~~"
"~Z~1L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~7L<FLAG_PART_HORZ_STRIPE_BOTTOM>~Z~-11H~+2V~3L"
"<FLAG_PART_JAPAN_SUN>~Z~-9H~+2V~1L+~Z~-8V~-8H~7L-~Z~-8V~-3H~7L-~Z~+26H",
"<FLAG_CROATIA>"},
{"~Y~1L<FLAG_PART_FILL>~Z~21L<FLAG_PART_UK_CROSS_LEFT>~Z~1L<FLAG_PART_HORZ_STRIPE_MIDDLE>"
"~Z~1L<FLAG_PART_HORZ_STRIPE_BOTTOM>~]~-1H~Y~1L<FLAG_PART_FILL>~Z~21L<FLAG_PART_UK_CROSS_"
"RIGHT>~Z~1L<FLAG_PART_HORZ_STRIPE_MIDDLE>~Z~-4H~1L<FLAG_PART_VERT_STRIPE_LEFT>~Z~1L~~"
"~Z~-11H~7L<FLAG_PART_KOREA_CIRCLE_FILL>~Z~-8V~-8H~3L-~Z~-8V~-4H~3L-~Z~+26H",
"<FLAG_GALICIA>"},
// korean jamo -- only relevant for the language selection since
// non-korean languages don't run through the `convert-korean-text` function and hence the
// encoding is "normal"
{"~Y~Z\\c03.~Z\\c03\\c1a~Z\\c03\\cc8~Y~Z\\c03œ~Z\\c03k~Z\\c03\\cde~Y~Z\\c03\\c0f~Z\\c03ç",
"<LANGUAGE_KOREAN>",
"~Y~Z\x03.~Z\x03\x1a~Z\x03\xc8~Y~Z\x03œ~Z\x03k~Z\x03\xde~Y~Z\x03\x0f~Z\x03ç"},
// weird stuff
// - descenders
{"~+7Vp~-7V", "p"},
{"~+7Vy~-7V", "y"},
{"~+7Vg~-7V", "g"},
{"~+7Vq~-7V", "q"},
{"~+1Vj~-1V", "j"},
{"\\\\",
"~%"}, // this is 2 slashes, duplicated because we use an escape sequence when decompiling
// - symbols and ligatures
{"~-4H~-3V<SOMETHING>~+3V~-4H",
"<SUPERSCRIPT_QUOTE>"}, // used for the 4<__> place in spanish. the 5th uses the same
// character but looks different...?
{"~Y~-6Hº~Z~+10H", "°"},
// Color / Emphasis
{"~[~0L", "<COLOR_DEFAULT>"},
{"~[~1L", "<COLOR_WHITE>"},
{"~[~2L", "<COLOR_TRANSPARENT>"},
{"~[~3L", "<COLOR_RED>"},
{"~[~4L", "<COLOR_ORANGE>"},
{"~[~5L", "<COLOR_YELLOW>"},
{"~[~6L", "<COLOR_GREEN>"},
{"~[~7L", "<COLOR_BLUE>"},
{"~[~8L", "<COLOR_CYAN>"},
{"~[~9L", "<COLOR_PINK>"},
{"~[~10L", "<COLOR_MENU-SELECTED>"},
{"~[~11L", "<COLOR_MENU-SELECTED-PARENT>"},
{"~[~12L", "<COLOR_MENU>"},
{"~[~13L", "<COLOR_MENU-PARENT>"},
{"~[~14L", "<COLOR_MENU-FUNC-BAD>"},
{"~[~15L", "<COLOR_MENU-FLAG-ON>"},
{"~[~16L", "<COLOR_MENU-FLAG-ON-PARENT>"},
{"~[~17L", "<COLOR_MENU-FLAG-OFF>"},
{"~[~18L", "<COLOR_MENU-FLAG-OFF-PARENT>"},
{"~[~19L", "<COLOR_MENU-INVALID>"},
{"~[~20L", "<COLOR_FLAT-YELLOW>"},
{"~[~21L", "<COLOR_COLOR-21>"},
{"~[~22L", "<COLOR_PAD-BACK>"},
{"~[~23L", "<COLOR_PAD-SHINE>"},
{"~[~24L", "<COLOR_PAD-SQUARE>"},
{"~[~25L", "<COLOR_PAD-CIRCLE>"},
{"~[~26L", "<COLOR_PAD-TRIANGLE>"},
{"~[~27L", "<COLOR_PAD-CROSS>"},
{"~[~28L", "<COLOR_PROGRESS-OLD-BLUE>"},
{"~[~29L", "<COLOR_PROGRESS-OLD-YELLOW>"},
{"~[~30L", "<COLOR_PROGRESS-OLD-SELECTED>"},
{"~[~31L", "<COLOR_PROGRESS-OLD-PERCENT>"},
{"~[~32L", "<COLOR_PROGRESS>"},
{"~[~33L", "<COLOR_PROGRESS-SELECTED>"},
{"~[~34L", "<COLOR_PROGRESS-FORCE-SELECTED>"},
{"~[~35L", "<COLOR_PROGRESS-OPTION-OFF>"},
{"~[~36L", "<COLOR_COLOR-36>"},
{"~[~37L", "<COLOR_CREDITS-STAFF-TITLE-1>"},
{"~[~38L", "<COLOR_CREDITS-STAFF-TITLE-2>"},
{"~[~39L", "<COLOR_COLOR-39>"}};
std::vector<EncodeInfo> encode_info_jak2 = {
{"ˇ", "\x10"}, // caron
{"`", "\x11"}, // grave accent
{"'", "\x12"}, // apostrophe
{"^", "\x13"}, // circumflex
{"<TIL>", "\x14"}, // tilde
{"¨", "\x15"}, // umlaut
{"º", "\x16"}, // numero/overring
{"¡", "\x17"}, // inverted exclamation mark
{"¿", "\x18"}, // inverted question mark
{"<SOMETHING>", "\x19"},
{"ç", "\x1d"}, // c-cedilla
{"Ç", "\x1e"}, // c-cedilla
{"ß", "\x1f"}, // eszett
{"œ", "\x5e"}, // ligature o+e
{"<FLAG_PART_HORZ_STRIPE_MIDDLE>", "\x7f"},
{"<FLAG_PART_HORZ_STRIPE_BOTTOM>", "\x80"},
{"<FLAG_PART_VERT_STRIPE_LARGE>", "\x81"},
{"<FLAG_PART_VERT_STRIPE_RIGHT>", "\x82"},
{"<FLAG_PART_VERT_STRIPE_LEFT>", "\x83"},
{"<FLAG_PART_VERT_STRIPE_MIDDLE>", "\x84"},
{"<FLAG_PART_FILL>", "\x85"},
{"<FLAG_PART_JAPAN_SUN>", "\x86"},
{"<FLAG_PART_KOREA_TRIGRAMS_LEFT>", "\x87"},
{"<FLAG_PART_KOREA_TRIGRAMS_RIGHT>", "\x88"},
{"<FLAG_PART_KOREA_CIRCLE_TOP>", "\x89"},
{"<FLAG_PART_KOREA_CIRCLE_FILL>", "\x8a"},
{"<FLAG_PART_TOP_BOTTOM_STRIPE>", "\x8b"},
{"<FLAG_PART_UK_CROSS_LEFT>", "\x8c"},
{"<FLAG_PART_UK_CROSS_RIGHT>", "\x8d"},
{"<FLAG_PART_UK_FILL_LEFT>", "\x8e"},
{"<FLAG_PART_UK_FILL_RIGHT>", "\x8f"},
{"<FLAG_PART_USA_STRIPES_RIGHT>", "\x90"},
{"<PAD_PART_STICK>", "\x91"},
{"<PAD_PART_SELECT>", "\x92"},
{"<PAD_PART_TRIGGER_BACK>", "\x93"},
{"<PAD_PART_R1_NAME>", "\x94"},
{"<PAD_PART_L1_NAME>", "\x95"},
{"<PAD_PART_R2_NAME>", "\x96"},
{"<PAD_PART_L2_NAME>", "\x97"},
{"<PAD_PART_STICK_UP>", "\x98"},
{"<PAD_PART_STICK_UP_RIGHT>", "\x99"},
{"<FLAG_PART_USA_STRIPES_LEFT>", "\x9a"},
{"<FLAG_PART_USA_STARS>", "\x9b"},
{"<PAD_PART_STICK_DOWN>", "\x9c"},
{"<PAD_PART_STICK_DOWN_LEFT>", "\x9d"},
{"<PAD_PART_STICK_LEFT>", "\x9e"},
{"<PAD_PART_STICK_UP_LEFT>", "\x9f"},
{"<PAD_PART_DPAD_D>", "\xa0"},
{"<PAD_PART_DPAD_L>", "\xa1"},
{"<PAD_PART_DPAD_U>", "\xa2"},
{"<PAD_PART_DPAD_R>", "\xa3"},
{"<PAD_PART_STICK_RIGHT>", "\xa4"},
{"<PAD_PART_STICK_DOWN_RIGHT>", "\xa5"},
{"<PAD_PART_SHOULDER_TOP_LEFT>", "\xa6"},
{"<PAD_PART_SHOULDER_TOP_RIGHT>", "\xa7"},
{"<PAD_PART_TRIGGER_TOP_LEFT>", "\xa8"},
{"<PAD_PART_TRIGGER_TOP_RIGHT>", "\xa9"},
{"<PAD_PART_TRIGGER_SHIM1>", "\xaa"},
{"<PAD_PART_TRIGGER_SHIM2>", "\xab"},
{"<PAD_PART_SHOULDER_SHIM2>", "\xac"},
{"<PAD_PART_SHOULDER_BOTTOM_LEFT>", "\xb0"},
{"<PAD_PART_SHOULDER_BOTTOM_RIGHT>", "\xb1"},
{"<PAD_PART_TRIGGER_BOTTOM_LEFT>", "\xb2"},
{"<PAD_PART_TRIGGER_BOTTOM_RIGHT>", "\xb3"},
// {"入", "\x1\x00"}},
// {"年", "\x1\x01"}},
// punctuation
{"", "\x1\x10"},
{"", "\x1\x11"},
{"", "\x1\x12"},
{"", "\x1\x13"},
{"", "\x1\x14"},
{"", "\x1\x15"},
// hiragana
{"", "\x1\x16"}, // -a
{"", "\x1\x17"}, // a
{"", "\x1\x18"}, // -i
{"", "\x1\x19"}, // i
{"", "\x1\x1a"}, // -u
{"", "\x1\x1b"}, // u
{"", "\x1\x1c"}, // -e
{"", "\x1\x1d"}, // e
{"", "\x1\x1e"}, // -o
{"", "\x1\x1f"}, // o
{"", "\x1\x20"}, // ka
{"", "\x1\x21"}, // ki
{"", "\x1\x22"}, // ku
{"", "\x1\x23"}, // ke
{"", "\x1\x24"}, // ko
{"", "\x1\x25"}, // sa
{"", "\x1\x26"}, // shi
{"", "\x1\x27"}, // su
{"", "\x1\x28"}, // se
{"", "\x1\x29"}, // so
{"", "\x1\x2a"}, // ta
{"", "\x1\x2b"}, // chi
{"", "\x1\x2c"}, // sokuon
{"", "\x1\x2d"}, // tsu
{"", "\x1\x2e"}, // te
{"", "\x1\x2f"}, // to
{"", "\x1\x30"}, // na
{"", "\x1\x31"}, // ni
{"", "\x1\x32"}, // nu
{"", "\x1\x33"}, // ne
{"", "\x1\x34"}, // no
{"", "\x1\x35"}, // ha
{"", "\x1\x36"}, // hi
{"", "\x1\x37"}, // fu
{"", "\x1\x38"}, // he
{"", "\x1\x39"}, // ho
{"", "\x1\x3a"}, // ma
{"", "\x1\x3b"}, // mi
{"", "\x1\x3c"}, // mu
{"", "\x1\x3d"}, // me
{"", "\x1\x3e"}, // mo
{"", "\x1\x3f"}, // youon ya
{"", "\x1\x40"}, // ya
{"", "\x1\x41"}, // youon yu
{"", "\x1\x42"}, // yu
{"", "\x1\x43"}, // youon yo
{"", "\x1\x44"}, // yo
{"", "\x1\x45"}, // ra
{"", "\x1\x46"}, // ri
{"", "\x1\x47"}, // ru
{"", "\x1\x48"}, // re
{"", "\x1\x49"}, // ro
{"", "\x1\x4a"}, // -wa
{"", "\x1\x4b"}, // wa
{"", "\x1\x4c"}, // wo
{"", "\x1\x4d"}, // -n
// katakana
{"", "\x1\x4e"}, // -a
{"", "\x1\x4f"}, // a
{"", "\x1\x50"}, // -i
{"", "\x1\x51"}, // i
{"", "\x1\x52"}, // -u
{"", "\x1\x53"}, // u
{"", "\x1\x54"}, // -e
{"", "\x1\x55"}, // e
{"", "\x1\x56"}, // -o
{"", "\x1\x57"}, // o
{"", "\x1\x58"}, // ka
{"", "\x1\x59"}, // ki
{"", "\x1\x5a"}, // ku
{"", "\x1\x5b"}, // ke
{"", "\x1\x5c"}, // ko
{"", "\x1\x5d"}, // sa
{"", "\x1\x5e"}, // shi
{"", "\x1\x5f"}, // su
{"", "\x1\x60"}, // se
{"", "\x1\x61"}, // so
{"", "\x1\x62"}, // ta
{"", "\x1\x63"}, // chi
{"", "\x1\x64"}, // sokuon
{"", "\x1\x65"}, // tsu
{"", "\x1\x66"}, // te
{"", "\x1\x67"}, // to
{"", "\x1\x68"}, // na
{"", "\x1\x69"}, // ni
{"", "\x1\x6a"}, // nu
{"", "\x1\x6b"}, // ne
{"", "\x1\x6c"}, // no
{"", "\x1\x6d"}, // ha
{"", "\x1\x6e"}, // hi
{"", "\x1\x6f"}, // fu
{"", "\x1\x70"}, // he
{"", "\x1\x71"}, // ho
{"", "\x1\x72"}, // ma
{"", "\x1\x73"}, // mi
{"", "\x1\x74"}, // mu
{"", "\x1\x75"}, // me
{"", "\x1\x76"}, // mo
{"", "\x1\x77"}, // youon ya
{"", "\x1\x78"}, // ya
{"", "\x1\x79"}, // youon yu
{"", "\x1\x7a"}, // yu
{"", "\x1\x7b"}, // youon yo
{"", "\x1\x7c"}, // yo
{"", "\x1\x7d"}, // ra
{"", "\x1\x7e"}, // ri
{"", "\x1\x7f"}, // ru
{"", "\x1\x80"}, // re
{"", "\x1\x81"}, // ro
{"", "\x1\x82"}, // -wa
{"", "\x1\x83"}, // wa
{"", "\x1\x84"}, // wo
{"", "\x1\x85"}, // -n
{"", "\x1\x8c"},
{"", "\x1\x8d"},
{"", "\x1\x8e"},
{"", "\x1\x8f"},
{"", "\x1\x90"},
{"", "\x1\x91"},
{"", "\x1\x92"},
{"", "\x1\x93"},
{"", "\x1\x94"},
{"", "\x1\x95"},
{"", "\x1\x96"},
{"", "\x1\x97"},
{"", "\x1\x98"},
{"", "\x1\x99"},
{"", "\x1\x9a"},
{"", "\x1\x9b"},
{"", "\x1\x9c"},
{"", "\x1\x9d"},
{"", "\x1\x9e"},
{"", "\x1\x9f"},
{"", "\x1\xa0"},
{"", "\x1\xa1"},
{"", "\x1\xa2"},
{"", "\x1\xa3"},
{"", "\x1\xa4"},
{"", "\x1\xa5"},
{"", "\x1\xa6"},
{"", "\x1\xa7"},
{"", "\x1\xa8"},
{"", "\x1\xa9"},
{"", "\x1\xaa"},
{"", "\x1\xab"},
{"", "\x1\xac"},
{"", "\x1\xad"},
{"", "\x1\xae"},
{"", "\x1\xaf"},
{"", "\x1\xb0"},
{"", "\x1\xb1"},
{"", "\x1\xb2"},
{"", "\x1\xb3"},
{"", "\x1\xb4"},
{"", "\x1\xb5"},
{"", "\x1\xb6"},
{"", "\x1\xb7"},
{"", "\x1\xb8"},
{"", "\x1\xb9"},
{"", "\x1\xba"},
{"", "\x1\xbb"},
{"", "\x1\xbc"},
{"", "\x1\xbd"},
{"", "\x1\xbe"},
{"", "\x1\xbf"},
{"使", "\x1\xc0"},
{"", "\x1\xc1"},
{"", "\x1\xc2"},
{"", "\x1\xc3"},
{"", "\x1\xc4"},
{"", "\x1\xc5"},
{"", "\x1\xc6"},
{"", "\x1\xc7"},
{"", "\x1\xc8"},
{"", "\x1\xc9"},
{"", "\x1\xca"},
{"", "\x1\xcb"},
{"", "\x1\xcc"},
{"", "\x1\xcd"},
{"", "\x1\xce"},
{"", "\x1\xcf"},
{"", "\x1\xd0"},
{"", "\x1\xd1"},
{"", "\x1\xd2"},
{"", "\x1\xd3"},
{"", "\x1\xd4"},
{"", "\x1\xd5"},
{"", "\x1\xd6"},
{"", "\x1\xd7"},
{"", "\x1\xd8"},
{"", "\x1\xd9"},
{"", "\x1\xda"},
{"", "\x1\xdb"},
{"", "\x1\xdc"},
{"", "\x1\xdd"},
{"", "\x1\xde"},
{"", "\x1\xdf"},
{"", "\x1\xe0"},
{"", "\x1\xe1"},
{"", "\x1\xe2"},
{"", "\x1\xe3"},
{"", "\x1\xe4"},
{"", "\x1\xe5"},
{"", "\x1\xe6"},
{"", "\x1\xe7"},
{"", "\x1\xe8"},
{"", "\x1\xe9"},
{"", "\x1\xea"},
{"", "\x1\xeb"},
{"", "\x1\xec"},
{"", "\x1\xed"},
{"", "\x1\xee"},
{"", "\x1\xef"},
{"", "\x1\xf0"},
{"", "\x1\xf1"},
{"", "\x1\xf2"},
{"", "\x1\xf3"},
{"", "\x1\xf4"},
{"", "\x1\xf5"},
{"", "\x1\xf6"},
{"", "\x1\xf7"},
{"", "\x1\xf8"},
{"", "\x1\xf9"},
{"", "\x1\xfa"},
{"", "\x1\xfb"},
{"", "\x1\xfc"},
{"", "\x1\xfd"},
{"", "\x1\xfe"},
{"", "\x1\xff"},
{"", "\x2\x10"},
{"", "\x2\x11"},
{"", "\x2\x12"},
{"", "\x2\x13"},
{"", "\x2\x14"},
{"", "\x2\x15"},
{"", "\x2\x16"},
{"", "\x2\x17"},
{"", "\x2\x18"},
{"", "\x2\x19"},
{"", "\x2\x1a"},
{"", "\x2\x1b"},
{"", "\x2\x1c"},
{"", "\x2\x1d"},
{"", "\x2\x1e"},
{"", "\x2\x1f"},
{"", "\x2\x20"},
{"", "\x2\x21"},
{"", "\x2\x22"},
{"", "\x2\x23"},
{"", "\x2\x24"},
{"", "\x2\x25"},
{"", "\x2\x26"},
{"", "\x2\x27"},
{"", "\x2\x28"},
{"", "\x2\x29"},
{"", "\x2\x2a"},
{"", "\x2\x2b"},
{"", "\x2\x2c"},
{"", "\x2\x2d"},
{"", "\x2\x2e"},
{"", "\x2\x2f"},
{"", "\x2\x30"},
{"", "\x2\x31"},
{"", "\x2\x32"},
{"", "\x2\x33"},
// {"成", "\x2\x34"},
{"", "\x2\x35"},
{"", "\x2\x36"},
{"", "\x2\x37"},
{"", "\x2\x38"},
{"", "\x2\x39"},
{"", "\x2\x3a"},
{"", "\x2\x3b"},
{"", "\x2\x3c"},
{"", "\x2\x3d"},
{"", "\x2\x3e"},
{"", "\x2\x3f"},
{"", "\x2\x40"},
{"", "\x2\x41"},
// {"乗", "\x2\x42"},
{"", "\x2\x43"},
{"", "\x2\x44"},
{"", "\x2\x45"},
{"", "\x2\x46"},
{"", "\x2\x47"},
{"", "\x2\x48"},
{"", "\x2\x49"},
{"", "\x2\x4a"},
{"", "\x2\x4b"},
// {"対", "\x2\x4c"},
{"", "\x2\x4d"},
{"", "\x2\x4e"},
{"", "\x2\x4f"},
{"", "\x2\x50"},
{"", "\x2\x56"},
{"", "\x2\x57"},
{"", "\x2\x58"},
{"", "\x2\x59"},
{"", "\x2\x5a"},
{"", "\x2\x5b"},
{"", "\x2\x5c"},
{"", "\x2\x5d"},
{"", "\x2\x5e"},
{"", "\x2\x5f"},
{"", "\x2\x60"},
{"", "\x2\x61"},
{"", "\x2\x62"},
{"", "\x2\x63"},
{"", "\x2\x64"},
// {"高", "\x2\x65"},
{"", "\x2\x66"},
{"", "\x2\x67"},
{"", "\x2\x68"},
{"", "\x2\x69"},
{"", "\x2\x6a"},
{"", "\x2\x6b"},
{"", "\x2\x6c"},
{"", "\x2\x6d"},
{"", "\x2\x6e"},
{"", "\x2\x6f"},
{"", "\x2\x70"},
{"", "\x2\x71"},
{"", "\x2\x72"},
{"", "\x2\x73"},
{"", "\x2\x74"},
{"", "\x2\x75"},
{"退", "\x2\x76"},
{"", "\x2\x77"},
{"", "\x2\x78"},
{"", "\x2\x79"},
{"", "\x2\x7a"},
{"", "\x2\x7b"},
{"", "\x2\x7c"},
{"", "\x2\x7d"},
{"", "\x2\x7e"},
{"", "\x2\x7f"},
{"", "\x2\x80"},
{"", "\x2\x81"},
{"", "\x2\x82"},
{"", "\x2\x83"},
{"", "\x2\x84"},
{"", "\x2\x85"},
{"", "\x2\x86"},
{"", "\x2\x88"},
{"", "\x2\x89"},
{"", "\x2\x8a"},
{"", "\x2\x8b"},
{"", "\x2\x8c"},
{"", "\x2\x8d"},
};
std::unordered_map<std::string, std::vector<std::string>> jamo_glyph_mappings_jak2 = {
{"0x06", {""}}, {"0x07", {""}}, {"0x08", {""}}, {"0x09", {""}},
{"0x0a", {""}}, {"0x0b", {""}}, {"0x0c", {""}}, {"0x0d", {""}},
{"0x0e", {""}}, {"0x0f", {""}}, {"0x10", {""}}, {"0x11", {""}},
{"0x12", {""}}, {"0x13", {""}}, {"0x14", {""}}, {"0x15", {""}},
{"0x16", {""}}, {"0x17", {""}}, {"0x18", {""}}, {"0x19", {""}},
{"0x1a", {""}}, {"0x1b", {""}}, {"0x1c", {""}}, {"0x1d", {""}},
{"0x1e", {""}}, {"0x1f", {""}}, {"0x20", {""}}, {"0x21", {""}},
{"0x22", {""}}, {"0x23", {""}}, {"0x24", {""}}, {"0x25", {""}},
{"0x26", {""}}, {"0x27", {""}}, {"0x28", {""}}, {"0x29", {""}},
{"0x2a", {""}}, {"0x2b", {""}}, {"0x2c", {""}}, {"0x2d", {""}},
{"0x2e", {""}}, {"0x2f", {""}}, {"0x30", {""}}, {"0x31", {""}},
{"0x32", {""}}, {"0x33", {""}}, {"0x34", {""}}, {"0x35", {""}},
{"0x36", {""}}, {"0x37", {""}}, {"0x38", {""}}, {"0x39", {""}},
{"0x3a", {""}}, {"0x3b", {""}}, {"0x3c", {""}}, {"0x3d", {""}},
{"0x3e", {""}}, {"0x3f", {""}}, {"0x40", {""}}, {"0x41", {""}},
{"0x42", {""}}, {"0x43", {""}}, {"0x44", {""}}, {"0x45", {""}},
{"0x46", {""}}, {"0x47", {""}}, {"0x48", {""}}, {"0x49", {""}},
{"0x4a", {""}}, {"0x4b", {""}}, {"0x4c", {""}}, {"0x4d", {""}},
{"0x4e", {""}}, {"0x4f", {""}}, {"0x50", {""}}, {"0x51", {""}},
{"0x52", {""}}, {"0x53", {""}}, {"0x54", {""}}, {"0x55", {""}},
{"0x56", {""}}, {"0x57", {""}}, {"0x58", {""}}, {"0x59", {""}},
{"0x5a", {""}}, {"0x5b", {""}}, {"0x5c", {""}}, {"0x5d", {""}},
{"0x5e", {""}}, {"0x5f", {""}}, {"0x60", {""}}, {"0x61", {""}},
{"0x62", {""}}, {"0x63", {""}}, {"0x64", {"", ""}}, {"0x65", {"", ""}},
{"0x66", {"", ""}}, {"0x67", {"", ""}}, {"0x68", {""}}, {"0x69", {""}},
{"0x6a", {""}}, {"0x6b", {""}}, {"0x6c", {""}}, {"0x6d", {""}},
{"0x6e", {""}}, {"0x6f", {""}}, {"0x70", {""}}, {"0x71", {""}},
{"0x72", {""}}, {"0x73", {""}}, {"0x74", {""}}, {"0x75", {""}},
{"0x76", {""}}, {"0x77", {""}}, {"0x78", {""}}, {"0x79", {""}},
{"0x7a", {""}}, {"0x7b", {""}}, {"0x7c", {""}}, {"0x7d", {""}},
{"0x7e", {""}}, {"0x7f", {""}}, {"0x80", {""}}, {"0x81", {""}},
{"0x82", {""}}, {"0x83", {""}}, {"0x84", {""}}, {"0x85", {""}},
{"0x86", {""}}, {"0x87", {""}}, {"0x88", {""}}, {"0x89", {"", ""}},
{"0x8a", {"", ""}}, {"0x8b", {""}}, {"0x8c", {""}}, {"0x8d", {""}},
{"0x8e", {""}}, {"0x8f", {"", ""}}, {"0x90", {"", ""}}, {"0x91", {""}},
{"0x92", {""}}, {"0x93", {""}}, {"0x94", {""}}, {"0x95", {""}},
{"0x96", {""}}, {"0x97", {""}}, {"0x98", {""}}, {"0x99", {""}},
{"0x9a", {""}}, {"0x9b", {""}}, {"0x9c", {""}}, {"0x9d", {""}},
{"0x9e", {""}}, {"0x9f", {""}}, {"0xa0", {""}}, {"0xa1", {""}},
{"0xa2", {""}}, {"0xa3", {""}}, {"0xa4", {""}}, {"0xa5", {""}},
{"0xa6", {""}}, {"0xa7", {""}}, {"0xa8", {""}}, {"0xa9", {""}},
{"0xaa", {""}}, {"0xab", {""}}, {"0xac", {""}}, {"0xad", {""}},
{"0xae", {""}}, {"0xaf", {""}}, {"0xb0", {""}}, {"0xb1", {""}},
{"0xb2", {""}}, {"0xb3", {""}}, {"0xb4", {""}}, {"0xb5", {""}},
{"0xb6", {""}}, {"0xb7", {""}}, {"0xb8", {""}}, {"0xb9", {""}},
{"0xba", {""}}, {"0xbb", {""}}, {"0xbc", {""}}, {"0xbd", {""}},
{"0xbe", {""}}, {"0xbf", {""}}, {"0xc0", {""}}, {"0xc1", {""}},
{"0xc2", {""}}, {"0xc3", {""}}, {"0xc4", {""}}, {"0xc5", {""}},
{"0xc6", {""}}, {"0xc7", {""}}, {"0xc8", {""}}, {"0xc9", {""}},
{"0xca", {""}}, {"0xcb", {""}}, {"0xcc", {""}}, {"0xcd", {""}},
{"0xce", {""}}, {"0xcf", {""}}, {"0xd0", {""}}, {"0xd1", {""}},
{"0xd2", {""}}, {"0xd3", {""}}, {"0xd4", {""}}, {"0xd5", {""}},
{"0xd6", {""}}, {"0xd7", {""}}, {"0xd8", {""}}, {"0xd9", {""}},
{"0xda", {""}}, {"0xdb", {""}}, {"0xdc", {""}}, {"0xdd", {""}},
{"0xde", {""}}, {"0xdf", {""}}, {"0xe0", {""}}, {"0xe1", {""}},
{"0xe2", {""}}, {"0xe3", {""}}, {"0xe4", {""}}, {"0xe5", {""}},
{"0xe6", {""}}, {"0xe7", {""}}, {"0xe8", {""}}, {"0xe9", {""}},
{"0xea", {""}}, {"0xeb", {""}}, {"0xec", {""}}, {"0xed", {""}},
{"0xee", {""}}, {"0xef", {""}}, {"0xf0", {""}}, {"0xf1", {""}},
{"0xf2", {""}}, {"0xf3", {""}}, {"0xf4", {""}}, {"0xf5", {""}},
{"0xf6", {""}}, {"0xf7", {""}}, {"0xf8", {""}}, {"0xf9", {""}},
{"0xfa", {""}}, {"0xfb", {""}}, {"0xfc", {""}}, {"0xfd", {""}},
{"0xfe", {""}}, {"0xff", {""}}, {"extra_0x86", {""}}, {"extra_0x87", {""}},
{"extra_0x88", {""}}, {"extra_0x89", {""}}, {"extra_0x8a", {""}}, {"extra_0x8b", {""}},
};
GameTextFontBank g_font_bank_jak2(GameTextVersion::JAK2,
&encode_info_jak2,
&replace_info_jak2,
&passthrus_jak2);