Jump to content

[HOWTO - RAMDRIVE] Increasing SWTOR System Performance


Lemon_King

Recommended Posts

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.

 

*Hitching is caused by the engine pausing to flush data in DiskCacheArena then creating data to save there once freed up, including Atlas Texture Generation for Dynamic Models.

 

Now why is this a bottleneck? - Click Spoiler to see

 

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, a 64bit version of Windows, and some software, your other solution is to hunt down some Hardware to bypass OS limits.

 

 

Software you will need

 

 

ImDisk Virtual Disk Setup

imdisk -a -s 1500M -m T: -p "/fs:ntfs /q /y"

If you are having issues, change 1500M to 2G.

 

 

Creating 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. RENAME the SWTOR folder in Local to SWTOR_Original
  6. Run cmd with Admin Rights change <SWTOR Install Location> 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 with IMDrive?

Save the code below as a batch file and follow this guide here: Windows Vista / 7 UAC Launch on Startup

Allowing the Ramdrive to startup and be prepped for SWTOR without having to manually run the batch file everytime.

imdisk -a -s 1500M -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"

 

 

Removing ImDrive & Junctions

Run this batchfile and it should remove all links to the Ramdrive, Restart your PC and uninstall ImDrive.

del "%userprofile%\AppData\Local\SWTOR"
rename "%userprofile%\AppData\Local\SWTOR_Original" SWTOR
del "<SWTOR Install Location>\Star Wars - The Old Republic\SWTOR\DiskCacheArena"

Be sure to change <SWTOR Install Location> to your SWTOR Location!

 

 

Simple All-In-One Boot Batchfiles

 

Experimental Stuff

Using Junctions to move Dynamic Player Data to your a Ramdrive (Requires a 4gig Ramdrive)

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

 

 

Other Software to Help Improve Performance

  • Superspeed 5 (RETAIL)
    SuperCache breaks the disk I/O bottleneck by using the computer's RAM to hold or contain the most frequently used disk data. As a program sends and receives disk data, the most frequently used data is read from and written to RAM – not the hard drive – thus accelerating the program's performance.
    WARNING: Do not use Write/Defer Write without a UPS Backup!
  • Fancy Cache (BETA SOFTWARE) (RETAIL)
    FancyCache is a supplementary software caching scheme that cooperates with system memory to provide data caching for volumes/disks. It improves system performance by transparently storing data into memory such that future requests for that data can be served faster.
    Currently Free due to Beta.
    WARNING: Do not use Write/Defer Write without a UPS Backup!

 

 

Common Hardware Performance Issues

First, make sure you have Direct X 9 Updated / Windows Vista/7 Framerate Issue

If you're on Vista / 7 and you have NOT installed the DirectX 9 Runtime from Microsoft I highly suggest you do so.

http://www.microsoft.com/download/en/details.aspx?id=35

 

Q: I have a Computer with a CPU slower than an i5 and I'm still having Studdering/FPS Issues!

A: Its time to upgrade that Computer. :jawa_tongue:

 

Q: I have an i5 or higher and I'm still having Studdering/FPS Lag!

A: Then check your videocard; If its slower than GeForce 550 or a Radeon 6600 or 6700 series you might want to upgrade your videocard - or just turn off Shadows ingame.

 

Q: I have done all of the above and my performance is still terrible - or I don't have the Cash to Upgrade.

A: See this Thread - Run your patcher, go into ../Assets/ and rename swtor_main_art_fx_1.tor to swtor_main_art_fx_1_Backup.tor and then launch SWTOR.

You will get a FPS increase, but loose pretty much every fancy particle effect and sfx tied to it.

 

 

TODO: Expand on Fancy Cache/Super Speed 5 for those that are interested

Edited by Lemon_King
Link to comment
Share on other sites

  • Replies 877
  • Created
  • Last Reply

Top Posters In This Topic

Batty, I have an SSD and even with it you'll still get the performance drops.

 

Really? I've not noticed too many hitches on my rig but I'll give it a shot for the hell of it, worst case it does nothing and I revert back to the way I was before, best case YAY free performance.

Link to comment
Share on other sites

Really? I've not noticed too many hitches on my rig but I'll give it a shot for the hell of it, worst case it does nothing and I revert back to the way I was before, best case YAY free performance.

 

You have to remember even if you have the game installed on an SSD the buffer files are still on the windows install drive unless you junction the folder. (Junctioning the files wont work due to the engine deleting them after its done with them.)

 

But once DiskCacheArena becomes full due to normal gameplay the engine will try flushing data to make room for the new data slowing down gameplay and causing massive hitching, even on an SSD.

