Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

any kind of mods
  • Author
  • Message
Offline
Posts: 4
Joined: 30 Jan 2014, 06:39

Re: Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

hand79 wrote:For me the patch works fine, too. Hope the new SKSE will work without steam. Somebody knows something about this?
The TESV executable is basically hard-coded to interact with stream through the steam api and skse
needs to interact with this API to allow the game to be launched without showing the launcher.
So, I suspect that skse will always need steam (because that game is hard-coded to use it).
The only way around this limiation is to patch the TESV executable and that is well beyond the scope of what SKSE is supposed to do, and would technically be illlegal -- since steam can verify that you own the game when it is launched)

Bottomline: SKSE will never (at least shouldn't) disable or run without steam.

Offline
Posts: 39
Joined: 08 Jan 2014, 14:59
Location: Lyon, France

Re: Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

hand79 wrote:For me the patch works fine, too. Hope the new SKSE will work without steam. Somebody knows something about this?
Yes, for sure. Analysing the source code, it appears that skse can work both with steam or without it.

Code: Select all

   // inject the dll
	switch(procType)
	{
		case kProcType_Steam:
		{
			std::string	steamHookDllPath = runtimeDir + "\\skse_steam_loader.dll";

			injectionSucceeded = InjectDLLThread(&procInfo, steamHookDllPath.c_str(), true);
		}
		break;

		case kProcType_Normal:
			if(InjectDLL(&procInfo, dllPath.c_str(), &procHookInfo))
			{
				injectionSucceeded = true;
			}
			break;

		default:
			HALT("impossible");
	}
In the new alpha release, devs have created a new option that forces skse to load the skse_steam_loader dll, even if you do not use steam to run TESV.exe.

The new parameter is -forcesteamloader.

It works perfecly in a shortcut, or within Mod Organizer, in order to launch skse with the sheson's fix activated.

Also, don't forget to modify skse.ini like this:

Code: Select all

[Memory]
DefaultHeapInitialAllocMB=768
ScrapHeapSizeMB=256
The result in skse_loader.log =>

Code: Select all

skse loader 01070000 01CF1D4742ED2343 6.1 (7601)
runtime root = D:\Loisirs\RPG\Skyrim\
config path = D:\Loisirs\RPG\Skyrim\Data\SKSE\skse.ini
procPath = D:\Loisirs\RPG\Skyrim\\TESV.exe
launching: TESV.exe (D:\Loisirs\RPG\Skyrim\\TESV.exe)
dwSignature = FEEF04BD
dwStrucVersion = 00010000
dwFileVersionMS = 00010009
dwFileVersionLS = 00200000
dwProductVersionMS = 00010009
dwProductVersionLS = 00200000
dwFileFlagsMask = 00000017
dwFileFlags = 00000000
dwFileOS = 00000004
dwFileType = 00000001
dwFileSubtype = 00000000
dwFileDateMS = 00000000
dwFileDateLS = 00000000
version = 0001000900200000
normal exe
hook call addr = 00F56831
load lib addr = 0106B0B4
dll = D:\Loisirs\RPG\Skyrim\\skse_1_9_32.dll
main thread id = 2296
forcing steam loader
hookBase = 001F0000
loadLibraryAAddr = 75384977
hook thread complete
launching
Note the forcing steam loader line.

The result in skse_steam_loader.log =>

Code: Select all

skse loader 01070000 (steam) 01CF1D47434C5A4E 6.1 (7601)
base addr = 72CF0000
GetSystemTimeAsFileTime IAT = 0106B1D8
original GetSystemTimeAsFileTime = 753834A9
patched GetSystemTimeAsFileTime = 72CF16C0
GetStartupInfoA IAT = 0106B1D0
original GetStartupInfoA = 75380E00
patched GetStartupInfoA = 72CF16E0
InstallHook: thread = 2296 retaddr = 00F69112 hookSrc = 0
appPath = D:\Loisirs\RPG\Skyrim\TESV.exe
dwSignature = FEEF04BD
dwStrucVersion = 00010000
dwFileVersionMS = 00010009
dwFileVersionLS = 00200000
dwProductVersionMS = 00010009
dwProductVersionLS = 00200000
dwFileFlagsMask = 00000017
dwFileFlags = 00000000
dwFileOS = 00000004
dwFileType = 00000001
dwFileSubtype = 00000000
dwFileDateMS = 00000000
dwFileDateLS = 00000000
version = 0001000900200000
normal exe
dll = D:\Loisirs\RPG\Skyrim\skse_1_9_32.dll
old winmain = 0069D1D0
runtime root = D:\Loisirs\RPG\Skyrim\
config path = D:\Loisirs\RPG\Skyrim\Data\SKSE\skse.ini
overriding memory pool sizes
default heap = 768MB (effective 512MB if not preloading animations)
scrap heap = 256MB
OnHook: thread = 2296
calling winmain
returned from winmain (0)
Note the default heap = 768MB (effective 512MB if not preloading animations) line, as well as the scrap heap = 256MB line.

;)

Offline
Posts: 31
Joined: 06 Jan 2014, 15:35

Re: Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

Can anyone look at my dump log I posted yesterday afternoon and tell me something? At this point I am lost on why I am CTD eventually. Even on a brand new game I am getting CTDs, with very little MODs. I did a memtest on my ram for 10 hours and no errors at all. So I don't know what is going on.

