Skyrim PC patch brings RAM limit back down
A new Skyrim PC patch makes the game require Steam, which undoes a third-party fix allowing the game to access more than 2GB of RAM. A new fix has been released that works with the update.
The Elder Scrolls V: Skyrim received a PC patch yesterday, but apparently the patch carries unintended consequences. The patch makes Steam a requirement to run, which introduces the unfortunate side-effect of disabling a third-party workaround to a relatively low RAM limit.
Rock Paper Shotgun notes that the third-party fix allowing the game to access more than 2GB of RAM makes a big difference. Namely, it lets users run more mods on top of it, which can have a big impact on the visuals, as pointed out by Xav and the Shacknews community. A new workaround fixes the RAM problem without impacting the new patch, but RPS is skeptical that Bethesda itself will officially raise the RAM limitation.
As reported yesterday, console patches are in certification and aiming to come out in the week after Thanksgiving. The patches are expected to address the install issue on Xbox 360, and the lag/framerate problems on PS3.
-
Steve Watts posted a new article, Skyrim PC patch brings RAM limit back down.
A new Skyrim PC patch makes the game require Steam, which undoes a third-party fix allowing the game to access more than 2GB of RAM. A new fix has been released that works with the update.-
-
They're not deliberately limiting the RAM. The Skyrim executable is a 32-bit program, which means it will only address a maximum of 2GB of RAM. If it tried to allocate more than 2GB of RAM for some reason (which would happen on occasion), the game would crash silently. The old executable wasn't encrypted in any way, so someone figured out it could be easily hacked to make it large address aware, and thus support more than 2GB of RAM. Crashes were fixed, and support for more awesome effects became possible.
The patch last night encrypted the executable so it require Steam to run, but that also broke the existing large address aware hacks. So now people have created new hacks.-
-
-
-
-
Video card and sound drivers running on Windows 7 64 must accept addresses >2GB.
If Skyrim's own code or middleware does pointer arithmetic incorrectly, or stuffs something in the MSB of addresses, that's terrible development. Apparently Skyrim crashes less often with LAA enabled, so it seems like the user code deals well with >2GB pointers pretty well.-
... okay? Legacy code's a bitch, and laa is a bandaid at best until 64-bit becomes mainstream. You can't really control what old-school C programmers did a decade and a half ago when a gigabyte of ram was a pipe-dream.
Academic idealism is great, but doesn't map into real world constraints. LLA is something that effects a small portion of the customer base, and it's not surprising if it falls off the table.-
-
Throwing a negative value into a returned pointer wasn't exactly an uncommon practice in C. That will break with laa. Pointer arithmetic is also something that has a tendency to break with laa, due to overflow and whatnot.
Yes, enabling it is a simple compiler flag. Making sure it doesn't introduce other bugs into your software is a much larger effort.-
-
The post I was originally responded to claimed there was NO REASON for it to not be enabled. His rationale was that their codebase should be robust to it -- that's an idealistic position to take.
There are very valid and real reasons for laa not to be enabled, but yeah, I get how shit works on this site.
-
-
-
-
-
-
-
-
-
-
Because a good number of people are still running 32-bit operating systems, and some 32-bit drivers don't play nicely with LAA-enabled applications. They'd have to implement something like I described here: http://www.shacknews.com/chatty?id=27133798#item_27133798
That's setting aside any questions of additional QA to make sure things do in fact still work correctly.-
Can't they just release an official but unsupported mod/download/something that enables it, call it a beta, and not offer support for it? Then they don't have to worry about QA, it makes people happy, and if they have issues with it they can always just switch to the official supported 32bit non-laa exe? Seems win-win!
-
-
-
I think they should do that, considering that the PC version of Skyrim already has a developer console for tweaks and cheats. Back in the day, this is what Crytek did for Crysis: they released both 32-bit and 64-bit executables. Steam also natively supports multiple encrypted game executables for one title (MW2, MW3, Black Ops, etc.).
-
-
-
-
They don't what console users to be pissed off in terms of what PC gamer's can turn Skyrim into on the PC that they will never have.
That is the only thing I can think of but it makes no sense... they would of just removed modding all together but then there would be a shit storm so maybe this is the only way.
I really have no idea its messed up. -
-
-
-
-
What they should do is release an update with two executables and a new launcher.
One executable is large address aware, and one isn't. The launcher checks to see if it is running on a 64-bit operating system. If it is, it runs the large address aware executable. If it's running on a 32-bit operating system, it runs the non-LAA executable. Everyone wins!
-
-
-
-
-
Well... pretty much... you could imagine what could be done if it was not the case.
If just running the same code base(pretty much) on PC hardware makes it that much better you can imagine what a game could really be like with a lot of effort.
Not taking anything away from the consoles it amazing what is achieved on them considering their age and hardware.
Not that I am complaining, just some times I wonder what really could be done, I think it would be amazing. -
Not really. The problem is that all of the consoles are 32 bits. And everyone on the PC supports 32 bits. Adding support for 64-bit PC users is effectively like adding another platform (albeit hopefully just for QA).
But there might be weird bugs that only get exposed when you run with 64-bit data sizes and so on. So just dropping a 64-bit executable isn't "no work."
Meanwhile, if the consoles were all 64-bit, I imagine that developers would just say "fuck it, 32-bit PC is only 40% of PC users, which is in turn a small fraction of my total market, I'll just cut them out and release 64-bit only."-
-
Interesting. Wikipedia has information that says they are, but no source to back it up. It would be fairly surprising (although not impossible) for them to be 64-bit because the 360 doesn't have enough ram for you to need 64-bits to access all storage areas (although you do need 64 bits to access all the data on the DVD drive).
64-bit apps are significantly larger than 32-bit apps, because you have pointers stored all over the place in the executable. (Consider, for example, the drivers from nvidia.com--the 32-bit driver is quite a bit smaller than the 64-bit driver for any particular release and OS).-
> pointers stored all over the place in the executable
I don't think pointers take up a significant portion of the applications memory footprint (compared to other data stored for the game). I can't imagine it being more than on the order of a few MB.
>the drivers from nvidia.com--the 32-bit driver is quite a bit smaller than the 64-bit driver for any particular release and OS
That's because the 64b package includes 64b *and* 32b drivers (in addition to the 64b driver being slightly larger). If you look at the driver sizes (the x ones are 64b) the sizes aren't hugely disproportionate
nvd3dum.dll is 12,341KB
nvd3dumx.dll is 14,712KB
nvwgf2um.dll is 6,459KB
nvwgf2umx.dll is 8,161KB
-
I'd hardly consider ~20% overhead nothing. And on consoles, that's a lot.
That being said, I agree that executable size is largely irrelevant compared to total memory size (which is dominated primarily by textures and VBs). However, executable size is very relevant to performance.. You don't want to have to page executables from disk if you can help it (and you don't want to have spurious I$ misses, either).
-
-
The PS3 CPU is 64-bit as well. You were required to install a 64-bit Linux kernel when they used to support that. The 32-bit kernels weren't even supported by the platform.
I am almost certain the PS3 development kits are 64-bit as well and that the development environment for both the PS3 and Xbox 360 are in fact 64-bit. The CPUs in both systems have a full set of 64-bit registers as well.
-
-
-
-
Two reasons: One is consoles, but the more important one is that not everyone is running 64 bit yet.
Why is beyond me, since CPU's that could only do 32bit went out of production late 2004 or so, but it would limit the amount of people who could play but it would also require a bit more resources to play in the first place since 64 bit executables use about 10-15% more resources than 32bit ones due to the difference in how memory is accessed.-
-
-
-
64-bit addressing in a server environment is far more desirable, since many services can end up using more tha 2 GB of RAM, or stressing the 32-bit kernel limitations (which I've personally witnessed). In terms of games, it's only really about whether there's more than 2 GB of memory used. For most games, we're not there yet, mostly from multiplatform titles targeting under 512 MB, or from the "small user base" of 64-bit installs (which is growing larger now that Windows 7 is pretty damn stable).
It's sad that Microsoft isn't promoting 64-bit gaming as much as they've been pushing 64-bit server app development. We're getting past the point of 2 GB of video RAM, but there's no motivation to use that much for textures, plus game asset memory space.-
-
-
What I'd find interesting to see is how a game made without any console restrictions at all, but rather made for a SB gaming rig as a baseline would run. As in entirely architectured around quadcore with the resulting threads, lots of RAM and VRAM and DX11. Could we do Crysis Ultra/modded at a steady 120 minimum fps with 4x fullscreen supersampling?
-
-
-
-
-
-
-
-
In practice, 64-bit exe's run a decent amount slower due to increased cache misses (since the pointers take up twice the cache memory). Plus there's the fact that a large portion of the market still hasn't upgraded away from Win32, and another large portion of the market bought the 32 bit version of Vista/7, so you kinda have to support the lowest common denominator.
Supporting both 32 and 64bit exe's at the same time is technically doable, but hard to justify, since a good amount of code work has to be done, and it increases your testing burden
-
Enabling LAA is fairly trivial -- it's just a single compile flag.
The problem is the amount of regression testing needed to make sure it didn't break anything, or insuring all of their code & middleware didn't do some of the shitty-but-common things (you know, for speed!) with pointers. If Skyrim's engine was a massive overhaul, they really should have made this a goal from the beginning.-
At least on a 64-bit system, the engine seems really solid with the LAA hack. More stable than without, and much more stable than Oblivion ever was. It makes me wonder if they did do the bulk of the work, but didn't flip the switch.
Someone was saying last night that enabling the LAA flag is liable to cause problems on 32-bit systems due to stupid drivers and such, so maybe that's why it's not enabled. -
-
-
-
-
New 4GB workaround direct link:
http://www.skyrimnexus.com/downloads/file.php?id=1013 -
-
-
-
-
-
Not trolling here guys, just a thought:
Reading about what needs to be installed, what you can or can't do, what you can try to disable or enable, or installing a workaround etc...just gives me a headache. I realize that the consoles offer an inferior experience when it comes to performance and graphics, but man...reading this article sure makes it easy for me to just keep playing on 360 and not worry about any of that. It's almost as if I am willing to give up the superior performance that my PC provides (including mods), just because it's easier for me to just turn on my 360 and enjoy the game in all of it's lower 720P resolution, lower framerate and draw distance, and lower res texture glory. The game has enough technical issues as it is, I sure don't want to worry about anything else.
-