Jump to content

[HOWTO - RAMDRIVE] Increasing SWTOR System Performance


Lemon_King

Recommended Posts

  • Replies 877
  • Created
  • Last Reply

Top Posters In This Topic

Ok, so i had a peek at this and it seems like really smart thinking :)

 

Anyway, my question is this. I only have 6GB in my laptop. Now im not entirely sure how this works but it seems like you're dedicating a section of the ram to be used by tor.

 

If i do this with 6gb of ram will it choke up the rest of my processes? Is it just going to force some of the cache in virtual ram anyway, which would nullify the point of this?

 

I know you said you should do it with 6GB or more but i just wanna check this 6 is actually enough ><

 

anyway, thanks for taking the time to share this its a really good guide and a really good idea

 

What this does is create a disk type device in a chunk of allocated memory, then puts specific game cache files there. This could definitely still work on a 6GB machine - Game runs two processes, max mem total is proabably 2.5 GB, add another 2 GB for this method and you've still got 1500MB lying around for Windows, etc.

 

 

Don't you have to delete the junction(s) and move the DiskCacheArena file back to it's original location every time you shut down?

 

That's what I'm having to do in order to reapply everything at next boot up because the RAMdisk is not permanent.

 

You know, I don't think so. But an easy test would be to close SWTOR, rename the file, and start SWTOR. I think it will create a new one if it's missing. You definitely don't need to delete the junctions AS LONG AS you run the steps again before starting SWTOR.

Edited by mrkitethreeeight
Link to comment
Share on other sites

Slightly different problem, but I got it worked out. It won't start unless the working folder is its own directory.

 

OK, the following SHOULD work for people using IMDISK. It:

Excellent, added to the OP as an alternate solution.

 

Don't you have to delete the junction(s) and move the DiskCacheArena file back to it's original location every time you shut down?

 

That's what I'm having to do in order to reapply everything at next boot up because the RAMdisk is not permanent.

 

Nope, if the file is missing the engine will just recreate it.

Adds a very minor amount of time during first boot when run with the RamDisk active.

 

It won't let me redo the steps when the junctions already exist.
You shouldn't have to remake the junction for DiskCacheArena, after a reboot it will still point to the T: drive, just like the %userprofile% junctions.

The only thing you need to do is recreate the junctions within the T: drive.

Edited by Lemon_King
Link to comment
Share on other sites

I have a laptop system with only 4GB of RAM. I used the IMdisk procedure to make a 1200 MB ramdisk....and I turned off the aero effects in Windows 7. The game performance for me, which was a slow 10-15 FPS is now almost 30 FPS, with a few bottlenecks in certain areas. My character is lvl 49 in the game, so I'm currently on the planet VOSS, and I'm getting back down to 10-15 FPS, and worse, in certain areas. What I want to know is can this ramdisk procedure be undone?

 

I have a batch file on my desktop I use to load up the directory links, but if I don't run that batch file now, after reboot, I can't load up the game, I get an error code 6, to free up 2 GB of space on my HDD.

 

How would I go about undoing all this just to test to see if my game will run smoother on VOSS with a "vanilla" install of the game?

 

Thanks. LemonKing, this post is for your eyes. :)

Link to comment
Share on other sites

I have a laptop system with only 4GB of RAM. I used the IMdisk procedure to make a 1200 MB ramdisk....and I turned off the aero effects in Windows 7. The game performance for me, which was a slow 10-15 FPS is now almost 30 FPS, with a few bottlenecks in certain areas. My character is lvl 49 in the game, so I'm currently on the planet VOSS, and I'm getting back down to 10-15 FPS, and worse, in certain areas. What I want to know is can this ramdisk procedure be undone?

 

I have a batch file on my desktop I use to load up the directory links, but if I don't run that batch file now, after reboot, I can't load up the game, I get an error code 6, to free up 2 GB of space on my HDD.

 

How would I go about undoing all this just to test to see if my game will run smoother on VOSS with a "vanilla" install of the game?

 

Thanks. LemonKing, this post is for your eyes. :)

You will need to undo both the symlink to the cache file (simply delete the cache file) and replace the junction from your %userprofile% directory that leads to a non-existing RAM-drive.

 

Following the op message you will need to do the following:

