https://bugs.winehq.org/show_bug.cgi?id=55942
Bug ID: 55942 Summary: Crazy Chicken Approaching - Nebula Assertion and Visual C++ Runtime Library Errors Product: Wine Version: 8.20 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: nikolas.gur@stud.uni-due.de Distribution: ---
Created attachment 75517 --> https://bugs.winehq.org/attachment.cgi?id=75517 wine output
game info: https://www.mobygames.com/game/20725/crazy-chicken-approaching/
Game does not even boot into main menu. Upon starting, a 'Nebula Assertion' Error is presented. When clicking "ok", another "Runtime Error" appears, this time from the Visual C++ Runtime Library. When clicking again on "ok", the game just exits.
https://bugs.winehq.org/show_bug.cgi?id=55942
nikolas.gur@stud.uni-due.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |ArchLinux
https://bugs.winehq.org/show_bug.cgi?id=55942
--- Comment #1 from nikolas.gur@stud.uni-due.de --- Created attachment 75518 --> https://bugs.winehq.org/attachment.cgi?id=75518 GUI Error 1
https://bugs.winehq.org/show_bug.cgi?id=55942
--- Comment #2 from nikolas.gur@stud.uni-due.de --- Created attachment 75519 --> https://bugs.winehq.org/attachment.cgi?id=75519 GUI Error 2
https://bugs.winehq.org/show_bug.cgi?id=55942
Eric Pouech eric.pouech@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |eric.pouech@gmail.com
--- Comment #3 from Eric Pouech eric.pouech@gmail.com --- can you please attach output of running WINEDEBUG=+winmm,+mmio,+mmsys ./wine <your_app> <your_args>
TIA
https://bugs.winehq.org/show_bug.cgi?id=55942
Bernhard Übelacker bernhardu@mailbox.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bernhardu@mailbox.org
--- Comment #4 from Bernhard Übelacker bernhardu@mailbox.org --- There exists a demo version in german language. I had some trouble installing, see bug #29678, use winxp and the dlloverrides.
===== Then there appeared a d3dcompiler message, for this I did a `winetricks d3dx9`.
===== Then I received following message: Moorhuhn - Im Anflug Demo *** NEBULA ASSERTION *** expression: mmioProc == lpMMIOInfo->pIOProc file: \radonlabs\code\nebula2\src\audio3\nwavfile.cc line: 25
Against this assert seem to help for now following line:
dlls/winmm/mmio.c @@ -625,2 +625,3 @@ static MMRESULT MMIO_SetBuffer(WINE_MMIO* wm, void* pchBuffer, LONG cchBuffer, wm->info.lBufOffset = wm->info.lDiskOffset; + wm->info.pIOProc = pIOProcListAnchor[0].pIOProc; wm->bBufferLoaded = (wm->info.fccIOProc == FOURCC_MEM);
===== Just for completeness, finally I received: nDShowServer::PlayFile(): could not render file 'C:/users/benutzer/Temp///Pheno_Vorspann2005.avi'"
This went out of the way after enabling the wine build with 32-bit gstreamer support, and installing 32-bit gstreamer plugins. (gstreamer1.0-plugins-bad needed).
https://bugs.winehq.org/show_bug.cgi?id=55942
--- Comment #5 from Eric Pouech eric.pouech@gmail.com --- (In reply to Bernhard Übelacker from comment #4)
There exists a demo version in german language. I had some trouble installing, see bug #29678, use winxp and the dlloverrides.
===== Then there appeared a d3dcompiler message, for this I did a `winetricks d3dx9`.
===== Then I received following message: Moorhuhn - Im Anflug Demo *** NEBULA ASSERTION *** expression: mmioProc == lpMMIOInfo->pIOProc file: \radonlabs\code\nebula2\src\audio3\nwavfile.cc line: 25
Against this assert seem to help for now following line:
dlls/winmm/mmio.c @@ -625,2 +625,3 @@ static MMRESULT MMIO_SetBuffer(WINE_MMIO* wm, void* pchBuffer, LONG cchBuffer, wm->info.lBufOffset = wm->info.lDiskOffset;
- wm->info.pIOProc = pIOProcListAnchor[0].pIOProc; wm->bBufferLoaded = (wm->info.fccIOProc == FOURCC_MEM);
this doesn't look fully correct At least, it shows that the app expects the DOS ioproc to be used; but I'm not sure that this the place to set it. For example, MMIO_Open() sets pIOProc before calling MMIO_SetBuffer() so doesn't look right to always overwrite it in MMIO_SetBuffer. Can you tell if the MMIO_SetBuffer call is made from MMIO_Open or mmioSetBuffer? And if from MMIO_Open() what is the content of refmmio (esp. fccIOProc and pIOProc fields).
https://bugs.winehq.org/show_bug.cgi?id=55942
--- Comment #6 from Bernhard Übelacker bernhardu@mailbox.org --- Created attachment 75719 --> https://bugs.winehq.org/attachment.cgi?id=75719 WINEDEBUG=+winmm,+mmio,+mmsys,+msgbox,+pid wine Moorhuhn-Im-Anflug.exe; with wine-9.0-rc2
Thanks for looking into it, attaching the stdout with unmodified wine.
https://bugs.winehq.org/show_bug.cgi?id=55942
--- Comment #7 from Bernhard Übelacker bernhardu@mailbox.org --- (In reply to Eric Pouech from comment #5)
this doesn't look fully correct At least, it shows that the app expects the DOS ioproc to be used; but I'm not sure that this the place to set it. For example, MMIO_Open() sets pIOProc before calling MMIO_SetBuffer() so doesn't look right to always overwrite it in MMIO_SetBuffer. Can you tell if the MMIO_SetBuffer call is made from MMIO_Open or mmioSetBuffer? And if from MMIO_Open() what is the content of refmmio (esp. fccIOProc and pIOProc fields).
I added logging just above my modification: 0020:0024:trace:mmio:MMIO_SetBuffer wm->info.pIOProc was 00000000, setting to pIOProcListAnchor[0].pIOProc 004E69C7 (with mmioDosIOProc 77A5EB80, mmioMemIOProc 77A5EDD0)
I think the application expects to get the ioproc returned it did set with MMIO_InstallIOProc before calling MMIO_Open. And MMIO_Open gets called with refmminfo==NULL.
If I understand it right, MMIO_InstallIOProc places the new proc at index 0 in pIOProcListAnchor?
And when running with winedbg, a breakpoint on MMIO_SetBuffer is just hit once (before the "nebula assertion"): Wine-gdb> bt #0 MMIO_SetBuffer () at mmio.c:595 #1 MMIO_Open () at mmio.c:698 #2 mmioOpenA@12 () at mmio.c:765 #3 0x004e6cc9 in Moorhuhn-Im-Anflug.exe
https://bugs.winehq.org/show_bug.cgi?id=55942
--- Comment #8 from Eric Pouech eric.pouech@gmail.com --- Created attachment 75724 --> https://bugs.winehq.org/attachment.cgi?id=75724 tentative patch
can you test that this fixes the first msvcrt assert?
https://bugs.winehq.org/show_bug.cgi?id=55942
--- Comment #9 from Bernhard Übelacker bernhardu@mailbox.org --- (In reply to Eric Pouech from comment #8)
Created attachment 75724 tentative patch
can you test that this fixes the first msvcrt assert?
This patch solves the issue and neither the "nebula assertion" nor the "runtime error" message was shown with it, thanks. (On top of otherwise unmodified yesterdays git, prefix with d3dx9.)
https://bugs.winehq.org/show_bug.cgi?id=55942
Eric Pouech eric.pouech@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Fixed by SHA1| |6e9668450afebf19b20ae847255 | |0cd90019db28b Status|UNCONFIRMED |RESOLVED
--- Comment #10 from Eric Pouech eric.pouech@gmail.com --- changing to resolved/fixed (for the mmio part)
https://bugs.winehq.org/show_bug.cgi?id=55942
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 9.0-rc3.