Link to comment
Share on other sites

You have to remember even if you have the game installed on an SSD the buffer files are still on the windows install drive unless you junction the folder. (Junctioning the files wont work due to the engine deleting them after its done with them.)

 

But once DiskCacheArena becomes full due to normal gameplay the engine will try flushing data to make room for the new data slowing down gameplay and causing massive hitching, even on an SSD.

 

From this point forward instead of junction I will say symlink. I was doing this in unix long before doing it in windows.

 

Windows install is SSD, I install all of my programs to my hdd, then move to the SSD/symlink on the HDD the ones I want on my SSD. I know that having windows on your SSD will shorten it's life but it makes up for it in performance and I'm willing to accept that my drive will fail sooner because of it.

Link to comment
Share on other sites

From this point forward instead of junction I will say symlink. I was doing this in unix long before doing it in windows.

 

Windows install is SSD, I install all of my programs to my hdd, then move to the SSD/symlink on the HDD the ones I want on my SSD. I know that having windows on your SSD will shorten it's life but it makes up for it in performance and I'm willing to accept that my drive will fail sooner because of it.

Slightly different setup from mine.

Windows is a standard HDD, along with my Applications drive.

My SSD is reserved for things like WoW and SWTOR.

Due to SWTOR slamming my SSD (before and after the junction/symlink) by moving and deleting data so much during gameplay I looked into setting up an Ramdrive.

Link to comment
Share on other sites

You're still loading the data 2 times from the harddrive. :p

 

Not a problem when it is this fast. ^^ And ill just replace them with newer stuff late this year. Or whenever revodrive 4x2 comes out.

 

I'm running 2 revoerdrives 3x2's in stripe atm. Works great but was a ***** to setup. Though down side is I need to leave computer logged out and on for garbage collection until trim support is enabled for native scsi

Link to comment
Share on other sites

Not a problem when it is this fast. ^^ And ill just replace them with newer stuff late this year. Or whenever revodrive 4x2 comes out.

 

I'm running 2 revoerdrives 3x2's in stripe atm. Works great but was a ***** to setup. Though down side is I need to leave computer logged out and on for garbage collection until trim support is enabled for native scsi

 

Thats quite the setup there.

Link to comment
Share on other sites

Don't understand the coding, can't get past the second line.

For INSTALLLOCATION, do I need to put every little thing or just the folder where it is?

 

Plus I have 8GB RAM and all I'm allowed to assign is 1.8GB

 

I'm just gonna stop, not worth the crap I have to ponder over.

Edited by Anagnostis
Link to comment
Share on other sites

Don't understand the coding, can't get past the second line.

For INSTALLLOCATION, do I need to put every little thing or just the folder where it is?

 

Plus I have 8GB RAM and all I'm allowed to assign is 1.8GB

 

I'm just gonna stop, not worth the crap I have to ponder over.

 

 

Yup you do, just got everything figured out myself after finding this topic last night. So for the default installation route, it should look like this:

 

 

mkdir T:\SWTOR\swtor

mklink /J "C:\Users\USERNAME\AppData\Local\SWTOR" "T:\SWTOR\"

mklink /J "T:\SWTOR\swtor\settings" "C:\Program Files (x86)\Electronic Arts\BioWare\Star Wars - The Old Republic\swtor\settings"

mklink "C:\Program Files (x86)\Electronic Arts\BioWare\Star Wars - The Old Republic\swtor\DiskCacheArena" "T:\DiskCacheArena"

Edited by ZeronePenguin
Link to comment
Share on other sites

Ive got this working and with the AMD 8xAA workaround I've been getting 50fps on IF with a 2500k, 6870 and 8GB ram. It still helldumps there sometimes but never below 30 anymore. Alderaan ran smooth all the way, started a new character and haven't had any drops in hutta either.
Link to comment
Share on other sites

Yup you do, just got everything figured out myself after finding this topic last night. So for the default installation route, it should look like this:

 

 

mkdir T:\SWTOR\swtor

mklink /J "C:\Users\USERNAME\AppData\Local\SWTOR" "T:\SWTOR\"

mklink /J "T:\SWTOR\swtor\settings" "C:\Program Files (x86)\Electronic Arts\BioWare\Star Wars - The Old Republic\swtor\settings"

mklink "C:\Program Files (x86)\Electronic Arts\BioWare\Star Wars - The Old Republic\swtor\DiskCacheArena" "T:\DiskCacheArena"

 

That is correct, sorry about making this a tad cryptic. :(

Edited by Lemon_King
Link to comment
Share on other sites

×
×
  • Create New...