Ancurio / mkxp

Free Software implementation of the Ruby Game Scripting System (RGSS)
GNU General Public License v2.0
524 stars 137 forks source link

It would be great if mkxp support other encoding than UTF-8. #27

Closed euna8815 closed 10 years ago

euna8815 commented 10 years ago

There are still many games that are localized and encoded with charset other than UTF-8 like SHIFT-JIS or euc-kr, but since mkxp only supports UTF-8, many strings are broken thus I cannot play those games. Is there any way to specify encoding manually?

Ancurio commented 10 years ago

Interesting. I haven't encountered any non-UTF8 game yet, and all Japanese games I've played so far have been in UTF-8 which is the default in RGSS. Can you give me some examples?

Also, I fear it would be hard to support other encodings as SDL_ttf only supports Latin1, UTF-8 and Unicode.

euna8815 commented 10 years ago

Sorry, actually every string was encoded as UTF-8 as you said, but I misunderstood that the game was non-UTF8 because of those broken text (printed as squares) in the output. However, the Game.ini file seems to be encoded as localized charset instead of UTF-8. I think I should manually convert it into UTF-8 :/

Ancurio commented 10 years ago

Ah, yes, the Game.ini file can end up in a local non-UTF8 encoding, I've had that happen to me too. You'll have to manually convert it, or you can just write your own.

If in game text is drawn as squares (ie. when a NPC speaks), that means the default font doesn't cover the necessary unicode ranges. In that case, you'll have to manually supply a font, put it into the Fonts/ folder, and define a font family substitution in the mkxp.conf so it is used instead of Arial.

If you're talking about the system message box (that pops up in its own window on errors), that one unfortunately only supports Latin1 on Linux (it's a SDL2 limitation).