I can check (while it takes a bit of effort to check for sure with the game, not something immediately easy to confirm). But even if we stop depending on case map tables for chars >= 0x80 for UTF8, don't we still want to do something with failing WideCharToMultiByte? It now returns 0 on utf8 locale and that only works for characters < 0x80 due to implementation detail when WideCharToMultiByte will actually fill the output buffer up to the failure moment.