delete "%userprofile%\AppData\Local\SWTOR"
mkdir "%userprofile%\AppData\Local\SWTOR\swtor"
mklink /J "%userprofile%\AppData\Local\SWTOR\settings" "<SWTOR Install Location>\Star Wars-The Old Republic\SWTOR\retailclient\settings"

 

Explained:

first, remove the old junction from your %userprofile% - if this fails, use this backup:

move "%userprofile%\AppData\Local\SWTOR" "%userprofile%\AppData\Local\SWTOR_RAM"

second, create the directory structure that SWTOR wants in %userprofile%

third, create a junction from the %userprofile% data to your settings directory.

 

Note that you probably just need to complete the first two steps if you do not want to get your old settings back.

Edited by sarf
Link to comment
Share on other sites

Great stuff, many thanks!

 

Just for clarification: I'm using ImDrive, is it enough if I create a batch file with the following in it and put it in Autostart (with adjustments for my directories of course)? Also, do I need to run it as an Admin?

 

With ImDrive this is a bit easier, just stick it in the boot batch file.

imdisk -a -s 2G -m T: -p "/fs:ntfs /q /y"
mkdir T:\SWTOR\swtor
mklink /J "T:\SWTOR\swtor\settings" "<SWTOR Install Location>\Star Wars-The Old Republic\SWTOR\retailclient\settings"

Link to comment
Share on other sites

Lets talk about increasing SWTOR Performance by working around Engine Bottlenecks!

 

Right now this focuses on placing DiskCacheArena and 2 buffer files DiskCacheStatic / DiskCacheStream on a RamDrive.

The increase in performance I've seen during my test for the past few days was quite nice, resolved 2 issues with the engine.

 

The First being a performance drop once DiskCacheArena starts becoming full where data needs to be flushed during gameplay, causing severe hitching even on an SSD.

Second is for Static and Stream, simple buffers that work wonders in a RamDrive but will slow performance anytime they are on disk; the performance drop remains even if Arena is in a RamDrive.

 

Now why is this a bottleneck?

First when the game is started, it mounts the MYP/TOR files in ..\Assets\ loads the data from there by streaming with the Static and Stream files into DiskCacheArena. Once there it can be loaded by the engine for use in General Gameplay. Its a pretty slow method but it does work for now.

A better solution would be to mount the data and have the game pull from that as one large LRC, with all data created by the engine and downloaded from the server to go into DiskCacheArena; giving it proper priority over the mounted data.

 

Another solution would be to make use of MemoryMan.dll and spawna third process to act as a light RamDrive for DiskCacheArena with the write buffers for machines with enough ram - a simple toggle could be added in the launcher.

 

Setting up a RamDrive

You will need 6 Gigs or more of Ram and some software, your other solution is to hunt one of these down if you lack the ram via OS limits.

 

Software

After doing some research for some lightweight software you have 2 solutions, the choice is yours.

 

Setup with Starwind Virtual RAM Drive Emulator

  1. Click Add Device and set the Size to 1024 MB, unchecking both options
  2. Click Next and setup a second Disk
  3. Open your Computer Management Panel, and click on Disk Management
  4. You should see your drives in the lowest Panel, scroll down that list until you see the two drives you created with the Software
  5. Right Click one and choose Spanning Disk
  6. In the Window add in the other Disk you created and choose next
  7. Format as NTFS and give it a fancy name

http://i.imgur.com/YdSQ0.png

http://i.imgur.com/zAnwW.png

http://i.imgur.com/ArJb7.png

 

 

Setup with ImDisk Virtual Disk Driver

imdisk -a -s 2G -m T: -p "/fs:ntfs /q /y"

 

 

Setting up Folder Junctions

  1. Find our where your SWTOR is located, As an example my install is located on S:\Applications\Star Wars-The Old Republic\
  2. Open your Start Panel click Run and type in %userprofile%\AppData\Local
  3. Scrolling down you should see a folder called SWTOR, open it and Copy the settings folder to <SWTOR Install Location>\Star Wars-The Old Republic\SWTOR\retailclient\
  4. Delete DiskCacheArena if it exists in <SWTOR Install Location>\Star Wars-The Old Republic\SWTOR\
  5. Delete the SWTOR folder in Local
  6. Run cmd with Admin Rights adjust this line to your <SWTOR Install Location>.
    mkdir T:\SWTOR\swtor
    mklink /J "%userprofile%\AppData\Local\SWTOR" "T:\SWTOR\"
    mklink /J "T:\SWTOR\swtor\settings" "<SWTOR Install Location>\Star Wars-The Old Republic\SWTOR\retailclient\settings"
    mklink "<SWTOR Install Location>\Star Wars-The Old Republic\SWTOR\DiskCacheArena" "T:\DiskCacheArena"


 

 

