Wait, this happens with Unity?Note that this method only works for Unity games.
Some countries use a dot for decimal numbers and others a comma. Since the game doesn't force the localization it uses the one from your system and parse floating point numbers incorrectly which usually result in a crash.
You can use dnSpy (the fork from dnSpyEx) to edit the Assembly-CSharp.dll file which contains most of the game's logic. If it was compiled with il2cpp you would have to either make a bepinex plugin to do the following or edit the assembly with ghidra for example.
The fix is to force the localization to the expected one (japanese here) by running the following code :
In this case, I added it to the Start() function in MainManager.Code:// add this at the top of the file where you put the next line of code, it's the dependency using System.Globalization; // put this line in a function that is run at the stat of the game, it change the localization CultureInfo.CurrentCulture = new CultureInfo("ja-JP", false);
I would expect this from something like the Wolf RPG engine, but it's insane we're still seeing games that fail to run in different locales.
I suppose it's because the dev saved a float value to an external json file (or something of that effect)? If not, this could be a good PR to do for Unity!