https://bugs.winehq.org/show_bug.cgi?id=38269
Bug ID: 38269 Summary: Project64k regression in Wine 1.5.20 and later Product: Wine Version: 1.5.20 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: leodexe@gmail.com Distribution: ---
Created attachment 51097 --> https://bugs.winehq.org/attachment.cgi?id=51097 Output from the terminal when the program is being executed
Well, it is quite simple. When you execute Project64k (READ CAREFULLY), Project64k, NOT the standard Project 64 emulator, but the one that has netplay capabilities within any version of Wine older than 1.5.20 it won't recognize controller plugins, no matter what controller plugin you actually use it won't work so basically you will not be able to play online due to the controller inputs being disabled. If you run Project64k with Wine 1.5.19 or older it will just run fine without any problems, though. I have added an attachment which shows the output from the terminal when you run the program via terminal, if it happens to be something useful there so the regression can be fixed. Note that this regression both affects x86 and x64 versions of Wine.
https://bugs.winehq.org/show_bug.cgi?id=38269
Leonardo Véliz leodexe@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Distribution|--- |ArchLinux
https://bugs.winehq.org/show_bug.cgi?id=38269
--- Comment #1 from Austin English austinenglish@gmail.com ---
[vlz@archdell bin]$ ./wine /home/vlz/Descargas/Project64k/Project64k.exe
cd to the directory first.
err:wincodecs:PngEncoder_CreateInstance Failed writing PNG because unable to find libpng12.so.0
Fix your wine build.
Please run a regression test: http://wiki.winehq.org/RegressionTesting
https://bugs.winehq.org/show_bug.cgi?id=38269
--- Comment #2 from Leonardo Véliz leodexe@gmail.com ---
[vlz@archdell bin]$ ./wine /home/vlz/Descargas/Project64k/Project64k.exe
cd to the directory first.
1. How exactly "cd *directory*" is related to the regression or does it matter in any way?
err:wincodecs:PngEncoder_CreateInstance Failed writing PNG because unable to find libpng12.so.0
Fix your wine build.
2. I didn't compile the wine binary myself, I took it from PlayonLinux binaries (https://www.playonlinux.com/wine/binaries/linux-x86/) since my computer can't really compile wine at all due to poor hardware specs.
Please run a regression test: http://wiki.winehq.org/RegressionTesting
3. I haven't done so yet, so I will give it a try and post the results later.
https://bugs.winehq.org/show_bug.cgi?id=38269
--- Comment #3 from Austin English austinenglish@gmail.com --- (In reply to Leonardo Véliz from comment #2)
[vlz@archdell bin]$ ./wine /home/vlz/Descargas/Project64k/Project64k.exe
cd to the directory first.
- How exactly "cd *directory*" is related to the regression or does it
matter in any way?
That is in the FAQ.
err:wincodecs:PngEncoder_CreateInstance Failed writing PNG because unable to find libpng12.so.0
Fix your wine build.
- I didn't compile the wine binary myself, I took it from PlayonLinux
binaries (https://www.playonlinux.com/wine/binaries/linux-x86/) since my computer can't really compile wine at all due to poor hardware specs.
PlayOnLinux is not supported, you should be testing in plain wine (latest is 1.7.39, not 1.5.20). Otherwise this bug is invalid.
https://bugs.winehq.org/show_bug.cgi?id=38269
--- Comment #4 from Leonardo Véliz leodexe@gmail.com ---
err:wincodecs:PngEncoder_CreateInstance Failed writing PNG because unable to find libpng12.so.0
Fix your wine build.
- I didn't compile the wine binary myself, I took it from PlayonLinux
binaries (https://www.playonlinux.com/wine/binaries/linux-x86/) since my computer can't really compile wine at all due to poor hardware specs.
PlayOnLinux is not supported, you should be testing in plain wine (latest is 1.7.39, not 1.5.20). Otherwise this bug is invalid.
The first thing I did was to run Project64k on CURRENT Wine version. And it didn't work too. Are PlayonLinux's Wine binaries any different than vanilla Wine? Because the fact that Project64k will run fine on any version older than 1.5.20 and will throw the same controller error plugin on later versions wouldn't make any sense at all. I don't see why they can't be used for testing as long as I choose unmodded and precompiled binaries, which are stored in PlayOnLinux website for simplicity sake.
https://bugs.winehq.org/show_bug.cgi?id=38269
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=38269
--- Comment #5 from Austin English austinenglish@gmail.com --- (In reply to Leonardo Véliz from comment #4)
I don't see why they can't be used for testing as long as I choose unmodded and precompiled binaries
PlayOnLinux is anything but 'unmodded'
https://bugs.winehq.org/show_bug.cgi?id=38269
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|UNCONFIRMED |NEW URL| |pj64k.blogspot.com CC| |gyebro69@gmail.com, | |julliard@winehq.org Summary|Project64k regression in |Project64k fails to load |Wine 1.5.20 and later |controller plugins Ever confirmed|0 |1
--- Comment #6 from Béla Gyebrószki gyebro69@gmail.com --- Googling for "Project64k" resulted the website pj64k.blogspot.com which redirects me to the site http://pj64k.blogspot.hu/ where the application can be downloaded (Project64k Core 1.4 version 0.13).
I'm getting the following error message when starting Project64.exe: "Current controller dll could not be used please selected another one"
The error message is present since 1.5.20:
4adfb787f4e8c36a37ce1d53a7e6df16d03ecd8a is the first bad commit commit 4adfb787f4e8c36a37ce1d53a7e6df16d03ecd8a Author: Alexandre Julliard julliard@winehq.org Date: Sat Dec 15 16:49:47 2012 +0100
include: Force stack alignment also on Linux to work around the ABI breakage.
wine-1.7.39-75-g3c2d0b9 Fedora 21 x86 gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)
https://bugs.winehq.org/show_bug.cgi?id=38269
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |4adfb787f4e8c36a37ce1d53a7e | |6df16d03ecd8a
https://bugs.winehq.org/show_bug.cgi?id=38269
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|pj64k.blogspot.com |http://pj64k.blogspot.hu/
https://bugs.winehq.org/show_bug.cgi?id=38269
--- Comment #7 from Alexandre Julliard julliard@winehq.org --- The error goes away with +relay, so most likely an uninitialized stack variable or some other stack layout dependency.
You can try to bisect which Wine module should be compiled without that commit, but ultimately it will probably turn out to be an app bug.
https://bugs.winehq.org/show_bug.cgi?id=38269
--- Comment #8 from Leonardo Véliz leodexe@gmail.com --- Thanks for fixing the title. I had to be more specific. In the mean time I will search how to compile Wine from source because for some reason I can't compile some programs. I use Arch Linux x86, I don't know if that has something to do or there is something that i'm overlooking.
https://bugs.winehq.org/show_bug.cgi?id=38269
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Abandoned?
https://bugs.winehq.org/show_bug.cgi?id=38269
willem@willemdemmers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |willem@willemdemmers.com
--- Comment #9 from willem@willemdemmers.com --- I've tried this with "wine-1.9.6 (Staging)" and I get the same error (Controller.dll)(In reply to Béla Gyebrószki from comment #6)
Googling for "Project64k" resulted the website pj64k.blogspot.com which redirects me to the site http://pj64k.blogspot.hu/ where the application can be downloaded (Project64k Core 1.4 version 0.13).
I'm getting the following error message when starting Project64.exe: "Current controller dll could not be used please selected another one"
The error message is present since 1.5.20:
4adfb787f4e8c36a37ce1d53a7e6df16d03ecd8a is the first bad commit commit 4adfb787f4e8c36a37ce1d53a7e6df16d03ecd8a Author: Alexandre Julliard julliard@winehq.org Date: Sat Dec 15 16:49:47 2012 +0100
include: Force stack alignment also on Linux to work around the ABI
breakage.
wine-1.7.39-75-g3c2d0b9 Fedora 21 x86 gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)
This Controller.dll issue is still present with "wine-1.9.6 (Staging)".
https://bugs.winehq.org/show_bug.cgi?id=38269
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |NOTOURBUG Status|NEW |RESOLVED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- The app is loading the Jabo_DInput.dll plugin and calling its GetDllInfo entry point. It then checks the returned structure for Type == 4 (controller) and Version == 0x100, which matches. It then checks that offset 0x6c in that structure contains non-zero:
0x00449532: call *0x46007c -> 0x7b457f80 LoadLibraryA in kernel32 0x00449538: testl %eax,%eax 0x0044953a: movl %eax,0x0048de90 0x0044953f: jz 0x00449592 0x00449541: movl 0x00460078,%esi 0x00449547: pushl $0x469594 0x0044954c: pushl %eax 0x0044954d: call *%esi -> GetProcAddress 0x0044954f: testl %eax,%eax 0x00449551: movl %eax,0x00493e48 0x00449556: jz 0x00449592 0x00449558: leal 0xc(%esp),%ecx 0x0044955c: pushl %ecx 0x0044955d: call *%eax -> GetDllInfo 0x0044955f: movl 0x12(%esp),%edx 0x00449563: andl $0xffff,%edx 0x00449569: leal 0xffffffff(%edx),%eax 0x0044956c: addl $4,%esp 0x0044956f: cmpl $3,%eax 0x00449572: jnbe 0x00449592 0x00449574: jmp *0x4496e8(,%eax,4) [...] 0x004495c6: movw 0xc(%esp),%ax 0x004495cb: cmpw $256,%ax 0x004495cf: jnz 0x00449592 0x004495d1: movl 0x78(%esp),%ecx 0x004495d5: testl %ecx,%ecx 0x004495d7: jz 0x00449592 (jump in failure case)
The structure is apparently:
typedef struct { WORD Version; WORD Type; char Name[100]; BOOL NormalMemory; BOOL MemoryBswaped; } PLUGIN_INFO;
So it wants MemoryBswaped to be non-zero. But the plugin never puts anything in there:
0x011f2e10 GetDllInfo in jabo_dinput: movl 0x4(%esp),%eax 0x011f2e14: pushl $0x11f7aa4 0x011f2e19: pushl $0x11f7b3c 0x011f2e1e: movw $0x100,0x0(%eax) 0x011f2e23: movw $0x4,0x2(%eax) 0x011f2e29: addl $4,%eax 0x011f2e2c: pushl %eax 0x011f2e2d: call *0x11f6068 -> 0x7bdc2240 MSVCRT_sprintf 0x011f2e33: addl $12,%esp 0x011f2e36: ret
As expected, it's checking uninitialized stack data, and will fail randomly if that stack address happens to contain 0. It's a plugin bug, and I don't see a good way of working around it in Wine.
https://bugs.winehq.org/show_bug.cgi?id=38269
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Austin English austinenglish@gmail.com --- Closing.
https://bugs.winehq.org/show_bug.cgi?id=38269
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|CLOSED |RESOLVED
--- Comment #12 from Austin English austinenglish@gmail.com --- This was inadvertently caught up in my unclosed bugs filter. NOTOURBUG should only be closed when fixed upstream.
Setting back to RESOLVED NOTOURBUG.
Sorry for the spam.
https://bugs.winehq.org/show_bug.cgi?id=38269
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|Abandoned? |