Yet another WC4 victim, please help

Hey, I remember this thread, I had the (mistaken) impression that you managed to get it to work.

Just to cover all the bases: are you using the DLLs posted in the more recent update at the CIC (zip here, from CIC update https://www.wcnews.com/news/2013/12/06)? Also, is the error you're getting the same you reported some time back, with the message box popping up saying that the movie can't be found? Or does the movie play, but you don't see any video (only audio)?

Let us know, we'll try to help out!

(edit: added link)
 
Last edited by a moderator:
Hey, I remember this thread, I had the (mistaken) impression that you managed to get it to work.

Just to cover all the bases: are you using the DLLs posted in the more recent update at the CIC (zip here, from CIC update https://www.wcnews.com/news/2013/12/06)? Also, is the error you're getting the same you reported some time back, with the message box popping up saying that the movie can't be found? Or does the movie play, but you don't see any video (only audio)?

Let us know, we'll try to help out!

(edit: added link)

Yes, when I saw that those new DLLs were posted that's when I decided to give it another try. I tried both of them and it still can't find the movies. I can play the files in windows explorer easy enough but the game refuses to run them.
 
Last edited by a moderator:
it's the GOG version.
Oops.
Then, you need to temporary replace wc4dvd.exe file with one from DVD wersion. In this attachment, there are three .exe files: from DVD, from GOG and from DVD patched to work with Windows 2000/XP, Backup existing wc4dvd.exe and dxmci.dll, replace them (I recommend to start from DVD version .exe), run game, try to watch any movie, exit game and upload .log file.
Also, if message boxes with error messages appear in both cases (with GOG .exe+.dll and with my ones), upload screenshots too.
 

Attachments

  • wc4dvd-various-exe.zip
    1.1 MB · Views: 109
Last edited:
Oops.
Then, you need to temporary replace wc4dvd.exe file with one from DVD wersion. In this attachment, there are three .exe files: from DVD, from GOG and from DVD patched to work with Windows 2000/XP, Backup existing wc4dvd.exe and dxmci.dll, replace them (I recommend to start from DVD version .exe), run game, try to watch any movie, exit game and upload .log file.
Also, if message boxes with error messages appear in both cases (with GOG .exe+.dll and with my ones), upload screenshots too.

Okay, here we go.

The first two I tried were the -gog.exe and the -origin.exe. Both gave me a "virtual protect failed" error.
Then I tried the -win2kpatched.exe, and that one actually got sound! still no picture though.

.log file? I found this one in the WC IV directory, hope it's the right one. I had to change the filename to .txt for the message board to allow me to attach it.
 

Attachments

  • wc4_graph.log.txt
    29 KB · Views: 102
I tried the -win2kpatched.exe {...} got sound!
.log file? I found this one in the WC IV directory, hope it\'s the right one.
OK, thanks. This is a log created by dxmci.dll from GOG or HCl, and it says that filtergraph was built OK and therefore dxmci.dll you use can successfully play movies. That\'s good.
So, let\'s run two more experiments:
  • delete all *.log files, backup your dxmci.dll and replace it with contents of this attachment (*.ini must be extracted also), run game and watch movie and give me all log files (named like dxmci-wc4dvd-yyyymmdd_hhmmss.log);
  • once more delete all *.log files, restore your backed up wc4dvd.exe and dxmci.dll, run game, watch movie and give me wc4_graph.log file from this attempt.
Both log file may be quite long so better pack it to .zip archive.
And I want to take a look to your wc4dvd.exe - pack it to .zip also before uploading (to preserve its date and length).
 
Last edited by a moderator:
OK, thanks. This is a log created by dxmci.dll from GOG or HCl, and it says that filtergraph was built OK and therefore dxmci.dll you use can successfully play movies. That\'s good.
So, let\'s run two more experiments:
  • delete all *.log files, backup your dxmci.dll and replace it with contents of this attachment (*.ini must be extracted also), run game and watch movie and give me all log files (named like dxmci-wc4dvd-yyyymmdd_hhmmss.log);
  • once more delete all *.log files, restore your backed up wc4dvd.exe and dxmci.dll, run game, watch movie and give me wc4_graph.log file from this attempt.
Both log file may be quite long so better pack it to .zip archive.
And I want to take a look to your wc4dvd.exe - pack it to .zip also before uploading (to preserve its date and length).

Okay. Ran the game with the new .dll file and while I got no error messages, all I got was a black screen and had to ctrl alt del out of it. It created two log files, attached those.

Deleted .logs, restored my backup .exe and .dll, ran the game, same "Missing Movie" as before, but for some reason no .log file was created.

And I attached my .exe
 

Attachments

  • dxmci-wc4dvd-20131219_101534.log.txt
    980 bytes · Views: 95
  • dxmci-wc4dvd-20131219_101619.log.txt
    980 bytes · Views: 102
  • wc4dvd.zip
    373.7 KB · Views: 100
Last edited by a moderator:
with the new .dll file {...} all I got was a black screen and had to ctrl alt del out of it. It created two log files, attached those.
Оh, thanks. That means (and logs confirm) that my .dll had serious error leading game to lock yourself.
Deleted .logs, restored my backup .exe and .dll, ran the game, same "Missing Movie" as before, but for some reason no .log file was created.
I.e. "missing movie" error occurs before DirectShow begin bulding a filtergraph; thus, none of DShow filters or renderers can be accused of error. This is strange.
There may be reason of such error: structure of directories tree of game is somehow damaged (missing some .tre or .vob or other file). Did you try to simply uninstall the game and install it again?
And I attached my .exe
Apropos, another strange thing. Your .exe file is bit-to-bit identical to my wc4dvd-gog.exe but one of them works and another fails with "VirtualProtect()" error. I don't understand why.

HCl, what can you say about these strange things?
 
Interesting results from these tests!

A couple notes / suggestions:

- Could you restore the original EXE (from GOG) and use the DLLs from the latest update (http://download.wcnews.com/files/wing4/dwrap_1.0.1_test15.zip)? The original ones most likely didn't have the graph log enabled, so they may not be producing a log file. Could you confirm that a new log file is generated with this DLL? If so, post it please.

- It could be that there's something odd about the OpenGL driver being used that gets in the way of DirectShow somehow. Fortunately we can test this: these new DLLs support using DirectDraw as an alternate front-end. Try placing the attached config file on the WC4 folder and see if things improve. The DLLs linked above read from renderer.cfg, valid values are "opengl", "ddraw" or "legacy" (but the game defaults to opengl mode as default, if no renderer.cfg file exists).

(remove the .txt extension, of course)

It's not something i've encountered often, but a few machines seem to have trouble with the OpenGL mode as is currently implemented.

(edit: there's also videoRenderer.cfg, which is included on the ZIP above and controls a couple different options, but don't change it for now, let's test things one at a time).

Apropos, another strange thing. Your .exe file is bit-to-bit identical to my wc4dvd-gog.exe but one of them works and another fails with "VirtualProtect()" error. I don't understand why.
Lack of compatibility mode is most likely the cause. It should be set on the GOG wc4dvd.exe but not on a renamed one. Setting it manually should fix it.
 

Attachments

  • renderer.cfg.txt
    5 bytes · Views: 108
Interesting results from these tests!

A couple notes / suggestions:

- Could you restore the original EXE (from GOG) and use the DLLs from the latest update (http://download.wcnews.com/files/wing4/dwrap_1.0.1_test15.zip)? The original ones most likely didn't have the graph log enabled, so they may not be producing a log file. Could you confirm that a new log file is generated with this DLL? If so, post it please.

- It could be that there's something odd about the OpenGL driver being used that gets in the way of DirectShow somehow. Fortunately we can test this: these new DLLs support using DirectDraw as an alternate front-end. Try placing the attached config file on the WC4 folder and see if things improve. The DLLs linked above read from renderer.cfg, valid values are "opengl", "ddraw" or "legacy" (but the game defaults to opengl mode as default, if no renderer.cfg file exists).

(remove the .txt extension, of course)

It's not something i've encountered often, but a few machines seem to have trouble with the OpenGL mode as is currently implemented.

(edit: there's also videoRenderer.cfg, which is included on the ZIP above and controls a couple different options, but don't change it for now, let's test things one at a time).


Lack of compatibility mode is most likely the cause. It should be set on the GOG wc4dvd.exe but not on a renamed one. Setting it manually should fix it.

Hmm, It's still not giving me any log files. I just got done reinstalling just to be sure, ran the game, no logs, took the .dlls from the attachment and put them in, still no logs. The only log I can get is when I run that -win2kpatched.exe file that ginger_tigra sent me the other day.

I put renderer.cfg into the folder, changed it back to a .cfg, ran the game, same error as before. Only small difference is it's now a much lower resolution window, but same error.

I have a question as well. The error message always says "Missing Movie: C:\vob\SC_0010a.vob" Perhaps this is silly of me, but the movie is in C:\GoG Games\Wing Commander IV\vob. Could it be something that simple?
 
Last edited:
It could be, actually! The game could be looking for movies in c:\vob instead of .\vob, leading to the problem you're seeing.

This observation led me to notice something else: up to this point, I always assumed that the error message you were getting was generated by the dxmci DLL... but it turns out there is a "Missing movie" message on the game EXE itself. I wonder if the game itself is generating this error before hitting dxmci. If so, I'll try to figure out what could be triggering it and report back later.

Hang in there :)
 
It could be, actually! The game could be looking for movies in c:\vob instead of .\vob, leading to the problem you're seeing.

This observation led me to notice something else: up to this point, I always assumed that the error message you were getting was generated by the dxmci DLL... but it turns out there is a "Missing movie" message on the game EXE itself. I wonder if the game itself is generating this error before hitting dxmci. If so, I'll try to figure out what could be triggering it and report back later.

Hang in there :)

Thanks to both of you guys for helping with this. I am checking this thread at least twice a day now, before work and after.
 
Back at home for the weekend. I've been thinking about this and i'm beginning to suspect you may have a wrong version of mpeg2.dll in there somehow. Just to test this possibility, try unzipping the following mpeg2.dll into the WC4 GOG folder and run the game again, let us know if it helps. Use the original GOG EXE and the DLLs posted in the latest update at the CIC (with renderer.cfg), along with the mpeg2.dll posted here.

If it still doesn't work, please check if a log file was created, or if the error message is the same. We'll be able to test a few more things afterwards, based on how it goes.
 

Attachments

  • mpeg2.dll.zip
    11.7 KB · Views: 97
Back at home for the weekend. I've been thinking about this and i'm beginning to suspect you may have a wrong version of mpeg2.dll in there somehow. Just to test this possibility, try unzipping the following mpeg2.dll into the WC4 GOG folder and run the game again, let us know if it helps. Use the original GOG EXE and the DLLs posted in the latest update at the CIC (with renderer.cfg), along with the mpeg2.dll posted here.

If it still doesn't work, please check if a log file was created, or if the error message is the same. We'll be able to test a few more things afterwards, based on how it goes.

Okay, same as before, same error, no log files.
 
Ok thanks for the info!

The Missing Movie is indeed triggered by the EXE itself if the rendering fails. Dxmci triggers a Messagebox of its own, but it's most likely obscured by the video window. No problem though, as we have another log file in place for dxmci: debug.txt. Next steps:

- By any chance, do you have a ddraw.dll in the WC4 GOG folder? If so, remove it, as it could get in the way of DirectShow. In fact, to be on the safe side, could you post a list of DLL files on your WC4 GOG folder?

- Please check if you have debug.txt in there. If you do, it should be a bit large by now (it's incremental), so you may want to delete it and launch the game again to generate a new one. Try to trigger a movie play in the game and then post debug.txt here. This will allow us to confirm that the game is indeed hitting dxmci, and should provide us a few more data as to what is going on. Again, make sure you are using the DLLs posted on the latest CIC update, as the original GOG DLLs don't generate debug.txt

- Another thing worth doing is a test render with CCCP Insurgent. Get CCCP Insurgent (it's not part of the main CCCP pack last time I checked) and do a test render by hitting Tools -> Test Render. Then select one of the VOBs in WC4 VOB folder. Please post the content of the Render Results window here.

Let me know how it goes. I should be able to check this thread more often now that things are back to normal at the day job.
 
Ok thanks for the info!

The Missing Movie is indeed triggered by the EXE itself if the rendering fails. Dxmci triggers a Messagebox of its own, but it's most likely obscured by the video window. No problem though, as we have another log file in place for dxmci: debug.txt. Next steps:

- By any chance, do you have a ddraw.dll in the WC4 GOG folder? If so, remove it, as it could get in the way of DirectShow. In fact, to be on the safe side, could you post a list of DLL files on your WC4 GOG folder?

- Please check if you have debug.txt in there. If you do, it should be a bit large by now (it's incremental), so you may want to delete it and launch the game again to generate a new one. Try to trigger a movie play in the game and then post debug.txt here. This will allow us to confirm that the game is indeed hitting dxmci, and should provide us a few more data as to what is going on. Again, make sure you are using the DLLs posted on the latest CIC update, as the original GOG DLLs don't generate debug.txt

- Another thing worth doing is a test render with CCCP Insurgent. Get CCCP Insurgent (it's not part of the main CCCP pack last time I checked) and do a test render by hitting Tools -> Test Render. Then select one of the VOBs in WC4 VOB folder. Please post the content of the Render Results window here.

Let me know how it goes. I should be able to check this thread more often now that things are back to normal at the day job.

Okay, I can't find ddraw.dll, so I'm guessing no.
Dll files:

dwrap.dll
dxmci.dll
gogame.dll
mpedg2.dll
xanlib.dll

Deleted debug.txt, ran the game, posted the new debug.txt

insurgent test render:

File: C:\GOG Games\Wing Commander IV\vob\SC_0010A.vob

Filter 0: Video Renderer
Filename: C:\Windows\SysWOW64\quartz.dll
Filter CRC: 846ED5FC
Date: 2011-10-25 | 23:32:11
Filter 1: Default DirectSound Device
Filename: C:\Windows\SysWOW64\quartz.dll
Filter CRC: 846ED5FC
Date: 2011-10-25 | 23:32:11
Filter 2: Microsoft DTV-DVD Video Decoder
Filename: C:\Windows\SysWOW64\msmpeg2vdec.dll
Filter CRC: 7ED35E8D
Date: 2013-01-04 | 01:11:21
Filter 3: AC3Filter
Filename: C:\GOG Games\Wing Commander IV\AC3Filter\ac3filter.ax
Filter CRC: 61D3BD0E
Date: 2003-08-19 | 08:20:04
Filter 4: MPEG-2 Demultiplexer
Filename: C:\Windows\SysWOW64\mpg2splt.ax
Filter CRC: 06876B76
Date: 2010-12-23 | 00:50:23
Filter 5: C:\GOG Games\Wing Commander IV\vob\SC_0010A.vob
Filename: C:\Windows\SysWOW64\quartz.dll
Filter CRC: 846ED5FC
Date: 2011-10-25 | 23:32:11
 

Attachments

  • debug.txt
    60 bytes · Views: 95
Thanks!

The insurgent log seems reasonable, the MS codec may not be the ideal choice, but it should do the trick for now.

What's really strange though, is that the debug.txt you posted is essentially empty. Even when I uninstall all codecs and force the render to fail, that file tends to have a lot more data in there. This leads me to believe that the process is failing earlier than we assumed, perhaps when building the filter graph. Anyway, here's some new files. Unzip into your WC4 GOG installation and give them a try. These introduce a few changes:

- More logs dumped into debug.txt, at earlier stages.
- No longer prioritizes mpeg2dec, what you see in Insurgent should be what WC4 GOG loads. (just to be safe...)
- New EXE with the GOG changes combined with the win2k patch. Win98 compatibility mode is no longer necessary.

After unzipping the new files, try running both the new (included) wc4dvdgog-win2k-patched.exe and the standard GOG wc4dvd.exe, to see if there are any differences in behavior.

Also, be sure to post a new debug.txt afterwards, it'll be useful to see what new info shows up.
 

Attachments

  • wc4gog_1.0.2_test1.zip
    504.2 KB · Views: 105
delete all *.log files, backup your dxmci.dll and replace it with contents of this attachment (*.ini must be extracted also), run game and watch movie and give me all log files (named like dxmci-wc4dvd-yyyymmdd_hhmmss.log)
Ran the game with the new .dll file and while I got no error messages, all I got was a black screen and had to ctrl alt del out of it.
Can you please repeat this experiment once more, for a purpose of pinpoint a reason of hanging more precisely? I have remade dxmci.dll so it can collect more info before hanging and have more chance to dump collected info to log file.
Attachment contains new .dll and .ini files; this version isn't for normal work, it's for testing only.
 

Attachments

  • dxmci-deep-log.zip
    71.3 KB · Views: 94
Last edited by a moderator:
Thanks!

The insurgent log seems reasonable, the MS codec may not be the ideal choice, but it should do the trick for now.

What's really strange though, is that the debug.txt you posted is essentially empty. Even when I uninstall all codecs and force the render to fail, that file tends to have a lot more data in there. This leads me to believe that the process is failing earlier than we assumed, perhaps when building the filter graph. Anyway, here's some new files. Unzip into your WC4 GOG installation and give them a try. These introduce a few changes:

- More logs dumped into debug.txt, at earlier stages.
- No longer prioritizes mpeg2dec, what you see in Insurgent should be what WC4 GOG loads. (just to be safe...)
- New EXE with the GOG changes combined with the win2k patch. Win98 compatibility mode is no longer necessary.

After unzipping the new files, try running both the new (included) wc4dvdgog-win2k-patched.exe and the standard GOG wc4dvd.exe, to see if there are any differences in behavior.

Also, be sure to post a new debug.txt afterwards, it'll be useful to see what new info shows up.

Okay. Copied the files over. Here we go...

GOG exe: Same as before
win2kpatched:....HOLY SHIT IT WORKS IT WORKS IT WORKS!!!. Watched the opening scenes, played the first mission and saved it there. I'll post the debug files for you, hopefully you can figure out exactly what made this one work.
 

Attachments

  • debug.txt
    12.1 KB · Views: 84
  • dwrap_debug.txt
    176 bytes · Views: 87
That's great news :) Glad to know it's finally working for you!

The extra logs do shed some light on the issue, thanks for posting them! As I suspected from the previous test runs, dxmci was failing when instancing the DirectShow Filter Graph Manager. This is the very first step of the process to get a movie playing and, up until now, i would have said it probably had no chance of failing :p

This means that the issue is somehow related to DirectShow core and that the older dwrap and dxmci DLLs were fine.

Getting a bit more technical, the line of code in question is:
Code:
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,IID_IGraphBuilder, (void **)&pGB))

And, the relevant line on the log that tells us this has failed is:
Code:
[00270365  +998ms] Filter Graph NOT BUILT!! hr = 80070003

The returned error code apparently means ERROR_PATH_NOT_FOUND, which really boggles the mind a bit, since at this point we are only dependent on core DirectShow DLLs (movie files and codecs don't get into the picture until later).

So, my best guess at this point is: there's something about the compatibility flags set on the WC4 GOG EXE that break core DirectShow behavior on your machine, for some unknown reason. Fortunately, integrating the win2k fix on the GOG EXE allows the game to run without any compatibility flags (avoiding the VirtualProtect error), working around the issue.

Badger8th, if you're still willing to do a bit of experimentation, could you try making a copy of the new wc4dvdgog-win2k-patched.exe and renaming it into wc4dvd.exe? Basically this will leave us with two EXEs with the exact same content but with different names and different compatibility settings. If running wc4dvd.exe still fails and wc4dvdgog-win2k-patched.exe succeeds, that will confirm that it's the compatibility settings that are getting in the way.

Thanks for your patience on this! :)
 
Back
Top