Aloshi / EmulationStation

A flexible emulator front-end supporting keyboardless navigation and custom system themes.
MIT License
2.07k stars 905 forks source link

[Feature] Unicode text support (Japanese, special chars, etc.) #179

Open yamanyandakure opened 10 years ago

yamanyandakure commented 10 years ago

I have and love the EmulationStation in Raspberry Pi. But the file name of the Japanese is garbled in the game ROM list. I want you to support the double-byte character.

Thank you.

Aloshi commented 10 years ago

I have been aware of this issue for a long time. It happens because EmulationStation uses custom text rendering code that only supports ASCII characters. I would like to add UTF-8 support - it supports Japanese characters, although it may take more space, and it would require the least amount of work. Would this work for you?

(No guarantee for how long it will take me to complete this.)

yamanyandakure commented 10 years ago

Thank you for your reply. It will wait for UTF-8 support without haste, and will wait for it. It tells other everybody Japanese so.

sjdawson commented 10 years ago

I'd also like to see UTF-8 support. I found the project this morning and it's exactly what I'd been looking for in a launcher - after trying others and finding them "too much" for what I wanted.

Thanks.

Aloshi commented 10 years ago

A progress update:

utf8

(the text in the description starts with üöä ß テスト During game play the player...)

The text code has been updated to support glyphs in multiple textures, and now properly handles UTF-8 codepoints (cursors move left/right the appropriate number of bytes, reading the character at the cursor gets the right codepoint across multiple bytes). It also handles reinitialization after launching a game.

The Japanese characters show as squares because the default font does not have glyphs for them. I plan on adding a simple system to "fall back" to a known good font if the current font is missing a glyph.

These changes are on a separate utf8 branch. After I figure out the fallback font stuff and do some more testing, it will be merged with the unstable branch.

Aloshi commented 10 years ago

Another quick update:

utf8 + fallback

