https://bugs.winehq.org/show_bug.cgi?id=35323
Chiitoo escomk3@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |escomk3@hotmail.com
--- Comment #4 from Chiitoo escomk3@hotmail.com --- Teegrins!
Due to what is described in bug 28861 (screen stays black after selecting a character (or when going back to PlayOnline viewer by not accepting the License Agreement or leaving from the title-screen)), I have had Windows 7 selected for 'pol.exe', and had not been hit by this one.
Indeed, by using Vista, or 7, the game works here.
As I was looking if I could notice any difference(s) in-between the license and title-screen, there was something indeed. I can't tell if this is even close to the issue, but here's what I found:
Windows XP
003f:Call imm32.ImmLockIMC(0b09a920) ret=7e110b41 003f:Ret imm32.ImmLockIMC() retval=0b09a924 ret=7e110b41
Windows 7
0009:Call imm32.ImmLockIMC(0b556698) ret=7dff7b41 0009:Ret imm32.ImmLockIMC() retval=00000000 ret=7dff7b41
The 'winex11.drv' around that differ as well, or so it seems, as for example, 'winex11.drv.NotifyIME' is never called upon while in XP-mode. Another difference that caught my eye, is that on XP, 'GetPropW' returns '00000000' for every instance, whereas on 7, it gives out 'ffffffff'. Possibly to be expected?
Anyblue, if I force 'ImmLockIMC' in 'imm.c' to return NULL, I get past that part, but due to the issue mentioned above (and in bug 28861), I can't get into the actual game afterwards.
I should note that I did not (yet) test with a clean prefix, but with what I daily use for the game, and that I actually didn't get a page fault [1] nor a backtrace. Instead, as far as I can tell, it exits rather cleanly, with 'WM_CLOSE' from 'window proc', 'PostQuitMessage', 'ExitProcess', and so on and forth.
[1] I actually got a page fault (with a backtrace), when I ran the game with my regular installation of Wine (and forgot to change the Windows version). That is, wine-1.7.10, which isn't built for debugging unlike the one from git that I used for testing:
=>0 0x7e126f13 in winex11 (+0x46f13) (0x033ee878) 1 0x7e13301e in winex11 (+0x5301d) (0x033ee8a8) 2 0x7e108067 NotifyIME+0x246() in winex11 (0x033ee8f8) 3 0x7e90f2fa ImmNotifyIME+0x79() in imm32 (0x033ee958) 0x7e126f13: movl %edi,0x14(%eax)
Moreover, I'm using the European client instead of the Japanese one, on Gentoo Linux (~amd64 "unstable") with
wine-1.7.9-197-gf76f34c
wine-1.7.10
wine-1.7.10-191-g8953c74
without virtual desktop.
While I had already typed out the above, I was still digging into it, trying to find out where the non-NULL and friends were coming from. I noticed that if I remove
else if (rc == NULL) rc = IMM_GetThreadData()->defaultContext;
from 'ImmGetContext', I get to the title-screen as well (with 'imm.c' in its unmodified state).
What is more, I can actually get into the game itself, through the darkness!
Obviously this is no fix, and I see this particular spot was shaped into what it is already back in 2008 (commit b72dcd114d1c622b3046506563cc91fc38d40835). Then again, for as long as I can remember, I've had to use Windows 7 mode myself (earliest I could have tried would have been in 2010).
I do hope this may at least /hint/ towards a solution, instead of only being 'noise'...
Kind Regards, Chiitoo/Dragoy