What to do on a Reboot?

Easy, if you're using Starwind's software repeat the 7 setup steps everytime your system comes online.

And you'll be dropping this into a console after you setup your drives.

mkdir T:\SWTOR\swtor
mklink /J "T:\SWTOR\swtor\settings" "<SWTOR Install Location>\Star Wars-The Old Republic\SWTOR\retailclient\settings"

 

With ImDrive this is a bit easier, just stick it in the boot batch file.

imdisk -a -s 2G -m T: -p "/fs:ntfs /q /y"
mkdir T:\SWTOR\swtor
mklink /J "T:\SWTOR\swtor\settings" "<SWTOR Install Location>\Star Wars-The Old Republic\SWTOR\retailclient\settings"

 

 

Nice Post here with an all in one batch file by mrkitethreeeight:

http://www.swtor.com/community/showpost.php?p=1965652

Just a word of warning I have not tested it on my machine.

 

 

I got Windows and SWTOR installed on a SSD raid, random read speed exceeds 1gb/sec, sequential read tops out at 1.95gb/sec. This game is still loading horribly slow, it's nothing to do with the SSD or HDD you have it installed on. The game doesnt multithread very much it seems, it loads files one by one, just like old Warhammer Online did, and we all know how much people hated WAR for its long loading times. They really need to adress this, otherwhise I'll go nuts soon.

Edited by Skuggan
Link to comment
Share on other sites

Sorry, "it"?

 

I'm sorry. The system, Windows 7, the Command Prompt = It. You sound like a stereotypical IT guy.

 

 

Excellent, added to the OP as an alternate solution.

 

 

 

Nope, if the file is missing the engine will just recreate it.

Adds a very minor amount of time during first boot when run with the RamDisk active.

 

You shouldn't have to remake the junction for DiskCacheArena, after a reboot it will still point to the T: drive, just like the %userprofile% junctions.

The only thing you need to do is recreate the junctions within the T: drive.

 

I cannot recreate this directory: "mkdir T:\SWTOR\swtor\retailclient" because it already exists in the junction. Therefore I cannot create a new junction. But you're saying that Win7 will recreate the directories because the existing junctions point there, and that the game will recreate the DiskCacheArena file on the T:\ drive. That's great -- I guess I was thinking too much into it. Thanks for the info.

 

Another small problem: I'm having to redo all of my game settings every time I reboot. Could that be caused by me moving all of my files back to their original location and deleting junctions? I was renaming my C:\Users\me\Local\SWTOR directory to C:\Users\me\Local\SWTOR.bak, then removing the .BAK before reboot.

Edited by Rion_Starkiller
Link to comment
Share on other sites

I got Windows and SWTOR installed on a SSD raid, random read speed exceeds 1gb/sec, sequential read tops out at 1.95gb/sec. This game is still loading horribly slow, it's nothing to do with the SSD or HDD you have it installed on. The game doesnt multithread very much it seems, it loads files one by one, just like old Warhammer Online did, and we all know how much people hated WAR for its long loading times. They really need to adress this, otherwhise I'll go nuts soon.

 

Yes, the game engine is single threaded, which desperately needs to be addressed. It'd be nice if they'd produce a 64-bit game client as well, since we might be able to brute force around some of the engine limitations. Hopefully we'll see some of those things happen. I know the HeroEngine folks have said they're working on a multi-threaded version but haven't given any ETA.

Link to comment
Share on other sites

Edit: sorry for double-posting...

 

I'm sorry. The system, Windows 7, the Command Prompt = It. You sound like a stereotypical IT guy. Thanks for the troll.

 

No troll intended, I just wanted to make sure I understood what the problem was before offering advice. I guess I won't make a corresponding "stereotypical user" joke... ;)

 

I cannot recreate this directory: "mkdir T:\SWTOR\swtor\retailclient" because it already exists in the junction. Therefore I cannot create a new junction. But you're saying that Win7 will recreate the directories because the existing junctions point there, and that the game will recreate the DiskCacheArena file on the T:\ drive. That's great -- I guess I was thinking too much into it. Thanks for the info.

 

