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.
added on the 2012-11-17 14:41:03 by Intrinsic Intrinsic
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.
added on the 2012-11-18 23:19:59 by Blueberry Blueberry
Indeed: the 1.3 version crashes, the other one works for me.
added on the 2012-11-19 02:15:52 by zoom zoom
@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.
added on the 2012-11-19 09:02:36 by Intrinsic Intrinsic
Also seems to fix the issue here on the laptop, on both 310 drivers (ie 1.3 version crashes, test version works).
added on the 2012-11-20 10:01:59 by Psycho Psycho
10 bytes bigger :(
added on the 2012-11-20 10:21:44 by las las
Shouldn't the export table pointer only be relevant for DLLs?
added on the 2012-11-20 11:19:47 by Gargaj Gargaj
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.

Shouldn't the export table pointer only be relevant for DLLs?

It should. But try telling NVIDIA that.
added on the 2012-11-20 16:11:47 by Blueberry Blueberry
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...
added on the 2012-11-21 18:44:25 by micksam7 micksam7
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...
added on the 2012-11-25 01:07:38 by vampire7 vampire7
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...
added on the 2012-11-28 19:23:31 by qkumba qkumba
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.
added on the 2012-11-28 19:30:27 by qkumba qkumba
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...
added on the 2012-11-30 09:05:33 by Blueberry Blueberry
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?
added on the 2012-12-18 19:04:00 by quiller quiller
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.
added on the 2012-12-19 00:35:36 by qkumba qkumba
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?
added on the 2012-12-19 10:13:03 by Intrinsic Intrinsic
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 ...).
added on the 2012-12-19 10:53:56 by quiller quiller
Hoping to get more feedback on 3D Vision soon!
added on the 2012-12-19 13:56:48 by quiller quiller
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.
added on the 2012-12-24 13:53:14 by Intrinsic Intrinsic
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
added on the 2013-01-19 22:49:16 by Blueberry Blueberry
Nice one, Blueberry!
added on the 2013-01-19 23:10:31 by trc_wm trc_wm
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)