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.

50

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.

Editor-In-Chief
From The Chatty
  • reply
    November 22, 2011 8:00 AM

    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.

    • reply
      November 22, 2011 8:22 AM

      Why would they want to limit how much ram you can use?

      • reply
        November 22, 2011 8:32 AM

        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.

        • reply
          November 22, 2011 9:34 AM

          Except that 32bit can address up to a maximum of 4GB not 2GB

          • reply
            November 22, 2011 9:37 AM

            In theory, yes, 32 bits will address 4GB of memory. In practice, 32-bit Windows executables are limited to 2GB each if they don't have the large address awareness flag enabled.

          • reply
            November 22, 2011 9:41 AM

            It's 2gb unless the laa flag is set in the linker options. The laa flag is what allows negative integer values to be used for pointer values.

            Blame legacy code and a host of bad practices for this.

            • reply
              November 22, 2011 10:15 AM

              If you run Skyrim on a 64-bit OS, there should be no reason to NOT enable the LAA flag. Drivers on that OS that Skyrim interacts with will know how to deal with addresses >2GB, and Skyrim's own code should be able to deal with the same.

              • reply
                November 22, 2011 10:19 AM

                Based on what?

                • reply
                  November 22, 2011 10:38 AM

                  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.

                  • reply
                    November 22, 2011 10:50 AM

                    ... 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.

                    • reply
                      November 22, 2011 11:01 AM

                      [deleted]

                      • reply
                        November 22, 2011 11:24 AM

                        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.

                        • reply
                          November 22, 2011 11:30 AM

                          [deleted]

                          • reply
                            November 22, 2011 11:36 AM

                            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.

                            • reply
                              November 22, 2011 12:39 PM

                              There's no reason for Skyrim to avoid it. Drivers are no longer a reason. What parts of a 2011 cross-console game are using ancient C code that they can't find and fix? Very few.

          • reply
            November 22, 2011 11:47 AM

            Not the case under standard win32 programs

        • reply
          November 22, 2011 1:19 PM

          If regular people can hack it in why doesn't Bethesda just code it in themselves?

          • reply
            November 22, 2011 1:25 PM

            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.

            • reply
              November 22, 2011 1:30 PM

              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!

              • reply
                November 22, 2011 1:34 PM

                I'd like to see that. They still may be trying to avoid support/complaint issues.

          • reply
            November 22, 2011 1:28 PM

            Or at least release an official LAA executable that you could get optionally as unsupported

            • reply
              November 22, 2011 3:10 PM

              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.).

      • reply
        November 22, 2011 8:36 AM

        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.

        • reply
          November 22, 2011 8:49 AM

          What Arcanum said above is what I think is going on. There's already a new fix for more RAM with the new patch, though.

          • reply
            November 22, 2011 8:51 AM

            I agree, seems like the only thing that makes sense.

        • reply
          November 22, 2011 8:51 AM

          lol what? No. Arcanum's explanation is pretty spot on.

        • reply
          November 22, 2011 9:02 AM

          If they wanted to shaft the community they would have used IdTech 5.

        • reply
          November 22, 2011 9:18 AM

          I really have no idea

          Well said.

        • reply
          November 22, 2011 11:19 AM

          lol wut?

      • reply
        November 22, 2011 10:36 AM

        misleading shacknews article title

      • reply
        November 22, 2011 12:08 PM

        I think the reason Bethesda did this was to enforce region locking. People who bought keys from outside their region (Russia) had to activate via VPN to decrypt. From then they had to run the game from TES V.exe, essentially bypassing the region locks that Steam has in place.

    • reply
      November 22, 2011 8:26 AM

      Even without improved visuals, I need the RAM limit raised to make the game stable. Without it, the game silently crashes to the desktop every so often.

      I really wish Bethesda would implement support for larger memory space themselves, or even better, release a true 64-bit executable.

      • reply
        November 22, 2011 8:43 AM

        Thats what happens to me, without it random crashes.

        • reply
          November 22, 2011 8:48 AM

          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!

      • reply
        November 22, 2011 8:49 AM

        You have to ask your self in general why the shit don't we see more 64bit exe's in our games?

        Is there no benefit to leveraging 64bit by now?

        • reply
          November 22, 2011 8:51 AM

          I know the "console'd" jokes are prevalent but, seriously, consoles are years behind the latest PC hardware/software so when developing for consoles, wouldn't you have to code for 32-bit systems as consoles are basically little computers?

        • reply
          November 22, 2011 8:59 AM

          We'll see it maybe after Microsoft releases WIndows as 64-Bit only. Even then, it'll still be a while. There will still be people running 32-bit WIndows, and the smart business move would be to try and cater to the most people.

        • reply
          November 22, 2011 9:10 AM

          It's consoles.

          • reply
            November 22, 2011 9:32 AM

            ugh. so the whole "everything is a console port" is mostly... true? :(

            • reply
              November 22, 2011 10:15 AM

              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.

            • reply
              November 22, 2011 10:16 AM

              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."

              • reply
                November 22, 2011 10:19 AM

                [deleted]

              • reply
                November 22, 2011 10:22 AM

                [deleted]

                • reply
                  November 22, 2011 10:25 AM

                  [deleted]

                • reply
                  November 22, 2011 10:27 AM

                  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).

                  • reply
                    November 22, 2011 10:44 AM

                    > 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

                    • reply
                      November 22, 2011 12:33 PM

                      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).

                  • reply
                    November 22, 2011 10:47 AM

                    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.

                  • reply
                    November 22, 2011 3:19 PM

                    [deleted]

        • reply
          November 22, 2011 10:15 AM

          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.

          • reply
            November 22, 2011 11:48 AM

            Not all 64 bit software is as fully featured as their 32 counterparts.

            I remember reading somewhere that you'll have some issues with sharepoint if you install 64bit MS office.

            • reply
              November 22, 2011 11:51 AM

              I believe sharepoint 2010 is only 64bit also O_o

              • reply
                November 22, 2011 12:26 PM

                All of the Windows Server editions from 2008R2 on are 64-bit only. Makes me so happy at work.

                • reply
                  November 22, 2011 1:04 PM

                  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.

                  • reply
                    November 22, 2011 1:07 PM

                    What would a solidly coded game requiring 64-bit, DX11, quad core, 1GB VRAM, 6GB RAM look and run like?

                    • reply
                      November 22, 2011 1:09 PM

                      Only as good as the art assets are :P

                      • reply
                        November 22, 2011 1:18 PM

                        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?

                      • reply
                        November 22, 2011 1:55 PM

                        hahaha

        • reply
          November 22, 2011 10:22 AM

          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

          • reply
            November 22, 2011 12:22 PM

            I thought the performance when transitioning to 64-bit was more or less a wash since you had access to more general purpose registers on the CPU.

        • reply
          November 22, 2011 12:19 PM

          The other issue is if the 3rd party libraries don't have a 64-bit version... that and they probably don't want to spend time on a 64-bit version.
          Hell, they won't even turn on the LAA flag, why would they bother with a 64-bit version?

      • reply
        November 22, 2011 9:00 AM

        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.

        • reply
          November 22, 2011 9:28 AM

          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.

          • reply
            November 22, 2011 10:10 AM

            I don't remember Oblivion ever crashing for me while Skyrim does so at least twice a day (instant CTD). I do remember audio codecs messing with Oblivion but without them it was stable at release.

            • reply
              November 22, 2011 1:32 PM

              The instant CTD is probably a symptom of the executable not being large address aware. I bet if you use a LAA hack they will go away.

              I had way more problems with Oblivion crashing, even once I got the weird codec problem straightened out.

        • reply
          November 22, 2011 10:39 AM

          I dont think it was the massive overhaul they claimed it was. Graphically it does look better, but all the underlying quirks from FO3/Oblivion are still there as are the fixes for them.

          • reply
            November 22, 2011 10:51 AM

            Overhauls never are, unless they're dumb enough to pull a netscape.

      • reply
        November 22, 2011 11:13 AM

        [deleted]

    • reply
      November 22, 2011 9:01 AM

      New 4GB workaround direct link:
      http://www.skyrimnexus.com/downloads/file.php?id=1013

    • reply
      November 22, 2011 10:38 AM

      If I only have 4GB of RAM total on 64bit OS, is using this fix a bad idea?

      • reply
        November 22, 2011 10:41 AM

        No. Though there really isn't a need to do so unless you are making changes in the .ini that is increasing memory demand or you are seeing constant silent crashes to the desktop.

        • reply
          November 22, 2011 10:58 AM

          oh nevermind, i was using the ini fix to increase it from 500-600 up to ~1.6 GB, not beyond 2GB

    • reply
      November 22, 2011 6:48 PM

      Does anyone have problems with eagle eye not working? I can't get it to zoom. I had swapped my L/R mouse buttons thinking that was the problem, but switching them back doesn't seem to help.

      • reply
        November 22, 2011 11:20 PM

        Nope. Bear in mind it uses stamina, so that might be your problem.

    • reply
      November 23, 2011 8:28 AM

      Is anyone else noticing some serious performance issues after this patch? I never enabled LAA but after this patch I'm getting

      • reply
        November 23, 2011 8:50 AM

        ugh, wtf. I'm getting

        • reply
          November 23, 2011 8:51 AM

          less than 10fps in areas where I was getting 20-30fps.

      • reply
        November 23, 2011 6:48 PM

        I'm getting a ton of crashes now.

    • reply
      November 23, 2011 10:46 AM

      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.

Hello, Meet Lola