4k Crash/BEX Issues
category: code [glöplog]
That didn't work for me heh, so no clue what's going on. Even tried the new beta drivers which fix a lot of stuff internally apparently.
Following qkumba's lead about the export table, I tried modifying the Crinkler header to zero the export table pointer. On my system, this avoids the crash on exit that I otherwise see when running Crinkler-compressed stuff.
Anyone who is seeing crashes, please download this test containing two versions of Wishful Seedling - one compressed using Crinkler 1.3 and the other compressed using the special version which zeros the export table pointer. The intro reads the resolution from the filename of the executable, so if you want to run it in some other resolution, just change the numbers in the filenames.
Let me know whether these work for you. If the 1.3 one crashes and the other one doesn't, we might be on to something.
Anyone who is seeing crashes, please download this test containing two versions of Wishful Seedling - one compressed using Crinkler 1.3 and the other compressed using the special version which zeros the export table pointer. The intro reads the resolution from the filename of the executable, so if you want to run it in some other resolution, just change the numbers in the filenames.
Let me know whether these work for you. If the 1.3 one crashes and the other one doesn't, we might be on to something.
Indeed: the 1.3 version crashes, the other one works for me.
@Blueberry: 1.3 gives me the same result as many other 4ks(even when they are /RECOMPRESS ) The "Test" one works fine although a black screen at the end which only goes when i LMB.
Also seems to fix the issue here on the laptop, on both 310 drivers (ie 1.3 version crashes, test version works).
10 bytes bigger :(
F U NV.
F U NV.
Shouldn't the export table pointer only be relevant for DLLs?
Quote:
10 bytes bigger :(
Sure, this is just a test, where I have shoved some stuff aside to make room for the zeroed export table pointer. It can of course be optimized if we find that this is the right solution.
Quote:
Shouldn't the export table pointer only be relevant for DLLs?
It should. But try telling NVIDIA that.
Crinkler 1.3 crashes on my laptop, but Test works perfectly fine.
Crinkler 1.3 and Crinkler Test both work on my desktop oddly enough...
Crinkler 1.3 and Crinkler Test both work on my desktop oddly enough...
I am now on Win 8 with 310.61 driver.
WishfulSeedling_Crinkler13.1600.900.exe crashes and WishfulSeedling_CrinklerTest.1600.900.exe works perfectly.
I do not really mind if it is 10 bytes bigger, as long as we can watch this wonderful intros...
WishfulSeedling_Crinkler13.1600.900.exe crashes and WishfulSeedling_CrinklerTest.1600.900.exe works perfectly.
I do not really mind if it is 10 bytes bigger, as long as we can watch this wonderful intros...
As Blueberry notes, ignore the 10 bytes bigger. I sent to Mentor in July a new header that saved 42 bytes (but it seems that he is very busy and has not had any time to answer my mails). It looks like the ExportTable protection could be added and still save more than 35 bytes against the existing Crinkler 1.3...
Quote:
Shouldn't the export table pointer only be relevant for DLLs?
No, an exe can export functions to a DLL, which is the case here. nVidia DLL is looking if the host exe offers a particular Optimus extension, but the DLL cannot import the function statically because it does not know the name of the host at load time, nor its load address. That's why it's done at run time. The bug is that there is no exception handler wrapping the function resolution code.
Thanks for the testing, and thanks to qkumba for pointing to the export table. This seems to be the right solution. Now to the actual implementation of this...
Guys ... I'm not a coder, but is it possible that it has to do something with the 3D Vision components of the nvidia driver? When I install the driver with 3D Vision, all crinkler intros work (Win7 64 bit, GTS450, 306.97 or 310.70 drivers). When I choose custom install and tick them off, crinkler intros won't work. Is it possible that there's a connection?
of course it's possible - the most likely reason is that the nVidia DLL is finding what it wants from another DLL that is loaded when the 3D Vision components are installed, so that it does not need to examine the host exe anymore.
quiller: Interesting, i never install that shit, i wonder if in some ways that is what screws up some of the ASD demo's also?
Intrinsic: No, sadly it doesn't work for Spin, neither Happiness ... this was my first desperate thought as well :-) But that seems to be another bug (Navis said he maybe has a clue about what's wrong, but he doesn't have the source code anymore ...).
Hoping to get more feedback on 3D Vision soon!
I dual boot w7 here so next time i update the gfx drivers on my dev/gfx boot side i'll install the full package with 3d vision stuff and see how it goes.
This issue is now fixed in the newest version of Crinkler. If you are seeing crashes with 4k intros after updating your graphics driver, download Crinkler and use its recompression feature to fix the intro:
crinkler /RECOMPRESS intro.exe
crinkler /RECOMPRESS intro.exe
Nice one, Blueberry!
Great one Blueberry, can get 4k's working on my Win8 lappy!
I know this thread is old, but if someone else happens to run into this problem, in my case temporarily disabling my antivirus' real-time shield got all the 4k demos I was having trouble with working. I figured if it was scanning the files every time I ran them to pop up a "security" warning, it might be messing with crinkler's decompressor in the process.
(I also reverted my nvidia driver back to 306, but the demos still didn't work until the antivirus thing)
(I also reverted my nvidia driver back to 306, but the demos still didn't work until the antivirus thing)