Offline
Posts: 4
Joined: 11 Jan 2013, 13:48

Re: Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

@thalixte:

Great and thank you for the information. So there´s no need to change anything except the skse.ini with the told parameters?

Best regards

Offline
Posts: 39
Joined: 08 Jan 2014, 14:59
Location: Lyon, France

Re: Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

hand79 wrote:@thalixte:

Great and thank you for the information. So there´s no need to change anything except the skse.ini with the told parameters?

Best regards
That's right, if you have already created a shortcut to skse_loader.exe with the -forcesteamloader parameter. ;)
Last edited by thalixte on 05 Feb 2014, 23:03, edited 1 time in total.

Offline
Posts: 4
Joined: 30 Jan 2014, 06:39

Re: Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

thalixte wrote:That's right, if you have already create a shortcut to skse_loader.exe with the -forcesteamloader parameter. ;)
Right, I use steam for achievments, workshop, etc ... so I was not aware to the 'forcesteamloader' option (since I was not looking for it).
However, as I stated before, there will never be a version of skse that is truly free of any and all steam code -- it does it by making the game think steam is running when actually it isn't.
However -- that too, is a moot point -- as they say: 'don't care how it works, as long as it works'

Offline
User avatar
Posts: 64
Joined: 11 Sep 2013, 22:34

Re: Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

nafeasonto wrote:Can anyone look at my dump log I posted yesterday afternoon and tell me something? At this point I am lost on why I am CTD eventually. Even on a brand new game I am getting CTDs, with very little MODs. I did a memtest on my ram for 10 hours and no errors at all. So I don't know what is going on.
A very brief look indicates one of your mods is causing it to start executing data as code. Now this isn't helpful :)
Assuming you have clean inis and did all the other recommended modding stuff.
Just disable mod by mod until this particular crash is gone. Enable all other mods again and see if crash is still gone.
Then only enable the mod causing the crash. If it is not causing the crash when it is the only mod, you could start enabling another mod one at a time until you see the crash again. Or enable mod by mod until you crash. Then start with only those 2 mods again. If they both don't crash...

Offline
*blah-blah-blah maniac*
Posts: 1509
Joined: 20 Mar 2012, 08:37

Re: Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

@sheson
could it be that this patch also helps the ALT+TAB stability in the Engine i have it for a long time now on sleep and i can change without problems back and forth i could swear before the patch it caused problems when switching for long times away from the process :)
Especially when Surfing with Firefox @ the same time no problems currently with ALT+TAB back and forth and instant resuming, no matter how long i keep the process idle :)
_________________
85% of graphics research is about who can finally make Sponza look good.
Jasper Bekkers EA/DICE

Perfection is the greatest enemy of photorealism.
Jorge Jimenez Activision Blizzard

Offline
User avatar
Posts: 42
Joined: 19 Jan 2014, 14:14
Location: Hanoi, Vietnam

Re: Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

@sheson

Just curious how you can tell from nafeasonto's crash dump that it's a mod causing TESV.exe to execute data as code?

If by mod you mean anything with .esp/.esm plugins, then what about SKSE plugins, SKSE itself, or even the ENB dynamic libraries?

I ask because the one CTD I'm seeing the most is very repeatable, when loading a savegame after loading and playing a bit in one or several other savegames before that. I posted two nearly identical crashdumps from different tests a few pages back.

Since then, well just this morning, I have ruled out SSME as part of the equation, because I saw a CTD when opening a savegame while using the new SKSE 1.07.0 alpha build. I'm not sure why it took so much longer to occur with SKSE, but the savegames are the same ones as in the previous tests, and they were saved after loading my set of mods up on a pristine vanilla savegame, level 1, just after escaping Helgen, in an interior cell, blah blah. I have also ruled out skyrim/prefs.ini settings as I got one CTD while using a fresh vanilla set.

Any insights on how to know from the crash dump it's a mod at fault as opposed to something else would be greatly appreciated.
_________________
EVGA GTX 760 4GB | i5-4590 Quad 3.3Ghz | ASRock Z87E-ITX | 16GB Crucial DDR3-1600 | 240GB SSD + 3TB HDD | Win7 x64

Offline
User avatar
Posts: 64
Joined: 11 Sep 2013, 22:34

Re: Skyrim Memory Patch - fixing ILS, uGrids CTD, freezes

I am going on a limb here and I really only looked at it for a minute, but the address TESV+c76b13 reported for the command in the crashdump is where tesv.exe usually stores data. For example start address and size of a allocated memblock. My debugger shows different data there, or different commands if you will.

I have not seen tesv doing anything like this just by itself even when I messed around badly with ini settings. But I suppose that could happen.

then minidump says this IP_ON_HEAP: 27d3002b
The fault address in not in any loaded module
Also, the stack unwind shows no external dll, but that assumption maybe wrong as it says.
So it doesn't point to any loaded dll as the culprit. Still could be the case. Just that the data it shows is wrong.

I do count SKSE including any SKSE plugin and ENB as mod. Those are the easiest to turn off for any further testing.

One could try checking with VMMap what is at that address, though that address might change each new run. So you'd need to have VMMap running before it crashes. And if VMMap sees whats there so should be the the minidump. The minidump most likely points in the wrong direction though.
Post Reply