https://bugs.winehq.org/show_bug.cgi?id=39291
--- Comment #10 from Aric Stewart aric@codeweavers.com --- So the process for handling Input that is routed though the IME is a lot more convoluted so there are lots of places where it can break.
I see the keystroke for 'Z' is properly headed into Kotoeri where is it properly returning 'Z' that ends up into an IME Composition string where it is sent to the application, which is not handling it so it ends back up into the IME code where it is broken down into an WM_IME_CHAR messages and sent back to the application.
If the Application sends the WM_IME_CHAR to DefWindowProc then it would get reposted as a WM_CHAR message.
I cannot see from your log if the WM_IME_CHAR is being translated into a WM_CHAR or not. but there are 2 likely places where the game is falling down.
1) It tries to handle the WM_IME_CHAR message and is getting confused
2) It does not handle WM_CHAR message and expects keystrokes to come in as keystrokes (WM_KEYDOWN etc...)
When the IME processes the keystrokes the KEYDOWN/KEYUP messages are not delivered to the application, just the resulting characters.
The reason that arrow keys would work is because the arrow keys are not handled by the IME so the IME reports that it is not consuming the keystroke and it is handled as normal.
If under windows the Japanese Input Method, set to romaji, still works then it is likely because they have their input method working specifically to handle this, but I would believe that you would see the same behavior.