Another small problem: I'm having to redo all of my game settings every time I reboot. Could that be caused by me moving all of my files back to their original location and deleting junctions? I was renaming my C:\Users\me\Local\SWTOR directory to C:\Users\me\Local\SWTOR.bak, then removing the .BAK before reboot.

 

Your game settings should have been copied to the retailclient folder in the install location and symlinked from t:\swtor\swtor\settings. Did you do that step? If not, I could see why what you're doing could be resetting them each time. If it's under the installlocation and symlinked properly, then the settings should be stored successfully and should have no trouble persisting after reboot.

Edited by mrkitethreeeight
Link to comment
Share on other sites

Edit: sorry for double-posting...

 

 

 

No troll intended, I just wanted to make sure I understood what the problem was before offering advice. I guess I won't make a corresponding "stereotypical user" joke... ;)

 

 

 

Your game settings should have been copied to the retailclient folder in the install location and symlinked from t:\swtor\swtor\settings. Did you do that step? If not, I could see why what you're doing could be resetting them each time. If it's under the installlocation and symlinked properly, then the settings should be stored successfully and should have no trouble persisting after reboot.

 

Thanks for the info. I just want to make sure I get it right because I'm the one that has to fix it I muck it up. :eek:

Edited by Rion_Starkiller
Link to comment
Share on other sites

You will need to undo both the symlink to the cache file (simply delete the cache file) and replace the junction from your %userprofile% directory that leads to a non-existing RAM-drive.

 

Following the op message you will need to do the following:

delete "%userprofile%\AppData\Local\SWTOR"
mkdir "%userprofile%\AppData\Local\SWTOR\swtor"
mklink /J "%userprofile%\AppData\Local\SWTOR\settings" "<SWTOR Install Location>\Star Wars-The Old Republic\SWTOR\retailclient\settings"

 

Explained:

first, remove the old junction from your %userprofile% - if this fails, use this backup:

move "%userprofile%\AppData\Local\SWTOR" "%userprofile%\AppData\Local\SWTOR_RAM"

second, create the directory structure that SWTOR wants in %userprofile%

third, create a junction from the %userprofile% data to your settings directory.

 

Note that you probably just need to complete the first two steps if you do not want to get your old settings back.

 

I followed your instructions to the letter, and now my game won't run without the ramdrive setup. I've tried repairing the install of the game through the game launcher.....and i've even redownloaded the game launcher file, thinking it would restore files. What do I do? I'm completely baffled and lost. I don't know how to repair this. I don't want to use the ramdisk option anymore.

 

Somebody, please help. I'm completely F'd over now.

Link to comment
Share on other sites

Quick question, I'm at work now so can't play with it but I will later! If what I'm reading here is correct, then it would be very possible to use this same type of setup with a thumb drive as well as long as the drive was large enough to hold the files. Obviously it would not operate as fast, but with those that are running on a 32 bit system and therefore are maxed at 3.5megs of ram that might be an alternative option for doing something like this as well.

 

LOTRO has a program available that does just this with a thumb drive, but is built to work only with vista/7 so xp/me users cannot use the program itself. If anyone knows if this method would work with a thumb drive I could perhaps whip up a quick program that would automate the process for use with a thumb drive and without the need to reboot as well.

 

If I don't see a reply here, I'll play around with it since a ram drive is out of the question for me due to 32bit OS constraints and if it works I'll make it available in the near future (remember near is a relative term ;) )

Link to comment
Share on other sites

HI, I'm doing something wrong and its probably a derp moment.

 

So I used Starwind and got the drives set up, I'm now up to the folder junction I've found my install location and everything but in cmd the first line "mkdir T:\SWTOR\swtor" just comes up saying the system cannot find the drive specified.

 

any help would be great, like I said I'm probably just not reading something properly

 

Nevermind fixed the problem

Edited by moosymoose
found the answer myself
Link to comment
Share on other sites

I followed your instructions to the letter, and now my game won't run without the ramdrive setup. I've tried repairing the install of the game through the game launcher.....and i've even redownloaded the game launcher file, thinking it would restore files. What do I do? I'm completely baffled and lost. I don't know how to repair this. I don't want to use the ramdisk option anymore.

 

Somebody, please help. I'm completely F'd over now.

 

From what I can tell, you're going to have to delete the junction files. They look exactly like the original files except they have that little arrow in front of them.

Link to comment
Share on other sites

×
×
  • Create New...