(the missing boxes this time are Korean text, which I didn't have a working font for)

Here you can see ES loading glyphs from multiple fonts to handle the Japanese characters (which are missing from the description text box's font). Things seem to be working okay now.

The internal fallback font list just needs to be updated to include common Linux font paths, and then this needs to be tested on the Raspberry Pi to make sure I didn't degrade performance.

sjdawson commented 10 years ago

Excellent work @Aloshi :clap:

Looking forward to getting my hands on this when you get it out!

yamanyandakure commented 10 years ago

Thank you for UTF8 developing.

Although compile was tried on the raspberry pi, The 398th line of Font.ccp makes an error. Is it good although Fonts was set to FontPaths?

It was useless although added to the next at the 385th line. Characters without being displayed, that part will be white. "/usr/share/fonts/truetype/fonts-japanese-gothic.ttf",

yamanyandakure commented 10 years ago

It may be only my environment, but the display of Japanese is now available. But there is also a problem.

The following did not work. "/usr/share/fonts/truetype/fonts-japanese-gothic.ttf" I think the cause is because it's a link of a link.

It is a link of this file. "/etc/alternatives/fonts-japanese-gothic.ttf" However, this was also the link.

This file is the original file. "/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf"

"/usr/share/fonts/truetype/fonts-japanese-gothic.ttf" Instead of "/etc/alternatives/fonts-japanese-gothic.ttf" Or "/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf" It was confirmed that at it is displayed.

At the same, it was necessary to re-start after compilation.

I want to give thanks here to the came to form.

kenjijoo commented 10 years ago

Hi, any chance to release beta version? Even partial display means lot to us. Or probably good idea to have CLI mode. So you don't have to get rushed for displaying all language's fonts.

nilsbyte commented 10 years ago

Release will delay because we have discovered some crash bugs in the latest unicode build. Please be patient.

Aloshi commented 10 years ago

I believe I've fixed the crash bugs (sorry it took so long, school gets in the way).

If anyone would like to try out the Windows UTF-8 build, here you go. If you find a reproducible crash, running es_dump_on_crash.bat and then making ES crash will create a memory dump that I can use to debug the crash. Expect bugs.

If someone is feeling brave, you can also try building it on the Raspberry Pi. Use git fetch origin utf8 and git checkout utf8 to switch to the utf8 branch, then compile as usual. I have not tested this at all.

GM-Script-Writer-62850 commented 10 years ago

looks great :)

Scanning dependencies of target nanosvg
[  1%] Building CXX object external/nanosvg/CMakeFiles/nanosvg.dir/src/nanosvg_impl.cpp.o
In file included from /home/chad/EmulationStation/external/nanosvg/src/nanosvg_impl.cpp:5:0:
/home/chad/EmulationStation/external/nanosvg/nanosvg.h: In function ‘NSVGimage* nsvgParseFromFile(const char*, const char*, float)’:
/home/chad/EmulationStation/external/nanosvg/nanosvg.h:2507:26: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
  fread(data, size, 1, fp);
                          ^
Linking CXX static library ../../libnanosvg.a
[  1%] Built target nanosvg
Scanning dependencies of target pugixml
[  2%] Building CXX object external/pugixml/CMakeFiles/pugixml.dir/src/pugixml.cpp.o
Linking CXX static library ../../libpugixml.a
[  2%] Built target pugixml
Scanning dependencies of target es-core
[  3%] Building CXX object es-core/CMakeFiles/es-core.dir/src/AudioManager.cpp.o
[  4%] Building CXX object es-core/CMakeFiles/es-core.dir/src/GuiComponent.cpp.o
[  5%] Building CXX object es-core/CMakeFiles/es-core.dir/src/HelpStyle.cpp.o
[  6%] Building CXX object es-core/CMakeFiles/es-core.dir/src/HttpReq.cpp.o
[  7%] Building CXX object es-core/CMakeFiles/es-core.dir/src/ImageIO.cpp.o
[  8%] Building CXX object es-core/CMakeFiles/es-core.dir/src/InputConfig.cpp.o
[  9%] Building CXX object es-core/CMakeFiles/es-core.dir/src/InputManager.cpp.o
[  9%] Building CXX object es-core/CMakeFiles/es-core.dir/src/Log.cpp.o
[ 10%] Building CXX object es-core/CMakeFiles/es-core.dir/src/platform.cpp.o
[ 11%] Building CXX object es-core/CMakeFiles/es-core.dir/src/Renderer_draw_gl.cpp.o
[ 12%] Building CXX object es-core/CMakeFiles/es-core.dir/src/Renderer_init.cpp.o
[ 13%] Building CXX object es-core/CMakeFiles/es-core.dir/src/Renderer_init_sdlgl.cpp.o
[ 14%] Building CXX object es-core/CMakeFiles/es-core.dir/src/Settings.cpp.o
[ 15%] Building CXX object es-core/CMakeFiles/es-core.dir/src/Sound.cpp.o
[ 16%] Building CXX object es-core/CMakeFiles/es-core.dir/src/ThemeData.cpp.o
[ 16%] Building CXX object es-core/CMakeFiles/es-core.dir/src/Util.cpp.o
[ 17%] Building CXX object es-core/CMakeFiles/es-core.dir/src/Window.cpp.o
[ 18%] Building CXX object es-core/CMakeFiles/es-core.dir/src/animations/AnimationController.cpp.o
[ 19%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/AnimatedImageComponent.cpp.o
[ 20%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/BusyComponent.cpp.o
[ 21%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/ButtonComponent.cpp.o
[ 22%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/ComponentGrid.cpp.o
[ 22%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/ComponentList.cpp.o
[ 23%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/DateTimeComponent.cpp.o
[ 24%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/HelpComponent.cpp.o
[ 25%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/ImageComponent.cpp.o
[ 26%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/MenuComponent.cpp.o
[ 27%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/NinePatchComponent.cpp.o
[ 28%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/ScrollableContainer.cpp.o
[ 29%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/SliderComponent.cpp.o
[ 29%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/SwitchComponent.cpp.o
[ 30%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/TextComponent.cpp.o
[ 31%] Building CXX object es-core/CMakeFiles/es-core.dir/src/components/TextEditComponent.cpp.o
[ 32%] Building CXX object es-core/CMakeFiles/es-core.dir/src/guis/GuiDetectDevice.cpp.o
[ 33%] Building CXX object es-core/CMakeFiles/es-core.dir/src/guis/GuiInputConfig.cpp.o
[ 34%] Building CXX object es-core/CMakeFiles/es-core.dir/src/guis/GuiMsgBox.cpp.o
[ 35%] Building CXX object es-core/CMakeFiles/es-core.dir/src/guis/GuiTextEditPopup.cpp.o
[ 36%] Building CXX object es-core/CMakeFiles/es-core.dir/src/resources/Font.cpp.o
[ 36%] Building CXX object es-core/CMakeFiles/es-core.dir/src/resources/ResourceManager.cpp.o
[ 37%] Building CXX object es-core/CMakeFiles/es-core.dir/src/resources/SVGResource.cpp.o
[ 38%] Building CXX object es-core/CMakeFiles/es-core.dir/src/resources/TextureResource.cpp.o
[ 39%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/ResourceUtil.cpp.o
[ 40%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/splash_svg.cpp.o
[ 41%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/window_icon_256_png.cpp.o
[ 42%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/button_png.cpp.o
[ 42%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/button_filled_png.cpp.o
[ 43%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/textinput_ninepatch_png.cpp.o
[ 44%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/textinput_ninepatch_active_png.cpp.o
[ 45%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/frame_png.cpp.o
[ 46%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/scroll_gradient_png.cpp.o
[ 47%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_button_a_svg.cpp.o
[ 48%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_button_b_svg.cpp.o
[ 49%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_button_x_svg.cpp.o
[ 49%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_button_y_svg.cpp.o
[ 50%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_button_l_svg.cpp.o
[ 51%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_button_r_svg.cpp.o
[ 52%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_button_start_svg.cpp.o
[ 53%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_button_select_svg.cpp.o
[ 54%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_dpad_up_svg.cpp.o
[ 55%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_dpad_down_svg.cpp.o
[ 56%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_dpad_left_svg.cpp.o
[ 56%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_dpad_right_svg.cpp.o
[ 57%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_dpad_updown_svg.cpp.o
[ 58%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_dpad_leftright_svg.cpp.o
[ 59%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/help_dpad_all_svg.cpp.o
[ 60%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/opensans_hebrew_condensed_regular_ttf.cpp.o
[ 61%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/opensans_hebrew_condensed_light_ttf.cpp.o
[ 62%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/arrow_svg.cpp.o
[ 62%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/option_arrow_svg.cpp.o
[ 63%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/checkbox_checked_svg.cpp.o
[ 64%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/checkbox_unchecked_svg.cpp.o
[ 65%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/star_filled_svg.cpp.o
[ 66%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/star_unfilled_svg.cpp.o
[ 67%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/on_svg.cpp.o
[ 68%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/off_svg.cpp.o
[ 69%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/fav_add_svg.cpp.o
[ 69%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/fav_remove_svg.cpp.o
[ 70%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/slider_knob_svg.cpp.o
[ 71%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/busy_0_svg.cpp.o
[ 72%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/busy_1_svg.cpp.o
[ 73%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/busy_2_svg.cpp.o
[ 74%] Building CXX object es-core/CMakeFiles/es-core.dir/__/data/converted/busy_3_svg.cpp.o
Linking CXX static library ../libes-core.a
[ 74%] Built target es-core
Scanning dependencies of target emulationstation
[ 74%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/FileData.cpp.o
[ 75%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/FileSorts.cpp.o
[ 76%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/main.cpp.o
[ 77%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/MameNameMap.cpp.o
[ 78%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/MetaData.cpp.o
[ 79%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/PlatformId.cpp.o
[ 80%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/ScraperCmdLine.cpp.o
[ 80%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/SystemData.cpp.o
[ 81%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/VolumeControl.cpp.o
[ 82%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/Gamelist.cpp.o
[ 83%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/components/AsyncReqComponent.cpp.o
[ 84%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/components/RatingComponent.cpp.o
[ 85%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/components/ScraperSearchComponent.cpp.o
[ 86%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/guis/GuiFastSelect.cpp.o
[ 87%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/guis/GuiMetaDataEd.cpp.o
[ 87%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/guis/GuiGameScraper.cpp.o
[ 88%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/guis/GuiGamelistOptions.cpp.o
[ 89%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/guis/GuiMenu.cpp.o
[ 90%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/guis/GuiSettings.cpp.o
[ 91%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/guis/GuiScraperMulti.cpp.o
[ 92%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/guis/GuiScraperStart.cpp.o
[ 93%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/scrapers/Scraper.cpp.o
[ 94%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/scrapers/GamesDBScraper.cpp.o
[ 94%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/scrapers/TheArchiveScraper.cpp.o
[ 95%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/views/gamelist/BasicGameListView.cpp.o
[ 96%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/views/gamelist/DetailedGameListView.cpp.o
[ 97%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/views/gamelist/IGameListView.cpp.o
[ 98%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/views/gamelist/ISimpleGameListView.cpp.o
[ 99%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/views/gamelist/GridGameListView.cpp.o
[100%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/views/SystemView.cpp.o
[100%] Building CXX object es-app/CMakeFiles/emulationstation.dir/src/views/ViewController.cpp.o
Linking CXX executable ../emulationstation
[100%] Built target emulationstation

Here is the compiled 64bit Linux binary (compiled on xubuntu) http://s000.tinyupload.com/?file_id=67946490456360345709 md5sum: dc8315cf33221a91bcac3a2272f30341 (that is the archive BTW)

yamanyandakure commented 10 years ago

Compile and execution were carried out with the Raspberry Pi. Japanese was not able to be displayed. It becomes a square character. It is regrettable...

GM-Script-Writer-62850 commented 10 years ago

how about other characters like a e with a accent? (Pokémon) did you replace the original /usr/bin/emulationstation file with the new one? if accents work the pi may be missing a language set

Aloshi commented 10 years ago

I just pushed some more changes to the utf8 branch last night that fix some cursor issues when editing multiline text and some issues with Unicode file names not being properly read on Windows. Boost.locale is now needed to compile (sudo apt-get install libboost-locale-dev), and you'll need your system set to some UTF8 locale (e.g. en_US.UTF8, but any locale should work as long as it ends in .UTF8). Your system is probably already be set to this.

The fallback font /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf should be used on Linux (which is present on every Debian install as far as I can tell), so check to make sure that exists if you're having trouble. I have not yet had a chance to try it on an RPi myself. I've tested this on a Windows 8 machine (with the Japanese language pack installed) and an Ubuntu 14.04 machine.

The Windows UTF8 beta zip has been updated with these changes: https://dl.dropboxusercontent.com/u/2816162/emulationstation_utf8.zip

This should fix the last of the issues I know about.

yamanyandakure commented 10 years ago

I'm sorry, maybe there was a misunderstanding. But, this screen is visible. Square character is an alphanumeric double-byte.

dsc_0003 Raspberry Pi

Aloshi commented 10 years ago

Hmm, interesting. Could you paste the text for one of those games here?

yamanyandakure commented 10 years ago

It is a title of the game currently displayed. The text file was not able to be attached in the comment field of Github.

F-1 サーカス’91 F-1 サーカス’92 F-1 トリプルバトル F-1 DREAM F-1 PILOT GAMES EXPRESS CD CARD 1993 Jリーグ グレイテストイレブン Mr.HELIの大冒険 N--大河ドラマ 太平記 P-47 PCパチスロ PC原人 PC原人2 PC原人3 PC原人3 体験版

It says to a game author just to make sure. " Such file sizes are 0 byte. "

yamanyandakure commented 10 years ago

He noticed today that there was sauce on the 19th. I am sorry to have made time and effort applied. It was displayed when compiling it.

unnamed

I would like to be glad and to tell someone !!

GM-Script-Writer-62850 commented 10 years ago

well this is strange it works just fine on my main install also works fine on a minimalist xfce install after i installed fonts-takao but on my minimalist lubuntu setup Japanese characters are not working (show up as squares) despite the font set being installed, other characters are working just fine like the accented e in Pokemon all are using the same binary file i compiled above, any thoughts?

Edit: For the ubuntu deb package i think we should mark fonts-droid as a dependency

I can't compile it currently

Run Build Command:/usr/bin/make "cmTryCompileExec4170643181/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec4170643181.dir/build.make CMakeFiles/cmTryCompileExec4170643181.dir/build
make[1]: Entering directory `/home/chad/EmulationStation/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/chad/EmulationStation/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec4170643181.dir/CheckFunctionExists.c.o
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec4170643181.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c
Linking C executable cmTryCompileExec4170643181
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4170643181.dir/link.txt --verbose=1
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec4170643181.dir/CheckFunctionExists.c.o  -o cmTryCompileExec4170643181 -rdynamic -lpthreads 
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
make[1]: Leaving directory `/home/chad/EmulationStation/CMakeFiles/CMakeTmp'
make[1]: *** [cmTryCompileExec4170643181] Error 1
make: *** [cmTryCompileExec4170643181/fast] Error 2
owencunn commented 9 years ago

Hi,

I am running RetroPie Version 3.0 RC 1 for Raspberry Pi 2, and have run the source based installation (to update everything to the latest version). I would love to have Japanese kanji for the titles of my Japanese games, while keeping English for my English games.

I've installed the fonts-takao font with these 2 commands: sudo apt-get install fonts-takao-mincho sudo apt-get install fonts-takao

But currently the titles are still showing up as boxes Example: コントラ or 魂斗羅 is showing up as boxes.

Note: Before copying the rom to my Pi, I confirmed that the name of the rom was in Japanese, コントラ.nes. I have not figured out how to get my Japanese keyboard to switch from English to Japanese within emulationstation.

Can anyone suggest how I can fix this?

akancore commented 9 years ago

Hi. The solution is as follows .

sudo apt-get install fonts-droid

/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf Put the 'DroidSansFallbackFull.ttf' here.

owencunn commented 9 years ago

Hi,

You guys are amazing :) The one command fixed it for me:

sudo apt-get install fonts-droid

Thank you so much!

clockwork42 commented 7 years ago

Hello all!

I'm just getting started with a new Raspberry Pi 3, and I would also love to enable Japanese characters in EmulationStation. I'd like to use it just to display metadata (e.g. game title and description). I'm fine with my filenames being romanized.

Unfortunately, I'm a complete newbie when it comes to technical configurations like what seems to be entailed here. I use a Mac currently (I interface directly with the Pi via "Connect to Server"), and have absolutely zero experience using the OSX Terminal. I've never "sudo"-ed anything, and really have no idea what I'm doing in that regard.

Anyway, I was wondering if someone might be able to help me enable Japanese text to display in EmulationStation, despite my woeful lack of experience. So far, all I've been able to do is edit one game's metadata XML file and add Japanese to it directly. However, in EmulationStation, that text shows up as a bunch of dots (......).

Thanks so much, and my apologies in advance for not having the technical knowhow to adequately interpret previous responses in this thread.

-- C42